WebKit-https.git
6 years agoFix repaint issues when resizing a window with centered content, for platforms with...
simon.fraser@apple.com [Sat, 15 Dec 2012 22:11:27 +0000 (22:11 +0000)]
Fix repaint issues when resizing a window with centered content, for platforms with a tile cache
https://bugs.webkit.org/show_bug.cgi?id=105073

Reviewed by Dan Bernstein.

Add a manual test for window resize with a centered element.

* ManualTests/resize-repaint.html: Added.

Source/WebCore:

There were several issues with the "do full repaint" code path in
FrameView::layout(). These caused repaint issues when resizing the web view,
especially for platforms that use a tile cache.

First, the m_doFullRepaint flag wold get clobbered on resize-layouts, because
the call to adjustViewSize() re-enters layout(), and resets the m_doFullRepaint member
variable to false, even if the outer call had previously set it to true. This would
cause us to lose track of whether we needed to do a full repaint. The patch fixes
this by restoring m_doFullRepaint to the value it had before the call to adjustViewSize().

The second problem was that full repaints would not propagate to compositing
layers. They only repainted the RenderView, and on platforms that use a tile cache,
this only repaints the top portion of that tile cache. This was fixed by sending
a NeedsFullRepaintInBacking flag down into RenderLayer::updateLayerPositions(),
and using that to do a full repaint on all compositing layers.

Sending this new flag down into updateAfterLayout() prompted some boolean/flags
cleanup with propagated into several files. This also allowed me to no longer
include RenderLayerBacking.h in RenderLayerCompositor.h, but that required
header cleanup in several files.

Automated testing is not possible because WebKitTestRunner resizes the window
asynchronously (bug 105101). Added manual test.

* page/FrameView.cpp:
(WebCore::updateLayerPositionFlags):
(WebCore::FrameView::layout):
* page/scrolling/ScrollingCoordinator.cpp:
* page/scrolling/mac/ScrollingCoordinatorMac.mm:
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::updateLayerPositions):
(WebCore::RenderLayer::updateCompositingLayersAfterScroll):
* rendering/RenderLayer.h:
* rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::updateAfterLayout):
(WebCore::RenderLayerBacking::contentChanged):
* rendering/RenderLayerBacking.h:
* rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::updateCompositingDescendantGeometry):
* rendering/RenderLayerCompositor.h:
* rendering/RenderObject.cpp:
* rendering/RenderView.cpp:

Source/WebKit/chromium:

Include RenderLayerBacking.h, which is no longer included by RenderLayerCompositor.h.

* tests/ScrollingCoordinatorChromiumTest.cpp:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@137811 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agoDownloadProxy should keep a strong reference to its associated web context
andersca@apple.com [Sat, 15 Dec 2012 22:04:12 +0000 (22:04 +0000)]
DownloadProxy should keep a strong reference to its associated web context
https://bugs.webkit.org/show_bug.cgi?id=105107

Reviewed by Alexey Proskuryakov.

While this does create a ref-cycle, it's broken when the download completes, fails, is canceled or
if the process that's doing the download crashes.

* UIProcess/Downloads/DownloadProxy.cpp:
(WebKit::DownloadProxy::processDidClose):
(WebKit::DownloadProxy::didStart):
(WebKit::DownloadProxy::didReceiveAuthenticationChallenge):
(WebKit::DownloadProxy::didReceiveResponse):
(WebKit::DownloadProxy::didReceiveData):
(WebKit::DownloadProxy::shouldDecodeSourceDataOfMIMEType):
(WebKit::DownloadProxy::decideDestinationWithSuggestedFilename):
(WebKit::DownloadProxy::didCreateDestination):
(WebKit::DownloadProxy::didFinish):
(WebKit::DownloadProxy::didFail):
(WebKit::DownloadProxy::didCancel):
* UIProcess/Downloads/DownloadProxy.h:
(DownloadProxy):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@137810 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agoRemove WebContext::downloadFinished
andersca@apple.com [Sat, 15 Dec 2012 21:53:11 +0000 (21:53 +0000)]
Remove WebContext::downloadFinished
https://bugs.webkit.org/show_bug.cgi?id=105105

Reviewed by Sam Weinig.

Have DownloadProxyMap manage the message receiver map and remove WebContext::downloadFinished.

* UIProcess/Downloads/DownloadProxy.cpp:
(WebKit::DownloadProxy::didFinish):
(WebKit::DownloadProxy::didFail):
(WebKit::DownloadProxy::didCancel):
* UIProcess/Downloads/DownloadProxyMap.cpp:
(WebKit::DownloadProxyMap::DownloadProxyMap):
(WebKit::DownloadProxyMap::createDownloadProxy):
(WebKit::DownloadProxyMap::downloadFinished):
* UIProcess/Downloads/DownloadProxyMap.h:
(DownloadProxyMap):
* UIProcess/WebContext.cpp:
(WebKit::WebContext::WebContext):
(WebKit::WebContext::createDownloadProxy):
* UIProcess/WebContext.h:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@137809 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agoMake the NetworkProcess be managed by the WebContext, rather than a singleton Network...
weinig@apple.com [Sat, 15 Dec 2012 21:31:14 +0000 (21:31 +0000)]
Make the NetworkProcess be managed by the WebContext, rather than a singleton NetworkProcessMananger
https://bugs.webkit.org/show_bug.cgi?id=105104

Reviewed by Alexey Proskuryakov.

Move to having the WebContext own and manage the NetworkProcessProxy.

* UIProcess/Network/NetworkProcessManager.cpp: Removed.
* UIProcess/Network/NetworkProcessManager.h: Removed.
* UIProcess/Network/NetworkProcessProxy.cpp:
(WebKit::NetworkProcessProxy::create):
(WebKit::NetworkProcessProxy::NetworkProcessProxy):
(WebKit::NetworkProcessProxy::networkProcessCrashedOrFailedToLaunch):
* UIProcess/Network/NetworkProcessProxy.h:
(WebKit):
(NetworkProcessProxy):
* UIProcess/Network/mac/NetworkProcessManagerMac.mm: Removed.
* UIProcess/WebContext.cpp:
(WebKit::WebContext::ensureNetworkProcess):
(WebKit::WebContext::removeNetworkProcessProxy):
(WebKit::WebContext::getNetworkProcessConnection):
(WebKit::WebContext::willStartUsingPrivateBrowsing):
(WebKit::WebContext::willStopUsingPrivateBrowsing):
(WebKit::WebContext::createNewWebProcess):
* UIProcess/WebContext.h:
(WebKit):
(WebContext):
(WebKit::WebContext::networkProcess):
* UIProcess/WebProcessProxy.cpp:
(WebKit::WebProcessProxy::getNetworkProcessConnection):
* UIProcess/mac/WebContextMac.mm:
(WebKit::WebContext::applicationBecameVisible):
(WebKit::WebContext::applicationBecameOccluded):
* WebKit2.xcodeproj/project.pbxproj:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@137808 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agoDownloadProxy objects should know which DownloadProxyMap they belong to
andersca@apple.com [Sat, 15 Dec 2012 21:15:29 +0000 (21:15 +0000)]
DownloadProxy objects should know which DownloadProxyMap they belong to
https://bugs.webkit.org/show_bug.cgi?id=105102

Reviewed by Andy Estes.

* UIProcess/Downloads/DownloadProxy.cpp:
(WebKit::DownloadProxy::create):
(WebKit::DownloadProxy::DownloadProxy):
* UIProcess/Downloads/DownloadProxy.h:
(WebKit):
(DownloadProxy):
* UIProcess/Downloads/DownloadProxyMap.cpp:
(WebKit::DownloadProxyMap::createDownloadProxy):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@137807 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years ago[WebKit2] Move CustomProtocolManager to Shared/
aestes@apple.com [Sat, 15 Dec 2012 21:08:46 +0000 (21:08 +0000)]
[WebKit2] Move CustomProtocolManager to Shared/
https://bugs.webkit.org/show_bug.cgi?id=105103

Reviewed by Sam Weinig.

CustomProtocolManager can be instantiated either in the NetworkProcess or the WebProcess, so it should live in Shared/.

* DerivedSources.make: Update the path where CustomProtocolManager.messages.in can be found.
* Shared/Network/CustomProtocols/CustomProtocolManager.h: Renamed from Source/WebKit2/WebProcess/Network/CustomProtocols/CustomProtocolManager.h.
* Shared/Network/CustomProtocols/CustomProtocolManager.messages.in: Renamed from Source/WebKit2/WebProcess/Network/CustomProtocols/CustomProtocolManager.messages.in.
* Shared/Network/CustomProtocols/mac/CustomProtocolManagerMac.mm: Renamed from Source/WebKit2/WebProcess/Network/CustomProtocols/mac/CustomProtocolManagerMac.mm.
* WebKit2.xcodeproj/project.pbxproj:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@137806 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agoTry to fix the Qt build.
weinig@apple.com [Sat, 15 Dec 2012 21:02:52 +0000 (21:02 +0000)]
Try to fix the Qt build.

* Target.pri:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@137805 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agoGet rid of DownloadProxyMap::downloads()
andersca@apple.com [Sat, 15 Dec 2012 20:35:53 +0000 (20:35 +0000)]
Get rid of DownloadProxyMap::downloads()
https://bugs.webkit.org/show_bug.cgi?id=105100

Reviewed by Sam Weinig.

Add the needed member functions to DownloadProxyMap and remove the downloads() member function.

* UIProcess/Downloads/DownloadProxyMap.cpp:
(WebKit::DownloadProxyMap::downloadFinished):
(WebKit::DownloadProxyMap::processDidClose):
(WebKit):
* UIProcess/Downloads/DownloadProxyMap.h:
(WebKit::DownloadProxyMap::isEmpty):
(DownloadProxyMap):
* UIProcess/WebContext.cpp:
(WebKit::WebContext::shouldTerminate):
(WebKit::WebContext::disconnectProcess):
(WebKit::WebContext::downloadFinished):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@137804 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agoMove calculation of caches sizes based on the cache model to CacheModel.h/cpp
weinig@apple.com [Sat, 15 Dec 2012 20:26:40 +0000 (20:26 +0000)]
Move calculation of caches sizes based on the cache model to CacheModel.h/cpp
https://bugs.webkit.org/show_bug.cgi?id=105098

Reviewed by Anders Carlsson.

Move calculation of caches sizes based on the cache model to CacheModel.h/cpp so
that it can be used by more than just the WebProcess.

* CMakeLists.txt:
* GNUmakefile.list.am:
* Shared/CacheModel.cpp: Added.
(WebKit):
(WebKit::calculateCacheSizes):
* Shared/CacheModel.h:
* Target.pri:
* WebKit2.xcodeproj/project.pbxproj:
* WebProcess/WebProcess.cpp:
* WebProcess/WebProcess.h:
(WebProcess):
* win/WebKit2.vcproj:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@137803 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agoDownloadProxyMap shouldn't be a singleton after all
andersca@apple.com [Sat, 15 Dec 2012 20:13:41 +0000 (20:13 +0000)]
DownloadProxyMap shouldn't be a singleton after all
https://bugs.webkit.org/show_bug.cgi?id=105099

Reviewed by Sam Weinig.

Make the DownloadProxyMap be per context instead, and get rid of the m_downloads hash map from WebContext.

* UIProcess/Downloads/DownloadProxy.cpp:
(WebKit::DownloadProxy::didFinish):
(WebKit::DownloadProxy::didFail):
(WebKit::DownloadProxy::didCancel):
* UIProcess/Downloads/DownloadProxyMap.cpp:
(WebKit::DownloadProxyMap::~DownloadProxyMap):
* UIProcess/Downloads/DownloadProxyMap.h:
(DownloadProxyMap):
(WebKit::DownloadProxyMap::downloads):
* UIProcess/WebContext.cpp:
(WebKit::WebContext::shouldTerminate):
(WebKit::WebContext::disconnectProcess):
(WebKit::WebContext::createDownloadProxy):
(WebKit::WebContext::downloadFinished):
* UIProcess/WebContext.h:
(WebContext):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@137802 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agoFix build.
andersca@apple.com [Sat, 15 Dec 2012 19:40:17 +0000 (19:40 +0000)]
Fix build.

* platform/graphics/ca/GraphicsLayerCA.h:
Remove an unused member variable.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@137801 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agoREGRESSION (r137006): TileCache flashes to linen, rather than the background color...
simon.fraser@apple.com [Sat, 15 Dec 2012 19:37:49 +0000 (19:37 +0000)]
REGRESSION (r137006): TileCache flashes to linen, rather than the background color, when scrolling fast
https://bugs.webkit.org/show_bug.cgi?id=104746

Reviewed by Darin Adler.

Make RenderLayerBacking::updateBackgroundColor() responsible for setting the background
color of the main frame's root layer to the document background color (rather than doing
it in code related to overlay scrollbars, which was crazy). This is only done for platforms
that use a TiledBacking (currently, just Mac).

Also fix updateBackgroundColor() to not call m_graphicsLayer->setContentsToBackgroundColor()
and then call clearBackgroundColor() right away if the color was transparent.

* page/FrameView.cpp:
(WebCore::FrameView::recalculateScrollbarOverlayStyle): Remove code that calls documentBackgroundColorDidChange().
* rendering/RenderLayerBacking.cpp:
(WebCore::clipBox): Remove blank linke.
(WebCore::RenderLayerBacking::updateBackgroundColor):
* rendering/RenderLayerCompositor.cpp:
* rendering/RenderLayerCompositor.h:
(RenderLayerCompositor):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@137800 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agoStop the XvfbDriver before proceeding with its starting setup
zandobersek@gmail.com [Sat, 15 Dec 2012 19:36:19 +0000 (19:36 +0000)]
Stop the XvfbDriver before proceeding with its starting setup
https://bugs.webkit.org/show_bug.cgi?id=105006

Reviewed by Philippe Normand.

Just as with the base Driver implementation, stop the XvfbDriver
before proceeding with setting up lock files and a new Xvfb instance.
This forces any driver or Xvfb instances that are currently under
the driver's control to be closed/killed and cleaned up after.

* Scripts/webkitpy/layout_tests/port/xvfbdriver.py:
(XvfbDriver._start):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@137799 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agoDisambiguate "background color" and "contents as solid color" on GraphicsLayer
simon.fraser@apple.com [Sat, 15 Dec 2012 19:11:44 +0000 (19:11 +0000)]
Disambiguate "background color" and "contents as solid color" on GraphicsLayer
https://bugs.webkit.org/show_bug.cgi?id=104842

Source/WebCore:

Patch by No'am Rosenthal <noam.rosenthal@nokia.com> on 2012-12-15
Reviewed by Simon Fraser.

Rename overloads in GraphicsLayerTextureMapper and GraphicsLayerChromium to account for the rename in GraphicsLayer.

Covered by existing tests.

* platform/graphics/chromium/GraphicsLayerChromium.cpp:
* platform/graphics/texmap/GraphicsLayerTextureMapper.cpp:
(WebCore::GraphicsLayerTextureMapper::setContentsToSolidColor):
* platform/graphics/texmap/GraphicsLayerTextureMapper.h:
(GraphicsLayerTextureMapper):
(WebCore::GraphicsLayerTextureMapper::solidColor):
* platform/graphics/texmap/TextureMapperLayer.cpp:
(WebCore::TextureMapperLayer::paintSelf):
(WebCore::TextureMapperLayer::flushCompositingStateSelf):
* platform/graphics/texmap/TextureMapperLayer.h:
(State):

Source/WebKit2:

Patch by No'am Rosenthal <noam.rosenthal@nokia.com> on 2012-12-15
Reviewed by Simon Fraser.

Rename overloads in coordinated graphics to account for the rename in GraphicsLayer.

* Shared/CoordinatedGraphics/CoordinatedLayerInfo.h:
(CoordinatedLayerInfo):
* UIProcess/CoordinatedGraphics/LayerTreeRenderer.cpp:
(WebKit::LayerTreeRenderer::setLayerState):
* WebProcess/WebPage/CoordinatedGraphics/CoordinatedGraphicsLayer.cpp:
(WebCore::CoordinatedGraphicsLayer::setContentsToSolidColor):
* WebProcess/WebPage/CoordinatedGraphics/CoordinatedGraphicsLayer.h:
(CoordinatedGraphicsLayer):

LayoutTests:

Patch by No'am Rosenthal <noam@webkit.org> on 2012-12-15
Reviewed by Simon Fraser.

Since we don't set the background color for a layer with a solid color, the test results have to be rebaselined.

* compositing/backing/no-backing-for-clip-expected.txt:
* compositing/backing/no-backing-for-clip-overlap-expected.txt:
* compositing/backing/no-backing-for-perspective-expected.txt:
* compositing/columns/composited-in-paginated-expected.txt:
* compositing/geometry/ancestor-overflow-change-expected.txt:
* compositing/geometry/bounds-ignores-hidden-composited-descendant-expected.txt:
* compositing/geometry/bounds-ignores-hidden-dynamic-negzindex-expected.txt:
* compositing/geometry/clip-expected.txt:
* compositing/geometry/clip-inside-expected.txt:
* compositing/geometry/composited-in-columns-expected.txt:
* compositing/geometry/flipped-writing-mode-expected.txt:
* compositing/geometry/layer-due-to-layer-children-deep-switch-expected.txt:
* compositing/geometry/limit-layer-bounds-fixed-positioned-expected.txt:
* compositing/geometry/limit-layer-bounds-overflow-root-expected.txt:
* compositing/geometry/limit-layer-bounds-positioned-expected.txt:
* compositing/geometry/limit-layer-bounds-positioned-transition-expected.txt:
* compositing/geometry/limit-layer-bounds-transformed-expected.txt:
* compositing/geometry/limit-layer-bounds-transformed-overflow-expected.txt:
* compositing/geometry/preserve-3d-switching-expected.txt:
* compositing/iframes/become-composited-nested-iframes-expected.txt:
* compositing/iframes/become-overlapped-iframe-expected.txt:
* compositing/iframes/composited-parent-iframe-expected.txt:
* compositing/iframes/connect-compositing-iframe-delayed-expected.txt:
* compositing/iframes/connect-compositing-iframe-expected.txt:
* compositing/iframes/connect-compositing-iframe2-expected.txt:
* compositing/iframes/connect-compositing-iframe3-expected.txt:
* compositing/iframes/enter-compositing-iframe-expected.txt:
* compositing/iframes/iframe-resize-expected.txt:
* compositing/iframes/invisible-nested-iframe-hide-expected.txt:
* compositing/iframes/invisible-nested-iframe-show-expected.txt:
* compositing/iframes/overlapped-iframe-expected.txt:
* compositing/iframes/overlapped-iframe-iframe-expected.txt:
* compositing/iframes/page-cache-layer-tree-expected.txt:
* compositing/iframes/scrolling-iframe-expected.txt:
* compositing/layer-creation/animation-overlap-with-children-expected.txt:
* compositing/layer-creation/fixed-position-and-transform-expected.txt:
* compositing/layer-creation/fixed-position-under-transform-expected.txt:
* compositing/layer-creation/no-compositing-for-preserve-3d-expected.txt:
* compositing/layer-creation/overflow-scroll-overlap-expected.txt:
* compositing/layer-creation/overlap-animation-expected.txt:
* compositing/layer-creation/overlap-child-layer-expected.txt:
* compositing/layer-creation/overlap-clipping-expected.txt:
* compositing/layer-creation/overlap-transformed-and-clipped-expected.txt:
* compositing/layer-creation/overlap-transformed-layer-expected.txt:
* compositing/layer-creation/overlap-transforms-expected.txt:
* compositing/layer-creation/scroll-partial-update-expected.txt:
* compositing/layer-creation/spanOverlapsCanvas-expected.txt:
* compositing/layer-creation/stacking-context-overlap-expected.txt:
* compositing/layer-creation/stacking-context-overlap-nested-expected.txt:
* compositing/layer-creation/translatez-overlap-expected.txt:
* compositing/overflow-trumps-transform-style-expected.txt:
* compositing/overflow/clip-descendents-expected.txt:
* compositing/plugins/no-backing-store-expected.txt:
* compositing/rtl/rtl-absolute-expected.txt:
* compositing/rtl/rtl-absolute-overflow-expected.txt:
* compositing/rtl/rtl-absolute-overflow-scrolled-expected.txt:
* compositing/rtl/rtl-fixed-expected.txt:
* compositing/rtl/rtl-fixed-overflow-expected.txt:
* compositing/rtl/rtl-relative-expected.txt:
* compositing/tiled-layers-hidpi-expected.txt:
* compositing/visible-rect/2d-transformed-expected.txt:
* compositing/visible-rect/3d-transform-style-expected.txt:
* compositing/visible-rect/3d-transformed-expected.txt:
* compositing/visible-rect/animated-expected.txt:
* compositing/visible-rect/animated-from-none-expected.txt:
* compositing/visible-rect/clipped-by-viewport-expected.txt:
* compositing/visible-rect/clipped-visible-rect-expected.txt:
* compositing/visible-rect/iframe-and-layers-expected.txt:
* compositing/visible-rect/nested-transform-expected.txt:
* compositing/visible-rect/scrolled-expected.txt:
* css3/filters/filtered-compositing-descendant-expected.txt:
* platform/mac/compositing/geometry/fixed-position-composited-switch-expected.txt:
* platform/mac/compositing/iframes/resizer-expected.txt:
* platform/mac/compositing/repaint/invalidations-on-composited-layers-expected.txt:
* platform/mac/compositing/tiling/crash-reparent-tiled-layer-expected.txt:
* platform/mac/compositing/tiling/huge-layer-add-remove-child-expected.txt:
* platform/mac/compositing/tiling/huge-layer-with-layer-children-expected.txt:
* platform/mac/compositing/tiling/huge-layer-with-layer-children-resize-expected.txt:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@137798 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years ago[GTK][WK2] Memory leak in ChunkedUpdateDrawingArea::paintIntoUpdateChunk()
christophe.dumez@intel.com [Sat, 15 Dec 2012 18:49:42 +0000 (18:49 +0000)]
[GTK][WK2] Memory leak in ChunkedUpdateDrawingArea::paintIntoUpdateChunk()
https://bugs.webkit.org/show_bug.cgi?id=105095

Reviewed by Martin Robinson.

Adopt the pointer returned by cairo_create() in
ChunkedUpdateDrawingArea::paintIntoUpdateChunk() to avoid leaking
memory.

* WebProcess/WebPage/gtk/ChunkedUpdateDrawingAreaGtk.cpp:
(WebKit::ChunkedUpdateDrawingArea::paintIntoUpdateChunk):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@137797 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agoAdded #if ENABLE(SQL_DATABASE) around WebPlatformStrategies::getDatabaseServer().
mark.lam@apple.com [Sat, 15 Dec 2012 09:02:47 +0000 (09:02 +0000)]
Added #if ENABLE(SQL_DATABASE) around WebPlatformStrategies::getDatabaseServer().
https://bugs.webkit.org/show_bug.cgi?id=104934..

Not reviewed.

Greening the Qt Linux Release Minimal bot.

* WebProcess/WebCoreSupport/WebPlatformStrategies.cpp:
(WebKit):
* WebProcess/WebCoreSupport/WebPlatformStrategies.h:
(WebPlatformStrategies):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@137796 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agoRe-landing patch for "Introducing the DatabaseStrategy and database servers".
mark.lam@apple.com [Sat, 15 Dec 2012 08:09:53 +0000 (08:09 +0000)]
Re-landing patch for "Introducing the DatabaseStrategy and database servers".
https://bugs.webkit.org/show_bug.cgi?id=104934.

Not reviewed.

Source/WebCore:

Merged from r137767. Previously reviewed by Sam Weinig.
Also added __ZTVN7WebCore16DatabaseStrategyE to WebCore.exp.in.

No new tests.

* CMakeLists.txt:
* GNUmakefile.list.am:
* Modules/webdatabase/AbstractDatabaseServer.h: Copied from Source/WebCore/Modules/webdatabase/AbstractDatabaseServer.h.
* Modules/webdatabase/DBBackendServer.h: Copied from Source/WebCore/Modules/webdatabase/DBBackendServer.h.
* Modules/webdatabase/DatabaseManager.cpp:
(WebCore::DatabaseManager::DatabaseManager):
* Modules/webdatabase/DatabaseManager.h:
(DatabaseManager):
* Target.pri:
* WebCore.exp.in:
* WebCore.gypi:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.xcodeproj/project.pbxproj:
* platform/DatabaseStrategy.cpp: Copied from Source/WebCore/platform/DatabaseStrategy.cpp.
* platform/DatabaseStrategy.h: Copied from Source/WebCore/platform/DatabaseStrategy.h.
* platform/PlatformStrategies.h:
(WebCore::PlatformStrategies::databaseStrategy):
(PlatformStrategies):
(WebCore::PlatformStrategies::PlatformStrategies):

Source/WebKit/efl:

Merged from r137767. Previously reviewed by Sam Weinig.

* WebCoreSupport/PlatformStrategiesEfl.cpp:
(PlatformStrategiesEfl::createDatabaseStrategy):
* WebCoreSupport/PlatformStrategiesEfl.h:
(PlatformStrategiesEfl):

Source/WebKit/gtk:

Merged from r137767. Previously reviewed by Sam Weinig.

* WebCoreSupport/PlatformStrategiesGtk.cpp:
(PlatformStrategiesGtk::createDatabaseStrategy):
* WebCoreSupport/PlatformStrategiesGtk.h:
(PlatformStrategiesGtk):

Source/WebKit/mac:

Merged from r137767. Previously reviewed by Sam Weinig.

* WebCoreSupport/WebPlatformStrategies.h:
(WebPlatformStrategies):
* WebCoreSupport/WebPlatformStrategies.mm:
(WebPlatformStrategies::createDatabaseStrategy):

Source/WebKit/qt:

Merged from r137767. Previously reviewed by Sam Weinig.

* WebCoreSupport/PlatformStrategiesQt.cpp:
(PlatformStrategiesQt::createDatabaseStrategy):
* WebCoreSupport/PlatformStrategiesQt.h:
(PlatformStrategiesQt):

Source/WebKit/win:

Merged from r137767. Previously reviewed by Sam Weinig.

* WebCoreSupport/WebPlatformStrategies.cpp:
(WebPlatformStrategies::createDatabaseStrategy):
* WebCoreSupport/WebPlatformStrategies.h:
(WebPlatformStrategies):

Source/WebKit/wince:

Merged from r137767. Previously reviewed by Sam Weinig.

* WebCoreSupport/PlatformStrategiesWinCE.cpp:
(PlatformStrategiesWinCE::createDatabaseStrategy):
* WebCoreSupport/PlatformStrategiesWinCE.h:
(PlatformStrategiesWinCE):

Source/WebKit2:

Merged from r137767. Previously reviewed by Sam Weinig.

* CMakeLists.txt:
* WebProcess/WebCoreSupport/WebPlatformStrategies.cpp:
(WebKit::WebPlatformStrategies::createDatabaseStrategy):
(WebKit):
(WebKit::WebPlatformStrategies::getDatabaseServer):
* WebProcess/WebCoreSupport/WebPlatformStrategies.h:
(WebPlatformStrategies):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@137795 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agoThe WebView should initialize the platform strategies before initializing other sub...
mark.lam@apple.com [Sat, 15 Dec 2012 06:15:39 +0000 (06:15 +0000)]
The WebView should initialize the platform strategies before initializing other sub-systems.
https://bugs.webkit.org/show_bug.cgi?id=105083.

Reviewed by Alexey Proskuryakov.

Source/WebKit/mac:

* WebView/WebView.mm:
(-[WebView _commonInitializationWithFrameName:groupName:]):

Source/WebKit/win:

* WebView.cpp:
(WebView::initWithFrame):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@137794 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agoSend a message from WebViewImpl to the compositor to inform about end of flings
commit-queue@webkit.org [Sat, 15 Dec 2012 02:28:55 +0000 (02:28 +0000)]
Send a message from WebViewImpl to the compositor to inform about end of flings
https://bugs.webkit.org/show_bug.cgi?id=104947

Patch by Yusuf Ozuysal <yusufo@google.com> on 2012-12-14
Reviewed by James Robinson.

Whenever we have a fling animation finished on cancelled on main thread this sends
a message that will be relayed to the compositor input handler. Then the input handler
keeps track of main thread fling with a boolean and doesn't send flingCancels
unnecessarily

* chromium/public/WebInputHandler.h:
(WebInputHandler):
* chromium/public/WebLayerTreeView.h:
(WebLayerTreeView):
(WebKit::WebLayerTreeView::mainThreadHasStoppedFlinging):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@137793 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agoWebViewImpl::resetScrollAndScaleState() causes the page to render incorrectly
commit-queue@webkit.org [Sat, 15 Dec 2012 01:21:25 +0000 (01:21 +0000)]
WebViewImpl::resetScrollAndScaleState() causes the page to render incorrectly
https://bugs.webkit.org/show_bug.cgi?id=104767

Patch by Dan Alcantara <dfalcantara@chromium.org> on 2012-12-14
Reviewed by Darin Fisher.

Change WebViewImpl::resetScrollAndScaleState() so that it directly
alters values in the HistoryItem instead of indirectly changing the
values.

Adds a method in HistoryController to clear the scroll and scale state of
its current HistoryItem.

* public/WebView.h:
(WebView):
* src/WebViewImpl.cpp:
(WebKit::WebViewImpl::resetScrollAndScaleState):
* tests/WebViewTest.cpp:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@137792 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agohttps://bugs.webkit.org/show_bug.cgi?id=105064
bdakin@apple.com [Sat, 15 Dec 2012 00:52:24 +0000 (00:52 +0000)]
https://bugs.webkit.org/show_bug.cgi?id=105064
fast/css/nested-layers-with-hover.html fails on the Mac WK2 bots, and seems to be
a bad test

Reviewed by Tim Horton.

There were a number of problems with this test, and this patch attempts to fix
them all. The problems were:
-This test was failing on the WK2 bots.
-But it was comparing against expected results that expected to fail, so that's
bad!
-In the cross-platform directory there were expected results checked in that look
for a render tree dump, but those results haven't made sense for a while since
that test was converted to dumpAsText() months ago.

This patch updates the test so that it will actually work. To do that, we need to
make sure layout is up to date and also use window.setTimeout() to run the
function to assess our hover state rather than relying on onmousemove.
* fast/css/nested-layers-with-hover-expected.txt:
* fast/css/nested-layers-with-hover.html:
* platform/mac/fast/css/nested-layers-with-hover-expected.png: Removed.
* platform/mac/fast/css/nested-layers-with-hover-expected.txt: Removed.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@137791 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agoDownloadProxy objects should be message receivers
andersca@apple.com [Sat, 15 Dec 2012 00:48:13 +0000 (00:48 +0000)]
DownloadProxy objects should be message receivers
https://bugs.webkit.org/show_bug.cgi?id=105068

Reviewed by Andreas Kling.

This simplifies the WebContext message dispatch code somewhat.

* UIProcess/Downloads/DownloadProxy.cpp:
(WebKit::DownloadProxy::didReceiveMessage):
(WebKit::DownloadProxy::didReceiveSyncMessage):
* UIProcess/Downloads/DownloadProxy.h:
(DownloadProxy):
* UIProcess/WebContext.cpp:
(WebKit::WebContext::createDownloadProxy):
(WebKit::WebContext::didReceiveMessage):
(WebKit::WebContext::didReceiveSyncMessage):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@137790 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agoUnreviewed, rolling out r137765.
commit-queue@webkit.org [Sat, 15 Dec 2012 00:28:29 +0000 (00:28 +0000)]
Unreviewed, rolling out r137765.
http://trac.webkit.org/changeset/137765
https://bugs.webkit.org/show_bug.cgi?id=105067

Breaks webkit_unit_tests and transferred flings (Requested by
jamesr_ on #webkit).

Patch by Sheriff Bot <webkit.review.bot@gmail.com> on 2012-12-14

Source/Platform:

* chromium/public/WebInputHandler.h:
(WebInputHandler):
* chromium/public/WebLayerTreeView.h:
(WebLayerTreeView):

Source/WebKit/chromium:

* src/WebCompositorInputHandlerImpl.cpp:
(WebKit::WebCompositorInputHandlerImpl::WebCompositorInputHandlerImpl):
(WebKit::WebCompositorInputHandlerImpl::handleInputEventInternal):
(WebKit::WebCompositorInputHandlerImpl::handleGestureFling):
* src/WebCompositorInputHandlerImpl.h:
(WebCompositorInputHandlerImpl):
* src/WebViewImpl.cpp:
(WebKit::WebViewImpl::handleGestureEvent):
(WebKit::WebViewImpl::handleKeyEvent):
(WebKit::WebViewImpl::updateAnimations):
(WebKit::WebViewImpl::didCommitLoad):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@137789 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agoEmphasis mark is printed after inline-block with justify
commit-queue@webkit.org [Fri, 14 Dec 2012 23:52:00 +0000 (23:52 +0000)]
Emphasis mark is printed after inline-block with justify
https://bugs.webkit.org/show_bug.cgi?id=104631

Patch by Yuki Sekiguchi <yuki.sekiguchi@access-company.com> on 2012-12-14
Reviewed by Dean Jackson.

Source/WebCore:

Do not print an emphasis mark after an inline-block when justified.

If an inline-block is expanded, it has a space appended to it.
This space should not have any emphasis marks drawn.

Test: fast/inline/justify-emphasis-inline-box.html

* platform/graphics/SimpleFontData.h:
(WebCore::SimpleFontData::zeroWidthSpaceGlyph): Add getter method to get zero width space glyph.
* platform/graphics/WidthIterator.cpp:
(WebCore::WidthIterator::advanceInternal): We use zero width space for the extra space not to draw emphasis marks.

LayoutTests:

Test that emphasis marks are not drawn incorrectly in justified text with inline boxes.

* fast/inline/justify-emphasis-inline-box.html: Added.
* platform/chromium-mac/fast/inline/justify-emphasis-inline-box-expected.png: Added.
* platform/chromium-mac/fast/inline/justify-emphasis-inline-box-expected.txt: Added.
* platform/mac/fast/inline/justify-emphasis-inline-box-expected.txt: Added.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@137786 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agoUnreviewed bug fix after r137782.
jer.noble@apple.com [Fri, 14 Dec 2012 23:47:29 +0000 (23:47 +0000)]
Unreviewed bug fix after r137782.

Add new source file TextTrackRepresentation.cpp to CMakeLists.txt.

* CMakeLists.txt:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@137785 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agoUnreviewed, rolling out r137767.
commit-queue@webkit.org [Fri, 14 Dec 2012 23:40:22 +0000 (23:40 +0000)]
Unreviewed, rolling out r137767.
http://trac.webkit.org/changeset/137767
https://bugs.webkit.org/show_bug.cgi?id=105062

Broke Mac builds. (Requested by mlam on #webkit).

Patch by Sheriff Bot <webkit.review.bot@gmail.com> on 2012-12-14

Source/WebCore:

* CMakeLists.txt:
* GNUmakefile.list.am:
* Modules/webdatabase/AbstractDatabaseServer.h: Removed.
* Modules/webdatabase/DBBackendServer.h: Removed.
* Modules/webdatabase/DatabaseManager.cpp:
(WebCore::DatabaseManager::DatabaseManager):
* Modules/webdatabase/DatabaseManager.h:
* Target.pri:
* WebCore.exp.in:
* WebCore.gypi:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.xcodeproj/project.pbxproj:
* platform/DatabaseStrategy.cpp: Removed.
* platform/DatabaseStrategy.h: Removed.
* platform/PlatformStrategies.h:
(WebCore):
(WebCore::PlatformStrategies::PlatformStrategies):
(PlatformStrategies):

Source/WebKit/efl:

* WebCoreSupport/PlatformStrategiesEfl.cpp:
* WebCoreSupport/PlatformStrategiesEfl.h:
(PlatformStrategiesEfl):

Source/WebKit/gtk:

* WebCoreSupport/PlatformStrategiesGtk.cpp:
* WebCoreSupport/PlatformStrategiesGtk.h:
(PlatformStrategiesGtk):

Source/WebKit/mac:

* WebCoreSupport/WebPlatformStrategies.h:
(WebPlatformStrategies):
* WebCoreSupport/WebPlatformStrategies.mm:

Source/WebKit/qt:

* WebCoreSupport/PlatformStrategiesQt.cpp:
* WebCoreSupport/PlatformStrategiesQt.h:
(PlatformStrategiesQt):

Source/WebKit/win:

* WebCoreSupport/WebPlatformStrategies.cpp:
* WebCoreSupport/WebPlatformStrategies.h:
(WebPlatformStrategies):

Source/WebKit/wince:

* WebCoreSupport/PlatformStrategiesWinCE.cpp:
* WebCoreSupport/PlatformStrategiesWinCE.h:
(PlatformStrategiesWinCE):

Source/WebKit2:

* CMakeLists.txt:
* WebProcess/WebCoreSupport/WebPlatformStrategies.cpp:
* WebProcess/WebCoreSupport/WebPlatformStrategies.h:
(WebPlatformStrategies):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@137784 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years ago <rdar://problem/12874760> NetworkProcess loads may get stuck when WebProcess...
ap@apple.com [Fri, 14 Dec 2012 23:33:45 +0000 (23:33 +0000)]
    <rdar://problem/12874760> NetworkProcess loads may get stuck when WebProcess quits
        https://bugs.webkit.org/show_bug.cgi?id=105056

        Reviewed by Anders Carlsson.

        Make response maps per-connection.

        * NetworkProcess/NetworkConnectionToWebProcess.cpp:
        (WebKit::NetworkConnectionToWebProcess::didClose): Cancel waiting for responses
        from WebProcess, they will never arrive.

        * NetworkProcess/NetworkConnectionToWebProcess.h:
        (WebKit::NetworkConnectionToWebProcess::willSendRequestResponseMap):
        (WebKit::NetworkConnectionToWebProcess::canAuthenticateAgainstProtectionSpaceResponseMap):
        Maps now live here.

        * NetworkProcess/NetworkResourceLoader.cpp:
        (WebKit::NetworkResourceLoader::connectionToWebProcessDidClose): Added a FIXME.

        (WebKit::NetworkResourceLoader::willSendRequest):
        (WebKit::NetworkResourceLoader::willSendRequestHandled):
        (WebKit::NetworkResourceLoader::canAuthenticateAgainstProtectionSpace):
        (WebKit::NetworkResourceLoader::canAuthenticateAgainstProtectionSpaceHandled):
        Handle the cases where we can't send a request, or can't expect a response any more.

        * Shared/BlockingResponseMap.h:
        (BlockingResponseMap):
        (BlockingResponseMap::BlockingResponseMap):
        (BlockingResponseMap::~BlockingResponseMap):
        (BlockingResponseMap::waitForResponse):
        (BlockingResponseMap::didReceiveResponse):
        (BlockingResponseMap::cancel):
        (BlockingBoolResponseMap):
        (BlockingBoolResponseMap::BlockingBoolResponseMap):
        (BlockingBoolResponseMap::~BlockingBoolResponseMap):
        (BlockingBoolResponseMap::waitForResponse):
        (BlockingBoolResponseMap::didReceiveResponse):
        (BlockingBoolResponseMap::cancel):
        Added an ability to cancel, and slightly beefed up overall.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@137783 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agoAllow the text track contents to be displayed externally to WebCore.
jer.noble@apple.com [Fri, 14 Dec 2012 23:23:25 +0000 (23:23 +0000)]
Allow the text track contents to be displayed externally to WebCore.
https://bugs.webkit.org/show_bug.cgi?id=105052

Reviewed by Eric Carlson.

Support scenarios where the text track contents must be rendered outside of WebCore, such as to an external
display or window.  Add an abstract base class which encapsulates the external representation to which the
text tracks will be rendered.

Add a new abstract base class and client to wrap the external rendering of a TextTrack.
* platform/graphics/TextTrackRepresentation.h: Added.
(WebCore::TextTrackRepresentationClient::~TextTrackRepresentationClient):
(WebCore::TextTrackRepresentation::~TextTrackRepresentation):

Add an empty concrete implementation for those ports who do not yet support external display of subtitles.
* platform/graphics/TextTrackRepresentation.cpp: Added.
(NullTextTrackRepresentation):
(WebCore::NullTextTrackRepresentation::~NullTextTrackRepresentation):
(WebCore::NullTextTrackRepresentation::update):
(WebCore::NullTextTrackRepresentation::platformLayer):
(WebCore::NullTextTrackRepresentation::setContentScale):
(WebCore::NullTextTrackRepresentation::bounds):
(WebCore::TextTrackRepresentation::create):

Add methods to MediaPlayerPrivateIOS to handle the TextTrackRepresentation.
* platform/graphics/ios/MediaPlayerPrivateIOS.h:
* platform/graphics/ios/MediaPlayerPrivateIOS.mm:
(WebCore::MediaPlayerPrivateIOS::deliverNotification): Remove the representation when exiting full screen.
(WebCore::MediaPlayerPrivateIOS::requiresTextTrackRepresentation): Return YES if in full screen mode.
(WebCore::MediaPlayerPrivateIOS::setTextTrackRepresentation): Pass the representation's layer to the player plug-in.

Expose those methods via HTMLMediaElement:
* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::requiresTextTrackRepresentation):
(WebCore::HTMLMediaElement::setTextTrackRepresentation):
* html/HTMLMediaElement.h:
* platform/graphics/MediaPlayer.cpp:
(WebCore::MediaPlayer::requiresTextTrackRepresentation):
(WebCore::MediaPlayer::setTextTrackRepresentation):
* platform/graphics/MediaPlayer.h:
(WebCore::MediaPlayerClient::textTrackRepresentationBoundsChanged):
(WebCore::MediaPlayerClient::paintTextTrackRepresentation):
* platform/graphics/MediaPlayerPrivate.h:
(WebCore::MediaPlayerPrivateInterface::requiresTextTrackRepresentation):
(WebCore::MediaPlayerPrivateInterface::setTextTrackRepresentation):

* html/shadow/MediaControlElements.cpp:
(WebCore::MediaControlTextTrackContainerElement::updateDisplay): Create the representation, if necessary.
(WebCore::MediaControlTextTrackContainerElement::updateSizes): Use the representation to determine the font size.
(WebCore::MediaControlTextTrackContainerElement::paintTextTrackRepresentation): Added. Paint the TextTrack into the provided graphics context.
(WebCore::MediaControlTextTrackContainerElement::textTrackRepresentationBoundsChanged): Added. Call updateSizes().
* html/shadow/MediaControlElements.h:

Add the new files to the project.
* WebCore.xcodeproj/project.pbxproj:
* GNUmakefile.list.am:
* Target.pri:
* WebCore.gypi:
* WebCore.vcproj/WebCore.vcproj:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@137782 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agowebkitpy: make port_name a required parameter to the non-test ports
dpranke@chromium.org [Fri, 14 Dec 2012 23:18:25 +0000 (23:18 +0000)]
webkitpy: make port_name a required parameter to the non-test ports
https://bugs.webkit.org/show_bug.cgi?id=105057

Reviewed by Eric Seidel.

This is just minor code cleanup along the path to making Port
constructors simpler and pushing more logic into the port factory.

* Scripts/webkitpy/layout_tests/port/base.py:
(Port.__init__):
* Scripts/webkitpy/layout_tests/port/base_unittest.py:
(PortTest.make_port):
* Scripts/webkitpy/layout_tests/port/port_testcase.py:
(TestWebKitPort.__init__):
* Scripts/webkitpy/layout_tests/port/test.py:
(TestPort):
(TestPort.determine_full_port_name):
(TestPort.__init__):
* Scripts/webkitpy/layout_tests/port/xvfbdriver_unittest.py:
(XvfbDriverTest.make_driver):
(XvfbDriverTest.test_stop):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@137781 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agogarden-o-matic doesn't know about reftests
dpranke@chromium.org [Fri, 14 Dec 2012 23:17:03 +0000 (23:17 +0000)]
garden-o-matic doesn't know about reftests
https://bugs.webkit.org/show_bug.cgi?id=101976

Reviewed by Eric Seidel.

Attempt to make garden-o-matic properly aware of reftests again.

This is re-landing r137407 with a change to
rebaselineWithStatusUpdates() to actually pass the filtered
failureInofLost to checkout.rebaseline().

Unfortunately, the testing coverage for this whole module is almost
non-existent, and it's not obvious that there's a good way to
stub out checkout.rebaseline() to test that the right thing
happens. I verified the change manually.

* BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/controllers.js:
(.):
* BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/ui/results.js:
(.):
* BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/ui/results_unittests.js:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@137780 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agoUpdating these results again since this failing test has started failing in a new
bdakin@apple.com [Fri, 14 Dec 2012 23:04:21 +0000 (23:04 +0000)]
Updating these results again since this failing test has started failing in a new
way. https://bugs.webkit.org/show_bug.cgi?id=58332 represents fixing the bug.

* platform/mac-wk2/canvas/philip/tests/2d.text.draw.fontface.notinpage-expected.txt:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@137778 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agoAllow embedder to observe changes to frame names
fsamuel@chromium.org [Fri, 14 Dec 2012 22:55:27 +0000 (22:55 +0000)]
Allow embedder to observe changes to frame names
https://bugs.webkit.org/show_bug.cgi?id=104404

Reviewed by Darin Fisher.

Source/WebCore:

* loader/FrameLoaderClient.h:
(WebCore::FrameLoaderClient::didChangeName):
(FrameLoaderClient):
* page/DOMWindow.cpp:
(WebCore::DOMWindow::setName):

Source/WebKit/chromium:

* public/WebFrameClient.h:
(WebFrameClient):
(WebKit::WebFrameClient::didChangeName):
* src/FrameLoaderClientImpl.cpp:
(WebKit::FrameLoaderClientImpl::didChangeName):
(WebKit):
* src/FrameLoaderClientImpl.h:
(FrameLoaderClientImpl):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@137776 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years ago[Chromium] IndexedDB: Memory leak in IDBCallbacksProxy::onSuccess(PassRefPtr<IDBDatab...
jsbell@chromium.org [Fri, 14 Dec 2012 22:31:53 +0000 (22:31 +0000)]
[Chromium] IndexedDB: Memory leak in IDBCallbacksProxy::onSuccess(PassRefPtr<IDBDatabaseBackendInterface>)
https://bugs.webkit.org/show_bug.cgi?id=104615

Reviewed by Tony Chang.

Don't create (and leak) a new wrapper object for onSuccess if one was created for onUpgradeNeeded.

* src/IDBCallbacksProxy.cpp:
(WebKit::IDBCallbacksProxy::IDBCallbacksProxy):
(WebKit::IDBCallbacksProxy::onSuccess):
(WebKit::IDBCallbacksProxy::onUpgradeNeeded):
* src/IDBCallbacksProxy.h:
(IDBCallbacksProxy):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@137773 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years ago[Resource Timing] Properly report reused connections
simonjam@chromium.org [Fri, 14 Dec 2012 22:30:20 +0000 (22:30 +0000)]
[Resource Timing] Properly report reused connections
https://bugs.webkit.org/show_bug.cgi?id=104986

Reviewed by Tony Gentilcore.

Source/WebCore:

Test: http/tests/w3c/webperf/submission/resource-timing/html/test_resource_connection_reuse.html

* page/PerformanceResourceTiming.cpp:
(WebCore::PerformanceResourceTiming::PerformanceResourceTiming):
(WebCore::PerformanceResourceTiming::connectStart):
(WebCore::PerformanceResourceTiming::connectEnd):
* page/PerformanceResourceTiming.h:
(PerformanceResourceTiming):

LayoutTests:

* http/tests/w3c/webperf/submission/resource-timing/html/test_resource_connection_reuse-expected.txt: Added.
* http/tests/w3c/webperf/submission/resource-timing/html/test_resource_connection_reuse.html: Added.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@137772 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agoEnable video caption controls on Windows.
roger_fong@apple.com [Fri, 14 Dec 2012 22:18:23 +0000 (22:18 +0000)]
Enable video caption controls on Windows.
https://bugs.webkit.org/show_bug.cgi?id=105045.

Reviewed by Eric Carlson.

Now that video tracks have been enabled on Windows, enable controls as well.

* html/shadow/MediaControlElements.cpp:
(WebCore::MediaControlToggleClosedCaptionsButtonElement::MediaControlToggleClosedCaptionsButtonElement):
(WebCore::MediaControlToggleClosedCaptionsButtonElement::defaultEventHandler):
* html/shadow/MediaControlElements.h:
* rendering/RenderThemeWin.h:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@137771 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years ago"Running 1 DumpRenderTree over X shards" is not a helpful output
rniwa@webkit.org [Fri, 14 Dec 2012 22:13:54 +0000 (22:13 +0000)]
"Running 1 DumpRenderTree over X shards" is not a helpful output
https://bugs.webkit.org/show_bug.cgi?id=104858

Reviewed by Dirk Pranke.

The word "shard" is not typically used in test frameworks. This word is confusing for many WebKit
contributors who typically don't have much experience on distributed computations and databases.
So only print this message out in the debug mode.

* Scripts/webkitpy/layout_tests/run_webkit_tests_integrationtest.py:
* Scripts/webkitpy/layout_tests/views/printing.py:
(Printer.print_workers_and_shards):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@137770 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agofast/dom/HTMLTemplateElement/inertContents.html is flaky
adamk@chromium.org [Fri, 14 Dec 2012 22:11:18 +0000 (22:11 +0000)]
fast/dom/HTMLTemplateElement/inertContents.html is flaky
https://bugs.webkit.org/show_bug.cgi?id=104023

Reviewed by Eric Seidel.

Made the test only check inertness using <script>, since
<img>s are currently flaky due to the preload scanner.

* fast/dom/HTMLTemplateElement/inertContents-expected.txt:
* fast/dom/HTMLTemplateElement/inertContents.html:
* platform/chromium/TestExpectations:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@137769 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agoDownloadProxyMap should keep track of outstanding DownloadProxy objects
andersca@apple.com [Fri, 14 Dec 2012 22:07:32 +0000 (22:07 +0000)]
DownloadProxyMap should keep track of outstanding DownloadProxy objects
https://bugs.webkit.org/show_bug.cgi?id=105053

Reviewed by Andreas Kling.

This is more work towards removing the m_downloads map from every WebContext object.

* UIProcess/Downloads/DownloadProxy.cpp:
(WebKit::DownloadProxy::didFinish):
(WebKit::DownloadProxy::didFail):
(WebKit::DownloadProxy::didCancel):
* UIProcess/Downloads/DownloadProxyMap.cpp:
(WebKit::DownloadProxyMap::createDownloadProxy):
(WebKit):
(WebKit::DownloadProxyMap::downloadFinished):
* UIProcess/Downloads/DownloadProxyMap.h:
(DownloadProxyMap):
* UIProcess/WebContext.cpp:
(WebKit::WebContext::createDownloadProxy):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@137768 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agoIntroducing the DatabaseStrategy and database servers.
mark.lam@apple.com [Fri, 14 Dec 2012 21:57:58 +0000 (21:57 +0000)]
Introducing the DatabaseStrategy and database servers.
https://bugs.webkit.org/show_bug.cgi?id=104934.

Reviewed by Sam Weinig.

The database server is currently a placeholder that does nothing.

Source/WebCore:

No new tests.

* CMakeLists.txt:
* GNUmakefile.list.am:
* Modules/webdatabase/AbstractDatabaseServer.h: Added.
(WebCore):
(AbstractDatabaseServer):
(WebCore::AbstractDatabaseServer::AbstractDatabaseServer):
(WebCore::AbstractDatabaseServer::~AbstractDatabaseServer):
* Modules/webdatabase/DBBackendServer.h: Added.
(DBBackend):
* Modules/webdatabase/DatabaseManager.cpp:
(WebCore::DatabaseManager::DatabaseManager):
* Modules/webdatabase/DatabaseManager.h:
(WebCore):
(DatabaseManager):
* Target.pri:
* WebCore.exp.in:
* WebCore.gypi:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.xcodeproj/project.pbxproj:
* platform/DatabaseStrategy.cpp: Added.
(WebCore):
(WebCore::DatabaseStrategy::getDatabaseServer):
* platform/DatabaseStrategy.h: Added.
(WebCore):
(DatabaseStrategy):
(WebCore::DatabaseStrategy::~DatabaseStrategy):
* platform/PlatformStrategies.h:
(WebCore):
(WebCore::PlatformStrategies::databaseStrategy):
(PlatformStrategies):
(WebCore::PlatformStrategies::PlatformStrategies):

Source/WebKit/efl:

* WebCoreSupport/PlatformStrategiesEfl.cpp:
(PlatformStrategiesEfl::createDatabaseStrategy):
* WebCoreSupport/PlatformStrategiesEfl.h:
(PlatformStrategiesEfl):

Source/WebKit/gtk:

* WebCoreSupport/PlatformStrategiesGtk.cpp:
(PlatformStrategiesGtk::createDatabaseStrategy):
* WebCoreSupport/PlatformStrategiesGtk.h:
(PlatformStrategiesGtk):

Source/WebKit/mac:

* WebCoreSupport/WebPlatformStrategies.h:
(WebPlatformStrategies):
* WebCoreSupport/WebPlatformStrategies.mm:
(WebPlatformStrategies::createDatabaseStrategy):

Source/WebKit/qt:

* WebCoreSupport/PlatformStrategiesQt.cpp:
(PlatformStrategiesQt::createDatabaseStrategy):
* WebCoreSupport/PlatformStrategiesQt.h:
(PlatformStrategiesQt):

Source/WebKit/win:

* WebCoreSupport/WebPlatformStrategies.cpp:
(WebPlatformStrategies::createDatabaseStrategy):
* WebCoreSupport/WebPlatformStrategies.h:
(WebPlatformStrategies):

Source/WebKit/wince:

* WebCoreSupport/PlatformStrategiesWinCE.cpp:
(PlatformStrategiesWinCE::createDatabaseStrategy):
* WebCoreSupport/PlatformStrategiesWinCE.h:
(PlatformStrategiesWinCE):

Source/WebKit2:

* CMakeLists.txt:
* WebProcess/WebCoreSupport/WebPlatformStrategies.cpp:
(WebKit::WebPlatformStrategies::createDatabaseStrategy):
(WebKit):
(WebKit::WebPlatformStrategies::getDatabaseServer):
* WebProcess/WebCoreSupport/WebPlatformStrategies.h:
(WebPlatformStrategies):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@137767 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years ago Resource loads sometimes stall
ap@apple.com [Fri, 14 Dec 2012 21:25:22 +0000 (21:25 +0000)]
    Resource loads sometimes stall
        https://bugs.webkit.org/show_bug.cgi?id=104976

        Apply the same quick an dirty fix to BlockingBoolResponseMap.

        * Shared/BlockingResponseMap.h:
        (BlockingBoolResponseMap::didReceiveResponse):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@137766 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agoSend a message from WebViewImpl to the compositor to inform about end of flings
commit-queue@webkit.org [Fri, 14 Dec 2012 21:17:08 +0000 (21:17 +0000)]
Send a message from WebViewImpl to the compositor to inform about end of flings
https://bugs.webkit.org/show_bug.cgi?id=104947

Patch by Yusuf Ozuysal <yusufo@google.com> on 2012-12-14
Reviewed by James Robinson.

Whenever we have a fling animation finished on cancelled on main thread this sends
a message that will be relayed to the compositor input handler. Then the input handler
keeps track of main thread fling with a boolean and doesn't send flingCancels
unnecessarily

Source/Platform:

* chromium/public/WebInputHandler.h:
(WebInputHandler):
* chromium/public/WebLayerTreeView.h:
(WebLayerTreeView):
(WebKit::WebLayerTreeView::mainThreadHasStoppedFlinging):

Source/WebKit/chromium:

* src/WebCompositorInputHandlerImpl.cpp:
(WebKit::WebCompositorInputHandlerImpl::WebCompositorInputHandlerImpl):
(WebKit::WebCompositorInputHandlerImpl::handleInputEventInternal):
(WebKit::WebCompositorInputHandlerImpl::handleGestureFling):
(WebKit::WebCompositorInputHandlerImpl::mainThreadHasStoppedFlinging):
(WebKit):
* src/WebCompositorInputHandlerImpl.h:
(WebCompositorInputHandlerImpl):
* src/WebViewImpl.cpp:
(WebKit::WebViewImpl::handleGestureEvent):
(WebKit::WebViewImpl::handleKeyEvent):
(WebKit::WebViewImpl::updateAnimations):
(WebKit::WebViewImpl::didCommitLoad):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@137765 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agoSource/WebCore: Text Autosizing: Consider inline-block and inline-table elements...
commit-queue@webkit.org [Fri, 14 Dec 2012 21:07:07 +0000 (21:07 +0000)]
Source/WebCore: Text Autosizing: Consider inline-block and inline-table elements to be autosizing clusters.
https://bugs.webkit.org/show_bug.cgi?id=104702

Patch by Anton Vayvod <avayvod@chromium.org> on 2012-12-14
Reviewed by Julien Chaffraix.

A common pattern for creating adjacent columns in CSS is to set each of the columns to
display:inline-block, display:inline-table or alike WebKit-specific styles. Whenever columns
are used, Text Autosizing needs to assign each of the columns to different clusters (since
the user can zoom in such that a column fills the width of the screen, so text within a column
should have a smaller multiplier than it's wider enclosing cluster would have needed).

This patch causes display:inline-block, display:inline-table and alike styles to trigger new clusters.

Test: fast/text-autosizing/cluster-inline-block-or-table.html
Test: fast/text-autosizing/cluster-inline-grid-flex-box.html

* rendering/TextAutosizer.cpp:
(WebCore::TextAutosizer::isAutosizingContainer):
(WebCore::TextAutosizer::isAutosizingCluster):
    Consider display:inline-block, inline-table and alike elements to be autosizing containers and clusters.

LayoutTests: Consider inline-block and inline-table elements to be autosizing clusters.
https://bugs.webkit.org/show_bug.cgi?id=104702

Patch by Anton Vayvod <avayvod@chromium.org> on 2012-12-14
Reviewed by Julien Chaffraix.

Added tests to verify that display:inline-block, display:inline-table and alike elements become clusters.

* fast/text-autosizing/cluster-inline-block-or-table-expected.html: Added.
* fast/text-autosizing/cluster-inline-block-or-table.html: Added.
* fast/text-autosizing/cluster-inline-grid-flex-box-expected.html: Added.
* fast/text-autosizing/cluster-inline-grid-flex-box.html: Added.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@137764 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agoREGRESSION (r137607): Cannot download files, stuck in "Preparing to download"
andersca@apple.com [Fri, 14 Dec 2012 20:49:09 +0000 (20:49 +0000)]
REGRESSION (r137607): Cannot download files, stuck in "Preparing to download"
https://bugs.webkit.org/show_bug.cgi?id=105044
<rdar://problem/12879657>

Reviewed by Alexey Proskuryakov.

Make ResourceHandle::cancel return early if the handle has been converted to a download.

* platform/network/mac/ResourceHandleMac.mm:
(WebCore::ResourceHandle::cancel):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@137763 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agoMarking these tests as failure for now.
bdakin@apple.com [Fri, 14 Dec 2012 20:27:36 +0000 (20:27 +0000)]
Marking these tests as failure for now.
https://bugs.webkit.org/show_bug.cgi?id=105049 tracks fixing the issue.

* platform/mac/TestExpectations:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@137762 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agoUnreviewed, rolling out r137570.
commit-queue@webkit.org [Fri, 14 Dec 2012 20:16:33 +0000 (20:16 +0000)]
Unreviewed, rolling out r137570.
http://trac.webkit.org/changeset/137570
https://bugs.webkit.org/show_bug.cgi?id=105048

Stale nodes in the touchEventTarget HashCountedSet are
triggering crashes. Rolling out while I find the root cause.
(Requested by leviw on #webkit).

Patch by Sheriff Bot <webkit.review.bot@gmail.com> on 2012-12-14

Source/WebCore:

* dom/Document.cpp:
(WebCore::Document::Document):
(WebCore::Document::didAddTouchEventHandler):
(WebCore::Document::didRemoveTouchEventHandler):
* dom/Document.h:
(WebCore::Document::touchEventHandlerCount):
(Document):
* dom/Node.cpp:
(WebCore::Node::didMoveToNewDocument):
(WebCore::tryAddEventListener):
(WebCore::tryRemoveEventListener):
* history/CachedFrame.cpp:
(WebCore::CachedFrameBase::restore):
* html/HTMLInputElement.cpp:
(WebCore::HTMLInputElement::~HTMLInputElement):
(WebCore::HTMLInputElement::updateType):
* page/DOMWindow.cpp:
(WebCore::DOMWindow::addEventListener):
(WebCore::DOMWindow::removeEventListener):
* page/EventHandler.cpp:
(WebCore::EventHandler::handleTouchEvent):
* page/Frame.cpp:
(WebCore::Frame::setDocument):
* page/scrolling/ScrollingCoordinator.cpp:
* page/scrolling/ScrollingCoordinator.h:
* page/scrolling/chromium/ScrollingCoordinatorChromium.cpp:
(WebCore::ScrollingCoordinatorChromium::frameViewLayoutUpdated):
* page/scrolling/chromium/ScrollingCoordinatorChromium.h:
(ScrollingCoordinatorChromium):
* testing/Internals.cpp:
(WebCore::Internals::touchEventHandlerCount):
* testing/Internals.h:
(Internals):
* testing/Internals.idl:

Source/WebKit/chromium:

* features.gypi:
* src/WebPluginContainerImpl.cpp:
(WebKit::WebPluginContainerImpl::requestTouchEventType):
(WebKit::WebPluginContainerImpl::~WebPluginContainerImpl):

LayoutTests:

* platform/chromium/fast/events/touch/compositor-touch-hit-rects-expected.txt: Removed.
* platform/chromium/fast/events/touch/compositor-touch-hit-rects.html: Removed.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@137761 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agoUnreviewed GTK gardening.
zandobersek@gmail.com [Fri, 14 Dec 2012 19:26:04 +0000 (19:26 +0000)]
Unreviewed GTK gardening.

Adding crash expectations for two regressions after r137487 and r137607.

* platform/gtk/TestExpectations:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@137758 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agoUnreviewed rebaselines on Win7 port after r137336.
roger_fong@apple.com [Fri, 14 Dec 2012 19:24:46 +0000 (19:24 +0000)]
Unreviewed rebaselines on Win7 port after r137336.

* media/video-controls-captions-trackmenu.html:
* platform/win/fast/css-generated-content: Added.
* platform/win/fast/css-generated-content/table-row-group-to-inline-expected.txt: Added.
* platform/win/fast/css/empty-generated-content-expected.txt: Added.
* platform/win/http/tests/misc: Added.
* platform/win/http/tests/misc/acid3-expected.txt: Added.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@137757 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agoAdd a DownloadsProxyMap class in preparation for moving the downloads map away from...
andersca@apple.com [Fri, 14 Dec 2012 18:47:59 +0000 (18:47 +0000)]
Add a DownloadsProxyMap class in preparation for moving the downloads map away from WebContext
https://bugs.webkit.org/show_bug.cgi?id=104980

Reviewed by Andreas Kling.

Currently the DownloadProxyMap doesn't really do anything; this initial change is to make sure that
adding the new files won't break any builds.

* CMakeLists.txt:
* GNUmakefile.list.am:
* Target.pri:
* UIProcess/Downloads/DownloadProxyMap.cpp: Added.
(WebKit):
(WebKit::DownloadProxyMap::shared):
(WebKit::DownloadProxyMap::DownloadProxyMap):
(WebKit::DownloadProxyMap::~DownloadProxyMap):
(WebKit::DownloadProxyMap::createDownloadProxy):
* UIProcess/Downloads/DownloadProxyMap.h: Added.
(WebKit):
(DownloadProxyMap):
* UIProcess/WebContext.cpp:
(WebKit::WebContext::createDownloadProxy):
* WebKit2.xcodeproj/project.pbxproj:
* win/WebKit2.vcproj:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@137756 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agoFix assertion failure when the network process is enabled
andersca@apple.com [Fri, 14 Dec 2012 18:42:37 +0000 (18:42 +0000)]
Fix assertion failure when the network process is enabled
https://bugs.webkit.org/show_bug.cgi?id=105040
<rdar://problem/12883632>

Reviewed by Alexey Proskuryakov.

Make sure that we don't call into the download manager when running with a network process.

* WebProcess/WebProcess.cpp:
(WebKit::WebProcess::shouldTerminate):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@137755 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years ago[CSS Shaders] Remove code for the other mesh box types (border-box | padding-box...
michelangelo@webkit.org [Fri, 14 Dec 2012 18:35:32 +0000 (18:35 +0000)]
[CSS Shaders] Remove code for the other mesh box types (border-box | padding-box | content-box)
https://bugs.webkit.org/show_bug.cgi?id=103776

Reviewed by Dean Jackson.

Source/WebCore:

The MeshBoxType has been removed and the code has been refactored. The specs will be updated shortly
and therefore this feature - even though it was not fully implemented yet - shall not be used anymore.

In this patch we remove everything but the parsing code, which shall be addressed in a different patch
(see: https://bugs.webkit.org/show_bug.cgi?id=103778).

Specification to be updated: http://dvcs.w3.org/hg/FXTF/raw-file/tip/filters/index.html#ltboxgt

Existing tests have been updated and new parsing legacy cases have been added.

* css/CSSComputedStyleDeclaration.cpp:
(WebCore::CSSComputedStyleDeclaration::valueForFilter):
* css/CSSParser.cpp:
(WebCore::CSSParser::parseCustomFilter):
* css/CSSPrimitiveValueMappings.h:
* css/StyleResolver.cpp:
(WebCore::StyleResolver::createCustomFilterOperation):
* platform/graphics/filters/CustomFilterConstants.h:
* platform/graphics/filters/CustomFilterOperation.cpp:
(WebCore::CustomFilterOperation::CustomFilterOperation):
(WebCore::CustomFilterOperation::blend):
* platform/graphics/filters/CustomFilterOperation.h:
(WebCore::CustomFilterOperation::create):
(CustomFilterOperation):
(WebCore::CustomFilterOperation::operator==):
* platform/graphics/filters/CustomFilterRenderer.cpp:
(WebCore::CustomFilterRenderer::create):
(WebCore::CustomFilterRenderer::CustomFilterRenderer):
* platform/graphics/filters/CustomFilterRenderer.h:
(CustomFilterRenderer):
* platform/graphics/filters/FECustomFilter.cpp:
(WebCore::FECustomFilter::FECustomFilter):
(WebCore::FECustomFilter::create):
* platform/graphics/filters/FECustomFilter.h:
(FECustomFilter):
* platform/graphics/filters/ValidatedCustomFilterOperation.cpp:
(WebCore::ValidatedCustomFilterOperation::ValidatedCustomFilterOperation):
* platform/graphics/filters/ValidatedCustomFilterOperation.h:
(WebCore::ValidatedCustomFilterOperation::create):
(WebCore::ValidatedCustomFilterOperation::operator==):
(ValidatedCustomFilterOperation):
* rendering/FilterEffectRenderer.cpp:
(WebCore::createCustomFilterEffect):
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::computeFilterOperations):
* platform/graphics/texmap/TextureMapperGL.cpp:
(WebCore::TextureMapperGL::drawUsingCustomFilter):

Source/WebKit2:

The MeshBoxType has been removed and the code has been refactored. The specs will be updated shortly
and therefore this feature - even though it was not fully implemented yet - shall not be used anymore.

In this patch we remove everything but the parsing code, which shall be addressed in a different patch
(see: https://bugs.webkit.org/show_bug.cgi?id=103778).

Specification to be updated: http://dvcs.w3.org/hg/FXTF/raw-file/tip/filters/index.html#ltboxgt

Existing tests have been updated and new parsing legacy cases have been added.

* Shared/CoordinatedGraphics/CoordinatedGraphicsArgumentCoders.cpp:
(CoreIPC::::encode):
(CoreIPC::::decode):
* Shared/CoordinatedGraphics/WebCustomFilterOperation.h:
(WebCore::WebCustomFilterOperation::create):
(WebCore::WebCustomFilterOperation::WebCustomFilterOperation):

LayoutTests:

MeshBoxBoxType has been removed from the spec and from the code.
Parsing code has been retained for legacy reason and will be updated in a different patch
(see: https://bugs.webkit.org/show_bug.cgi?id=103778).

Current tests have been updated and new legacy test cases have been added to custom-filter-property-parsing.

* css3/filters/custom/custom-filter-animation-expected.txt:
* css3/filters/custom/custom-filter-animation.html:
* css3/filters/custom/custom-filter-array-blending-expected.txt:
* css3/filters/custom/custom-filter-array-blending.html:
* css3/filters/custom/custom-filter-property-computed-style-expected.txt:
* css3/filters/custom/custom-filter-property-parsing-expected.txt:
* css3/filters/custom/custom-filter-transforms-animation-expected.txt:
* css3/filters/custom/custom-filter-transforms-animation.html:
* css3/filters/script-tests/custom-filter-property-computed-style.js:
* css3/filters/script-tests/custom-filter-property-parsing.js:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@137754 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years ago[BlackBerry] Allow plugins to be disabled by shared library filename
commit-queue@webkit.org [Fri, 14 Dec 2012 17:53:45 +0000 (17:53 +0000)]
[BlackBerry] Allow plugins to be disabled by shared library filename
https://bugs.webkit.org/show_bug.cgi?id=101274

Patch by Parth Patel <parpatel@rim.com> on 2012-12-14
Reviewed by Yong Li.

Fixing build error.

* Api/WebPage.cpp:
(BlackBerry::WebKit::WebPage::setExtraPluginDirectory):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@137753 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years ago <rdar://problem/12880750> RGRESSION: Crash when emptying cookie jar
ap@apple.com [Fri, 14 Dec 2012 17:53:18 +0000 (17:53 +0000)]
    <rdar://problem/12880750> RGRESSION: Crash when emptying cookie jar
        https://bugs.webkit.org/show_bug.cgi?id=105038

        Reviewed by Jessie Berlin.

        Handle null context, which is used for cookie management functions.

        * WebProcess/WebCoreSupport/WebPlatformStrategies.cpp:
        (WebKit::WebPlatformStrategies::cookiesForDOM):
        (WebKit::WebPlatformStrategies::setCookiesFromDOM):
        (WebKit::WebPlatformStrategies::cookiesEnabled):
        (WebKit::WebPlatformStrategies::cookieRequestHeaderFieldValue):
        (WebKit::WebPlatformStrategies::getRawCookies):
        (WebKit::WebPlatformStrategies::deleteCookie):
        (WebKit::WebPlatformStrategies::getHostnamesWithCookies):
        (WebKit::WebPlatformStrategies::deleteCookiesForHostname):
        (WebKit::WebPlatformStrategies::deleteAllCookies):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@137752 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agoWeb Inspector: optional parameters of protocol commands should go after required...
yurys@chromium.org [Fri, 14 Dec 2012 17:21:20 +0000 (17:21 +0000)]
Web Inspector: optional parameters of protocol commands should go after required ones
https://bugs.webkit.org/show_bug.cgi?id=105019

Reviewed by Pavel Feldman.

* inspector/Inspector.json: Moved required x and y parameters declaration before
optional ones.
* inspector/InspectorInputAgent.cpp:
(WebCore::InspectorInputAgent::dispatchMouseEvent):
* inspector/InspectorInputAgent.h:
(InspectorInputAgent):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@137751 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agoMac build fix after r137724.
jberlin@webkit.org [Fri, 14 Dec 2012 17:19:36 +0000 (17:19 +0000)]
Mac build fix after r137724.

* platform/graphics/MediaPlayer.h:
(WebCore::MediaPlayerClient::mediaPlayerKeyAdded):
Comment out the names of the unused parameters so they don't trigger unused parameter
warnings.
(WebCore::MediaPlayerClient::mediaPlayerKeyError):
Ditto.
(WebCore::MediaPlayerClient::mediaPlayerKeyMessage):
Ditto.
(WebCore::MediaPlayerClient::mediaPlayerKeyNeeded):
Ditto.

* platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
(WebCore::MediaPlayerPrivateAVFoundationObjC::generateKeyRequest):
Pass an empty URL for the new defaultURL parameter in the keyMessage call.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@137750 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agoUnreviewed. Rolled DEPS.
senorblanco@chromium.org [Fri, 14 Dec 2012 17:00:16 +0000 (17:00 +0000)]
Unreviewed.  Rolled DEPS.

* DEPS:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@137749 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years ago[GTK] When in private mode WebKitGTK+ should not save HTTP authentication credentials...
commit-queue@webkit.org [Fri, 14 Dec 2012 16:57:55 +0000 (16:57 +0000)]
[GTK] When in private mode WebKitGTK+ should not save HTTP authentication credentials to the persistent storage
https://bugs.webkit.org/show_bug.cgi?id=104910

Patch by Alberto Garcia <agarcia@igalia.com> on 2012-12-14
Reviewed by Martin Robinson.

Source/WebCore:

Add new parameter to GtkAuthenticationDialog to select whether we
allow persistent storage of credential information or not. In the
latter case, the "Remember password" check button is not shown and
the credentials are always stored in the session.

* platform/gtk/GtkAuthenticationDialog.cpp:
(WebCore::GtkAuthenticationDialog::GtkAuthenticationDialog):
(WebCore::GtkAuthenticationDialog::createContentsInContainer):
(WebCore::GtkAuthenticationDialog::buttonClickedCallback):
* platform/gtk/GtkAuthenticationDialog.h:
(GtkAuthenticationDialog):

Source/WebKit/gtk:

* WebCoreSupport/FrameLoaderClientGtk.cpp:
(WebKit::FrameLoaderClient::dispatchDidReceiveAuthenticationChallenge):
When creating the GtkAuthenticationDialog, set the credential
storage mode using the private browsing setting from the current
page.

* webkit/webkitsoupauthdialog.cpp:
(sessionAuthenticate):
Create the GtkAuthenticationDialog with no persistent storage
allowed, as we are not handling the credential persistence here.

Source/WebKit2:

* UIProcess/API/gtk/WebKit2GtkAuthenticationDialog.cpp:
(WebKit::WebKit2GtkAuthenticationDialog::WebKit2GtkAuthenticationDialog):
* UIProcess/API/gtk/WebKit2GtkAuthenticationDialog.h:
(WebKit2GtkAuthenticationDialog):
GtkAuthenticationDialog has a new credential storage mode
parameter, so add it here too.

* UIProcess/API/gtk/WebKitWebView.cpp:
(webkitWebViewHandleAuthenticationChallenge):
When creating the GtkAuthenticationDialog, set the credential
storage mode using the private browsing setting from the current
page.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@137748 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agoUnreviewed. Rolled DEPS.
senorblanco@chromium.org [Fri, 14 Dec 2012 16:18:37 +0000 (16:18 +0000)]
Unreviewed.  Rolled DEPS.

* DEPS:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@137747 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years ago[EFL][WK2] Fix EFL build after r137718
commit-queue@webkit.org [Fri, 14 Dec 2012 16:12:03 +0000 (16:12 +0000)]
[EFL][WK2] Fix EFL build after r137718
https://bugs.webkit.org/show_bug.cgi?id=105018

Unreviewed build fix.

The problem was that UNUSED_PARAM(size) was left in the code
for non-existent variable 'size'.

Patch by Mikhail Pozdnyakov <mikhail.pozdnyakov@intel.com> on 2012-12-14

* UIProcess/efl/PageClientDefaultImpl.cpp:
(WebKit::PageClientDefaultImpl::updateViewportSize):
* UIProcess/efl/PageClientLegacyImpl.cpp:
(WebKit::PageClientLegacyImpl::updateViewportSize):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@137746 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years ago[Chromium gardening] Set expectations for platform/chromium/virtual/gpu/compositedscr...
wjmaclean@chromium.org [Fri, 14 Dec 2012 15:45:46 +0000 (15:45 +0000)]
[Chromium gardening] Set expectations for platform/chromium/virtual/gpu/compositedscrolling/scrollbars/scrollbar-drag-thumb-with-large-content-expected.html

Unreviewed gardening change.

Need to mirror the expectations for the virtual tests against those for the
original.

* platform/chromium/TestExpectations:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@137745 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agoUnreviewed, rolling out r129633 and r129757.
caseq@chromium.org [Fri, 14 Dec 2012 15:35:14 +0000 (15:35 +0000)]
Unreviewed, rolling out r129633 and r129757.
http://trac.webkit.org/changeset/129633
http://trac.webkit.org/changeset/129757
https://bugs.webkit.org/show_bug.cgi?id=97659

Causes performance regression whn inspector overlay is
displayed

* inspector/InspectorOverlay.cpp:
(WebCore::InspectorOverlay::paint):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@137744 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years ago[BlackBerry][Fullscreen] Exiting fullscreen does not set the correct scroll position
zhajiang@rim.com [Fri, 14 Dec 2012 15:33:11 +0000 (15:33 +0000)]
[BlackBerry][Fullscreen] Exiting fullscreen does not set the correct scroll position
https://bugs.webkit.org/show_bug.cgi?id=104958

Patch by Jacky Jiang  <zhajiang@rim.com>.
Reviewed by Antonio Gomes.
Internally reviewed by Arvid Nilsson and Max Feil.

PR: 231174
When leaving fullscreen, WebPage scale and scroll position can't return
to the original scale and scroll position.
We can't restore them in WebPagePrivate::exitFullScreenForElement()
as they can still be changed thereafter during the async
setViewportSize(). And also the async setViewportSize() from the app
side isn't guaranteed as some apps don't need to resize the viewport if
their windows are already fullscreen.
The restoration is basically only needed if viewport size is changed.
At the point of entering fullscreen, we can safely assume that there
would be a viewport size change thereafter if the current visible size
and screen size are not equal. Based on this assumption, we can save
the scale and position before entering fullscreen and restore them in
setViewportSize() thereafter.

* Api/WebPage.cpp:
(BlackBerry::WebKit::WebPagePrivate::WebPagePrivate):
(BlackBerry::WebKit::WebPagePrivate::setViewportSize):
* Api/WebPage_p.h:
(WebPagePrivate):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@137743 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agoWeb Inspector: add data grid for exploring native heap graph
yurys@chromium.org [Fri, 14 Dec 2012 14:10:00 +0000 (14:10 +0000)]
Web Inspector: add data grid for exploring native heap graph
https://bugs.webkit.org/show_bug.cgi?id=105012

Reviewed by Pavel Feldman.

Source/WebCore:

Added a view for displaying native heap graph nodes.

* inspector/HeapGraphSerializer.cpp:
(WebCore::HeapGraphSerializer::reportEdge):
* inspector/front-end/NativeMemorySnapshotView.js:
(WebInspector.NativeMemorySnapshotView):
(WebInspector.NativeMemorySnapshotView.prototype._onSelectedViewChanged):
(WebInspector.NativeMemorySnapshotView.prototype.get statusBarItems):
(WebInspector.NativeHeapGraphNode):
(WebInspector.NativeHeapGraphNode.prototype.id):
(WebInspector.NativeHeapGraphNode.prototype.type):
(WebInspector.NativeHeapGraphNode.prototype.size):
(WebInspector.NativeHeapGraphNode.prototype.className):
(WebInspector.NativeHeapGraphNode.prototype.name):
(WebInspector.NativeHeapGraphNode.prototype.hasReferencedNodes):
(WebInspector.NativeHeapGraphNode.prototype.referencedNodes):
(WebInspector.NativeHeapGraphNode.prototype._firstEdgePoistion):
(WebInspector.NativeHeapGraphNode.prototype._afterLastEdgePosition):
(WebInspector.NativeHeapGraphNode.prototype._getStringField):
(WebInspector.NativeHeapGraph):
(WebInspector.NativeHeapGraph.prototype.rootNodes):
(WebInspector.NativeHeapGraph.prototype._calculateNodeEdgeIndexes):
(WebInspector.NativeHeapGraphDataGrid):
(WebInspector.NativeHeapGraphDataGridRoot):
(WebInspector.NativeHeapGraphDataGridRoot.prototype._populate):
(WebInspector.NativeHeapGraphDataGridNode):
(WebInspector.NativeHeapGraphDataGridNode.prototype._populate):
(WebInspector.NativeMemoryProfileType.prototype.buttonClicked.didReceiveMemorySnapshot):
(WebInspector.NativeMemoryProfileType.prototype.buttonClicked):

Source/WTF:

Do not report edges with null target.

* wtf/MemoryInstrumentation.h:
(WTF::MemoryInstrumentation::addObjectImpl):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@137742 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agoWeb Inspector: Native Memory Instrumentation: do not validate InlineFlowBox objects...
loislo@chromium.org [Fri, 14 Dec 2012 13:54:22 +0000 (13:54 +0000)]
Web Inspector: Native Memory Instrumentation: do not validate InlineFlowBox objects against tcmalloc data.
https://bugs.webkit.org/show_bug.cgi?id=105001

Reviewed by Yury Semikhatsky.

This is a follow-up change for r137589.

* rendering/InlineFlowBox.cpp:
(WebCore::InlineFlowBox::reportMemoryUsage):
(WebCore):
* rendering/InlineFlowBox.h:
(InlineFlowBox):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@137741 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years ago[Chromium] Unreviewed rebaseline after Skia roll @6773.
fmalita@chromium.org [Fri, 14 Dec 2012 13:49:49 +0000 (13:49 +0000)]
[Chromium] Unreviewed rebaseline after Skia roll @6773.

* platform/chromium-linux/fast/borders/borderRadiusDotted02-expected.png:
* platform/chromium-linux/fast/borders/borderRadiusDotted03-expected.png:
* platform/chromium-linux/fast/borders/borderRadiusDotted04-expected.png:
* platform/chromium-mac/fast/borders/borderRadiusDotted02-expected.png:
* platform/chromium-mac/fast/borders/borderRadiusDotted03-expected.png:
* platform/chromium-mac/fast/borders/borderRadiusDotted04-expected.png:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@137740 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agoChildNodesLazySnapshot::nextNode() can crash in Debug builds
haraken@chromium.org [Fri, 14 Dec 2012 12:04:28 +0000 (12:04 +0000)]
ChildNodesLazySnapshot::nextNode() can crash in Debug builds
https://bugs.webkit.org/show_bug.cgi?id=104982

Reviewed by Ryosuke Niwa.

The original fix in r137702 was not enough. r137702 fixed a crash
in Release builds but didn't fix a crash in Debug builds.
We have to also change a return type of ChildNodesLazySnapshot::nextNode()
from a raw pointer to a RefPtr.

Test: fast/dom/insertedIntoDocument-no-crash.html
(Confirm that this test does not crash in Debug builds.)

* dom/ContainerNode.h:
(WebCore::ChildNodesLazySnapshot::nextNode):
* dom/ContainerNodeAlgorithms.cpp:
(WebCore::ChildNodeInsertionNotifier::notifyDescendantInsertedIntoDocument):
(WebCore::ChildNodeRemovalNotifier::notifyDescendantRemovedFromDocument):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@137739 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agoText Autosizing: Don't autosize unwrappable blocks
commit-queue@webkit.org [Fri, 14 Dec 2012 11:58:39 +0000 (11:58 +0000)]
Text Autosizing: Don't autosize unwrappable blocks
https://bugs.webkit.org/show_bug.cgi?id=104925

Patch by John Mellor <johnme@chromium.org> on 2012-12-14
Reviewed by Julien Chaffraix.

Source/WebCore:

If we autosize an unwrappable block (white-space:nowrap/pre), it'll
expand sideways. This doesn't actually improve its legibility, and it
can often severely break web page layouts. This patch prevents us from
autosizing unwrappable blocks. A follow-up patch will address the more
complex issue of unwrappable inline elements.

Tests: fast/text-autosizing/unwrappable-blocks.html
       fast/text-autosizing/unwrappable-inlines.html

* rendering/TextAutosizer.cpp:
(WebCore::TextAutosizer::processContainer):
    Use containerShouldbeAutosized instead of contentHeightIsConstrained.
(WebCore::contentHeightIsConstrained):
    Unchanged, just moved lower down the file.
(WebCore::TextAutosizer::containerShouldbeAutosized):
    Checks that the block is wrappable, and also that contentHeightIsConstrained is false.
(WebCore::TextAutosizer::measureDescendantTextWidth):
    Use containerShouldbeAutosized instead of contentHeightIsConstrained.
* rendering/TextAutosizer.h:
    Declared containerShouldbeAutosized.

LayoutTests:

Added tests verifying that this prevents unwrappable blocks from being
autosized, and that this has no effect on unwrappable inlines.

* fast/text-autosizing/unwrappable-blocks-expected.html: Added.
* fast/text-autosizing/unwrappable-blocks.html: Added.
* fast/text-autosizing/unwrappable-inlines-expected.html: Added.
* fast/text-autosizing/unwrappable-inlines.html: Added.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@137738 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agoWeb Inspector: Duplicate scripts appear in workspace when script was referenced by...
vsevik@chromium.org [Fri, 14 Dec 2012 11:16:05 +0000 (11:16 +0000)]
Web Inspector: Duplicate scripts appear in workspace when script was referenced by url with a fragment part.
https://bugs.webkit.org/show_bug.cgi?id=105004

Reviewed by Alexander Pavlov.

* inspector/front-end/NetworkUISourceCodeProvider.js:
(WebInspector.NetworkUISourceCodeProvider.prototype._parsedScriptSource):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@137737 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agoRemove an exception message from insertedIntoDocument-no-crash-expected.txt
haraken@chromium.org [Fri, 14 Dec 2012 10:56:24 +0000 (10:56 +0000)]
Remove an exception message from insertedIntoDocument-no-crash-expected.txt
https://bugs.webkit.org/show_bug.cgi?id=104982

Reviewed by Ryosuke Niwa.

To make the test result identical in all platforms, this patch
removes an exception message from insertedIntoDocument-no-crash-expected.txt.

* fast/dom/insertedIntoDocument-no-crash-expected.txt:
* fast/dom/insertedIntoDocument-no-crash.html:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@137736 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agoUnreviewed. Rebaselined images.
haraken@chromium.org [Fri, 14 Dec 2012 10:54:15 +0000 (10:54 +0000)]
Unreviewed. Rebaselined images.

* platform/chromium-mac-lion/platform/chromium/virtual/gpu/compositedscrolling/scrollbars/custom-scrollbar-with-incomplete-style-expected.png: Added.
* platform/chromium-mac-snowleopard/platform/chromium/virtual/gpu/compositedscrolling/scrollbars/custom-scrollbar-with-incomplete-style-expected.png: Added.
* platform/chromium-mac/platform/chromium/virtual/gpu/compositedscrolling/scrollbars/custom-scrollbar-with-incomplete-style-expected.png: Added.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@137735 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agoUnreviewed. Marked fast/css/variables/case-insensitive.html as [ Pass Crash ]
haraken@chromium.org [Fri, 14 Dec 2012 10:51:34 +0000 (10:51 +0000)]
Unreviewed. Marked fast/css/variables/case-insensitive.html as [ Pass Crash ]

* platform/chromium/TestExpectations:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@137734 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agoHours field of date/time input UI should respect step attribute
commit-queue@webkit.org [Fri, 14 Dec 2012 09:32:28 +0000 (09:32 +0000)]
Hours field of date/time input UI should respect step attribute
https://bugs.webkit.org/show_bug.cgi?id=104993

Patch by Kunihiko Sakamoto <ksakamoto@chromium.org> on 2012-12-14
Reviewed by Kent Tamura.

Source/WebCore:

This patch makes step-up/-down UI of the hours field respect step attribute when possible.

Test: fast/forms/time-multiple-fields/time-multiple-fields-stepup-stepdown-from-renderer.html

* html/shadow/DateTimeEditElement.cpp:
(WebCore::DateTimeEditBuilder::visitField): Pass step parameters to the hour field constructor.
* html/shadow/DateTimeFieldElements.cpp:
(WebCore::DateTimeHourFieldElement::DateTimeHourFieldElement): Add Parameters argument.
(WebCore::DateTimeHourFieldElement::create): Ditto.
* html/shadow/DateTimeFieldElements.h:
(DateTimeHourFieldElement): Ditto.

LayoutTests:

* fast/forms/time-multiple-fields/time-multiple-fields-stepup-stepdown-from-renderer-expected.txt:
* fast/forms/time-multiple-fields/time-multiple-fields-stepup-stepdown-from-renderer.html:
Added test cases for hour field.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@137733 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agoUnreviewed. Windows compilation fix after r137728.
yurys@chromium.org [Fri, 14 Dec 2012 09:30:22 +0000 (09:30 +0000)]
Unreviewed. Windows compilation fix after r137728.

* inspector/InspectorAllInOne.cpp:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@137732 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years ago[Shadow DOM] ShadowRoot.getElementById() should work outside document.
shinyak@chromium.org [Fri, 14 Dec 2012 09:23:22 +0000 (09:23 +0000)]
[Shadow DOM] ShadowRoot.getElementById() should work outside document.
https://bugs.webkit.org/show_bug.cgi?id=87815

Reviewed by Hajime Morita.

Source/WebCore:

ShadowRoot.getElementById() didn't work if ShadowRoot is outside document. We need to update id when an element
is in ShadowTree event if it is not in document.

For performance reason, we introduce IsInShadowTree flag, which enables us to check isInTreeScope() fast.
This is maintained in Element::insertedInto and removedFrom. Here, we're anxious about performance regression,
however our benchmark result shows this doesn't regress the performance.

I've measured Dromaeo/dom-modify.html and Parser/html5-full-render.html 2 times.

Dromaeo/dom-modify.html
     35.21,   35.27 [runs/s] --->   35.76,   35.56 [runs/s]
Parser/html5-full-render.html
   4328.51, 4254.94 [ms]     ---> 4277.14, 4222.43 [ms]

Test: fast/dom/shadow/getelementbyid-in-orphan.html

* dom/Element.cpp:
(WebCore::Element::insertedInto):
* dom/Element.h:
(WebCore::Element::updateId):
* dom/Node.cpp:
(WebCore::Node::insertedInto): If the parent node is in shadow tree, this node should be also in the same shadow tree.
Since this node is inserted, parentOrHostNode() will not be null.
(WebCore::Node::removedFrom): When node is removed from ShadowTree, its treeScope() should not be ShadowRoot.
* dom/Node.h:
(Node):
(WebCore::Node::isInShadowTree):
(WebCore::Node::isInTreeScope):

LayoutTests:

* fast/dom/shadow/getelementbyid-in-orphan-expected.txt: Added.
* fast/dom/shadow/getelementbyid-in-orphan.html: Added.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@137731 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agoLayerTreeAgent should only be enabled upon restore if it was previously in the enable...
commit-queue@webkit.org [Fri, 14 Dec 2012 09:08:30 +0000 (09:08 +0000)]
LayerTreeAgent should only be enabled upon restore if it was previously in the enabled state
https://bugs.webkit.org/show_bug.cgi?id=104887

Patch by Antoine Quint <graouts@apple.com> on 2012-12-14
Reviewed by Pavel Feldman.

Check that we were previously in the enabled state before re-enabling the agent upon restore,
as suggested by Pavel Feldman in follow-up discussion to https://bugs.webkit.org/show_bug.cgi?id=103513.

* inspector/InspectorLayerTreeAgent.cpp:
(WebCore::InspectorLayerTreeAgent::restore):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@137730 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agoWeb Inspector: CPU Profile: Search in "heavy" mode is very slow.
commit-queue@webkit.org [Fri, 14 Dec 2012 08:54:51 +0000 (08:54 +0000)]
Web Inspector: CPU Profile: Search in "heavy" mode is very slow.
https://bugs.webkit.org/show_bug.cgi?id=103682

Patch by Eugene Klyuchnikov <eustas@chromium.org> on 2012-12-14
Reviewed by Pavel Feldman.

In "heavy" mode the searchable tree is much larger than original tree.
That is why search can cause watchdog timer fired.

Simple optimization makes search much faster.

* inspector/front-end/CPUProfileView.js:
(WebInspector.CPUProfileView.prototype.searchCanceled):
Fix cleanup.
(WebInspector.CPUProfileView.prototype.matchesQuery):
Precompute regexp.
(WebInspector.CPUProfileView.prototype.performSearch):
Use precomputed regexp instead of generating one on each iteration.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@137729 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agoWeb Inspector: collect native heap graph and report it to the front-end
yurys@chromium.org [Fri, 14 Dec 2012 08:44:17 +0000 (08:44 +0000)]
Web Inspector: collect native heap graph and report it to the front-end
https://bugs.webkit.org/show_bug.cgi?id=104888

Reviewed by Pavel Feldman.

Added an option to serialize native heap graph in a format similar to that
of JS heap profiler and send it in reply to getProcessMemoryDistribution
command. This is a first attempt and we likely change the report mechanism to
use a stream instread of sending whole graph at once.

* CMakeLists.txt:
* GNUmakefile.list.am:
* Target.pri:
* WebCore.gypi:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.xcodeproj/project.pbxproj:
* inspector/HeapGraphSerializer.cpp: Added.
(WebCore):
(HeapGraphNode):
(WebCore::HeapGraphNode::HeapGraphNode):
(HeapGraphEdge):
(WebCore::HeapGraphEdge::HeapGraphEdge):
(WebCore::HeapGraphSerializer::HeapGraphSerializer):
(WebCore::HeapGraphSerializer::~HeapGraphSerializer):
(WebCore::HeapGraphSerializer::serialize):
(WebCore::HeapGraphSerializer::reportNode):
(WebCore::HeapGraphSerializer::reportEdge):
(WebCore::HeapGraphSerializer::reportLeaf):
(WebCore::HeapGraphSerializer::reportBaseAddress):
(WebCore::HeapGraphSerializer::adjutEdgeTargets):
(WebCore::HeapGraphSerializer::addString):
* inspector/HeapGraphSerializer.h: Copied from Source/WebCore/inspector/InspectorMemoryAgent.h.
(WebCore):
(HeapGraphSerializer):
* inspector/Inspector.json:
* inspector/InspectorMemoryAgent.cpp:
(WebCore::InspectorMemoryAgent::getProcessMemoryDistribution):
* inspector/InspectorMemoryAgent.h:
(InspectorMemoryAgent):
* inspector/MemoryInstrumentationImpl.cpp:
(WebCore::MemoryInstrumentationClientImpl::reportNode):
(WebCore):
(WebCore::MemoryInstrumentationClientImpl::reportEdge):
(WebCore::MemoryInstrumentationClientImpl::reportLeaf):
(WebCore::MemoryInstrumentationClientImpl::reportBaseAddress):
* inspector/MemoryInstrumentationImpl.h:
(WebCore):
(WebCore::MemoryInstrumentationClientImpl::MemoryInstrumentationClientImpl):
(MemoryInstrumentationClientImpl):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@137728 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agohttp/tests/inspector/resource-main-cookies.php is broken on Mac after r137585
commit-queue@webkit.org [Fri, 14 Dec 2012 08:33:54 +0000 (08:33 +0000)]
http/tests/inspector/resource-main-cookies.php is broken on Mac after r137585
https://bugs.webkit.org/show_bug.cgi?id=104977

Patch by Eugene Klyuchnikov <eustas@chromium.org> on 2012-12-14
Reviewed by Vsevolod Vlasov.

Adopted Webkit Bug 104893 changes.

* http/tests/inspector/resource-main-cookies.php: Adopted changes.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@137727 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agoHandling autoscroll in EventHandler should be re-factor
yosin@chromium.org [Fri, 14 Dec 2012 08:32:28 +0000 (08:32 +0000)]
Handling autoscroll in EventHandler should be re-factor
https://bugs.webkit.org/show_bug.cgi?id=104764

Reviewed by Hajime Morita.

This patch introduces new class AutoscrollController for moving autoscroll
and panscroll from EventHandler class for ease of maintenance of
EventHandler and ease of adding autoscroll related features, e.g. autoscroll
during drag-and-drop, autoscoll by gesture.

No new tests. This patch doesn't change behavior.

* CMakeLists.txt: Changed to add page/AutoscrollController.cpp
* GNUmakefile.list.am:  Changed to add page/AutoscrollController.{cpp,h}
* Target.pri:  Changed to add page/AutoscrollController.cpp
* WebCore.gypi: Changed to add page/AutoscrollController.{cpp,h}
* WebCore.vcproj/WebCore.vcproj: Changed to add page/AutoscrollController.{cpp,h}
* WebCore.xcodeproj/project.pbxproj: Changed to add page/AutoscrollController.{cpp,h}
* page/AutoscrollController.cpp: Added.
(WebCore::getMainFrame): Helper function.
(WebCore::AutoscrollController::AutoscrollController): Moved from EventHandler.
(WebCore::AutoscrollController::autoscrollRenderer): Moved from EventHandler.
(WebCore::AutoscrollController::autoscrollInProgress): Moved from EventHandler.
(WebCore::AutoscrollController::startAutoscrollForSelection): Replacement of EventHandler::handleAutoscroll().
(WebCore::AutoscrollController::stopAutoscrollTimer): Moveed from EventHandler.
(WebCore::AutoscrollController::updateAutoscrollRenderer): ditto
(WebCore::AutoscrollController::didPanScrollStart): Added for updating pan scrolling status of main frame.
(WebCore::AutoscrollController::didPanScrollStop): ditto
(WebCore::AutoscrollController::handleMouseReleaseEvent): Extracted from EventHandler.
(WebCore::AutoscrollController::panScrollInProgress): Replacement of EventHandler::m_panScrollInProgress.
(WebCore::AutoscrollController::startPanScrolling): Moved from EventHandler::startPanScrolling()
(WebCore::AutoscrollController::autoscrollTimerFired): Moved from EventHandler::autoscrollTimerFired().
(WebCore::AutoscrollController::startAutoscrollTimer): Moved from EventHandler::startAutoscrollTimer().
(WebCore::AutoscrollController::updatePanScrollState): Moved from EventHandler::updatePanScrollState().
* page/AutoscrollController.h: Added.
(AutoscrollController):
* page/EventHandler.cpp:
(WebCore::EventHandler::EventHandler): Changed autoscroll and panscroll related member variable initializations to m_autoscrollController initialization.
(WebCore::EventHandler::handleMouseDraggedEvent): Changed to call AutoscrollController::startAutoscrollForSelection().
(WebCore::EventHandler::handleMouseReleaseEvent): Changed to remove m_autoscrollInProgress reference.
(WebCore::EventHandler::didPanScrollStart): Added for updating pan scrolling status of main frame.
(WebCore::EventHandler::didPanScrollStop): ditto
(WebCore::EventHandler::startPanScrolling): Changed to call AutoscrollController::startPanScrolling().
(WebCore::EventHandler::autoscrollRenderer): Changed to use AutoscrollController.
(WebCore::EventHandler::updateAutoscrollRenderer): ditto
(WebCore::EventHandler::autoscrollInProgress): ditto
(WebCore::EventHandler::panScrollInProgress): Added to replace m_panScrollInProgress.
(WebCore::EventHandler::stopAutoscrollTimer): Changed to use AutoscrollController.
(WebCore::EventHandler::selectCursor): Changed to use panScrollInProgress().
(WebCore::EventHandler::handleMousePressEvent): Chagned to call AutoscrollController::handleMousePressEvent().
(WebCore::EventHandler::keyEvent): Changed to use panScrollInProgress().
* page/EventHandler.h:
(WebCore::EventHandler::autoscrollController): Added for using main frame's panScrollInProgress().
(WebCore::EventHandler::mouseDownWasInSubframe): Added for AutoscrollController.
* rendering/RenderBox.cpp:
(WebCore::RenderBox::canAutoscroll): Moved from EventHandler.cpp.
(WebCore::RenderBox::findAutoscrollable): Moved from EventHandler.cpp.
* rendering/RenderBox.h:
(RenderBox): Added new functions canAutoscroll() and findAutoscrollable().

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@137726 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agoCopy platform/win/fast/events/panScroll-* to platform/chromium-win/fast/events
yosin@chromium.org [Fri, 14 Dec 2012 08:27:05 +0000 (08:27 +0000)]
Copy platform/win/fast/events/panScroll-* to platform/chromium-win/fast/events
https://bugs.webkit.org/show_bug.cgi?id=104991

This patch copies pan scrolling related test from Win port to Chromium-Win port
for catching pan scrolling breakage on Chromium-Win port.

* platform/chromium/TestExpectations: Disables panScroll tests other than Windows.
* platform/chromium-win/fast/events/panScroll-click-hyperlink-expected.txt: Copied from platform/mac/fast/events.
* platform/chromium-win/fast/events/panScroll-click-hyperlink.html: ditto
* platform/chromium-win/fast/events/panScroll-event-fired-expected.txt: ditto
* platform/chromium-win/fast/events/panScroll-event-fired.html: ditto
* platform/chromium-win/fast/events/panScroll-nested-divs-expected.txt: ditto.
* platform/chromium-win/fast/events/panScroll-nested-divs.html: ditto

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@137725 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agoEME v0.1: Report defaultURL in KeyMessage.
commit-queue@webkit.org [Fri, 14 Dec 2012 08:25:00 +0000 (08:25 +0000)]
EME v0.1: Report defaultURL in KeyMessage.
https://bugs.webkit.org/show_bug.cgi?id=104284

Patch by David Dorwin <ddorwin@chromium.org> on 2012-12-14
Reviewed by Darin Fisher.

Passes defaultURL down from the media engine to HTMLMediaElement.
Only Valid URLs will be passed.

No test because Clear Key does not provide a defaultURL (in v0.1).

Source/WebCore:

* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::mediaPlayerKeyMessage):
* html/HTMLMediaElement.h:
(HTMLMediaElement):
* platform/graphics/MediaPlayer.cpp:
(WebCore::MediaPlayer::keyMessage):
* platform/graphics/MediaPlayer.h:
(WebCore::MediaPlayerClient::mediaPlayerKeyAdded):
(WebCore::MediaPlayerClient::mediaPlayerKeyError):
(WebCore::MediaPlayerClient::mediaPlayerKeyMessage):
(WebCore::MediaPlayerClient::mediaPlayerKeyNeeded):
(MediaPlayer):

Source/WebKit/chromium:

* public/WebMediaPlayerClient.h:
* src/WebMediaPlayerClientImpl.cpp:
(WebKit::WebMediaPlayerClientImpl::keyMessage):
(WebKit):
(WebKit::WebMediaPlayerClient::keyMessage):
* src/WebMediaPlayerClientImpl.h:
(WebMediaPlayerClientImpl):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@137724 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agoUnreviewed, rolling out r137720.
yosin@chromium.org [Fri, 14 Dec 2012 08:19:46 +0000 (08:19 +0000)]
Unreviewed, rolling out r137720.
http://trac.webkit.org/changeset/137720
https://bugs.webkit.org/show_bug.cgi?id=104991

Wrong Commit

* platform/chromium/TestExpectations:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@137723 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agoUnreviewed, rolling out r137719.
yosin@chromium.org [Fri, 14 Dec 2012 08:14:53 +0000 (08:14 +0000)]
Unreviewed, rolling out r137719.
http://trac.webkit.org/changeset/137719
https://bugs.webkit.org/show_bug.cgi?id=104991

Wrong commit

* platform/chromium-win/fast/events/panScroll-click-hyperlink-expected.txt: Removed.
* platform/chromium-win/fast/events/panScroll-click-hyperlink.html: Removed.
* platform/chromium-win/fast/events/panScroll-event-fired-expected.txt: Removed.
* platform/chromium-win/fast/events/panScroll-event-fired.html: Removed.
* platform/chromium-win/fast/events/panScroll-nested-divs-expected.txt: Removed.
* platform/chromium-win/fast/events/panScroll-nested-divs.html: Removed.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@137722 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years ago[GTK] accessibility/ellipsis-text.html is failing
commit-queue@webkit.org [Fri, 14 Dec 2012 08:13:29 +0000 (08:13 +0000)]
[GTK] accessibility/ellipsis-text.html is failing
https://bugs.webkit.org/show_bug.cgi?id=98365

Patch by Joanmarie Diggs <jdiggs@igalia.com> on 2012-12-14
Reviewed by Martin Robinson.

The test was failing due to differences in the accessible hierarchies
with respect to which object contains the accessible text. The solution
is to conditionalize the test.

* accessibility/ellipsis-text.html: Modified to handle differences in
the accessible hierarchy
* platform/gtk/TestExpectations: Unskipped the failing test

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@137721 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agoSuspend
yosin@chromium.org [Fri, 14 Dec 2012 08:12:22 +0000 (08:12 +0000)]
Suspend

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@137720 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agoSuspend 2012-12-14T14:48
yosin@chromium.org [Fri, 14 Dec 2012 08:12:09 +0000 (08:12 +0000)]
Suspend 2012-12-14T14:48

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@137719 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years ago[EFL][WK2] Do not pass size to updateViewportSize
kenneth@webkit.org [Fri, 14 Dec 2012 08:01:10 +0000 (08:01 +0000)]
[EFL][WK2] Do not pass size to updateViewportSize
https://bugs.webkit.org/show_bug.cgi?id=104994

Reviewed by Gyuyoung Kim.

There is no need to pass size to updateViewportSize as we
have direct access to it. This makes the code differ less
from Qt.

* UIProcess/API/efl/ewk_view.cpp:
(_ewk_view_smart_calculate):
* UIProcess/PageViewportController.cpp:
(WebKit::PageViewportController::pageDidRequestScroll):
* UIProcess/efl/PageClientBase.h:
(PageClientBase):
* UIProcess/efl/PageClientDefaultImpl.cpp:
(WebKit::PageClientDefaultImpl::updateViewportSize):
* UIProcess/efl/PageClientDefaultImpl.h:
(PageClientDefaultImpl):
* UIProcess/efl/PageClientLegacyImpl.cpp:
(WebKit::PageClientLegacyImpl::updateViewportSize):
* UIProcess/efl/PageClientLegacyImpl.h:
(PageClientLegacyImpl):
* UIProcess/efl/PageViewportControllerClientEfl.cpp:
(WebKit::PageViewportControllerClientEfl::updateViewportSize):
* UIProcess/efl/PageViewportControllerClientEfl.h:
(PageViewportControllerClientEfl):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@137718 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agoContentDistributor and ShadowRootContentDistributionData should use RefPtr to hold...
morrita@google.com [Fri, 14 Dec 2012 07:45:46 +0000 (07:45 +0000)]
ContentDistributor and ShadowRootContentDistributionData should use RefPtr to hold elements.
https://bugs.webkit.org/show_bug.cgi?id=104918

Reviewed by Kentaro Hara.

This change turns some raw pointers to RefPtrs.

No new tests. Hard to write reliable fast tests since the error
reproduction needs GC to run in certain timing. Although original
report has a repdocution, it takes a few seconds before crash and
isn't suited for a layout test.

* dom/ShadowRoot.cpp:
(WebCore::ShadowRoot::insertionPointList):
* dom/ShadowRoot.h:
(ShadowRoot):
* html/shadow/ContentDistributor.cpp:
(WebCore::ShadowRootContentDistributionData::ensureInsertionPointList):
(WebCore::ContentDistributor::findInsertionPointFor):
(WebCore::ContentDistributor::distribute):
(WebCore::ContentDistributor::invalidate):
* html/shadow/ContentDistributor.h:
(ShadowRootContentDistributionData):
(ContentDistributor):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@137717 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agoFix build warning
commit-queue@webkit.org [Fri, 14 Dec 2012 07:30:53 +0000 (07:30 +0000)]
Fix build warning
https://bugs.webkit.org/show_bug.cgi?id=104978

Patch by Sanghyup Lee <sh53.lee@samsung.com> on 2012-12-13
Reviewed by Kentaro Hara.

Initialize parameter 'downloadID' to fix 'unused parameter' build warning.

* WebProcess/Downloads/Download.cpp:
(WebKit::Download::Download):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@137716 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agoNodeRenderingContext is slow due to ComposedShadowTreeWalker
morrita@google.com [Fri, 14 Dec 2012 06:50:52 +0000 (06:50 +0000)]
NodeRenderingContext is slow due to ComposedShadowTreeWalker
https://bugs.webkit.org/show_bug.cgi?id=104332

Reviewed by Dimitri Glazkov.

NodeRenderingContext has some slowness due to the complexity of
ComposedShadowTreeWalker that NRC relies on. This change
creates some fast paths to address such slowness.

= NodeRenderingTraversal module:

This change introduces NodeRenderingTraversal namespace, a sister
of NodeTraversal. NRT consists of a set of tree traversal
functions that is responsible for traversal in NRC.  Before this
change, NRC directly used CSTW. This NRT module hides and narrows
the usage of CSTW.

- Traversals provided by NRT have fast paths. In many case, such traversals
  don't need to use CSTW and just goes to neighboring nodes in a plain DOM way.
- It also handles NRC specific traversal concerns like pseudo elements.
  CSTW::pseudoAwareNextSibling() and CSTW::pseudoAwarePreviousSibling() are
  merged into this module.
- CSTW::ParentTraversalDetails is moved and renamed to
  NRT::ParentDetails with small modification. This is a pure
  refactoring: As the name implies, This class is used only by NRC
  and used during a traversal there.

NodeRenderingTraversal is an isolation layer between generic DOM and CSTW. This hides CSTW
behind the wall and will help further reduction of its usage.

= Node::NeedsShadowTreeWalkerFlag flag:

NRT fast path is enabled by newly introduced NeedsShadowTreeWalker
node flag. Each DOM node is now markd as NeedsShadowTreeWalker if
it requires non-trivial traversal in NRT which uses CSTW. This
means that each node can go fast path unless it is marked with this flag.

A node is marked as it NeedsShadowTreeWalker if:

- The node is a shadow boundary like InsertionPoint or ShadowRoot,
- The node has pseudo elements like generated content or
- The node is a pseudo element.

This criteria is defined in Node::needsShadowTreeWalkerSlow(). The node actually needs
the walker if the node or its parent is marked with this flag.

The original idea of this change was demonstrated by Antti Koivisto on bug 103208 and bug 104507.
This chagne has 2-3% speedup on Dromaeo/dom-modify/innerHTML on Apple Mac.

No new tests. Covered by existing tests.

* CMakeLists.txt:
* GNUmakefile.list.am:
* Target.pri:
* WebCore.gypi:
* WebCore.xcodeproj/project.pbxproj:
* dom/ComposedShadowTreeWalker.cpp:
* dom/ComposedShadowTreeWalker.h:
(ComposedShadowTreeWalker): Move some part to NodeRenderingTraversal
* dom/ContainerNode.h:
(WebCore::Node::needsShadowTreeWalker): Added. This is located here since it refers ContainerNode definition.
(WebCore):
* dom/DOMAllInOne.cpp:
* dom/Element.cpp:
(WebCore::Element::updatePseudoElement): Refactored.
(WebCore::Element::hasPseudoElements): Ditto.
(WebCore::Element::pseudoElement): Ditto.
(WebCore::Element::setPseudoElement): Refactored and added a flag update logic.
(WebCore):
* dom/Element.h:
(Element):
(WebCore::Element::beforePseudoElement): Refactored.
(WebCore::Element::afterPseudoElement): Refactored.
* dom/ElementRareData.h:
(WebCore::ElementRareData::hasPseudoElements): Factored out.
* dom/ElementShadow.cpp:
(WebCore::ElementShadow::addShadowRoot): Added a flag update logic.
* dom/Node.cpp:
(WebCore::Node::needsShadowTreeWalkerSlow): Added.
* dom/Node.h:
(WebCore::Node::isInsertionPointNode): Added.
(Node):
(WebCore::Node::isInsertionPoint): Changed to use NeedsShadowTreeWalkerFlag.
(WebCore::Node::setNeedsShadowTreeWalker):
(WebCore::Node::resetNeedsShadowTreeWalker):
* dom/NodeRenderingContext.cpp: Adopted NodeRenderingTraversal.
(WebCore::NodeRenderingContext::NodeRenderingContext):
(WebCore::NodeRenderingContext::nextRenderer):
(WebCore::NodeRenderingContext::previousRenderer):
(WebCore::NodeRenderingContext::parentRenderer):
(WebCore::NodeRenderingContext::shouldCreateRenderer):
* dom/NodeRenderingContext.h: Ditto.
(NodeRenderingContext):
(WebCore::NodeRenderingContext::parentNodeForRenderingAndStyle):
* dom/NodeRenderingTraversal.cpp: Added.
(WebCore):
(NodeRenderingTraversal):
(WebCore::NodeRenderingTraversal::ParentDetails::didTraverseInsertionPoint): Moved from ComposedShadowTreeWalker
(WebCore::NodeRenderingTraversal::ParentDetails::didTraverseShadowRoot): Ditto.
(WebCore::NodeRenderingTraversal::parentSlow): Ditto.
(WebCore::NodeRenderingTraversal::nextSiblingSlow): Ditto. The original was pseudoAwareNextSibling.
(WebCore::NodeRenderingTraversal::previousSiblingSlow): Ditto. The original was pseudoAwarePreviousSibling.
* dom/NodeRenderingTraversal.h: Added.
(WebCore):
(NodeRenderingTraversal):
(ParentDetails): Moved from ComposedShadowTreeWalker.
(WebCore::NodeRenderingTraversal::ParentDetails::ParentDetails):
(WebCore::NodeRenderingTraversal::ParentDetails::insertionPoint):
(WebCore::NodeRenderingTraversal::ParentDetails::resetStyleInheritance):
(WebCore::NodeRenderingTraversal::ParentDetails::outOfComposition):
(WebCore::NodeRenderingTraversal::ParentDetails::childWasOutOfComposition):
(WebCore::NodeRenderingTraversal::ParentDetails::operator==):
(WebCore::NodeRenderingTraversal::parent):
(WebCore::NodeRenderingTraversal::nextSibling):
(WebCore::NodeRenderingTraversal::previousSibling):
* dom/PseudoElement.cpp:
(WebCore::PseudoElement::PseudoElement): Added an assertion.
* dom/Text.cpp:
* html/HTMLOptGroupElement.cpp: Added a #include which revealed by a chagne on NodeRenderingContext.h
* html/HTMLOptionElement.cpp: Ditto.
* html/HTMLProgressElement.cpp: Dito.
* html/shadow/InsertionPoint.h: Added an override of isInsertionPointNode().

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@137715 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agoAdd --profiler=PROFILER option to run-perf-tests to allow specifying which profiler...
eric@webkit.org [Fri, 14 Dec 2012 06:41:24 +0000 (06:41 +0000)]
Add --profiler=PROFILER option to run-perf-tests to allow specifying which profiler to use on platforms with many
https://bugs.webkit.org/show_bug.cgi?id=104891

Reviewed by Ryosuke Niwa.

I also implemented a very simple "Sample" Profiler using
Mac OS X's /usr/bin/sample command line tool.

The real reason for this abstraction is to make it easy
to support both perf and pprof on linux which seem to
be about equally popular among those I ask in the Chrome team.

* Scripts/webkitpy/common/system/profiler.py:
(ProfilerFactory.create_profiler):
(ProfilerFactory):
(ProfilerFactory.available_profilers_by_name):
(ProfilerFactory.default_profiler_name):
(Sample):
(Sample.__init__):
(Sample.attach_to_pid):
(Sample.profile_after_exit):
(IProfiler.attach_to_pid):
* Scripts/webkitpy/layout_tests/port/driver.py:
(Driver.__init__):
* Scripts/webkitpy/performance_tests/perftestsrunner.py:
(PerfTestsRunner._parse_args):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@137714 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agoRefactoring: Fix indentation of ChromeClient.h
tkent@chromium.org [Fri, 14 Dec 2012 05:43:03 +0000 (05:43 +0000)]
Refactoring: Fix indentation of ChromeClient.h
https://bugs.webkit.org/show_bug.cgi?id=104989

Reviewed by Kentaro Hara.

The contents of an outermost namespace block should not be indented.
http://www.webkit.org/coding/coding-style.html#indentation-namespace

No behavior change.

* page/ChromeClient.h:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@137713 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agoSeconds/Minutes field of date/time input UI should respect step attribute
commit-queue@webkit.org [Fri, 14 Dec 2012 04:56:22 +0000 (04:56 +0000)]
Seconds/Minutes field of date/time input UI should respect step attribute
https://bugs.webkit.org/show_bug.cgi?id=104985

Patch by Kunihiko Sakamoto <ksakamoto@chromium.org> on 2012-12-13
Reviewed by Kent Tamura.

Source/WebCore:

This patch makes step-up/-down UI of the seconds and minutes fields respect
step attribute when possible.

Test: fast/forms/time-multiple-fields/time-multiple-fields-stepup-stepdown-from-renderer.html

* html/shadow/DateTimeEditElement.cpp:
(DateTimeEditBuilder):
(WebCore::DateTimeEditBuilder::visitField): Compute step parameters for seconds and minutes fields, and pass it to the field element constructors.
(WebCore::DateTimeEditBuilder::createNumericFieldParameters): Added.
* html/shadow/DateTimeFieldElements.cpp:
(WebCore::DateTimeMillisecondFieldElement::DateTimeMillisecondFieldElement): Use Parameters instead of step and stepBase.
(WebCore::DateTimeMillisecondFieldElement::create): Ditto.
(WebCore::DateTimeMinuteFieldElement::DateTimeMinuteFieldElement): Add Parameters argument.
(WebCore::DateTimeMinuteFieldElement::create): Ditto.
(WebCore::DateTimeSecondFieldElement::DateTimeSecondFieldElement): Ditto.
(WebCore::DateTimeSecondFieldElement::create): Ditto.
* html/shadow/DateTimeFieldElements.h:
(DateTimeMillisecondFieldElement): Use Parameters instead of step and stepBase.
(DateTimeMinuteFieldElement): Add Parameters argument.
(DateTimeSecondFieldElement): Ditto.
* html/shadow/DateTimeNumericFieldElement.cpp:
(WebCore::DateTimeNumericFieldElement::DateTimeNumericFieldElement): Use Parameters instead of step and stepBase.
* html/shadow/DateTimeNumericFieldElement.h:
(DateTimeNumericFieldElement):
(WebCore::DateTimeNumericFieldElement::Parameters::Parameters):
(Parameters): Added.

LayoutTests:

* fast/forms/time-multiple-fields/time-multiple-fields-stepup-stepdown-from-renderer-expected.txt:
* fast/forms/time-multiple-fields/time-multiple-fields-stepup-stepdown-from-renderer.html:
Added test cases for seconds and minutes fields.
Update an expectation for milliseconds: value=07:13:00.500, step=0 should round to 07:13:00.000
(setInputAttributes): Set value attribute first to avoid the focused field becomes read-only and unfocused.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@137712 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agoUnreviewed, fixing typo in python unittest.
eric@webkit.org [Fri, 14 Dec 2012 04:52:43 +0000 (04:52 +0000)]
Unreviewed, fixing typo in python unittest.

I changed the default profiler on linux from pprof to perf in
bug 104971.  I failed to update the unittest results at that time.

* Scripts/webkitpy/common/system/profiler_unittest.py:
(ProfilerFactoryTest.test_basic):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@137711 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years ago[chromium] Add a virtual test suite for enabling opt-in to composited scrolling
vollick@chromium.org [Fri, 14 Dec 2012 04:48:11 +0000 (04:48 +0000)]
[chromium] Add a virtual test suite for enabling opt-in to composited scrolling
https://bugs.webkit.org/show_bug.cgi?id=104911

Reviewed by Dirk Pranke.

Tools:

Adds two virtual tests suites to run the tests in
compositing/overflow/ and scrollbars/ with the flag
--enable-accelerated-overflow-scroll, which I've also plumbed through
in the usual way.

* DumpRenderTree/chromium/DumpRenderTree.cpp:
(main):
* DumpRenderTree/chromium/TestRunner/public/WebPreferences.h:
(WebPreferences):
* DumpRenderTree/chromium/TestRunner/src/WebPreferences.cpp:
(WebTestRunner::WebPreferences::reset):
(WebTestRunner::WebPreferences::applyTo):
* DumpRenderTree/chromium/TestShell.cpp:
(TestShell::TestShell):
(TestShell::resetWebSettings):
* DumpRenderTree/chromium/TestShell.h:
(TestShell::setAcceleratedCompositingForOverflowScrollEnabled):
(TestShell):
* Scripts/webkitpy/layout_tests/port/chromium.py:
(ChromiumPort.virtual_test_suites):

LayoutTests:

Updated the test expectations for the virtual test suite to match the
usual chromium test expectations.

* platform/chromium/TestExpectations:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@137710 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agoAttempt to rationalize and simplify WTF::binarySearch
fpizlo@apple.com [Fri, 14 Dec 2012 04:41:58 +0000 (04:41 +0000)]
Attempt to rationalize and simplify WTF::binarySearch
https://bugs.webkit.org/show_bug.cgi?id=104890

Reviewed by Maciej Stachowiak.

Source/JavaScriptCore:

Switch to using the new binarySearch() API. No change in behavior.

* bytecode/CodeBlock.cpp:
(JSC::CodeBlock::bytecodeOffset):
(JSC::CodeBlock::codeOriginForReturn):
* bytecode/CodeBlock.h:
(JSC::CodeBlock::getStubInfo):
(JSC::CodeBlock::getByValInfo):
(JSC::CodeBlock::getCallLinkInfo):
(JSC::CodeBlock::dfgOSREntryDataForBytecodeIndex):
(JSC::CodeBlock::valueProfileForBytecodeOffset):
(JSC::CodeBlock::rareCaseProfileForBytecodeOffset):
(JSC::CodeBlock::specialFastCaseProfileForBytecodeOffset):
* dfg/DFGGraph.h:
(JSC::DFG::Graph::blockIndexForBytecodeOffset):
* dfg/DFGMinifiedGraph.h:
(JSC::DFG::MinifiedGraph::at):
* dfg/DFGOSRExitCompiler32_64.cpp:
(JSC::DFG::OSRExitCompiler::compileExit):
* dfg/DFGOSRExitCompiler64.cpp:
(JSC::DFG::OSRExitCompiler::compileExit):
* llint/LLIntSlowPaths.cpp:
(JSC::LLInt::LLINT_SLOW_PATH_DECL):
* profiler/ProfilerBytecodeSequence.cpp:
(JSC::Profiler::BytecodeSequence::indexForBytecodeIndex):

Source/WebCore:

Switch to using the new binarySearch() API. No change in behavior, so no new tests.

* svg/animation/SVGSMILElement.cpp:
(WebCore::SVGSMILElement::findInstanceTime):

Source/WTF:

Binary search now has three modes:

The default: assert that the key was found, but return an adjacent element if it
wasn't found, if asserts are turned off.

tryBinarySearch: return 0 if the key wasn't found.

approximateBinarySearch: if the key is not found, return an adjacent element (either
the left or right; no guarantee which).

This also reduces the number of variants of binarySearch. The functor variant is now
gone because binarySearch now always uses a functor for the key extractor. The
generic variant is now gone because binarySearch always expects an array type that
can do operator[].

* wtf/StdLibExtras.h:
(WTF::binarySearchImpl):
(WTF::binarySearch):
(WTF::tryBinarySearch):
(WTF::approximateBinarySearch):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@137709 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years ago[Shadow DOM]: scoped styles are not applied in the cascade order.
tasak@google.com [Fri, 14 Dec 2012 04:40:47 +0000 (04:40 +0000)]
[Shadow DOM]: scoped styles are not applied in the cascade order.
https://bugs.webkit.org/show_bug.cgi?id=103239

Reviewed by Dimitri Glazkov.

Source/WebCore:

If the scoping elements of two declarations have an ancestor/
descendant relationship, the declaration whose scoping element is
the descendant should win.
c.f. http://dev.w3.org/csswg/css3-cascade/#cascade

Test: fast/css/style-scoped/style-scoped-nested.html
      fast/css/style-scoped/style-scoped-with-important-rule.html

* css/RuleSet.cpp:
(WebCore::RuleSet::addRule):
Removed specificity for @host @-rules. Now @host @-rules use the
cascading order instead.
* css/RuleSet.h:
Removed increaseSpecificity. The method is used by only @host @-rules.
* css/StyleResolver.cpp:
(WebCore::StyleResolver::matchScopedAuthorRules):
(WebCore::StyleResolver::matchHostRules):
(WebCore::StyleResolver::matchAuthorRules):
Modified to invoke sortAndTransferMatchedRules per scoping element.
The order of "matchXXXRules" must be the same as the cascading order.
So matchHostRules was invoked after collecting all scoped author rules.
* css/StyleScopeResolver.cpp:
(WebCore::StyleScopeResolver::addHostRule):
Removed RuleIsHostRule. We don't need the flag.
* html/HTMLStyleElement.cpp:
(WebCore::HTMLStyleElement::registerWithScopingNode):
Needs to pass the last test case of style-scoped-nested.html.
When appending some style element to a shadow root, we should recalc
styles of all elements in the shadow dom tree. And if the style
element has @host @-rules, we have to update the host's style.

LayoutTests:

* fast/css/style-scoped/style-scoped-nested-expected.txt: Added.
* fast/css/style-scoped/style-scoped-nested.html: Added.
* fast/css/style-scoped/style-scoped-with-important-rule-expected.txt: Added.
* fast/css/style-scoped/style-scoped-with-important-rule.html: Added.
* fast/regions/style-scoped-in-flow-override-region-styling-expected.html:
* fast/regions/style-scoped-in-flow-override-region-styling.html:
Changed the test's expectation.
Since @region's scoping element is :root but scoped styles' scoping
element is a descendant element of :root, scoped styles should win.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@137708 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agoMediaPlayerPrivateAVFoundation::m_inbandTrackConfigurationPending is unused except...
fpizlo@apple.com [Fri, 14 Dec 2012 04:38:20 +0000 (04:38 +0000)]
MediaPlayerPrivateAVFoundation::m_inbandTrackConfigurationPending is unused except when HAVE(AVFOUNDATION_TEXT_TRACK_SUPPORT)
https://bugs.webkit.org/show_bug.cgi?id=104987

Rubber stamped by Michael Saboff.

No change in behavior so no new tests.

* platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp:
(WebCore::MediaPlayerPrivateAVFoundation::MediaPlayerPrivateAVFoundation):
* platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.h:
(MediaPlayerPrivateAVFoundation):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@137707 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agoUse 'perf' to profile on linux instead of google-pprof by default
eric@webkit.org [Fri, 14 Dec 2012 04:30:20 +0000 (04:30 +0000)]
Use 'perf' to profile on linux instead of google-pprof by default
https://bugs.webkit.org/show_bug.cgi?id=104971

Reviewed by Dirk Pranke.

This makes Chromium Linux match Chromium Android and use the perf
tool by default.  Once https://bugs.webkit.org/show_bug.cgi?id=104891
lands it will be possible to use pprof again on Linux.

This is slightly more advanced than the AndroidPerf profiler as
instead of using a timeout on "perf record" I instead watch
for the termination of the target process and then control-C
the 'perf record' process.  This required me to add two new
methods to Executive, one to have a limited-time wait() and
the second to be able to send a control-C.  I chose to add
these to Executive to make them easier to mock/fix-for-win32
at a later time if needed.

* Scripts/webkitpy/common/system/executive.py:
(Executive.wait_limited):
(Executive.interrupt):
* Scripts/webkitpy/common/system/profiler.py:
(ProfilerFactory.create_profiler):
(Perf):
(Perf.__init__):
(Perf._perf_path):
(Perf.attach_to_pid):
(Perf._first_ten_lines_of_profile):
(Perf.profile_after_exit):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@137706 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agoDon't assert that flags <= 0x3ff in JSTypeInfo
fpizlo@apple.com [Fri, 14 Dec 2012 04:19:09 +0000 (04:19 +0000)]
Don't assert that flags <= 0x3ff in JSTypeInfo
https://bugs.webkit.org/show_bug.cgi?id=104988

Reviewed by Sam Weinig.

This assertion doesn't accomplish anything other than crashes.

* runtime/JSTypeInfo.h:
(JSC::TypeInfo::TypeInfo):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@137705 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6 years agoUnreviewed. Rebaselined run-bindings-tests results.
haraken@chromium.org [Fri, 14 Dec 2012 04:04:11 +0000 (04:04 +0000)]
Unreviewed. Rebaselined run-bindings-tests results.

* bindings/scripts/test/JS/JSTestCustomNamedGetter.h:
(JSTestCustomNamedGetter):
* bindings/scripts/test/JS/JSTestEventTarget.h:
(JSTestEventTarget):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@137704 268f45cc-cd09-0410-ab3c-d52691b4dbfc