1. 28 Jun, 2008 9 commits
    • mitz@apple.com's avatar
      WebCore: · ef1d58db
      mitz@apple.com authored
              Reviewed by Darin Adler.
      
              - fix <rdar://problem/5994621> REGRESSION (r31090-r31114): Weather widget shows missing image icons briefly when (re)loaded
      
              * html/HTMLImageLoader.cpp:
              (WebCore::HTMLImageLoader::updateFromElement): Changed to not load an
              image if the 'src' attribute is the empty string and the document's base
              URI is a file: URL.
      
      LayoutTests:
      
              Reviewed by Darin Adler.
      
              - updated test and results for <rdar://problem/5994621> REGRESSION (r31090-r31114): Weather widget shows missing image icons briefly when (re)loaded
      
              * fast/images/load-img-with-empty-src-expected.txt:
              * fast/images/load-img-with-empty-src.html:
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@34853 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      ef1d58db
    • darin@apple.com's avatar
      2008-06-28 Darin Adler <darin@apple.com> · 87255fce
      darin@apple.com authored
              Reviewed by Oliver.
      
              - fix https://bugs.webkit.org/show_bug.cgi?id=19796
                optimize expressions with ignored results (especially post-increment)
      
              SunSpider says 0.9% faster.
      
              * VM/CodeGenerator.h:
              (KJS::CodeGenerator::tempDestination): Create a new temporary for
              ignoredResult() too, just as we would for 0.
              (KJS::CodeGenerator::finalDestination): Use the temporary if the
              register passed in is ignoredResult() too, just as we would for 0.
              (KJS::CodeGenerator::destinationForAssignResult): Return 0 if the
              passed in register is ignoredResult(), just as we would for 0.
              (KJS::CodeGenerator::moveToDestinationIfNeeded): Return 0 if the
              register passed in is ignoredResult(). What matters is that we
              don't want to emit a move. The return value won't be looked at.
              (KJS::CodeGenerator::emitNode): Allow ignoredResult() and pass it
              through to the node's emitCode function.
      
              * VM/RegisterID.h:
              (KJS::ignoredResult): Added. Special value to indicate the result of
              a node will be ignored and need not be put in any register.
      
              * kjs/nodes.cpp:
              (KJS::NullNode::emitCode): Do nothing if dst == ignoredResult().
              (KJS::BooleanNode::emitCode): Ditto.
              (KJS::NumberNode::emitCode): Ditto.
              (KJS::StringNode::emitCode): Ditto.
              (KJS::RegExpNode::emitCode): Ditto.
              (KJS::ThisNode::emitCode): Ditto.
              (KJS::ResolveNode::emitCode): Do nothing if dst == ignoredResult() and
              the identifier resolves to a local variable.
              (KJS::ObjectLiteralNode::emitCode): Do nothing if dst == ignoredResult()
              and the object is empty.
              (KJS::PostIncResolveNode::emitCode): If dst == ignoredResult(), then do
              nothing for the local constant case, and do a pre-increment in all the
              other cases.
              (KJS::PostDecResolveNode::emitCode): Ditto.
              (KJS::PostIncBracketNode::emitCode): Ditto.
              (KJS::PostDecBracketNode::emitCode): Ditto.
              (KJS::PostIncDotNode::emitCode): Ditto.
              (KJS::PostDecDotNode::emitCode): Ditto.
              (KJS::DeleteValueNode::emitCode): Pass ignoredResult() when evaluating
              the expression.
              (KJS::VoidNode::emitCode): Ditto.
              (KJS::TypeOfResolveNode::emitCode): If dst == ignoredResult(), do nothing
              if the identifier resolves to a local variable, and don't bother generating
              a typeof opcode in the other case.
              (KJS::TypeOfValueNode::emitCode): Ditto.
              (KJS::PreIncResolveNode::emitCode): Do nothing if dst == ignoredResult() and
              the identifier resolves to a local constant.
              (KJS::PreDecResolveNode::emitCode): Ditto.
              (KJS::AssignResolveNode::emitCode): Turn ignoredResult() into 0 in a couple
              places, because we need to put the result into a register so we can assign
              it. At other sites this is taken care of by functions like finalDestination.
              (KJS::CommaNode::emitCode): Pass ignoredResult() when evaluating the first
              expression.
              (KJS::ForNode::emitCode): Pass ignoredResult() when evaluating the first and
              third expressions.
              (KJS::ForInNode::emitCode): Pass ignoredResult() when evaluating the first
              expression.
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@34852 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      87255fce
    • darin@apple.com's avatar
      2008-06-28 Darin Adler <darin@apple.com> · 9ce7902a
      darin@apple.com authored
              Reviewed by Oliver.
      
              - https://bugs.webkit.org/show_bug.cgi?id=19787
                create most arrays from values in registers rather than with multiple put operations
      
              SunSpider says 0.8% faster.
      
              * VM/CodeBlock.cpp:
              (KJS::CodeBlock::dump): Added argv and argc parameters to new_array.
              * VM/Machine.cpp:
              (KJS::Machine::privateExecute): Ditto.
      
              * VM/CodeGenerator.cpp:
              (KJS::CodeGenerator::emitNewArray): Added.
              * VM/CodeGenerator.h: Added ElementNode* argument to emitNewArray.
      
              * kjs/nodes.cpp:
              (KJS::ArrayNode::emitCode): Pass the ElementNode to emitNewArray so it can be
              initialized with as many elements as possible. If the array doesn't have any
              holes in it, that's all that's needed. If there are holes, then emit some separate
              put operations for the other values in the array and for the length as needed.
      
              * kjs/nodes.h: Added some accessors to ElementNode so the code generator can
              iterate through elements and generate code to evaluate them. Now ArrayNode does
              not need to be a friend. Also took out some unused PlacementNewAdoptType
              constructors.
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@34851 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      9ce7902a
    • darin@apple.com's avatar
      2008-06-28 Darin Adler <darin@apple.com> · f40ce40c
      darin@apple.com authored
              Reviewed by Oliver Hunt.
      
              * kjs/nodes.h: Remove obsolete PlacementNewAdopt constructors.
              We no longer mutate the AST in place.
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@34850 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      f40ce40c
    • jmalonzo@webkit.org's avatar
      2008-06-28 Jan Michael Alonzo <jmalonzo@webkit.org> · da4cd44e
      jmalonzo@webkit.org authored
              Reviewed by Oliver Hunt.
      
              Build fix
      
              * VM/Machine.cpp: include stdio.h
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@34849 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      da4cd44e
    • zimmermann@webkit.org's avatar
      Reviewed by Oliver. · 26e01471
      zimmermann@webkit.org authored
      Update all (except four) SVG pixel tests, after a long time.
      Four tests are broken in trunk, filed bugs 19798 & 19799.
      
      Add all missing png/checksum files, and move files around which were misplaced.
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@34848 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      26e01471
    • zimmermann@webkit.org's avatar
      Reviewed by Oliver. · 9e2b264c
      zimmermann@webkit.org authored
      Copy <test>-expected.png from the right location to /tmp/layout-test-results.
      Use $expectedPixelDir instead of $expectedDir. Allows using SVG pixel tests again.
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@34847 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      9e2b264c
    • mitz@apple.com's avatar
      Reviewed by Oliver Hunt. · ac9ca1f0
      mitz@apple.com authored
              - make a test valid
      
              * fast/images/load-img-with-empty-src.html: Renamed the "status"
              variable to "results", because "status" is a Window property.
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@34846 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      ac9ca1f0
    • weinig@apple.com's avatar
      WebCore: · cdaa1970
      weinig@apple.com authored
      2008-06-27  Sam Weinig  <sam@webkit.org>
      
              Reviewed by Dan Bernstein.
      
              <rdar://problem/6025499> Make Cross-site XHR match the final specification
      
              Update the implemented subset of Access-Control for XMLHttpRequest to the 
              latest version. (Editor's Draft 25 May 2008)
      
              - Now differentiates between simple and non-simple cross-site requests, the later
                requiring a preflight.
              - Now sends request headers cross-site, limited by a blacklist.
              - Now allows access to cross-site response headers, limited by a whitelist.
              - Now sends request entity body for non-get cross-site requests after preflight.
      
              Tests: http/tests/xmlhttprequest/access-control-basic-blacklist-request-headers.html
                     http/tests/xmlhttprequest/access-control-basic-get-fail-non-simple.html
                     http/tests/xmlhttprequest/access-control-basic-whitelist-response-headers.html
      
              * xml/XMLHttpRequest.cpp:
              (WebCore::isOnAccessControllRequestHeaderBlackList):
              (WebCore::isOnAccessControlSimpleRequestHeaderWhitelist):
              (WebCore::isOnAccessControlResponseHeaderWhitelist):
              (WebCore::XMLHttpRequest::XMLHttpRequest):
              (WebCore::XMLHttpRequest::createRequest):
              (WebCore::XMLHttpRequest::makeSameOriginRequest):
              (WebCore::XMLHttpRequest::isSimpleCrossSiteAccessRequest):
              (WebCore::XMLHttpRequest::makeCrossSiteAccessRequest):
              (WebCore::XMLHttpRequest::makeSimpleCrossSiteAccessRequest):
              (WebCore::XMLHttpRequest::makeCrossSiteAccessRequestWithPreflight):
              (WebCore::XMLHttpRequest::handleAsynchronousPreflightResult):
              (WebCore::XMLHttpRequest::loadRequestAsynchronously):
              (WebCore::XMLHttpRequest::abort):
              (WebCore::XMLHttpRequest::clearRequest):
              (WebCore::XMLHttpRequest::setRequestHeader):
              (WebCore::XMLHttpRequest::setRequestHeaderInternal):
              (WebCore::XMLHttpRequest::getAllResponseHeaders):
              (WebCore::XMLHttpRequest::getResponseHeader):
              (WebCore::XMLHttpRequest::didFinishLoading):
              (WebCore::XMLHttpRequest::didFinishLoadingPreflight):
              (WebCore::XMLHttpRequest::didReceiveResponse):
              (WebCore::XMLHttpRequest::didReceiveResponsePreflight):
              (WebCore::XMLHttpRequest::didReceiveData):
              * xml/XMLHttpRequest.h:
      
      LayoutTests:
      
      2008-06-27  Sam Weinig  <sam@webkit.org>
      
              Reviewed by Dan Bernstein.
      
              <rdar://problem/6025499> Make Cross-site XHR match the final specification
              Add tests for the updated implemented subset of Access-Control for XMLHttpRequest.
      
              * http/tests/xmlhttprequest/access-control-basic-blacklist-request-headers-expected.txt: Added.
              * http/tests/xmlhttprequest/access-control-basic-blacklist-request-headers.html: Added.
              * http/tests/xmlhttprequest/access-control-basic-get-fail-non-simple-expected.txt: Added.
              * http/tests/xmlhttprequest/access-control-basic-get-fail-non-simple.html: Added.
              * http/tests/xmlhttprequest/access-control-basic-not-get-allow-async-expected.txt:
              * http/tests/xmlhttprequest/access-control-basic-not-get-allow-expected.txt:
              * http/tests/xmlhttprequest/access-control-basic-whitelist-response-headers-expected.txt: Added.
              * http/tests/xmlhttprequest/access-control-basic-whitelist-response-headers.html: Added.
              * http/tests/xmlhttprequest/resources/access-control-basic-allow-print-headers.cgi: Added.
              * http/tests/xmlhttprequest/resources/access-control-basic-get-fail-non-simple.cgi: Added.
              * http/tests/xmlhttprequest/resources/access-control-basic-whitelist-response-headers.cgi: Added.
              * http/tests/xmlhttprequest/set-dangerous-headers-expected.txt:
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@34845 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      cdaa1970
  2. 27 Jun, 2008 16 commits
    • weinig@apple.com's avatar
      2008-06-27 Sam Weinig <sam@webkit.org> · 2d983abd
      weinig@apple.com authored
              Reviewed by Oliver Hunt.
      
              Fix platforms that don't use AllInOne.cpp
      
              * kjs/BooleanConstructor.h:
              * kjs/BooleanPrototype.h:
              * kjs/FunctionPrototype.cpp:
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@34844 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      2d983abd
    • weinig@apple.com's avatar
      2008-06-27 Sam Weinig <sam@webkit.org> · 282b0a4e
      weinig@apple.com authored
              Rubber-stamped by Oliver Hunt.
      
              Splits ArrayConstructor out of ArrayPrototype.h/cpp
              Splits BooleanConstructor and BooleanPrototype out of BooleanObject.h/cpp
      
              * GNUmakefile.am:
              * JavaScriptCore.pri:
              * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj:
              * JavaScriptCore.xcodeproj/project.pbxproj:
              * JavaScriptCoreSources.bkl:
              * VM/Machine.cpp:
              * kjs/AllInOneFile.cpp:
              * kjs/ArrayConstructor.cpp: Copied from kjs/ArrayPrototype.cpp.
              * kjs/ArrayConstructor.h: Copied from kjs/ArrayPrototype.h.
              * kjs/ArrayPrototype.cpp:
              * kjs/ArrayPrototype.h:
              * kjs/BooleanConstructor.cpp: Copied from kjs/BooleanObject.cpp.
              * kjs/BooleanConstructor.h: Copied from kjs/BooleanObject.h.
              * kjs/BooleanObject.cpp:
              * kjs/BooleanObject.h:
              * kjs/BooleanPrototype.cpp: Copied from kjs/BooleanObject.cpp.
              * kjs/BooleanPrototype.h: Copied from kjs/BooleanObject.h.
              * kjs/CommonIdentifiers.h:
              * kjs/FunctionPrototype.cpp:
              * kjs/JSArray.cpp:
              * kjs/JSGlobalObject.cpp:
              * kjs/JSImmediate.cpp:
              * kjs/Shell.cpp:
              * kjs/internal.cpp:
              * kjs/nodes.cpp:
              * kjs/string_object.cpp:
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@34843 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      282b0a4e
    • oliver@apple.com's avatar
      Bug 18626: SQUIRRELFISH: support the "slow script" dialog... · c8f3a755
      oliver@apple.com authored
      Bug 18626: SQUIRRELFISH: support the "slow script" dialog <https://bugs.webkit.org/show_bug.cgi?id=18626>
      <rdar://problem/5973931> Slow script dialog needs to be reimplemented for squirrelfish
      
      Reviewed by Sam
      
      Adds support for the slow script dialog in squirrelfish.  This requires the addition
      of three new op codes, op_loop, op_loop_if_true, and op_loop_if_less which have the
      same behaviour as their simple jump equivalents but have an additional time out check.
      
      Additional assertions were added to other jump instructions to prevent accidentally
      creating loops with jump types that do not support time out checks.
      
      Sunspider does not report a regression, however this appears very sensitive to code
      layout and hardware, so i would expect up to a 1% regression on other systems.
      
      Part of this required moving the old timeout logic from JSGlobalObject and into Machine
      which is the cause of a number of the larger diff blocks.
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@34842 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      c8f3a755
    • weinig@apple.com's avatar
      2008-06-27 Sam Weinig <sam@webkit.org> · 2d7400ee
      weinig@apple.com authored
              Rubber-stamped by Mark Rowe.
      
              Clean up sorting in WebCore.xcodeproj.
      
              * WebCore.xcodeproj/project.pbxproj:
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@34841 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      2d7400ee
    • jmalonzo@webkit.org's avatar
      2008-06-27 Jan Michael Alonzo <jmalonzo@webkit.org> · 86e13f0e
      jmalonzo@webkit.org authored
              Gtk and Qt build fix: Remove RegisterFileStack from the build
              scripts.
      
              * GNUmakefile.am:
              * JavaScriptCore.pri:
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@34840 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      86e13f0e
    • adele@apple.com's avatar
      2008-06-27 Adele Peterson <adele@apple.com> · 2e1114a5
      adele@apple.com authored
              Reviewed by Geoff.
      
              Build fixes. 
      
              * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj:
              * VM/RegisterFile.h:
              (KJS::RegisterFile::RegisterFile):
              * kjs/JSGlobalObject.cpp:
              * kjs/collector.cpp:
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@34839 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      2e1114a5
    • ggaren@apple.com's avatar
      JavaScriptCore: · 82a62d05
      ggaren@apple.com authored
      2008-06-27  Geoffrey Garen  <ggaren@apple.com>
      
              Reviewed by Oliver Hunt.
              
              One RegisterFile to rule them all!
              
              SunSpider reports a 0.2% speedup.
      
              This patch removes the RegisterFileStack abstraction and replaces it with
              a single register file that
              
              (a) allocates a fixed storage area, including a fixed area for global
              vars, so that no operation may cause the register file to reallocate
              
              and
      
              (b) swaps between global storage areas when executing code in different 
              global objects.
              
              This patch also changes the layout of the register file so that all call
              frames, including call frames for global code, get a header. This is
              required to support re-entrant global code. It also just makes things simpler.
              
              * VM/CodeGenerator.cpp:
              (KJS::CodeGenerator::addGlobalVar): New function. Differs from addVar in
              that
              
              (a) global vars don't contribute to a CodeBlock's numLocals count, since
              global storage is fixed and allocated at startup
              
              and
              
              (b) references to global vars get shifted to elide intermediate stack
              between "r" and the global storage area.
              
              * VM/Machine.cpp:
              (KJS::Machine::dumpRegisters): Updated this function to match the new
              register file layout, and added the ability to dump exact identifiers
              for the different parts of a call frame.
              
              (KJS::Machine::unwindCallFrame): Updated this function to match the new
              register file layout.
               
              (KJS::Machine::execute): Updated this function to initialize a call frame
              header for global code, and to swap global storage areas when switching
              to execution in a new global object.
              
              (KJS::Machine::privateExecute): Got rid of "safeForReentry" and re-reading
              of registerBase because the register file is always safe for reentry now,
              and registerBase never changes.
              
              * VM/Machine.h: Moved the call frame header enum from Machine to RegisterFile,
              to resolve a header dependency problem (a good sign that the enum belonged
              in RegisterFile all along!)
      
              * VM/RegisterFile.cpp:
              * VM/RegisterFile.h: Changed RegisterFile to mmap a fixed size register
              area. This allows us to avoid re-allocting the register file later on.
              Instead, we rely on the OS to allocate physical pages to the register
              file as necessary.
      
              * VM/RegisterFileStack.cpp: Removed. Tada!
              * VM/RegisterFileStack.h: Removed. Tada!
      
              * kjs/DebuggerCallFrame.cpp: Updated this class to match the new
              register file layout, greatly simplifying it in the process.
      
              * kjs/JSActivation.h:
              * kjs/JSActivation.cpp: Moved some of this logic up to JSVariableObject,
              since the global object now needs to be able to tear off its registers
              just like the activation object.
      
              * kjs/JSFunction.cpp: No need to fiddle with the register file anymore.
      
              * kjs/JSGlobalObject.h:
              * kjs/JSGlobalObject.cpp: Updated JSGlobalObject to support moving its
              global storage area into and out of the register file.
      
              * kjs/PropertySlot.cpp: No need to fiddle with the register file anymore.
      
              * kjs/collector.cpp: Renamed markStackObjectConservatively to
              markConservatively, since we don't just mark stack objects this way.
              
              Also, added code to mark the machine's register file.
      
              * kjs/config.h: Moved some platforms #defines from here...
              * wtf/Platform.h: ...to here, to support mmap/VirtualAlloc detection
              in RegisterFile.h.
      
      LayoutTests:
      
      2008-06-26  Geoffrey Garen  <ggaren@apple.com>
      
              Reviewed by Oliver Hunt.
              
              Added a test for what happens when a script exceeds the limit on declared
              global variables.
      
              * fast/js/global-var-limit-expected.txt: Added.
              * fast/js/global-var-limit.html: Added.
      
              * fast/js/global-recursion-on-full-stack-expected.txt: Updated for new
              (slightly more correct) behavior. Since the stack overflow happens in the
              middle of a try/catch block, it should be caught, instead of logged to
              the console.
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@34838 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      82a62d05
    • jmalonzo@webkit.org's avatar
      2008-06-27 Jan Michael Alonzo <jmalonzo@webkit.org> · 0f431a15
      jmalonzo@webkit.org authored
              Reviewed by Christian Dywan.
      
              [Gtk] Initialize webview settings before running DRT tests
              http://bugs.webkit.org/show_bug.cgi?id=19778
      
              * DumpRenderTree/gtk/DumpRenderTree.cpp:
              (setDefaultsToConsistentStateValuesForTesting):
              (main):
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@34837 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      0f431a15
    • jmalonzo@webkit.org's avatar
      2008-06-27 Jan Michael Alonzo <jmalonzo@webkit.org> · 808b6178
      jmalonzo@webkit.org authored
              Reviewed by Darin Adler.
      
              Remove unnecessary options to make_names.pl command line
              http://bugs.webkit.org/show_bug.cgi?id=19777
      
              * DerivedSources.make:
              * GNUmakefile.am:
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@34836 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      808b6178
    • mitz@apple.com's avatar
      PlanetWebKit: · df76851f
      mitz@apple.com authored
              Reviewed by Timothy Hatcher.
      
              * wwwroot/planetwebkit.css: Reduced text shadow offsets.
      
      WebKitSite:
      
              Reviewed by Timothy Hatcher.
      
              * css/main.css: Reduced text shadow offsets.
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@34835 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      df76851f
    • aroben@apple.com's avatar
      Change WebKitGraphics truncation functions to return the length of the truncated string · 0b0f4c64
      aroben@apple.com authored
              Reviewed by Darin Adler.
      
              * WebKitGraphics.cpp:
              (CenterTruncateStringToWidth):
              (RightTruncateStringToWidth):
              Return the length.
              * WebKitGraphics.h:
              The truncation functions now return an unsigned int that is the length
              of the truncated string. The whole file has been marked extern "C" to
              keep the symbols for these functions from changing (which would break
              nightly builds).
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@34834 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      0b0f4c64
    • abarth@webkit.org's avatar
      Fix mime-types. Not sure how to do this with git. · 0e2a03ae
      abarth@webkit.org authored
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@34833 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      0e2a03ae
    • abarth@webkit.org's avatar
      WebCore: · de07f858
      abarth@webkit.org authored
      2008-06-27  Adam Barth  <abarth@webkit.org>
      
              Reviewed by Darin Adler.
      
              https://bugs.webkit.org/show_bug.cgi?id=19784
      
              Properly handle untermianted <!-- comments in <textarea>s.
      
              Tests: fast/parser/open-comment-in-script-tricky.html
                     fast/parser/open-comment-in-style.html
                     fast/parser/open-comment-in-textarea.html
      
              * html/HTMLTokenizer.cpp:
              (WebCore::HTMLTokenizer::finish):
      
      LayoutTests:
      
      2008-06-27  Adam Barth  <abarth@webkit.org>
      
              Reviewed by Darin Adler.
      
              Test our handling of unterminated <!-- comments in various special
              parsing contexts.  This change does not test our handling of
              unterminated comments in <title> or <iframe> because I'm unsure whether
              our behaviour is correct.
      
              * fast/parser/open-comment-in-script-tricky-expected.txt: Added.
              * fast/parser/open-comment-in-script-tricky.html: Added.
              * fast/parser/open-comment-in-style.html: Added.
              * fast/parser/open-comment-in-textarea.html: Added.
              * platform/mac/fast/parser/open-comment-in-style-expected.checksum: Added.
              * platform/mac/fast/parser/open-comment-in-style-expected.png: Added.
              * platform/mac/fast/parser/open-comment-in-style-expected.txt: Added.
              * platform/mac/fast/parser/open-comment-in-textarea-expected.checksum: Added.
              * platform/mac/fast/parser/open-comment-in-textarea-expected.png: Added.
              * platform/mac/fast/parser/open-comment-in-textarea-expected.txt: Added.
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@34832 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      de07f858
    • abarth@webkit.org's avatar
      WebCore: · 05bd5184
      abarth@webkit.org authored
      2008-06-27  Adam Barth  <abarth@webkit.org>
      
              Reviewed by Darin Adler.
      
              Fix <https://bugs.webkit.org/show_bug.cgi?id=19784>:
                Text areas in Wikipedia edit pages are empty, following content is missing
      
              Don't treat entities as comment starters in parseSpecial.
      
              Tests: fast/parser/comment-in-iframe.html
                     fast/parser/entity-comment-in-iframe.html
                     fast/parser/entity-comment-in-script-tricky.html
                     fast/parser/entity-comment-in-style.html
                     fast/parser/entity-comment-in-textarea.html
                     fast/parser/entity-comment-in-title.html
      
              * html/HTMLTokenizer.cpp:
              (WebCore::HTMLTokenizer::parseSpecial):
      
      LayoutTests:
      
      2008-06-27  Adam Barth  <abarth@webkit.org>
      
              Reviewed by Darin Adler.
      
              https://bugs.webkit.org/show_bug.cgi?id=19784
      
              Test that entities are not used to start comments.
      
              * fast/parser/comment-in-iframe-expected.txt: Added.
              * fast/parser/comment-in-iframe.html: Added.
              * fast/parser/entity-comment-in-iframe-expected.txt: Added.
              * fast/parser/entity-comment-in-iframe.html: Added.
              * fast/parser/entity-comment-in-script-tricky-expected.txt: Added.
              * fast/parser/entity-comment-in-script-tricky.html: Added.
              * fast/parser/entity-comment-in-style.html: Added.
              * fast/parser/entity-comment-in-textarea.html: Added.
              * fast/parser/entity-comment-in-title-expected.txt: Added.
              * fast/parser/entity-comment-in-title.html: Added.
              * platform/mac/fast/parser/entity-comment-in-style-expected.checksum: Added.
              * platform/mac/fast/parser/entity-comment-in-style-expected.png: Added.
              * platform/mac/fast/parser/entity-comment-in-style-expected.txt: Added.
              * platform/mac/fast/parser/entity-comment-in-textarea-expected.checksum: Added.
              * platform/mac/fast/parser/entity-comment-in-textarea-expected.png: Added.
              * platform/mac/fast/parser/entity-comment-in-textarea-expected.txt: Added.
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@34831 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      05bd5184
    • antti@apple.com's avatar
      WebCore: · e2004296
      antti@apple.com authored
      2008-06-27  Antti Koivisto  <antti@apple.com>
      
              Reviewed by Oliver.
              
              <rdar://problem/6030720> 
              REGRESSION: Discrete animation between incompatible paths does not work
      
              Fall back to discrete path animation if paths are not suitable for morphing.
              
              Test: svg/custom/animate-path-discrete.svg
              
              * svg/SVGAnimateElement.cpp:
              (WebCore::SVGAnimateElement::calculateAnimatedValue):
      
      LayoutTests:
      
      2008-06-27  Antti Koivisto  <antti@apple.com>
      
              Reviewed by Oliver.
              
              <rdar://problem/6030720> 
              REGRESSION: Discrete animation between incompatible paths does not work
      
              * svg/custom/animate-path-discrete.svg: Added.
              * platform/mac/svg/custom/animate-path-discrete-expected.txt: Added.
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@34829 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      e2004296
    • darin@apple.com's avatar
      2008-06-26 Darin Adler <darin@apple.com> · 61620cf9
      darin@apple.com authored
              * Scripts/check-for-weak-vtables: Fixed comment.
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@34827 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      61620cf9
  3. 26 Jun, 2008 15 commits
    • darin@apple.com's avatar
      2008-06-26 Darin Adler <darin@apple.com> · 99eeddc7
      darin@apple.com authored
              * Scripts/check-for-weak-vtables: Added.
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@34826 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      99eeddc7
    • mrowe@apple.com's avatar
      Speculative fix for the Windows build. · b0edc921
      mrowe@apple.com authored
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@34825 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      b0edc921
    • mrowe@apple.com's avatar
      2008-06-26 Mark Rowe <mrowe@apple.com> · 90bfc79c
      mrowe@apple.com authored
              Reviewed by Darin Adler and Geoff Garen.
      
              Fix the malloc zone introspection functions so that malloc_zone_statistics does not give
              bogus output in an application that uses JavaScriptCore.
      
              * kjs/CollectorHeapIntrospector.cpp:
              (KJS::CollectorHeapIntrospector::statistics): Return statistics about memory allocated by the collector.
              * kjs/CollectorHeapIntrospector.h:
              * wtf/FastMalloc.cpp: Zero out the statistics.  FastMalloc doesn't track this information at present.
              Returning zero for all values is preferable to returning bogus data.
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@34824 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      90bfc79c
    • dsmith@webkit.org's avatar
      WebCore: · 6e5aa3f8
      dsmith@webkit.org authored
      2008-06-26  David Smith  <catfish.man@gmail.com>
      
              Reviewed by Sam Weinig.
              
              https://bugs.webkit.org/show_bug.cgi?id=19002
              
              Optimize simple id selectors in querySelector/querySelectorAll. 
              ~4.4x speedup on the 4 subtests of http://webkit.org/perf/slickspeed/ that it applies to.
      
              * dom/Document.h:
              (WebCore::Document::containsMultipleElementsWithId): Added to allow optimizing the common case of no duplicates
              * dom/Node.cpp:
              (WebCore::Node::querySelector): Uses getElementById instead of DOM traversal where possible now
              * dom/SelectorNodeList.cpp:
              (WebCore::createSelectorNodeList): Uses getElementById instead of DOM traversal where possible now
      
      LayoutTests:
      
      2008-06-26  David Smith  <catfish.man@gmail.com>
      
              Reviewed by Sam Weinig.
              
              https://bugs.webkit.org/show_bug.cgi?id=19002
              
              Optimize simple id selectors in querySelector/querySelectorAll. 
              ~4.4x speedup on the 4 subtests of http://webkit.org/perf/slickspeed/ that it applies to.
      
              * fast/dom/SelectorAPI/dumpNodeList-expected.txt:
              * fast/dom/SelectorAPI/dumpNodeList.html: Add tests for finding ids not in the document, and finding duplicate ids
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@34823 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      6e5aa3f8
    • mitz@apple.com's avatar
      WebCore: · c13cd254
      mitz@apple.com authored
              Reviewed by Darin Adler.
      
              - fix <rdar://problem/3099526> Find command doesn't search form input controls (textareas and text fields)
                http://bugs.webkit.org/show_bug.cgi?id=7023
      
              Test: editing/selection/find-in-text-control.html
      
              * WebCore.base.exp: Updated the TextIterator constructor signature.
      
              * editing/TextIterator.cpp:
              (WebCore::TextIterator::TextIterator): Added an enterTextControls
              boolean parameter that determines whether the iterator should visit text
              inside text areas and text fields. Added code to initialize the
              m_inShadowContent member variable based on whether the range is in
              shadow content.
              (WebCore::TextIterator::advance): Added code to step out of shadow
              content.
              (WebCore::TextIterator::handleReplacedElement): Added code to enter
              text controls if desired.
              (WebCore::CharacterIterator::CharacterIterator): Added an
              enterTextControls boolean parameter that determines whether the iterator
              should visit text inside text areas and text fields. This is passed to
              the TextIterator constructor.
              (WebCore::findPlainText): Changed to use a CharacterIterator that
              visits text controls.
      
              * editing/TextIterator.h: Added member variables to track whether the
              current node is in a shadow tree and whether the iterator should visit
              text controls.
      
              * page/Frame.cpp:
              (WebCore::Frame::findString): Changed to find inside text controls.
              (WebCore::Frame::markAllMatchesForText): Ditto.
      
              * rendering/RenderTextControl.cpp:
              (WebCore::RenderTextControl::innerTextElement): Added.
              * rendering/RenderTextControl.h: Added innerTextElement(), a private
              accessor method that is accessible to TextIterator through class
              friendship.
      
      LayoutTests:
      
              Reviewed by Darin Adler.
      
              - test for <rdar://problem/3099526> Find command doesn't search form input controls (textareas and text fields)
                http://bugs.webkit.org/show_bug.cgi?id=7023
      
              * editing/selection/find-in-text-control-expected.txt: Added.
              * editing/selection/find-in-text-control.html: Added.
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@34822 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      c13cd254
    • darin@apple.com's avatar
      2008-06-26 Darin Adler <darin@apple.com> · 59c4d4eb
      darin@apple.com authored
              Reviewed by Geoff.
      
              - https://bugs.webkit.org/show_bug.cgi?id=19721
                speed up JavaScriptCore by not wrapping strings in objects just
                to call functions on them
      
              - optimize UString append and the replace function a bit
      
              SunSpider says 1.8% faster.
      
              * JavaScriptCore.exp: Updated.
      
              * VM/JSPropertyNameIterator.cpp: Added include of JSString.h, now needed
              because jsString returns a JSString*.
      
              * VM/Machine.cpp:
              (KJS::Machine::privateExecute): Removed the toObject call from native
              function calls. Also removed code to put the this value into a register.
      
              * kjs/BooleanObject.cpp:
              (KJS::booleanProtoFuncToString): Rewrite to handle false and true
              separately.
      
              * kjs/FunctionPrototype.cpp:
              (KJS::constructFunction): Use single-character append rather than building
              a string for each character.
              * kjs/JSFunction.cpp:
              (KJS::globalFuncUnescape): Ditto.
      
              * kjs/JSImmediate.cpp:
              (KJS::JSImmediate::prototype): Added. Gets the appropriate prototype for
              use with an immediate value. To be used instead of toObject when doing a
              get on an immediate value.
              * kjs/JSImmediate.h: Added prototype.
      
              * kjs/JSObject.cpp:
              (KJS::JSObject::toString): Tweaked formatting.
      
              * kjs/JSObject.h:
              (KJS::JSValue::get): Use prototype instead of toObject to avoid creating
              an object wrapper just to search for properties. This also saves an
              unnecessary hash table lookup since the object wrappers themselves don't
              have any properties.
      
              * kjs/JSString.h: Added toThisString and toThisJSString.
      
              * kjs/JSValue.cpp:
              (KJS::JSCell::toThisString): Added.
              (KJS::JSCell::toThisJSString): Added.
              (KJS::JSCell::getJSNumber): Added.
              (KJS::jsString): Changed return type to JSString*.
              (KJS::jsOwnedString): Ditto.
      
              * kjs/JSValue.h:
              (KJS::JSValue::toThisString): Added.
              (KJS::JSValue::toThisJSString): Added.
              (KJS::JSValue::getJSNumber): Added.
      
              * kjs/NumberObject.cpp:
              (KJS::NumberObject::getJSNumber): Added.
              (KJS::integer_part_noexp): Append C string directly rather than first
              turning it into a UString.
              (KJS::numberProtoFuncToString): Use getJSNumber to check if the value
              is a number rather than isObject(&NumberObject::info). This works for
              immediate numbers, number cells, and NumberObject instances.
              (KJS::numberProtoFuncToLocaleString): Ditto.
              (KJS::numberProtoFuncValueOf): Ditto.
              (KJS::numberProtoFuncToFixed): Ditto.
              (KJS::numberProtoFuncToExponential): Ditto.
              (KJS::numberProtoFuncToPrecision): Ditto.
              * kjs/NumberObject.h: Added getJSNumber.
      
              * kjs/PropertySlot.cpp: Tweaked comment.
      
              * kjs/internal.cpp:
              (KJS::JSString::toThisString): Added.
              (KJS::JSString::toThisJSString): Added.
              (KJS::JSString::getOwnPropertySlot): Changed code that searches the
              prototype chain to start with the string prototype and not create a
              string object.
              (KJS::JSNumberCell::toThisString): Added.
              (KJS::JSNumberCell::getJSNumber): Added.
      
              * kjs/lookup.cpp:
              (KJS::staticFunctionGetter): Moved here, because there's no point in
              having a function that's only used for a function pointer be inline.
              (KJS::setUpStaticFunctionSlot): New function for getStaticFunctionSlot.
      
              * kjs/lookup.h:
              (KJS::staticValueGetter): Don't mark this inline. It doesn't make sense
              to have a function that's only used for a function pointer be inline.
              (KJS::getStaticFunctionSlot): Changed to get properties from the parent
              first before doing any handling of functions. This is the fastest way
              to return the function once the initial setup is done.
      
              * kjs/string_object.cpp:
              (KJS::StringObject::getPropertyNames): Call value() instead of getString(),
              avoiding an unnecessary virtual function call (the call to the type()
              function in the implementation of the isString() function).
              (KJS::StringObject::toString): Added.
              (KJS::StringObject::toThisString): Added.
              (KJS::StringObject::toThisJSString): Added.
              (KJS::substituteBackreferences): Rewrote to use a appending algorithm
              instead of a the old one that tried to replace in place.
              (KJS::stringProtoFuncReplace): Merged this function and the replace function.
              Replaced the hand-rolled dynamic arrays for source ranges and replacements
              with Vector.
              (KJS::stringProtoFuncToString): Handle JSString as well as StringObject.
              Removed the separate valueOf implementation, since it can just share this.
              (KJS::stringProtoFuncCharAt): Use toThisString, which handles JSString as
              well as StringObject, and is slightly more efficient than the old code too.
              (KJS::stringProtoFuncCharCodeAt): Ditto.
              (KJS::stringProtoFuncConcat): Ditto.
              (KJS::stringProtoFuncIndexOf): Ditto.
              (KJS::stringProtoFuncLastIndexOf): Ditto.
              (KJS::stringProtoFuncMatch): Ditto.
              (KJS::stringProtoFuncSearch): Ditto.
              (KJS::stringProtoFuncSlice): Ditto.
              (KJS::stringProtoFuncSplit): Ditto.
              (KJS::stringProtoFuncSubstr): Ditto.
              (KJS::stringProtoFuncSubstring): Ditto.
              (KJS::stringProtoFuncToLowerCase): Use toThisJSString.
              (KJS::stringProtoFuncToUpperCase): Ditto.
              (KJS::stringProtoFuncToLocaleLowerCase): Ditto.
              (KJS::stringProtoFuncToLocaleUpperCase): Ditto.
              (KJS::stringProtoFuncLocaleCompare): Ditto.
              (KJS::stringProtoFuncBig): Use toThisString.
              (KJS::stringProtoFuncSmall): Ditto.
              (KJS::stringProtoFuncBlink): Ditto.
              (KJS::stringProtoFuncBold): Ditto.
              (KJS::stringProtoFuncFixed): Ditto.
              (KJS::stringProtoFuncItalics): Ditto.
              (KJS::stringProtoFuncStrike): Ditto.
              (KJS::stringProtoFuncSub): Ditto.
              (KJS::stringProtoFuncSup): Ditto.
              (KJS::stringProtoFuncFontcolor): Ditto.
              (KJS::stringProtoFuncFontsize): Ditto.
              (KJS::stringProtoFuncAnchor): Ditto.
              (KJS::stringProtoFuncLink): Ditto.
      
              * kjs/string_object.h: Added toString, toThisString, and toThisJSString.
      
              * kjs/ustring.cpp:
              (KJS::UString::append): Added a version that takes a character pointer and
              size, so we don't have to create a UString just to append to another UString.
              * kjs/ustring.h:
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@34821 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      59c4d4eb
    • darin@apple.com's avatar
      2008-06-26 Darin Adler <darin@apple.com> · ffec04e7
      darin@apple.com authored
              Reviewed by Geoff.
      
              * bridge/runtime.h: Added include of JSString.h since jsString will soon
              change to return a JSString*.
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@34820 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      ffec04e7
    • darin@apple.com's avatar
      2008-06-26 Darin Adler <darin@apple.com> · a17ba6a5
      darin@apple.com authored
              Reviewed by Geoff.
      
              * JSUtils.cpp: Added include of <JavaScriptCore/JSString.h> since jsString
              will soon be changed to return a JSString*.
              * UserObjectImp.cpp: Ditto.
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@34819 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      a17ba6a5
    • adele@apple.com's avatar
      2008-06-26 Adele Peterson <adele@apple.com> · b64f5e4f
      adele@apple.com authored
              Fix suggested by Eric Carlson, added by me, reviewed by Adam.
      
              Fix for <rdar://problem/5733006> <video> and <audio> element should not prompt user for missing files
      
              * platform/graphics/mac/MediaPlayerPrivateQTKit.mm: (WebCore::MediaPlayerPrivate::createQTMovie):
              Set object with key QTMovieAskUnresolvedDataRefsAttribute to NO in the attributes dictionary passed to -[QTMovie initWithAttributes:]
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@34818 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      b64f5e4f
    • weinig@apple.com's avatar
      2008-06-26 Sam Weinig <sam@webkit.org> · 5367c419
      weinig@apple.com authored
              Reviewed by John Sullivan.
      
              <rdar://problem/6031969> Crash in SecurityOrigin code going Forward to a page in the back/forward cache
      
              * loader/FrameLoader.cpp:
              (WebCore::FrameLoader::open): Make sure to update the SecurityOrigin and URL of the 
              DOMWindow when opening a CachedPage.
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@34817 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      5367c419
    • bdakin@apple.com's avatar
      WebKitTools: · d602b686
      bdakin@apple.com authored
      2008-06-26  Beth Dakin  <bdakin@apple.com>
      
              Reviewed by Sam.
      
              Do not include AXPosition in the dump of all of the accessibility 
              attributes since it is screen-specific.
      
              * DumpRenderTree/mac/AccessibilityControllerMac.mm:
              (AccessibilityController::allAttributesOfFocusedElement):
      
      LayoutTests:
      
      2008-06-26  Beth Dakin  <bdakin@apple.com>
      
              Reviewed by Sam.
      
              Updated results that will pass on all platforms.
      
              * accessibility/document-attributes-expected.txt:
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@34816 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      d602b686
    • eric@webkit.org's avatar
      Reviewed by Beth Dakin. · e0a5162b
      eric@webkit.org authored
              CSS @import statements can cause DocLoader to use
              a dead Frame pointer.
              https://bugs.webkit.org/show_bug.cgi?id=19618
      
              The fix is to get rid of the Frame pointer on DocLoader.
      
              I also took this opportunity to clean up Document::detach
              a little to make it clear why we clear the m_frame pointer
              there, and to note that in the future we should stop
              using Node::detach to mean "tear down the whole rendering
              tree and detach from the frame".
      
              Test: I don't know how to make a good test for this, the test
              we have is network timing dependent and does not make a good
              layout test.
      
              * dom/Document.cpp:
              (WebCore::Document::Document):
              (WebCore::Document::detach):
              (WebCore::Document::clearFramePointer):
              * dom/Document.h:
              * loader/DocLoader.cpp:
              (WebCore::DocLoader::frame):
              * loader/DocLoader.h:
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@34815 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      e0a5162b
    • weinig@apple.com's avatar
      2008-06-26 Sam Weinig <sam@webkit.org> · 3ca31501
      weinig@apple.com authored
              Update result after adding new progress events to XMLHttpRequest.
      
              * fast/dom/xmlhttprequest-get-expected.txt:
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@34814 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      3ca31501
    • bdakin@apple.com's avatar
      2008-06-26 Beth Dakin <bdakin@apple.com> · c8b6a2a3
      bdakin@apple.com authored
              Reviewed by Anders.
      
              This is a speculative fix for the failing layout test on the build 
              bot. It seems that the problem that the Build Bot is having is 
              Tiger-specific. On Tiger, [NSValue description] was not very smart. 
              So I replaced our call to description with a hand-rolled equivalent 
              that will match on both platforms. 
      
              * DumpRenderTree/mac/AccessibilityControllerMac.mm:
              (descriptionOfValue):
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@34813 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      c8b6a2a3
    • andersca@apple.com's avatar
      WebKit: · 04dd6c3b
      andersca@apple.com authored
      2008-06-26  Anders Carlsson  <andersca@apple.com>
      
              Reviewed by Darin.
      
              Add MainThreadObjectDeallocator to sources.
              
              * WebKit.xcodeproj/project.pbxproj:
      
      WebKit/mac:
      
      2008-06-26  Anders Carlsson  <andersca@apple.com>
      
              Reviewed by Darin.
      
              Add a new MainThreadObjectDeallocator which can schedule dealloc calls on the main thread
              if necessary. Use this for the WebView class. 
                      
              * WebView/MainThreadObjectDeallocator.h: Added.
              * WebView/MainThreadObjectDeallocator.mm: Added.
              (deallocCallback):
              (scheduleDeallocateOnMainThread):
              * WebView/WebView.mm:
              (-[WebViewPrivate dealloc]):
              (+[WebView initialize]):
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@34812 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      04dd6c3b