1. 03 Dec, 2009 40 commits
    • barraclough@apple.com's avatar
      https://bugs.webkit.org/show_bug.cgi?id=32136 · 35d680c7
      barraclough@apple.com authored
      Add a rope representation to JSString.  Presently JSString always holds its data in UString form.
      Instead, allow the result of a string concatenation to be represented in a tree form - with a
      variable sized, reference-counted rope node retaining a set of UString::Reps (or other rope nopes).
      
      Reviewed by Oliver "Brraaaaiiiinnnnnzzzzzzzz" Hunt.
      
      Strings must still currently be resolved down to a flat UString representation before being used,
      but by holding the string in a rope representation during construction we can avoid copying data
      until we know the final size of the string.
      
      ~2% progression on SunSpider (~25% on date-format-xparb, ~20% on string-validate-input).
      
      * JavaScriptCore.exp:
      
          - Update exports.
      
      * interpreter/Interpreter.cpp:
      (JSC::Interpreter::privateExecute):
      
          - Make use of new JSString::length() method to avoid prematurely resolving ropes.
      
      * jit/JITOpcodes.cpp:
      (JSC::JIT::privateCompileCTIMachineTrampolines):
      
          - Switch the string length trampoline to read the length directly from JSString::m_length,
            rather than from the JSString's UString::Rep's 'len' property.
      
      * jit/JITStubs.cpp:
      (JSC::DEFINE_STUB_FUNCTION):
      
          - Modify op_add such that addition of two strings, where either or both strings are already
            in rope representation, produces a rope as a result.
      
      * runtime/JSString.cpp:
      (JSC::JSString::Rope::~Rope):
      (JSC::copyChars):
      (JSC::JSString::resolveRope):
      (JSC::JSString::getPrimitiveNumber):
      (JSC::JSString::toBoolean):
      (JSC::JSString::toNumber):
      (JSC::JSString::toString):
      (JSC::JSString::toThisString):
      (JSC::JSString::getStringPropertyDescriptor):
      * runtime/JSString.h:
      (JSC::JSString::Rope::Fiber::Fiber):
      (JSC::JSString::Rope::Fiber::destroy):
      (JSC::JSString::Rope::Fiber::isRope):
      (JSC::JSString::Rope::Fiber::rope):
      (JSC::JSString::Rope::Fiber::string):
      (JSC::JSString::Rope::create):
      (JSC::JSString::Rope::initializeFiber):
      (JSC::JSString::Rope::ropeLength):
      (JSC::JSString::Rope::stringLength):
      (JSC::JSString::Rope::fibers):
      (JSC::JSString::Rope::Rope):
      (JSC::JSString::Rope::operator new):
      (JSC::JSString::JSString):
      (JSC::JSString::value):
      (JSC::JSString::length):
      (JSC::JSString::isRope):
      (JSC::JSString::rope):
      (JSC::JSString::string):
      (JSC::JSString::canGetIndex):
      (JSC::jsSingleCharacterSubstring):
      (JSC::JSString::getIndex):
      (JSC::jsSubstring):
      (JSC::JSString::getStringPropertySlot):
      
          - Add rope form.
      
      * runtime/Operations.h:
      (JSC::jsAdd):
      (JSC::concatenateStrings):
      
          - Update string concatenation, and addition of ropes, to produce ropes.
      
      * runtime/StringObject.cpp:
      (JSC::StringObject::getOwnPropertyNames):
      
          - Make use of new JSString::length() method to avoid prematurely resolving ropes.
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@51671 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      35d680c7
    • cfleizach@apple.com's avatar
      AX: VO just says "term" on many web sites · f63022af
      cfleizach@apple.com authored
      https://bugs.webkit.org/show_bug.cgi?id=32139
      
      Reviewed by Eric Seidel.
      
      WebCore: 
      
      Test: platform/mac/accessibility/definition-list-term.html
      
      * accessibility/AccessibilityRenderObject.cpp:
      (WebCore::AccessibilityRenderObject::accessibilityDescription):
      * accessibility/mac/AccessibilityObjectWrapper.mm:
      (-[AccessibilityObjectWrapper subrole]):
      (-[AccessibilityObjectWrapper roleDescription]):
      
      WebKitTools: 
      
      * DumpRenderTree/AccessibilityUIElement.cpp:
      (getRoleDescriptionCallback):
      (AccessibilityUIElement::getJSClass):
      * DumpRenderTree/AccessibilityUIElement.h:
      * DumpRenderTree/gtk/AccessibilityUIElementGtk.cpp:
      (AccessibilityUIElement::roleDescription):
      * DumpRenderTree/mac/AccessibilityUIElementMac.mm:
      (AccessibilityUIElement::roleDescription):
      * DumpRenderTree/win/AccessibilityUIElementWin.cpp:
      (AccessibilityUIElement::roleDescription):
      
      LayoutTests: 
      
      * platform/mac/accessibility/aria-grouping-roles-expected.txt:
      * platform/mac/accessibility/aria-grouping-roles.html:
      * platform/mac/accessibility/definition-list-term-expected.txt: Added.
      * platform/mac/accessibility/definition-list-term.html: Added.
      * platform/mac/accessibility/lists-expected.txt:
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@51670 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      f63022af
    • cfleizach@apple.com's avatar
      Implement WAI-ARIA scrollbar role and related property aria-orientation · 18b2b7c3
      cfleizach@apple.com authored
      https://bugs.webkit.org/show_bug.cgi?id=32126
      
      Reviewed by Beth Dakin.
      
      WebCore: 
      
      Test: accessibility/aria-scrollbar-role.html
      
      * accessibility/AccessibilityObject.cpp:
      (WebCore::createARIARoleMap):
      * accessibility/AccessibilityObject.h:
      (WebCore::AccessibilityObject::isScrollbar):
      * accessibility/AccessibilityRenderObject.cpp:
      (WebCore::AccessibilityRenderObject::valueForRange):
      (WebCore::AccessibilityRenderObject::orientation):
      (WebCore::AccessibilityRenderObject::canHaveChildren):
      * accessibility/AccessibilityRenderObject.h:
      * accessibility/mac/AccessibilityObjectWrapper.mm:
      (-[AccessibilityObjectWrapper additionalAccessibilityAttributeNames]):
      (-[AccessibilityObjectWrapper accessibilityAttributeValue:]):
      * html/HTMLAttributeNames.in:
      
      WebKitTools: 
      
      * DumpRenderTree/AccessibilityUIElement.cpp:
      (getOrientationCallback):
      (AccessibilityUIElement::getJSClass):
      * DumpRenderTree/AccessibilityUIElement.h:
      * DumpRenderTree/gtk/AccessibilityUIElementGtk.cpp:
      (AccessibilityUIElement::orientation):
      * DumpRenderTree/mac/AccessibilityUIElementMac.mm:
      (AccessibilityUIElement::orientation):
      * DumpRenderTree/win/AccessibilityUIElementWin.cpp:
      (AccessibilityUIElement::orientation):
      
      LayoutTests: 
      
      * accessibility/aria-scrollbar-role-expected.txt: Added.
      * accessibility/aria-scrollbar-role.html: Added.
      * platform/gtk/Skipped:
      * platform/win/Skipped:
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@51669 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      18b2b7c3
    • mitz@apple.com's avatar
      Fixed <rdar://problem/7401617> Selection painting issue in hardware- · fa973d40
      mitz@apple.com authored
      accelerated layers
      which is another part of https://bugs.webkit.org/show_bug.cgi?id=23628
      Fix selection painting to do container-relative repaints
      
      Reviewed by Darin Adler.
      
      Test: fast/repaint/block-selection-gap-in-composited-layer.html
      
      * rendering/RenderBlock.cpp:
      (WebCore::RenderBlock::selectionGapRectsForRepaint): Compute and paint
      gap rects in the coordinate space of the repaint container.
      * rendering/RenderLayerCompositor.cpp:
      (WebCore::RenderLayerCompositor::recursiveRepaintLayerRect): Added a
      FIXME.
      * rendering/RenderView.cpp:
      (WebCore::RenderView::setSelection): Map block selection gap rects from
      the repaint container’s coordinate space to the view’s coordinate space
      before adding them to the cached selection bounds.
      (WebCore::RenderView::clearSelection): Changed to use
      repaintRectangleInViewAndCompositedLayers() so that the selection rect
      is invalidated in composited layers as well.
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@51668 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      fa973d40
    • ap@apple.com's avatar
      Reviewed by Darin Adler. · 970b7fed
      ap@apple.com authored
              https://bugs.webkit.org/show_bug.cgi?id=32132
              websocket/tests/simple.html fails on Windows
      
              * websocket/tests/script-tests/simple.js:
              * websocket/tests/simple-expected.txt:
              Make the test weaker - readyState could already grow by the time a posted event gets dispatched.
      
              * platform/win/Skipped: Un-skip the test.
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@51667 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      970b7fed
    • jparent@chromium.org's avatar
      Make shorthand-transitions.html less flaky. · 6be8c5cb
      jparent@chromium.org authored
      The test currently allows for timing related differences by using a tolerance, but the tolerance
      is inconsistent in the test, even for values read at the same time (some values are allowed a 100ms 
      difference, others are only allowed 50ms).  This change makes all values have a 100ms tolerance.
      (open question: is 100ms enough?  I've looked through a bunch of logs of failures and it seems to be,
      so this should definitely help reduce but this may not entirely eliminate flakiness).
              
      Reviewed by Eric Seidel.
      
      https://bugs.webkit.org/show_bug.cgi?id=32134
      
      * transitions/shorthand-transitions.html:
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@51666 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      6be8c5cb
    • eric@webkit.org's avatar
      2009-12-03 Csaba Osztrogonác <ossy@webkit.org> · d1b05872
      eric@webkit.org authored
              Reviewed by Eric Seidel.
      
              https://bugs.webkit.org/show_bug.cgi?id=32135
      
              [Qt] Add expected files for new tests we pass.
              Compared to the Mac expected png files.
      
              * platform/qt/fast/css/namespaces/namespaces-escapes-expected.txt: Added.
              * platform/qt/fast/css/namespaces/namespaces-invalid-at-expected.txt: Added.
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@51665 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      d1b05872
    • eric.carlson@apple.com's avatar
      2009-12-03 Eric Carlson <eric.carlson@apple.com> · f9652eb8
      eric.carlson@apple.com authored
              Reviewed by Adam Roben.
      
              Minor correction to r51663.
      
              * DumpRenderTree/win/DumpRenderTree.cpp:
              (addQTDirToPATH):
                  GetEnvironmentVariable -> GetEnvironmentVariableW.
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@51664 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      f9652eb8
    • eric.carlson@apple.com's avatar
      2009-12-03 Eric Carlson <eric.carlson@apple.com> · 41aa5b82
      eric.carlson@apple.com authored
              Reviewed by Adam Roben.
      
              ~96 regression tests fail when using QuickTime 7.6 (they pass with QuickTime 7.3)
              https://bugs.webkit.org/show_bug.cgi?id=30256
      
              Add the QuickTime dll directory to the PATH environment variable so
              inialization can succeed.
      
              * DumpRenderTree/win/DumpRenderTree.cpp:
              (addQTDirToPATH):
              (initialize):
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@51663 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      41aa5b82
    • eric@webkit.org's avatar
      2009-12-03 Shu Chang <Chang.Shu@nokia.com> · 85be1b37
      eric@webkit.org authored
              Reviewed by Kenneth Rohde Christiansen.
      
              [Qt] After revision 32643, sender() is of type QWebPage instead of QWebFrame.
      
              * DumpRenderTree/qt/LayoutTestControllerQt.cpp:
              (LayoutTestController::maybeDump):
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@51662 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      85be1b37
    • eric@webkit.org's avatar
      2009-12-03 Yuzo Fujishima <yuzo@google.com> · bb54348d
      eric@webkit.org authored
              Reviewed by Eric Seidel.
      
              Update pywebsocket to 0.4.3
              This version logs friendlier and higher-level messages in WARN level, which is used for LayoutTests.
              Stack trace is logged now in INFO level.
              https://bugs.webkit.org/show_bug.cgi?id=32097
      
              * pywebsocket/mod_pywebsocket/dispatch.py:
              * pywebsocket/mod_pywebsocket/msgutil.py:
              * pywebsocket/mod_pywebsocket/standalone.py:
              * pywebsocket/mod_pywebsocket/util.py:
              * pywebsocket/setup.py:
              * pywebsocket/test/test_dispatch.py:
              * pywebsocket/test/test_util.py:
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@51661 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      bb54348d
    • eric@webkit.org's avatar
      2009-12-03 Jonathan Dixon <joth@chromium.org> · 4dcdf42a
      eric@webkit.org authored
              Reviewed by Dimitri Glazkov.
      
              Bug 32066 - Add enable geolocation flag to WebCore::Settings for Chromium
              https://bugs.webkit.org/show_bug.cgi?id=32066
      
              Adds geolocationEnabled in Settings for runtime control of geolocaiton features. This defaults to ON
              as it is intended as a development and testing aid, not a user control. To completely remove geolocation
              from a given port, the compile time ENABLE_GEOLOCATION should still be used.
              Adding placeholder GeolocationServiceChromium implementation, as this is required to allows
              ENABLE_GEOLOCATION to be defined (in turn required for testing), even though this patch does not
              make that the default just yet.
      
              * WebCore.gypi:
              * page/Settings.cpp:
              (WebCore::Settings::Settings): Add new m_geolocationEnabled flag default value
              (WebCore::Settings::setGeolocationEnabled): Setter for  m_geolocationEnabled flag
              * page/Settings.h:
              (WebCore::Settings::geolocationEnabled):  Add m_geolocationEnabled flag
              * platform/chromium/GeolocationServiceChromium.cpp: Added.
              (WebCore::GeolocationServiceChromium::GeolocationServiceChromium): Place holder GeolocationServiceChromium)
              (WebCore::createGeolocationService): factory function, only required when ENABLED(GEOLOCATION) is true
      2009-12-03  Jonathan Dixon  <joth@chromium.org>
      
              Reviewed by Dimitri Glazkov.
      
              Bug 32066 - Add enable geolocation flag to WebCore::Settings for Chromium
              https://bugs.webkit.org/show_bug.cgi?id=32066
      
              Add the plumbing to map WebSettings through to WebCore::Settings
      
              * features.gypi:
              * public/WebSettings.h: Add setGeolocationEnabled API to interface
              * src/WebSettingsImpl.cpp:
              (WebKit::WebSettingsImpl::setGeolocationEnabled): Calls through to WebCore::Settings::setGeolocationEnabled
              * src/WebSettingsImpl.h: Add setGeolocationEnabled interface function
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@51660 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      4dcdf42a
    • enrica@apple.com's avatar
      SpinTracer: 349 spins in Mail at WebCore::Editor::advanceToNextMisspelling(bool) · e63d06f1
      enrica@apple.com authored
      <rdar://problem/7198592>
      https://bugs.webkit.org/show_bug.cgi?id=32129
      
      Reviewed by John Sullivan.
      
      Fixed the way the next paragraph is calculated.
      I've added a repro case in Safari and attached it to the Bugzilla bug.
      
      * editing/Editor.cpp:
      (WebCore::findFirstMisspellingOrBadGrammarInRange): Changed the way we move to the
      next paragraph in the loop.
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@51659 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      e63d06f1
    • eric@webkit.org's avatar
      2009-12-03 İsmail Dönmez <ismail@namtrac.org> · a3291294
      eric@webkit.org authored
              Reviewed by Eric Seidel.
      
              Fix compilation when SVG is disabled.
      
              * Api/qwebframe.cpp:
              (qt_drt_pauseSVGAnimation):
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@51658 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      a3291294
    • bweinstein@apple.com's avatar
      Rubber-stamped by Alexey Proskuryakov. · 6b09f949
      bweinstein@apple.com authored
      Skip failing WebSocket test on Windows.
      
      * platform/win/Skipped:
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@51657 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      6b09f949
    • weinig@apple.com's avatar
      Fix JSClassRef leak. · 22c5a169
      weinig@apple.com authored
      Reviewed by Gavin Barraclough.
      
      * DumpRenderTree/AccessibilityController.cpp:
      (AccessibilityController::makeWindowObject):
      * DumpRenderTree/GCController.cpp:
      (GCController::makeWindowObject):
      * DumpRenderTree/LayoutTestController.cpp:
      (LayoutTestController::makeWindowObject):
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@51656 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      22c5a169
    • beidson@apple.com's avatar
      Rubberstamped by Oliver Hunt. · 2e4141b0
      beidson@apple.com authored
      Fix layout tests by removing the full outputting of the Date object and just outputting the milliseconds since the epoch.
      
      * fast/loader/stateobjects/pushstate-object-types-expected.txt:
      * fast/loader/stateobjects/pushstate-object-types.html:
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@51655 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      2e4141b0
    • ap@apple.com's avatar
      Reviewed by Eric Seidel. · 8adc719c
      ap@apple.com authored
              https://bugs.webkit.org/show_bug.cgi?id=32130
              Add a test for sending non-trivial amount of data over WebSocket
      
              * websocket/tests/echo_wsh.py: Copied from WebKitTools/pywebsocket/example/echo_wsh.py.
              * websocket/tests/simple-stress-expected.txt: Added.
              * websocket/tests/simple-stress.html: Added.
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@51654 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      8adc719c
    • beidson@apple.com's avatar
      Rubberstamped by Sam Weinig. · a9808844
      beidson@apple.com authored
      Fix my absolute URL snafu by outputting only the last path component for these URLs, 
      which is all that is relevant.
      
      * fast/loader/stateobjects/document-destroyed-navigate-back-expected.txt:
      * fast/loader/stateobjects/document-destroyed-navigate-back-with-fragment-scroll-expected.txt:
      * fast/loader/stateobjects/document-destroyed-navigate-back-with-fragment-scroll.html:
      * fast/loader/stateobjects/document-destroyed-navigate-back.html:
      * fast/loader/stateobjects/pushstate-with-fragment-urls-and-hashchange-expected.txt:
      * fast/loader/stateobjects/pushstate-with-fragment-urls-and-hashchange.html:
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@51653 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      a9808844
    • oliver@apple.com's avatar
      Build fix · 273520d9
      oliver@apple.com authored
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@51652 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      273520d9
    • oliver@apple.com's avatar
      Build fix · fc90e7f7
      oliver@apple.com authored
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@51651 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      fc90e7f7
    • beidson@apple.com's avatar
      No wonder editing WebCore.exp repeatedly while I worked on this patch never seemed to stick. · 03e4ee63
      beidson@apple.com authored
      Long live our auto-generated overlords that I didn't know about...  
      
      * WebCore.base.exp:
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@51650 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      03e4ee63
    • oliver@apple.com's avatar
      REGRESSION (r51627): 3 SVG tests are failing · a6c1ae62
      oliver@apple.com authored
      https://bugs.webkit.org/show_bug.cgi?id=32117
      
      Reviewed by Dan Bernstein.
      
      Null checking Items in the SVGList is insufficient as items may
      be floats, etc so add SVGListTraits::isNull and add appropriate
      specializations.
      
      Test: svg/dom/svglist-exception-on-out-bounds-error.html
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@51649 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      a6c1ae62
    • beidson@apple.com's avatar
      No review - release build fix. · 91dfc666
      beidson@apple.com authored
      * history/HistoryItem.cpp:
      (WebCore::HistoryItem::documentDetached):
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@51648 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      91dfc666
    • beidson@apple.com's avatar
      No review - release build fix. · 7b5bb218
      beidson@apple.com authored
      * loader/HistoryController.cpp:
      (WebCore::HistoryController::pushState):
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@51647 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      7b5bb218
    • bweinstein@apple.com's avatar
      4d039fe5
    • enrica@apple.com's avatar
      WebCore: Multiple Undos removes the last posted comment and/or the ones before it. · d19cb889
      enrica@apple.com authored
      <rdar://problem/6557066>
      https://bugs.webkit.org/show_bug.cgi?id=32079
              
      Reviewed by Adele Peterson.
      
      The fix consists in preventing Undos and Redos to be applied to elements that
      are no longer editable. We do not attempt to remove the commands from the queue.
      It is a relatively simple fix that comes with a little extra overhead for the apply
      and unapply methods where we are now performing the editability check.
      
      Test: editing/undo/undo-indent-noneditable.html
      
      * editing/AppendNodeCommand.cpp:
      (WebCore::AppendNodeCommand::doApply):
      (WebCore::AppendNodeCommand::doUnapply):
      * editing/DeleteFromTextNodeCommand.cpp:
      (WebCore::DeleteFromTextNodeCommand::doApply):
      (WebCore::DeleteFromTextNodeCommand::doUnapply):
      * editing/InsertIntoTextNodeCommand.cpp:
      (WebCore::InsertIntoTextNodeCommand::doApply):
      (WebCore::InsertIntoTextNodeCommand::doUnapply):
      * editing/InsertNodeBeforeCommand.cpp:
      (WebCore::InsertNodeBeforeCommand::doApply):
      (WebCore::InsertNodeBeforeCommand::doUnapply):
      * editing/JoinTextNodesCommand.cpp:
      (WebCore::JoinTextNodesCommand::doApply):
      (WebCore::JoinTextNodesCommand::doUnapply):
      * editing/MergeIdenticalElementsCommand.cpp:
      (WebCore::MergeIdenticalElementsCommand::doApply):
      (WebCore::MergeIdenticalElementsCommand::doUnapply):
      * editing/RemoveNodeCommand.cpp:
      (WebCore::RemoveNodeCommand::doApply):
      (WebCore::RemoveNodeCommand::doUnapply):
      * editing/SplitElementCommand.cpp:
      (WebCore::SplitElementCommand::executeApply):
      (WebCore::SplitElementCommand::doUnapply):
      * editing/SplitTextNodeCommand.cpp:
      (WebCore::SplitTextNodeCommand::doApply):
      (WebCore::SplitTextNodeCommand::doUnapply):
      * editing/WrapContentsInDummySpanCommand.cpp:
      (WebCore::WrapContentsInDummySpanCommand::doUnapply):
      (WebCore::WrapContentsInDummySpanCommand::doReapply):
      
      LayoutTests: Multiple Undos removes the last posted comment and/or the ones before it.
      <rdar://problem/6557066>
      https://bugs.webkit.org/show_bug.cgi?id=32079
      
      Reviewed by Adele Peterson.
      
      Added test to verify that undo has no effect when an element is
      no longer editable.
              
      * editing/undo/undo-indent-noneditable-expected.txt: Added.
      * editing/undo/undo-indent-noneditable.html: Added.
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@51645 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      d19cb889
    • beidson@apple.com's avatar
      <rdar://problem/7214236> and http://webkit.org/b/32052 - Implement HTML5 state object history API · 08c61758
      beidson@apple.com authored
      Reviewed by Sam Weinig.
      
      WebCore: 
      
      Tests: fast/loader/stateobjects/document-destroyed-navigate-back.html
             fast/loader/stateobjects/document-destroyed-navigate-back-with-fragment-scroll.html
             fast/loader/stateobjects/popstate-after-load-complete-addeventlistener.html
             fast/loader/stateobjects/popstate-after-load-complete-body-attribute.html
             fast/loader/stateobjects/popstate-after-load-complete-window-attribute.html
             fast/loader/stateobjects/pushstate-object-types.html
             fast/loader/stateobjects/pushstate-then-replacestate.html
             fast/loader/stateobjects/pushstate-with-fragment-urls-and-hashchange.html
             fast/loader/stateobjects/replacestate-then-pushstate.html
             http/tests/loading/state-object-security-exception.html
      
      Derived sources and project file changes:
      * DerivedSources.cpp:
      * DerivedSources.make:
      * GNUmakefile.am
      * WebCore.pro
      * WebCore.vcproj/WebCore.vcproj:
      * WebCore.xcodeproj/project.pbxproj:
      
      Add the new PopStateEvent:
      * dom/PopStateEvent.cpp: Added.
      (WebCore::PopStateEvent::PopStateEvent):
      (WebCore::PopStateEvent::initPopStateEvent):
      * dom/PopStateEvent.h: Added.
      (WebCore::PopStateEvent::create):
      (WebCore::PopStateEvent::isPopStateEvent):
      (WebCore::PopStateEvent::state):
      * dom/PopStateEvent.idl: Added.
      * bindings/js/JSPopStateEventCustom.cpp: Added.
      (WebCore::JSPopStateEvent::initPopStateEvent):
      (WebCore::JSPopStateEvent::state):
      * bindings/js/JSEventCustom.cpp:
      (WebCore::toJS):
      * dom/Event.cpp:
      (WebCore::Event::isPopStateEvent):
      * dom/Event.h:
      * dom/EventNames.h:
      
      Add the "onpopstate" attribute:
      * html/HTMLAttributeNames.in:
      * html/HTMLBodyElement.cpp:
      (WebCore::HTMLBodyElement::parseMappedAttribute):
      * html/HTMLBodyElement.idl:
      * html/HTMLFrameSetElement.cpp:
      (WebCore::HTMLFrameSetElement::parseMappedAttribute):
      * html/HTMLFrameSetElement.h:
      * html/HTMLFrameSetElement.idl:
      * page/DOMWindow.h:
      * page/DOMWindow.idl:
      
      Add pushState and replaceState management to the loader and history machinery:
      * bindings/js/JSHistoryCustom.cpp:
      (WebCore::JSHistory::pushState):
      (WebCore::JSHistory::replaceState):
      * loader/HistoryController.cpp:
      (WebCore::HistoryController::updateForSameDocumentNavigation): Augmented from "scrollToAnchor()", combining
        both the same-document fragment scroll case with the new same-document state object activation case.
      (WebCore::HistoryController::pushState):
      (WebCore::HistoryController::replaceState):
      * loader/HistoryController.h:
      * history/BackForwardList.cpp:
      (WebCore::BackForwardList::addItem): Use insertItemAfterCurrent.
      (WebCore::BackForwardList::insertItemAfterCurrent): Optionally insert the item without clearing the forward
        list, as pushStateItem might've selectively cleared only certain items, with the bulk of the forward list
        meant to remain.
      (WebCore::BackForwardList::pushStateItem): Clear the forward list *only* for the state item's document, then 
        insert the new item.
      (WebCore::BackForwardList::removeItem):
      * history/BackForwardList.h:
      * page/History.cpp:
      (WebCore::History::urlForState):
      (WebCore::History::stateObjectAdded):
      * page/History.h:
      * page/History.idl:
      
      Let HistoryItems and Documents associate with each other, as well as letting HistoryItems contain state objects:
      * history/HistoryItem.cpp:
      (WebCore::HistoryItem::HistoryItem):
      (WebCore::HistoryItem::~HistoryItem):
      (WebCore::HistoryItem::setStateObject):
      (WebCore::HistoryItem::setDocument):
      (WebCore::HistoryItem::documentDetached):
      * history/HistoryItem.h:
      (WebCore::HistoryItem::stateObject):
      (WebCore::HistoryItem::document):
      * dom/Document.cpp:
      (WebCore::Document::detach): Notify all back/forward history items owned by this Document that it
        is going away.
      (WebCore::Document::registerHistoryItem): Manage the list of back/forward history items this document owns.
      (WebCore::Document::unregisterHistoryItem): Ditto.
      * dom/Document.h:
      
      Add the ability for Documents, DocumentLoaders, and FrameLoaderClients to be notified when a Documents
      URL changes as the result of pushState(), replaceState(), or a popstate navigation:
      * dom/Document.cpp:
      (WebCore::Document::implicitClose): If there's a pending state object, dispatch the popstate event.
      (WebCore::Document::updateURLForPushOrReplaceState):
      (WebCore::Document::statePopped): If loading is complete, dispatch the popstate event. Otherwise, set 
        the pending state object.
      * loader/DocumentLoader.cpp:
      (WebCore::DocumentLoader::replaceRequestURLForSameDocumentNavigation):
      * loader/DocumentLoader.h:
      * loader/FrameLoaderClient.h:
      * loader/EmptyClients.h:
      (WebCore::EmptyFrameLoaderClient::dispatchDidChangeStateObjectForPageForFrame):
      
      Change handling of "loading a HistoryItem" to distinguish between new-Document navigations and same-Document
      navigations, combining the old concept of anchor scrolls with the new concept of state object navigations:
      * loader/FrameLoader.cpp:
      (WebCore::FrameLoader::loadInSameDocument):
      (WebCore::FrameLoader::continueFragmentScrollAfterNavigationPolicy):
      (WebCore::FrameLoader::navigateWithinDocument):
      (WebCore::FrameLoader::navigateToDifferentDocument):
      (WebCore::FrameLoader::loadItem):
      * loader/FrameLoader.h:
      * page/Page.cpp:
      (WebCore::Page::goToItem): Changed to allow state object activations to pass through without the load stopping.
      
      WebKit/chromium: 
      
      * src/FrameLoaderClientImpl.cpp:
      (WebKit::FrameLoaderClientImpl::dispatchDidPushStateWithinPage):
      (WebKit::FrameLoaderClientImpl::dispatchDidReplaceStateWithinPage):
      (WebKit::FrameLoaderClientImpl::dispatchDidPopStateWithinPage):
      * src/FrameLoaderClientImpl.h:
      
      WebKit/gtk: 
      
      * WebCoreSupport/FrameLoaderClientGtk.cpp:
      (WebKit::FrameLoaderClient::dispatchDidPushStateWithinPage):
      (WebKit::FrameLoaderClient::dispatchDidReplaceStateWithinPage):
      (WebKit::FrameLoaderClient::dispatchDidPopStateWithinPage):
      * WebCoreSupport/FrameLoaderClientGtk.h:
      
      WebKit/mac: 
      
      * WebCoreSupport/WebFrameLoaderClient.h:
      * WebCoreSupport/WebFrameLoaderClient.mm:
      (WebFrameLoaderClient::dispatchDidPushStateWithinPage):
      (WebFrameLoaderClient::dispatchDidReplaceStateWithinPage):
      (WebFrameLoaderClient::dispatchDidPopStateWithinPage):
      * WebView/WebDelegateImplementationCaching.h:
      * WebView/WebFrameLoadDelegatePrivate.h:
      * WebView/WebView.mm:
      (-[WebView _cacheFrameLoadDelegateImplementations]):
      
      WebKit/qt: 
      
      * WebCoreSupport/FrameLoaderClientQt.cpp:
      (WebCore::FrameLoaderClientQt::dispatchDidPushStateWithinPage):
      (WebCore::FrameLoaderClientQt::dispatchDidReplaceStateWithinPage):
      (WebCore::FrameLoaderClientQt::dispatchDidPopStateWithinPage):
      * WebCoreSupport/FrameLoaderClientQt.h:
      
      WebKit/win: 
      
      * Interfaces/IWebFrameLoadDelegatePrivate2.idl:
      * WebCoreSupport/WebFrameLoaderClient.cpp:
      (WebFrameLoaderClient::dispatchDidPushStateWithinPage):
      (WebFrameLoaderClient::dispatchDidReplaceStateWithinPage):
      (WebFrameLoaderClient::dispatchDidPopStateWithinPage):
      * WebCoreSupport/WebFrameLoaderClient.h:
      
      WebKit/wx: 
      
      * WebKitSupport/FrameLoaderClientWx.cpp:
      (WebCore::FrameLoaderClientWx::dispatchDidPushStateWithinPage):
      (WebCore::FrameLoaderClientWx::dispatchDidReplaceStateWithinPage):
      (WebCore::FrameLoaderClientWx::dispatchDidPopStateWithinPage):
      * WebKitSupport/FrameLoaderClientWx.h:
      
      WebKitTools: 
      
      Keep DRT-win building...
      
      * DumpRenderTree/win/FrameLoadDelegate.h:
      (FrameLoadDelegate::didPushStateWithinPageForFrame):
      (FrameLoadDelegate::didReplaceStateWithinPageForFrame):
      (FrameLoadDelegate::didPopStateWithinPageForFrame):
      
      LayoutTests: 
      
      Update expected results of old tests:
      * fast/dom/Window/window-appendages-cleared-expected.txt:
      * fast/dom/Window/window-properties-expected.txt:
      * http/tests/security/cross-frame-access-enumeration-expected.txt:
      
      New tests:
      * fast/loader/stateobjects: Added.
      * fast/loader/stateobjects/document-destroyed-navigate-back-expected.txt: Added.
      * fast/loader/stateobjects/document-destroyed-navigate-back-with-fragment-scroll-expected.txt: Added.
      * fast/loader/stateobjects/document-destroyed-navigate-back-with-fragment-scroll.html: Added.
      * fast/loader/stateobjects/document-destroyed-navigate-back.html: Added.
      * fast/loader/stateobjects/popstate-after-load-complete-addeventlistener-expected.txt: Added.
      * fast/loader/stateobjects/popstate-after-load-complete-addeventlistener.html: Added.
      * fast/loader/stateobjects/popstate-after-load-complete-body-attribute-expected.txt: Added.
      * fast/loader/stateobjects/popstate-after-load-complete-body-attribute.html: Added.
      * fast/loader/stateobjects/popstate-after-load-complete-body-inline-attribute-expected.txt: Added.
      * fast/loader/stateobjects/popstate-after-load-complete-body-inline-attribute.html: Added.
      * fast/loader/stateobjects/popstate-after-load-complete-window-attribute-expected.txt: Added.
      * fast/loader/stateobjects/popstate-after-load-complete-window-attribute.html: Added.
      * fast/loader/stateobjects/pushstate-object-types-expected.txt: Added.
      * fast/loader/stateobjects/pushstate-object-types.html: Added.
      * fast/loader/stateobjects/pushstate-then-replacestate-expected.txt: Added.
      * fast/loader/stateobjects/pushstate-then-replacestate.html: Added.
      * fast/loader/stateobjects/pushstate-with-fragment-urls-and-hashchange-expected.txt: Added.
      * fast/loader/stateobjects/pushstate-with-fragment-urls-and-hashchange.html: Added.
      * fast/loader/stateobjects/replacestate-then-pushstate-expected.txt: Added.
      * fast/loader/stateobjects/replacestate-then-pushstate.html: Added.
      * fast/loader/stateobjects/resources: Added.
      * fast/loader/stateobjects/resources/navigate-back.html: Added.
      * http/tests/loading/state-object-security-exception-expected.txt: Added.
      * http/tests/loading/state-object-security-exception.html: Added.
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@51644 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      08c61758
    • kov@webkit.org's avatar
      Reviewed by Xan Lopez. · a88b9872
      kov@webkit.org authored
      Platform-specific result for test. GIO identifies the file as
      application/javascript, as opposed to other platforms identifying
      it as application/x-javascript.
      
      * platform/gtk/inspector/timeline-network-resource-expected.txt: Added.
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@51643 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      a88b9872
    • pfeldman@chromium.org's avatar
      2009-12-03 Pavel Feldman <pfeldman@chromium.org> · eaf2e4ae
      pfeldman@chromium.org authored
              Not reviewed: chromium build fix.
              r51621 changed JS bindings only, broke v8's.
      
              * bindings/v8/ScriptFunctionCall.cpp:
              (WebCore::ScriptFunctionCall::appendArgument):
              * bindings/v8/ScriptFunctionCall.h:
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@51642 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      eaf2e4ae
    • kov@webkit.org's avatar
      Rubber-stamped by Oliver Hunt. · 25b4303f
      kov@webkit.org authored
      Re-baseline required after r51522.
      
      * platform/gtk/editing/deleting/5390681-2-expected.txt:
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@51641 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      25b4303f
    • kov@webkit.org's avatar
      Skipping new tests, and tests that require new DRT functionality. · d6637684
      kov@webkit.org authored
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@51640 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      d6637684
    • zoltan@webkit.org's avatar
      Unreviewed build fix. · e8c14fc0
      zoltan@webkit.org authored
      Patch by Andras Becsi <abecsi@inf.u-szeged.hu> on 2009-12-03
      [Qt] ARM-Linux build fix after r51634 removed unused QBoxLayout include which included limits.h on ARM.
      
      * DumpRenderTree/qt/DumpRenderTree.cpp:
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@51639 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      e8c14fc0
    • dglazkov@chromium.org's avatar
      2009-12-03 Dimitri Glazkov <dglazkov@chromium.org> · ca341fc0
      dglazkov@chromium.org authored
              Reviewed by Adam Barth.
      
              [V8] Attributes and NamedNodeMaps aren't tracked correctly and may be prematurely garbage-collected.
              https://bugs.webkit.org/show_bug.cgi?id=32094
      
              Covered by existing test: LayoutTests/fast/dom/Attr/access-after-element-destruction.html
      
              * bindings/v8/DOMObjectsInclude.h:
              * bindings/v8/V8DOMWrapper.cpp:
              (WebCore::V8DOMWrapper::getTemplate):
              (WebCore::V8DOMWrapper::convertToV8Object):
              (WebCore::V8DOMWrapper::convertNamedNodeMapToV8Object):
              * bindings/v8/V8DOMWrapper.h:
              * bindings/v8/V8GCController.cpp:
              (WebCore::ObjectGrouperVisitor::visitDOMWrapper):
              * bindings/v8/custom/V8CustomBinding.h:
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@51638 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      ca341fc0
    • pfeldman@chromium.org's avatar
      2009-12-03 Pavel Feldman <pfeldman@chromium.org> · ad9927f8
      pfeldman@chromium.org authored
              Reviewed by Timothy Hatcher.
      
              Chromium: Add support for settings containing ":"
      
              https://bugs.webkit.org/show_bug.cgi?id=32118
      
              * src/InspectorClientImpl.cpp:
              (WebKit::InspectorClientImpl::loadSettings):
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@51637 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      ad9927f8
    • kenneth@webkit.org's avatar
      repaint events from outside the viewport aren't received · 9ba6222a
      kenneth@webkit.org authored
      https://bugs.webkit.org/show_bug.cgi?id=32081
      
      Reviewed by Simon Fraser.
      
      When using a tiled backing store for painting, you need to receive
      event from outside the viewport. Setting the viewport to the size
      of the contents is not an option if you want to make use of WebCore's
      infrastructure for drawing scrollbars etc.
      
      A new property, paintsEntireContents, has been introduced for the
      above use-case. It is settable, as tiling will be optional for Qt,
      and for the not yet upstreamed EFL port, there will be two different
      views, where only one of them are tiled.
      
      No change in behavior, so no new tests added.
      
      * page/FrameView.cpp:
      (WebCore::FrameView::repaintContentRectangle):
      * platform/ScrollView.cpp:
      (WebCore::ScrollView::ScrollView):
      (WebCore::ScrollView::setPaintsEntireContents):
      (WebCore::ScrollView::wheelEvent):
      * platform/ScrollView.h:
      (WebCore::ScrollView::paintsEntireContents):
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@51636 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      9ba6222a
    • ossy@webkit.org's avatar
      [Qt] Skip layoutTestController.notifyDone() related tests which got revealed in r51634 · a9cdf7ca
      ossy@webkit.org authored
      until there is a fix for the issue.
      https://bugs.webkit.org/show_bug.cgi?id=31626
      
      Patch by Andras Becsi <abecsi@inf.u-szeged.hu> on 2009-12-03
      Reviewed by Kenneth Rohde Christiansen.
      
      * platform/qt/Skipped:
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@51635 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      a9cdf7ca
    • ossy@webkit.org's avatar
      WebKitTools: [Qt] Refactor DRT to not crash on tests which open child windows from javascript. · 4c25fd88
      ossy@webkit.org authored
      Prevent DRT from showing the main view if these childs get deleted.
      This fixes https://bugs.webkit.org/show_bug.cgi?id=31591.
      
      Patch by Andras Becsi <abecsi@inf.u-szeged.hu> on 2009-12-03
      Reviewed by Kenneth Rohde Christiansen.
      
      * DumpRenderTree/qt/DumpRenderTree.cpp:
      (WebCore::WebPage::WebPage):
      (WebCore::DumpRenderTree::DumpRenderTree):
      (WebCore::DumpRenderTree::~DumpRenderTree):
      (WebCore::DumpRenderTree::resetToConsistentStateBeforeTesting):
      (WebCore::DumpRenderTree::open):
      (WebCore::DumpRenderTree::closeRemainingWindows):
      (WebCore::DumpRenderTree::createWindow):
      (WebCore::DumpRenderTree::windowCount):
      * DumpRenderTree/qt/DumpRenderTree.h:
      
      LayoutTests: [Qt] Re-enable previously skipped tests.
      https://bugs.webkit.org/show_bug.cgi?id=31591
      
      Patch by Andras Becsi <abecsi@inf.u-szeged.hu> on 2009-12-03
      Reviewed by Kenneth Rohde Christiansen.
      
      * platform/qt/Skipped:
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@51634 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      4c25fd88
    • jeremy@chromium.org's avatar
      Reviewed by Eric Seidel. · 4c9cc0b9
      jeremy@chromium.org authored
      Switch Chrome/Mac to use Core Text APIs rather than ATSUI APIs.
      https://bugs.webkit.org/show_bug.cgi?id=31802
      
      No test since this is already covered by existing pixel tests.
      
      * platform/graphics/SimpleFontData.h: Change #ifdef to define getNSFont() on Chrome/Mac .
      * platform/graphics/mac/ComplexTextControllerCoreText.cpp: Provide forward declarations
      of Core Text functions that are public on 10.6 but SPI on 10.5.
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@51633 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      4c9cc0b9
    • ossy@webkit.org's avatar
      [Qt] Put test into skiplist because of missing layoutTestController.evaluateInWebInspector(). · e58c8436
      ossy@webkit.org authored
      * platform/qt/Skipped:
      - inspector/settings-set-get.html added.
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@51632 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      e58c8436