1. 08 Sep, 2011 40 commits
    • oliver@apple.com's avatar
      Use bump allocator for initial property storage · ba6907b7
      oliver@apple.com authored
      https://bugs.webkit.org/show_bug.cgi?id=67494
      
      Reviewed by Geoffrey Garen.
      
      ../../../../Volumes/Data/git/WebKit/OpenSource/Source/JavaScriptCore:
      
      Use a bump allocator for initial allocation of property storage,
      and promote to fastMalloc memory only if it survives a GC pass.
      
      Comes out as a 1% win on v8, and is a useful step on the way to
      GC allocation of all property storage.
      
      * JavaScriptCore.exp:
      * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
      * JavaScriptCore.xcodeproj/project.pbxproj:
      * heap/Heap.cpp:
      (JSC::Heap::collect):
      * heap/Heap.h:
      (JSC::Heap::allocatePropertyStorage):
      (JSC::Heap::inPropertyStorageNursery):
      * heap/MarkedBlock.h:
      * heap/NewSpace.cpp:
      (JSC::NewSpace::NewSpace):
      * heap/NewSpace.h:
      (JSC::NewSpace::resetPropertyStorageNursery):
      (JSC::NewSpace::allocatePropertyStorage):
      (JSC::NewSpace::inPropertyStorageNursery):
      * jit/JITStubs.cpp:
      (JSC::DEFINE_STUB_FUNCTION):
      * runtime/JSObject.cpp:
      (JSC::JSObject::allocatePropertyStorage):
      * runtime/JSObject.h:
      (JSC::JSObject::isUsingInlineStorage):
      (JSC::JSObject::JSObject):
      (JSC::JSObject::propertyStorage):
      (JSC::JSObject::~JSObject):
      (JSC::JSObject::putDirectInternal):
      (JSC::JSObject::putDirectWithoutTransition):
      (JSC::JSObject::putDirectFunctionWithoutTransition):
      (JSC::JSObject::transitionTo):
      (JSC::JSObject::visitChildrenDirect):
      * runtime/StorageBarrier.h: Added.
      (JSC::StorageBarrier::StorageBarrier):
      (JSC::StorageBarrier::set):
      (JSC::StorageBarrier::operator->):
      (JSC::StorageBarrier::operator*):
      (JSC::StorageBarrier::operator[]):
      (JSC::StorageBarrier::get):
      
      ../../../../Volumes/Data/git/WebKit/OpenSource/Source/WebCore:
      
      Add a forwarding header.
      
      * ForwardingHeaders/runtime/StorageBarrier.h: Added.
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@94814 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      ba6907b7
    • rolandsteiner@chromium.org's avatar
      Unreviewed, rolling out r94809. · 55b28ab6
      rolandsteiner@chromium.org authored
      http://trac.webkit.org/changeset/94809
      https://bugs.webkit.org/show_bug.cgi?id=67718
      
      commit _still_ premature, despite CQ eagerness
      
      Source/WebCore:
      
      * html/HTMLAttributeNames.in:
      * html/HTMLStyleElement.cpp:
      * html/HTMLStyleElement.h:
      * html/HTMLStyleElement.idl:
      
      LayoutTests:
      
      * fast/css/style-scoped/basic-attribute-expected.txt: Removed.
      * fast/css/style-scoped/basic-attribute.html: Removed.
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@94813 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      55b28ab6
    • bweinstein@apple.com's avatar
      Source/WebKit2: WebKit2: Assertion when calling didPerform*Redirect on null... · da7434ad
      bweinstein@apple.com authored
      Source/WebKit2: WebKit2: Assertion when calling didPerform*Redirect on null source/destination URL string
      https://bugs.webkit.org/show_bug.cgi?id=67794
      <rdar://problem/9892024>
              
      Don't call didPerformClientRedirect or didPerformServerRedirect when source or destination URL string
      is empty or null.
              
      If we call didPerformClientRedirect or didPerformServerRedirect when the source or destination is null,
      it causes an assert in WKURLCF::WKURLCopyCFURL when we try to convert the WKURLRef into a CFURLRef.
      
      Reviewed by Brady Eidson.
      
      * UIProcess/WebContext.cpp:
      (WebKit::WebContext::didPerformClientRedirect): Return early if the source or destination URL string is empty or null.
      (WebKit::WebContext::didPerformServerRedirect): Ditto.
      
      Tools: WebKit2: Assertion when calling didPerform*Redirect on null source/destination URL string
      https://bugs.webkit.org/show_bug.cgi?id=67794
      <rdar://problem/9892024>
              
      Add a test that we don't send a didPerformServerRedirect when a load is cancelled from willSendRequest.
      
      Reviewed by Brady Eidson.
      
      * TestWebKitAPI/Tests/WebKit2/LoadCanceledNoServerRedirectCallback.cpp: Added.
      (TestWebKitAPI::didFinishLoadForFrame): Set flags on whether we've loaded the main frame, iframe, or both.
      (TestWebKitAPI::didPerformServerRedirect): Set a flag for whether we've performed a server redirect.
      (TestWebKitAPI::TEST): Set up a WKPageLoaderClient and WKContextHistoryClient, and load simple-iframe.html.
          Once both frames have loaded (main frame and blocked iframe), make sure that we have never called
          didPerformServerRedirect.
      
      * TestWebKitAPI/Tests/WebKit2/LoadCanceledNoServerRedirectCallback_Bundle.cpp: Added.
      (TestWebKitAPI::LoadCanceledNoServerRedirectCallbackTest::LoadCanceledNoServerRedirectCallbackTest): Initialize
          our InjectedBundleTest.
      (TestWebKitAPI::LoadCanceledNoServerRedirectCallbackTest::willSendRequestForFrame): If we are dealing with a request
          from the main frame (the main resource in simple-iframe.html), allow it. If not (dealing with the iframe), block
          the request.
      (TestWebKitAPI::LoadCanceledNoServerRedirectCallbackTest::didCreatePage): Set up the WKBundlePageResourceLoadClient.
      
      * TestWebKitAPI/Tests/WebKit2/simple-iframe.html: Added.
              
      * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj: Add new files.
      * TestWebKitAPI/win/TestWebKitAPI.vcproj: Ditto.
      * TestWebKitAPI/win/TestWebKitAPIInjectedBundle.vcproj: Ditto.
      * TestWebKitAPI/win/copy-resources.cmd: Ditto.
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@94812 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      da7434ad
    • weinig@apple.com's avatar
      Remove the Completion object from JSC, I have never liked it · f41a7da7
      weinig@apple.com authored
      https://bugs.webkit.org/show_bug.cgi?id=67755
      
      Reviewed by Gavin Barraclough.
      
      ../JavaScriptCore: 
      
      - Removes the Completion object and replaces its use with out parameter exceptions.
      - Remove ComplType and virtual exceptionType() function on JSObject. Replace with
        ClassInfo for InterruptedExecutionError and TerminatedExecutionError.
      
      * API/JSBase.cpp:
      (JSEvaluateScript):
      (JSCheckScriptSyntax):
      * JavaScriptCore.exp:
      * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
      * interpreter/Interpreter.cpp:
      (JSC::Interpreter::throwException):
      * jsc.cpp:
      (functionLoad):
      (functionCheckSyntax):
      (runWithScripts):
      (runInteractive):
      * runtime/Completion.cpp:
      (JSC::checkSyntax):
      (JSC::evaluate):
      * runtime/Completion.h:
      * runtime/ExceptionHelpers.cpp:
      (JSC::InterruptedExecutionError::toString):
      (JSC::TerminatedExecutionError::toString):
      (JSC::createInterruptedExecutionException):
      * runtime/ExceptionHelpers.h:
      (JSC::InterruptedExecutionError::InterruptedExecutionError):
      (JSC::InterruptedExecutionError::create):
      (JSC::InterruptedExecutionError::createStructure):
      (JSC::TerminatedExecutionError::TerminatedExecutionError):
      (JSC::TerminatedExecutionError::create):
      (JSC::TerminatedExecutionError::createStructure):
      * runtime/JSGlobalData.cpp:
      (JSC::JSGlobalData::JSGlobalData):
      * runtime/JSObject.h:
      
      ../JavaScriptGlue: 
      
      * JSRun.cpp:
      (JSRun::Evaluate):
      (JSRun::CheckSyntax):
      * JSRun.h:
      * JavaScriptGlue.cpp:
      (JSRunEvaluate):
      
      ../WebCore: 
      
      * bindings/js/JSDOMBinding.cpp:
      (WebCore::reportException):
      * bindings/js/JSEventListener.cpp:
      (WebCore::JSEventListener::handleEvent):
      * bindings/js/JSInjectedScriptManager.cpp:
      (WebCore::InjectedScriptManager::createInjectedScript):
      * bindings/js/JSMainThreadExecState.h:
      (WebCore::JSMainThreadExecState::evaluate):
      * bindings/js/ScriptController.cpp:
      (WebCore::ScriptController::evaluateInWorld):
      * bindings/js/WorkerScriptController.cpp:
      (WebCore::WorkerScriptController::evaluate):
      * bindings/objc/WebScriptObject.mm:
      (-[WebScriptObject evaluateWebScript:]):
      * bridge/NP_jsobject.cpp:
      (_NPN_Evaluate):
      * bridge/jni/jni_jsobject.mm:
      (JavaJSObject::eval):
      
      ../WebKit/mac: 
      
      * Plugins/Hosted/NetscapePluginInstanceProxy.mm:
      (WebKit::NetscapePluginInstanceProxy::evaluate):
      
      ../WebKit/qt: 
      
      * Api/qwebelement.cpp:
      (QWebElement::evaluateJavaScript):
      
      ../WebKit2: 
      
      * WebProcess/Plugins/Netscape/NPRuntimeObjectMap.cpp:
      (WebKit::NPRuntimeObjectMap::evaluate):
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@94811 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      f41a7da7
    • abarth@webkit.org's avatar
      Inline DocumentWriter::encoding() into it's only caller: deprecatedFrameEncoding() · d5b296c6
      abarth@webkit.org authored
      https://bugs.webkit.org/show_bug.cgi?id=67807
      
      Reviewed by Eric Seidel.
      
      This function is super nutty.  We don't want any more folks to call it
      thinking that it does something sane.
      
      * loader/DocumentWriter.cpp:
      (WebCore::DocumentWriter::deprecatedFrameEncoding):
      * loader/DocumentWriter.h:
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@94810 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      d5b296c6
    • rolandsteiner@chromium.org's avatar
      <style scoped>: Add 'scoped' attribute · 16a03c20
      rolandsteiner@chromium.org authored
      https://bugs.webkit.org/show_bug.cgi?id=67718
      
      Source/WebCore:
      
      Add 'scoped' attribute to IDL and attribute list,
      implement and test setting/resetting of the attribute.
      
      Reviewed by Dimitri Glazkov.
      
      Test: fast/css/style-scoped/basic-attribute.html
      
      * html/HTMLAttributeNames.in:
      * html/HTMLStyleElement.cpp:
      (WebCore::HTMLStyleElement::scoped):
      (WebCore::HTMLStyleElement::setScoped):
      (WebCore::HTMLStyleElement::scopingElement):
      * html/HTMLStyleElement.h:
      * html/HTMLStyleElement.idl:
      
      LayoutTests:
      
      Test setting/resetting of the 'scoped' attribute in various circumstances.
      
      Reviewed by Dimitri Glazkov.
      
      * fast/css/style-scoped/basic-attribute-expected.txt: Added.
      * fast/css/style-scoped/basic-attribute.html: Added.
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@94809 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      16a03c20
    • tony@chromium.org's avatar
      remove fast/exclusions/triangle-exclusion.html which was originally added as a placeholder · 78ef321c
      tony@chromium.org authored
      https://bugs.webkit.org/show_bug.cgi?id=67795
      
      * fast/exclusions/triangle-exclusion.html: Removed.
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@94808 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      78ef321c
    • japhet@chromium.org's avatar
      2011-09-08 Nate Chapin <japhet@chromium.org> · ed6c2130
      japhet@chromium.org authored
              Chromium rebaseline zoom-animator-scale-test.html and mark a couple
              svg-as-background tests flaky on chromium-win.
      
              * platform/chromium-gpu-linux/platform/chromium/compositing/zoom-animator-scale-test-expected.png: Removed.
              * platform/chromium-gpu-linux/platform/chromium/compositing/zoom-animator-scale-test-expected.txt: Removed.
              * platform/chromium-gpu-win/platform/chromium/compositing/zoom-animator-scale-test-expected.png: Added.
              * platform/chromium-gpu-win/platform/chromium/compositing/zoom-animator-scale-test-expected.txt: Added.
              * platform/chromium/test_expectations.txt:
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@94807 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      ed6c2130
    • rniwa@webkit.org's avatar
      Build fix. · 66e26354
      rniwa@webkit.org authored
      * dfg/DFGCapabilities.cpp:
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@94806 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      66e26354
    • commit-queue@webkit.org's avatar
      Unreviewed, rolling out r94781. · a1fee1c1
      commit-queue@webkit.org authored
      http://trac.webkit.org/changeset/94781
      https://bugs.webkit.org/show_bug.cgi?id=67806
      
      Broke Objective-C binding on Mac (Requested by rniwa on
      #webkit).
      
      Patch by Sheriff Bot <webkit.review.bot@gmail.com> on 2011-09-08
      
      Source/WebCore:
      
      * dom/Element.idl:
      * dom/Node.cpp:
      (WebCore::Node::contains):
      * dom/Node.idl:
      * editing/DeleteSelectionCommand.cpp:
      (WebCore::DeleteSelectionCommand::mergeParagraphs):
      
      LayoutTests:
      
      * fast/dom/Element/contains-method-expected.txt: Added.
      * fast/dom/Element/contains-method.html: Renamed from LayoutTests/fast/dom/Node/contains-method.html.
      * fast/dom/Element/script-tests/contains-method.js: Added.
      * fast/dom/Node/contains-method-expected.txt: Removed.
      * fast/dom/Node/script-tests/contains-method.js: Removed.
      * fast/dom/Window/window-properties-expected.txt:
      * perf/document-contains-expected.txt: Removed.
      * perf/document-contains.html: Removed.
      * platform/gtk/fast/dom/Window/window-properties-expected.txt:
      * platform/mac/fast/dom/Window/window-properties-expected.txt:
      * platform/qt-wk2/fast/dom/Window/window-properties-expected.txt:
      * platform/qt/fast/dom/Window/window-properties-expected.txt:
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@94805 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      a1fee1c1
    • andersca@apple.com's avatar
      Don't release the modal placeholder window if it's closed · e118c97d
      andersca@apple.com authored
      https://bugs.webkit.org/show_bug.cgi?id=67801
      <rdar://problem/10088059>
      
      Reviewed by Adam Roben.
      
      This is a speculative fix - nothing should really be able to close the modal placeholder window.
      
      * UIProcess/Plugins/mac/PluginProcessProxyMac.mm:
      (WebKit::PluginProcessProxy::beginModal):
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@94804 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      e118c97d
    • levin@chromium.org's avatar
      check-webkit-style: Ref|Own Ptr& should be allowed as a parameter. · 2857611d
      levin@chromium.org authored
      https://bugs.webkit.org/show_bug.cgi?id=67797
      
      Reviewed by Eric Seidel.
      
      * Scripts/webkitpy/style/checkers/cpp.py: Allow Ref/Own Ptr when it ends with &.
      * Scripts/webkitpy/style/checkers/cpp_unittest.py: Added test cases for this.
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@94803 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      2857611d
    • fpizlo@apple.com's avatar
      Value profling and execution count profiling is performed even for · 452cb41a
      fpizlo@apple.com authored
      code that cannot be optimized
      https://bugs.webkit.org/show_bug.cgi?id=67694
      
      Reviewed by Gavin Barraclough.
      
      This is a 2% speed-up on V8 when tiered compilation is enabled.
      
      * JavaScriptCore.xcodeproj/project.pbxproj:
      * bytecode/CodeBlock.cpp:
      (JSC::ProgramCodeBlock::canCompileWithDFG):
      (JSC::EvalCodeBlock::canCompileWithDFG):
      (JSC::FunctionCodeBlock::canCompileWithDFG):
      * bytecode/CodeBlock.h:
      * dfg/DFGCapabilities.cpp: Added.
      (JSC::DFG::canCompileOpcodes):
      * dfg/DFGCapabilities.h: Added.
      (JSC::DFG::mightCompileEval):
      (JSC::DFG::mightCompileProgram):
      (JSC::DFG::mightCompileFunctionForCall):
      (JSC::DFG::mightCompileFunctionForConstruct):
      (JSC::DFG::canCompileOpcode):
      (JSC::DFG::canCompileEval):
      (JSC::DFG::canCompileProgram):
      (JSC::DFG::canCompileFunctionForCall):
      (JSC::DFG::canCompileFunctionForConstruct):
      * jit/JIT.cpp:
      (JSC::JIT::emitOptimizationCheck):
      (JSC::JIT::privateCompile):
      * jit/JIT.h:
      (JSC::JIT::shouldEmitProfiling):
      * jit/JITInlineMethods.h:
      (JSC::JIT::emitValueProfilingSite):
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@94802 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      452cb41a
    • fpizlo@apple.com's avatar
      DFG speculative JIT does not initialize integer tags for PredictInt32 temporaries · 6cf9e8e6
      fpizlo@apple.com authored
      https://bugs.webkit.org/show_bug.cgi?id=67840
      
      Reviewed by Gavin Barraclough.
      
      * dfg/DFGSpeculativeJIT.cpp:
      (JSC::DFG::SpeculativeJIT::initializeVariableTypes):
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@94801 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      6cf9e8e6
    • eric@webkit.org's avatar
      Remove DocumentWriter::setDecoder as a grep of WebKit shows no callers · 179fafe0
      eric@webkit.org authored
      https://bugs.webkit.org/show_bug.cgi?id=67803
      
      Reviewed by Adam Barth.
      
      Smells like dead code.
      
      * loader/DocumentWriter.cpp:
      * loader/DocumentWriter.h:
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@94800 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      179fafe0
    • ossy@webkit.org's avatar
      [WK2] evetSender.keyDown is unimplemented · 2c9112e8
      ossy@webkit.org authored
      https://bugs.webkit.org/show_bug.cgi?id=57515
      
      * platform/wk2/Skipped: Skip fast/dom/shadow/access-key.html.
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@94799 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      2c9112e8
    • commit-queue@webkit.org's avatar
      Chromium shadow-buffer-partial test change. · c27047f9
      commit-queue@webkit.org authored
      Part1: Update and disable test.
      https://bugs.webkit.org/show_bug.cgi?id=67724
      
      Patch by Ben Wagner <bungeman@chromium.org> on 2011-09-08
      Reviewed by Kenneth Russell.
      
      * platform/chromium-win/fast/box-shadow/shadow-buffer-partial-expected.png:
      * platform/chromium/test_expectations.txt:
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@94798 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      c27047f9
    • commit-queue@webkit.org's avatar
      Implement double tap detection in GestureRecognizerChromium · f61bab71
      commit-queue@webkit.org authored
      https://bugs.webkit.org/show_bug.cgi?id=67709
      
      Patch by Varun Jain <varunjain@google.com> on 2011-09-08
      Reviewed by Dimitri Glazkov.
      
      *  Source/WebCore/page/EventHandler.cpp:
      *  Source/WebCore/platform/PlatformGestureEvent.h:
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@94797 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      f61bab71
    • commit-queue@webkit.org's avatar
      frame-loading-via-document-write.html test cases have extra slash in path · 574b7f45
      commit-queue@webkit.org authored
      https://bugs.webkit.org/show_bug.cgi?id=67784
      
      Removing extra slash in path: file:////tmp/... => file:///tmp/...
      
      Patch by Jarred Nicholls <jarred@sencha.com> on 2011-09-08
      Reviewed by Andreas Kling.
      
      * fast/dom/frame-loading-via-document-write.html:
      * http/tests/security/frame-loading-via-document-write.html:
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@94796 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      574b7f45
    • commit-queue@webkit.org's avatar
      https://bugs.webkit.org/show_bug.cgi?id=67771 · 6fb5ab1e
      commit-queue@webkit.org authored
      Fix sequenceGetByIdSlowCaseInstructionSpace, sequenceGetByIdSlowCaseConstantSpace
      and patchOffsetGetByIdSlowCaseCall
      and enables DOUBLE_CONVERSION_CORRECT_DOUBLE_OPERATIONS flag for SH4 platforms.
      
      Patch by Thouraya ANDOLSI <thouraya.andolsi@st.com> on 2011-09-08
      Reviewed by Gavin Barraclough.
      
      * jit/JIT.h:
      * wtf/dtoa/utils.h:
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@94795 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      6fb5ab1e
    • ap@apple.com's avatar
      Some file-url-mimetypes subtests fail on rare extensions · 0f02d113
      ap@apple.com authored
              https://bugs.webkit.org/show_bug.cgi?id=67679
      
              * platform/mac-leopard/platform/mac/fast/loader/file-url-mimetypes-2-expected.txt:
              * platform/mac-leopard/platform/mac/fast/loader/file-url-mimetypes-expected.txt:
              * platform/mac-snowleopard/platform/mac/fast/loader/file-url-mimetypes-2-expected.txt:
              * platform/mac-snowleopard/platform/mac/fast/loader/file-url-mimetypes-expected.txt:
              Update platform specific results, too.
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@94794 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      0f02d113
    • commit-queue@webkit.org's avatar
      Crashes in WebCore::ReplaceSelectionCommand::doApply · 7bc041d6
      commit-queue@webkit.org authored
      https://bugs.webkit.org/show_bug.cgi?id=67762
      
      Patch by Shinya Kawanaka <shinyak@google.com> on 2011-09-08
      Reviewed by Ryosuke Niwa.
      
      Source/WebCore:
      
      WebCore::enclosingBlock may return null, but its return value was not checked. This patch checks it.
      
      Tests: editing/inserting/insert-without-enclosing-block.html
      
      * editing/ReplaceSelectionCommand.cpp:
      (WebCore::ReplaceSelectionCommand::doApply): Added null check.
      
      LayoutTests:
      
      WebCore::enclosingBlock may return NULL, but its return value was not checked. This patch checks it.
      
      * editing/inserting/insert-without-enclosing-block-expected.txt: Added.
      * editing/inserting/insert-without-enclosing-block.html: Added.
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@94793 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      7bc041d6
    • japhet@chromium.org's avatar
      2011-09-08 Nate Chapin <japhet@chromium.org> · 67f89746
      japhet@chromium.org authored
              Chromium baselines for new tests added in r94775 and r94779.
      
              * platform/chromium-cg-mac/platform/chromium/fast/repaint: Added.
              * platform/chromium-cg-mac/platform/chromium/fast/repaint/fixed-layout-360x240-expected.png: Added.
              * platform/chromium-linux/css3/unicode-bidi-isolate-aharon-expected.png: Added.
              * platform/chromium-linux/css3/unicode-bidi-isolate-basic-expected.png: Added.
              * platform/chromium-win/css3/unicode-bidi-isolate-aharon-expected.png: Added.
              * platform/chromium-win/css3/unicode-bidi-isolate-aharon-expected.txt: Added.
              * platform/chromium-win/css3/unicode-bidi-isolate-basic-expected.png: Added.
              * platform/chromium-win/css3/unicode-bidi-isolate-basic-expected.txt: Added.
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@94792 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      67f89746
    • ossy@webkit.org's avatar
      [Qt] Unreviewed gardening after r94771. · e64c687c
      ossy@webkit.org authored
      * fast/dom/constructed-objects-prototypes-expected.txt: Update, it will pass on Qt, GTK, SL, Win.
      * platform/qt/fast/dom/constructed-objects-prototypes-expected.txt: Removed.
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@94791 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      e64c687c
    • commit-queue@webkit.org's avatar
      Unreviewed, rolling out r94784. · 05306459
      commit-queue@webkit.org authored
      http://trac.webkit.org/changeset/94784
      https://bugs.webkit.org/show_bug.cgi?id=67796
      
      Commit was premature (Requested by rolandsteiner on #webkit).
      
      Patch by Sheriff Bot <webkit.review.bot@gmail.com> on 2011-09-08
      
      Source/WebCore:
      
      * html/HTMLAttributeNames.in:
      * html/HTMLStyleElement.cpp:
      * html/HTMLStyleElement.h:
      * html/HTMLStyleElement.idl:
      
      LayoutTests:
      
      * fast/css/style-scoped/basic-attribute-expected.txt: Removed.
      * fast/css/style-scoped/basic-attribute.html: Removed.
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@94790 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      05306459
    • wjmaclean@chromium.org's avatar
      [chromium] Add backend compositor support for rescaling (zooming) textures during zoom animation. · bcdc0689
      wjmaclean@chromium.org authored
      https://bugs.webkit.org/show_bug.cgi?id=66472
      
      Source/WebCore:
      
      This patch contains plumbing from Internals to WebViewImpl that can be removed
      at a later time when the zoom animator code is complete.
      
      Reviewed by James Robinson.
      
      Test: platform/chromium/compositing/zoom-animator-scale-test.html
      
      * page/Settings.cpp:
      (WebCore::Settings::Settings):
      * page/Settings.h:
      (WebCore::Settings::setZoomAnimatorScale):
      (WebCore::Settings::zoomAnimatorScale):
      * platform/graphics/chromium/LayerRendererChromium.cpp:
      (WebCore::LayerRendererChromium::LayerRendererChromium):
      (WebCore::LayerRendererChromium::drawLayersInternal):
      * platform/graphics/chromium/LayerRendererChromium.h:
      (WebCore::LayerRendererChromium::setZoomAnimatorScale):
      * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
      (WebCore::CCLayerTreeHost::CCLayerTreeHost):
      (WebCore::CCLayerTreeHost::commitTo):
      (WebCore::CCLayerTreeHost::setZoomAnimatorScale):
      (WebCore::CCLayerTreeHost::updateLayers):
      * platform/graphics/chromium/cc/CCLayerTreeHost.h:
      * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
      (WebCore::CCLayerTreeHostImpl::setZoomAnimatorScale):
      * platform/graphics/chromium/cc/CCLayerTreeHostImpl.h:
      * testing/Internals.cpp:
      (WebCore::Internals::setZoomAnimatorScale):
      * testing/Internals.h:
      * testing/Internals.idl:
      
      Source/WebKit/chromium:
      
      This patch contains plumbing from Internals to WebViewImpl that can be removed
      at a later time when the zoom animator code is complete.
      
      Reviewed by James Robinson.
      
      * src/WebViewImpl.cpp:
      (WebKit::WebViewImpl::setZoomLevel):
      (WebKit::WebViewImpl::setRootLayerNeedsDisplay):
      
      LayoutTests:
      
      Initial tests for zoomAnimatorChromium backend.
      
      Reviewed by James Robinson.
      
      * platform/chromium-gpu-linux/platform/chromium/compositing/zoom-animator-scale-test-expected.png: Added.
      * platform/chromium-gpu-linux/platform/chromium/compositing/zoom-animator-scale-test-expected.txt: Added.
      * platform/chromium/compositing/zoom-animator-scale-test.html: Added.
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@94789 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      bcdc0689
    • ossy@webkit.org's avatar
      [Qt] Unreviewed gardening. · 29f045f8
      ossy@webkit.org authored
      * platform/qt/Skipped: Skip tests introduced in r94775 because of missing test fonts.
      * platform/qt/fast/dom/constructed-objects-prototypes-expected.txt: Added. (test introduced in r94147)
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@94788 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      29f045f8
    • eric.carlson@apple.com's avatar
      HTMLMediaElement is missing initialTime attribute · f381ec99
      eric.carlson@apple.com authored
      https://bugs.webkit.org/show_bug.cgi?id=67791
      
      Reviewed by Darin Adler.
      
      Source/WebCore: 
      
      Test: media/media-initialTime.html
      
      * html/HTMLMediaElement.cpp:
      (WebCore::HTMLMediaElement::initialTime):
      * html/HTMLMediaElement.h:
      * html/HTMLMediaElement.idl:
      * platform/graphics/MediaPlayer.cpp:
      (WebCore::MediaPlayer::initialTime):
      * platform/graphics/MediaPlayer.h:
      * platform/graphics/MediaPlayerPrivate.h:
      (WebCore::MediaPlayerPrivateInterface::initialTime):
      
      LayoutTests: 
      
      * media/media-initialTime-expected.txt: Added.
      * media/media-initialTime.html: Added.
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@94787 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      f381ec99
    • commit-queue@webkit.org's avatar
      Compile in ScrollAnimator for Chromium on all platforms by default. · a7dc2723
      commit-queue@webkit.org authored
      https://bugs.webkit.org/show_bug.cgi?id=67650
      
      Patch by Scott Byer <scottbyer@chromium.org> on 2011-09-08
      Reviewed by Adam Barth.
      
      * features.gypi:
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@94786 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      a7dc2723
    • robert@webkit.org's avatar
      Elements with position:absolute don't move to correct position after images load · d739d387
      robert@webkit.org authored
      https://bugs.webkit.org/show_bug.cgi?id=54611
      
      Reviewed by Simon Fraser.
      
      Source/WebCore:
      
      Test: fast/block/positioning/absolute-layout-after-image-load.html
      
      In the test the 'label' block is an absolutely positioned child of an inline flow. So during layout,
      this RenderBlock::layoutPositionedObjects fails to dirty it for rendering because it requires
      the parent to be a BlockFlow. The code to do this was introduced in http://trac.webkit.org/changeset/8284.
      There doesn't seem to be a good reason for requiring a BlockFlow, so remove the check.
      
      Note: Although the issue is encountered only on first load without a fragment identifier, it
      happens reliably when you include the fragment identifier in the url (#Footnote_1). This is so
      because scrolling to the fragment always happens before the image has loaded, rendering the page
      and clearing the initial dirty bits in the positioned element's renderer. When the image finally
      loads in this scenario, the positioned element is otherwise clean and relies on the above code to get
      re-rendered.
      
      Note: This was originally landed in r94755 but positioned-float-layout-after-image-load.html exposed
            an ASSERT bug, unrelated to this change, and was rolled out. That issue is tracked separately
            in bug 67759.
      
      * rendering/RenderBlock.cpp:
      (WebCore::RenderBlock::layoutPositionedObjects): remove the check for r->parent()->isBlockFlow() when
                                                       deciding whether to mark children for layout
      
      LayoutTests:
      
      * fast/block/positioning/absolute-layout-after-image-load-expected.txt: Added.
      * fast/block/positioning/absolute-layout-after-image-load.html: Added.
      * fast/block/positioning/resources/absolute-layout-after-image-load-2.html: Added.
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@94785 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      d739d387
    • rolandsteiner@chromium.org's avatar
      <style scoped>: Add 'scoped' attribute · 393117c9
      rolandsteiner@chromium.org authored
      https://bugs.webkit.org/show_bug.cgi?id=67718
      
      Source/WebCore:
      
      Add 'scoped' attribute to IDL and attribute list,
      implement and test setting/resetting of the attribute.
      
      Reviewed by Dimitri Glazkov.
      
      Test: fast/css/style-scoped/basic-attribute.html
      
      * html/HTMLAttributeNames.in:
      * html/HTMLStyleElement.cpp:
      (WebCore::HTMLStyleElement::scoped):
      (WebCore::HTMLStyleElement::setScoped):
      (WebCore::HTMLStyleElement::scopingElement):
      * html/HTMLStyleElement.h:
      * html/HTMLStyleElement.idl:
      
      LayoutTests:
      
      Test setting/resetting of the 'scoped' attribute in various circumstances.
      
      Reviewed by Dimitri Glazkov.
      
      * fast/css/style-scoped/basic-attribute-expected.txt: Added.
      * fast/css/style-scoped/basic-attribute.html: Added.
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@94784 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      393117c9
    • commit-queue@webkit.org's avatar
      [v8] Improve performance of typed array set() taking Array · 862fa4e0
      commit-queue@webkit.org authored
      https://bugs.webkit.org/show_bug.cgi?id=63644
      
      Patch by Ulan Degenbaev <ulan@chromium.org> on 2011-09-08
      Reviewed by Kenneth Russell.
      
      Overwrite the native 'set' method of the type arrays with JS
      implementation after initialization of the global context.
      
      Add tests for invalid and boundary offsets. No performance tests.
      
      * LayoutTests/fast/canvas/webgl/array-unit-tests-expected.txt:
      * LayoutTests/fast/canvas/webgl/array-unit-tests.html:
      * Source/WebCore/WebCore.gyp/WebCore.gyp:
      * Source/WebCore/WebCore.gypi:
      * Source/WebCore/bindings/v8/V8BindingScripts.cpp: Added.
      * Source/WebCore/bindings/v8/V8BindingScripts.h: Added.
      * Source/WebCore/bindings/v8/V8DOMWindowShell.cpp:
      * Source/WebCore/bindings/v8/WorkerContextExecutionProxy.cpp:
      * Source/WebCore/bindings/v8/custom/V8ArrayBufferViewCustomScript.js: Added.
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@94783 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      862fa4e0
    • commit-queue@webkit.org's avatar
      Rebaseline for bug 65583 (path based border radius drawing on skia) part 2 · 12931cc5
      commit-queue@webkit.org authored
      https://bugs.webkit.org/show_bug.cgi?id=67751
      
      Patch by Ben Wells <benwells@chromium.org> on 2011-09-08
      Reviewed by Kenneth Russell.
      
      * fast/borders/border-radius-circle-expected.txt: Renamed from LayoutTests/platform/gtk/fast/borders/border-radius-circle-expected.txt.
      * fast/borders/border-radius-groove-01-expected.txt: Renamed from LayoutTests/platform/gtk/fast/borders/border-radius-groove-01-expected.txt.
      * fast/borders/border-radius-groove-02-expected.txt: Renamed from LayoutTests/platform/gtk/fast/borders/border-radius-groove-02-expected.txt.
      * fast/borders/border-radius-groove-03-expected.txt: Renamed from LayoutTests/platform/gtk/fast/borders/border-radius-groove-03-expected.txt.
      * fast/borders/border-radius-wide-border-01-expected.txt: Renamed from LayoutTests/platform/gtk/fast/borders/border-radius-wide-border-01-expected.txt.
      * fast/borders/border-radius-wide-border-02-expected.txt: Renamed from LayoutTests/platform/gtk/fast/borders/border-radius-wide-border-02-expected.txt.
      * fast/css/text-input-with-webkit-border-radius-expected.png: Removed.
      * fast/gradients/background-clipped-expected.txt: Renamed from LayoutTests/platform/gtk/fast/gradients/background-clipped-expected.txt.
      * fast/transforms/rotated-transform-affects-scrolling-1-expected.txt: Renamed from LayoutTests/platform/gtk/fast/transforms/rotated-transform-affects-scrolling-1-expected.txt.
      * fast/transforms/rotated-transform-affects-scrolling-2-expected.txt: Renamed from LayoutTests/platform/gtk/fast/transforms/rotated-transform-affects-scrolling-2-expected.txt.
      * fast/transforms/shadows-expected.txt: Renamed from LayoutTests/platform/gtk/fast/transforms/shadows-expected.txt.
      * platform/chromium-linux/fast/: 20 changes.
      * platform/chromium-win/fast/: 19 changes.
      * platform/chromium/test_expectations.txt:
      * platform/mac/fast/: 9 changes.
      * platform/qt/fast/: 10 removals.
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@94782 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      12931cc5
    • arv@chromium.org's avatar
      Move Element.contains to Node · beefbd65
      arv@chromium.org authored
      https://bugs.webkit.org/show_bug.cgi?id=67651
      
      Reviewed by Darin Adler.
      
      This moves the contains method from Element to Node as in the DOM4 working draft:
      http://dvcs.w3.org/hg/domcore/raw-file/tip/Overview.html#dom-node-contains
      
      This also special cases Document contains to make it O(1) instead of O(depth).
      
      Source/WebCore:
      
      Tests: fast/dom/Node/contains-method.html
             perf/document-contains.html
      
      * dom/Element.idl:
      * dom/Node.cpp:
      (WebCore::Node::contains): Added document special case.
      * dom/Node.idl:
      * editing/DeleteSelectionCommand.cpp:
      (WebCore::DeleteSelectionCommand::mergeParagraphs): Added a null check.
      
      LayoutTests:
      
      * fast/dom/Element/contains-method-expected.txt: Removed.
      * fast/dom/Element/script-tests/contains-method.js: Removed.
      * fast/dom/Node/contains-method-expected.txt: Added.
      * fast/dom/Node/contains-method.html: Renamed from LayoutTests/fast/dom/Element/contains-method.html.
      * fast/dom/Node/script-tests/contains-method.js: Added. Expanded tests.
      * fast/dom/Window/window-properties-expected.txt:
      * perf/document-contains-expected.txt: Added.
      * perf/document-contains.html: Added.
                                     Perf test to ensure that document.contains is O(1).
      * platform/gtk/fast/dom/Window/window-properties-expected.txt:
      * platform/mac/fast/dom/Window/window-properties-expected.txt:
      * platform/qt-wk2/fast/dom/Window/window-properties-expected.txt:
      * platform/qt/fast/dom/Window/window-properties-expected.txt:
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@94781 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      beefbd65
    • crogers@google.com's avatar
      Check AudioContext createChannelMerger() for thread safety · baf6d3ab
      crogers@google.com authored
      https://bugs.webkit.org/show_bug.cgi?id=67247
      
      Reviewed by Kenneth Russell.
      
      Source/WebCore:
      
      Test: webaudio/audiochannelmerger-stereo.html
      
      * webaudio/AudioChannelMerger.cpp:
      (WebCore::AudioChannelMerger::process):
      (WebCore::AudioChannelMerger::checkNumberOfChannelsForInput):
      * webaudio/AudioChannelMerger.h:
      
      LayoutTests:
      
      * webaudio/audiochannelmerger-stereo-expected.txt: Added.
      * webaudio/audiochannelmerger-stereo.html: Added.
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@94780 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      baf6d3ab
    • fsamuel@chromium.org's avatar
      Fixed Layout Mode should be adjustable from layoutTestController for testing on Chromium platforms · cdf0c235
      fsamuel@chromium.org authored
      https://bugs.webkit.org/show_bug.cgi?id=67723
      
      Reviewed by Adam Barth.
      
      Tools:
      
      * DumpRenderTree/chromium/EventSender.h:
      * DumpRenderTree/chromium/LayoutTestController.cpp:
      (LayoutTestController::LayoutTestController):
      (LayoutTestController::enableFixedLayoutMode):
      (LayoutTestController::setFixedLayoutSize):
      * DumpRenderTree/chromium/LayoutTestController.h:
      
      LayoutTests:
      
      * platform/chromium/fast/repaint/fixed-layout-360x240-expected.png: Added.
      * platform/chromium/fast/repaint/fixed-layout-360x240-expected.txt: Added.
      * platform/chromium/fast/repaint/fixed-layout-360x240.html: Added.
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@94779 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      cdf0c235
    • commit-queue@webkit.org's avatar
      Refactor hyphen measurement · e60bb908
      commit-queue@webkit.org authored
      https://bugs.webkit.org/show_bug.cgi?id=67728
      
      Patch by Ned Holbrook <nholbrook@apple.com> on 2011-09-08
      Reviewed by Darin Adler.
      
      No new tests, purely refactoring.
      
      * rendering/RenderBlockLineLayout.cpp:
      (WebCore::measureHyphenWidth): Added.
      (WebCore::setLogicalWidthForTextRun): Use measureHyphenWidth().
      (WebCore::tryHyphenating): Ditto.
      (WebCore::RenderBlock::LineBreaker::nextLineBreak): Ditto.
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@94778 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      e60bb908
    • jchaffraix@webkit.org's avatar
      Remove LayoutStateDisabler instances from RenderLayer · e92bce36
      jchaffraix@webkit.org authored
      https://bugs.webkit.org/show_bug.cgi?id=66896
      
      Reviewed by Simon Fraser.
      
      As part of r93614, scrollTo does not call updateLayerPositions anymore.
      This means that we don't need to disable LayoutState from the scrolling code
      in RenderLayer.
      
      This change is covered by the existing tests.
      
      * rendering/RenderLayer.cpp:
      (WebCore::RenderLayer::updateLayerPositions): Updated the comment
      that was not accurate anymore. Also explained what is wrong with
      LayoutState vs RenderLayer now. Note that the ASSERT is still
      valid and will not trigger as the remaining calls to updateLayerPositions
      are done *outside* layout() where LayoutState is not set (thus disabled).
      
      (WebCore::RenderLayer::updateScrollInfoAfterLayout): Removed
      2 LayoutStateDisabler surrounding scrollToOffset.
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@94777 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      e92bce36
    • jchaffraix@webkit.org's avatar
      Factor out the code to get the first non-null RenderTableSection in RenderTable · d2cc919a
      jchaffraix@webkit.org authored
      https://bugs.webkit.org/show_bug.cgi?id=66972
      
      Reviewed by Darin Adler.
      
      Refactoring only, covered by existing tests.
      
      * accessibility/AccessibilityTable.cpp:
      (WebCore::AccessibilityTable::addChildren):
      (WebCore::AccessibilityTable::cellForColumnAndRow):
      * accessibility/AccessibilityTableCell.cpp:
      (WebCore::AccessibilityTableCell::rowIndexRange):
      Updated those for the signature change in sectionBelow. Also added
      a FIXME where topSection should be used instead of iterating
      over the section (and likely missing some corner cases).
      
      * rendering/FixedTableLayout.cpp:
      (WebCore::FixedTableLayout::calcWidthArray):
      * rendering/RenderTable.cpp:
      (WebCore::RenderTable::calcBorderStart):
      (WebCore::RenderTable::calcBorderEnd):
      (WebCore::RenderTable::outerBorderBefore):
      (WebCore::RenderTable::sectionAbove):
      (WebCore::RenderTable::sectionBelow):
      (WebCore::RenderTable::firstLineBoxBaseline):
      Updated all those functions to use the newly added functions. Also changed
      the variable names to match the functions.
      
      (WebCore::RenderTable::layout):
      (WebCore::RenderTable::topNonEmptySection): Newly added function
      that returns the top non null section of the table that has at least a
      row.
      
      (WebCore::RenderTable::cellAbove):
      (WebCore::RenderTable::cellBelow):
      Update the signature of those 2 functions to take an enum as it makes the
      rest of the code more readable.
      
      * rendering/RenderTable.h:
      (WebCore::RenderTable::topSection): Newly added function to return
      the top non null section in the table.
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@94776 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      d2cc919a
    • eric@webkit.org's avatar
      Reviewed by Ryosuke Niwa. · a26de04c
      eric@webkit.org authored
      [BiDi] [CSS3] MASTER: Add support for the unicode-bidi:isolate CSS property
      https://bugs.webkit.org/show_bug.cgi?id=50912
      
      Source/WebCore:
      
      This patch adds support for CSS3 unicode-bidi: isolate property, under the -webkit- vendor prefix.
      Parsing support was added in a previous patch, this wires up the RenderStyle values
      to code changes in the BidiResolver.
      
      The effect of this patch is that it makes it possible to "isolate" runs of text
      so that their RTL-ness or LTR-ness does not bleed out into the rest of your text
      and effect layout.  This is important because many unicode characters (like parenthesis, ':', '-', etc.)
      do not have intrinsic directionality and are affected by whatever characters come before/after.
      If you have usernames which include RTL text, if you inject those usernames in your page
      you might end up with nearby characters moving!
      (like 'RTL USERNAME - my awesome site' as a title, could end up as
      'my awesome site - USERNAME RTL' when correct would be 'USERNAME RTL - my awesome site'.)
      This patch makes it possible to wrap sections of text in isolated spans, so that
      they correctly order all their RTL/LTR contents, but also correctly participate in the
      larger RTL/LTR ordering without affecting nearby characters.
      
      Because much of this code is old and rarely touched, I've included extra background
      information in hopes of expanding my set of potential reviewers:
      
      WebKit uses the standard "Unicode Bidi Algorithm" henceforth known as the UBA.
      The UBA is defined at http://unicode.org/reports/tr9/ for those not faint of heart.
      
      Text layout is done per-block (<div>, <p>, etc), and begins with a string of text
      (which in our case comes from the rendering tree) and a specified width.
      First:  Text is measured and wrapped into lines.
      Second: The UBA is run over the lines of text.
      Third:  WebKit builds InlineBoxes (its linebox tree) and eventually render the text.
      
      This patch modifies our UBA to ignore all text content inside "isolated" inlines (treating them as neutral characters)
      and then adds another step after running the UBA, where we run the UBA recursively on any
      previously identified "isolated" content.
      
      The result of the UBA is an ordered list of "runs" of text with the RTL runs
      correctly RTL and the LTR runs LTR.
      
      The UBA does three things:
      1.  It assigns a "class" to each character in a text stream (like neutral, strongly-RTL, strongly-LTR, etc.)
      2.  Divides the text stream up into "runs" of characters of the same directionality (all RTL, all LTR).
      3.  Re-orders those runs.
      
      The UBA in WebKit is implemented by BidiResolver<T> in BidiResolver.h
      
      The InlineBidiResolver (BidiResolver specialization which knows about the rendering tree)
      walks along its InlineIterators, looking at each character and running the
      Unicode Bidi Algorithm (UBA).  It walks through the rendering tree subtree under
      a block, using a (poorly named) bidiNext function which returns the next inline object.
      Each inline object (or text character there-in) has a corresponding meaning in the UBA
      such as a "strong RTL" character or a "neutral" character.  The UBA reads these sequence
      of characters, and figures out what direction (RTL or LTR) to assign to any neutral
      characters it encounters, based on surrounding characters.
      
      As the InlineBidiResolver is walking the rendering tree, the InlineIterator::advance()
      function calls bidiNext(), which in turn can call notifyObserverEnteredObject/notifyObserverWillExitObject
      notifying InlineBidiResolver that it is entering or exiting an "isolated"
      span, at which point it will either start or stop ignoring the stream of characters
      from the InlineIterator.  When the InlineBidiResolver is ignoring the stream of
      characters, instead of creating separate BidiRuns at each RTL/LTR boundary
      as it normally would, it instead creates one "fake" run for the entire
      isolated span.  These fake runs participate in the normal UBA run ordering process,
      but after the main UBA, a second pass is made where we examine
      the list of isolatedRuns() and run the UBA on each of them, replacing the fake
      run we previously inserted, with the resulting list of runs from that inner UBA run.
      The way it "ignores" characters is by treating them all as neutral when inside an isolate.
      Thus all the characters end up grouped in a single run, but their directionality (as a group)
      is correctly affected by any surrounding strong characters.
      
      If you understood that last paragraph, than the rest of the change is just plumbing.
      
      I added a huge number of FIXMEs to this code, because this code has a variety of
      design choices (or lack there of) which make some of this very difficult.
      
      For example the bidiNext iterator function has two sets of mutually exclusive
      parameters and can be used optionally with or without an observer.  Prior to this
      change there was only ever one object which cared about observing a walk over inlines
      and that was InlineBidiResolver.  This patch (regretfully) templatizes bidiNext
      to support a new Observer type.  The correct fix would be to rip bidiNext into
      multiple functions and rip need for observation out of InlineBidiResolver.
      Unfortunately I've tried both in separate bugs and failed.  This code is very very
      old and very poorly understood.  We're slowly moving forward, this is another tiny step.
      
      This is my fourth iteration of this patch (I'm happy to do more!), but I believe
      it's a good compromise between fixing all of the design gotcha's of our bidi
      system and doing the minimum amount to add this killer CSS feature.
      
      I ran the PLT.  (It averaged 0.2% faster with this change, but I attribute that to noise).
      
      Test: css3/unicode-bidi-isolate-basic.html and css3/unicode-bidi-isolate-aharon.html
      
      * platform/text/BidiResolver.h:
      (WebCore::BidiCharacterRun::setNext):
       - Needed by the new replaceRunWithRuns function.
      (WebCore::BidiResolver::BidiResolver):
      (WebCore::BidiResolver::~BidiResolver):
      (WebCore::BidiResolver::enterIsolate):
      (WebCore::BidiResolver::exitIsolate):
      (WebCore::BidiResolver::inIsolate):
      (WebCore::BidiResolver::isolatedRuns):
       - Used to track isolated spans of text as they're encoutered.
         They're stuffed away here to be processed recursively
         after the main UBA has done its thang.
      (WebCore::::appendRun):
      (WebCore::::embed):
      (WebCore::::commitExplicitEmbedding):
      (WebCore::::createBidiRunsForLine):
      * platform/text/BidiRunList.h:
      (WebCore::::replaceRunWithRuns):
       - This effectively takes all the runs from one runlist and adds them to
         this one, replacing the fake run we inserted during a previous pass of the UBA.
       - This RunList now owns the runs, so we call clear() on the other RunList
         so that we don't end up double-freeing the runs.
      (WebCore::::clear):
       - This allows us to "take" runs from another run list and then clear it.
      * rendering/BidiRun.h:
      (WebCore::BidiRun::object):
      * rendering/InlineIterator.h:
      (WebCore::InlineIterator::object):
      (WebCore::InlineIterator::offset):
      (WebCore::notifyObserverEnteredObject): Mostly just renaming and adding a FIXME about plaintext.
      (WebCore::notifyObserverWillExitObject): Mostly just renaming.
      (WebCore::addPlaceholderRunForIsolatedInline):
      (WebCore::isIsolatedInline):
      (WebCore::InlineBidiResolver::appendRun):
      * rendering/RenderBlockLineLayout.cpp:
      (WebCore::statusWithDirection):
      (WebCore::constructBidiRuns):
       - This is the heavy-lifting of this change.  This function
         runs the UBA recursively on all the previously identified isolated spans.
       - If we encounter more isolated spans in our run, we just add them to the
         main list an keep going.  Because the runs are linked lists and we have
         direct pointers to our placeholder objects, we don't care what order
         we process the placeholders in, so long as when we're done, they're all processed.
      (WebCore::RenderBlock::layoutInlineChildren):
      
      LayoutTests:
      
      Two new tests for testing unicode-bidi: isolate behavior.
      Note that the test from Aharon Lanin has one failing subtest
      I've asked him if the test might have a typo in:
      https://bugs.webkit.org/show_bug.cgi?id=50912#c30
      
      * css3/unicode-bidi-isolate-aharon.html: Added.
       - Some various unicode-bidi: isolate tests from Aharon.
      * css3/unicode-bidi-isolate-basic.html: Added.
       - This test tries all possible orderings of strong-LTR, strong-RTL and neutral characters
         across unicode-bidi: isolate spans to make sure that we match expected rendering.
       - A little red bleeds through the test, but that appears to be from anti-aliasing
         and possible automatic font kerning, not layout failures.
      * platform/mac/css3/unicode-bidi-isolate-aharon-expected.png: Added.
      * platform/mac/css3/unicode-bidi-isolate-aharon-expected.txt: Added.
      * platform/mac/css3/unicode-bidi-isolate-basic-expected.png: Added.
      * platform/mac/css3/unicode-bidi-isolate-basic-expected.txt: Added.
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@94775 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      a26de04c