1. 04 Oct, 2011 40 commits
    • mhahnenberg@apple.com's avatar
      Add static ClassInfo structs to classes that override JSCell::getCallData · 77d198e8
      mhahnenberg@apple.com authored
      https://bugs.webkit.org/show_bug.cgi?id=69311
      
      Reviewed by Darin Adler.
      
      Source/JavaScriptCore: 
      
      Added ClassInfo structs to each class that defined its own getCallData 
      function but did not already have its own ClassInfo struct.  This is a 
      necessary addition for when we switch over to looking up getCallData from 
      the MethodTable in ClassInfo rather than doing the virtual call (which we 
      are removing).  These new ClassInfo structs are public because we often 
      use these structs in other areas of the code to uniquely identify JSC classes and 
      to enforce runtime invariants based on those class identities using ASSERTs.
      Also added new createStructure methods to those classes that didn't have 
      them so that the new ClassInfo structs would be used when creating the Structures 
      in these classes.
      
      * runtime/BooleanConstructor.cpp:
      * runtime/BooleanConstructor.h:
      (JSC::BooleanConstructor::createStructure):
      
      getCallData was not marked as static in StrictModeTypeErrorFunction.  
      * runtime/Error.cpp:
      (JSC::StrictModeTypeErrorFunction::getCallDataVirtual):
      (JSC::StrictModeTypeErrorFunction::getCallData):
      (JSC::StrictModeTypeErrorFunction::createStructure):
      * runtime/ErrorConstructor.cpp:
      * runtime/ErrorConstructor.h:
      (JSC::ErrorConstructor::createStructure):
      * runtime/FunctionConstructor.cpp:
      * runtime/FunctionConstructor.h:
      (JSC::FunctionConstructor::createStructure):
      * runtime/FunctionPrototype.cpp:
      * runtime/FunctionPrototype.h:
      
      Source/WebCore: 
      
      No new tests.
      
      Added ClassInfo structs to each class that defined its own getCallData 
      function but did not already have its own ClassInfo struct.  This is a 
      necessary addition for when we switch over to looking up getCallData from 
      the MethodTable in ClassInfo rather than doing the virtual call (which we 
      are removing).  These new ClassInfo structs are public because we often 
      use these structs in other areas of the code to uniquely identify JSC classes and 
      to enforce runtime invariants based on those class identities using ASSERTs.
      Also added new createStructure methods to those classes that didn't have 
      them so that the new ClassInfo structs would be used when creating the Structures 
      in these classes.
      
      * bridge/qt/qt_runtime.cpp:
      * bridge/qt/qt_runtime.h:
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@96674 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      77d198e8
    • ggaren@apple.com's avatar
      Some JSValue cleanup · 7831f0c3
      ggaren@apple.com authored
      https://bugs.webkit.org/show_bug.cgi?id=69320
      
      ../JavaScriptCore: 
      
      Reviewed by Darin Adler.
              
      No measurable performance change.
      
      Removed some JSValue::get* functions. get* used to be an optimization
      when every value operation was a virtual function call: get* would combine
      two virtual calls into one. Now, with non-virtual, inlined functions, get*
      isn't faster, and may be slightly slower.
      
      Merged getBoolean(bool&) and getBoolean() into asBoolean().
      
      Merged uncheckedGetNumber(), getJSNumber() and getNumber() into
      asNumber().
      
      * runtime/JSValue.h:
      * runtime/JSValueInlineMethods.h:
      (JSC::JSValue::asNumber):
      (JSC::JSValue::asBoolean): As promised!
      
      * runtime/NumberPrototype.cpp:
      (JSC::toThisNumber):
      (JSC::numberProtoFuncToExponential):
      (JSC::numberProtoFuncToFixed):
      (JSC::numberProtoFuncToPrecision):
      (JSC::numberProtoFuncToString):
      (JSC::numberProtoFuncToLocaleString):
      (JSC::numberProtoFuncValueOf): Removed a bunch of uses of getJSNumber()
      by switching to toThisNumber().
      
      * API/JSCallbackObjectFunctions.h:
      (JSC::::toNumber):
      * dfg/DFGGraph.h:
      (JSC::DFG::Graph::valueOfNumberConstant):
      (JSC::DFG::Graph::valueOfBooleanConstant):
      * dfg/DFGOperations.cpp:
      (JSC::DFG::putByVal):
      * interpreter/Interpreter.cpp:
      (JSC::Interpreter::privateExecute):
      * jit/JITStubs.cpp:
      (JSC::DEFINE_STUB_FUNCTION):
      * runtime/DateInstance.h:
      (JSC::DateInstance::internalNumber):
      * runtime/FunctionPrototype.cpp:
      (JSC::functionProtoFuncBind):
      * runtime/JSArray.cpp:
      (JSC::compareNumbersForQSort): Replaced getNumber() => isNumber() / asNumber().
      getBoolean() => isBoolean() / asBoolean(), uncheckedGetNumber() => asNumber().
      
      * runtime/JSCell.cpp:
      * runtime/JSCell.h: Nixed getJSNumber().
      
      * runtime/JSGlobalObjectFunctions.cpp:
      (JSC::globalFuncParseInt):
      * runtime/JSONObject.cpp:
      (JSC::gap):
      (JSC::Stringifier::Stringifier):
      (JSC::Stringifier::appendStringifiedValue):
      * runtime/NumberObject.cpp:
      * runtime/NumberObject.h:
      (JSC::NumberObject::createStructure):
      * runtime/Operations.h:
      (JSC::JSValue::equalSlowCaseInline):
      (JSC::JSValue::strictEqual):
      (JSC::jsLess):
      (JSC::jsLessEq):
      (JSC::jsAdd): Replaced getNumber() => isNumber() / asNumber().
      getBoolean() => isBoolean() / asBoolean(), uncheckedGetNumber() => asNumber().
      
      ../WebCore: 
      
      Reviewed by Darin Adler.
      
      * bindings/js/JSDOMBinding.cpp:
      (WebCore::valueToDate):
      * bindings/js/JSErrorHandler.cpp:
      (WebCore::JSErrorHandler::handleEvent):
      * bindings/js/JSEventListener.cpp:
      (WebCore::JSEventListener::handleEvent):
      * bindings/js/JSSQLTransactionCustom.cpp:
      (WebCore::JSSQLTransaction::executeSql):
      * bindings/js/JSSQLTransactionSyncCustom.cpp:
      (WebCore::JSSQLTransactionSync::executeSql):
      * bindings/js/ScriptValue.cpp:
      (WebCore::jsToInspectorValue):
      * bindings/js/SerializedScriptValue.cpp:
      (WebCore::CloneSerializer::dumpIfTerminal):
      * bindings/objc/WebScriptObject.mm:
      (+[WebScriptObject _convertValueToObjcValue:originRootObject:rootObject:]):
      * bridge/jni/jsc/JNIUtilityPrivate.cpp:
      (JSC::Bindings::convertValueToJValue): Updated for JSC changes.
      
      ../WebKit/mac: 
      
      Reviewed by Darin Adler.
      
      * WebView/WebView.mm:
      (aeDescFromJSValue): Updated for JSC changes.
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@96673 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      7831f0c3
    • commit-queue@webkit.org's avatar
      Fix FrameView::scrollElementToRect to take already scrolled amount into consideration. · b07c6f5e
      commit-queue@webkit.org authored
      https://bugs.webkit.org/show_bug.cgi?id=69220
      
      Patch by Sadrul Habib Chowdhury <sadrul@chromium.org> on 2011-10-04
      Reviewed by Simon Fraser.
      
      Source/WebCore:
      
      * page/FrameView.cpp:
      (WebCore::FrameView::scrollElementToRect):
      
      LayoutTests:
      
      * fast/dom/scroll-element-to-rect.html:
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@96672 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      b07c6f5e
    • andersca@apple.com's avatar
      Ignore the warning about using 'override'. · d29926bb
      andersca@apple.com authored
      * WebCore.vcproj/WebCore.vcproj:
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@96670 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      d29926bb
    • weinig@apple.com's avatar
      Stub out WorkerScriptController::disableEval for v8 to fix the build. · 25e98ad6
      weinig@apple.com authored
      * bindings/v8/WorkerScriptController.cpp:
      (WebCore::WorkerScriptController::disableEval):
      * bindings/v8/WorkerScriptController.h:
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@96669 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      25e98ad6
    • weinig@apple.com's avatar
      OVERRIDE seems to not be working for Windows. Remove it for now. · 9df8a17a
      weinig@apple.com authored
      * dom/Document.h:
      * workers/WorkerContext.h:
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@96668 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      9df8a17a
    • weinig@apple.com's avatar
      Wean ContentSecurityPolicy from the Document · 76f3d931
      weinig@apple.com authored
      https://bugs.webkit.org/show_bug.cgi?id=69387
      
      Reviewed by Adam Barth.
      
      * bindings/js/WorkerScriptController.cpp:
      (WebCore::WorkerScriptController::disableEval):
      * bindings/js/WorkerScriptController.h:
      * dom/Document.cpp:
      (WebCore::Document::disableEval):
      * dom/Document.h:
      * workers/WorkerContext.cpp:
      (WebCore::WorkerContext::disableEval):
      * workers/WorkerContext.h:
      * dom/ScriptExecutionContext.h:
      Add pure virtual disableEval to ScriptExecutionContext, so that ContentSecurityPolicy
      can call it for both Documents and WorkerContexts.
      
      * page/ContentSecurityPolicy.cpp:
      (WebCore::ContentSecurityPolicy::didReceiveHeader):
      Call the new ScriptExecutionContext::disableEval() function.
      
      (WebCore::ContentSecurityPolicy::reportViolation):
      Use ScriptExecutionContext::addMessage() instead of going directly to the DOMWindow.
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@96667 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      76f3d931
    • andersca@apple.com's avatar
      Move code into ScrollElasticityController::beginScrollGesture() · 57cfd40e
      andersca@apple.com authored
      https://bugs.webkit.org/show_bug.cgi?id=69383
      
      Reviewed by John Sullivan.
      
      * platform/mac/ScrollAnimatorMac.h:
      Add new ScrollElasticityControllerClient member functions.
      
      * platform/mac/ScrollAnimatorMac.mm:
      (WebCore::ScrollAnimatorMac::isHorizontalScrollerPinnedToMinimumPosition):
      (WebCore::ScrollAnimatorMac::isHorizontalScrollerPinnedToMaximumPosition):
      (WebCore::ScrollAnimatorMac::stretchAmount):
      (WebCore::ScrollAnimatorMac::startSnapRubberbandTimer):
      (WebCore::ScrollAnimatorMac::stopSnapRubberbandTimer):
      Implement the new ScrollElasticityControllerClient member functions.
      
      (WebCore::ScrollAnimatorMac::beginScrollGesture):
      Move code into ScrollElasticityController::beginScrollGesture and call it directly.
      
      * platform/mac/ScrollElasticityController.h:
      Add new ScrollElasticityControllerClient member functions.
      
      * platform/mac/ScrollElasticityController.mm:
      (WebCore::reboundDeltaForElasticDelta):
      (WebCore::ScrollElasticityController::beginScrollGesture):
      Set up the scroll gesture state.
      
      (WebCore::ScrollElasticityController::stopSnapRubberbandTimer):
      New helper function.
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@96663 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      57cfd40e
    • commit-queue@webkit.org's avatar
      Add GAMEPAD feature flag · 33a67246
      commit-queue@webkit.org authored
      https://bugs.webkit.org/show_bug.cgi?id=66859
      
      Patch by Scott Graham <scottmg@chromium.org> on 2011-10-04
      Reviewed by Darin Fisher.
      
      .:
      
      * configure.ac:
      
      Source/JavaScriptCore:
      
      * Configurations/FeatureDefines.xcconfig:
      
      Source/WebCore:
      
      No new tests, as no new functionality yet.
      
      * Configurations/FeatureDefines.xcconfig:
      * GNUmakefile.am:
      * features.pri:
      
      Source/WebKit/chromium:
      
      * features.gypi:
      
      Source/WebKit/mac:
      
      * Configurations/FeatureDefines.xcconfig:
      
      Source/WebKit2:
      
      * Configurations/FeatureDefines.xcconfig:
      
      Tools:
      
      * Scripts/build-webkit:
      
      WebKitLibraries:
      
      * win/tools/vsprops/FeatureDefines.vsprops:
      * win/tools/vsprops/FeatureDefinesCairo.vsprops:
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@96662 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      33a67246
    • fpizlo@apple.com's avatar
      JITCodeGenerator should no longer have code that tries too hard · ee099cb3
      fpizlo@apple.com authored
      to be both speculative and non-speculative
      https://bugs.webkit.org/show_bug.cgi?id=69321
      
      Reviewed by Gavin Barraclough.
              
      Removed m_isSpeculative and speculationCheck() from JITCodeGenerator.
      This required moving emitBranch() to SpeculativeJIT, since it was
      the main user of that field and method. Other than trvial clean-ups
      in emitBranch(), the code is unchanged (and still has some disparity
      between 64 and 32_64, and still lacks some obvious optimizations).
      
      * dfg/DFGJITCodeGenerator.cpp:
      * dfg/DFGJITCodeGenerator.h:
      (JSC::DFG::JITCodeGenerator::JITCodeGenerator):
      * dfg/DFGJITCodeGenerator32_64.cpp:
      (JSC::DFG::JITCodeGenerator::fillDouble):
      (JSC::DFG::JITCodeGenerator::fillJSValue):
      * dfg/DFGJITCodeGenerator64.cpp:
      (JSC::DFG::JITCodeGenerator::fillDouble):
      (JSC::DFG::JITCodeGenerator::fillJSValue):
      * dfg/DFGSpeculativeJIT.h:
      (JSC::DFG::SpeculativeJIT::SpeculativeJIT):
      * dfg/DFGSpeculativeJIT32_64.cpp:
      (JSC::DFG::SpeculativeJIT::emitBranch):
      * dfg/DFGSpeculativeJIT64.cpp:
      (JSC::DFG::SpeculativeJIT::emitBranch):
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@96661 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      ee099cb3
    • tony@chromium.org's avatar
      [Chromium] Moved files towards GTK removal · c7fca6eb
      tony@chromium.org authored
      https://bugs.webkit.org/show_bug.cgi?id=69229
      
      Patch by Fady Samuel <fsamuel@chromium.org> on 2011-10-04
      Reviewed by Tony Chang.
      
      Source/WebCore:
      
      * WebCore.gypi:
      * platform/chromium/PlatformThemeChromiumLinux.cpp: Renamed from Source/WebCore/platform/chromium/PlatformThemeChromiumGtk.cpp.
      (WebCore::PlatformThemeChromiumLinux::setScrollbarColors):
      (WebCore::clamp):
      (WebCore::PlatformThemeChromiumLinux::saturateAndBrighten):
      (WebCore::PlatformThemeChromiumLinux::outlineColor):
      (WebCore::PlatformThemeChromiumLinux::paintArrowButton):
      * platform/chromium/PlatformThemeChromiumLinux.h: Renamed from Source/WebCore/platform/chromium/PlatformThemeChromiumGtk.h.
      (WebCore::PlatformThemeChromiumLinux::thumbInactiveColor):
      (WebCore::PlatformThemeChromiumLinux::thumbActiveColor):
      (WebCore::PlatformThemeChromiumLinux::trackColor):
      (WebCore::PlatformThemeChromiumLinux::PlatformThemeChromiumLinux):
      
      Source/WebKit/chromium:
      
      * WebKit.gyp:
      * src/WebViewImpl.cpp:
      (WebKit::WebViewImpl::setScrollbarColors):
      * src/linux/WebFontInfo.cpp: Renamed from Source/WebKit/chromium/src/gtk/WebFontInfo.cpp.
      (WebKit::WebFontInfo::familyForChars):
      (WebKit::WebFontInfo::renderStyleForStrike):
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@96660 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      c7fca6eb
    • commit-queue@webkit.org's avatar
      Fix position check for double tap gesture detection. A double tap · 5bec5a7f
      commit-queue@webkit.org authored
      should not be detected if the two taps are far from each other.
      https://bugs.webkit.org/show_bug.cgi?id=69270
      
      Patch by Varun Jain <varunjain@chromium.org> on 2011-10-04
      Reviewed by Darin Fisher.
      
      Test: Source/WebKit/chromium/tests/InnerGestureRecognizerTest.cpp
      
      * platform/chromium/GestureRecognizerChromium.cpp:
      (WebCore::GestureRecognizerChromium::isSecondClickInsideManhattanSquare):
      (WebCore::GestureRecognizerChromium::updateValues):
      (WebCore::GestureRecognizerChromium::click):
      * platform/chromium/GestureRecognizerChromium.h:
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@96657 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      5bec5a7f
    • adachan@apple.com's avatar
      toURLRef() in WKSharedAPICast.h should return null for a null string · 9bc6d725
      adachan@apple.com authored
      https://bugs.webkit.org/show_bug.cgi?id=69380
      
      Reviewed by Jon Honeycutt.
      
      * Shared/API/c/WKSharedAPICast.h:
      (WebKit::toURLRef): Add the missing "return" for the null string case.
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@96656 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      9bc6d725
    • commit-queue@webkit.org's avatar
      [chromium] Extract scheduling logic from CCThreadProxy to its own class · 61998f59
      commit-queue@webkit.org authored
      https://bugs.webkit.org/show_bug.cgi?id=69049
      
      Patch by James Robinson <jamesr@chromium.org> on 2011-10-04
      Reviewed by Kenneth Russell.
      
      Source/WebCore:
      
      This partially extracts the commit/draw scheduling from CCThreadProxy to a separate isolated class. This makes
      the commit/draw logic easier to test, understand and extend.
      
      There is one subtle behavior change here to the way that the function formerly known as
      CCLayerTreeHost::setNeedsCommitAndRedraw works. Previously, this would trigger a begin frame message, if one
      wasn't pending, and then trigger a redraw if one wasn't pending. This was subtly wrong - the intent of that call
      is that a redraw should happen after the commit. It isn't useful to draw before the commit occurs. This patch
      changes the name of the function to setNeedsCommitThenRedraw and only requests a redraw after a commit occurs.
      
      Covered by new CCSchedulerTest unit tests, CCLayerTreeHostTest unit tests, and compositing/ layout tests.
      
      * WebCore.gypi:
      * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
      (WebCore::CCLayerTreeHost::initialize):
      (WebCore::CCLayerTreeHost::setZoomAnimatorTransform):
      (WebCore::CCLayerTreeHost::setNeedsCommitThenRedraw):
      (WebCore::CCLayerTreeHost::setViewport):
      (WebCore::CCLayerTreeHost::setVisible):
      * platform/graphics/chromium/cc/CCLayerTreeHost.h:
      * platform/graphics/chromium/cc/CCProxy.h:
      * platform/graphics/chromium/cc/CCScheduler.cpp: Added.
      (WebCore::CCScheduler::CCScheduler):
      (WebCore::CCScheduler::requestCommit):
      (WebCore::CCScheduler::requestCommitThenRedraw):
      (WebCore::CCScheduler::requestRedraw):
      (WebCore::CCScheduler::didCommit):
      (WebCore::CCScheduler::didDraw):
      * platform/graphics/chromium/cc/CCScheduler.h: Added.
      (WebCore::CCSchedulerClient::~CCSchedulerClient):
      (WebCore::CCScheduler::create):
      (WebCore::CCScheduler::commitPending):
      (WebCore::CCScheduler::redrawPending):
      (WebCore::CCScheduler::redrawAfterCommit):
      * platform/graphics/chromium/cc/CCSingleThreadProxy.cpp:
      (WebCore::CCSingleThreadProxy::setNeedsCommitThenRedraw):
      (WebCore::CCSingleThreadProxy::setNeedsRedraw):
      (WebCore::CCSingleThreadProxy::recreateContextIfNeeded):
      (WebCore::CCSingleThreadProxy::doComposite):
      * platform/graphics/chromium/cc/CCSingleThreadProxy.h:
      * platform/graphics/chromium/cc/CCThreadProxy.cpp:
      (WebCore::CCThreadProxySchedulerClient::create):
      (WebCore::CCThreadProxySchedulerClient::~CCThreadProxySchedulerClient):
      (WebCore::CCThreadProxySchedulerClient::scheduleBeginFrameAndCommit):
      (WebCore::CCThreadProxySchedulerClient::scheduleDrawAndPresent):
      (WebCore::CCThreadProxySchedulerClient::CCThreadProxySchedulerClient):
      (WebCore::CCThreadProxy::CCThreadProxy):
      (WebCore::CCThreadProxy::compositeAndReadback):
      (WebCore::CCThreadProxy::initializeLayerRenderer):
      (WebCore::CCThreadProxy::setNeedsCommit):
      (WebCore::CCThreadProxy::setNeedsCommitOnCCThread):
      (WebCore::CCThreadProxy::setNeedsCommitThenRedraw):
      (WebCore::CCThreadProxy::setNeedsCommitThenRedrawOnCCThread):
      (WebCore::CCThreadProxy::setNeedsRedraw):
      (WebCore::CCThreadProxy::setNeedsRedrawOnCCThread):
      (WebCore::CCThreadProxy::finishAllRenderingOnCCThread):
      (WebCore::CCThreadProxy::obtainBeginFrameAndCommitTaskFromCCThread):
      (WebCore::CCThreadProxy::createBeginFrameAndCommitTaskOnCCThread):
      (WebCore::CCThreadProxy::beginFrameAndCommit):
      (WebCore::CCThreadProxy::commitOnCCThread):
      (WebCore::CCThreadProxy::drawLayersAndPresentOnCCThread):
      (WebCore::CCThreadProxy::initializeImplOnCCThread):
      * platform/graphics/chromium/cc/CCThreadProxy.h:
      
      Source/WebKit/chromium:
      
      Adds some unit tests for the new CCScheduler class. Since the class is very simple today, the tests are
      similarly quite simple.
      
      * WebKit.gypi:
      * src/WebViewImpl.cpp:
      (WebKit::WebViewImpl::setRootLayerNeedsDisplay):
      * tests/CCLayerTreeHostTest.cpp:
      (WTF::CCLayerTreeHostTest::postSetNeedsCommitThenRedrawToMainThread):
      (WTF::CCLayerTreeHostTest::dispatchSetNeedsCommitThenRedraw):
      (WTF::CCLayerTreeHostTestShortlived2::beginTest):
      (WTF::CCLayerTreeHostTestCommitingWithContinuousRedraw::beginTest):
      (WTF::CCLayerTreeHostTestCommitingWithContinuousRedraw::drawLayersOnCCThread):
      (WTF::CCLayerTreeHostTestSetNeedsCommit1::beginTest):
      (WTF::CCLayerTreeHostTestSetNeedsCommit2::beginTest):
      (WTF::CCLayerTreeHostTestSetNeedsCommit2::drawLayersOnCCThread):
      (WTF::CCLayerTreeHostTestSetNeedsRedraw::beginTest):
      * tests/CCSchedulerTest.cpp: Added.
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@96655 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      61998f59
    • commit-queue@webkit.org's avatar
      occasional crash in Chromium in dispatching keyEvent · 76b3be74
      commit-queue@webkit.org authored
      https://bugs.webkit.org/show_bug.cgi?id=67941
      
      Patch by Scott Graham <scottmg@chromium.org> on 2011-10-04
      Reviewed by Tony Chang.
      
      Source/WebKit/chromium:
      
      Guard Frame while handling keyEvent, as it can lose last reference due
      to actions of handler.
      
      * src/WebViewImpl.cpp:
      (WebKit::WebViewImpl::keyEvent):
      
      LayoutTests:
      
      * fast/events/keyevent-iframe-removed-crash-expected.txt: Added.
      * fast/events/keyevent-iframe-removed-crash.html: Added.
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@96654 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      76b3be74
    • ap@apple.com's avatar
      https://bugs.webkit.org/show_bug.cgi?id=67774 · c83ee4ee
      ap@apple.com authored
              PDF in a frameset is not displayed, always downloads
      
              Reviewed by Darin Adler.
      
              * WebKit2.xcodeproj/project.pbxproj:
              * WebProcess/Plugins/PDF: Added.
              Added BuiltInPDFView class. It implements ScrollableArea and Plugin, working with iframes,
              objects and embeds. The implementation targets Mac port only, fixing a WebKit2 regression.
      
              * UIProcess/WebContext.cpp: (WebKit::WebContext::getPlugins): Tell WebCore that there is a
              plug-in for PDF, so that it instantiates it in a regular fashion.
      
              * UIProcess/WebFrameProxy.cpp: (WebKit::WebFrameProxy::canShowMIMEType): We can now show
              PDF not only in main frame.
      
              * WebProcess/Plugins/PDF/BuiltInPDFView.cpp: Added. This is largely an implementation of
              ScrollableArea now, which can render the first page of a PDF. Further improvements to come.
      
              * WebProcess/Plugins/PDF/BuiltInPDFView.h: Added.
      
              * WebProcess/Plugins/Plugin.cpp: (WebKit::Plugin::updateControlTints): Give Plugin a chance
              to invalidate its tintable controls - it's necessary for PDF because scrollbars are tintable. 
      
              * WebProcess/Plugins/Plugin.h: (WebKit::Plugin::controller): Added a const version, since
              some ScrollableArea methods are const.
      
              * WebProcess/Plugins/PluginView.cpp: (WebKit::PluginView::paint): Call updateControlTints
              at updatingControlTints phase.
      
              * WebProcess/Plugins/PluginView.h: PDF plug-in needs to tinker with embedding FrameView to
              use Scrollbar class, so it needs to cast its PluginController up to PluginView. It's unfortunate
              that PluginView has so much NPAPI specific code, but that's how it is now.
      
              * WebProcess/WebPage/WebPage.cpp: (WebKit::WebPage::createPlugin): If there is no real plug-in
              installed for PDF, instantiate built-in one.
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@96653 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      c83ee4ee
    • andersca@apple.com's avatar
      ScrollElasticityController should keep track of the rubberband timer state · e382441e
      andersca@apple.com authored
      https://bugs.webkit.org/show_bug.cgi?id=69381
      
      Reviewed by Sam Weinig.
      
      Add a m_snapRubberbandTimerIsActive member variable to ScrollElasticityController
      and use it instead of checking whether the m_snapRubberbandTimer is active.
      
      Eventually, ScrollElasticityControllerClient will have two member functions for starting
      and stopping the timer, and the ScrollElasticityController will call them at the appropriate times.
      
      * platform/mac/ScrollAnimatorMac.mm:
      (WebCore::ScrollAnimatorMac::handleWheelEvent):
      (WebCore::ScrollAnimatorMac::beginScrollGesture):
      It's OK to stop the timer unconditionally.
      
      (WebCore::ScrollAnimatorMac::snapRubberBand):
      (WebCore::ScrollAnimatorMac::snapRubberBandTimerFired):
      * platform/mac/ScrollElasticityController.h:
      * platform/mac/ScrollElasticityController.mm:
      (WebCore::ScrollElasticityController::ScrollElasticityController):
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@96652 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      e382441e
    • andersca@apple.com's avatar
      Move all rubber-banding related member variables to ScrollElasticityController · 5f59a1e6
      andersca@apple.com authored
      https://bugs.webkit.org/show_bug.cgi?id=69379
      
      Reviewed by Dan Bernstein.
      
      * platform/mac/ScrollAnimatorMac.h:
      * platform/mac/ScrollAnimatorMac.mm:
      (WebCore::ScrollAnimatorMac::ScrollAnimatorMac):
      (WebCore::ScrollAnimatorMac::handleWheelEvent):
      (WebCore::ScrollAnimatorMac::smoothScrollWithEvent):
      (WebCore::ScrollAnimatorMac::beginScrollGesture):
      (WebCore::ScrollAnimatorMac::snapRubberBand):
      (WebCore::ScrollAnimatorMac::snapRubberBandTimerFired):
      * platform/mac/ScrollElasticityController.h:
      * platform/mac/ScrollElasticityController.mm:
      (WebCore::ScrollElasticityController::ScrollElasticityController):
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@96651 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      5f59a1e6
    • hyatt@apple.com's avatar
      Fix Leopard build bustage. · 21b07d4d
      hyatt@apple.com authored
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@96648 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      21b07d4d
    • andersca@apple.com's avatar
      Build fixes for everyone. · a41c48ad
      andersca@apple.com authored
      * platform/chromium/ScrollAnimatorChromiumMac.h:
      * platform/chromium/ScrollAnimatorChromiumMac.mm:
      (WebCore::isScrollingLeftAndShouldNotRubberBand):
      (WebCore::isScrollingRightAndShouldNotRubberBand):
      (WebCore::ScrollAnimatorChromiumMac::smoothScrollWithEvent):
      Fix Chromium build.
      
      * platform/gtk/PlatformWheelEventGtk.cpp:
      (WebCore::PlatformWheelEvent::PlatformWheelEvent):
      Fix GTK+ build.
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@96646 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      a41c48ad
    • jonlee@apple.com's avatar
      REGRESSION (WK2): (Shift-)option-tabbing skips over elements when... · 54555a11
      jonlee@apple.com authored
      REGRESSION (WK2): (Shift-)option-tabbing skips over elements when transitioning from chrome to webview
      https://bugs.webkit.org/show_bug.cgi?id=68412
      <rdar://problem/9988252>
      
      Reviewed by Darin Adler.
      
      Source/WebKit2:
      
      In WK1 setInitialFocus() is called on FocusController with the key event that
      caused the web view to become first responder. In WK2 no event is sent. So if
      the key stroke that caused the change in first responder status contains the
      option modifier key, FocusController did not know that it had to switch behavior.
      
      Because there are multiple ways that the WKView can becomeFirstResponder, I changed
      the signature to setInitialFocus to express whether the key event parameter is an
      actual key event.
      
      * UIProcess/API/C/win/WKView.cpp:
      (WKViewSetInitialFocus):
      * UIProcess/API/mac/WKView.mm:
      (-[WKView becomeFirstResponder]): Take the NSApp currentEvent and pass it along if
      the event is a keyboard event, otherwise pass an empty event.
      * UIProcess/WebPageProxy.cpp:
      (WebKit::WebPageProxy::setInitialFocus): Change in function signature to confirm that
      the event that caused the initial focus was a keyboard event, and provide the keyboard
      event itself.
      * UIProcess/WebPageProxy.h:
      * UIProcess/win/WebView.cpp:
      (WebKit::WebView::setInitialFocus):
      * UIProcess/win/WebView.h:
      * WebProcess/WebPage/WebPage.cpp:
      (WebKit::WebPage::setInitialFocus): If we know that the cause of this was a keyboard
      event, we pass that event to the FocusController. Otherwise we fall back to the original
      behavior, which is to pass no event at all.
      * WebProcess/WebPage/WebPage.h:
      * WebProcess/WebPage/WebPage.messages.in:
      
      Tools:
      
      In order to create a test for the bug, I had to update DRT and WKTR to create some
      widget that allows first responder status to move away from the main web view.
      
      Three methods were added to layoutTestController: addChromeInputField,
      removeChromeInputField, and focusWebView. addChromeInputField adds a text field
      that is a sibling to the web view, and sets up the key event loop between the two.
      removeChromeInputField removes that field. focusWebView moves first responder
      status to the web view.
      
      The test makes the call via layoutTestController and passes a callback that it
      assumes will be executed once the task is completed. In DRT the callback is called
      synchronously. In WKTR this is handled with message passing between the two
      processes.
      
      * DumpRenderTree/LayoutTestController.cpp:
      (addChromeInputFieldCallback):
      (removeChromeInputFieldCallback):
      (focusWebViewCallback):
      (LayoutTestController::staticFunctions):
      * DumpRenderTree/LayoutTestController.h:
      * DumpRenderTree/gtk/LayoutTestControllerGtk.cpp:
      (LayoutTestController::addChromeInputField):
      (LayoutTestController::removeChromeInputField):
      (LayoutTestController::focusWebView):
      * DumpRenderTree/mac/DumpRenderTree.mm:
      (resetWebViewToConsistentStateBeforeTesting): When resetting for the next test,
      make sure to remove the chrome input field.
      * DumpRenderTree/mac/LayoutTestControllerMac.mm:
      (LayoutTestController::addChromeInputField):
      (LayoutTestController::removeChromeInputField):
      (LayoutTestController::focusWebView):
      * DumpRenderTree/win/LayoutTestControllerWin.cpp:
      (LayoutTestController::addChromeInputField):
      (LayoutTestController::removeChromeInputField):
      (LayoutTestController::focusWebView):
      * WebKitTestRunner/InjectedBundle/Bindings/LayoutTestController.idl:
      * WebKitTestRunner/InjectedBundle/InjectedBundle.cpp:
      (WTR::InjectedBundle::didReceiveMessage):
      (WTR::InjectedBundle::postAddChromeInputField):
      (WTR::InjectedBundle::postRemoveChromeInputField):
      (WTR::InjectedBundle::postFocusWebView):
      * WebKitTestRunner/InjectedBundle/InjectedBundle.h:
      * WebKitTestRunner/InjectedBundle/LayoutTestController.cpp:
      (WTR::callbackMap): Create a hash map that keeps track of the callbacks provided
      through JS.
      (WTR::cacheLayoutTestControllerCallback):
      (WTR::callLayoutTestControllerCallback):
      (WTR::LayoutTestController::addChromeInputField):
      (WTR::LayoutTestController::removeChromeInputField):
      (WTR::LayoutTestController::focusWebView):
      (WTR::LayoutTestController::callAddChromeInputFieldCallback):
      (WTR::LayoutTestController::callRemoveChromeInputFieldCallback):
      (WTR::LayoutTestController::callFocusWebViewCallback):
      * WebKitTestRunner/InjectedBundle/LayoutTestController.h:
      * WebKitTestRunner/PlatformWebView.h:
      * WebKitTestRunner/TestController.cpp:
      (WTR::TestController::resetStateToConsistentValues):
      * WebKitTestRunner/TestInvocation.cpp:
      (WTR::TestInvocation::didReceiveMessageFromInjectedBundle):
      * WebKitTestRunner/gtk/PlatformWebViewGtk.cpp:
      (WTR::PlatformWebView::addChromeInputField):
      (WTR::PlatformWebView::removeChromeInputField):
      (WTR::PlatformWebView::makeWebViewFirstResponder):
      * WebKitTestRunner/mac/PlatformWebViewMac.mm:
      (WTR::PlatformWebView::addChromeInputField):
      (WTR::PlatformWebView::removeChromeInputField):
      (WTR::PlatformWebView::makeWebViewFirstResponder):
      * WebKitTestRunner/win/PlatformWebViewWin.cpp:
      (WTR::PlatformWebView::addChromeInputField):
      (WTR::PlatformWebView::removeChromeInputField):
      (WTR::PlatformWebView::makeWebViewFirstResponder):
      
      * DumpRenderTree/mac/LayoutTestControllerMac.mm: These functions have nothing to do
      with the patch-- just cleaning up style.
      (LayoutTestController::addDisallowedURL):
      (originsArrayToJS):
      (LayoutTestController::queueLoad):
      (LayoutTestController::setMockDeviceOrientation):
      (LayoutTestController::setIconDatabaseEnabled):
      (LayoutTestController::setEditingBehavior):
      
      LayoutTests:
      
      The option-key navigation is only relevant to the Mac platform.
      
      * platform/mac/fast/forms/focus-option-control-on-page-expected.txt: Added.
      * platform/mac/fast/forms/focus-option-control-on-page.html: Added.
      * platform/mac/fast/forms/script-tests/focus-option-control-on-page.js: Added.
      (startTest):
      (runKeyPresses):
      (notifyDone):
      (log):
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@96645 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      54555a11
    • andersca@apple.com's avatar
      Add a ScrollElasticityController class and move some members over from ScrollAnimatorMac · 90f99c25
      andersca@apple.com authored
      https://bugs.webkit.org/show_bug.cgi?id=69373
      
      Reviewed by David Hyatt.
      
      ScrollElasticityController is a new class that will handle the rubber-banding when handling scroll events.
      
      * WebCore.xcodeproj/project.pbxproj:
      * platform/mac/ScrollAnimatorMac.h:
      * platform/mac/ScrollAnimatorMac.mm:
      (WebCore::ScrollAnimatorMac::ScrollAnimatorMac):
      (WebCore::ScrollAnimatorMac::handleWheelEvent):
      (WebCore::ScrollAnimatorMac::smoothScrollWithEvent):
      (WebCore::ScrollAnimatorMac::beginScrollGesture):
      (WebCore::ScrollAnimatorMac::snapRubberBand):
      (WebCore::ScrollAnimatorMac::snapRubberBandTimerFired):
      * platform/mac/ScrollElasticityController.h: Added.
      (WebCore::ScrollElasticityControllerClient::~ScrollElasticityControllerClient):
      * platform/mac/ScrollElasticityController.mm: Added.
      (WebCore::ScrollElasticityController::ScrollElasticityController):
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@96644 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      90f99c25
    • hyatt@apple.com's avatar
      Source/JavaScriptCore: https://bugs.webkit.org/show_bug.cgi?id=69372 · 34c7902c
      hyatt@apple.com authored
              
      [CSS3 Regions] Make sure overflow:visible lets content spill out of regions.
              
      Add support for reverse iteration to ListHashSet to support being able to walk them
      backwards easily.
      
      Reviewed by Anders Carlsson.
      
      * wtf/ListHashSet.h:
      (WTF::ListHashSetReverseIterator::ListHashSetReverseIterator):
      (WTF::ListHashSetReverseIterator::get):
      (WTF::ListHashSetReverseIterator::operator*):
      (WTF::ListHashSetReverseIterator::operator->):
      (WTF::ListHashSetReverseIterator::operator++):
      (WTF::ListHashSetReverseIterator::operator--):
      (WTF::ListHashSetReverseIterator::operator==):
      (WTF::ListHashSetReverseIterator::operator!=):
      (WTF::ListHashSetReverseIterator::operator const_reverse_iterator):
      (WTF::ListHashSetReverseIterator::node):
      (WTF::ListHashSetConstReverseIterator::ListHashSetConstReverseIterator):
      (WTF::ListHashSetConstReverseIterator::get):
      (WTF::ListHashSetConstReverseIterator::operator*):
      (WTF::ListHashSetConstReverseIterator::operator->):
      (WTF::ListHashSetConstReverseIterator::operator++):
      (WTF::ListHashSetConstReverseIterator::operator--):
      (WTF::ListHashSetConstReverseIterator::operator==):
      (WTF::ListHashSetConstReverseIterator::operator!=):
      (WTF::ListHashSetConstReverseIterator::node):
      (WTF::::rbegin):
      (WTF::::rend):
      (WTF::::makeReverseIterator):
      (WTF::::makeConstReverseIterator):
      (WTF::::makeConstIterator):
      
      Source/WebCore: https://bugs.webkit.org/show_bug.cgi?id=69372
              
      [CSS3 Regions] Make sure overflow:visible lets content spill out of regions.
      
      Reviewed by Anders Carlsson.
      
      No new tests, since plenty of results changed.
      
      * rendering/RenderFlowThread.cpp:
      (WebCore::RenderFlowThread::paintIntoRegion):
      (WebCore::RenderFlowThread::hitTestRegion):
      (WebCore::RenderFlowThread::repaintRectangleInRegions):
      (WebCore::RenderFlowThread::firstRegion):
      (WebCore::RenderFlowThread::lastRegion):
      * rendering/RenderFlowThread.h:
      * rendering/RenderRegion.cpp:
      (WebCore::RenderRegion::regionOverflowRect):
      (WebCore::RenderRegion::isFirstRegion):
      (WebCore::RenderRegion::isLastRegion):
      (WebCore::RenderRegion::layout):
      * rendering/RenderRegion.h:
      (WebCore::RenderRegion::setRegionRect):
      (WebCore::RenderRegion::regionRect):
      
      LayoutTests: https://bugs.webkit.org/show_bug.cgi?id=69372
              
      [CSS3 Regions] Make sure overflow:visible lets content spill out of regions.
      
      Reviewed by Anders Carlsson.
      
      * platform/mac/fast/regions/content-flowed-into-regions-dynamically-removed-expected.png:
      * platform/mac/fast/regions/percentage-margins-mixed-ltr-dominant-regions-expected.png:
      * platform/mac/fast/regions/percentage-margins-mixed-rtl-dominant-regions-expected.png:
      * platform/mac/fast/regions/percentage-margins-rtl-variable-width-regions-expected.png:
      * platform/mac/fast/regions/percentage-margins-variable-width-regions-expected.png:
      * platform/mac/fast/regions/webkit-flow-double-pagination-float-push-expected.png:
      * platform/mac/fast/regions/webkit-flow-float-unable-to-push-expected.png:
      * platform/mac/fast/regions/webkit-flow-floats-inside-regions-bounds-expected.png:
      * platform/mac/fast/regions/webkit-flow-inlines-dynamic-expected.png:
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@96643 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      34c7902c
    • crogers@google.com's avatar
      Avoid unnecessary ASSERT in AudioDSPKernelProcessor::setNumberOfChannels() · c65c4700
      crogers@google.com authored
      https://bugs.webkit.org/show_bug.cgi?id=69361
      
      Reviewed by James Robinson.
      
      No new tests.  This changes no JavaScript API.
      
      * platform/audio/AudioDSPKernelProcessor.cpp:
      (WebCore::AudioDSPKernelProcessor::setNumberOfChannels):
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@96642 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      c65c4700
    • gavinp@chromium.org's avatar
      fix gtk breakage caused by changeset 96595 · f9fb54c1
      gavinp@chromium.org authored
      https://bugs.webkit.org/show_bug.cgi?id=69371
      
      ews did not catch build breakage in the gtk WebKitPluginProcess target; this patch removes
      the pretty printer on gtk, which should fix the build on that platform.
      
      Reviewed by NOBODY, this is a build fix.
      
      * wtf/Assertions.cpp:
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@96641 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      f9fb54c1
    • andersca@apple.com's avatar
      Use const PlatformWheelEvent references where possible · 741fa5dc
      andersca@apple.com authored
      https://bugs.webkit.org/show_bug.cgi?id=69367
      
      Reviewed by Sam Weinig.
      
      * page/EventHandler.cpp:
      (WebCore::EventHandler::handleWheelEvent):
      * platform/ScrollAnimator.cpp:
      (WebCore::ScrollAnimator::handleWheelEvent):
      * platform/ScrollAnimator.h:
      * platform/ScrollView.cpp:
      (WebCore::ScrollView::wheelEvent):
      * platform/ScrollView.h:
      * platform/ScrollableArea.cpp:
      (WebCore::ScrollableArea::handleWheelEvent):
      * platform/ScrollableArea.h:
      * platform/chromium/ScrollAnimatorChromiumMac.h:
      * platform/chromium/ScrollAnimatorChromiumMac.mm:
      (WebCore::ScrollAnimatorChromiumMac::handleWheelEvent):
      * platform/mac/ScrollAnimatorMac.h:
      * platform/mac/ScrollAnimatorMac.mm:
      (WebCore::isScrollingLeftAndShouldNotRubberBand):
      (WebCore::isScrollingRightAndShouldNotRubberBand):
      (WebCore::ScrollAnimatorMac::handleWheelEvent):
      (WebCore::ScrollAnimatorMac::smoothScrollWithEvent):
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@96639 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      741fa5dc
    • commit-queue@webkit.org's avatar
      Shrink HTMLTableCellElement. · 29746dcd
      commit-queue@webkit.org authored
      https://bugs.webkit.org/show_bug.cgi?id=69347
      
      Patch by Andreas Kling <kling@webkit.org> on 2011-10-04
      Reviewed by Antti Koivisto.
      
      Don't cache the rowspan and colspan attributes on the element.
      This shrinks HTMLTableCellElement by one CPU word, reducing memory
      consumption by 80 kB (on 64-bit) when loading the full HTML5 spec.
      
      * html/HTMLTableCellElement.cpp:
      (WebCore::HTMLTableCellElement::HTMLTableCellElement):
      (WebCore::HTMLTableCellElement::colSpan):
      (WebCore::HTMLTableCellElement::rowSpan):
      (WebCore::HTMLTableCellElement::parseMappedAttribute):
      * html/HTMLTableCellElement.h:
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@96638 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      29746dcd
    • commit-queue@webkit.org's avatar
      Unreviewed, rolling out r96630. · 4faffd7b
      commit-queue@webkit.org authored
      http://trac.webkit.org/changeset/96630
      https://bugs.webkit.org/show_bug.cgi?id=69368
      
      Caused assertion failures in validateCell (Requested by
      mhahnenberg on #webkit).
      
      Patch by Sheriff Bot <webkit.review.bot@gmail.com> on 2011-10-04
      
      Source/JavaScriptCore:
      
      * runtime/BooleanConstructor.cpp:
      * runtime/BooleanConstructor.h:
      * runtime/Error.cpp:
      (JSC::StrictModeTypeErrorFunction::getCallDataVirtual):
      (JSC::StrictModeTypeErrorFunction::getCallData):
      * runtime/ErrorConstructor.cpp:
      * runtime/ErrorConstructor.h:
      * runtime/FunctionConstructor.cpp:
      * runtime/FunctionConstructor.h:
      * runtime/FunctionPrototype.cpp:
      * runtime/FunctionPrototype.h:
      
      Source/WebCore:
      
      * bridge/qt/qt_runtime.cpp:
      * bridge/qt/qt_runtime.h:
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@96637 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      4faffd7b
    • caryclark@google.com's avatar
      Enable sub pixel text (Skia on Mac) · 08b7ffd3
      caryclark@google.com authored
      https://bugs.webkit.org/show_bug.cgi?id=69354
      http://code.google.com/p/chromium/issues/detail?id=98165
      
      Reviewed by Eric Seidel.
      
      No new tests. Layout test pixel results have been
      disabled and will be rebaselined once all Skia on Mac
      changes are in.
      
      * platform/graphics/skia/FontSkia.cpp:
      (WebCore::setupPaint):
      Enable sub pixel text. This is set by default to enabled
      by CoreGraphics, but by default disabled on Skia.
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@96635 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      08b7ffd3
    • andersca@apple.com's avatar
      Remove PlatformWheelEvent::m_isAccepted · 6cb18a47
      andersca@apple.com authored
      https://bugs.webkit.org/show_bug.cgi?id=69357
      
      Reviewed by Darin Adler.
      
      ../WebCore: 
      
      Remove PlatformWheelEvent::m_isAccepted and all the getters/setters.
      
      * page/EventHandler.cpp:
      (WebCore::EventHandler::handleWheelEvent):
      (WebCore::EventHandler::handleGestureEvent):
      * page/mac/EventHandlerMac.mm:
      (WebCore::EventHandler::wheelEvent):
      * platform/PlatformWheelEvent.h:
      (WebCore::PlatformWheelEvent::PlatformWheelEvent):
      * platform/ScrollAnimator.cpp:
      (WebCore::ScrollAnimator::handleWheelEvent):
      * platform/chromium/PopupContainer.cpp:
      (WebCore::PopupContainer::handleGestureEvent):
      * platform/chromium/ScrollAnimatorChromiumMac.mm:
      (WebCore::ScrollAnimatorChromiumMac::handleWheelEvent):
      * platform/efl/PlatformWheelEventEfl.cpp:
      (WebCore::PlatformWheelEvent::PlatformWheelEvent):
      * platform/mac/ScrollAnimatorMac.mm:
      (WebCore::ScrollAnimatorMac::handleWheelEvent):
      * platform/mac/WheelEventMac.mm:
      (WebCore::PlatformWheelEvent::PlatformWheelEvent):
      * platform/qt/WheelEventQt.cpp:
      (WebCore::PlatformWheelEvent::PlatformWheelEvent):
      * platform/win/WheelEventWin.cpp:
      (WebCore::PlatformWheelEvent::PlatformWheelEvent):
      * platform/wx/MouseWheelEventWx.cpp:
      (WebCore::PlatformWheelEvent::PlatformWheelEvent):
      
      ../WebKit/chromium: 
      
      * src/WebInputEventConversion.cpp:
      (WebKit::PlatformWheelEventBuilder::PlatformWheelEventBuilder):
      m_isAccepted has been removed.
      
      * src/WebScrollbarImpl.cpp:
      (WebKit::WebScrollbarImpl::onMouseWheel):
      Just return the value of handleWheelEvent.
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@96633 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      6cb18a47
    • cdn@chromium.org's avatar
      Source/WebCore: Hold refptr to identified previous sibling within findPlaceForCounter. · bf874685
      cdn@chromium.org authored
      https://bugs.webkit.org/show_bug.cgi?id=68563
      
      Reviewed by Adam Barth.
      
      Test: fast/css/counters/counter-after-style-crash.html
      
      * rendering/RenderCounter.cpp:
      (WebCore::findPlaceForCounter):
      
      LayoutTests: Add test for crash when performing rich text mutations with counter nodes.
      https://bugs.webkit.org/show_bug.cgi?id=68563
      
      Reviewed by Adam Barth.
      
      * fast/css/counters/counter-after-style-crash-expected.txt: Added.
      * fast/css/counters/counter-after-style-crash.html: Added.
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@96632 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      bf874685
    • commit-queue@webkit.org's avatar
      IndexedDB add() should fail if key is NaN · 05850dd0
      commit-queue@webkit.org authored
      https://bugs.webkit.org/show_bug.cgi?id=62286
      
      Patch by Joshua Bell <jsbell@chromium.org> on 2011-10-04
      Reviewed by Tony Chang.
      
      Source/WebCore:
      
      Test: storage/indexeddb/invalid-keys.html
      
      Implement special case - numbers are valid keys, except for NaN.
      
      * bindings/v8/IDBBindingUtilities.cpp:
      (WebCore::createIDBKeyFromValue):
      
      LayoutTests:
      
      Tests for NaN and other invalid IndexedDB keys.
      
      * storage/indexeddb/invalid-keys-expected.txt: Added.
      * storage/indexeddb/invalid-keys.html: Added.
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@96631 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      05850dd0
    • mhahnenberg@apple.com's avatar
      Add static ClassInfo structs to classes that override JSCell::getCallData · dd90ed20
      mhahnenberg@apple.com authored
      https://bugs.webkit.org/show_bug.cgi?id=69311
      
      Reviewed by Darin Adler.
      
      Source/JavaScriptCore:
      
      Added ClassInfo structs to each class that defined its own getCallData
      function but did not already have its own ClassInfo struct.  This is a
      necessary addition for when we switch over to looking up getCallData from
      the MethodTable in ClassInfo rather than doing the virtual call (which we
      are removing).  These new ClassInfo structs are public because we often
      use these structs in other areas of the code to uniquely identify JSC classes and
      to enforce runtime invariants based on those class identities using ASSERTs.
      
      * runtime/BooleanConstructor.cpp:
      * runtime/BooleanConstructor.h:
      
      getCallData was not marked as static is StrictModeTypeErrorFunction.
      * runtime/Error.cpp:
      (JSC::StrictModeTypeErrorFunction::getCallDataVirtual):
      (JSC::StrictModeTypeErrorFunction::getCallData):
      * runtime/ErrorConstructor.cpp:
      * runtime/ErrorConstructor.h:
      * runtime/FunctionConstructor.cpp:
      * runtime/FunctionConstructor.h:
      * runtime/FunctionPrototype.cpp:
      * runtime/FunctionPrototype.h:
      
      Source/WebCore:
      
      No new tests.
      
      Added ClassInfo structs to each class that defined its own getCallData
      function but did not already have its own ClassInfo struct.  This is a
      necessary addition for when we switch over to looking up getCallData from
      the MethodTable in ClassInfo rather than doing the virtual call (which we
      are removing).  These new ClassInfo structs are public because we often
      use these structs in other areas of the code to uniquely identify JSC classes and
      to enforce runtime invariants based on those class identities using ASSERTs.
      
      * bridge/qt/qt_runtime.cpp:
      * bridge/qt/qt_runtime.h:
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@96630 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      dd90ed20
    • rniwa@webkit.org's avatar
      Leopard build fix after r96613. · 54009a4c
      rniwa@webkit.org authored
      * wtf/Platform.h:
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@96629 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      54009a4c
    • rniwa@webkit.org's avatar
      REGRESSION(r94274): setting input.value erroneously triggers focus event · cf9c03f9
      rniwa@webkit.org authored
      https://bugs.webkit.org/show_bug.cgi?id=69315
      
      Reviewed by Kent Tamura.
      
      Fixed the bug by adding a new flag to setSelection to avoid calling setFocusedNodeIfNeeded
      when called by nodeWillBeRemoved and textWillBeReplaced.
      
      Added a manual test. Unfortunately, the test always passes in DRT.
      
      * editing/FrameSelection.cpp:
      (WebCore::FrameSelection::setSelection):
      (WebCore::FrameSelection::respondToNodeModification):
      (WebCore::FrameSelection::textWillBeReplaced):
      * editing/FrameSelection.h:
      * manual-tests/mutate-unfocused-text-with-selection.html: Added.
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@96628 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      cf9c03f9
    • mhahnenberg@apple.com's avatar
      Implicitly add toString and valueOf to prototype when convertToType callback is provided · ff057a67
      mhahnenberg@apple.com authored
      https://bugs.webkit.org/show_bug.cgi?id=69156
      
      Reviewed by Geoffrey Garen.
      
      Added callbacks for toString and valueOf which are implicitly added to a client object's
      prototype if they provide a convertToType callback when declaring their class through
      the JSC API.
      
      * API/JSCallbackFunction.cpp:
      (JSC::JSCallbackFunction::toStringCallback):
      (JSC::JSCallbackFunction::valueOfCallback):
      * API/JSCallbackFunction.h:
      * API/JSClassRef.cpp:
      (OpaqueJSClass::prototype):
      * API/tests/testapi.js:
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@96627 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      ff057a67
    • commit-queue@webkit.org's avatar
      HTML canvas strokes with dash and dashOffset · 6cabcb62
      commit-queue@webkit.org authored
      https://bugs.webkit.org/show_bug.cgi?id=63933
      
      Patch by Young Han Lee <joybro201@gmail.com> on 2011-10-04
      Reviewed by Simon Fraser.
      
      Add webkitLineDash and webkitLineDashOffset attributes to CanvasRenderingContext2D for JSC.
      These attributes can be used to determine the dash-style of stroke in HTML Canvas.
      
      As this kind of attributes are not specified in the HTML Canvas specification yet,
      the 'webkit' prefix is added to its names.
      
      Mozilla already implemented these attributes, mozDash and mozDashOffset [1], and this patch
      is created by referring to the implementation. This patch is basically using the specified
      behavior of stroke-dasharray and stroke-dashoffset in the SVG specification [2], except
      that doesn't support units or percentages, just floating point numbers.
      
      [1] https://bugzilla.mozilla.org/show_bug.cgi?id=662038
      [2] http://www.w3.org/TR/SVG/painting.html#StrokeProperties
      
      Source/WebCore:
      
      Tests: fast/canvas/canvas-webkitLineDash-invalid.html
             fast/canvas/canvas-webkitLineDash.html
      
      * bindings/js/JSCanvasRenderingContext2DCustom.cpp:
      (WebCore::JSCanvasRenderingContext2D::webkitLineDash):
      (WebCore::JSCanvasRenderingContext2D::setWebkitLineDash):
      * html/canvas/CanvasRenderingContext2D.cpp:
      (WebCore::CanvasRenderingContext2D::State::State):
      (WebCore::CanvasRenderingContext2D::webkitLineDash):
      (WebCore::CanvasRenderingContext2D::setWebkitLineDash):
      (WebCore::CanvasRenderingContext2D::webkitLineDashOffset):
      (WebCore::CanvasRenderingContext2D::setWebkitLineDashOffset):
      * html/canvas/CanvasRenderingContext2D.h:
      * html/canvas/CanvasRenderingContext2D.idl:
      
      LayoutTests:
      
      * fast/canvas/canvas-webkitLineDash-expected.txt: Added.
      * fast/canvas/canvas-webkitLineDash-invalid-expected.txt: Added.
      * fast/canvas/canvas-webkitLineDash-invalid.html: Added.
      * fast/canvas/canvas-webkitLineDash.html: Added.
      * fast/canvas/script-tests/canvas-webkitLineDash-invalid.js: Added.
      (trySettingLineDash):
      (trySettingLineDashOffset):
      * fast/canvas/script-tests/canvas-webkitLineDash.js: Added.
      * platform/chromium/test_expectations.txt:
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@96626 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      6cabcb62
    • mdelaney@apple.com's avatar
      Allow canvas backing store to be lazily allocated · 8c076a71
      mdelaney@apple.com authored
      https://bugs.webkit.org/show_bug.cgi?id=67054
      
      Reviewed by Darin Adler.
      
      No new tests; doesn't affect behavior.
      
      * html/HTMLCanvasElement.cpp:
      (WebCore::HTMLCanvasElement::createImageBuffer): Removed the setting of lineWidth
      that caused the eager creation of ImageBuffer to use its GraphicsContext.
      * html/canvas/CanvasRenderingContext2D.cpp:
      (WebCore::CanvasRenderingContext2D::CanvasRenderingContext2D): Added in default
      line width setting along with other default context settings.
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@96624 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      8c076a71
    • weinig@apple.com's avatar
      Add support for the CSP connect-src directive · 5f414e1d
      weinig@apple.com authored
      https://bugs.webkit.org/show_bug.cgi?id=69353
      
      Reviewed by Adam Barth.
      
      Add CSP support for XMLHttpRequest, WebSockets and EventSource.
      
      Source/WebCore: 
      
      Tests: http/tests/security/contentSecurityPolicy/connect-src-eventsource-allowed.html
             http/tests/security/contentSecurityPolicy/connect-src-eventsource-blocked.html
             http/tests/security/contentSecurityPolicy/connect-src-websocket-allowed.html
             http/tests/security/contentSecurityPolicy/connect-src-websocket-blocked.html
             http/tests/security/contentSecurityPolicy/connect-src-xmlhttprequest-allowed.html
             http/tests/security/contentSecurityPolicy/connect-src-xmlhttprequest-blocked.html
      
      * page/ContentSecurityPolicy.cpp:
      (WebCore::ContentSecurityPolicy::allowConnectFromSource):
      (WebCore::ContentSecurityPolicy::addDirective):
      * page/ContentSecurityPolicy.h:
      Add connect-src directive parsing and predicate.
      
      * page/EventSource.cpp:
      (WebCore::EventSource::create):
      * websockets/WebSocket.cpp:
      (WebCore::WebSocket::connect):
      * xml/XMLHttpRequest.cpp:
      (WebCore::XMLHttpRequest::open):
      Test allowConnectFromSource when establishing a connection.
      
      LayoutTests: 
      
      * http/tests/security/contentSecurityPolicy/connect-src-eventsource-allowed-expected.txt: Added.
      * http/tests/security/contentSecurityPolicy/connect-src-eventsource-allowed.html: Added.
      * http/tests/security/contentSecurityPolicy/connect-src-eventsource-blocked-expected.txt: Added.
      * http/tests/security/contentSecurityPolicy/connect-src-eventsource-blocked.html: Added.
      * http/tests/security/contentSecurityPolicy/connect-src-websocket-allowed-expected.txt: Added.
      * http/tests/security/contentSecurityPolicy/connect-src-websocket-allowed.html: Added.
      * http/tests/security/contentSecurityPolicy/connect-src-websocket-blocked-expected.txt: Added.
      * http/tests/security/contentSecurityPolicy/connect-src-websocket-blocked.html: Added.
      * http/tests/security/contentSecurityPolicy/connect-src-xmlhttprequest-allowed-expected.txt: Added.
      * http/tests/security/contentSecurityPolicy/connect-src-xmlhttprequest-allowed.html: Added.
      * http/tests/security/contentSecurityPolicy/connect-src-xmlhttprequest-blocked-expected.txt: Added.
      * http/tests/security/contentSecurityPolicy/connect-src-xmlhttprequest-blocked.html: Added.
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@96621 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      5f414e1d
    • hyatt@apple.com's avatar
      https://bugs.webkit.org/show_bug.cgi?id=69317 · d4d3bcfd
      hyatt@apple.com authored
              
      [CSS3 Regions] Make overflow:hidden/auto/scroll sections behave properly when split across regions. This
      includes sizing and positioning independently in each region, clipping independently in each region, and
      shifting to avoid floats in each region.
      
      Reviewed by Anders Carlsson.
      
      Source/WebCore: 
      
      Added many new tests in fast/regions.
      
      * editing/Editor.cpp:
      (WebCore::Editor::insideVisibleArea):
      Patching a call to overflowClipRect, which now includes a region argument so that clipping can be adjusted
      per-region.
      
      * rendering/RenderBlock.cpp:
      (WebCore::RenderBlock::layoutBlock):
      Don't clear out the cached region information when the width changes. Instead make a new call to
      the flow thread to check if widths changed in any region and set relayoutChildren to true if so.
      
      (WebCore::RenderBlock::computeStartPositionDeltaForChildAvoidingFloats):
      This is a new function that has been split out from determineLogicalLeftPositionForChild so that it can
      be called by region code to compute offsets independently in each region without altering the overall object's
      logical left position.
              
      (WebCore::RenderBlock::determineLogicalLeftPositionForChild):
      Patched to call computeStartPositionDeltaForChildAvoidingFloats instead of doing the work of avoiding the floats
      itself.
      
      (WebCore::RenderBlock::computeLogicalLocationForFloat):
      Fix the left clamping code to clamp to the left border in the correct region rather than always just clamping
      to 0.
      
      (WebCore::RenderBlock::logicalLeftOffsetForContent):
      (WebCore::RenderBlock::logicalRightOffsetForContent):
      Tweaked to handle the new signature of borderBoxRectInRegion.
      
      (WebCore::RenderBlock::nextFloatLogicalBottomBelow):
      Reworked not to return 0 on failure or when done, but to just return the current height. This is a more
      fitting answer for the function to return when no more floats remain.
      
      (WebCore::RenderBlock::getClearDelta):
      Big changes to this function. It was never patched to support writing modes, so the new code is all
      writing-mode-aware now. Also improved the computeLogicalWidth() call to make sure margins didn't get incorrectly changed.
      The code computes transient information in each region as the object tries to find a place to fit, so that the
      old widths are properly retained when layout of that child later checks to see if it needs to relayout children or not.
      
      (WebCore::RenderBlock::nodeAtPoint):
      Patched to call overflowClipRect with the region being hit tested.
      
      (WebCore::inNormalFlow):
      Tweaked to not need the initialBlock variable.
      
      (WebCore::RenderBlock::applyBeforeBreak):
      (WebCore::RenderBlock::applyAfterBreak):
      (WebCore::RenderBlock::pageLogicalHeightForOffset):
      (WebCore::RenderBlock::pageRemainingLogicalHeightForOffset):
      (WebCore::RenderBlock::adjustForUnsplittableChild):
      (WebCore::RenderBlock::adjustLinePositionForPagination):
      (WebCore::RenderBlock::lineWidthForPaginatedLineChanged):
      Tweaked to use inRenderFlowThread() now that it exists. Also removing the regionsHaveUniformLogicalWidth()
      optimization, since you can't rely on that when objects size differently depending on floats. In other words,
      the future of pagination is variable width objects even in printing/columns.
      
      (WebCore::RenderBlock::offsetFromLogicalTopOfFirstPage):
      Renamed to make it more clear what logicalPageOffset() was. It's your offset from the top of the first page.
      
      (WebCore::RenderBlock::regionAtBlockOffset):
      New helper function for accessing the region at a given offset within your block.
      
      (WebCore::RenderBlock::logicalWidthChangedInRegions):
      New helper function that computes whether or not your logical width information changed in any regions. If so,
      relayoutChildren gets set to true (just as it would have when computeLogicalWidth for the overall block changes
      values).
      
      (WebCore::RenderBlock::collapsedMarginBeforeForChild):
      (WebCore::RenderBlock::collapsedMarginAfterForChild):
      (WebCore::RenderBlock::marginBeforeForChild):
      (WebCore::RenderBlock::marginAfterForChild):
      (WebCore::RenderBlock::marginLogicalLeftForChild):
      (WebCore::RenderBlock::marginLogicalRightForChild):
      (WebCore::RenderBlock::marginStartForChild):
      (WebCore::RenderBlock::marginEndForChild):
      Tweaked because of const to take const arguments.
              
      * rendering/RenderBlock.h:
      (WebCore::RenderBlock::availableLogicalWidthForLine):
      (WebCore::RenderBlock::logicalRightOffsetForLine):
      (WebCore::RenderBlock::logicalLeftOffsetForLine):
      (WebCore::RenderBlock::startOffsetForLine):
      (WebCore::RenderBlock::logicalWidthForChild):
      (WebCore::RenderBlock::logicalHeightForChild):
      (WebCore::RenderBlock::logicalTopForChild):
      (WebCore::RenderBlock::logicalLeftForChild):
      (WebCore::RenderBlock::availableLogicalWidthForContent):
      (WebCore::RenderBlock::startOffsetForContent):
      (WebCore::RenderBlock::logicalLeftOffsetForContent):
      (WebCore::RenderBlock::logicalRightOffsetForContent):
      Reworking these functions so versions exist that take regions and page offsets to avoid having to recalculate
      where you are over and over again as you walk up a containing block chain.
      
      * rendering/RenderBlockLineLayout.cpp:
      (WebCore::LineWidth::fitBelowFloats):
      Changed to handle the better return value for nextFloatLogicalBottomBelow.
              
      (WebCore::RenderBlock::checkPaginationAndFloatsAtEndLine):
      Removing the uniform logical width optimization.
      
      * rendering/RenderBox.cpp:
      (WebCore::RenderBox::borderBoxRectInRegion):
      Changed to take a region and offset from the first page so that it doesn't have to be recomputed as you recur up
      the containing block chain.
      
      (WebCore::RenderBox::clearRenderBoxRegionInfo):
      Changed to just use inRenderFlowThread().
      
      (WebCore::RenderBox::pushContentsClip):
      Changed for the new region-parameterized overflow clip function.
              
      (WebCore::RenderBox::overflowClipRect):
      Now takes a region so that a specific clip rect can be returned sized to the appropriate border box in that
      region.
      
      (WebCore::RenderBox::containingBlockLogicalWidthForContent):
      (WebCore::RenderBox::containingBlockLogicalWidthForContentInRegion):
      Objects in flow threads no longer shrink to avoid floats when computing their overall widths. The region-specific
      check now does the shrinking. It checks at the point where the region slices the object, or the top of the object if
      it begins in the middle of the region.
      
      (WebCore::RenderBox::computeLogicalWidth):
      (WebCore::RenderBox::computeLogicalWidthInRegion):
      Push all the rest of the computeLogicalWidth code into computeLogicalWidthInRegion.
              
      (WebCore::RenderBox::renderBoxRegionInfo):
      Changed to take the region and the offset from the top of the first page to avoid recomputation.
      
      * rendering/RenderBox.h:
      (WebCore::RenderBox::hasRenderOverflow):
      (WebCore::RenderBox::hasVisualOverflow):
      New helper used by the RenderLayer code to avoid having to check visual overflow when none exists.
      
      * rendering/RenderBoxModelObject.cpp:
      (WebCore::RenderBoxModelObject::paintFillLayerExtended):
      Use the new region-specific overflow clip.
      
      * rendering/RenderBoxRegionInfo.h:
      (WebCore::RenderBoxRegionInfo::shiftLogicalLeft):
      Helper used by the region code to shift a box over when floats cause it to move.
      
      * rendering/RenderFlowThread.cpp:
      (WebCore::RenderFlowThread::computeLogicalWidth):
      Remove the optimization to avoid creating box info for uniform widths.
      
      (WebCore::RenderFlowThread::paintIntoRegion):
      Make the clip rects used when painting the flow thread's layer tree temporary in each region.
      
      (WebCore::RenderFlowThread::removeRenderBoxRegionInfo):
      Removing the uniform logical width optimization
      
      (WebCore::RenderFlowThread::logicalWidthChangedInRegions):
      * rendering/RenderFlowThread.h:
      New helper called to see if a block needs to relayout its children because its width changed in some
      region.
      
      * rendering/RenderLayer.cpp:
      (WebCore::RenderLayer::paint):
      (WebCore::RenderLayer::paintLayer):
      (WebCore::RenderLayer::hitTestLayer):
      (WebCore::RenderLayer::updateClipRects):
      (WebCore::RenderLayer::calculateClipRects):
      (WebCore::RenderLayer::parentClipRects):
      (WebCore::RenderLayer::backgroundClipRect):
      (WebCore::RenderLayer::calculateRects):
      (WebCore::RenderLayer::childrenClipRect):
      (WebCore::RenderLayer::selfClipRect):
      (WebCore::RenderLayer::repaintBlockSelectionGaps):
      * rendering/RenderLayer.h:
      * rendering/RenderLayerBacking.cpp:
      (WebCore::RenderLayerBacking::updateCompositedBounds):
      (WebCore::clipBox):
      (WebCore::RenderLayerBacking::updateGraphicsLayerGeometry):
      (WebCore::RenderLayerBacking::paintIntoLayer):
      * rendering/RenderLayerCompositor.cpp:
      (WebCore::RenderLayerCompositor::addToOverlapMap):
      (WebCore::RenderLayerCompositor::clippedByAncestor):
      Changing all the layer clipping code to pass regions through to all of the helper functions involved. This is
      so overflowClipRect can ultimately take a region. Eventually when we get positioned objects moving independently
      in each region, we'll patch the "clip" property as well, and it will be much easier because all the plumbing has
      been put in place here for overflow.
              
      * rendering/RenderObject.cpp:
      (WebCore::RenderObject::enclosingRenderFlowThread):
      Optimized to not walk up the render tree if we're in layout and a currentRenderFlowThread() exists.
      
      * rendering/RenderRegion.cpp:
      (WebCore::RenderRegion::renderBoxRegionInfo):
      (WebCore::RenderRegion::setRenderBoxRegionInfo):
      (WebCore::RenderRegion::takeRenderBoxRegionInfo):
      Removing the optimization for uniform logical width regions. Changed remove to take so that the caller
      can examine it before deleting.
      
      (WebCore::RenderRegion::offsetFromLogicalTopOfFirstPage):
      * rendering/RenderRegion.h:
      Helper function that computes the region's offset from the top of the first page.
      
      * rendering/RenderTable.cpp:
      (WebCore::RenderTable::overflowClipRect):
      (WebCore::RenderTable::nodeAtPoint):
      * rendering/RenderTable.h:
      * rendering/RenderTableCell.h:
      * rendering/RenderTableSection.cpp:
      (WebCore::RenderTableSection::nodeAtPoint):
      Changed to pass the region to overflowClipRect.
      
      * rendering/RenderTreeAsText.cpp:
      (WebCore::writeLayers):
      Modified because the layer clip functions need regions now.
      
      * rendering/RenderView.h:
      (WebCore::RenderView::pushLayoutState):
      Changed to use inRenderFlowThread over view()->hasRenderFlowThread.
              
      * rendering/svg/RenderSVGRoot.cpp:
      (WebCore::RenderSVGRoot::paint):
      Patched to use the new overflowClipRect that is region-specific.
      
      LayoutTests: 
      
      * fast/regions/floats-basic-in-variable-width-regions.html: Added.
      * fast/regions/overflow-in-uniform-regions-dynamic.html: Added.
      * fast/regions/overflow-in-uniform-regions.html: Added.
      * fast/regions/overflow-in-variable-width-regions.html:
      * fast/regions/overflow-moving-below-floats-in-variable-width-regions.html: Added.
      * fast/regions/overflow-not-moving-below-floats-in-variable-width-regions.html: Added.
      * fast/regions/overflow-rtl-in-variable-width-regions.html:
      * fast/regions/overflow-size-change-in-variable-width-regions.html: Added.
      * fast/regions/overflow-size-change-with-stacking-context.html: Added.
      * platform/mac/fast/regions/floats-basic-in-variable-width-regions-expected.png: Added.
      * platform/mac/fast/regions/floats-basic-in-variable-width-regions-expected.txt: Added.
      * platform/mac/fast/regions/overflow-in-uniform-regions-dynamic-expected.png: Added.
      * platform/mac/fast/regions/overflow-in-uniform-regions-dynamic-expected.txt: Added.
      * platform/mac/fast/regions/overflow-in-uniform-regions-expected.png: Added.
      * platform/mac/fast/regions/overflow-in-uniform-regions-expected.txt: Added.
      * platform/mac/fast/regions/overflow-in-variable-width-regions-expected.png:
      * platform/mac/fast/regions/overflow-in-variable-width-regions-expected.txt:
      * platform/mac/fast/regions/overflow-moving-below-floats-in-variable-width-regions-expected.png: Added.
      * platform/mac/fast/regions/overflow-moving-below-floats-in-variable-width-regions-expected.txt: Added.
      * platform/mac/fast/regions/overflow-not-moving-below-floats-in-variable-width-regions-expected.png: Added.
      * platform/mac/fast/regions/overflow-not-moving-below-floats-in-variable-width-regions-expected.txt: Added.
      * platform/mac/fast/regions/overflow-rtl-in-variable-width-regions-expected.png:
      * platform/mac/fast/regions/overflow-rtl-in-variable-width-regions-expected.txt:
      * platform/mac/fast/regions/overflow-size-change-in-variable-width-regions-expected.png: Added.
      * platform/mac/fast/regions/overflow-size-change-in-variable-width-regions-expected.txt: Added.
      * platform/mac/fast/regions/overflow-size-change-with-stacking-context-expected.png: Added.
      * platform/mac/fast/regions/overflow-size-change-with-stacking-context-expected.txt: Added.
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@96620 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      d4d3bcfd