1. 20 Mar, 2008 12 commits
    • andersca@apple.com's avatar
      .: · 2421f66e
      andersca@apple.com authored
      2008-03-20  Jasper Bryant-Greene  <jasper@unix.geek.nz>
      
              Reviewed by Anders.
      
              Resolves http://bugs.webkit.org/show_bug.cgi?id=16092
              "[GTK] Middle-mouse click should allow opening a URL in a new tab"
      
              Added WebKitNavigationAction object to GTK API
      
              * GNUmakefile.am:
      
      WebKit/gtk:
      
      2008-03-20  Jasper Bryant-Greene  <jasper@unix.geek.nz>
      
              Reviewed and tweaked by Anders.
      
              Resolves http://bugs.webkit.org/show_bug.cgi?id=16092
              "[GTK] Middle-mouse click should allow opening a URL in a new tab"
      
              Created WebKitNavigationAction object exported through the API. The
              navigation-requested signal provides this object as context for the
              requested navigation, allowing the application to decide what to do
              with the navigation based on which mouse button was used, which
              modifier keys were held down, etc. This allows, for example, the
              application to open links in a new tab when either middle-click or
              control-click are used to initiate the navigation.
      
              * WebCoreSupport/FrameLoaderClientGtk.cpp:
              (WebKit::FrameLoaderClient::dispatchDecidePolicyForNavigationAction):
              * webkit/headers.pri:
              * webkit/webkit-marshal.list:
              * webkit/webkitdefines.h:
              * webkit/webkitnavigationaction.cpp: Added.
              (webkit_navigation_action_finalize):
              (webkit_navigation_action_class_init):
              (webkit_navigation_action_init):
              (webkit_navigation_action_get_button):
              (webkit_navigation_action_get_modifier_flags):
              (webkit_navigation_action_get_navigation_type):
              (webkit_navigation_action_get_original_url):
              * webkit/webkitnavigationaction.h: Added.
              * webkit/webkitprivate.cpp:
              (WebKit::kit):
              * webkit/webkitprivate.h:
              * webkit/webkitwebview.cpp:
              * webkit/webkitwebview.h:
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@31183 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      2421f66e
    • hyatt@apple.com's avatar
      Added layout test for dynamic sibling selector patch. · 531811b8
      hyatt@apple.com authored
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@31182 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      531811b8
    • hyatt@apple.com's avatar
      2008-03-20 David Hyatt <hyatt@apple.com> · fb63d769
      hyatt@apple.com authored
              Fix for http://bugs.webkit.org/show_bug.cgi?id=9279
      
              Make :hover work with the adjacent sibling selector.  This fix makes all forms of dynamic changes
              (class name changes, :hover, :focus, etc.) work properly when used with the + selector.
      
              Reviewed by weinig
      
              Added fast/css/dynamic-sibling-selector.html
      
              * dom/Element.cpp:
              (WebCore::Element::recalcStyle):
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@31181 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      fb63d769
    • hyatt@apple.com's avatar
      Add full page zoom API for Windows WebKit. · a147b791
      hyatt@apple.com authored
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@31180 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      a147b791
    • sullivan@apple.com's avatar
      WebKit: · ab0d8cee
      sullivan@apple.com authored
      2008-03-20  John Sullivan  <sullivan@apple.com>
      
              * StringsNotToBeLocalized.txt:
              Brought this file up to date
      
      WebKit/win:
      
      2008-03-20  John Sullivan  <sullivan@apple.com>
      
              * English.lproj/Localizable.strings:
              Brought this file up to date
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@31179 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      ab0d8cee
    • ddkilzer@apple.com's avatar
      WebCore: · e86695c4
      ddkilzer@apple.com authored
      2008-03-20  Aaron Golden  <aegolden@gmail.com>
      
              Reviewed by Darin and David Kilzer.
      
              Addresses <http://bugs.webkit.org/show_bug.cgi?id=15263>, which caused certain marquees to not display.
      
              Test: fast/html/marquee-scroll.html
      
              * html/HTMLMarqueeElement.cpp:
              (WebCore::HTMLMarqueeElement::parseMappedAttribute):
      
      LayoutTests:
      
      2008-03-20  Aaron Golden  <aegolden@gmail.com>
      
              Reviewed by Darin and David Kilzer.
      
              - test for <http://bugs.webkit.org/show_bug.cgi?id=15263>, which caused certain marquees to not display.
      
              * fast/html/marquee-scroll.html: Added.
              * platform/mac/fast/html/marquee-scroll-expected.checksum: Added.
              * platform/mac/fast/html/marquee-scroll-expected.png: Added.
              * platform/mac/fast/html/marquee-scroll-expected.txt: Added.
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@31178 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      e86695c4
    • aroben@apple.com's avatar
      Make WebNodeHighlightView use InspectorController to do its painting · ad382725
      aroben@apple.com authored
       WebCore:
      
               Export InspectorController::drawNodeHighlight
      
               Reviewed by Tim Hatcher.
      
               * WebCore.base.exp: Also sorted this file.
      
       WebKit:
      
               Mark WebNodeHighlight.m and WebNodeHighlightView.m Obj-C++
      
               Reviewed by Tim Hatcher.
      
               * WebKit.xcodeproj/project.pbxproj:
      
       WebKit/mac:
      
               Make WebNodeHighlightView use InspectorController to do its painting
      
               Reviewed by Tim Hatcher.
      
               * WebCoreSupport/WebInspectorClient.mm:
               (-[WebInspectorWindowController highlightNode:]): Pass the
               InspectorController to the WebNodeHighlight, and don't call
               setHighlightedNode: (which has been removed).
               (-[WebInspectorWindowController hideHighlight]): Removed call to
               setHighlightedNode:.
               * WebInspector/WebNodeHighlight.h:
                 - Replaced _highlightNode with _inspectorController
                 - Removed _highlightedNode accessors
                 - Added -inspectorController method
               * WebInspector/WebNodeHighlight.m:
               (-[WebNodeHighlight initWithTargetView:inspectorController:]): Now
               takes an InspectorController* and stores it in _inspectorController.
               (-[WebNodeHighlight dealloc]): Removed code dealing with
               _highlightedNode.
               (-[WebNodeHighlight inspectorController]): Added.
               * WebInspector/WebNodeHighlightView.m: Removed FileInternal category.
               (-[WebNodeHighlightView isFlipped]): Added. WebCore expects all
               GraphicsContexts to be based on a flipped CGContext, so we have to
               specify that this view is flipped.
               (-[WebNodeHighlightView drawRect:]): Changed to create a
               GraphicsContext and pass it to InspectorController::drawNodeHighlight.
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@31177 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      ad382725
    • ddkilzer@apple.com's avatar
      2008-03-20 David Krause <david.krause@gmail.com> · 4da39a1a
      ddkilzer@apple.com authored
              Reviewed by David Kilzer.
      
              Fix http://bugs.webkit.org/show_bug.cgi?id=17923
              Bug 17923: ARM platform endian defines inaccurate
      
              * wtf/Platform.h: 
              Replaced !defined(__ARMEL__) check with !defined(__VFP_FP__)
              for PLATFORM(MIDDLE_ENDIAN)
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@31176 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      4da39a1a
    • mjs@apple.com's avatar
      2008-03-20 Maciej Stachowiak <mjs@apple.com> · 11842978
      mjs@apple.com authored
              - fix build
      
              * ForwardingHeaders/wtf/ListRefPtr.h: Added.
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@31175 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      11842978
    • mjs@apple.com's avatar
      2008-03-20 Maciej Stachowiak <mjs@apple.com> · ecdc0d57
      mjs@apple.com authored
              - fix build
      
              * JavaScriptCore.xcodeproj/project.pbxproj: install Activation.h as private
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@31174 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      ecdc0d57
    • mjs@apple.com's avatar
      2008-03-20 Maciej Stachowiak <mjs@apple.com> · 8356d838
      mjs@apple.com authored
              Reviewed by Oliver.
              
              - reduce function call overhead for 1.014x speedup on SunSpider
      
              I moved some functions from ExecState.cpp to ExecStateInline.h and
              from JSGlobalObject.cpp to JSGlobalObject.h, and declared them
              inline; machine function call overhead for these was hurting JS
              funcion call overhead.
              
              * kjs/ExecState.cpp:
              * kjs/ExecStateInlines.h: Added.
              (KJS::ExecState::ExecState):
              (KJS::ExecState::~ExecState):
              (KJS::FunctionExecState::FunctionExecState):
              (KJS::FunctionExecState::~FunctionExecState):
              * kjs/JSGlobalObject.cpp:
              * kjs/JSGlobalObject.h:
              (KJS::JSGlobalObject::pushActivation):
              (KJS::JSGlobalObject::checkActivationCount):
              (KJS::JSGlobalObject::popActivation):
              * kjs/function.cpp:
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@31173 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      8356d838
    • oliver@apple.com's avatar
      Avoid heap allocating the root scope chain node for eval and closure free functions · c635d17d
      oliver@apple.com authored
      Reviewed by Maciej
      
      Maciej suggested using an inline ScopeChainNode for functions that don't use eval
      or closures as they are unable to ever capture the scope chain.  This gives us a 2.4%
      win in sunspider, a 15% win in controlflow-recursive, and big (>5%) wins in a number
      of other tests.
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@31172 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      c635d17d
  2. 19 Mar, 2008 24 commits
    • slewis@apple.com's avatar
      2008-03-19 Stephanie Lewis <slewis@apple.com> · 2e1b301a
      slewis@apple.com authored
              Rubber-stamped by Anders.
      
              Fix Windows Build
      
              * platform/cf/SharedBufferCF.cpp:
              (WebCore::SharedBuffer::createCFData):
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@31171 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      2e1b301a
    • slewis@apple.com's avatar
      2008-03-19 Stephanie Lewis <slewis@apple.com> · 576d2c46
      slewis@apple.com authored
              Rubber-stamped by Anders.
      
              Fix Windows Build
      
              * platform/SharedBuffer.h:
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@31170 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      576d2c46
    • justin.garcia@apple.com's avatar
      WebCore: · bb4385ce
      justin.garcia@apple.com authored
      2008-03-19  Justin Garcia  <justin.garcia@apple.com>
      
              Reviewed by Oliver.
              
              <rdar://problem/5780697> Copying content with CSS property values that are percentages can cause fidelity issues
               
              Elements with height: x%; overflow: visible; overlap what's below them when they are copied from
              a document in quirksmode and pasted into to one in standards mode.  This fix uses the computed 
              the value for a property if its value is a percentage.
              
              * css/CSSMutableStyleDeclaration.cpp:
              (WebCore::CSSMutableStyleDeclaration::addParsedProperty): Added so that we don't have to use
              setProperty from appendStartMarkup.  We already have a parsed property value, so we shouldn't
              use setProperty, since it takes in a String.  If we did, we would have to call CSSValue::cssText()
              for a String only to re-parse it in setProperty.  This wasn't extremely important now, but it will 
              be as we compute more properties to fix the rest of the copy/paste fidelity bugs.
              * css/CSSMutableStyleDeclaration.h:
              * editing/markup.cpp:
              (WebCore::appendStartMarkup): Compute values for properties that have percentage values.  We could
              perhaps narrow this special case to only include properties that are effected by quirksmode.
      
      LayoutTests:
      
      2008-03-19  Justin Garcia  <justin.garcia@apple.com>
      
              Reviewed by Oliver.
              
              <rdar://problem/5780697> Copying content with CSS property values that are percentages can cause fidelity issues
      
              * editing/pasteboard/5780697-2-expected.txt: Added.
              * editing/pasteboard/5780697-2.html: Added.
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@31169 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      bb4385ce
    • mrowe@apple.com's avatar
      2008-03-19 Mark Rowe <mrowe@apple.com> · 3005eed5
      mrowe@apple.com authored
              Reviewed by Sam Weinig.
      
              Fix release build.
      
              * kjs/JSGlobalObject.cpp:  Add missing #include.
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@31168 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      3005eed5
    • weinig@apple.com's avatar
      JavaScriptCore: · ccbb2d03
      weinig@apple.com authored
      2008-03-19  Sam Weinig  <sam@webkit.org>
      
              Reviewed by Anders Carlsson.
      
              Fix for <rdar://problem/5785694>
              Crash occurs at KJS::Collector::collect() when loading web clip widgets with a PAC file
      
              Make the activeExecStates stack per JSGlobalObject instead of static to ensure
              thread safety.
      
              * JavaScriptCore.exp:
              * kjs/ExecState.cpp:
              (KJS::InterpreterExecState::InterpreterExecState):
              (KJS::InterpreterExecState::~InterpreterExecState):
              (KJS::EvalExecState::EvalExecState):
              (KJS::EvalExecState::~EvalExecState):
              (KJS::FunctionExecState::FunctionExecState):
              (KJS::FunctionExecState::~FunctionExecState):
              * kjs/ExecState.h:
              (KJS::):
              * kjs/JSGlobalObject.cpp:
              (KJS::JSGlobalObject::mark):
              * kjs/JSGlobalObject.h:
              (KJS::JSGlobalObject::activeExecStates):
              * kjs/collector.cpp:
              (KJS::Collector::collect):
              (KJS::Collector::reportOutOfMemoryToAllExecStates): Iterate all JSGlobalObjects and report
              the OutOfMemory condition to all the ExecStates in each.
      
      WebCore:
      
      2008-03-19  Sam Weinig  <sam@webkit.org>
      
              Reviewed by Anders Carlsson.
      
              Fix for <rdar://problem/5785694>
              Crash occurs at KJS::Collector::collect() when loading web clip widgets with a PAC file
      
              Make the activeExecStates stack per JSGlobalObject instead of static to ensure
              thread safety.
      
              * bindings/objc/WebScriptObject.mm:
              (+[WebScriptObject throwException:]): Change to throw an exception on the current
              GlobalObject instead of the top of the static activeExecStates stack.
              (-[WebScriptObject setException:]): Change to use the top of the rootObjects GlobalObject
              instead of the top of the static activeExecStates stack.
      
              * bridge/c/c_instance.cpp:
              * bridge/c/c_instance.h:
              * bridge/jni/jni_instance.cpp:
              (JavaInstance::virtualBegin):
              (JavaInstance::virtualEnd):
              * bridge/jni/jni_instance.h:
              * bridge/objc/objc_instance.h:
              * bridge/objc/objc_instance.mm:
              (ObjcInstance::~ObjcInstance):
              (ObjcInstance::virtualBegin):
              (ObjcInstance::virtualEnd):
              * bridge/runtime.cpp:
              (KJS::Bindings::Instance::setDidExecuteFunction):
              (KJS::Bindings::Instance::didExecuteFunction):
              (KJS::Bindings::Instance::setCurrentGlobalObject): Added.
              (KJS::Bindings::Instance::currentGlobalObject): Added.
              (KJS::Bindings::Instance::begin):
              (KJS::Bindings::Instance::end):
              * bridge/runtime.h:
              (KJS::Bindings::Instance::virtualBegin): Renamed from begin().
              (KJS::Bindings::Instance::virtualEnd): Renamed from end().
              We now store the currently active globalObject everytime we cross the runtime
              object boundary.  To do this, we take advantage of the existing begin/end
              methods that are called when crossing this boundary, making begin set the current
              globalObject and then call the old begin, now called virtualBegin.
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@31167 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      ccbb2d03
    • beidson@apple.com's avatar
      2008-03-19 Brady Eidson <beidson@apple.com> · 22f1098a
      beidson@apple.com authored
              Reviewed by Anders
      
              Change SharedBuffer so the wrapping platform data aspect can be shared with all CoreFoundation platforms
              (Mac and Windows instead of just Mac)
      
              * WebCore.vcproj/WebCore.vcproj: Add SharedBufferCF.cpp
              * WebCore.xcodeproj/project.pbxproj: Ditto
      
              * platform/SharedBuffer.cpp:
              * platform/SharedBuffer.h: Change the private c'tor from NSData to CFDataRef, other PLATFORM tweaks
      
              * platform/cf/SharedBufferCF.cpp: Added.
              (WebCore::SharedBuffer::SharedBuffer):
              (WebCore::SharedBuffer::createCFData): Non-Mac version of createCFData
              (WebCore::SharedBuffer::hasPlatformData):
              (WebCore::SharedBuffer::platformData):
              (WebCore::SharedBuffer::platformDataSize):
              (WebCore::SharedBuffer::maybeTransferPlatformData):
              (WebCore::SharedBuffer::clearPlatformData):
      
              * platform/mac/SharedBufferMac.mm:
              (WebCore::SharedBuffer::wrapNSData): Use the CFDataRef constructor via toll-free bridging
              (WebCore::SharedBuffer::createCFData): Mac-specific version of createCFData
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@31166 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      22f1098a
    • mitz@apple.com's avatar
      2008-03-19 Dan Bernstein <mitz@apple.com> · 2a66f46e
      mitz@apple.com authored
              - build fix
      
              * Interfaces/WebKit.idl: Touched.
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@31165 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      2a66f46e
    • aroben@apple.com's avatar
      Fix a couple of bugs where the node highlight would appear when it shouldn't · 896e8c6e
      aroben@apple.com authored
              There were at least two ways you could get the highlight to appear
              when it shouldn't:
                1) Selecting a node in the Inspector while the inspected WebView was
                   in a background tab.
                2) Selecting a node in the Inspector, switching to another tab,
                   closing the Inspector, then switching back to the inspected
                   WebView's tab.
      
              This patch fixes the above two issues, and possibly others.
      
              show() and hide() are now private methods of WebNodeHighlight. They
              are replaced by a single public method,
              setShowsWhileWebViewIsVisible(bool). WebInspectorClient uses this to
              tell the highlight whether it should be showing when the inspected
              WebView is visible.
      
              Reviewed by John Sullivan.
      
              * WebCoreSupport/WebInspectorClient.cpp:
              (WebInspectorClient::highlight): If the highlight is already showing,
              it just needs to update since the highlighted node has changed. If the
              highlight is not showing, call setShowsWhileWebViewIsVisible(true) so
              that the highlight will show when the WebView is shown.
              (WebInspectorClient::hideHighlight): Changed to call
              setShowsWhileWebViewIsVisible(false) instead of hide().
              * WebNodeHighlight.cpp:
              (WebNodeHighlight::WebNodeHighlight): Initialize new member, and
              initialize m_inspectedWebViewWindow to its final value here instead of
              in show().
              (WebNodeHighlight::setShowsWhileWebViewIsVisible): Added. If we're not
              supposed to show ourselves when the WebView is visible, we hide
              ourselves and return. Otherwise, we make our visibility match the
              WebView's.
              (WebNodeHighlight::isWebViewVisible): Added.
              (WebNodeHighlight::show): Removed initialization of
              m_inspectedWebViewWindow (this is now done by our constructor). Added
              an assertion that we're supposed to show ourselves when the WebView is
              visible.
              (WebNodeHighlight::onWebViewShowWindow): If we shouldn't show
              ourselves when the WebView is visible, then we don't need to do
              anything at all when the WebView's visibility changes.
              * WebNodeHighlight.h:
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@31164 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      896e8c6e
    • aroben@apple.com's avatar
      Small WebNodeHighlight cleanup · 86612616
      aroben@apple.com authored
              Renamed the following methods:
                visible() -> isShowing()
                updateWindow() -> update()
      
              Removed the window() method.
      
              Added a new method, placeBehindWindow(HWND), that moves the highlight
              overlay in the window z-order to be just behind the passed-in window.
              WebInspectorClient calls this instead of doing the move directly using
              the old window() method.
      
              Reviewed by John Sullivan.
      
              * WebCoreSupport/WebInspectorClient.cpp:
              (WebInspectorClient::attachWindow):
              (WebInspectorClient::detachWindow):
              (WebInspectorClient::highlight): Call placeBehindWindow instead of
              calling SetWindowPos directly.
              * WebNodeHighlight.cpp:
              (WebNodeHighlight::show):
              (WebNodeHighlight::isShowing):
              (WebNodeHighlight::placeBehindWindow): Added. Code came from
              WebInspectorClient::highlight.
              (WebNodeHighlight::onWebViewWindowPosChanged):
              (WebNodeHighlight::onRootWindowPosChanged):
              * WebNodeHighlight.h:
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@31163 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      86612616
    • oliver@apple.com's avatar
      Bug 17954: Canvas arc() with radius of 0 throws exception · 72f9333e
      oliver@apple.com authored
      http://bugs.webkit.org/show_bug.cgi?id=17954
      
      Reviewed by Antti
      
      Simple fix -- use >= instead of > when validating the radius.
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@31162 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      72f9333e
    • justin.garcia@apple.com's avatar
      WebCore: · 14613b12
      justin.garcia@apple.com authored
      2008-03-19  Justin Garcia  <justin.garcia@apple.com>
      
              Reviewed by Oliver.
      
              <rdar://problem/5794920> Acid3: Assertion failure in VisiblePosition::previous when clicking on results (17004)
              
              The position inside an empty inline-block was a candidate, but upstream and downstream
              would move across it without stopping.  This confused canonicalPosition, since no more
              than two candidates should have the same upstream/downstream (be visually equivalent).
              
              Code was added intentionally in isCandidate to make VisiblePositions inside empty 
              inline-blocks, so we need to make upstream/downstream understand that.
      
              * dom/Position.cpp:
              (WebCore::endsOfNodeAreVisuallyDistinctPositions): upstream and downstream used to only
              stop when entering or leaving a non-inline element (referred to as a "block").  We must also 
              avoid entering or leaving an empty inline-block.  This will allow a VisiblePosition there, to 
              match up with what the code in isCandidate intended.
              (WebCore::enclosingVisualBoundary): Removed enclosingBlock and replaced it with this.
              (WebCore::Position::upstream): Added better comments, called the new functions.
              (WebCore::Position::downstream): Ditto.
              * dom/Position.h:
      
      LayoutTests:
      
      2008-03-19  Justin Garcia  <justin.garcia@apple.com>
      
              Reviewed by Oliver.
              
              <rdar://problem/5794920> Acid3: Assertion failure in VisiblePosition::previous when clicking on results (17004)
      
              * editing/pasteboard/4989774.html: Updated to wait for the images to load before trying to copy it.
              * editing/selection/5794920-1-expected.txt: Added.
              * editing/selection/5794920-1.html: Added.
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@31161 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      14613b12
    • mitz@apple.com's avatar
      2008-03-19 Dan Bernstein <mitz@apple.com> · 920b8e07
      mitz@apple.com authored
              Rubber-stamped by John Sullivan.
      
              - change CSS property and value keyword constants from all-caps with
                underscores to intra-caps.
      
              * css/makeprop.pl:
              * css/makevalues.pl:
              * All files using the constants
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@31160 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      920b8e07
    • aroben@apple.com's avatar
      Make clicking anywhere in a row in the DOM tree select that row's node · 14abdfbf
      aroben@apple.com authored
              We now have mousedown and dblclick event listeners on the root of the
              tree that forward the event to the node on the row the mouse is over.
      
              Reviewed by Tim Hatcher.
      
              * page/inspector/DocumentPanel.js:
              (WebInspector.DocumentPanel): Added a dblclick and mousedown event
              listeners to the root of the tree.
              (WebInspector.DocumentPanel._treeElementFromEvent): Added. Finds the
              tree element for the row underneath the mouse.
              (WebInspector.DocumentPanel._ondblclick): Added. Sends the dblclick
              event on to the tree element in the current row.
              (WebInspector.DocumentPanel._onmousedown): Added. Selects the tree
              element in the current row.
              * page/inspector/treeoutline.js:
              (TreeOutline.treeElementFromPoint): Added.
              (TreeElement.treeElementSelected): Changed to call
              TreeElement.isEventWithinDisclosureTriangle, and added an early return.
              (TreeElement.treeElementToggled): Ditto.
              (TreeElement.isEventWithinDisclosureTriangle): Added.
              * page/inspector/utilities.js:
              (Node.enclosingNodeOrSelfWithNodeNameInArray): Added.
              (Node.enclosingNodeOrSelfWithNodeName): Now just calls
              enclosingNodeOrSelfWithNodeNameInArray.
              (Elemnt.get totalOffsetLeft): Added.
              (Elemnt.get totalOffsetTop): Added.
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@31159 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      14abdfbf
    • mrowe@apple.com's avatar
      Fix http://bugs.webkit.org/show_bug.cgi?id=17816 (libWebCoreSQLite3.a is... · 5b8b0790
      mrowe@apple.com authored
      Fix http://bugs.webkit.org/show_bug.cgi?id=17816 (libWebCoreSQLite3.a is 2-architecture universal binary (not 4-architecture)).
      
      Rubber-stamped by Sam Weinig.
      
      * libWebCoreSQLite3.a:  Land a 4-way fat binary.
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@31158 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      5b8b0790
    • mitz@apple.com's avatar
      WebCore: · 070a7def
      mitz@apple.com authored
              Reviewed by Sam Weinig.
      
              - fix assertion failure in RenderBlock::determineStartPosition() at http://www.wired.com/techbiz/it/magazine/16-04/bz_apple
      
              Test: fast/repaint/line-flow-with-floats-10.html
      
              * rendering/bidi.cpp:
              (WebCore::RenderBlock::determineStartPosition): Removed bogus assertion.
              If the float's top margin has changed and it has not been repositioned
              yet, we do not have its new y position.
      
      LayoutTests:
      
              Reviewed by Sam Weinig.
      
              - test for assertion failure in RenderBlock::determineStartPosition() at http://www.wired.com/techbiz/it/magazine/16-04/bz_apple
      
              * fast/repaint/line-flow-with-floats-10.html: Added.
              * platform/mac/fast/repaint/line-flow-with-floats-10-expected.checksum: Added.
              * platform/mac/fast/repaint/line-flow-with-floats-10-expected.png: Added.
              * platform/mac/fast/repaint/line-flow-with-floats-10-expected.txt: Added.
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@31157 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      070a7def
    • adachan@apple.com's avatar
      2008-03-19 Ada Chan <adachan@apple.com> · 17b59e6c
      adachan@apple.com authored
              Added a method to paint WebView content specified by 
              the document rect into a device context.
      
              Reviewed by Darin.
      
              * Interfaces/IWebViewPrivate.idl:
              * WebView.cpp:
              (WebView::paintDocumentRectToContext):
              * WebView.h:
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@31156 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      17b59e6c
    • hyatt@apple.com's avatar
      2008-03-19 David Hyatt <hyatt@apple.com> · a8031486
      hyatt@apple.com authored
              New implementation of full page zoom.  Because of how much doesn't transform when zooming, and because
              of the need to obey viewport constraints, I decided to take a completely different approach.  Now CSS
              lengths and intrinsic sizes are simply adjusted by the zoom factor.  This approach works much better and
              avoids pixel cracks more than the old approach.   In addition widgets "just work", namely plugins zoom
              and scrollbars do not.
      
              This patch also implements the IE zoom CSS property.  This property allows fine-grained control over
              zooming at the element level.  It takes values of normal | <number> | <percentage> to match WinIE.  In
              addition, in the vein of text-size-adjust for text zooming, I have extended the zoom property with an
              extra value, reset.  The reset keyword can be used to prevent a section of the page from scaling at all
              when a zoom is applied.
      
              Reviewed by olliej
      
              * css/CSSComputedStyleDeclaration.cpp:
              (WebCore::):
              (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
              Support the new 'zoom' property for getComputedStyle.
      
              * css/CSSParser.cpp:
              (WebCore::CSSParser::parseValue):
              Code that parses the 'zoom' property.
      
              * css/CSSPrimitiveValue.cpp:
              (WebCore::CSSPrimitiveValue::computeLengthInt):
              (WebCore::CSSPrimitiveValue::computeLengthIntForLength):
              (WebCore::CSSPrimitiveValue::computeLengthShort):
              (WebCore::CSSPrimitiveValue::computeLengthFloat):
              (WebCore::CSSPrimitiveValue::computeLengthDouble):
              * css/CSSPrimitiveValue.h:
              Extend all of the computeLength methods to take a multiplier so that lengths can be adjusted by the
              zoom factor.
      
              * css/CSSPropertyNames.in:
              Add the new zoom property to the list of properties we understand.
      
              * css/CSSStyleSelector.cpp:
              (WebCore::CSSStyleSelector::applyDeclarations):
              (WebCore::CSSStyleSelector::applyProperty):
              (WebCore::CSSStyleSelector::mapBackgroundSize):
              (WebCore::CSSStyleSelector::mapBackgroundXPosition):
              (WebCore::CSSStyleSelector::mapBackgroundYPosition):
              (WebCore::CSSStyleSelector::getComputedSizeFromSpecifiedSize):
              * css/CSSStyleSelector.h:
              (WebCore::CSSStyleSelector::setStyle):
              Pass in the zoom factor when computing all lengths in CSS.
      
              * css/CSSValueKeywords.in:
              Add support for the 'reset' keyword of the zoom property.
      
              * dom/Document.cpp:
              (WebCore::Document::recalcStyle):
              Set the 'zoom' CSS property on the RenderView.  This is how we implement full page zoom.
      
              * html/CanvasRenderingContext2D.cpp:
              (WebCore::size):
              Make sure the back end canvas size ignores zooming when rendering images.
      
              * html/HTMLImageElement.cpp:
              (WebCore::HTMLImageElement::width):
              (WebCore::HTMLImageElement::height):
              (WebCore::HTMLImageElement::naturalWidth):
              (WebCore::HTMLImageElement::naturalHeight):
              Use the unzoomed width/height if we have no style information in HTMLImageElement.cpp.
      
              * loader/CachedImage.cpp:
              (WebCore::CachedImage::ref):
              (WebCore::CachedImage::imageSize):
              (WebCore::CachedImage::imageRect):
              * loader/CachedImage.h:
              (WebCore::CachedImage::canRender):
              Force access to the CachedImage metrics to take a multiplier so that people have to think about
              the zoom factor.  The "intrinsic size" of the image then takes that into account.
      
              * loader/ImageDocument.cpp:
              (WebCore::ImageTokenizer::finish):
              (WebCore::ImageDocument::scale):
              (WebCore::ImageDocument::resizeImageToFit):
              (WebCore::ImageDocument::imageChanged):
              (WebCore::ImageDocument::restoreImageSize):
              (WebCore::ImageDocument::imageFitsInWindow):
              Make sure image documents respect the zoom.
      
              * page/AnimationController.cpp:
              (WebCore::ImplicitAnimation::animate):
              Make the 'zoom' CSS property work with CSS transitions.
      
              * page/Frame.h:
              (WebCore::Frame::pageZoomFactor):
              (WebCore::Frame::textZoomFactor):
              Add accessors for obtaining the pageZoom vs. textZoom.
      
              * page/FrameView.cpp:
              (WebCore::FrameView::adjustViewSize):
              Remove the old zoom implementation that used transforms.
      
              * page/mac/WebCoreAXObject.mm:
              (-[WebCoreAXObject accessibilityIsIgnored]):
              Pass in the zoom factor.
      
              * rendering/InlineFlowBox.cpp:
              (WebCore::InlineFlowBox::paintBackground):
              (WebCore::InlineFlowBox::paintBoxDecorations):
              Pass in the zoom factor when testing for size.
      
              * rendering/RenderBox.cpp:
              (WebCore::RenderBox::calculateBackgroundSize):
              (WebCore::RenderBox::imageChanged):
              (WebCore::RenderBox::paintBackgroundExtended):
              (WebCore::RenderBox::calcHeight):
              * rendering/RenderFrameSet.cpp:
              (WebCore::RenderFrameSet::layout):
              * rendering/RenderHTMLCanvas.cpp:
              (WebCore::RenderHTMLCanvas::canvasSizeChanged):
              * rendering/RenderHTMLCanvas.h:
              (WebCore::RenderHTMLCanvas::renderName):
              (WebCore::RenderHTMLCanvas::intrinsicSizeChanged):
              * rendering/RenderImage.cpp:
              (WebCore::RenderImage::setImageSizeForAltText):
              (WebCore::RenderImage::imageChanged):
              (WebCore::RenderImage::calcReplacedWidth):
              (WebCore::RenderImage::calcReplacedHeight):
              * rendering/RenderImage.h:
              (WebCore::RenderImage::intrinsicSizeChanged):
              * rendering/RenderListMarker.cpp:
              (WebCore::RenderListMarker::layout):
              (WebCore::RenderListMarker::imageChanged):
              (WebCore::RenderListMarker::getRelativeMarkerRect):
              * rendering/RenderObject.cpp:
              (WebCore::RenderObject::mustRepaintBackgroundOrBorder):
              (WebCore::RenderObject::paintBorder):
              Pass in the zoom factor when testing for size.
      
              * rendering/RenderReplaced.cpp:
              (WebCore::RenderReplaced::RenderReplaced):
              (WebCore::RenderReplaced::setStyle):
              (WebCore::RenderReplaced::intrinsicSizeChanged):
              * rendering/RenderReplaced.h:
              Added a new call when the zoom factor changes, intrinsicSizeChanged().  Replaced element subclasses
              respond to this via overrides.
      
              * rendering/RenderStyle.cpp:
              (WebCore::StyleVisualData::StyleVisualData):
              (WebCore::StyleInheritedData::StyleInheritedData):
              (WebCore::StyleInheritedData::operator==):
              (WebCore::RenderStyle::diff):
              * rendering/RenderStyle.h:
              (WebCore::StyleVisualData::operator==):
              (WebCore::RenderStyle::zoom):
              (WebCore::RenderStyle::zoomInEffect):
              (WebCore::RenderStyle::setZoom):
              (WebCore::RenderStyle::setZoomInEffect):
              (WebCore::RenderStyle::initialZoom):
              Support for 'zoom' in the RenderStyle.  "zoomInEffect" represents the computed zoom taking into account
              all the zooms specified on ancestors.
      
              * rendering/RenderTableCol.cpp:
              (WebCore::RenderTableCol::imageChanged):
              * rendering/RenderTableRow.cpp:
              (WebCore::RenderTableRow::imageChanged):
              * rendering/RenderTableSection.cpp:
              (WebCore::RenderTableSection::imageChanged):
              * rendering/RenderVideo.h:
              (WebCore::RenderVideo::intrinsicSizeChanged):
              Pass in the zoom factor.
      
              * rendering/RenderView.cpp:
              (WebCore::RenderView::calcHeight):
              (WebCore::RenderView::calcWidth):
              (WebCore::RenderView::layout):
              (WebCore::RenderView::viewHeight):
              (WebCore::RenderView::viewWidth):
              * rendering/RenderView.h:
              (WebCore::RenderView::zoomFactor):
              Back out the old implementation.
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@31155 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      a8031486
    • aroben@apple.com's avatar
      Rename firstParent* methods to enclosingNode* · 7e3b8756
      aroben@apple.com authored
              Rubberstamped by John Sullivan.
      
              * page/inspector/ConsolePanel.js:
              * page/inspector/DocumentPanel.js:
              * page/inspector/NetworkPanel.js:
              * page/inspector/inspector.js:
              * page/inspector/utilities.js:
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@31154 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      7e3b8756
    • mitz@apple.com's avatar
      WebCore: · 142b55a3
      mitz@apple.com authored
              Reviewed by John Sullivan.
      
              - fix <rdar://problem/5805070> CrashTracer: [USER] 33 crashes in Safari at com.apple.WebCore: WebCore::FrameView::layout + 431
      
              Test: fast/dynamic/subtree-parent-static-y.html
      
              * rendering/RenderObject.cpp:
              (WebCore::RenderObject::markContainingBlocksForLayout): Avoid calling
              this method on the parent if the parent is the new layout subtree root,
              which would result in marking all the way to the top, when it should
              actually do nothing.
      
      LayoutTests:
      
              Reviewed by John Sullivan.
      
              - test for <rdar://problem/5805070> CrashTracer: [USER] 33 crashes in Safari at com.apple.WebCore: WebCore::FrameView::layout + 431
      
              * fast/dynamic/subtree-parent-static-y.html: Added.
              * platform/mac/fast/dynamic/subtree-parent-static-y-expected.checksum: Added.
              * platform/mac/fast/dynamic/subtree-parent-static-y-expected.png: Added.
              * platform/mac/fast/dynamic/subtree-parent-static-y-expected.txt: Added.
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@31153 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      142b55a3
    • mrowe@apple.com's avatar
      2008-03-19 Mark Rowe <mrowe@apple.com> · e2577a0c
      mrowe@apple.com authored
              Reviewed by Oliver Hunt.
      
              Use WTF::Unicode abstraction rather than using ICU functions directly.
      
              * html/PreloadScanner.cpp:
              (WebCore::PreloadScanner::tokenize):
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@31152 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      e2577a0c
    • mrowe@apple.com's avatar
      Attempt to fix the Gtk build. · a4216ab1
      mrowe@apple.com authored
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@31151 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      a4216ab1
    • mrowe@apple.com's avatar
      2008-03-19 Jasper Bryant-Greene <jasper@unix.geek.nz> · eef17d7e
      mrowe@apple.com authored
              Reviewed by Maciej Stachowiak.
      
              Fix http://bugs.webkit.org/show_bug.cgi?id=17941
              Bug 17941: C++-style comments in JavaScriptCore API
      
              * API/JSBase.h:
              Remove C++-style comments from public JavaScriptCore API, replacing
              with standard C90 block comments.
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@31150 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      eef17d7e
    • mrowe@apple.com's avatar
      2008-03-19 Mark Rowe <mrowe@apple.com> · 23332b1b
      mrowe@apple.com authored
              Reviewed by Oliver Hunt.
      
              Fix http://bugs.webkit.org/show_bug.cgi?id=17939
              Bug 17939: Crash decompiling "const a = 1, b;"
      
              * kjs/nodes2string.cpp:
              (KJS::ConstDeclNode::streamTo): Null-check the correct variable.
      
      2008-03-19  Mark Rowe  <mrowe@apple.com>
      
              Reviewed by Oliver Hunt.
      
              Test for http://bugs.webkit.org/show_bug.cgi?id=17939
              Bug 17939: Crash decompiling "const a = 1, b;"
      
              * fast/js/function-toString-parentheses-expected.txt:
              * fast/js/resources/function-toString-parentheses.js:
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@31149 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      23332b1b
    • oliver@apple.com's avatar
      Bug 17929: Incorrect decompilation with |const|, comma · 823096fa
      oliver@apple.com authored
      http://bugs.webkit.org/show_bug.cgi?id=17929
      
      Reviewed by Mark Rowe
      
      There were actually two bugs here. First we weren't correctly handling const
      nodes with multiple declarations. The second issue was caused by us not
      giving the correct precedence to the initialisers.
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@31148 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      823096fa
  3. 18 Mar, 2008 4 commits
    • darin@apple.com's avatar
      JavaScriptCore: · 8a1c16ec
      darin@apple.com authored
      2008-03-18  Darin Adler  <darin@apple.com>
      
              Reviewed by Maciej.
      
              - Speed up JavaScript built-in properties by changing the
                hash table to take advantage of the identifier objects
      
              5% speedup for Acid3 test 26
      
              * JavaScriptCore.exp: Updated.
              * kjs/create_hash_table: Compute size of hash table large enough so that there
              are no collisions, but don't generate the hash table.
              * kjs/identifier.h: Made the add function that returns a PassRefPtr public.
              * kjs/lexer.cpp:
              (KJS::Lexer::lex): Updated for change to HashTable interface.
              * kjs/lookup.cpp:
              (KJS::HashTable::changeKeysToIdentifiers): Added. Finds the identifier for
              each property so the equality comparision can be done with pointer comparision.
              * kjs/lookup.h: Made the key be a union of char* with UString::Rep* so it can
              hold identifiers. Added a keysAreIdentifiers flag to the HashTable. Changed
              the Lookup functions to be member functions of HashTable instead.
              * kjs/object.cpp:
              (KJS::JSObject::deleteProperty): Update for change to HashTable.
              (KJS::JSObject::findPropertyHashEntry): Ditto.
              (KJS::JSObject::getPropertyAttributes): Ditto.
              (KJS::JSObject::getPropertyNames): Ditto.
      
      WebCore:
      
      2008-03-18  Darin Adler  <darin@apple.com>
      
              Reviewed by Maciej.
      
              - Speed up JavaScript built-in properties by changing the
                hash table to take advantage of the identifier objects
      
              5% speedup for Acid3 test 26
      
              * bindings/js/JSDOMWindowBase.cpp:
              (WebCore::JSDOMWindowBase::getOwnPropertySlot): Update for change to HashTable.
              (WebCore::JSDOMWindowBase::put): Ditto.
              * bindings/js/JSDOMWindowCustom.cpp:
              (WebCore::JSDOMWindow::customGetOwnPropertySlot): Ditto.
              * bindings/js/JSHTMLInputElementBase.cpp:
              (WebCore::JSHTMLInputElementBase::getOwnPropertySlot): Ditto.
              * bindings/js/JSHistoryCustom.cpp:
              (WebCore::JSHistory::customGetOwnPropertySlot): Ditto.
              * bindings/js/JSLocation.cpp:
              (WebCore::JSLocation::customGetOwnPropertySlot): Ditto.
              (WebCore::JSLocation::put): Ditto.
              * bindings/js/kjs_binding.cpp:
              (WebCore::nonCachingStaticFunctionGetter): Ditto.
      
              * bindings/scripts/CodeGeneratorJS.pm: Same changes as in the
              create_hash_table script.
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@31147 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      8a1c16ec
    • pewtermoose@webkit.org's avatar
      2008-03-18 Matt Lilek <webkit@mattlilek.com> · f224d102
      pewtermoose@webkit.org authored
              Fix the Gtk build for real this time.
      
              * platform/network/curl/AuthenticationChallenge.h:
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@31146 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      f224d102
    • mrowe@apple.com's avatar
      Fix http://bugs.webkit.org/show_bug.cgi?id=17925 and http://bugs.webkit.org/show_bug.cgi?id=17927. · a9d96b81
      mrowe@apple.com authored
      - Bug 17925: Crash in KJS::JSObject::put after setting this.__proto__
      - Bug 17927: Hang after attempting to create circular __proto__
      
      * kjs/object.cpp:
      (KJS::JSObject::put): Silently ignore attempts to set __proto__ to a non-object, non-null value.
      Return after setting the exception when an attempt to set a cyclic __proto__ is detected so that
      the cyclic value is not set.
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@31145 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      a9d96b81
    • weinig@apple.com's avatar
      WebCore: · 75f4dcc2
      weinig@apple.com authored
      2008-03-18  Sam Weinig  <sam@webkit.org>
      
              Reviewed by Anders Carlsson.
      
              Fix for http://bugs.webkit.org/show_bug.cgi?id=17057
              REGRESSION: Frequent random crashes in WebCore::JSNodeList::indexGetter
              <rdar://problem/5725058>
      
              Tests: fast/dom/NodeList/5725058-crash-scenario-1.html
                     fast/dom/NodeList/5725058-crash-scenario-2.html
                     fast/dom/NodeList/5725058-crash-scenario-3.html
      
              * dom/ChildNodeList.cpp: 
              (WebCore::ChildNodeList::ChildNodeList):
              * dom/ChildNodeList.h:
              Remove rootNodeChildrenChanged() method and fix the constructor to not 
              pass in a needsNotifications argument to DynamicNodeList, as it no longer
              takes one.
      
              * dom/ClassNodeList.cpp:
              (WebCore::ClassNodeList::ClassNodeList):
              Don't pass the needsNotifications argument to DynamicNodeList.
      
              * dom/ContainerNode.cpp:
              (WebCore::ContainerNode::childrenChanged):
              Rename call to hasNodeLists() to hasNodeListCaches().
      
              * dom/Document.cpp:
              (WebCore::Document::Document):
              (WebCore::Document::~Document): Zero out the m_document variable to signify
              to destructors down the destruction chain that this is a Document type node
              being destructed, and thus, accessing document() is prohibited.
              * dom/Document.h:
              (WebCore::Document::addNodeListCache): Renamed from addNodeList.
              (WebCore::Document::removeNodeListCache): Renamed from removeNodeList, adds assertion.
              (WebCore::Document::hasNodeListCaches): Renamed from hasNodeListCaches.
              Rename m_numNodeLists to m_numNodeListCaches.
      
              * dom/DynamicNodeList.cpp:
              (WebCore::DynamicNodeList::DynamicNodeList):
              (WebCore::DynamicNodeList::~DynamicNodeList):
              (WebCore::DynamicNodeList::invalidateCache):
              (WebCore::DynamicNodeList::Caches::Caches):
              * dom/DynamicNodeList.h:
              (WebCore::DynamicNodeList::hasOwnCaches):
              Remove the needsNotifications concept from DynamicNodeList, instead, manually
              invalidate the cache for lists that own their own cache.
      
              * dom/NameNodeList.cpp:
              (WebCore::NameNodeList::NameNodeList):
              * dom/NameNodeList.h:
              Remove rootNodeAttributeChanged() method and fix the constructor to not 
              pass in a needsNotifications argument to DynamicNodeList, as it no longer
              takes one.
      
              * dom/Node.cpp:
              (WebCore::Node::~Node): Decrement the document's nodeListCache count
              if we had a NodeListsNodeData cache and this is not the Document being
              destructor, as tagged by a null m_document.
              (WebCore::Node::childNodes): Increment the document's nodeListCache count 
              if we need create the NodeListsNodeData.
              (WebCore::Node::registerDynamicNodeList): Increment the document's nodeListCache count 
              if we need create the NodeListsNodeData.  Change to invalidate all the caches, instead 
              of just the ChildNodeList, if document has had no NodeListCaches.
              (WebCore::Node::unregisterDynamicNodeList): Change to remove the cache from the m_listsWithCaches
              set if it is owned by the NodeList and clear the m_nodeLists if it is empty.
              (WebCore::Node::notifyLocalNodeListsAttributeChanged): Move logic to 
              NodeListsNodeData::invalidateAttributeCaches and clear the cache pointer if it is empty.
              (WebCore::Node::notifyLocalNodeListsChildrenChanged): Move logic to 
              NodeListsNodeData::invalidateCaches and clear the cache pointer if it is empty.
              (WebCore::Node::notifyNodeListsChildrenChanged): Cleanup.
              (WebCore::Node::getElementsByName): Increment the document's nodeListCache count 
              if we need create the NodeListsNodeData.
              (WebCore::Node::getElementsByClassName): Increment the document's nodeListCache count 
              if we need create the NodeListsNodeData.
      
              (WebCore::NodeListsNodeData::invalidateCaches): Added.
              (WebCore::NodeListsNodeData::invalidateAttributeCaches): Added.
              (WebCore::NodeListsNodeData::isEmpty): Added.
      
              * dom/TagNodeList.cpp:
              (WebCore::TagNodeList::TagNodeList):
              Don't pass the needsNotifications argument to DynamicNodeList.
      
      LayoutTests:
      
      2008-03-18  Sam Weinig  <sam@webkit.org>
      
              Reviewed by Anders Carlsson.
      
              Tests for http://bugs.webkit.org/show_bug.cgi?id=17057
              REGRESSION: Frequent random crashes in WebCore::JSNodeList::indexGetter
              <rdar://problem/5725058>
      
              * fast/dom/NodeList/5725058-crash-scenario-1-expected.txt: Added.
              * fast/dom/NodeList/5725058-crash-scenario-1.html: Added.
              * fast/dom/NodeList/5725058-crash-scenario-2-expected.txt: Added.
              * fast/dom/NodeList/5725058-crash-scenario-2.html: Added.
              * fast/dom/NodeList/5725058-crash-scenario-3-expected.txt: Added.
              * fast/dom/NodeList/5725058-crash-scenario-3.html: Added.
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@31144 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      75f4dcc2