1. 12 Oct, 2012 31 commits
    • beidson@apple.com's avatar
      Add a WKContext call to enable the NetworkProcess. · 264dbebc
      beidson@apple.com authored
      https://bugs.webkit.org/show_bug.cgi?id=99140
      
      Reviewed by Sam Weinig.
      
      Add the SPI:
      * UIProcess/API/C/WKContext.cpp:
      (WKContextSetUsesNetworkProcess):
      * UIProcess/API/C/WKContextPrivate.h:
      
      Add a member for the flag and the first call site that will be interested in the flag's value:
      * UIProcess/WebContext.cpp:
      (WebKit::WebContext::WebContext):
      (WebKit::WebContext::setUsesNetworkProcess):
      (WebKit):
      (WebKit::WebContext::createNewWebProcess):
      (WebKit::WebContext::ensureNetworkProcess):
      * UIProcess/WebContext.h:
      (WebContext):
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@131144 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      264dbebc
    • commit-queue@webkit.org's avatar
      [BlackBerry] Paused in Inspector, Browser doesn't exit cleanly · 766131d2
      commit-queue@webkit.org authored
      https://bugs.webkit.org/show_bug.cgi?id=97962
      
      Patch by Peter Wang <peter.wang@torchmobile.com.cn> on 2012-10-11
      Reviewed by George Staikos.
      
      Before destroying webpage, close the inspector, so if the JSC is paused it will be resumed.
      
      * Api/WebPage.cpp:
      (BlackBerry::WebKit::WebPage::destroy):
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@131143 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      766131d2
    • shinyak@chromium.org's avatar
      [Chromium] Unreviewed gardening, TestExpectation updated. · f4e30d9b
      shinyak@chromium.org authored
      * platform/chromium/TestExpectations:
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@131142 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      f4e30d9b
    • aestes@apple.com's avatar
      Fix the 32-bit Mac build after r131138. · 094ae80b
      aestes@apple.com authored
      * WebProcess/InjectedBundle/mac/InjectedBundleMac.mm:
      (WebKit::InjectedBundle::load):
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@131141 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      094ae80b
    • shinyak@chromium.org's avatar
      [Chromium] Unreviewed gardening, TestExpectations updated. · f44227ec
      shinyak@chromium.org authored
      * platform/chromium/TestExpectations:
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@131140 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      f44227ec
    • andersca@apple.com's avatar
      Stop using Connection::deprecatedSend in WebConnection · acf9ce26
      andersca@apple.com authored
      https://bugs.webkit.org/show_bug.cgi?id=99130
      
      Reviewed by Sam Weinig.
      
      Instead of using deprecatedSend, just encode the data using a separate ArgumentEncoder and pass it along as a DataReference.
      
      * DerivedSources.make:
      * DerivedSources.pri:
      * GNUmakefile.list.am:
      Add new files.
      
      * Platform/CoreIPC/MessageID.h:
      Add WebConnectionMessageClass.
      
      * Shared/WebConnection.cpp:
      (WebKit::WebConnection::WebConnection):
      Make WebConnection hold on to the CoreIPC::Connection.
      
      (WebKit::WebConnection::postMessage):
      Ask the subclasses to encode the body data, then send it.
      
      (WebKit::WebConnection::handleMessage):
      Ask the subclasses to decode the body data, then call didReceiveClient.
      
      (WebKit::WebConnection::invalidate):
      Null out m_connection.
      
      * Shared/WebConnection.h:
      (WebKit::WebConnection::connection):
      
      * Shared/WebConnection.messages.in: Added.
      
      * UIProcess/WebConnectionToWebProcess.cpp:
      (WebKit::WebConnectionToWebProcess::WebConnectionToWebProcess):
      Pass the connection to the WebConnection initializer.
      
      (WebKit::WebConnectionToWebProcess::encodeMessageBody):
      (WebKit::WebConnectionToWebProcess::decodeMessageBody):
      Encode and decode the message body.
      
      (WebKit::WebConnectionToWebProcess::didReceiveMessage):
      Handle WebConnection messages.
      
      * WebKit2.xcodeproj/project.pbxproj:
      Add new files.
      
      * WebProcess/WebConnectionToUIProcess.cpp:
      (WebKit::WebConnectionToUIProcess::WebConnectionToUIProcess):
      Pass the connection to the WebConnection initializer.
      
      (WebKit::WebConnectionToUIProcess::encodeMessageBody):
      (WebKit::WebConnectionToUIProcess::decodeMessageBody):
      Encode and decode the message body.
      
      (WebKit::WebConnectionToUIProcess::didReceiveMessage):
      Handle WebConnection messages.
      
      * win/WebKit2.vcproj:
      Add new files.
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@131139 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      acf9ce26
    • aestes@apple.com's avatar
      Expose the main frame's document to injected bundles via the Objective-C API · 75c92bc9
      aestes@apple.com authored
      https://bugs.webkit.org/show_bug.cgi?id=99133
      
      Patch by Sam Weinig.
      
      Reviewed by Anders Carlsson.
      
      Allow a bundle to declare a principle class which will be instantiated
      by WebKit2 and passed an object to which WKBundleClient calls are
      forwarded and which can access the main frame's WKDOMDocument.
      
      * WebKit2.xcodeproj/project.pbxproj:
      * WebProcess/InjectedBundle/API/mac/WKWebProcessPlugIn.h:
      * WebProcess/InjectedBundle/API/mac/WKWebProcessPlugIn.mm: Instantiate
      the bundle's principle class forward WKBundleClient calls to it.
      * WebProcess/InjectedBundle/API/mac/WKWebProcessPlugInBrowserContextController.h:
      * WebProcess/InjectedBundle/API/mac/WKWebProcessPlugInBrowserContextController.mm:
      Add a property called mainFrameDocument which returns a WKDOMDocument.
      * WebProcess/InjectedBundle/API/mac/WKWebProcessPlugInBrowserContextControllerInternal.h:
      * WebProcess/InjectedBundle/API/mac/WKWebProcessPlugInInternal.h:
      * WebProcess/InjectedBundle/mac/InjectedBundleMac.mm:
      (WebKit::InjectedBundle::load): Initialize the shared
      WKWebProcessPlugInController with the bundle's principle class.
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@131138 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      75c92bc9
    • bdakin@apple.com's avatar
      https://bugs.webkit.org/show_bug.cgi?id=98700 · 64d3610a
      bdakin@apple.com authored
      ScrollingCoordinator is a hot mess of if-defs
      
      Reviewed by Anders Carlsson.
      
      This patch moves all of the threaded scrolling code in 
      ScrollingCoordinator into a new class called ScrollingCoordinatorMac 
      which inherits from ScrollingCoordinator. 
      
      It also adds ScrollingCoordinatorChromium to do Chromium-specific work. 
      ScrollingCoordinator itself does work that is cross-platform. 
              
      Finally, this patch also eliminates ScrollingCoordinatorNone. 
      ScrollingCoordinator is now sufficient for platforms that relied on 
      ScrollingCoordinatorNone to build.
      
      * CMakeLists.txt:
      * GNUmakefile.list.am:
      * Target.pri:
      * WebCore.exp.in:
      * WebCore.xcodeproj/project.pbxproj:
      * page/scrolling/ScrollingCoordinator.cpp:
      (WebCore::ScrollingCoordinator::create):
      (WebCore):
      (WebCore::ScrollingCoordinator::ScrollingCoordinator):
      (WebCore::ScrollingCoordinator::~ScrollingCoordinator):
      (WebCore::ScrollingCoordinator::pageDestroyed):
      (WebCore::ScrollingCoordinator::computeNonFastScrollableRegion):
      (WebCore::ScrollingCoordinator::computeCurrentWheelEventHandlerCount):
      (WebCore::ScrollingCoordinator::scrollLayerForFrameView):
      (WebCore::ScrollingCoordinator::frameViewRootLayerDidChange):
      * page/scrolling/ScrollingCoordinator.h:
      (WebCore):
      (ScrollingCoordinator):
      (WebCore::ScrollingCoordinator::scrollingTree):
      (WebCore::ScrollingCoordinator::commitTreeStateIfNeeded):
      (WebCore::ScrollingCoordinator::frameViewLayoutUpdated):
      (WebCore::ScrollingCoordinator::supportsFixedPositionLayers):
      (WebCore::ScrollingCoordinator::requestScrollPositionUpdate):
      (WebCore::ScrollingCoordinator::handleWheelEvent):
      (WebCore::ScrollingCoordinator::updateMainFrameScrollPositionAndScrollLayerPosition):
      (WebCore::ScrollingCoordinator::attachToStateTree):
      (WebCore::ScrollingCoordinator::detachFromStateTree):
      (WebCore::ScrollingCoordinator::clearStateTree):
      (WebCore::ScrollingCoordinator::frameViewHorizontalScrollbarLayerDidChange):
      (WebCore::ScrollingCoordinator::frameViewVerticalScrollbarLayerDidChange):
      (WebCore::ScrollingCoordinator::scrollableAreaScrollLayerDidChange):
      (WebCore::ScrollingCoordinator::setLayerIsContainerForFixedPositionLayers):
      (WebCore::ScrollingCoordinator::setLayerIsFixedToContainerLayer):
      (WebCore::ScrollingCoordinator::recomputeWheelEventHandlerCountForFrameView):
      (WebCore::ScrollingCoordinator::setShouldUpdateScrollLayerPositionOnMainThread):
      * page/scrolling/ScrollingCoordinatorNone.cpp: Removed.
      * page/scrolling/chromium/ScrollingCoordinatorChromium.cpp:
      (WebCore::ScrollingCoordinatorChromium::ScrollingCoordinatorChromium):
      (WebCore::ScrollingCoordinatorChromium::~ScrollingCoordinatorChromium):
      (WebCore::ScrollingCoordinatorChromium::frameViewLayoutUpdated):
      (WebCore):
      (WebCore::ScrollingCoordinatorChromium::frameViewRootLayerDidChange):
      (WebCore::ScrollingCoordinatorChromium::frameViewHorizontalScrollbarLayerDidChange):
      (WebCore::ScrollingCoordinatorChromium::frameViewVerticalScrollbarLayerDidChange):
      (WebCore::ScrollingCoordinatorChromium::setScrollLayer):
      (WebCore::ScrollingCoordinatorChromium::setNonFastScrollableRegion):
      (WebCore::ScrollingCoordinatorChromium::setWheelEventHandlerCount):
      (WebCore::ScrollingCoordinatorChromium::setShouldUpdateScrollLayerPositionOnMainThread):
      (WebCore::ScrollingCoordinatorChromium::setLayerIsContainerForFixedPositionLayers):
      (WebCore::ScrollingCoordinatorChromium::setLayerIsFixedToContainerLayer):
      (WebCore::ScrollingCoordinatorChromium::scrollableAreaScrollLayerDidChange):
      (WebCore::ScrollingCoordinatorChromium::recomputeWheelEventHandlerCountForFrameView):
      * page/scrolling/chromium/ScrollingCoordinatorChromium.h: Added.
      (WebCore):
      (ScrollingCoordinatorChromium):
      (WebCore::ScrollingCoordinatorChromium::supportsFixedPositionLayers):
      * page/scrolling/mac/ScrollingCoordinatorMac.h: Added.
      (WebCore):
      (ScrollingCoordinatorMac):
      (ScrollParameters):
      * page/scrolling/mac/ScrollingCoordinatorMac.mm:
      (WebCore::ScrollingCoordinatorMac::ScrollingCoordinatorMac):
      (WebCore::ScrollingCoordinatorMac::~ScrollingCoordinatorMac):
      (WebCore::ScrollingCoordinatorMac::pageDestroyed):
      (WebCore):
      (WebCore::ScrollingCoordinatorMac::scrollingTree):
      (WebCore::ScrollingCoordinatorMac::commitTreeStateIfNeeded):
      (WebCore::ScrollingCoordinatorMac::frameViewLayoutUpdated):
      (WebCore::ScrollingCoordinatorMac::recomputeWheelEventHandlerCountForFrameView):
      (WebCore::ScrollingCoordinatorMac::frameViewRootLayerDidChange):
      (WebCore::ScrollingCoordinatorMac::frameViewHorizontalScrollbarLayerDidChange):
      (WebCore::ScrollingCoordinatorMac::frameViewVerticalScrollbarLayerDidChange):
      (WebCore::ScrollingCoordinatorMac::requestScrollPositionUpdate):
      (WebCore::ScrollingCoordinatorMac::handleWheelEvent):
      (WebCore::ScrollingCoordinatorMac::updateMainFrameScrollPositionAndScrollLayerPosition):
      (WebCore::ScrollingCoordinatorMac::attachToStateTree):
      (WebCore::ScrollingCoordinatorMac::detachFromStateTree):
      (WebCore::ScrollingCoordinatorMac::clearStateTree):
      (WebCore::ScrollingCoordinatorMac::stateNodeForID):
      (WebCore::ScrollingCoordinatorMac::ensureRootStateNodeForFrameView):
      (WebCore::ScrollingCoordinatorMac::setScrollLayerForNode):
      (WebCore::ScrollingCoordinatorMac::setNonFastScrollableRegionForNode):
      (WebCore::ScrollingCoordinatorMac::setScrollParametersForNode):
      (WebCore::ScrollingCoordinatorMac::setWheelEventHandlerCountForNode):
      (WebCore::ScrollingCoordinatorMac::setShouldUpdateScrollLayerPositionOnMainThread):
      (WebCore::ScrollingCoordinatorMac::updateMainFrameScrollLayerPosition):
      (WebCore::ScrollingCoordinatorMac::scheduleTreeStateCommit):
      (WebCore::ScrollingCoordinatorMac::scrollingStateTreeCommitterTimerFired):
      (WebCore::ScrollingCoordinatorMac::commitTreeState):
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@131137 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      64d3610a
    • commit-queue@webkit.org's avatar
      [Shadow DOM] Insertion points need resetStyleInheritance · b9d364a4
      commit-queue@webkit.org authored
      https://bugs.webkit.org/show_bug.cgi?id=93922
      
      Patch by Takashi Sakamoto <tasak@google.com> on 2012-10-11
      Reviewed by Dimitri Glazkov.
      
      Source/WebCore:
      
      Implemented resetStyleInheritance of insertion points.
      Its spec link is http://dvcs.w3.org/hg/webcomponents/raw-file/tip/spec/shadow/index.html#api-html-content-element-reset-style-inheritance
      
      Test: fast/dom/shadow/insertion-point-resetStyleInheritance.html
      
      * css/StyleResolver.cpp:
      (WebCore::isResetStyleInheritance):
      Added a new function to check whether there exists any insertion
      point which has reset-style-inhertiance flag set to be true.
      (WebCore::StyleResolver::initForStyleResolve):
      Modified to use the above function to check reset-style-inheritance.
      * html/shadow/HTMLContentElement.idl:
      * html/shadow/HTMLShadowElement.idl:
      Added a new attribute for reset-style-inheritance.
      * html/shadow/InsertionPoint.cpp:
      (WebCore::InsertionPoint::InsertionPoint):
      Initialized a new member variable for reset-style-inheritance.
      (WebCore::InsertionPoint::resetStyleInheritance):
      (WebCore::InsertionPoint::setResetStyleInheritance):
      Implemented setter/getter for reset-style-inheritance.
      * html/shadow/InsertionPoint.h:
      (InsertionPoint):
      Added a new member variable for reset-style-inheritance.
      
      LayoutTests:
      
      * fast/dom/shadow/insertion-point-resetStyleInheritance-expected.txt: Added.
      * fast/dom/shadow/insertion-point-resetStyleInheritance.html: Added.
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@131136 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      b9d364a4
    • andersca@apple.com's avatar
      Attempt to fix build broken by r131125. · 5ff7b5e5
      andersca@apple.com authored
      * page/PageSerializer.cpp:
      (WebCore::PageSerializer::addImageToResources):
      KURL::utf8String() is apparently a USE(GOOGLEURL) feature. Call url.string().utf8() instead.
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@131135 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      5ff7b5e5
    • bashi@chromium.org's avatar
      [Chromium] Use harfbuzz-ng by default on Linux · 72127d50
      bashi@chromium.org authored
      https://bugs.webkit.org/show_bug.cgi?id=97281
      
      Reviewed by Tony Chang.
      
      Source/WebCore:
      
      Switch old harfbuzz to harfbuzz-ng on chromium linux port.
      
      No new tests. Existing tests should cover this switch.
      Test expectations will be updated.
      
      * WebCore.gyp/WebCore.gyp:
      
      Source/WebKit/chromium:
      
      * features.gypi: Enable WTF_USE_HARFBUZZ_NG when use_x11 == 1.
      
      LayoutTests:
      
      * platform/chromium/TestExpectations: Added temporary expectations.
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@131134 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      72127d50
    • shinyak@chromium.org's avatar
      [Chromium] Unreviewed gardening, rebaselined. · 764eba7d
      shinyak@chromium.org authored
      * platform/chromium-linux/platform/chromium/compositing/tiny-layer-rotated-expected.png:
      * platform/chromium-mac/platform/chromium/compositing/tiny-layer-rotated-expected.png:
      * platform/chromium-win/platform/chromium/compositing/tiny-layer-rotated-expected.png:
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@131133 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      764eba7d
    • mhahnenberg@apple.com's avatar
      BlockAllocator should use regions as its VM allocation abstraction · 5c018e7e
      mhahnenberg@apple.com authored
      https://bugs.webkit.org/show_bug.cgi?id=99107
      
      Reviewed by Geoffrey Garen.
      
      Currently the BlockAllocator allocates a single block at a time directly from the OS. Our block
      allocations are on the large-ish side (64 KB) to amortize across many allocations the expense of
      mapping new virtual memory from the OS. These large blocks are then shared between the MarkedSpace
      and the CopiedSpace. This design makes it difficult to vary the size of the blocks in different
      parts of the Heap while still allowing us to amortize the VM allocation costs.
      
      We should redesign the BlockAllocator so that it has a layer of indirection between blocks that are
      used by the allocator/collector and our primary unit of VM allocation from the OS. In particular,
      the BlockAllocator should allocate Regions of virtual memory from the OS, which are then subdivided
      into one or more Blocks to be used in our custom allocators. This design has the following nice properties:
      
      1) We can remove the knowledge of PageAllocationAligned from HeapBlocks. Each HeapBlock will now
         only know what Region it belongs to. The Region maintains all the metadata for how to allocate
         and deallocate virtual memory from the OS.
      
      2) We can easily allocate in larger chunks than we need to satisfy a particular request for a Block.
         We can then continue to amortize our VM allocation costs while allowing for smaller block sizes,
         which should increase locality in the mutator when allocating, lazy sweeping, etc.
      
      3) By encapsulating the logic of where our memory comes from inside of the Region class, we can more
         easily transition over to allocating VM from a specific range of pre-reserved address space. This
         will be a necessary step along the way to 32-bit pointers.
      
      This particular patch will not change the size of MarkedBlocks or CopiedBlocks, nor will it change how
      much VM we allocate per failed Block request. It only sets up the data structures that we need to make
      these changes in future patches.
      
      Most of the changes in this patch relate to the addition of the Region class to be used by the
      BlockAllocator and the threading of changes made to BlockAllocator's interface through to the call sites.
      
      * heap/BlockAllocator.cpp: The BlockAllocator now has three lists that track the three disjoint sets of
      Regions that it cares about: empty regions, partially full regions, and completely full regions.
      Empty regions have no blocks currently in use and can be freed immediately if the freeing thread
      determines they should be. Partial regions have some blocks used, but aren't completely in use yet.
      These regions are preferred for recycling before empty regions to mitigate fragmentation within regions.
      Completely full regions are no longer able to be used for allocations. Regions move between these
      three lists as they are created and their constituent blocks are allocated and deallocated.
      (JSC::BlockAllocator::BlockAllocator):
      (JSC::BlockAllocator::~BlockAllocator):
      (JSC::BlockAllocator::releaseFreeRegions):
      (JSC::BlockAllocator::waitForRelativeTimeWhileHoldingLock):
      (JSC::BlockAllocator::waitForRelativeTime):
      (JSC::BlockAllocator::blockFreeingThreadMain):
      * heap/BlockAllocator.h:
      (JSC):
      (DeadBlock):
      (JSC::DeadBlock::DeadBlock):
      (Region):
      (JSC::Region::blockSize):
      (JSC::Region::isFull):
      (JSC::Region::isEmpty):
      (JSC::Region::create): This function is responsible for doing the actual VM allocation. This should be the
      only function in the entire JSC object runtime that calls out the OS for virtual memory allocation.
      (JSC::Region::Region):
      (JSC::Region::~Region):
      (JSC::Region::allocate):
      (JSC::Region::deallocate):
      (BlockAllocator):
      (JSC::BlockAllocator::tryAllocateFromRegion): Helper function that encapsulates checking a particular list
      of regions for a free block.
      (JSC::BlockAllocator::allocate):
      (JSC::BlockAllocator::allocateCustomSize): This function is responsible for allocating one-off custom size
      regions for use in oversize allocations in both the MarkedSpace and the CopiedSpace. These regions are not
      tracked by the BlockAllocator. The only pointer to them is in the HeapBlock that is returned. These regions
      contain exactly one block.
      (JSC::BlockAllocator::deallocate):
      (JSC::BlockAllocator::deallocateCustomSize): This function is responsible for deallocating one-off custom size
      regions. The regions are deallocated back to the OS eagerly.
      * heap/CopiedBlock.h: Re-worked CopiedBlocks to use Regions instead of PageAllocationAligned.
      (CopiedBlock):
      (JSC::CopiedBlock::createNoZeroFill):
      (JSC::CopiedBlock::create):
      (JSC::CopiedBlock::CopiedBlock):
      (JSC::CopiedBlock::payloadEnd):
      (JSC::CopiedBlock::capacity):
      * heap/CopiedSpace.cpp:
      (JSC::CopiedSpace::~CopiedSpace):
      (JSC::CopiedSpace::tryAllocateOversize):
      (JSC::CopiedSpace::tryReallocateOversize):
      (JSC::CopiedSpace::doneCopying):
      * heap/CopiedSpaceInlineMethods.h:
      (JSC::CopiedSpace::allocateBlockForCopyingPhase):
      (JSC::CopiedSpace::allocateBlock):
      * heap/HeapBlock.h:
      (JSC::HeapBlock::destroy):
      (JSC::HeapBlock::HeapBlock):
      (JSC::HeapBlock::region):
      (HeapBlock):
      * heap/MarkedAllocator.cpp:
      (JSC::MarkedAllocator::allocateBlock):
      * heap/MarkedBlock.cpp:
      (JSC::MarkedBlock::create):
      (JSC::MarkedBlock::MarkedBlock):
      * heap/MarkedBlock.h:
      (JSC::MarkedBlock::capacity):
      * heap/MarkedSpace.cpp:
      (JSC::MarkedSpace::freeBlock):
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@131132 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      5c018e7e
    • nduca@chromium.org's avatar
      Expose high-resolution on requestAnimationFrame callback · ca5e5e4e
      nduca@chromium.org authored
      https://bugs.webkit.org/show_bug.cgi?id=66683
      
      This changes requestAnimationFrame's animationStartTime argument
      to be a high resolution DOM timestamp, per disucssion here:
      http://lists.w3.org/Archives/Public/public-web-perf/2012Apr/0004.html
      
      Reviewed by James Robinson.
      
      Source/WebCore:
      
      Covered by existing requestAnimationFrame tests.
      
      * dom/Document.cpp:
      (WebCore::Document::serviceScriptedAnimations):
      * dom/Document.h:
      (Document):
      * dom/ScriptedAnimationController.cpp:
      (WebCore::ScriptedAnimationController::ScriptedAnimationController):
      (WebCore::ScriptedAnimationController::serviceScriptedAnimations):
      (WebCore):
      (WebCore::ScriptedAnimationController::windowScreenDidChange):
      (WebCore::ScriptedAnimationController::scheduleAnimation):
      (WebCore::ScriptedAnimationController::animationTimerFired):
      (WebCore::ScriptedAnimationController::displayRefreshFired):
      * dom/ScriptedAnimationController.h:
      (ScriptedAnimationController):
      * page/FrameView.cpp:
      (WebCore::FrameView::serviceScriptedAnimations):
      * page/FrameView.h:
      (FrameView):
      * platform/graphics/DisplayRefreshMonitor.cpp:
      (WebCore::DisplayRefreshMonitor::DisplayRefreshMonitor):
      (WebCore::DisplayRefreshMonitor::notifyClients):
      * platform/graphics/DisplayRefreshMonitor.h:
      (DisplayRefreshMonitor):
      * platform/graphics/blackberry/DisplayRefreshMonitorBlackBerry.cpp:
      (WebCore::DisplayRefreshMonitor::displayLinkFired):
      * platform/graphics/mac/DisplayRefreshMonitorMac.cpp:
      (WebCore):
      (WebCore::DisplayRefreshMonitor::requestRefreshCallback):
      (WebCore::DisplayRefreshMonitor::displayLinkFired):
      
      Source/WebKit/chromium:
      
      * src/PageWidgetDelegate.cpp:
      (WebKit::PageWidgetDelegate::animate):
      * src/WebViewImpl.cpp:
      (WebKit::WebViewImpl::updateAnimations):
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@131131 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      ca5e5e4e
    • shinyak@chromium.org's avatar
      [Chromium] Unreviewed gardening, rebaselined. · 38b87903
      shinyak@chromium.org authored
      * platform/chromium-mac-snowleopard/svg/custom/foreign-object-skew-expected.png:
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@131130 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      38b87903
    • weinig@apple.com's avatar
      Add a helper function for initializing WebKit2 DOM objects · e87fa936
      weinig@apple.com authored
      https://bugs.webkit.org/show_bug.cgi?id=99128
      
      Reviewed by Anders Carlsson.
      
      * WebProcess/InjectedBundle/API/mac/WKDOMInternals.mm:
      (WebKit::WKDOMNodeClass):
      (WebKit::initWithImpl):
      (WebKit::toWKDOMNode):
      (WebKit::toWKDOMRange):
      (WebKit::toWKDOMType):
      Add toWKDOMType which implements the core object initialization and caching.
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@131129 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      e87fa936
    • commit-queue@webkit.org's avatar
      Unreviewed, rolling out r131100. · f09dbb31
      commit-queue@webkit.org authored
      http://trac.webkit.org/changeset/131100
      https://bugs.webkit.org/show_bug.cgi?id=99127
      
      Caused an ASSERT (Requested by abarth|gardening on #webkit).
      
      Patch by Sheriff Bot <webkit.review.bot@gmail.com> on 2012-10-11
      
      Source/WebCore:
      
      * platform/graphics/filters/CustomFilterValidatedProgram.cpp:
      (WebCore::CustomFilterValidatedProgram::compositeFunctionString):
      
      LayoutTests:
      
      * css3/filters/custom/custom-filter-composite-operators-expected.png: Removed.
      * css3/filters/custom/custom-filter-composite-operators-expected.txt: Removed.
      * css3/filters/custom/custom-filter-composite-operators.html: Removed.
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@131128 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      f09dbb31
    • abarth@webkit.org's avatar
      Add baselines for the rest of the platforms after · c3685ab3
      abarth@webkit.org authored
      http://trac.webkit.org/changeset/131111
      
      * platform/chromium-linux/fast/sub-pixel/sub-pixel-iframe-copy-on-scroll-expected.txt: Removed.
      * platform/chromium-mac-snowleopard/fast/sub-pixel/sub-pixel-iframe-copy-on-scroll-expected.png: Added.
      * platform/chromium-mac/fast/sub-pixel/sub-pixel-iframe-copy-on-scroll-expected.png: Added.
      * platform/chromium-mac/fast/sub-pixel/sub-pixel-iframe-copy-on-scroll-expected.txt: Added.
      * platform/chromium-win/fast/sub-pixel/sub-pixel-iframe-copy-on-scroll-expected.png: Added.
      * platform/chromium-win/fast/sub-pixel/sub-pixel-iframe-copy-on-scroll-expected.txt: Added.
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@131127 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      c3685ab3
    • bashi@chromium.org's avatar
      [Chromium] Improve vertical text rendering of HarfBuzzShaper (Re-land) · 56d24ad2
      bashi@chromium.org authored
      https://bugs.webkit.org/show_bug.cgi?id=98979
      
      Reviewed by Tony Chang.
      
      - Specify 'vert' and 'vrt2' features when we render vertical text.
      - Set appropriate script so that harfbuzz-ng can use the features.
      
      No new tests. fast/text/international/text-spliced-font.html should cover this change.
      This change will affect after switching to harfbuzz-ng.
      
      * platform/graphics/harfbuzz/ng/HarfBuzzNGFace.cpp:
      (WebCore::HarfBuzzNGFace::HarfBuzzNGFace):
      (WebCore::findScriptForVerticalGlyphSubstitution): Added.
      (WebCore):
      (WebCore::HarfBuzzNGFace::setScriptForVerticalGlyphSubstitution): Added.
      * platform/graphics/harfbuzz/ng/HarfBuzzNGFace.h:
      (HarfBuzzNGFace): Added m_scriptForVerticalText.
      * platform/graphics/harfbuzz/ng/HarfBuzzShaper.cpp:
      (WebCore::HarfBuzzShaper::setFontFeatures):
      Set 'vert' and 'vrt2' features when orientation() == Vertical.
      (WebCore::HarfBuzzShaper::shapeHarfBuzzRuns):
      Call setScriptForVerticalGlyphSubstitution() when orientation() == Vertical.
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@131126 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      56d24ad2
    • jcivelli@chromium.org's avatar
      Source/WebCore: Fix for a crasher when generating MHTML for a page containing SVG images. · f393d765
      jcivelli@chromium.org authored
      https://bugs.webkit.org/show_bug.cgi?id=99105
      
      Reviewed by Adam Barth.
      
      * page/PageSerializer.cpp:
      (WebCore::PageSerializer::serializeCSSStyleSheet):
      (WebCore::PageSerializer::addImageToResources):
      
      Source/WebKit/chromium: Test for a fix for a crasher when generating MHTML for a page containing SVG images.
      https://bugs.webkit.org/show_bug.cgi?id=99105
      
      Reviewed by Adam Barth.
      
      * page/PageSerializer.cpp:
      (WebCore::PageSerializer::serializeCSSStyleSheet):
      (WebCore::PageSerializer::addImageToResources):
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@131125 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      f393d765
    • commit-queue@webkit.org's avatar
      Unreviewed, rolling out r131107. · 5a083743
      commit-queue@webkit.org authored
      http://trac.webkit.org/changeset/131107
      https://bugs.webkit.org/show_bug.cgi?id=99126
      
      Causes an ASSERT (Requested by abarth|gardening on #webkit).
      
      Patch by Sheriff Bot <webkit.review.bot@gmail.com> on 2012-10-11
      
      Source/WebCore:
      
      * accessibility/AccessibilityNodeObject.cpp:
      (WebCore::AccessibilityNodeObject::labelForElement):
      * dom/DocumentOrderedMap.cpp:
      * dom/DocumentOrderedMap.h:
      (DocumentOrderedMap):
      * dom/Element.cpp:
      (WebCore::Element::insertedInto):
      (WebCore::Element::removedFrom):
      (WebCore):
      (WebCore::Element::willModifyAttribute):
      * dom/Element.h:
      (Element):
      * dom/TreeScope.cpp:
      (WebCore::TreeScope::TreeScope):
      * dom/TreeScope.h:
      (WebCore):
      (TreeScope):
      
      Tools:
      
      * DumpRenderTree/chromium/TestRunner/AccessibilityControllerChromium.cpp:
      (AccessibilityController::getAccessibleElementById):
      * DumpRenderTree/chromium/TestRunner/AccessibilityUIElementChromium.cpp:
      (AccessibilityUIElement::titleUIElementCallback):
      
      LayoutTests:
      
      * accessibility/secure-textfield-title-ui.html:
      * accessibility/title-ui-element-correctness-expected.txt: Removed.
      * accessibility/title-ui-element-correctness.html: Removed.
      * perf/accessibility-title-ui-element-expected.txt: Removed.
      * perf/accessibility-title-ui-element.html: Removed.
      * platform/chromium/TestExpectations:
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@131124 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      5a083743
    • commit-queue@webkit.org's avatar
      [EFL][WK2] Add support for Inspector · c47fb58a
      commit-queue@webkit.org authored
      https://bugs.webkit.org/show_bug.cgi?id=98639
      
      Patch by Seokju Kwon <seokju.kwon@samsung.com> on 2012-10-11
      Reviewed by Kenneth Rohde Christiansen.
      
      Source/WebKit2:
      
      Support inspector on WebKit2/Efl and add APIs to show and close the inspector.
      
      * UIProcess/API/efl/ewk_view.cpp:
      (ewk_view_inspector_show):
      (ewk_view_inspector_close):
      * UIProcess/API/efl/ewk_view.h:
      * UIProcess/API/efl/tests/test_ewk2_view.cpp:
      (TEST_F):
      * UIProcess/WebInspectorProxy.h:
      (WebInspectorProxy):
      * UIProcess/efl/WebInspectorProxyEfl.cpp:
      (WebKit::resizeInspectorWindow):
      (WebKit):
      (WebKit::destroyInspectorWindow):
      (WebKit::closeInspectorWindow):
      (WebKit::WebInspectorProxy::createInspectorWindow):
      (WebKit::WebInspectorProxy::platformCreateInspectorPage):
      (WebKit::WebInspectorProxy::platformOpen):
      
      Tools:
      
      Enable developer extensions when browser is created.
      And Inspector can be opened by pressing Ctrl+i on browser.
      
      * MiniBrowser/efl/main.c:
      (on_key_down):
      (window_create):
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@131123 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      c47fb58a
    • commit-queue@webkit.org's avatar
      [CMAKE] Add HIDDEN_PAGE_DOM_TIMER_THROTTLING feature · e6a0fe8b
      commit-queue@webkit.org authored
      https://bugs.webkit.org/show_bug.cgi?id=99030
      
      Patch by Jinwoo Song <jinwoo7.song@samsung.com> on 2012-10-11
      Reviewed by Laszlo Gombos.
      
      Add HIDDEN_PAGE_DOM_TIMER_THROTTLING feature which throttles DOM timers
      on hidden pages to WebKitFeatures.cmake and cmakeconfig.h.cmake.
      
      * Source/cmake/WebKitFeatures.cmake:
      * Source/cmakeconfig.h.cmake:
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@131122 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      e6a0fe8b
    • andersca@apple.com's avatar
      Stop using deprecatedSend and deprecatedSendSync for sending messages to the UI process · 2236a7db
      andersca@apple.com authored
      https://bugs.webkit.org/show_bug.cgi?id=99125
      
      Reviewed by Andreas Kling.
      
      Instead of using deprecatedSend, just encode the data using a separate ArgumentEncoder and pass it along as a DataReference.
      
      * UIProcess/WebContext.h:
      * UIProcess/WebProcessProxy.cpp:
      (WebKit::WebProcessProxy::postMessage):
      (WebKit):
      (WebKit::WebProcessProxy::postSynchronousMessage):
      * UIProcess/WebProcessProxy.h:
      (WebProcessProxy):
      * UIProcess/WebProcessProxy.messages.in:
      * WebProcess/InjectedBundle/InjectedBundle.cpp:
      (WebKit::InjectedBundle::postMessage):
      (WebKit::InjectedBundle::postSynchronousMessage):
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@131121 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      2236a7db
    • timothy_horton@apple.com's avatar
      LocalCurrentGraphicsContext will never restore the current context to null · 2b0c10a8
      timothy_horton@apple.com authored
      https://bugs.webkit.org/show_bug.cgi?id=99122
      
      Reviewed by Simon Fraser.
      
      LocalCurrentGraphicsContext is meant to cause temporary changes to
      NSGraphicsContext's currentContext. However, if it is entered when
      currentContext is null, it will not restore to null, as a null
      m_savedNSGraphicsContext was being used to indicate that the current and
      passed-in graphics contexts were equal (and thus no save/restore was required).
      
      Add a separate flag for whether or not we need to restore the context.
      
      Also flip the order of calls to restore graphics context state so that
      exiting LocalCurrentGraphicsContext does things in exactly the opposite
      of entry.
      
      * platform/mac/LocalCurrentGraphicsContext.h:
      (LocalCurrentGraphicsContext):
      * platform/mac/LocalCurrentGraphicsContext.mm:
      (WebCore::LocalCurrentGraphicsContext::LocalCurrentGraphicsContext):
      (WebCore::LocalCurrentGraphicsContext::~LocalCurrentGraphicsContext):
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@131120 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      2b0c10a8
    • gyuyoung.kim@samsung.com's avatar
      [EFL] Remove "web" word in web inspector · 5ce5c1d9
      gyuyoung.kim@samsung.com authored
      https://bugs.webkit.org/show_bug.cgi?id=98724
      
      Reviewed by Laszlo Gombos.
      
      *web* word is redundant in web inspector. Beside r130494 and r130479 removed *web* from EFL WK2.
      
      Source/WebKit/efl:
      
      * WebCoreSupport/InspectorClientEfl.cpp:
      (WebCore::notifyInspectorDestroy):
      (WebCore::InspectorClientEfl::openInspectorFrontend):
      (WebCore::InspectorFrontendClientEfl::InspectorFrontendClientEfl):
      (WebCore::InspectorFrontendClientEfl::~InspectorFrontendClientEfl):
      * ewk/ewk_view.cpp:
      (ewk_view_inspector_show):
      (ewk_view_inspector_close):
      (ewk_view_inspector_view_get):
      (ewk_view_inspector_view_set):
      * ewk/ewk_view.h:
      
      Tools:
      
      * DumpRenderTree/efl/DumpRenderTreeChrome.cpp:
      (DumpRenderTreeChrome::createInspectorView):
      (DumpRenderTreeChrome::removeInspectorView):
      (DumpRenderTreeChrome::waitInspectorLoadFinished):
      (DumpRenderTreeChrome::onInspectorViewCreate):
      (DumpRenderTreeChrome::onInspectorViewClose):
      (DumpRenderTreeChrome::onInspectorFrameLoadFinished):
      * DumpRenderTree/efl/DumpRenderTreeChrome.h:
      (DumpRenderTreeChrome):
      * DumpRenderTree/efl/TestRunnerEfl.cpp:
      (TestRunner::showWebInspector):
      (TestRunner::closeWebInspector):
      * EWebLauncher/main.c:
      (on_inspector_ecore_evas_resize):
      (on_key_down):
      (on_inspector_view_create):
      (on_inspector_view_close):
      (on_inspector_view_destroyed):
      (browserCreate):
      (webInspectorCreate):
      (closeWindow):
      (main_signal_exit):
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@131119 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      5ce5c1d9
    • commit-queue@webkit.org's avatar
      Unreviewed, rolling out r131109. · 8ba93373
      commit-queue@webkit.org authored
      http://trac.webkit.org/changeset/131109
      https://bugs.webkit.org/show_bug.cgi?id=99124
      
      Does not compile on chromium-mac (Requested by
      abarth|gardening on #webkit).
      
      Patch by Sheriff Bot <webkit.review.bot@gmail.com> on 2012-10-11
      
      * platform/graphics/harfbuzz/ng/HarfBuzzNGFace.cpp:
      (WebCore::HarfBuzzNGFace::HarfBuzzNGFace):
      * platform/graphics/harfbuzz/ng/HarfBuzzNGFace.h:
      (HarfBuzzNGFace):
      * platform/graphics/harfbuzz/ng/HarfBuzzShaper.cpp:
      (WebCore::HarfBuzzShaper::setFontFeatures):
      (WebCore::HarfBuzzShaper::shapeHarfBuzzRuns):
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@131118 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      8ba93373
    • andersca@apple.com's avatar
      Stop using deprecatedSend for WebContext::postMessageToInjectedBundle · 0214d835
      andersca@apple.com authored
      https://bugs.webkit.org/show_bug.cgi?id=99123
      
      Reviewed by Andreas Kling.
      
      Instead of using deprecatedSend, just encode the data using a separate ArgumentEncoder and pass it along as a DataReference.
      
      * Platform/CoreIPC/MessageID.h:
      Remove MessageClassInjectedBundle.
      
      * Shared/CoreIPCSupport/InjectedBundleMessageKinds.h: Removed.
      * UIProcess/WebContext.cpp:
      (WebKit::WebContext::createNewWebProcess):
      Stop using deprecatedSend.
      
      (WebKit::WebContext::postMessageToInjectedBundle):
      Stop using deprecatedSend. Remove now invalid FIXMEs.
      
      * UIProcess/WebPageProxy.cpp:
      Remove include.
      
      * WebKit2.xcodeproj/project.pbxproj:
      Remove InjectedBundleMessageKinds.h.
      
      * WebProcess/InjectedBundle/InjectedBundle.cpp:
      * WebProcess/InjectedBundle/InjectedBundle.h:
      The injected bundle is no longer in charge of receiving IPC messages.
      
      * WebProcess/WebProcess.cpp:
      (WebKit::WebProcess::didReceiveMessage):
      Stop passing messages to the injected bundle.
      
      (WebKit::WebProcess::postInjectedBundleMessage):
      Decode the message and pass it to the injected bundle.
      
      * WebProcess/WebProcess.messages.in:
      Add PostInjectedBundleMessage.
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@131117 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      0214d835
    • jpfau@apple.com's avatar
    • lforschler@apple.com's avatar
      Versioning. · e65b1d6e
      lforschler@apple.com authored
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@131115 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      e65b1d6e
    • andersca@apple.com's avatar
      Stop using deprecatedSend for WebPageProxy::postMessageToInjectedBundle · 42da66d2
      andersca@apple.com authored
      https://bugs.webkit.org/show_bug.cgi?id=99120
      
      Reviewed by Andreas Kling.
      
      Instead of using deprecatedSend, just encode the data using a separate ArgumentEncoder and pass it along as a DataReference.
      
      * Shared/CoreIPCSupport/InjectedBundleMessageKinds.h:
      Remove PostMessageToPage.
      
      * UIProcess/WebPageProxy.cpp:
      (WebKit::WebPageProxy::postMessageToInjectedBundle):
      Stop using deprecatedSend.
      
      * WebProcess/InjectedBundle/InjectedBundle.cpp:
      (WebKit::InjectedBundle::didReceiveMessage):
      Remove code to handle PostMessageToPage.
      
      * WebProcess/WebPage/WebPage.cpp:
      (WebKit::WebPage::postInjectedBundleMessage):
      Decode the APIObject and send it along to the injected bundle.
      
      * WebProcess/WebPage/WebPage.messages.in:
      Add PostInjectedBundleMessage message.
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@131113 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      42da66d2
  2. 11 Oct, 2012 9 commits
    • bdakin@apple.com's avatar
      https://bugs.webkit.org/show_bug.cgi?id=99111 · 15617a6f
      bdakin@apple.com authored
      ScrollingStateNode should keep its Vector of children in an OwnPtr
      
      Reviewed by Ada Chan.
      
      Vector<OwnPtr<ScrollingStateNode> >* m_children; is now:
       OwnPtr<Vector<OwnPtr<ScrollingStateNode> > > m_children;
      * page/scrolling/ScrollingStateNode.cpp:
      (WebCore::ScrollingStateNode::ScrollingStateNode):
      (WebCore::ScrollingStateNode::~ScrollingStateNode):
      (WebCore::ScrollingStateNode::appendChild):
      * page/scrolling/ScrollingStateNode.h:
      (ScrollingStateNode):
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@131112 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      15617a6f
    • leviw@chromium.org's avatar
      [Sub pixel layout] Fast-path iframe scrolling can picks up an extra pixel · 63f73871
      leviw@chromium.org authored
      https://bugs.webkit.org/show_bug.cgi?id=98571
      
      Reviewed by Emil A Eklund.
      
      Source/WebCore:
      
      Refactoring all coordinate-switching functionality to use a single "mode" flag
      as opposed to having a bunch of boolean values. This enables the same set of
      options across the board, and a consistent interface. This was previously
      done for mapLocalToContainer.
      
      The imptetus for this for this stems from the one logical change in this patch
      which only effects sub-pixel layout. FrameView::convertToRenderer and
      convertFromRenderer return IntPoint coordinates, and need to also snap transform
      offsets to determine proper rects for scrolling.
      
      Unlabeled functions below are simply being updated to these new interfaces.
      
      Test: fast/sub-pixel/sub-pixel-iframe-copy-on-scroll.html
      
      * WebCore.exp.in:
      * dom/ContainerNode.cpp:
      (WebCore::ContainerNode::getUpperLeftCorner):
      (WebCore::ContainerNode::getLowerRightCorner):
      * dom/Element.cpp:
      (WebCore::Element::boundsInRootViewSpace):
      * dom/MouseRelatedEvent.cpp:
      (WebCore::MouseRelatedEvent::computeRelativePosition):
      * dom/Node.cpp:
      (WebCore::Node::convertToPage):
      (WebCore::Node::convertFromPage):
      * html/HTMLSelectElement.cpp:
      (WebCore::HTMLSelectElement::listBoxDefaultEventHandler):
      * html/shadow/SliderThumbElement.cpp:
      (WebCore::SliderThumbElement::setPositionFromPoint):
      * html/shadow/SpinButtonElement.cpp:
      (WebCore::SpinButtonElement::defaultEventHandler):
      * page/FrameView.cpp:
      (WebCore::FrameView::convertToRenderer): Now pixel-snaps offsets before passing
      them to TransformState, which transforms the coordinates.
      (WebCore::FrameView::convertFromRenderer): Ditto.
      * rendering/LayoutState.cpp:
      (WebCore::LayoutState::LayoutState):
      * rendering/RenderBlock.cpp:
      (WebCore::RenderBlock::absoluteQuads):
      * rendering/RenderBox.cpp:
      (WebCore::RenderBox::absoluteQuads):
      (WebCore::RenderBox::mapLocalToContainer):
      (WebCore::RenderBox::mapAbsoluteToLocalPoint):
      * rendering/RenderBox.h:
      (RenderBox):
      * rendering/RenderBoxModelObject.cpp:
      (WebCore::RenderBoxModelObject::mapAbsoluteToLocalPoint):
      * rendering/RenderBoxModelObject.h:
      (RenderBoxModelObject):
      * rendering/RenderEmbeddedObject.cpp:
      (WebCore::RenderEmbeddedObject::isInUnavailablePluginIndicator):
      * rendering/RenderFrameSet.cpp:
      (WebCore::RenderFrameSet::userResize):
      * rendering/RenderGeometryMap.cpp:
      (WebCore::RenderGeometryMap::absolutePoint):
      * rendering/RenderInline.cpp:
      (WebCore::RenderInline::mapLocalToContainer):
      * rendering/RenderInline.h:
      (RenderInline):
      * rendering/RenderLayer.cpp:
      (WebCore::RenderLayer::absoluteToContents):
      (WebCore::RenderLayer::calculateClipRects):
      * rendering/RenderMediaControls.cpp:
      (WebCore::RenderMediaControls::volumeSliderOffsetFromMuteButton):
      * rendering/RenderMenuList.cpp:
      (WebCore::RenderMenuList::showPopup):
      * rendering/RenderObject.cpp:
      (WebCore::RenderObject::localToAbsolute):
      (WebCore::RenderObject::absoluteToLocal):
      (WebCore::RenderObject::mapLocalToContainer):
      (WebCore::RenderObject::mapAbsoluteToLocalPoint):
      (WebCore::RenderObject::localToContainerQuad):
      (WebCore::RenderObject::localToContainerPoint):
      * rendering/RenderObject.h:
      (RenderObject): MapLocalToContainerFlags is now MapCoordinatesFlags since it's
      now used for other conversion methods.
      (WebCore::RenderObject::localToAbsoluteQuad):
      * rendering/RenderTheme.cpp:
      (WebCore::RenderTheme::volumeSliderOffsetFromMuteButton):
      * rendering/RenderView.cpp:
      (WebCore::RenderView::mapLocalToContainer):
      (WebCore::RenderView::mapAbsoluteToLocalPoint):
      * rendering/RenderView.h:
      (RenderView):
      * rendering/svg/RenderSVGForeignObject.cpp:
      (WebCore::RenderSVGForeignObject::mapLocalToContainer):
      * rendering/svg/RenderSVGForeignObject.h:
      (RenderSVGForeignObject):
      * rendering/svg/RenderSVGInline.cpp:
      (WebCore::RenderSVGInline::mapLocalToContainer):
      * rendering/svg/RenderSVGInline.h:
      (RenderSVGInline):
      * rendering/svg/RenderSVGModelObject.cpp:
      (WebCore::RenderSVGModelObject::mapLocalToContainer):
      * rendering/svg/RenderSVGModelObject.h:
      (RenderSVGModelObject):
      * rendering/svg/RenderSVGRoot.cpp:
      (WebCore::RenderSVGRoot::mapLocalToContainer):
      * rendering/svg/RenderSVGRoot.h:
      (RenderSVGRoot):
      * rendering/svg/RenderSVGText.cpp:
      (WebCore::RenderSVGText::mapLocalToContainer):
      * rendering/svg/RenderSVGText.h:
      (RenderSVGText):
      * rendering/svg/SVGRenderSupport.cpp:
      (WebCore::SVGRenderSupport::mapLocalToContainer):
      * svg/SVGSVGElement.cpp:
      (WebCore::SVGSVGElement::localCoordinateSpaceTransform):
      
      LayoutTests:
      
      Tests scrolling of sub-pixel layers on sub-pixel platforms (Chromium).
      
      * fast/sub-pixel/sub-pixel-iframe-copy-on-scroll.html: Added.
      * platform/chromium-linux/fast/sub-pixel/sub-pixel-iframe-copy-on-scroll-expected.png: Added.
      * platform/chromium-linux/fast/sub-pixel/sub-pixel-iframe-copy-on-scroll-expected.txt: Added.
      * platform/chromium-linux/fast/repaint/repaint-across-writing-mode-boundary-expected.png:
      The repaint rect shrinks safely by one pixel.
      * platform/chromium/TestExpectations:
      * platform/mac-lion/TestExpectations:
      * platform/mac-snowleopard/TestExpectations:
      * platform/mac-wk2/TestExpectations:
      * platform/mac/TestExpectations:
      * platform/qt-4.8/TestExpectations:
      * platform/qt/TestExpectations:
      * platform/win-wk2/TestExpectations:
      * platform/win-xp/TestExpectations:
      * platform/win/TestExpectations:
      * platform/wincairo/TestExpectations:
      * platform/wk2/TestExpectations:
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@131111 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      63f73871
    • abarth@webkit.org's avatar
      Incorrect/Illegal static cast in FrameView.cpp · 01ad32d9
      abarth@webkit.org authored
      https://bugs.webkit.org/show_bug.cgi?id=98943
      
      Reviewed by Eric Seidel.
      
      HTMLFrameElementBase is the common base class for <frame> and <iframe>.
      
      * page/FrameView.cpp:
      (WebCore::FrameView::init):
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@131110 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      01ad32d9
    • bashi@chromium.org's avatar
      [Chromium] Improve vertical text rendering of HarfBuzzShaper · f189830c
      bashi@chromium.org authored
      https://bugs.webkit.org/show_bug.cgi?id=98979
      
      Reviewed by Tony Chang.
      
      - Specify 'vert' and 'vrt2' features when we render vertical text.
      - Set appropriate script so that harfbuzz-ng can use the features.
      
      No new tests. fast/text/international/text-spliced-font.html should cover this change.
      This change will affect after switching to harfbuzz-ng.
      
      * platform/graphics/harfbuzz/ng/HarfBuzzNGFace.cpp:
      (WebCore::HarfBuzzNGFace::HarfBuzzNGFace):
      (WebCore::findScriptForVerticalGlyphSubstitution): Added.
      (WebCore):
      (WebCore::HarfBuzzNGFace::setScriptForVerticalGlyphSubstitution): Added.
      * platform/graphics/harfbuzz/ng/HarfBuzzNGFace.h:
      (HarfBuzzNGFace): Added m_scriptForVerticalText.
      * platform/graphics/harfbuzz/ng/HarfBuzzShaper.cpp:
      (WebCore::HarfBuzzShaper::setFontFeatures):
      Set 'vert' and 'vrt2' features when orientation() == Vertical.
      (WebCore::HarfBuzzShaper::shapeHarfBuzzRuns):
      Call setScriptForVerticalGlyphSubstitution() when orientation() == Vertical.
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@131109 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      f189830c
    • timothy@apple.com's avatar
      Unreviewed watch list addition for Inspector.json. · b57f4178
      timothy@apple.com authored
      * Scripts/webkitpy/common/config/watchlist:
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@131108 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      b57f4178
    • dmazzoni@google.com's avatar
      AX: labelForElement is slow when there are a lot of DOM elements · 881eb996
      dmazzoni@google.com authored
      https://bugs.webkit.org/show_bug.cgi?id=97825
      
      Reviewed by Ryosuke Niwa.
      
      Source/WebCore:
      
      Adds a DocumentOrderedMap to TreeScope that allows accessibility to
      quickly map from an id to the label for that id. This speeds up
      AccessibilityNode::labelForElement, which was a bottleneck in Chromium
      when accessibility was on.
      
      Tests: accessibility/title-ui-element-correctness.html
             perf/accessibility-title-ui-element.html
      
      * accessibility/AccessibilityNodeObject.cpp:
      (WebCore::AccessibilityNodeObject::labelForElement):
      * dom/DocumentOrderedMap.cpp:
      (WebCore::keyMatchesLabelForAttribute):
      (WebCore):
      (WebCore::DocumentOrderedMap::getElementByLabelForAttribute):
      * dom/DocumentOrderedMap.h:
      (DocumentOrderedMap):
      * dom/Element.cpp:
      (WebCore::Element::insertedInto):
      (WebCore::Element::removedFrom):
      (WebCore::Element::updateLabel):
      (WebCore):
      (WebCore::Element::willModifyAttribute):
      * dom/Element.h:
      (Element):
      * dom/TreeScope.cpp:
      (WebCore::TreeScope::TreeScope):
      (WebCore::TreeScope::addLabel):
      (WebCore):
      (WebCore::TreeScope::removeLabel):
      (WebCore::TreeScope::labelElementForId):
      * dom/TreeScope.h:
      (WebCore):
      (TreeScope):
      (WebCore::TreeScope::shouldCacheLabelsByForAttribute):
      
      Tools:
      
      Implement titleUIElement in the chromium port of DRT, and
      fix getAccessibleElementById so that it ensures the backing store
      is up-to-date.
      
      * DumpRenderTree/chromium/TestRunner/AccessibilityControllerChromium.cpp:
      (AccessibilityController::getAccessibleElementById):
      * DumpRenderTree/chromium/TestRunner/AccessibilityUIElementChromium.cpp:
      (AccessibilityUIElement::titleUIElementCallback):
      
      LayoutTests:
      
      Adds two new tests for titleUIElement that run on both Mac and
      Chromium. One tests correctness, the other tests speed.
      
      Fixes one test so that it passes on Chromium.
      Enables other tests that now pass on Chromium.
      
      * accessibility/secure-textfield-title-ui.html:
      * accessibility/title-ui-element-correctness-expected.txt: Added.
      * accessibility/title-ui-element-correctness.html: Added.
      * perf/accessibility-title-ui-element-expected.txt: Added.
      * perf/accessibility-title-ui-element.html: Added.
      * platform/chromium/TestExpectations:
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@131107 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      881eb996
    • simonjam@chromium.org's avatar
      unprefix window.performance.webkitNow() · 29630d3c
      simonjam@chromium.org authored
      https://bugs.webkit.org/show_bug.cgi?id=88278
      
      Reviewed by Tony Gentilcore.
      
      PerformanceTests:
      
      * resources/runner.js: Bind to proper object to avoid invalid invocation errors.
      
      Source/WebCore:
      
      Test: fast/dom/Window/window-properties-performance.html
            fast/performance/performance-now-timestamps.html
      
      * page/Performance.cpp:
      (WebCore::Performance::now):
      * page/Performance.h:
      (Performance):
      * page/Performance.idl:
      
      LayoutTests:
      
      * fast/dom/Window/window-properties-performance-expected.txt:
      * fast/performance/performance-now-timestamps-expected.txt:
      * fast/performance/script-tests/performance-now-timestamps.js:
      * platform/chromium/TestExpectations: Remove skipped expectation.
      * platform/efl/TestExpectations:
      * platform/efl/fast/dom/Window/window-properties-performance-expected.txt:
      * platform/gtk/TestExpectations:
      * platform/qt/TestExpectations:
      * platform/qt/fast/dom/Window/window-properties-performance-expected.txt:
      * resources/magnitude-perf.js:
      (Magnitude._runIteration):
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@131106 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      29630d3c
    • roger_fong@apple.com's avatar
      [WebGL] [Mac] only the mapped symbol for the first element of a uniform/attribute array is stored. · 874ecced
      roger_fong@apple.com authored
      https://bugs.webkit.org/show_bug.cgi?id=98966
      
      Reviewed by Dean Jackson.
      
      We currently do not add name/mappedName symbol pairs for each element of a uniform/attribute array.
      This is because we only add a number of symbols equal to how many symbols the shader compiler tells us there are.
      The shader compiler treats an array as a single uniform. We need to be adding in symbols to the map for each element of the array ourselves.
      The mappedName of each array element is the same between elements except for the "[index]" at the end so this is easy to do.
      
      Tested using Khronos WebGL conformance suite:
      conformance/glsl/misc/glsl-long-variable-names.html
      
      * platform/graphics/ANGLEWebKitBridge.cpp:
      (WebCore::getSymbolInfo):
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@131105 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      874ecced
    • kling@webkit.org's avatar
      ElementAttributeData shouldn't be managing Element's callbacks. · 5444f252
      kling@webkit.org authored
      <http://webkit.org/b/98987>
      
      Reviewed by Anders Carlsson.
      
      Dispatch the following attribute-related Element callbacks from within Element
      instead of ElementAttributeData. Also made them private.
      
          - willModifyAttribute
          - didModifyAttribute
          - didAddAttribute
          - didRemoveAttribute
      
      No behavior change, just making ElementAttributeData a bit dumber (a good thing.)
      
      * dom/Element.cpp:
      (WebCore::Element::detachAttribute):
      (WebCore::Element::removeAttribute):
      (WebCore::Element::setAttributeInternal):
      (WebCore::Element::removeAttributeInternal):
      (WebCore::Element::addAttributeInternal):
      * dom/Element.h:
      * dom/ElementAttributeData.cpp:
      (WebCore::ElementAttributeData::addAttribute):
      (WebCore::ElementAttributeData::removeAttribute):
      * dom/ElementAttributeData.h:
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@131104 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      5444f252