1. 27 Apr, 2010 6 commits
  2. 26 Apr, 2010 34 commits
    • abarth@webkit.org's avatar
      2010-04-26 Adam Barth <abarth@webkit.org> · 9f0cdb7c
      abarth@webkit.org authored
              Reviewed by Eric Seidel.
      
              webkit-patch pretty-diff is broken
              https://bugs.webkit.org/show_bug.cgi?id=38172
      
              We need to register for these options because they're used when we look
              up the diff.
      
              * Scripts/webkitpy/tool/steps/confirmdiff.py:
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@58291 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      9f0cdb7c
    • abarth@webkit.org's avatar
      2010-04-26 Adam Barth <abarth@webkit.org> · 77f8b311
      abarth@webkit.org authored
              Unreviewed.  Update comment to better reflect reality.
      
              * bindings/scripts/test/TestObj.idl:
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@58290 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      77f8b311
    • abarth@webkit.org's avatar
      2010-04-26 Adam Barth <abarth@webkit.org> · 274ca6c9
      abarth@webkit.org authored
              Reviewed by Eric Seidel.
      
              Add ObjC and GObject to run-bindings-test
              https://bugs.webkit.org/show_bug.cgi?id=38168
      
              Added expected results.
      
              * bindings/scripts/test/GObject/WebKitDOMTestObj.cpp: Added.
              (WebKit::kit):
              (webkit_dom_test_obj_void_method):
              (webkit_dom_test_obj_void_method_with_args):
              (webkit_dom_test_obj_int_method):
              (webkit_dom_test_obj_int_method_with_args):
              (webkit_dom_test_obj_obj_method):
              (webkit_dom_test_obj_obj_method_with_args):
              (webkit_dom_test_obj_method_with_exception):
              (webkit_dom_test_obj_method_with_optional_arg):
              (webkit_dom_test_obj_method_with_non_optional_arg_and_optional_arg):
              (webkit_dom_test_obj_method_with_non_optional_arg_and_two_optional_args):
              (webkit_dom_test_obj_get_read_only_int_attr):
              (webkit_dom_test_obj_get_read_only_string_attr):
              (webkit_dom_test_obj_get_read_only_test_obj_attr):
              (webkit_dom_test_obj_get_int_attr):
              (webkit_dom_test_obj_set_int_attr):
              (webkit_dom_test_obj_get_string_attr):
              (webkit_dom_test_obj_set_string_attr):
              (webkit_dom_test_obj_get_test_obj_attr):
              (webkit_dom_test_obj_set_test_obj_attr):
              (webkit_dom_test_obj_get_attr_with_exception):
              (webkit_dom_test_obj_set_attr_with_exception):
              (webkit_dom_test_obj_get_attr_with_setter_exception):
              (webkit_dom_test_obj_set_attr_with_setter_exception):
              (webkit_dom_test_obj_get_attr_with_getter_exception):
              (webkit_dom_test_obj_set_attr_with_getter_exception):
              (WebKit::wrapTestObj):
              (WebKit::core):
              (webkit_dom_test_obj_finalize):
              (webkit_dom_test_obj_set_property):
              (webkit_dom_test_obj_get_property):
              (webkit_dom_test_obj_class_init):
              (webkit_dom_test_obj_init):
              * bindings/scripts/test/GObject/WebKitDOMTestObj.h: Added.
              * bindings/scripts/test/GObject/WebKitDOMTestObjPrivate.h: Added.
              * bindings/scripts/test/ObjC/DOMTestObj.h: Added.
              * bindings/scripts/test/ObjC/DOMTestObj.mm: Added.
              (-[DOMTestObj dealloc]):
              (-[DOMTestObj finalize]):
              (-[DOMTestObj readOnlyIntAttr]):
              (-[DOMTestObj readOnlyStringAttr]):
              (-[DOMTestObj readOnlyTestObjAttr]):
              (-[DOMTestObj intAttr]):
              (-[DOMTestObj setIntAttr:]):
              (-[DOMTestObj stringAttr]):
              (-[DOMTestObj setStringAttr:]):
              (-[DOMTestObj testObjAttr]):
              (-[DOMTestObj setTestObjAttr:]):
              (-[DOMTestObj attrWithException]):
              (-[DOMTestObj setAttrWithException:]):
              (-[DOMTestObj attrWithSetterException]):
              (-[DOMTestObj setAttrWithSetterException:]):
              (-[DOMTestObj attrWithGetterException]):
              (-[DOMTestObj setAttrWithGetterException:]):
              (-[DOMTestObj customAttr]):
              (-[DOMTestObj setCustomAttr:]):
              (-[DOMTestObj voidMethod]):
              (-[DOMTestObj voidMethodWithArgs:strArg:objArg:]):
              (-[DOMTestObj intMethod]):
              (-[DOMTestObj intMethodWithArgs:strArg:objArg:]):
              (-[DOMTestObj objMethod]):
              (-[DOMTestObj objMethodWithArgs:strArg:objArg:]):
              (-[DOMTestObj methodWithException]):
              (-[DOMTestObj customMethod]):
              (-[DOMTestObj customMethodWithArgs:strArg:objArg:]):
              (-[DOMTestObj methodWithOptionalArg:]):
              (-[DOMTestObj methodWithNonOptionalArgAndOptionalArg:opt:]):
              (-[DOMTestObj methodWithNonOptionalArgAndTwoOptionalArgs:opt1:opt2:]):
              (core):
              (kit):
              * bindings/scripts/test/ObjC/DOMTestObjInternal.h: Added.
      2010-04-26  Adam Barth  <abarth@webkit.org>
      
              Reviewed by Eric Seidel.
      
              Add ObjC and GObject to run-bindings-test
              https://bugs.webkit.org/show_bug.cgi?id=38168
      
              * Scripts/run-bindings-tests:
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@58289 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      274ca6c9
    • abarth@webkit.org's avatar
      2010-04-26 Adam Barth <abarth@webkit.org> · 1a445095
      abarth@webkit.org authored
              Reviewed by Eric Seidel.
      
              Add testing infrastructure for JSC bindings generator
              https://bugs.webkit.org/show_bug.cgi?id=38167
      
              This required moving the test files around a bit more.
      
              * bindings/scripts/test/JS/JSTestObj.cpp: Added.
              (WebCore::):
              (WebCore::JSTestObjConstructor::JSTestObjConstructor):
              (WebCore::JSTestObjConstructor::classInfo):
              (WebCore::JSTestObjConstructor::createStructure):
              (WebCore::JSTestObjConstructor::getOwnPropertySlot):
              (WebCore::JSTestObjConstructor::getOwnPropertyDescriptor):
              (WebCore::JSTestObjPrototype::self):
              (WebCore::JSTestObjPrototype::getOwnPropertySlot):
              (WebCore::JSTestObjPrototype::getOwnPropertyDescriptor):
              (WebCore::JSTestObj::JSTestObj):
              (WebCore::JSTestObj::~JSTestObj):
              (WebCore::JSTestObj::createPrototype):
              (WebCore::JSTestObj::getOwnPropertySlot):
              (WebCore::JSTestObj::getOwnPropertyDescriptor):
              (WebCore::jsTestObjReadOnlyIntAttr):
              (WebCore::jsTestObjReadOnlyStringAttr):
              (WebCore::jsTestObjReadOnlyTestObjAttr):
              (WebCore::jsTestObjIntAttr):
              (WebCore::jsTestObjStringAttr):
              (WebCore::jsTestObjTestObjAttr):
              (WebCore::jsTestObjAttrWithException):
              (WebCore::jsTestObjAttrWithSetterException):
              (WebCore::jsTestObjAttrWithGetterException):
              (WebCore::jsTestObjCustomAttr):
              (WebCore::jsTestObjConstructor):
              (WebCore::JSTestObj::put):
              (WebCore::setJSTestObjIntAttr):
              (WebCore::setJSTestObjStringAttr):
              (WebCore::setJSTestObjTestObjAttr):
              (WebCore::setJSTestObjAttrWithException):
              (WebCore::setJSTestObjAttrWithSetterException):
              (WebCore::setJSTestObjAttrWithGetterException):
              (WebCore::setJSTestObjCustomAttr):
              (WebCore::JSTestObj::getConstructor):
              (WebCore::jsTestObjPrototypeFunctionVoidMethod):
              (WebCore::jsTestObjPrototypeFunctionVoidMethodWithArgs):
              (WebCore::jsTestObjPrototypeFunctionIntMethod):
              (WebCore::jsTestObjPrototypeFunctionIntMethodWithArgs):
              (WebCore::jsTestObjPrototypeFunctionObjMethod):
              (WebCore::jsTestObjPrototypeFunctionObjMethodWithArgs):
              (WebCore::jsTestObjPrototypeFunctionMethodWithException):
              (WebCore::jsTestObjPrototypeFunctionCustomMethod):
              (WebCore::jsTestObjPrototypeFunctionCustomMethodWithArgs):
              (WebCore::jsTestObjPrototypeFunctionMethodWithOptionalArg):
              (WebCore::jsTestObjPrototypeFunctionMethodWithNonOptionalArgAndOptionalArg):
              (WebCore::jsTestObjPrototypeFunctionMethodWithNonOptionalArgAndTwoOptionalArgs):
              (WebCore::toJS):
              (WebCore::toTestObj):
              * bindings/scripts/test/JS/JSTestObj.h: Added.
              (WebCore::JSTestObj::classInfo):
              (WebCore::JSTestObj::createStructure):
              (WebCore::JSTestObj::impl):
              (WebCore::JSTestObjPrototype::classInfo):
              (WebCore::JSTestObjPrototype::createStructure):
              (WebCore::JSTestObjPrototype::JSTestObjPrototype):
              * bindings/scripts/test/TestObj.idl:
              * bindings/scripts/test/V8/V8TestObj.cpp: Renamed from WebCore/bindings/scripts/test/V8TestObj.cpp.
              (WebCore::):
              (WebCore::TestObjInternal::V8_USE):
              (WebCore::TestObjInternal::readOnlyIntAttrAttrGetter):
              (WebCore::TestObjInternal::readOnlyStringAttrAttrGetter):
              (WebCore::TestObjInternal::readOnlyTestObjAttrAttrGetter):
              (WebCore::TestObjInternal::intAttrAttrGetter):
              (WebCore::TestObjInternal::intAttrAttrSetter):
              (WebCore::TestObjInternal::stringAttrAttrGetter):
              (WebCore::TestObjInternal::stringAttrAttrSetter):
              (WebCore::TestObjInternal::testObjAttrAttrGetter):
              (WebCore::TestObjInternal::testObjAttrAttrSetter):
              (WebCore::TestObjInternal::attrWithExceptionAttrGetter):
              (WebCore::TestObjInternal::attrWithExceptionAttrSetter):
              (WebCore::TestObjInternal::attrWithSetterExceptionAttrGetter):
              (WebCore::TestObjInternal::attrWithSetterExceptionAttrSetter):
              (WebCore::TestObjInternal::attrWithGetterExceptionAttrGetter):
              (WebCore::TestObjInternal::attrWithGetterExceptionAttrSetter):
              (WebCore::TestObjInternal::voidMethodCallback):
              (WebCore::TestObjInternal::voidMethodWithArgsCallback):
              (WebCore::TestObjInternal::intMethodCallback):
              (WebCore::TestObjInternal::intMethodWithArgsCallback):
              (WebCore::TestObjInternal::objMethodCallback):
              (WebCore::TestObjInternal::objMethodWithArgsCallback):
              (WebCore::TestObjInternal::methodWithExceptionCallback):
              (WebCore::TestObjInternal::methodWithOptionalArgCallback):
              (WebCore::TestObjInternal::methodWithNonOptionalArgAndOptionalArgCallback):
              (WebCore::TestObjInternal::methodWithNonOptionalArgAndTwoOptionalArgsCallback):
              (WebCore::TestObjInternal::overloadedMethod1Callback):
              (WebCore::TestObjInternal::overloadedMethod2Callback):
              (WebCore::TestObjInternal::overloadedMethod3Callback):
              (WebCore::TestObjInternal::overloadedMethod4Callback):
              (WebCore::TestObjInternal::overloadedMethodCallback):
              (WebCore::ConfigureV8TestObjTemplate):
              (WebCore::V8TestObj::GetRawTemplate):
              (WebCore::V8TestObj::GetTemplate):
              (WebCore::V8TestObj::toNative):
              (WebCore::V8TestObj::HasInstance):
              (WebCore::V8TestObj::wrap):
              (WebCore::toV8):
              (WebCore::V8TestObj::derefObject):
              * bindings/scripts/test/V8/V8TestObj.h: Renamed from WebCore/bindings/scripts/test/V8TestObj.h.
      2010-04-26  Adam Barth  <abarth@webkit.org>
      
              Reviewed by Eric Seidel.
      
              Add testing infrastructure for JSC bindings generator
              https://bugs.webkit.org/show_bug.cgi?id=38167
      
              Add support for testing more than one bindings.  Also, converted the
              script to PEP8 style.
      
              * Scripts/run-bindings-tests:
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@58288 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      1a445095
    • oliver@apple.com's avatar
      Fix windows · e6044739
      oliver@apple.com authored
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@58287 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      e6044739
    • oliver@apple.com's avatar
      2010-04-26 Oliver Hunt <oliver@apple.com> · 8e293b78
      oliver@apple.com authored
              Reviewed by Gavin Barraclough.
      
              Need to support more efficient dispatch of lightweight builtins
              https://bugs.webkit.org/show_bug.cgi?id=38155
      
              The problem with calling lightweight builtins is that marshalling
              the call from the nitro calling convention to the system calling
              convention is very expensive relative to the cost of the actually
              evaluating the function.  To work around this problem this patch
              adds the ability to define a custom thunk for a builtin.
      
              This allows us to use high performance custom implementations of
              the common and sensible versions of simple builtins.  This patch
              includes a simple (use of which is currently hardcoded) thunk for
              charCodeAt.
      
              This adds a JSInterfaceJIT subclass called SpecializedThunkJIT
              that has helper functions to remove (or at least reduce) the need
              to have separate thunk implementations for each JSValue encoding.
      
              * GNUmakefile.am:
              * JavaScriptCore.pro:
              * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj:
              * JavaScriptCore.xcodeproj/project.pbxproj:
                Many project file updates
      
              * create_hash_table:
                Add thunk generation callbacks to the hash tables, currently
                we hardcode the script to only support charCodeAt
      
              * jit/JITStubCall.h:
              * jit/JITStubs.cpp:
              (JSC::JITThunks::~JITThunks):
              (JSC::JITThunks::specializedThunk):
              * jit/JITStubs.h:
              * jit/SpecializedThunkJIT.h: Added.
              (JSC::SpecializedThunkJIT::SpecializedThunkJIT):
              (JSC::SpecializedThunkJIT::loadCellArgument):
              (JSC::SpecializedThunkJIT::loadJSStringArgument):
              (JSC::SpecializedThunkJIT::loadInt32Argument):
              (JSC::SpecializedThunkJIT::appendFailure):
              (JSC::SpecializedThunkJIT::returnInt32):
              (JSC::SpecializedThunkJIT::finalize):
              (JSC::SpecializedThunkJIT::argumentToVirtualRegister):
              (JSC::SpecializedThunkJIT::tagReturnAsInt32):
              * jit/ThunkGenerators.cpp: Added.
              (JSC::ThunkHelpers::stringImplDataOffset):
              (JSC::ThunkHelpers::jsStringLengthOffset):
              (JSC::ThunkHelpers::jsStringValueOffset):
              (JSC::charCodeAtThunkGenerator):
              * jit/ThunkGenerators.h: Added.
              * runtime/Executable.h:
              (JSC::NativeExecutable::NativeExecutable):
              * runtime/JSFunction.cpp:
              (JSC::JSFunction::JSFunction):
              * runtime/JSFunction.h:
              * runtime/JSGlobalData.h:
              (JSC::JSGlobalData::getThunk):
              * runtime/JSString.h:
              (JSC::):
              * runtime/JSValue.h:
                Protect some of the JSVALUE32 and JSVALUE32_64 only constants
                and function behind appropriate USE() guards to make it harder
                to use the wrong flags for the target build.
              * runtime/Lookup.cpp:
              (JSC::HashTable::createTable):
              (JSC::setUpStaticFunctionSlot):
              * runtime/Lookup.h:
              (JSC::HashEntry::initialize):
              (JSC::HashEntry::generator):
              (JSC::HashEntry::):
                Make the lookup tables use a specialized thunkGenerator
                if present
              * wtf/text/StringImpl.h:
      2010-04-26  Oliver Hunt  <oliver@apple.com>
      
              Reviewed by Gavin Barraclough.
      
              Need to support more efficient dispatch of lightweight builtins
              https://bugs.webkit.org/show_bug.cgi?id=38155
      
              Update bindings generation to include new thunk generator field
              in the property map hash tables.
      
              * bindings/scripts/CodeGeneratorJS.pm:
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@58286 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      8e293b78
    • eric@webkit.org's avatar
      2010-04-26 Eric Seidel <eric@webkit.org> · e6b847a2
      eric@webkit.org authored
              Reviewed by Adam Barth.
      
              Refactor results.html generation out into a new method and test it
              https://bugs.webkit.org/show_bug.cgi?id=38164
      
              Hopefully this results in no change in functionality.
      
              * Scripts/webkitpy/layout_tests/run_webkit_tests.py:
              * Scripts/webkitpy/layout_tests/run_webkit_tests_unittest.py:
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@58285 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      e6b847a2
    • oliver@apple.com's avatar
      Build fix · 613db6ad
      oliver@apple.com authored
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@58284 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      613db6ad
    • oliver@apple.com's avatar
      2010-04-26 Oliver Hunt <oliver@apple.com> · ec0e4008
      oliver@apple.com authored
              Reviewed by Gavin Barraclough.
      
              Factor some basic JS interface logic out of JIT and into a superclass
              https://bugs.webkit.org/show_bug.cgi?id=38163
      
              Create JSInterfaceJIT to hold some common low level functions for
              interacting with the JS RegisterFile.  Doing this separately from
              https://bugs.webkit.org/show_bug.cgi?id=38155 to ease reviewing.
      
              * JavaScriptCore.xcodeproj/project.pbxproj:
              * jit/JIT.h:
              * jit/JITInlineMethods.h:
              (JSC::JIT::emitJumpSlowCaseIfNotJSCell):
              * jit/JSInterfaceJIT.h: Added.
              (JSC::JSInterfaceJIT::emitLoadJSCell):
              (JSC::JSInterfaceJIT::emitJumpIfNotJSCell):
              (JSC::JSInterfaceJIT::emitLoadInt32):
              (JSC::JSInterfaceJIT::tagFor):
              (JSC::JSInterfaceJIT::payloadFor):
              (JSC::JSInterfaceJIT::addressFor):
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@58283 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      ec0e4008
    • abarth@webkit.org's avatar
      2010-04-26 Adam Barth <abarth@webkit.org> · b7e8ed4b
      abarth@webkit.org authored
              Unreviewed, rolling out r58265.
              http://trac.webkit.org/changeset/58265
              https://bugs.webkit.org/show_bug.cgi?id=38021
      
              This change prevents me from uploading patches.  It also breaks sheriff-bot.
      
              * Scripts/webkitpy/tool/steps/options.py:
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@58282 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      b7e8ed4b
    • abarth@webkit.org's avatar
      2010-04-26 Adam Barth <abarth@webkit.org> · 41d1a092
      abarth@webkit.org authored
              Reviewed by Eric Seidel.
      
              Move bindings test directory into the scripts directory
              https://bugs.webkit.org/show_bug.cgi?id=38161
      
              This test is really of the bindings scripts not of the bindings
              themselves.  By moving the files into the scripts directory, we'll be
              able to test JSC as well.
      
              * bindings/scripts/test/TestObj.idl: Renamed from WebCore/bindings/v8/test/TestObj.idl.
              * bindings/scripts/test/V8TestObj.cpp: Renamed from WebCore/bindings/v8/test/V8TestObj.cpp.
              (WebCore::):
              (WebCore::TestObjInternal::V8_USE):
              (WebCore::TestObjInternal::readOnlyIntAttrAttrGetter):
              (WebCore::TestObjInternal::readOnlyStringAttrAttrGetter):
              (WebCore::TestObjInternal::readOnlyTestObjAttrAttrGetter):
              (WebCore::TestObjInternal::intAttrAttrGetter):
              (WebCore::TestObjInternal::intAttrAttrSetter):
              (WebCore::TestObjInternal::stringAttrAttrGetter):
              (WebCore::TestObjInternal::stringAttrAttrSetter):
              (WebCore::TestObjInternal::testObjAttrAttrGetter):
              (WebCore::TestObjInternal::testObjAttrAttrSetter):
              (WebCore::TestObjInternal::attrWithExceptionAttrGetter):
              (WebCore::TestObjInternal::attrWithExceptionAttrSetter):
              (WebCore::TestObjInternal::attrWithSetterExceptionAttrGetter):
              (WebCore::TestObjInternal::attrWithSetterExceptionAttrSetter):
              (WebCore::TestObjInternal::attrWithGetterExceptionAttrGetter):
              (WebCore::TestObjInternal::attrWithGetterExceptionAttrSetter):
              (WebCore::TestObjInternal::voidMethodCallback):
              (WebCore::TestObjInternal::voidMethodWithArgsCallback):
              (WebCore::TestObjInternal::intMethodCallback):
              (WebCore::TestObjInternal::intMethodWithArgsCallback):
              (WebCore::TestObjInternal::objMethodCallback):
              (WebCore::TestObjInternal::objMethodWithArgsCallback):
              (WebCore::TestObjInternal::methodWithExceptionCallback):
              (WebCore::TestObjInternal::methodWithOptionalArgCallback):
              (WebCore::TestObjInternal::methodWithNonOptionalArgAndOptionalArgCallback):
              (WebCore::TestObjInternal::methodWithNonOptionalArgAndTwoOptionalArgsCallback):
              (WebCore::TestObjInternal::overloadedMethod1Callback):
              (WebCore::TestObjInternal::overloadedMethod2Callback):
              (WebCore::TestObjInternal::overloadedMethod3Callback):
              (WebCore::TestObjInternal::overloadedMethod4Callback):
              (WebCore::TestObjInternal::overloadedMethodCallback):
              (WebCore::ConfigureV8TestObjTemplate):
              (WebCore::V8TestObj::GetRawTemplate):
              (WebCore::V8TestObj::GetTemplate):
              (WebCore::V8TestObj::toNative):
              (WebCore::V8TestObj::HasInstance):
              (WebCore::V8TestObj::wrap):
              (WebCore::toV8):
              (WebCore::V8TestObj::derefObject):
              * bindings/scripts/test/V8TestObj.h: Renamed from WebCore/bindings/v8/test/V8TestObj.h.
      2010-04-26  Adam Barth  <abarth@webkit.org>
      
              Reviewed by Eric Seidel.
      
              Move bindings test directory into the scripts directory
              https://bugs.webkit.org/show_bug.cgi?id=38161
      
              Change script to point to the new location of these data files.
      
              * Scripts/run-bindings-tests:
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@58281 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      41d1a092
    • eric@webkit.org's avatar
      2010-04-26 Daniel Cheng <dcheng@chromium.org> · 7ac07174
      eric@webkit.org authored
              Reviewed by Jian Li.
      
              [chromium] Fix ChromiumDataObject::setURL to not populate its internal URL list with empty URLs.
              https://bugs.webkit.org/show_bug.cgi?id=38159
      
              No new tests.
      
              * platform/chromium/ChromiumDataObject.h:
              (WebCore::ChromiumDataObject::setURL):
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@58280 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      7ac07174
    • eric@webkit.org's avatar
      2010-04-26 Eric Seidel <eric@webkit.org> · 218e06f8
      eric@webkit.org authored
              Reviewed by Adam Barth.
      
              [chromium] new-run-webkit-tests hangs on Chromium Bots (OS X and Linux)
              https://bugs.webkit.org/show_bug.cgi?id=37987
      
              Rolled out:
              http://trac.webkit.org/changeset/58062
              http://trac.webkit.org/changeset/58060
              http://trac.webkit.org/changeset/58059
              http://trac.webkit.org/changeset/58055
              http://trac.webkit.org/changeset/58054
              and parts of:
              http://trac.webkit.org/changeset/58050
      
              I also wrote some new comments and a tiny amount of new
              code to help make ChromiumDriver.run_test easier to read.
      
              In order to unit-test my new code, I had to change ChromiumDriver
              to not automatically start itself when created.  That ended up
              being a lot of plumbing, but is hopefully easier to understand now.
      
              There are no tests for the (restored) wdiff code.  wdiff does not
              exist on all systems, so for now we will assume it worked since
              it is just old code being reverted.
      
               * Scripts/webkitpy/layout_tests/driver_test.py:
                - Use create_driver instead of start_driver, and be sure to call .stop()
               * Scripts/webkitpy/layout_tests/layout_package/dump_render_tree_thread.py:
                - Use create_driver instead of start_driver
               * Scripts/webkitpy/layout_tests/port/base.py:
                - Added a comment to explain that diffs are binary files.
                - Various patch reverts relating to wdiff
                - Add Driver._command_wrapper to share code between WebKitDriver and ChromiumDriver.
                - Made _command_wrapper use shlex.split to get rid of the FIXME.
               * Scripts/webkitpy/layout_tests/port/base_unittest.py: Added.
                - test the new _command_wrapper
               * Scripts/webkitpy/layout_tests/port/chromium.py:
               - Use _command_wrapper to get rid of a bunch of ugly code.
               - Make __init__ stop auto-starting.
               - Rename create_driver to start_driver.
               - Added _write_command_and_read_line to make it possible to
                 put a FIXME next to read_line() w/o having to put it in two places.
               - Moved test_shell command building into _test_shell_command and tested it.
               - Fix comments to say test_shell since ChromiumDriver is test_shell only.
               * Scripts/webkitpy/layout_tests/port/chromium_unittest.py: Added.
                - Test the new test_shell_command method.
               * Scripts/webkitpy/layout_tests/port/dryrun.py:
                - Rename create_driver to start_driver.
               * Scripts/webkitpy/layout_tests/port/test.py:
                - Rename create_driver to start_driver.
               * Scripts/webkitpy/layout_tests/port/webkit.py:
                - Rename create_driver to start_driver.
                - Treat output as binary arrays.
               * Scripts/webkitpy/layout_tests/test_types/test_type_base.py:
                - Treat diff files as binary.
               * Scripts/webkitpy/layout_tests/test_types/text_diff.py:
                - Treat diff files as binary.
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@58279 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      218e06f8
    • abarth@webkit.org's avatar
      2010-04-26 Adam Barth <abarth@webkit.org> · 469d2ef1
      abarth@webkit.org authored
              Unreviewed.  Mark run-bindings-tests executable so we can execute it.
      
              * Scripts/run-bindings-tests:
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@58278 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      469d2ef1
    • yuzo@google.com's avatar
      2010-04-26 Yuzo Fujishima <yuzo@google.com> · 11fd5329
      yuzo@google.com authored
              Unreviewed, Chromium test expectation change.
      
              To keep up with the change that turned on HTML5 DB AUTO_VACUUM.
              https://bugs.webkit.org/show_bug.cgi?id=36251
      
              * platform/chromium-mac/storage/quota-tracking-expected.txt: Removed.
              * platform/chromium-win/storage/quota-tracking-expected.txt: Removed.
              * platform/chromium/storage/quota-tracking-expected.txt: Added.
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@58277 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      11fd5329
    • eric@webkit.org's avatar
      2010-04-26 Daniel Cheng <dcheng@chromium.org> · fa7f9493
      eric@webkit.org authored
              Reviewed by Jian Li.
      
              [Chromium] Don't make file paths available in text/uri-list when dragging files.
              https://bugs.webkit.org/show_bug.cgi?id=25882
      
              Test will be checked in with WebCore/platform/mac fix.
      
              * platform/chromium/ClipboardChromium.cpp:
              (WebCore::ClipboardChromium::getData):
              (WebCore::ClipboardChromium::types):
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@58276 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      fa7f9493
    • tony@chromium.org's avatar
      2010-04-26 Tony Chang <tony@chromium.org> · ca3579b8
      tony@chromium.org authored
              Reviewed by David Levin.
      
              [chromium] build-webkit --chromium should build release by default
              https://bugs.webkit.org/show_bug.cgi?id=38028
      
              * Scripts/build-dumprendertree: Also should build release by default
              * Scripts/build-webkit: Make sure to pass command line args through
              * Scripts/webkitdirs.pm: Build the right configuration
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@58275 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      ca3579b8
    • dumi@chromium.org's avatar
      Unreviewed, fixing the build breakage introduced by r58269. · 1b6a3dc5
      dumi@chromium.org authored
      Turning on AUTO_VACUUM has increased the amount of space used by databases.
      
      * storage/quota-tracking-expected.txt:
      * storage/quota-tracking.html:
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@58274 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      1b6a3dc5
    • mjs@apple.com's avatar
      2010-04-26 Maciej Stachowiak <mjs@apple.com> · 5182d26f
      mjs@apple.com authored
              Reviewed by Darin Adler.
      
              REGRESSION (r57292): 1.5% page load speed regression from visited link information leak fix
              https://bugs.webkit.org/show_bug.cgi?id=38131
      
              I did a number of separate optimizations which speed up style
              resolution enough to more than make up for the regression. This
              measures as a total PLT speedup of somewhere between 1.5% and
              3.7%.
             
              Optimizations done:
              - Cache determineLinkState results, to avoid the need to repeatedly compute
              the visited link hash for the same element. This directly addresses much
              of the slowdown, since all elements get their style computed twice now.
              - Added a fast way to get the length of a CSSMutableStyleDeclaration, and use
              in CSSStyleSelector::matchRulesForList, since it was hot there.
              - Hoist some loop invariant code that's not detected by the compiler out of the
              main loop in matchRulesForList
              - inline CSSStyleSelector::initElement and locateSharedStyle,
              since there is only one call site in each case
              - Inline the common non-line fast case of determineLinkState, and split the rest into
              out-of-line determineLinkStateSlowCase.
              - Added inline versions of the functions called by
              visitedLinkHash (the version called by determineLinkState).
      
              * css/CSSMutableStyleDeclaration.cpp:
              (WebCore::CSSMutableStyleDeclaration::length): Implemented in terms of new
              inline nonvirtual mutableLength().
              * css/CSSMutableStyleDeclaration.h:
              (WebCore::CSSMutableStyleDeclaration::mutableLength): Added new nonvirtual
              inline way to get the length if you know you have a mutable style decl.
              * css/CSSStyleSelector.cpp:
              (WebCore::CSSStyleSelector::init): Clear cached link state.
              (WebCore::CSSStyleSelector::matchRulesForList): hoist some code out of the main
              loop and get style decl length more efficiently.
              (WebCore::CSSStyleSelector::initElement): inline (only one call site)
              (WebCore::CSSStyleSelector::SelectorChecker::determineLinkState): Inline fast
              case, call slow case.
              (WebCore::CSSStyleSelector::SelectorChecker::determineLinkStateSlowCase): Split
              most of the above function into this slow case helper.
              (WebCore::CSSStyleSelector::canShareStyleWithElement): Use the cache-enabled
              way to get the current link state.
              (WebCore::CSSStyleSelector::locateSharedStyle): inline
              (WebCore::CSSStyleSelector::styleForElement): Use the cache-enabled way
              to get the current link state.
              * css/CSSStyleSelector.h:
              (WebCore::CSSStyleSelector::currentElementLinkState): inline way to
              get link state for the current element; manages the cache
              * platform/LinkHash.cpp:
              (WebCore::visitedLinkHashInline): inline version of below function
              (WebCore::visitedLinkHash): call the inline version
              (WebCore::visitedURLInline): inline version of below function
              (WebCore::visitedURL): call the inline version
              (WebCore::visitedURL): call inline versions of above two functions
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@58273 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      5182d26f
    • weinig@apple.com's avatar
      Remove last use of WEB_THREAD. · d721d015
      weinig@apple.com authored
      Reviewed by Alexey Proskuryakov.
      
      * platform/mac/WebCoreObjCExtras.mm:
      (WebCoreObjCScheduleDeallocateOnMainThread): This can always use
      isMainThread().
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@58272 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      d721d015
    • dumi@chromium.org's avatar
      Turn on AUTO_VACUUM = INCREMENTAL for all HTML5 databases, and · a6368491
      dumi@chromium.org authored
      vacuum all databases when the number of free pages is at least 10%
      of the number of total pages. Also, adding a guard against a bug
      that was fixed in SQLite only starting with version 3.6.16.
      
      Reviewed by Dimitri Glazkov.
      
      https://bugs.webkit.org/show_bug.cgi?id=36251
      
      * platform/sql/SQLiteDatabase.cpp:
      (WebCore::SQLiteDatabase::totalSize):
      (WebCore::SQLiteDatabase::runIncrementalVacuumCommand):
      (WebCore::SQLiteDatabase::turnOnIncrementalAutoVacuum):
      * platform/sql/SQLiteDatabase.h:
      * platform/sql/SQLiteStatement.cpp:
      (WebCore::SQLiteStatement::prepare):
      * storage/Database.cpp:
      (WebCore::Database::performOpenAndVerify):
      (WebCore::Database::incrementalVacuumIfNeeded):
      * storage/Database.h:
      * storage/SQLTransaction.cpp:
      (WebCore::SQLTransaction::postflightAndCommit):
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@58270 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      a6368491
    • weinig@apple.com's avatar
      Fix Tiger build. · 67ec6b62
      weinig@apple.com authored
      * wtf/mac/MainThreadMac.mm:
      (WTF::isMainThread):
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@58268 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      67ec6b62
    • ggaren@apple.com's avatar
      <rdar://problem/7766413> · b5bd5904
      ggaren@apple.com authored
              
      Reviewed by Sam Weinig.
      
      Fixed a crash seen when using the JavaScriptCore API with WebKit.
              
      No layout test because DumpRenderTree doesn't use the JavaScriptCore API
      in this way.
      
      JavaScriptCore: 
      
      * interpreter/RegisterFile.cpp:
      (JSC::RegisterFile::setGlobalObject):
      (JSC::RegisterFile::clearGlobalObject):
      (JSC::RegisterFile::globalObject):
      * interpreter/RegisterFile.h:
      (JSC::RegisterFile::RegisterFile): Use WeakGCPtr for managing m_globalObject,
      since it's a weak pointer. (We never noticed this error before because,
      in WebKit, global objects always have a self-reference in a global variable,
      so marking the register file's global variables would keep m_globalObject
      alive. In the JavaScriptCore API, you can allocate a global object with
      no self-reference.)
      
      * runtime/JSActivation.h: Removed unneeded #include.
      
      * runtime/JSGlobalObject.cpp:
      (JSC::JSGlobalObject::~JSGlobalObject): Don't use ==, since a weak
      pointer is 0 when the object it points to runs its destructor....
      b5bd5904
    • weinig@apple.com's avatar
      Fix for https://bugs.webkit.org/show_bug.cgi?id=38097 · 092fd1fe
      weinig@apple.com authored
      Disentangle initializing the main thread from initializing threading
      
      Reviewed by Maciej Stachowiak.
      
      JavaScriptCore: 
      
      This is the first step in getting rid of the WEB_THREAD #define and
      paving the way to allowing mac both WebKit and WebKit2 to use the same
      WebCore.
      
      * JavaScriptCore.exp: Export initializeMainThread and initializeMainThreadToProcessMainThread.
      * JavaScriptCore.xcodeproj/project.pbxproj: Sort files.
      
      * wtf/MainThread.cpp:
      (WTF::mainThreadInitializationMutex):
      (WTF::mainThreadFunctionQueueMutex):
      (WTF::initializeMainThread):
      (WTF::deprecatedInitializeMainThread):
      * wtf/MainThread.h:
      Added Mac only initializeMainThreadToProcessMainThread which sets up callOnMainThread
      and isMainThead calls to assume that WebCore's main thread is also the
      process's main thread. Since it is possible that both initializeMainThread
      and initializeMainThreadToProcessMainThread could be called, the first one called
      wins (either will work).
      
      * wtf/Threading.h: Mo...
      092fd1fe
    • ojan@chromium.org's avatar
      2010-04-26 Ojan Vafai <ojan@chromium.org> · 6f440886
      ojan@chromium.org authored
              Reviewed by Eric Seidel.
      
              complete rietveld bugzilla integration
              https://bugs.webkit.org/show_bug.cgi?id=38021
      
              Makes --fancy-review the default. All this means is that the patch will
              be uploaded to rietveld in addition to bugs.webkit.org.
      
              * Scripts/webkitpy/tool/steps/options.py:
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@58265 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      6f440886
    • eric@webkit.org's avatar
      2010-04-26 Yongjun Zhang <yongjun_zhang@apple.com> · 35a4c112
      eric@webkit.org authored
              Reviewed by Alexey Proskuryakov.
      
              https://bugs.webkit.org/show_bug.cgi?id=38128
              Don't add empty credential to CredentialStorage.
      
              An empty credential is currently regarded as a invalid login because it means a missing value in
              protectionSpaceToCredentialMap.  This change makes it consistent with current WebCore's behavior
              by ignoring empty credentials.
      
              No new tests added since this only affects credential entered by user from credential dialog,
              which is not testable in DRT.
      
              * platform/network/mac/ResourceHandleMac.mm:
              (WebCore::ResourceHandle::receivedCredential):
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@58264 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      35a4c112
    • cjerdonek@webkit.org's avatar
      For check-webkit-style, renamed the style/processors/ directory · 5546ab55
      cjerdonek@webkit.org authored
      to style/checkers/.
      
      Reviewed by Shinichiro Hamaji.
      
      https://bugs.webkit.org/show_bug.cgi?id=38122
      
      * Scripts/webkitpy/style/checker.py:
        - Updated import statements.
      
      * Scripts/webkitpy/style/checker_unittest.py:
        - Updated import statements.
      
      * Scripts/webkitpy/style/checkers: Copied from WebKitTools/Scripts/webkitpy/style/processors.
      * Scripts/webkitpy/style/processors: Removed.
      * Scripts/webkitpy/style/processors/__init__.py: Removed.
      * Scripts/webkitpy/style/processors/common.py: Removed.
      * Scripts/webkitpy/style/processors/common_unittest.py: Removed.
      * Scripts/webkitpy/style/processors/cpp.py: Removed.
      * Scripts/webkitpy/style/processors/cpp_unittest.py: Removed.
      * Scripts/webkitpy/style/processors/python.py: Removed.
      * Scripts/webkitpy/style/processors/python_unittest.py: Removed.
      * Scripts/webkitpy/style/processors/python_unittest_input.py: Removed.
      * Scripts/webkitpy/style/processors/text.py: Removed.
      * Scripts/webkitpy/style/processors/text_unittest.py: Removed.
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@58263 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      5546ab55
    • eric@webkit.org's avatar
      2010-04-26 Laszlo Gombos <laszlo.1.gombos@nokia.com> · 0a75c42a
      eric@webkit.org authored
              Reviewed by Simon Hausmann.
      
              [Qt] Clean-up WebCore.pro after now that JavaScriptCore is built separately
              https://bugs.webkit.org/show_bug.cgi?id=38123
      
              HAVE_STDINT_H, and HAVE_PTHREAD_NP_H no longer needs to be defined
              for QtWebKit  as JavaScriptCore is built separately. These defines are only
              used  by JavaScriptCore and for JavaScriptCore these are already
              properly defined in JavaScriptCore/config.h.
      
              No new tests, no new functionality.
      
              * WebCore.pro:
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@58262 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      0a75c42a
    • ojan@chromium.org's avatar
      2010-04-06 Ojan Vafai <ojan@chromium.org> · 6395722d
      ojan@chromium.org authored
              Reviewed by Adam Barth.
      
              Include git commits in the diff for webkit-patch upload/land.
              https://bugs.webkit.org/show_bug.cgi?id=36394
      
              Adds --squash, --no-squash and --git-commit.
      
              --git-commit will use a specific local commit for land/upload.
              If a commit-range is specified, then that range is treated as
              a single squashed commit.
      
              --squash will squash all local changes including working copy changes
              into a single patch.
      
              --no-squash is the legacy behavior (upload only considers the working copy,
              land commits the working copy and then each local commit separately to SVN)
      
              If neither is specified, then an informative error is raised if there is
              more than one local commit or when there are local commit(s) and working
              copy changes.
      
              If the webkit-patch.squash git config parameter is set, then
              that will be respected instead of raising an error.
      
              * Scripts/check-webkit-style:
              * Scripts/webkitpy/common/checkout/api.py:
              * Scripts/webkitpy/common/checkout/api_unittest.py:
              * Scripts/webkitpy/common/checkout/scm.py:
              * Scripts/webkitpy/common/checkout/scm_unittest.py:
              * Scripts/webkitpy/style/optparser.py:
              --git-since is removed and --git-commit no longer implies commit_id..
              Instead, it treats that individual commit, but also supports commit ranges
              (e.g. commit_id..) as arguments.
              * Scripts/webkitpy/style/optparser_unittest.py:
              * Scripts/webkitpy/style_references.py:
              * Scripts/webkitpy/tool/commands/download.py:
              * Scripts/webkitpy/tool/commands/upload.py:
              * Scripts/webkitpy/tool/main.py:
              * Scripts/webkitpy/tool/mocktool.py:
              * Scripts/webkitpy/tool/steps/abstractstep.py:
              * Scripts/webkitpy/tool/steps/applypatchwithlocalcommit.py:
              * Scripts/webkitpy/tool/steps/checkstyle.py:
              * Scripts/webkitpy/tool/steps/commit.py:
              * Scripts/webkitpy/tool/steps/options.py:
              * Scripts/webkitpy/tool/steps/postdiff.py:
              * Scripts/webkitpy/tool/steps/preparechangelog.py:
              * Scripts/webkitpy/tool/steps/preparechangelogforrevert.py:
              * Scripts/webkitpy/tool/steps/updatechangelogswithreviewer.py:
              * Scripts/webkitpy/tool/steps/validatereviewer.py:
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@58261 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      6395722d
    • evan@chromium.org's avatar
      2010-04-26 Roman Gershman <romange@google.com> · 13e074ad
      evan@chromium.org authored
              Reviewed by Adam Barth.
      
              [Chromium] Font size in suggestions popup menu should be correlated with the font size of its text field.
              The following manual test checks for desired behavior.
      
              https://bugs.webkit.org/show_bug.cgi?id=37977
      
              * manual-tests/chromium/suggestions-popup-font-change.html: Added.
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@58260 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      13e074ad
    • evan@chromium.org's avatar
      2010-04-26 Roman Gershman <romange@google.com> · a04bf28b
      evan@chromium.org authored
              Reviewed by Adam Barth.
      
              [Chromium] Font size in suggestions popup menu should be correlated with the font size of its text field.
      
              https://bugs.webkit.org/show_bug.cgi?id=37977
      
              * src/SuggestionsPopupMenuClient.cpp:
              (WebKit::SuggestionsPopupMenuClient::initialize):
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@58259 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      a04bf28b
    • eric@webkit.org's avatar
      2010-04-26 Luiz Agostini <luiz.agostini@openbossa.org> · 7ca64e0d
      eric@webkit.org authored
              Reviewed by Kenneth Rohde Christiansen.
      
              View modes names in CSSValueKeywords.in
              https://bugs.webkit.org/show_bug.cgi?id=38125
      
              View mode names has changed in previous patch but CSSValueKeywords.in file was
              not updated.
      
              * css/CSSValueKeywords.in:
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@58258 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      7ca64e0d
    • hausmann@webkit.org's avatar
      [Qt] Fix compilation with RVCT 4 · d129331e
      hausmann@webkit.org authored
      https://bugs.webkit.org/show_bug.cgi?id=37727
      
      Reviewed by Kenneth Rohde Christiansen.
      
      Swap extern and declspec to fix visibility of symbol imported from QtGui.
      
      * page/qt/EventHandlerQt.cpp:
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@58257 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      d129331e
    • eric@webkit.org's avatar
      2010-04-26 Ruben Van Boxem <vanboxem.ruben@gmail.com> · 3c8c5a9d
      eric@webkit.org authored
              Reviewed by Adam Roben.
      
              Fixes for Win64 compilation under gcc (mingw-w64)
      
              *  WebCore/bridge/npapi.h: for win64 compatibility, mirroring mozilla-central, see Mozilla bug 560298
              *  WebCore/platform/Arena.h: uword is used to cast from pointers here. unsigned long is 32-bit on Windows (but 64-bit on mac), and too small to hold a pointer. uintptr_t is 32-bit on 32-bit systems (mac, linux and windows) and 64-bit on all 64-bit systems
              *  WebCore/platform/graphics/transforms/TransformationMatrix.h: let mingw-w64/w32 use MSVC codepath
              *  WebCore/platform/text/TextStream.cpp: let mingw-w64 use MSVC codepath
              *  WebCore/platform/text/TextStream.h: let mingw-w64 use MSVC codepath
              *  WebCore/plugins/PluginView.cpp: fix pointer casts on WIN64 and let mingw-w64 use MSVC codepath
              *  WebCore/plugins/win/PluginViewWin.cpp: fix pointer casts on WIN64
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@58256 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      3c8c5a9d