diff options
author | Simon Hausmann <simon.hausmann@nokia.com> | 2012-09-10 19:10:20 +0200 |
---|---|---|
committer | Simon Hausmann <simon.hausmann@nokia.com> | 2012-09-10 19:10:20 +0200 |
commit | 284837daa07b29d6a63a748544a90b1f5842ac5c (patch) | |
tree | ecd258180bde91fe741e0cfd2638beb3c6da7e8e /Source/WebKit | |
parent | 2e2ba8ff45915f40ed3e014101269c175f2a89a0 (diff) | |
download | qtwebkit-284837daa07b29d6a63a748544a90b1f5842ac5c.tar.gz |
Imported WebKit commit 68645295d2e3e09af2c942f092556f06aa5f8b0d (http://svn.webkit.org/repository/webkit/trunk@128073)
New snapshot
Diffstat (limited to 'Source/WebKit')
380 files changed, 20616 insertions, 11376 deletions
diff --git a/Source/WebKit/ChangeLog b/Source/WebKit/ChangeLog index 4bf98debd..9e13907e8 100644 --- a/Source/WebKit/ChangeLog +++ b/Source/WebKit/ChangeLog @@ -1,3 +1,69 @@ +2012-09-06 Crystal Zhang <haizhang@rim.com> + + [BlackBerry] Implement a color picker + https://bugs.webkit.org/show_bug.cgi?id=96001 + + Reviewed by Rob Buis. + + Add color picker files into building system. + + * PlatformBlackBerry.cmake: + +2012-09-06 Simon Hausmann <simon.hausmann@nokia.com> + + [Qt] Fix build with ANGLE on platforms that provide EGL/GLESv2 + https://bugs.webkit.org/show_bug.cgi?id=95965 + + Reviewed by Tor Arne Vestbø. + + Depend on ANGLE if necessary, due to the use WebCore types that pull in ANGLE + headers (GraphicsContext3D.h in particular). + + * WebKit1.pro: + +2012-09-04 Michał Pakuła vel Rutka <m.pakula@samsung.com> + + [EFL] Context menu restore. + https://bugs.webkit.org/show_bug.cgi?id=74179 + + Reviewed by Gyuyoung Kim. + + Adds context menu support for EFL port using non-CROSS_PLATFORM_CONTEXT_MENUS + approach, the same as used in WebKit2. + + * PlatformEfl.cmake: Added ContextMenuClientEfl.cpp file to sources list. + +2012-08-29 Ryuan Choi <ryuan.choi@samsung.com> + + [EFL] Move several files to remove webkit1 dependency from WebCore. + https://bugs.webkit.org/show_bug.cgi?id=95264 + + Reviewed by Gyuyoung Kim. + + * PlatformEfl.cmake: Added files which is moved. + +2012-08-28 Thiago Marcos P. Santos <thiago.santos@intel.com> + + [EFL] Rename knob images to thumb on the default theme + https://bugs.webkit.org/show_bug.cgi?id=95186 + + Reviewed by Kenneth Rohde Christiansen. + + Updated buildsystem after renaming theme images. + + * PlatformEfl.cmake: + +2012-08-27 Mikhail Pozdnyakov <mikhail.pozdnyakov@intel.com> + + Rename RegisterProtocolHandler API to NavigatorContentUtils + https://bugs.webkit.org/show_bug.cgi?id=94920 + + Reviewed by Adam Barth. + + Modified PlatformEfl.cmake so that it includes the renamed files. + + * PlatformEfl.cmake: + 2012-08-20 Dominik Röttsches <dominik.rottsches@intel.com> [EFL] Get rid of pango backend support once harfbuzz-ng is working diff --git a/Source/WebKit/PlatformBlackBerry.cmake b/Source/WebKit/PlatformBlackBerry.cmake index 5d5a255be..365cdbd6f 100644 --- a/Source/WebKit/PlatformBlackBerry.cmake +++ b/Source/WebKit/PlatformBlackBerry.cmake @@ -92,6 +92,7 @@ LIST(APPEND WebKit_SOURCES blackberry/WebCoreSupport/PagePopupBlackBerry.cpp blackberry/WebCoreSupport/SelectPopupClient.cpp blackberry/WebCoreSupport/DatePickerClient.cpp + blackberry/WebCoreSupport/ColorPickerClient.cpp blackberry/WebKitSupport/AboutData.cpp blackberry/WebKitSupport/BackingStoreCompositingSurface.cpp blackberry/WebKitSupport/BackingStoreTile.cpp diff --git a/Source/WebKit/PlatformEfl.cmake b/Source/WebKit/PlatformEfl.cmake index cea3e5eaf..84f0240a3 100644 --- a/Source/WebKit/PlatformEfl.cmake +++ b/Source/WebKit/PlatformEfl.cmake @@ -78,9 +78,9 @@ IF (ENABLE_BATTERY_STATUS) ) ENDIF () -IF (ENABLE_REGISTER_PROTOCOL_HANDLER) +IF (ENABLE_NAVIGATOR_CONTENT_UTILS) LIST(APPEND WebKit_INCLUDE_DIRECTORIES - "${WEBCORE_DIR}/Modules/protocolhandler" + "${WEBCORE_DIR}/Modules/navigatorcontentutils" ) ENDIF () @@ -88,6 +88,8 @@ LIST(APPEND WebKit_SOURCES efl/WebCoreSupport/AssertMatchingEnums.cpp efl/WebCoreSupport/BatteryClientEfl.cpp efl/WebCoreSupport/ChromeClientEfl.cpp + efl/WebCoreSupport/ColorChooserEfl.cpp + efl/WebCoreSupport/ContextMenuClientEfl.cpp efl/WebCoreSupport/DeviceOrientationClientEfl.cpp efl/WebCoreSupport/DeviceMotionClientEfl.cpp efl/WebCoreSupport/DragClientEfl.cpp @@ -98,11 +100,13 @@ LIST(APPEND WebKit_SOURCES efl/WebCoreSupport/FullscreenVideoControllerEfl.cpp efl/WebCoreSupport/IconDatabaseClientEfl.cpp efl/WebCoreSupport/InspectorClientEfl.cpp + efl/WebCoreSupport/NavigatorContentUtilsClientEfl.cpp efl/WebCoreSupport/NetworkInfoClientEfl.cpp efl/WebCoreSupport/NotificationPresenterClientEfl.cpp efl/WebCoreSupport/PageClientEfl.cpp efl/WebCoreSupport/PlatformStrategiesEfl.cpp - efl/WebCoreSupport/RegisterProtocolHandlerClientEfl.cpp + efl/WebCoreSupport/PopupMenuEfl.cpp + efl/WebCoreSupport/SearchPopupMenuEfl.cpp efl/WebCoreSupport/StorageTrackerClientEfl.cpp efl/WebCoreSupport/VibrationClientEfl.cpp @@ -166,15 +170,15 @@ ADD_CUSTOM_COMMAND( COMMAND ${EDJE_CC_EXECUTABLE} -v -id ${WEBKIT_DIR}/efl/DefaultTheme ${WebKit_THEME_DEFINITION} ${WEBKIT_DIR}/efl/DefaultTheme/default.edc ${WebKit_THEME} DEPENDS ${WEBKIT_DIR}/efl/DefaultTheme/default.edc - ${WEBKIT_DIR}/efl/DefaultTheme/widget/slider/slider_knob_v.png - ${WEBKIT_DIR}/efl/DefaultTheme/widget/slider/slider_knob_press_v.png - ${WEBKIT_DIR}/efl/DefaultTheme/widget/slider/slider_v.png ${WEBKIT_DIR}/efl/DefaultTheme/widget/slider/slider.edc - ${WEBKIT_DIR}/efl/DefaultTheme/widget/slider/slider_knob_press_h.png - ${WEBKIT_DIR}/efl/DefaultTheme/widget/slider/slider_knob_h.png ${WEBKIT_DIR}/efl/DefaultTheme/widget/slider/slider_fill_v.png ${WEBKIT_DIR}/efl/DefaultTheme/widget/slider/slider_fill_h.png ${WEBKIT_DIR}/efl/DefaultTheme/widget/slider/slider_h.png + ${WEBKIT_DIR}/efl/DefaultTheme/widget/slider/slider_thumb_h.png + ${WEBKIT_DIR}/efl/DefaultTheme/widget/slider/slider_thumb_press_h.png + ${WEBKIT_DIR}/efl/DefaultTheme/widget/slider/slider_thumb_press_v.png + ${WEBKIT_DIR}/efl/DefaultTheme/widget/slider/slider_thumb_v.png + ${WEBKIT_DIR}/efl/DefaultTheme/widget/slider/slider_v.png ${WEBKIT_DIR}/efl/DefaultTheme/widget/combo/combo_focus_button.png ${WEBKIT_DIR}/efl/DefaultTheme/widget/combo/combo_press.png ${WEBKIT_DIR}/efl/DefaultTheme/widget/combo/icon.png diff --git a/Source/WebKit/WebKit1.pro b/Source/WebKit/WebKit1.pro index 82cd0cd0c..b29b7bd27 100644 --- a/Source/WebKit/WebKit1.pro +++ b/Source/WebKit/WebKit1.pro @@ -152,4 +152,5 @@ contains(DEFINES, ENABLE_GEOLOCATION=1) { $$PWD/qt/WebCoreSupport/GeolocationClientQt.cpp } +contains(DEFINES, WTF_USE_3D_GRAPHICS=1): WEBKIT += angle diff --git a/Source/WebKit/blackberry/Api/BackingStore.cpp b/Source/WebKit/blackberry/Api/BackingStore.cpp index b86cc5d11..d626fec30 100644 --- a/Source/WebKit/blackberry/Api/BackingStore.cpp +++ b/Source/WebKit/blackberry/Api/BackingStore.cpp @@ -37,7 +37,6 @@ #include "WebPage_p.h" #include "WebSettings.h" -#include <BlackBerryPlatformClient.h> #include <BlackBerryPlatformExecutableMessage.h> #include <BlackBerryPlatformGraphics.h> #include <BlackBerryPlatformIntRectRegion.h> @@ -209,7 +208,6 @@ BackingStorePrivate::BackingStorePrivate() , m_currentWindowBackBuffer(0) , m_preferredTileMatrixDimension(Vertical) #if USE(ACCELERATED_COMPOSITING) - , m_needsDrawLayersOnCommit(false) , m_isDirectRenderingAnimationMessageScheduled(false) #endif { @@ -391,7 +389,7 @@ void BackingStorePrivate::repaint(const Platform::IntRect& windowRect, if (immediate) { if (render(rect)) { - if (!shouldDirectRenderingToWindow()) + if (!shouldDirectRenderingToWindow() && !m_webPage->d->commitRootLayerIfNeeded()) blitVisibleContents(); m_webPage->d->m_client->notifyContentRendered(rect); } @@ -414,7 +412,7 @@ void BackingStorePrivate::slowScroll(const Platform::IntSize& delta, const Platf Platform::IntRect rect = m_webPage->d->mapToTransformed(m_client->mapFromViewportToContents(windowRect)); if (immediate) { - if (render(rect) && !isSuspended() && !shouldDirectRenderingToWindow()) + if (render(rect) && !isSuspended() && !shouldDirectRenderingToWindow() && !m_webPage->d->commitRootLayerIfNeeded()) blitVisibleContents(); } else { m_renderQueue->addToQueue(RenderQueue::VisibleScroll, rect); @@ -514,7 +512,8 @@ void BackingStorePrivate::dispatchRenderJob() void BackingStorePrivate::renderJob() { - ASSERT(shouldPerformRenderJobs()); + if (!shouldPerformRenderJobs()) + return; #if DEBUG_BACKINGSTORE BlackBerry::Platform::logAlways(BlackBerry::Platform::LogLevelCritical, "BackingStorePrivate::renderJob"); @@ -523,7 +522,7 @@ void BackingStorePrivate::renderJob() m_renderQueue->render(!m_suspendRegularRenderJobs); #if USE(ACCELERATED_COMPOSITING) - drawLayersOnCommitIfNeeded(); + m_webPage->d->commitRootLayerIfNeeded(); #endif if (shouldPerformRenderJobs()) @@ -910,8 +909,6 @@ bool BackingStorePrivate::isCurrentVisibleJob(const TileIndex& index, BackingSto return true; // Second check if the individual parts of the non-rendered region are in the regular queue. - bool isCurrent = true; // It is true until it isn't :) - IntRectList tileNotRenderedRegionRects = tile->frontBuffer()->notRenderedRegion().rects(); for (size_t i = 0; i < tileNotRenderedRegionRects.size(); ++i) { Platform::IntRect tileNotRenderedRegionRect = tileNotRenderedRegionRects.at(i); @@ -920,10 +917,11 @@ bool BackingStorePrivate::isCurrentVisibleJob(const TileIndex& index, BackingSto // Map to transformed contents coordinates. tileNotRenderedRegionRect.move(origin.x(), origin.y()); - isCurrent = m_renderQueue->isCurrentRegularRenderJob(tileNotRenderedRegionRect) ? isCurrent : false; + if (!m_renderQueue->isCurrentRegularRenderJob(tileNotRenderedRegionRect)) + return false; } - return isCurrent; + return true; } void BackingStorePrivate::scrollBackingStore(int deltaX, int deltaY) @@ -1147,11 +1145,6 @@ void BackingStorePrivate::blitVisibleContents(bool force) } if (!BlackBerry::Platform::userInterfaceThreadMessageClient()->isCurrentThread()) { -#if USE(ACCELERATED_COMPOSITING) - // The blit will draw accelerated compositing layers if necessary - m_needsDrawLayersOnCommit = false; -#endif - BlackBerry::Platform::userInterfaceThreadMessageClient()->dispatchMessage( BlackBerry::Platform::createMethodCallMessage( &BackingStorePrivate::blitVisibleContents, this, force)); @@ -1247,11 +1240,6 @@ void BackingStorePrivate::blitContents(const Platform::IntRect& dstRect, } if (!BlackBerry::Platform::userInterfaceThreadMessageClient()->isCurrentThread()) { -#if USE(ACCELERATED_COMPOSITING) - // The blit will draw accelerated compositing layers if necessary - m_needsDrawLayersOnCommit = false; -#endif - BlackBerry::Platform::userInterfaceThreadMessageClient()->dispatchMessage( BlackBerry::Platform::createMethodCallMessage( &BackingStorePrivate::blitContents, this, dstRect, srcRect, force)); @@ -2288,18 +2276,6 @@ void BackingStorePrivate::renderContents(BlackBerry::Platform::Graphics::Buffer* if (contentsSize.isEmpty()) return; -#if USE(ACCELERATED_COMPOSITING) - // When committing the pending accelerated compositing layer changes, it's - // necessary to draw the new layer appearance. This is normally done as - // part of a blit, but if no blit happens because of this rendering, for - // example because we're rendering an offscreen rectangle, someone needs to - // catch this flag and make sure those layers get drawn. - // This is just a complicated way to do - // "if (commitRootLayerIfNeeded()) drawLayersOnCommit();" - if (m_webPage->d->commitRootLayerIfNeeded()) - m_needsDrawLayersOnCommit = true; -#endif - BlackBerry::Platform::Graphics::Drawable* bufferDrawable = BlackBerry::Platform::Graphics::lockBufferDrawable(targetBuffer); @@ -2601,18 +2577,6 @@ BackingStoreWindowBufferState* BackingStorePrivate::windowBackBufferState() cons } #if USE(ACCELERATED_COMPOSITING) -bool BackingStorePrivate::drawLayersOnCommitIfNeeded() -{ - // Check if rendering caused a commit and we need to redraw the layers - if (!m_needsDrawLayersOnCommit) - return false; - - m_needsDrawLayersOnCommit = false; - m_webPage->d->drawLayersOnCommit(); - - return true; -} - void BackingStorePrivate::drawAndBlendLayersForDirectRendering(const Platform::IntRect& dirtyRect) { ASSERT(BlackBerry::Platform::userInterfaceThreadMessageClient()->isCurrentThread()); @@ -2628,7 +2592,6 @@ void BackingStorePrivate::drawAndBlendLayersForDirectRendering(const Platform::I WebCore::IntRect(WebCore::IntPoint(0, 0), m_webPage->d->transformedViewportSize())); // Check if rendering caused a commit and we need to redraw the layers. - m_needsDrawLayersOnCommit = false; if (WebPageCompositorPrivate* compositor = m_webPage->d->compositor()) compositor->drawLayers(dstRect, untransformedContentsRect); @@ -2648,6 +2611,20 @@ bool BackingStorePrivate::isActive() const return BackingStorePrivate::s_currentBackingStoreOwner == m_webPage && SurfacePool::globalSurfacePool()->isActive(); } +void BackingStorePrivate::didRenderContent(const Platform::IntRect& renderedRect) +{ + if (isScrollingOrZooming()) + return; + + if (!shouldDirectRenderingToWindow()) { + if (!m_webPage->d->needsOneShotDrawingSynchronization()) + blitVisibleContents(); + } else + invalidateWindow(); + + m_webPage->client()->notifyContentRendered(renderedRect); +} + BackingStore::BackingStore(WebPage* webPage, BackingStoreClient* client) : d(new BackingStorePrivate) { @@ -2728,12 +2705,14 @@ bool BackingStore::isDirectRenderingToWindow() const void BackingStore::createBackingStoreMemory() { - SurfacePool::globalSurfacePool()->createBuffers(); + if (BackingStorePrivate::s_currentBackingStoreOwner == d->m_webPage) + SurfacePool::globalSurfacePool()->createBuffers(); } void BackingStore::releaseBackingStoreMemory() { - SurfacePool::globalSurfacePool()->releaseBuffers(); + if (BackingStorePrivate::s_currentBackingStoreOwner == d->m_webPage) + SurfacePool::globalSurfacePool()->releaseBuffers(); } bool BackingStore::defersBlit() const diff --git a/Source/WebKit/blackberry/Api/BackingStore_p.h b/Source/WebKit/blackberry/Api/BackingStore_p.h index 77eeab951..71738951c 100644 --- a/Source/WebKit/blackberry/Api/BackingStore_p.h +++ b/Source/WebKit/blackberry/Api/BackingStore_p.h @@ -334,6 +334,8 @@ public: BlackBerry::Platform::IntSize surfaceSize() const; BlackBerry::Platform::Graphics::Buffer* buffer() const; + void didRenderContent(const Platform::IntRect& renderedRect); + static WebPage* s_currentBackingStoreOwner; unsigned m_suspendScreenUpdates; diff --git a/Source/WebKit/blackberry/Api/BlackBerryGlobal.cpp b/Source/WebKit/blackberry/Api/BlackBerryGlobal.cpp index d6ec87fe2..fc9cd5aae 100644 --- a/Source/WebKit/blackberry/Api/BlackBerryGlobal.cpp +++ b/Source/WebKit/blackberry/Api/BlackBerryGlobal.cpp @@ -29,7 +29,6 @@ #include "JSDOMWindow.h" #include "JSGlobalData.h" #include "Logging.h" -#include "MainThread.h" #include "MemoryCache.h" #include "NetworkStateNotifier.h" #include "PageCache.h" @@ -41,6 +40,7 @@ #include <BlackBerryPlatformExecutableMessage.h> #include <BlackBerryPlatformMessageClient.h> #include <BlackBerryPlatformSettings.h> +#include <wtf/MainThread.h> using namespace WebCore; diff --git a/Source/WebKit/blackberry/Api/DumpRenderTreeClient.h b/Source/WebKit/blackberry/Api/DumpRenderTreeClient.h index ce6dd2743..c9a66390d 100644 --- a/Source/WebKit/blackberry/Api/DumpRenderTreeClient.h +++ b/Source/WebKit/blackberry/Api/DumpRenderTreeClient.h @@ -21,8 +21,8 @@ #include "BlackBerryGlobal.h" -#include "PlatformString.h" #include <JavaScriptCore/JSObjectRef.h> +#include <wtf/text/WTFString.h> namespace WebCore { class Credential; @@ -42,6 +42,7 @@ class WebPage; class BLACKBERRY_EXPORT DumpRenderTreeClient { public: + virtual ~DumpRenderTreeClient() { } virtual void runTests() = 0; // FrameLoaderClient delegates @@ -53,19 +54,19 @@ public: virtual void didFinishLoadForFrame(WebCore::Frame*) = 0; virtual void didFinishDocumentLoadForFrame(WebCore::Frame*) = 0; virtual void didClearWindowObjectInWorld(WebCore::DOMWrapperWorld*, JSGlobalContextRef, JSObjectRef windowObject) = 0; - virtual void didReceiveTitleForFrame(const WTF::String& title, WebCore::Frame*) = 0; + virtual void didReceiveTitleForFrame(const String& title, WebCore::Frame*) = 0; virtual void didDecidePolicyForNavigationAction(const WebCore::NavigationAction&, const WebCore::ResourceRequest&) = 0; virtual void didDispatchWillPerformClientRedirect() = 0; virtual void didHandleOnloadEventsForFrame(WebCore::Frame*) = 0; // ChromeClient delegates - virtual void addMessageToConsole(const WTF::String& message, unsigned int lineNumber, const WTF::String& sourceID) = 0; - virtual void runJavaScriptAlert(const WTF::String& message) = 0; - virtual bool runJavaScriptConfirm(const WTF::String& message) = 0; - virtual WTF::String runJavaScriptPrompt(const WTF::String& message, const WTF::String& defaultValue) = 0; - virtual bool runBeforeUnloadConfirmPanel(const WTF::String& message) = 0; - virtual void setStatusText(const WTF::String&) = 0; - virtual void exceededDatabaseQuota(WebCore::SecurityOrigin*, const WTF::String& name) = 0; + virtual void addMessageToConsole(const String& message, unsigned int lineNumber, const String& sourceID) = 0; + virtual void runJavaScriptAlert(const String& message) = 0; + virtual bool runJavaScriptConfirm(const String& message) = 0; + virtual String runJavaScriptPrompt(const String& message, const String& defaultValue) = 0; + virtual bool runBeforeUnloadConfirmPanel(const String& message) = 0; + virtual void setStatusText(const String&) = 0; + virtual void exceededDatabaseQuota(WebCore::SecurityOrigin*, const String& name) = 0; virtual bool allowsOpeningWindow() = 0; virtual void windowCreated(WebPage*) = 0; @@ -80,7 +81,7 @@ public: virtual bool shouldDeleteDOMRange(WebCore::Range*) = 0; virtual bool shouldChangeSelectedDOMRangeToDOMRangeAffinityStillSelecting(WebCore::Range* fromRange, WebCore::Range* toRange, int affinity, bool stillSelecting) = 0; virtual bool shouldInsertNode(WebCore::Node*, WebCore::Range*, int insertAction) = 0; - virtual bool shouldInsertText(const WTF::String&, WebCore::Range*, int insertAction) = 0; + virtual bool shouldInsertText(const String&, WebCore::Range*, int insertAction) = 0; virtual bool isSelectTrailingWhitespaceEnabled() const = 0; virtual bool didReceiveAuthenticationChallenge(WebCore::Credential&) = 0; diff --git a/Source/WebKit/blackberry/Api/InRegionScroller.cpp b/Source/WebKit/blackberry/Api/InRegionScroller.cpp index aaf40168c..6b367b10f 100644 --- a/Source/WebKit/blackberry/Api/InRegionScroller.cpp +++ b/Source/WebKit/blackberry/Api/InRegionScroller.cpp @@ -44,7 +44,6 @@ namespace WebKit { static bool canScrollInnerFrame(Frame*); static bool canScrollRenderBox(RenderBox*); static RenderLayer* parentLayer(RenderLayer*); -static Node* enclosingLayerNode(RenderLayer*); static bool isNonRenderViewFixedPositionedContainer(RenderLayer*); InRegionScroller::InRegionScroller(WebPagePrivate* webPagePrivate) @@ -76,36 +75,35 @@ bool InRegionScroller::setScrollPositionWebKitThread(unsigned camouflagedLayer, InRegionScrollerPrivate::InRegionScrollerPrivate(WebPagePrivate* webPagePrivate) : m_webPage(webPagePrivate) + , m_needsActiveScrollableAreaCalculation(false) { } -void InRegionScrollerPrivate::setNode(WebCore::Node* node) -{ - m_inRegionScrollStartingNode = node; -} - -WebCore::Node* InRegionScrollerPrivate::node() const -{ - return m_inRegionScrollStartingNode.get(); -} - void InRegionScrollerPrivate::reset() { - setNode(0); - + m_needsActiveScrollableAreaCalculation = false; for (size_t i = 0; i < m_activeInRegionScrollableAreas.size(); ++i) delete m_activeInRegionScrollableAreas[i]; m_activeInRegionScrollableAreas.clear(); } -bool InRegionScrollerPrivate::hasNode() const +bool InRegionScrollerPrivate::isActive() const { - return !!m_inRegionScrollStartingNode; + return m_activeInRegionScrollableAreas.size() > 0; } -bool InRegionScrollerPrivate::canScroll() const +void InRegionScrollerPrivate::clearDocumentData(const Document* documentGoingAway) { - return hasNode(); + if (m_needsActiveScrollableAreaCalculation) { + reset(); + return; + } + + InRegionScrollableArea* scrollableArea = static_cast<InRegionScrollableArea*>(m_activeInRegionScrollableAreas[0]); + ASSERT(scrollableArea); + Node* node = scrollableArea->layer()->enclosingElement(); + if (node && node->document() == documentGoingAway) + reset(); } bool InRegionScrollerPrivate::setScrollPositionCompositingThread(unsigned camouflagedLayer, const WebCore::IntPoint& scrollPosition) @@ -113,7 +111,23 @@ bool InRegionScrollerPrivate::setScrollPositionCompositingThread(unsigned camouf LayerCompositingThread* scrollLayer = reinterpret_cast<LayerWebKitThread*>(camouflagedLayer)->layerCompositingThread(); // FIXME: Clamp maximum and minimum scroll positions as a last attempt to fix round errors. - scrollLayer->override()->setBoundsOrigin(scrollPosition); + FloatPoint anchor; + if (scrollLayer->override()->isAnchorPointSet()) + anchor = scrollLayer->override()->anchorPoint(); + else + anchor = scrollLayer->anchorPoint(); + + FloatSize bounds; + if (scrollLayer->override()->isBoundsSet()) + bounds = scrollLayer->override()->bounds(); + else + bounds = scrollLayer->bounds(); + + // Position is offset on the layer by the layer anchor point. + FloatPoint layerPosition(-scrollPosition.x() + anchor.x() * bounds.width(), + -scrollPosition.y() + anchor.y() * bounds.height()); + + scrollLayer->override()->setPosition(FloatPoint(layerPosition.x(), layerPosition.y())); // The client is going to blitVisibleContens, which allow us benefit from "defer blits" technique. return true; @@ -143,13 +157,42 @@ bool InRegionScrollerPrivate::setScrollPositionWebKitThread(unsigned camouflaged if (!layer) return false; + calculateActiveAndShrinkCachedScrollableAreas(layer); + // FIXME: Clamp maximum and minimum scroll positions as a last attempt to fix round errors. return setLayerScrollPosition(layer, scrollPosition); } +void InRegionScrollerPrivate::calculateActiveAndShrinkCachedScrollableAreas(RenderLayer* layer) +{ + if (!m_needsActiveScrollableAreaCalculation) + return; + + ASSERT(layer); + std::vector<Platform::ScrollViewBase*>::iterator end = m_activeInRegionScrollableAreas.end(); + std::vector<Platform::ScrollViewBase*>::iterator it = m_activeInRegionScrollableAreas.begin(); + while (it != end) { + InRegionScrollableArea* curr = static_cast<InRegionScrollableArea*>(*it); + + if (layer == curr->layer()) { + ++it; + continue; + } + + delete *it; + it = m_activeInRegionScrollableAreas.erase(it); + // ::erase invalidates the iterators. + end = m_activeInRegionScrollableAreas.end(); + } + + ASSERT(m_activeInRegionScrollableAreas.size() == 1); + m_needsActiveScrollableAreaCalculation = false; +} + void InRegionScrollerPrivate::calculateInRegionScrollableAreasForPoint(const WebCore::IntPoint& point) { ASSERT(m_activeInRegionScrollableAreas.empty()); + m_needsActiveScrollableAreaCalculation = false; HitTestResult result = m_webPage->m_mainFrame->eventHandler()->hitTestResultAtPoint(m_webPage->mapFromViewportToContents(point), false /*allowShadowContent*/); Node* node = result.innerNonSharedNode(); @@ -190,6 +233,8 @@ void InRegionScrollerPrivate::calculateInRegionScrollableAreasForPoint(const Web if (m_activeInRegionScrollableAreas.empty()) return; + m_needsActiveScrollableAreaCalculation = true; + // Post-calculate the visible window rects in reverse hit test order so // we account for all and any clipping rects. WebCore::IntRect recursiveClippingRect(WebCore::IntPoint::zero(), m_webPage->transformedViewportSize()); @@ -260,13 +305,11 @@ bool InRegionScrollerPrivate::setLayerScrollPosition(RenderLayer* layer, const I backingStoreClient->setIsScrollNotificationSuppressed(false); } - return true; - } + } else { - // RenderBox-based elements case (scrollable boxes (div's, p's, textarea's, etc)). - layer->scrollToOffset(scrollPosition.x(), scrollPosition.y()); - // FIXME_agomes: Please recheck if it is needed still! - layer->renderer()->repaint(true); + // RenderBox-based elements case (scrollable boxes (div's, p's, textarea's, etc)). + layer->scrollToOffset(toSize(scrollPosition)); + } m_webPage->m_selectionHandler->selectionPositionChanged(); // FIXME: We have code in place to handle scrolling and clipping tap highlight @@ -343,17 +386,6 @@ static RenderLayer* parentLayer(RenderLayer* layer) return 0; } -// FIXME: Make RenderLayer::enclosingElement public so this one can be removed. -static Node* enclosingLayerNode(RenderLayer* layer) -{ - for (RenderObject* r = layer->renderer(); r; r = r->parent()) { - if (Node* e = r->node()) - return e; - } - ASSERT_NOT_REACHED(); - return 0; -} - static bool isNonRenderViewFixedPositionedContainer(RenderLayer* layer) { RenderObject* o = layer->renderer(); @@ -369,10 +401,6 @@ void InRegionScrollerPrivate::pushBackInRegionScrollable(InRegionScrollableArea* scrollableArea->setCanPropagateScrollingToEnclosingScrollable(!isNonRenderViewFixedPositionedContainer(scrollableArea->layer())); m_activeInRegionScrollableAreas.push_back(scrollableArea); - if (m_activeInRegionScrollableAreas.size() == 1) { - // FIXME: Use RenderLayer::renderBox()->node() instead? - setNode(enclosingLayerNode(scrollableArea->layer())); - } } } diff --git a/Source/WebKit/blackberry/Api/InRegionScroller_p.h b/Source/WebKit/blackberry/Api/InRegionScroller_p.h index d9e0ebab1..03140c7bf 100644 --- a/Source/WebKit/blackberry/Api/InRegionScroller_p.h +++ b/Source/WebKit/blackberry/Api/InRegionScroller_p.h @@ -42,12 +42,8 @@ class InRegionScrollerPrivate { public: InRegionScrollerPrivate(WebPagePrivate*); - void setNode(WebCore::Node*); - WebCore::Node* node() const; void reset(); - - bool canScroll() const; - bool hasNode() const; + bool isActive() const; bool setScrollPositionCompositingThread(unsigned camouflagedLayer, const WebCore::IntPoint& scrollPosition); bool setScrollPositionWebKitThread(unsigned camouflagedLayer, const WebCore::IntPoint& scrollPosition, bool supportsAcceleratedScrolling); @@ -55,16 +51,20 @@ public: void calculateInRegionScrollableAreasForPoint(const WebCore::IntPoint&); const std::vector<Platform::ScrollViewBase*>& activeInRegionScrollableAreas() const; + void clearDocumentData(const WebCore::Document*); + WebPagePrivate* m_webPage; + bool m_needsActiveScrollableAreaCalculation; private: bool setLayerScrollPosition(WebCore::RenderLayer*, const WebCore::IntPoint& scrollPosition); + void calculateActiveAndShrinkCachedScrollableAreas(WebCore::RenderLayer*); + void pushBackInRegionScrollable(InRegionScrollableArea*); void adjustScrollDelta(const WebCore::IntPoint& maxOffset, const WebCore::IntPoint& currentOffset, WebCore::IntSize& delta) const; - RefPtr<WebCore::Node> m_inRegionScrollStartingNode; std::vector<Platform::ScrollViewBase*> m_activeInRegionScrollableAreas; }; diff --git a/Source/WebKit/blackberry/Api/JavaScriptVariant.cpp b/Source/WebKit/blackberry/Api/JavaScriptVariant.cpp index 1967ae09b..5c433879b 100644 --- a/Source/WebKit/blackberry/Api/JavaScriptVariant.cpp +++ b/Source/WebKit/blackberry/Api/JavaScriptVariant.cpp @@ -147,6 +147,9 @@ JavaScriptVariant::~JavaScriptVariant() JavaScriptVariant& JavaScriptVariant::operator=(const JavaScriptVariant& v) { + if (&v == this) + return *this; + switch (v.type()) { case Boolean: setBoolean(v.booleanValue()); diff --git a/Source/WebKit/blackberry/Api/WebAnimation.cpp b/Source/WebKit/blackberry/Api/WebAnimation.cpp index 11b0ddd56..e916ca5b8 100644 --- a/Source/WebKit/blackberry/Api/WebAnimation.cpp +++ b/Source/WebKit/blackberry/Api/WebAnimation.cpp @@ -70,7 +70,8 @@ WebAnimation::~WebAnimation() WebAnimation& WebAnimation::operator=(const WebAnimation& o) { - *d = *o.d; + if (&o != this) + *d = *o.d; return *this; } diff --git a/Source/WebKit/blackberry/Api/WebPage.cpp b/Source/WebKit/blackberry/Api/WebPage.cpp index 2e34c366c..2052b0e82 100644 --- a/Source/WebKit/blackberry/Api/WebPage.cpp +++ b/Source/WebKit/blackberry/Api/WebPage.cpp @@ -20,6 +20,7 @@ #include "WebPage.h" #include "ApplicationCacheStorage.h" +#include "AuthenticationChallengeManager.h" #include "AutofillManager.h" #include "BackForwardController.h" #include "BackForwardListImpl.h" @@ -29,7 +30,6 @@ #if ENABLE(BATTERY_STATUS) #include "BatteryClientBlackBerry.h" #endif -#include "CString.h" #include "CachedImage.h" #include "Chrome.h" #include "ChromeClientBlackBerry.h" @@ -76,6 +76,7 @@ #include "InspectorBackendDispatcher.h" #include "InspectorClientBlackBerry.h" #include "InspectorController.h" +#include "InspectorInstrumentation.h" #include "InspectorOverlay.h" #include "JavaScriptDebuggerBlackBerry.h" #include "JavaScriptVariant_p.h" @@ -153,7 +154,6 @@ #include <BlackBerryPlatformDeviceInfo.h> #include <BlackBerryPlatformExecutableMessage.h> -#include <BlackBerryPlatformITPolicy.h> #include <BlackBerryPlatformKeyboardEvent.h> #include <BlackBerryPlatformMessageClient.h> #include <BlackBerryPlatformMouseEvent.h> @@ -166,6 +166,8 @@ #include <sys/keycodes.h> #include <unicode/ustring.h> // platform ICU +#include <wtf/text/CString.h> + #ifndef USER_PROCESSES #include <memalloc.h> #endif @@ -567,8 +569,7 @@ void WebPagePrivate::init(const WebString& pageGroupName) m_inRegionScroller = adoptPtr(new InRegionScroller(this)); #if ENABLE(WEBGL) - Platform::Settings* settings = Platform::Settings::instance(); - m_page->settings()->setWebGLEnabled(settings && settings->isWebGLSupported()); + m_page->settings()->setWebGLEnabled(true); #endif #if ENABLE(ACCELERATED_2D_CANVAS) m_page->settings()->setCanvasUsesAcceleratedDrawing(true); @@ -742,6 +743,7 @@ bool WebPagePrivate::executeJavaScript(const char* scriptUTF8, JavaScriptDataTyp JSC::ExecState* exec = m_mainFrame->script()->globalObject(mainThreadNormalWorld())->globalExec(); JSGlobalContextRef context = toGlobalRef(exec); + JSC::JSLockHolder lock(exec); JSType type = JSValueGetType(context, toRef(exec, value)); switch (type) { @@ -1482,8 +1484,8 @@ void WebPage::scrollBy(const Platform::IntSize& delta) void WebPagePrivate::notifyInRegionScrollStopped() { - if (m_inRegionScroller->d->hasNode()) { - enqueueRenderingOfClippedContentOfScrollableNodeAfterInRegionScrolling(m_inRegionScroller->d->node()); + if (m_inRegionScroller->d->isActive()) { + enqueueRenderingOfClippedContentOfScrollableAreaAfterInRegionScrolling(); m_inRegionScroller->d->reset(); } } @@ -1493,9 +1495,16 @@ void WebPage::notifyInRegionScrollStopped() d->notifyInRegionScrollStopped(); } -void WebPagePrivate::enqueueRenderingOfClippedContentOfScrollableNodeAfterInRegionScrolling(Node* scrolledNode) +void WebPagePrivate::enqueueRenderingOfClippedContentOfScrollableAreaAfterInRegionScrolling() { - ASSERT(scrolledNode); + // If no scrolling was even performed, bail out. + if (m_inRegionScroller->d->m_needsActiveScrollableAreaCalculation) + return; + + InRegionScrollableArea* scrollableArea = static_cast<InRegionScrollableArea*>(m_inRegionScroller->d->activeInRegionScrollableAreas()[0]); + ASSERT(scrollableArea); + Node* scrolledNode = scrollableArea->layer()->enclosingElement(); + if (scrolledNode->isDocumentNode()) { Frame* frame = static_cast<const Document*>(scrolledNode)->frame(); ASSERT(frame); @@ -1560,10 +1569,11 @@ void WebPagePrivate::updateViewportSize(bool setFixedReportedSize, bool sendResi if (!m_backingStore) return; ASSERT(m_mainFrame->view()); + IntSize visibleSize = actualVisibleSize(); if (setFixedReportedSize) - m_mainFrame->view()->setFixedReportedSize(actualVisibleSize()); + m_mainFrame->view()->setFixedReportedSize(visibleSize); - IntRect frameRect = IntRect(scrollPosition(), viewportSize()); + IntRect frameRect = IntRect(scrollPosition(), visibleSize); if (frameRect != m_mainFrame->view()->frameRect()) { m_mainFrame->view()->setFrameRect(frameRect); m_mainFrame->view()->adjustViewSize(); @@ -2258,14 +2268,20 @@ bool WebPagePrivate::isActive() const return m_client->isActive(); } -bool WebPagePrivate::authenticationChallenge(const KURL& url, const ProtectionSpace& protectionSpace, Credential& inputCredential) +void WebPagePrivate::authenticationChallenge(const KURL& url, const ProtectionSpace& protectionSpace, const Credential& inputCredential, AuthenticationChallengeClient* client) { WebString username; WebString password; #if !defined(PUBLIC_BUILD) || !PUBLIC_BUILD - if (m_dumpRenderTree) - return m_dumpRenderTree->didReceiveAuthenticationChallenge(inputCredential); + if (m_dumpRenderTree) { + Credential credential(inputCredential, inputCredential.persistence()); + if (m_dumpRenderTree->didReceiveAuthenticationChallenge(credential)) + client->notifyChallengeResult(url, protectionSpace, AuthenticationChallengeSuccess, credential); + else + client->notifyChallengeResult(url, protectionSpace, AuthenticationChallengeCancelled, inputCredential); + return; + } #endif #if ENABLE(BLACKBERRY_CREDENTIAL_PERSIST) @@ -2282,8 +2298,11 @@ bool WebPagePrivate::authenticationChallenge(const KURL& url, const ProtectionSp #else Credential credential(username, password, CredentialPersistenceNone); #endif - inputCredential = credential; - return isConfirmed; + + if (isConfirmed) + client->notifyChallengeResult(url, protectionSpace, AuthenticationChallengeSuccess, credential); + else + client->notifyChallengeResult(url, protectionSpace, AuthenticationChallengeCancelled, inputCredential); } PageClientBlackBerry::SaveCredentialType WebPagePrivate::notifyShouldSaveCredential(bool isNew) @@ -2408,6 +2427,13 @@ Platform::WebContext WebPagePrivate::webContext(TargetDetectionStrategy strategy if (node->isElementNode()) { Element* element = static_cast<Element*>(node->shadowAncestorNode()); + + String webWorksContext(DOMSupport::webWorksContext(element)); + if (!webWorksContext.stripWhiteSpace().isEmpty()) { + context.setFlag(Platform::WebContext::IsWebWorksContext); + context.setWebWorksContext(webWorksContext.utf8().data()); + } + if (DOMSupport::isTextBasedContentEditableElement(element)) { if (!canStartSelection) { // Input fields host node is by spec non-editable unless the field itself has content editable enabled. @@ -2549,8 +2575,8 @@ void WebPagePrivate::clearDocumentData(const Document* documentGoingAway) if (m_currentBlockZoomAdjustedNode && m_currentBlockZoomAdjustedNode->document() == documentGoingAway) m_currentBlockZoomAdjustedNode = 0; - if (m_inRegionScroller->d->hasNode() && m_inRegionScroller->d->node()->document() == documentGoingAway) - m_inRegionScroller->d->reset(); + if (m_inRegionScroller->d->isActive()) + m_inRegionScroller->d->clearDocumentData(documentGoingAway); if (documentGoingAway->frame()) m_inputHandler->frameUnloaded(documentGoingAway->frame()); @@ -2737,7 +2763,7 @@ PassRefPtr<Node> WebPagePrivate::contextNode(TargetDetectionStrategy strategy) return result.node(FatFingersResult::ShadowContentNotAllowed); } - HitTestResult result = eventHandler->hitTestResultAtPoint(contentPos, false /*allowShadowContent*/); + HitTestResult result = eventHandler->hitTestResultAtPoint(contentPos); return result.innerNode(); } @@ -2809,7 +2835,7 @@ Node* WebPagePrivate::nodeForZoomUnderPoint(const IntPoint& point) if (!m_mainFrame) return 0; - HitTestResult result = m_mainFrame->eventHandler()->hitTestResultAtPoint(mapFromTransformed(point), false); + HitTestResult result = m_mainFrame->eventHandler()->hitTestResultAtPoint(mapFromTransformed(point)); Node* node = result.innerNonSharedNode(); @@ -3122,6 +3148,11 @@ void WebPage::blockZoomAnimationFinished() d->zoomBlock(); } +void WebPage::resetBlockZoom() +{ + d->resetBlockZoom(); +} + void WebPagePrivate::resetBlockZoom() { m_currentBlockZoomNode = 0; @@ -3676,28 +3707,12 @@ void WebPagePrivate::setViewportSize(const IntSize& transformedActualVisibleSize if (!m_visible || !m_backingStore->d->isActive()) setShouldResetTilesWhenShown(true); - bool needsLayout = false; bool hasPendingOrientation = m_pendingOrientation != -1; if (m_hasPendingSurfaceSizeChange) { resizeSurfaceIfNeeded(); m_hasPendingSurfaceSizeChange = false; } - if (!hasPendingOrientation) { - // If we are not rotating and we've started a viewport resize with - // the Render tree in dirty state (i.e. it needs layout), lets - // reset the needsLayout flag for now but set our own 'needsLayout'. - // - // Reason: calls like ScrollView::setFixedLayoutSize can trigger a layout - // if the render tree needs it. We want to avoid it till the viewport resize - // is actually done (i.e. ScrollView::setViewportSize gets called - // further down the method). - if (m_mainFrame->view()->needsLayout()) { - m_mainFrame->view()->unscheduleRelayout(); - m_mainFrame->contentRenderer()->setNeedsLayout(false); - needsLayout = true; - } - } // The window buffers might have been recreated, cleared, moved, etc., so: m_backingStore->d->windowFrontBufferState()->clearBlittedRegion(); @@ -3722,6 +3737,7 @@ void WebPagePrivate::setViewportSize(const IntSize& transformedActualVisibleSize setDefaultLayoutSize(transformedActualVisibleSize); // Recompute our virtual viewport. + bool needsLayout = false; static ViewportArguments defaultViewportArguments; if (m_viewportArguments != defaultViewportArguments) { // We may need to infer the width and height for the viewport with respect to the rotation. @@ -3805,16 +3821,17 @@ void WebPagePrivate::setViewportSize(const IntSize& transformedActualVisibleSize // We might need to layout here to get a correct contentsSize so that zoomToFit // is calculated correctly. - while (needsLayout) { + bool stillNeedsLayout = needsLayout; + while (stillNeedsLayout) { setNeedsLayout(); requestLayoutIfNeeded(); - needsLayout = false; + stillNeedsLayout = false; // Emulate the zoomToFitWidthOnLoad algorithm if we're rotating. ++m_nestedLayoutFinishedCount; if (needsLayoutToFindContentSize) { if (setViewMode(viewMode())) - needsLayout = true; + stillNeedsLayout = true; } } m_nestedLayoutFinishedCount = 0; @@ -4028,7 +4045,7 @@ bool WebPagePrivate::handleMouseEvent(PlatformMouseEvent& mouseEvent) } if (!node) { - HitTestResult result = eventHandler->hitTestResultAtPoint(mapFromViewportToContents(mouseEvent.position()), false /*allowShadowContent*/); + HitTestResult result = eventHandler->hitTestResultAtPoint(mapFromViewportToContents(mouseEvent.position())); node = result.innerNode(); } @@ -4082,6 +4099,10 @@ bool WebPage::touchEvent(const Platform::TouchEvent& event) if (d->m_page->defersLoading()) return false; + // FIXME: this checks if node search on inspector is enabled, though it might not be optimized. + if (InspectorInstrumentation::handleMousePress(d->m_mainFrame->page())) + return false; + PluginView* pluginView = d->m_fullScreenPluginView.get(); if (pluginView) return d->dispatchTouchEventToFullScreenPlugin(pluginView, event); @@ -4092,7 +4113,6 @@ bool WebPage::touchEvent(const Platform::TouchEvent& event) tEvent.m_points[i].m_screenPos = d->mapFromTransformed(tEvent.m_points[i].m_screenPos); } - Platform::Gesture tapGesture; if (event.hasGesture(Platform::Gesture::SingleTap)) d->m_pluginMayOpenNewTab = true; else if (tEvent.m_type == Platform::TouchEvent::TouchStart || tEvent.m_type == Platform::TouchEvent::TouchCancel) @@ -5188,7 +5208,7 @@ WebDOMDocument WebPage::document() const WebDOMNode WebPage::nodeAtPoint(int x, int y) { - HitTestResult result = d->m_mainFrame->eventHandler()->hitTestResultAtPoint(d->mapFromTransformed(IntPoint(x, y)), false); + HitTestResult result = d->m_mainFrame->eventHandler()->hitTestResultAtPoint(d->mapFromTransformed(IntPoint(x, y))); Node* node = result.innerNonSharedNode(); return WebDOMNode(node); } @@ -5473,31 +5493,6 @@ void WebPagePrivate::setCompositorDrawsRootLayer(bool compositorDrawsRootLayer) } #if USE(ACCELERATED_COMPOSITING) -void WebPagePrivate::drawLayersOnCommit() -{ - if (!Platform::userInterfaceThreadMessageClient()->isCurrentThread()) { - // This method will only be called when the layer appearance changed due to - // animations. And only if we don't need a one shot drawing sync. - ASSERT(!needsOneShotDrawingSynchronization()); - - if (!m_webPage->isVisible()) - return; - - m_backingStore->d->willDrawLayersOnCommit(); - - Platform::userInterfaceThreadMessageClient()->dispatchMessage( - Platform::createMethodCallMessage(&WebPagePrivate::drawLayersOnCommit, this)); - return; - } - -#if DEBUG_AC_COMMIT - Platform::log(Platform::LogLevelCritical, "%s", WTF_PRETTY_FUNCTION); -#endif - - if (!m_backingStore->d->shouldDirectRenderingToWindow()) - m_backingStore->d->blitVisibleContents(); -} - void WebPagePrivate::scheduleRootLayerCommit() { if (!(m_frameLayers && m_frameLayers->hasLayer()) && !m_overlayLayer) @@ -5626,6 +5621,8 @@ void WebPagePrivate::commitRootLayer(const IntRect& layoutRectForCompositing, if (overlayLayer) overlayLayer->commitOnCompositingThread(); + + scheduleCompositingRun(); } bool WebPagePrivate::commitRootLayerIfNeeded() @@ -5646,7 +5643,9 @@ bool WebPagePrivate::commitRootLayerIfNeeded() if (!m_needsCommit) return false; - if (!(m_frameLayers && m_frameLayers->hasLayer()) && !m_overlayLayer) + // Don't bail if the layers were removed and we now need a one shot drawing sync as a consequence. + if (!(m_frameLayers && m_frameLayers->hasLayer()) && !m_overlayLayer + && !m_needsOneShotDrawingSynchronization) return false; FrameView* view = m_mainFrame->view(); @@ -5744,10 +5743,7 @@ void WebPagePrivate::rootLayerCommitTimerFired(Timer<WebPagePrivate>*) } } - // If the web page needs layout, the commit will fail. - // No need to draw the layers if nothing changed. - if (commitRootLayerIfNeeded()) - drawLayersOnCommit(); + commitRootLayerIfNeeded(); } void WebPagePrivate::resetCompositingSurface() @@ -5888,9 +5884,6 @@ void WebPagePrivate::resumeRootLayerCommit() m_suspendRootLayerCommit = false; m_needsCommit = true; - - // Recreate layer resources if needed. - commitRootLayerIfNeeded(); } bool WebPagePrivate::needsOneShotDrawingSynchronization() @@ -6032,7 +6025,7 @@ void WebPagePrivate::exitFullScreenForElement(Element* element) { #if ENABLE(VIDEO) // TODO: We should not check video tag when we decide to support all elements. - if (!element || !element->hasTagName(HTMLNames::videoTag)) + if (!element || (!element->hasTagName(HTMLNames::videoTag) && !containsVideoTags(element))) return; if (m_webSettings->fullScreenVideoCapable()) { // The Browser chrome has its own fullscreen video widget. @@ -6219,10 +6212,6 @@ void WebPagePrivate::scheduleCompositingRun() void WebPage::setWebGLEnabled(bool enabled) { - if (!Platform::ITPolicy::isWebGLEnabled()) { - d->m_page->settings()->setWebGLEnabled(false); - return; - } d->m_page->settings()->setWebGLEnabled(enabled); } diff --git a/Source/WebKit/blackberry/Api/WebPage.h b/Source/WebKit/blackberry/Api/WebPage.h index 14d57a65f..f3a5760fa 100644 --- a/Source/WebKit/blackberry/Api/WebPage.h +++ b/Source/WebKit/blackberry/Api/WebPage.h @@ -188,6 +188,7 @@ public: void zoomToInitialScale(); bool blockZoom(int x, int y); void blockZoomAnimationFinished(); + void resetBlockZoom(); bool isAtInitialZoom() const; bool isMaxZoomed() const; bool isMinZoomed() const; diff --git a/Source/WebKit/blackberry/Api/WebPageClient.h b/Source/WebKit/blackberry/Api/WebPageClient.h index be574a65b..137c81e87 100644 --- a/Source/WebKit/blackberry/Api/WebPageClient.h +++ b/Source/WebKit/blackberry/Api/WebPageClient.h @@ -43,6 +43,7 @@ class GeoTrackerListener; class IntRectRegion; class NetworkRequest; class NetworkStreamFactory; +class WebUserMediaRequest; namespace Graphics { class Window; @@ -103,7 +104,7 @@ public: virtual void notifyInRegionScrollingStartingPointChanged(const std::vector<Platform::ScrollViewBase*>&) = 0; virtual void notifyNoMouseMoveOrTouchMoveHandlers() = 0; - virtual void notifyDocumentOnLoad() = 0; + virtual void notifyDocumentOnLoad(bool) = 0; virtual void notifyWindowObjectCleared() = 0; virtual WebString invokeClientJavaScriptCallback(const char* const* args, unsigned numArgs) = 0; @@ -165,9 +166,6 @@ public: virtual void resetBackForwardList(unsigned listSize, unsigned currentIndex) = 0; virtual void openPopupList(bool multiple, int size, const ScopeArray<WebString>& labels, const bool* enableds, const int* itemType, const bool* selecteds) = 0; - virtual void openDateTimePopup(int type, const WebString& value, const WebString& min, const WebString& max, double step) = 0; - virtual void openColorPopup(const WebString& value) = 0; - virtual bool chooseFilenames(bool allowMultiple, const SharedArray<WebString>& acceptTypes, const SharedArray<WebString>& initialFiles, const WebString& capture, SharedArray<WebString>& chosenFiles) = 0; virtual void loadPluginForMimetype(int, int width, int height, const SharedArray<WebString>& paramNames, const SharedArray<WebString>& paramValues, const char* url) = 0; @@ -269,6 +267,10 @@ public: virtual void registerProtocolHandler(const WebString& /*scheme*/, const WebString& /*baseURL*/, const WebString& /*url*/, const WebString& /*title*/) = 0; virtual ProtocolHandlersState isProtocolHandlerRegistered(const WebString& /*scheme*/, const WebString& /*baseURL*/, const WebString& /*url*/) = 0; virtual void unregisterProtocolHandler(const WebString& /*scheme*/, const WebString& /*baseURL*/, const WebString& /*url*/) = 0; + + virtual void requestUserMedia(const Platform::WebUserMediaRequest&) = 0; + virtual void cancelUserMediaRequest(const Platform::WebUserMediaRequest&) = 0; + virtual void updateFindStringResult(int numMatches, int currentIndex) = 0; }; } // namespace WebKit } // namespace BlackBerry diff --git a/Source/WebKit/blackberry/Api/WebPage_p.h b/Source/WebKit/blackberry/Api/WebPage_p.h index 1e5af0bce..6308971c5 100644 --- a/Source/WebKit/blackberry/Api/WebPage_p.h +++ b/Source/WebKit/blackberry/Api/WebPage_p.h @@ -45,6 +45,7 @@ #define DEFAULT_MAX_LAYOUT_HEIGHT 768 namespace WebCore { +class AuthenticationChallengeClient; class AutofillManager; class DOMWrapperWorld; class Document; @@ -152,7 +153,7 @@ public: void setScrollPosition(const WebCore::IntPoint&); void scrollBy(int deltaX, int deltaY); - void enqueueRenderingOfClippedContentOfScrollableNodeAfterInRegionScrolling(WebCore::Node*); + void enqueueRenderingOfClippedContentOfScrollableAreaAfterInRegionScrolling(); void notifyInRegionScrollStopped(); void setScrollOriginPoint(const Platform::IntPoint&); void setHasInRegionScrollableAreas(bool); @@ -201,7 +202,7 @@ public: virtual int showAlertDialog(WebPageClient::AlertType atype); virtual bool isActive() const; virtual bool isVisible() const { return m_visible; } - virtual bool authenticationChallenge(const WebCore::KURL&, const WebCore::ProtectionSpace&, WebCore::Credential&); + virtual void authenticationChallenge(const WebCore::KURL&, const WebCore::ProtectionSpace&, const WebCore::Credential&, WebCore::AuthenticationChallengeClient*); virtual SaveCredentialType notifyShouldSaveCredential(bool); virtual void syncProxyCredential(const WebCore::Credential&); @@ -409,7 +410,6 @@ public: // Thread safe. void resetCompositingSurface(); - void drawLayersOnCommit(); // Including backing store blit. // Compositing thread. void setRootLayerCompositingThread(WebCore::LayerCompositingThread*); diff --git a/Source/WebKit/blackberry/Api/WebSettings.cpp b/Source/WebKit/blackberry/Api/WebSettings.cpp index de6f505d7..18bfbc53a 100644 --- a/Source/WebKit/blackberry/Api/WebSettings.cpp +++ b/Source/WebKit/blackberry/Api/WebSettings.cpp @@ -37,67 +37,67 @@ namespace BlackBerry { namespace WebKit { -DEFINE_STATIC_LOCAL(String, BlackBerryAllowCrossSiteRequests, ("BlackBerryAllowCrossSiteRequests")); -DEFINE_STATIC_LOCAL(String, BlackBerryAsynchronousSpellChecking, ("BlackBerryAsynchronousSpellChecking")); -DEFINE_STATIC_LOCAL(String, BlackBerryBackgroundColor, ("BlackBerryBackgroundColor")); -DEFINE_STATIC_LOCAL(String, BlackBerryCookiesEnabled, ("BlackBerryCookiesEnabled")); -DEFINE_STATIC_LOCAL(String, BlackBerryDirectRenderingToWindowEnabled, ("BlackBerryDirectRenderingToWindowEnabled")); -DEFINE_STATIC_LOCAL(String, BlackBerryDrawBorderWhileLoadingImages, ("BlackBerryDrawBorderWhileLoadingImages")); -DEFINE_STATIC_LOCAL(String, BlackBerryEmailModeEnabled, ("BlackBerryEmailModeEnabled")); -DEFINE_STATIC_LOCAL(String, BlackBerryGetFocusNodeContextEnabled, ("BlackBerryGetFocusNodeContextEnabled")); -DEFINE_STATIC_LOCAL(String, BlackBerryHandlePatternURLs, ("BlackBerryHandlePatternURLs")); -DEFINE_STATIC_LOCAL(String, BlackBerryInitialScale, ("BlackBerryInitialScale")); -DEFINE_STATIC_LOCAL(String, BlackBerryLinksHandledExternallyEnabled, ("BlackBerryLinksHandledExternallyEnabled")); -DEFINE_STATIC_LOCAL(String, BlackBerryMaxPluginInstances, ("BlackBerryMaxPluginInstances")); -DEFINE_STATIC_LOCAL(String, BlackBerryOverScrollColor, ("BlackBerryOverScrollColor")); -DEFINE_STATIC_LOCAL(String, BlackBerryEnableDefaultOverScrollBackground, ("BlackBerryEnableDefaultOverScrollBackground")); -DEFINE_STATIC_LOCAL(String, BlackBerryRenderAnimationsOnScrollOrZoomEnabled, ("BlackBerryRenderAnimationsOnScrollOrZoomEnabled")); -DEFINE_STATIC_LOCAL(String, BlackBerryScrollbarsEnabled, ("BlackBerryScrollbarsEnabled")); -DEFINE_STATIC_LOCAL(String, BlackBerryTextReflowMode, ("BlackBerryTextReflowMode")); -DEFINE_STATIC_LOCAL(String, BlackBerryUseRTLWritingDirection, ("BlackBerryUseRTLWritingDirection")); -DEFINE_STATIC_LOCAL(String, BlackBerryUseWebKitCache, ("BlackBerryUseWebKitCache")); -DEFINE_STATIC_LOCAL(String, BlackBerryUserAgentString, ("BlackBerryUserAgentString")); -DEFINE_STATIC_LOCAL(String, BlackBerryUserScalableEnabled, ("BlackBerryUserScalableEnabled")); -DEFINE_STATIC_LOCAL(String, BlackBerryViewportWidth, ("BlackBerryViewportWidth")); -DEFINE_STATIC_LOCAL(String, BlackBerryZoomToFitOnLoadEnabled, ("BlackBerryZoomToFitOnLoadEnabled")); -DEFINE_STATIC_LOCAL(String, BlackBerryFullScreenVideoCapable, ("BlackBerryFullScreenVideoCapable")); -DEFINE_STATIC_LOCAL(String, BlackBerryCredentialAutofillEnabled, ("BlackBerryCredentialAutofillEnabled")); -DEFINE_STATIC_LOCAL(String, BlackBerryFormAutofillEnabled, ("BlackBerryFormAutofillEnabled")); -DEFINE_STATIC_LOCAL(String, BlackBerryDevicePixelRatio, ("BlackBerryDevicePixelRatio")); -DEFINE_STATIC_LOCAL(String, SpatialNavigationEnabled, ("SpatialNavigationEnabled")); -DEFINE_STATIC_LOCAL(String, WebKitDatabasePath, ("WebKitDatabasePath")); -DEFINE_STATIC_LOCAL(String, WebKitDatabasesEnabled, ("WebKitDatabasesEnabled")); -DEFINE_STATIC_LOCAL(String, WebKitDefaultFixedFontSize, ("WebKitDefaultFixedFontSize")); -DEFINE_STATIC_LOCAL(String, WebKitDefaultFontSize, ("WebKitDefaultFontSize")); -DEFINE_STATIC_LOCAL(String, WebKitDefaultTextEncodingName, ("WebKitDefaultTextEncodingName")); -DEFINE_STATIC_LOCAL(String, WebKitDownloadableBinaryFontsEnabled, ("WebKitDownloadableBinaryFontsEnabled")); -DEFINE_STATIC_LOCAL(String, WebKitFirstScheduledLayoutDelay, ("WebKitFirstScheduledLayoutDelay")); -DEFINE_STATIC_LOCAL(String, WebKitFixedFontFamily, ("WebKitFixedFontFamily")); -DEFINE_STATIC_LOCAL(String, WebKitFrameFlatteningEnabled, ("WebKitFrameFlatteningEnabled")); -DEFINE_STATIC_LOCAL(String, WebKitGeolocationEnabled, ("WebKitGeolocationEnabled")); -DEFINE_STATIC_LOCAL(String, WebKitIndexedDataBasePath, ("WebKitIndexedDataBasePath")); -DEFINE_STATIC_LOCAL(String, WebKitJavaScriptCanOpenWindowsAutomaticallyEnabled, ("WebKitJavaScriptCanOpenWindowsAutomaticallyEnabled")); -DEFINE_STATIC_LOCAL(String, WebKitJavaScriptEnabled, ("WebKitJavaScriptEnabled")); -DEFINE_STATIC_LOCAL(String, WebKitLoadsImagesAutomatically, ("WebKitLoadsImagesAutomatically")); -DEFINE_STATIC_LOCAL(String, WebKitLocalStorageEnabled, ("WebKitLocalStorageEnabled")); -DEFINE_STATIC_LOCAL(String, WebKitLocalStoragePath, ("WebKitLocalStoragePath")); -DEFINE_STATIC_LOCAL(String, WebKitLocalStorageQuota, ("WebKitLocalStorageQuota")); -DEFINE_STATIC_LOCAL(String, WebKitSessionStorageQuota, ("WebKitSessionStorageQuota")); -DEFINE_STATIC_LOCAL(String, WebKitMaximumPagesInCache, ("WebKitMaximumPagesInCache")); -DEFINE_STATIC_LOCAL(String, WebKitMinimumFontSize, ("WebKitMinimumFontSize")); -DEFINE_STATIC_LOCAL(String, WebKitOfflineWebApplicationCacheEnabled, ("WebKitOfflineWebApplicationCacheEnabled")); -DEFINE_STATIC_LOCAL(String, WebKitOfflineWebApplicationCachePath, ("WebKitOfflineWebApplicationCachePath")); -DEFINE_STATIC_LOCAL(String, WebKitPageGroupName, ("WebKitPageGroupName")); -DEFINE_STATIC_LOCAL(String, WebKitPluginsEnabled, ("WebKitPluginsEnabled")); -DEFINE_STATIC_LOCAL(String, WebKitPrivateBrowsingEnabled, ("WebKitPrivateBrowsingEnabled")); -DEFINE_STATIC_LOCAL(String, WebKitDeviceSupportsMouse, ("WebKitDeviceSupportsMouse")); -DEFINE_STATIC_LOCAL(String, WebKitSansSeriffFontFamily, ("WebKitSansSeriffFontFamily")); -DEFINE_STATIC_LOCAL(String, WebKitSeriffFontFamily, ("WebKitSeriffFontFamily")); -DEFINE_STATIC_LOCAL(String, WebKitStandardFontFamily, ("WebKitStandardFontFamily")); -DEFINE_STATIC_LOCAL(String, WebKitUserStyleSheet, ("WebKitUserStyleSheet")); -DEFINE_STATIC_LOCAL(String, WebKitUserStyleSheetLocation, ("WebKitUserStyleSheetLocation")); -DEFINE_STATIC_LOCAL(String, WebKitWebSocketsEnabled, ("WebKitWebSocketsEnabled")); -DEFINE_STATIC_LOCAL(String, WebKitXSSAuditorEnabled, ("WebKitXSSAuditorEnabled")); +DEFINE_STATIC_LOCAL(String, BlackBerryAllowCrossSiteRequests, (ASCIILiteral("BlackBerryAllowCrossSiteRequests"))); +DEFINE_STATIC_LOCAL(String, BlackBerryAsynchronousSpellChecking, (ASCIILiteral("BlackBerryAsynchronousSpellChecking"))); +DEFINE_STATIC_LOCAL(String, BlackBerryBackgroundColor, (ASCIILiteral("BlackBerryBackgroundColor"))); +DEFINE_STATIC_LOCAL(String, BlackBerryCookiesEnabled, (ASCIILiteral("BlackBerryCookiesEnabled"))); +DEFINE_STATIC_LOCAL(String, BlackBerryDirectRenderingToWindowEnabled, (ASCIILiteral("BlackBerryDirectRenderingToWindowEnabled"))); +DEFINE_STATIC_LOCAL(String, BlackBerryDrawBorderWhileLoadingImages, (ASCIILiteral("BlackBerryDrawBorderWhileLoadingImages"))); +DEFINE_STATIC_LOCAL(String, BlackBerryEmailModeEnabled, (ASCIIliteral("BlackBerryEmailModeEnabled"))); +DEFINE_STATIC_LOCAL(String, BlackBerryGetFocusNodeContextEnabled, (ASCIILiteral("BlackBerryGetFocusNodeContextEnabled"))); +DEFINE_STATIC_LOCAL(String, BlackBerryHandlePatternURLs, (ASCIILiteral("BlackBerryHandlePatternURLs"))); +DEFINE_STATIC_LOCAL(String, BlackBerryInitialScale, (ASCIILiteral("BlackBerryInitialScale"))); +DEFINE_STATIC_LOCAL(String, BlackBerryLinksHandledExternallyEnabled, (ASCIILiteral("BlackBerryLinksHandledExternallyEnabled"))); +DEFINE_STATIC_LOCAL(String, BlackBerryMaxPluginInstances, (ASCIILiteral("BlackBerryMaxPluginInstances"))); +DEFINE_STATIC_LOCAL(String, BlackBerryOverScrollColor, (ASCIILiteral("BlackBerryOverScrollColor"))); +DEFINE_STATIC_LOCAL(String, BlackBerryEnableDefaultOverScrollBackground, (ASCIILiteral("BlackBerryEnableDefaultOverScrollBackground"))); +DEFINE_STATIC_LOCAL(String, BlackBerryRenderAnimationsOnScrollOrZoomEnabled, (ASCIILiteral("BlackBerryRenderAnimationsOnScrollOrZoomEnabled"))); +DEFINE_STATIC_LOCAL(String, BlackBerryScrollbarsEnabled, (ASCIILiteral("BlackBerryScrollbarsEnabled"))); +DEFINE_STATIC_LOCAL(String, BlackBerryTextReflowMode, (ASCIILiteral("BlackBerryTextReflowMode"))); +DEFINE_STATIC_LOCAL(String, BlackBerryUseRTLWritingDirection, (ASCIILiteral("BlackBerryUseRTLWritingDirection"))); +DEFINE_STATIC_LOCAL(String, BlackBerryUseWebKitCache, (ASCIILiteral("BlackBerryUseWebKitCache"))); +DEFINE_STATIC_LOCAL(String, BlackBerryUserAgentString, (ASCIILiteral("BlackBerryUserAgentString"))); +DEFINE_STATIC_LOCAL(String, BlackBerryUserScalableEnabled, (ASCIILiteral("BlackBerryUserScalableEnabled"))); +DEFINE_STATIC_LOCAL(String, BlackBerryViewportWidth, (ASCIILiteral("BlackBerryViewportWidth"))); +DEFINE_STATIC_LOCAL(String, BlackBerryZoomToFitOnLoadEnabled, (ASCIILiteral("BlackBerryZoomToFitOnLoadEnabled"))); +DEFINE_STATIC_LOCAL(String, BlackBerryFullScreenVideoCapable, (ASCIILiteral("BlackBerryFullScreenVideoCapable"))); +DEFINE_STATIC_LOCAL(String, BlackBerryCredentialAutofillEnabled, (ASCIILiteral("BlackBerryCredentialAutofillEnabled"))); +DEFINE_STATIC_LOCAL(String, BlackBerryFormAutofillEnabled, (ASCIILiteral("BlackBerryFormAutofillEnabled"))); +DEFINE_STATIC_LOCAL(String, BlackBerryDevicePixelRatio, (ASCCIILiteral("BlackBerryDevicePixelRatio"))); +DEFINE_STATIC_LOCAL(String, SpatialNavigationEnabled, (ASCIILiteral("SpatialNavigationEnabled"))); +DEFINE_STATIC_LOCAL(String, WebKitDatabasePath, (ASCIILiteral("WebKitDatabasePath"))); +DEFINE_STATIC_LOCAL(String, WebKitDatabasesEnabled, (ASCIILiteral("WebKitDatabasesEnabled"))); +DEFINE_STATIC_LOCAL(String, WebKitDefaultFixedFontSize, (ASCIILiteral("WebKitDefaultFixedFontSize"))); +DEFINE_STATIC_LOCAL(String, WebKitDefaultFontSize, (ASCIILiteral("WebKitDefaultFontSize"))); +DEFINE_STATIC_LOCAL(String, WebKitDefaultTextEncodingName, (ASCIILiteral("WebKitDefaultTextEncodingName"))); +DEFINE_STATIC_LOCAL(String, WebKitDownloadableBinaryFontsEnabled, (ASCIILiteral("WebKitDownloadableBinaryFontsEnabled"))); +DEFINE_STATIC_LOCAL(String, WebKitFirstScheduledLayoutDelay, (ASCIILiteral("WebKitFirstScheduledLayoutDelay"))); +DEFINE_STATIC_LOCAL(String, WebKitFixedFontFamily, (ASCIILiteral("WebKitFixedFontFamily"))); +DEFINE_STATIC_LOCAL(String, WebKitFrameFlatteningEnabled, (ASCIILiteral("WebKitFrameFlatteningEnabled"))); +DEFINE_STATIC_LOCAL(String, WebKitGeolocationEnabled, (ASCIILiteral("WebKitGeolocationEnabled"))); +DEFINE_STATIC_LOCAL(String, WebKitIndexedDataBasePath, (ASCIILiteral("WebKitIndexedDataBasePath"))); +DEFINE_STATIC_LOCAL(String, WebKitJavaScriptCanOpenWindowsAutomaticallyEnabled, (ASCIILiteral("WebKitJavaScriptCanOpenWindowsAutomaticallyEnabled"))); +DEFINE_STATIC_LOCAL(String, WebKitJavaScriptEnabled, (ASCIILiteral("WebKitJavaScriptEnabled"))); +DEFINE_STATIC_LOCAL(String, WebKitLoadsImagesAutomatically, (ASCIILiteral("WebKitLoadsImagesAutomatically"))); +DEFINE_STATIC_LOCAL(String, WebKitLocalStorageEnabled, (ASCIILiteral("WebKitLocalStorageEnabled"))); +DEFINE_STATIC_LOCAL(String, WebKitLocalStoragePath, (ASCIILiteral("WebKitLocalStoragePath"))); +DEFINE_STATIC_LOCAL(String, WebKitLocalStorageQuota, (ASCIILiteral("WebKitLocalStorageQuota"))); +DEFINE_STATIC_LOCAL(String, WebKitSessionStorageQuota, (ASCIILiteral("WebKitSessionStorageQuota"))); +DEFINE_STATIC_LOCAL(String, WebKitMaximumPagesInCache, (ASCIILiteral("WebKitMaximumPagesInCache"))); +DEFINE_STATIC_LOCAL(String, WebKitMinimumFontSize, (ASCIILiteral("WebKitMinimumFontSize"))); +DEFINE_STATIC_LOCAL(String, WebKitOfflineWebApplicationCacheEnabled, (ASCIILiteral("WebKitOfflineWebApplicationCacheEnabled"))); +DEFINE_STATIC_LOCAL(String, WebKitOfflineWebApplicationCachePath, (ASCIILiteral("WebKitOfflineWebApplicationCachePath"))); +DEFINE_STATIC_LOCAL(String, WebKitPageGroupName, (ASCIILiteral("WebKitPageGroupName"))); +DEFINE_STATIC_LOCAL(String, WebKitPluginsEnabled, (ASCIILiteral("WebKitPluginsEnabled"))); +DEFINE_STATIC_LOCAL(String, WebKitPrivateBrowsingEnabled, (ASCIILiteral("WebKitPrivateBrowsingEnabled"))); +DEFINE_STATIC_LOCAL(String, WebKitDeviceSupportsMouse, (ASCIILiteral("WebKitDeviceSupportsMouse"))); +DEFINE_STATIC_LOCAL(String, WebKitSansSeriffFontFamily, (ASCIILiteral("WebKitSansSeriffFontFamily"))); +DEFINE_STATIC_LOCAL(String, WebKitSeriffFontFamily, (ASCIILiteral("WebKitSeriffFontFamily"))); +DEFINE_STATIC_LOCAL(String, WebKitStandardFontFamily, (ASCIILiteral("WebKitStandardFontFamily"))); +DEFINE_STATIC_LOCAL(String, WebKitUserStyleSheet, (ASCIILiteral("WebKitUserStyleSheet"))); +DEFINE_STATIC_LOCAL(String, WebKitUserStyleSheetLocation, (ASCIILiteral("WebKitUserStyleSheetLocation"))); +DEFINE_STATIC_LOCAL(String, WebKitWebSocketsEnabled, (ASCIILiteral("WebKitWebSocketsEnabled"))); +DEFINE_STATIC_LOCAL(String, WebKitXSSAuditorEnabled, (ASCIILiteral("WebKitXSSAuditorEnabled"))); static HashSet<String>* s_supportedObjectMIMETypes; diff --git a/Source/WebKit/blackberry/Api/WebString.cpp b/Source/WebKit/blackberry/Api/WebString.cpp index 7fc9a1a77..640b673c9 100644 --- a/Source/WebKit/blackberry/Api/WebString.cpp +++ b/Source/WebKit/blackberry/Api/WebString.cpp @@ -67,6 +67,8 @@ WebString WebString::fromUtf8(const char* utf8) WebString& WebString::operator=(const WebString& str) { + if (&str == this) + return *this; if (str.m_impl) str.m_impl->ref(); if (m_impl) diff --git a/Source/WebKit/blackberry/ChangeLog b/Source/WebKit/blackberry/ChangeLog index a7715af0a..823f9b8b0 100644 --- a/Source/WebKit/blackberry/ChangeLog +++ b/Source/WebKit/blackberry/ChangeLog @@ -1,3 +1,1178 @@ +2012-09-09 Arvid Nilsson <anilsson@rim.com> + + [BlackBerry] Fix flicker due to introduction of the fence extension. + https://bugs.webkit.org/show_bug.cgi?id=96207 + + Reviewed by George Staikos. + + Don't immediately add fence to garbage list, so it is destroyed + after only one swap, for a set of tiles just because one tile in + the set gets a new fence, the old fence may still not be signalled + and before rendering the other tiles in the set we have to wait for it. + + * WebKitSupport/BackingStoreTile.cpp: + (BlackBerry::WebKit::Fence::~Fence): + (WebKit): + * WebKitSupport/BackingStoreTile.h: + (WebKit): + (Fence): + * WebKitSupport/SurfacePool.cpp: + (BlackBerry::WebKit::SurfacePool::initialize): + (BlackBerry::WebKit::SurfacePool::notifyBuffersComposited): + (WebKit): + (BlackBerry::WebKit::SurfacePool::destroyPlatformSync): + * WebKitSupport/SurfacePool.h: + (SurfacePool): + +2012-09-08 Max Feil <mfeil@rim.com> + + [BlackBerry] Exiting fullscreen mode can leave user stuck without Browser menus + https://bugs.webkit.org/show_bug.cgi?id=96027 + + Reviewed by Antonio Gomes. + + The changes for bug 87337 (landed as trunk svn revision 119119) + introduced a bug. The same conditions are not checked on enter + fullscreen vs. exit. Web sites such as http://videojs.com + and youtube's mobile HTML5 player make the div container + of the video element go fullscreen. This is allowed in + WebPagePrivate::enterFullScreenForElement() but disallowed in + WebPagePrivate::exitFullScreenForElement(). I am fixing this by + allowing containers of video elements to exit fullscreen. + + * Api/WebPage.cpp: + (BlackBerry::WebKit::WebPagePrivate::exitFullScreenForElement): + +2012-09-07 Ming Xie <mxie@rim.com> + + + [BlackBerry] Remove browser from the build info page + https://bugs.webkit.org/show_bug.cgi?id=96162 + + Reviewed by George Staikos. + Internal reviewed by Jeff Rogers. + + WebKit build should not have the build info for browser which is + built on top of webkit. + + * WebKitSupport/AboutData.cpp: + (BlackBerry::WebKit::buildPage): + +2012-09-07 Yongxin Dai <yodai@rim.com> + + [BlackBerry] Initialize caret rectangle with invalid location + https://bugs.webkit.org/show_bug.cgi?id=96011 + + Reviewed by Rob Buis. + + In SelectionHandler::selectionPositionChanged() method, startCaret and + endCaret are used to notify clients about new caret positions. This patch + initializes startCaret and endCaret with location(-1. -1), and keeps them + empty before they are assigned to valid values. This would help for other + classes to check validity of the caret correctly. + + Internal reviewed by Mike Fenton. + + * WebKitSupport/SelectionHandler.cpp: + (BlackBerry::WebKit::adjustCaretRects): + (BlackBerry::WebKit::SelectionHandler::selectionPositionChanged): + +2012-09-07 Lianghui Chen <liachen@rim.com> + + [BlackBerry] when one of multiple tabs uses authentication, user can get the auth dialog while the other tab has focus. + https://bugs.webkit.org/show_bug.cgi?id=95488 + PR: 186597. + + Internally reviewed by Joe Mason. + Reviewed by Yong Li. + + Use new AuthenticationChallengeClient interface to make authentication + challenge asynchronous to NetworkJob, MediaPlayerPrivateBlackBerry, and + other module that will use HTTP authentication. WebPage itself still use + synchronous authentication though. Switching to asynchronous authentication + in WebPage will require bigger platform layer change and not very necessary + at the moment for this bug. + + * Api/WebPage.cpp: + (BlackBerry::WebKit::WebPagePrivate::authenticationChallenge): + * Api/WebPage_p.h: + (WebCore): + (WebPagePrivate): + +2012-09-07 Rob Buis <rbuis@rim.com> + + [BlackBerry] Remove feature about:cache/disable and about:cache/enable + https://bugs.webkit.org/show_bug.cgi?id=95820 + + Reviewed by Yong Li. + + Fix warning that was caused by r127680. + + * WebKitSupport/AboutData.cpp: + (BlackBerry::WebKit::cachePage): + +2012-09-07 Allan Sandfeld Jensen <allan.jensen@nokia.com> + + Simplify hitTestResultAtPoint and nodesFromRect APIs + https://bugs.webkit.org/show_bug.cgi?id=95720 + + Reviewed by Antonio Gomes. + + Update calls to new API. + + * Api/WebPage.cpp: + (BlackBerry::WebKit::WebPagePrivate::contextNode): + (BlackBerry::WebKit::WebPagePrivate::nodeForZoomUnderPoint): + (BlackBerry::WebKit::WebPagePrivate::handleMouseEvent): + (BlackBerry::WebKit::WebPage::nodeAtPoint): + * WebKitSupport/FatFingers.cpp: + (BlackBerry::WebKit::FatFingers::getNodesFromRect): + (BlackBerry::WebKit::FatFingers::getRelevantInfoFromPoint): + * WebKitSupport/SelectionHandler.cpp: + (BlackBerry::WebKit::visiblePositionForPointIgnoringClipping): + +2012-09-07 Robin Cao <robin.cao@torchmobile.com.cn> + + [BlackBerry] Rendering issue after rotation + https://bugs.webkit.org/show_bug.cgi?id=96094 + PR #201930 + + Reviewed by George Staikos. + + The cause of the rendering issue is that the BackingStore tiles + are not reset after layout. This is a regression of r125680, which + overwrites a local variable that are used later in the function. + + * Api/WebPage.cpp: + (BlackBerry::WebKit::WebPagePrivate::setViewportSize): + +2012-09-06 Crystal Zhang <haizhang@rim.com> + + [BlackBerry] Implement a color picker + https://bugs.webkit.org/show_bug.cgi?id=96001 + + Reviewed by Rob Buis. + + Add files for color picker, replace old hook to AIR color picker. + + * WebCoreSupport/ColorPickerClient.cpp: Added. + (WebCore): + (WebCore::ColorPickerClient::ColorPickerClient): + (WebCore::ColorPickerClient::~ColorPickerClient): + (WebCore::ColorPickerClient::generateHTML): + (WebCore::ColorPickerClient::closePopup): + (WebCore::ColorPickerClient::contentSize): + (WebCore::ColorPickerClient::htmlSource): + (WebCore::ColorPickerClient::setValueAndClosePopup): + (WebCore::ColorPickerClient::didClosePopup): + (WebCore::ColorPickerClient::writeDocument): + * WebCoreSupport/ColorPickerClient.h: Added. + (WebKit): + (WebCore): + (ColorPickerClient): + * WebKitSupport/InputHandler.cpp: + (BlackBerry::WebKit::InputHandler::openColorPopup): + +2012-09-06 Genevieve Mak <gmak@rim.com> + + Add data-blackberry-webworks-context attribute and set the custom context when + getting context. + https://bugs.webkit.org/show_bug.cgi?id=95993 + + Reviewed by Antonio Gomes. + + PR #193726 + Reviewed Internally by Mike Fenton. + + * Api/WebPage.cpp: + (BlackBerry::WebKit::WebPagePrivate::webContext): + - Check for custom WebWorks context and add it if there. + * WebKitSupport/DOMSupport.cpp: + (BlackBerry::WebKit::DOMSupport::webWorksContext): + (DOMSupport): + * WebKitSupport/DOMSupport.h: + - Add a method that checks a given element for the data-webworks-context + attribute and returns its value if present. + +2012-09-06 Antonio Gomes <agomes@rim.com> + + [BlackBerry] Allow overscroll to composited scroll layers + https://bugs.webkit.org/show_bug.cgi?id=95998 + PR #195305 + + Reviewed by Rob Buis. + Internally reviewed by Gen Mak. + + No need to reset the overscroll limit factor at creation to 0. + It is already 0 by default, and later on the client sets the + appropriated value. + + * WebKitSupport/InRegionScrollableArea.cpp: + (BlackBerry::WebKit::InRegionScrollableArea::InRegionScrollableArea): + +2012-09-05 Sam Weinig <sam@webkit.org> + + Part 2 of removing PlatformString.h, remove PlatformString.h + https://bugs.webkit.org/show_bug.cgi?id=95931 + + Reviewed by Adam Barth. + + Remove PlatformString.h + + * Api/DumpRenderTreeClient.h: + * WebCoreSupport/ChromeClientBlackBerry.cpp: + * WebCoreSupport/InspectorClientBlackBerry.h: + * WebCoreSupport/JavaScriptDebuggerBlackBerry.cpp: + * WebKitSupport/AboutData.h: + +2012-09-05 Jason Liu <jason.liu@torchmobile.com.cn> + + [BlackBerry] Remove feature about:cache/disable and about:cache/enable + https://bugs.webkit.org/show_bug.cgi?id=95820 + + Reviewed by Rob Buis. + + Remove this feature since we need to add a button in settings. + + * WebKitSupport/AboutData.cpp: + (BlackBerry::WebKit::cachePage): + +2012-09-05 Mike Fenton <mifenton@rim.com> + + [BlackBerry] Remove deprecated dialog connections. + https://bugs.webkit.org/show_bug.cgi?id=95868 + + Reviewed by Rob Buis. + + PR 187481. + Remove deprecated logic for unsupported + Dialog types. + + * Api/WebPageClient.h: + * WebKitSupport/InputHandler.cpp: + (BlackBerry::WebKit::InputHandler::openDatePopup): + (BlackBerry::WebKit::InputHandler::openColorPopup): + +2012-09-05 George Staikos <staikos@webkit.org> + + [BlackBerry] Assignment operators missing self-check + https://bugs.webkit.org/show_bug.cgi?id=95774 + + Reviewed by Rob Buis. + + Add a test for self-assignment. + + * Api/WebAnimation.cpp: + (BlackBerry::WebKit::WebAnimation::operator=): + * Api/WebString.cpp: + (BlackBerry::WebKit::WebString::operator=): + +2012-09-05 Leo Yang <leoyang@rim.com> + + [BlackBerry] Optimize BackingStorePrivate::isCurrentVisibleJob + https://bugs.webkit.org/show_bug.cgi?id=95897 + + Reviewed by Antonio Gomes. + + Bail out the loop early if one of the not-rendered rectangle is + not current regular render job. + + No behavior change, just code optimization. + + * Api/BackingStore.cpp: + (BlackBerry::WebKit::BackingStorePrivate::isCurrentVisibleJob): + +2012-09-05 Benjamin C Meyer <bmeyer@rim.com> + + [BlackBerry] JavaScriptVariant can crash when operator= is called with itself + https://bugs.webkit.org/show_bug.cgi?id=95859 + + Reviewed by George Staikos. + + * Api/JavaScriptVariant.cpp: + (BlackBerry::WebKit::JavaScriptVariant::operator=): + When JavaScriptVariant contains a string and operator= is + called with itself the memory will be free'd in 'this' and + then a copy will be attempted from 'that' resulting in a crash. + +2012-09-05 Leo Yang <leoyang@rim.com> + + [BlackBerry] Rotation and then reload causes less sized webpage (PR 190469) + https://bugs.webkit.org/show_bug.cgi?id=95870 + + Reviewed by George Staikos. + Reviewed internally by Jacky Jiang. + + Use the new zoom to fit scale if the page was zoomed to fit initial scale + When a page is reloaded the layout size may be changed. So the contents + size on which the initial scale depends may be changed. Use the new initial + scale in this case to make sure the page will be zoomed to correct scale. + + * WebCoreSupport/FrameLoaderClientBlackBerry.cpp: + (WebCore::FrameLoaderClientBlackBerry::restoreViewState): + +2012-09-05 Robin Cao <robin.cao@torchmobile.com.cn> + + [BlackBerry] Do not release shared backingstore memory prematurely + https://bugs.webkit.org/show_bug.cgi?id=95841 + PR #202517 + + Reviewed by George Staikos. + + The BackingStore memory is shared by all web pages. We should check if + the current backingStore is active before create/release this shared memory. + + * Api/BackingStore.cpp: + (BlackBerry::WebKit::BackingStore::createBackingStoreMemory): + (BlackBerry::WebKit::BackingStore::releaseBackingStoreMemory): + +2012-09-05 Andy Chen <andchen@rim.com> + + [BlackBerry] Implement number of matches and current active match index for find-on-page + https://bugs.webkit.org/show_bug.cgi?id=95801 + + Reviewed by Antonio Gomes. + + - Calculate current match index for find-on-page + - Notify client when number of matches and current match index update. + PR 162090 162091. + Internally reviewed by Mike Fenton and Joe Mason + + * Api/WebPageClient.h: + * WebKitSupport/InPageSearchManager.cpp: + (BlackBerry::WebKit::InPageSearchManager::DeferredScopeStringMatches::DeferredScopeStringMatches): + (BlackBerry::WebKit::InPageSearchManager::DeferredScopeStringMatches::doTimeout): + (InPageSearchManager::DeferredScopeStringMatches): + (BlackBerry::WebKit::InPageSearchManager::findNextString): + (BlackBerry::WebKit::InPageSearchManager::findAndMarkText): + (BlackBerry::WebKit::InPageSearchManager::scopeStringMatches): + (BlackBerry::WebKit::InPageSearchManager::scopeStringMatchesSoon): + (BlackBerry::WebKit::InPageSearchManager::callScopeStringMatches): + * WebKitSupport/InPageSearchManager.h: + (InPageSearchManager): + +2012-09-04 Rob Buis <rbuis@rim.com> + + [BlackBerry] FatFingers::cachingStrategy uses incorrect enum value + https://bugs.webkit.org/show_bug.cgi?id=95783 + + Reviewed by Antonio Gomes. + + Use the correct enum values. + + * WebKitSupport/FatFingers.cpp: + (BlackBerry::WebKit::FatFingers::cachingStrategy): + +2012-09-04 Antonio Gomes <agomes@rim.com> + + [BlackBerry] Use child/ScrollableContent layer's position instead of parent/ScrollLayer's boundsOrigin + https://bugs.webkit.org/show_bug.cgi?id=95778 + PR #202252 + + Reviewed by Rob Buis. + Internally reviewed by Arvid Nilsson. + + Upstream has switch away from using the parent scroll layer's bounds origin + in order to translate contents of all its child layers. Instead now, it directly + sets the scroll position of the child scrollable contents layer. + + Source/WebKit/blackberry: + * Api/InRegionScroller.cpp: + (BlackBerry::WebKit::InRegionScrollerPrivate::setScrollPositionCompositingThread): + * WebKitSupport/InRegionScrollableArea.cpp: + (BlackBerry::WebKit::InRegionScrollableArea::InRegionScrollableArea): + + No new tests, since it is a catch-up with upstreaming code. + +2012-09-04 George Staikos <staikos@webkit.org> + + [BlackBerry] Fix memory leak in InputHandler + https://bugs.webkit.org/show_bug.cgi?id=95771 + + Reviewed by Rob Buis. + + Simply delete the arrays at function exit. + + * WebKitSupport/InputHandler.cpp: + (BlackBerry::WebKit::InputHandler::openSelectPopup): + +2012-09-04 George Staikos <staikos@webkit.org> + + [BlackBerry] pass isMainFrame() through to notifyDocumentOnLoad() + https://bugs.webkit.org/show_bug.cgi?id=95766 + + Reviewed by Rob Buis. + + Passing the frame status through will allow the client to make better + decisions about how to act on the onload. + + * Api/WebPageClient.h: + * WebCoreSupport/FrameLoaderClientBlackBerry.cpp: + (WebCore::FrameLoaderClientBlackBerry::dispatchDidHandleOnloadEvents): + +2012-09-04 Rob Buis <rbuis@rim.com> + + [BlackBerry] Provide virtual dtor for DumpRenderTreeClient + https://bugs.webkit.org/show_bug.cgi?id=95769 + + Reviewed by Yong Li. + + Also remove WTF prefixes. + + * Api/DumpRenderTreeClient.h: + +2012-09-04 Mary Wu <mary.wu@torchmobile.com.cn> + + [BlackBerry] Add webplatform and browser to build info + https://bugs.webkit.org/show_bug.cgi?id=95715 + + Reviewed by George Staikos. + + PR# 202102 + + * WebKitSupport/AboutData.cpp: + (BlackBerry::WebKit::buildPage): + +2012-08-31 Jacky Jiang <zhajiang@rim.com> + + [BlackBerry] ASSERT failure in RenderBlock::checkPositionedObjectsNeedLayout + https://bugs.webkit.org/show_bug.cgi?id=95611 + + Reviewed by Antonio Gomes. + + PR:200127 + Remove r118405 now as we already have a new fix webkit/43f8394b for + that issue and it is not reproducible anymore after the removal. + In this way, we can get rid of this ASSERT failure as well. + Thanks Antonio for the suggestion. + + * Api/WebPage.cpp: + (BlackBerry::WebKit::WebPagePrivate::setViewportSize): + +2012-08-31 Joshua Netterfield <jnetterfield@rim.com> + + [BlackBerry] Eliminate WebGL IT policy + https://bugs.webkit.org/show_bug.cgi?id=95604 + Internal RIM PR #198764 + + Reviewed by Rob Buis. + + This is no longer a requirement for the BlackBerry port. + + * Api/WebPage.cpp: + (BlackBerry::WebKit::WebPagePrivate::init): + (BlackBerry::WebKit::WebPage::setWebGLEnabled): + * WebKitSupport/AboutData.cpp: + (BlackBerry::WebKit::configPage): + +2012-08-30 Benjamin Poulain <bpoulain@apple.com> + + Replace JSC::UString by WTF::String + https://bugs.webkit.org/show_bug.cgi?id=95271 + + Reviewed by Geoffrey Garen. + + Replace UString by String. + + * WebCoreSupport/ClientExtension.cpp: + * WebCoreSupport/PagePopupBlackBerry.cpp: + (WebCore::PagePopupBlackBerry::installDomFunction): + +2012-08-30 Jacky Jiang <zhajiang@rim.com> + + [BlackBerry] ASSERT failure in JSC::MarkedAllocator::allocateSlowCase + https://bugs.webkit.org/show_bug.cgi?id=95492 + + Reviewed by Yong Li. + + PR: 200724 + Hold the JSLock for the current thread before we call toRef to avoid + the ASSERT failure. + + * Api/WebPage.cpp: + (BlackBerry::WebKit::WebPagePrivate::executeJavaScript): + +2012-08-30 Antonio Gomes <agomes@rim.com> + + [BlackBerry] Remove unneeded force-immediate-repaint from InRegionScroller::setLayerScrollPosition + https://bugs.webkit.org/show_bug.cgi?id=95476 + PR #200704 + + Reviewed by Yong Li. + + This code is not needed at this point for neither the fast nor slow in-region + scroll codepaths, and it is a huge performance beast as it forces all + containers to get full-repainted per scroll call (in webkit thread). + + Patch also take this opportunity to remove an early-return we + have in the {i}frame slow scrolling code path so that we can + adjust the selection handles in this case as well. + + * Api/InRegionScroller.cpp: + (BlackBerry::WebKit::InRegionScrollerPrivate::setLayerScrollPosition): + +2012-08-30 Hanna Ma <Hanma@rim.com> + + [BlackBerry] node search does not work with elements on touch start listener + https://bugs.webkit.org/show_bug.cgi?id=95252 + + Reviewed by Antonio Gomes. + + Fix the node search function of web insepctor on elements with touch start listener. + Add methods from webPage to check if the node search functionality is enabled before handling touch events. + PR194107 + + * Api/WebPage.cpp: + (BlackBerry::WebKit::WebPage::touchEvent): + +2012-08-30 Arvid Nilsson <anilsson@rim.com> + + [BlackBerry] One shot drawing sync flag never cleared when there's no layers + https://bugs.webkit.org/show_bug.cgi?id=95447 + + Reviewed by Antonio Gomes. + + PR 199866 + When we remove the layers, WebKit could tell us we need a one shot + drawing sync to repaint the BackingStore with the content that was + previously drawn by layers. We also sometimes set the one shot drawing + sync flag manually. + + We would bail from commit if there were no layers and not actually + perform the osds, so it left the osds flag set forever and the + situation prevails, because nobody will ever clear the osds flag. + + The BackingStore surrenders the responsibility of blitting to the AC + commit mechanism when a one shot drawing sync is pending, because we + want the operations render, commit and blit to happen in the correct + order with no intermediate blits. + + So, no commit means no blit, and the result of regular rendering did + not show up on screen. + + Fixed by not bailing from commit if there's no layers, instead clearing + the "needs commit" and osds flags and performing a blit. + + Reviewed internally by Andrew Lo. + + * Api/WebPage.cpp: + (BlackBerry::WebKit::WebPagePrivate::commitRootLayerIfNeeded): + +2012-08-30 Gyuyoung Kim <gyuyoung.kim@samsung.com> + + Use ASCIILiteral for DEFINE_STATIC_LOCAL string + https://bugs.webkit.org/show_bug.cgi?id=95420 + + Reviewed by Benjamin Poulain. + + As recommended by http://trac.webkit.org/wiki/EfficientStrings, + WebKit needs to use ASCIILiteral for the string of DEFINE_STATIC_LOCAL. + + * Api/WebSettings.cpp: + (WebKit): + +2012-08-29 Nima Ghanavatian <nghanavatian@rim.com> + + [BlackBerry] Do not use the shadow tree when retrieving the underlying element for FatFinger. + https://bugs.webkit.org/show_bug.cgi?id=95372 + + By using the shadow tree we were getting a mismatch between elements of the + current element under focus and the one return to us from FatFingers. + Passing ShadowContentNotAllowed to get the right handle. + + Reviewed by Antonio Gomes. + + * WebKitSupport/TouchEventHandler.cpp: + (BlackBerry::WebKit::TouchEventHandler::handleTouchPoint): + +2012-08-29 Robin Cao <robin.cao@torchmobile.com.cn> + + [BlackBerry] Move the handling of UserMedia requests to the client + https://bugs.webkit.org/show_bug.cgi?id=95317 + PR #197283 + + Reviewed by George Staikos. + + Internally reviewed by George Staikos. + + Move the logic for user media requests handling to the client, as it requires + inputs from users. Also adds a origin field to WebUserMediaRequest. + + * Api/WebPageClient.h: + (Platform): + * WebCoreSupport/UserMediaClientImpl.cpp: + (WebCore::UserMediaClientImpl::UserMediaClientImpl): + (WebCore::UserMediaClientImpl::~UserMediaClientImpl): + (WebCore::UserMediaClientImpl::requestUserMedia): + (WebCore::UserMediaClientImpl::cancelUserMediaRequest): + * WebCoreSupport/UserMediaClientImpl.h: + (UserMediaClientImpl): + +2012-08-29 Antonio Gomes <agomes@rim.com> + + [BlackBerry] Replace blackberry specific HitTestRequest::FingerUp by TouchEvent + Release + https://bugs.webkit.org/show_bug.cgi?id=95383 + + Reviewed by Rob Buis. + + * WebKitSupport/TouchEventHandler.cpp: + (BlackBerry::WebKit::TouchEventHandler::touchEventCancel): + +2012-08-29 Rob Buis <rbuis@rim.com> + + [BlackBerry] Adjust wtf include header style + https://bugs.webkit.org/show_bug.cgi?id=95368 + + Reviewed by Yong Li. + + Switch to #include <wtf/...> like the other ports. + + * Api/BlackBerryGlobal.cpp: + * Api/WebPage.cpp: + * WebCoreSupport/ChromeClientBlackBerry.cpp: + * WebCoreSupport/GeolocationControllerClientBlackBerry.h: + * WebCoreSupport/SelectPopupClient.h: + * WebKitSupport/AboutData.cpp: + * WebKitSupport/DOMSupport.cpp: + * WebKitSupport/GLES2Context.cpp: + * WebKitSupport/InPageSearchManager.h: + * WebKitSupport/InputHandler.cpp: + +2012-08-29 Jacky Jiang <zhajiang@rim.com> + + [BlackBerry] Remove unused tapGesture in WebPage.cpp + https://bugs.webkit.org/show_bug.cgi?id=95357 + + Reviewed by Rob Buis. + + Remove unused variable tapGesture in WebPage.cpp. + Internally reviewed by Gen Mak. + + * Api/WebPage.cpp: + (BlackBerry::WebKit::WebPage::touchEvent): + +2012-08-28 Antonio Gomes <agomes@rim.com> + + [BlackBerry] crash while trying to scroll any inner frame + https://bugs.webkit.org/show_bug.cgi?id=95287 + PR #198510 + + Reviewed by George Staikos. + + Set the starting point of scrolling (slow path only still) + for inner frames. It was left over as set to 0 by r126474. + + In practice, patch fixes a crash on gmail.com desktop edition. + + * WebKitSupport/InRegionScrollableArea.cpp: + (BlackBerry::WebKit::InRegionScrollableArea::InRegionScrollableArea): + +2012-08-28 Sheriff Bot <webkit.review.bot@gmail.com> + + Unreviewed, rolling out r126914. + http://trac.webkit.org/changeset/126914 + https://bugs.webkit.org/show_bug.cgi?id=95239 + + it breaks everything and fixes nothing (Requested by pizlo on + #webkit). + + * Api/BackingStore.cpp: + (BlackBerry::WebKit::BackingStorePrivate::setBackingStoreRect): + (BlackBerry::WebKit::BackingStorePrivate::visibleTilesRect): + (BlackBerry::WebKit::BackingStorePrivate::resetTiles): + (BlackBerry::WebKit::BackingStorePrivate::updateTiles): + (BlackBerry::WebKit::BackingStorePrivate::updateTilesForScrollOrNotRenderedRegion): + (BlackBerry::WebKit::BackingStorePrivate::mapFromTransformedContentsToTiles): + * WebCoreSupport/NotificationPresenterImpl.cpp: + (WebCore::NotificationPresenterImpl::cancel): + (WebCore::NotificationPresenterImpl::onPermission): + (WebCore::NotificationPresenterImpl::notificationClicked): + * WebCoreSupport/UserMediaClientImpl.cpp: + (WebCore::UserMediaClientImpl::cancelUserMediaRequest): + * WebKitSupport/AboutData.cpp: + (BlackBerry::WebKit::dumpJSCTypeCountSetToTableHTML): + * WebKitSupport/FrameLayers.cpp: + (BlackBerry::WebKit::FrameLayers::removeLayerByFrame): + (BlackBerry::WebKit::FrameLayers::commitOnWebKitThread): + (BlackBerry::WebKit::FrameLayers::calculateRootLayer): + +2012-08-28 Nima Ghanavatian <nghanavatian@rim.com> + + [BlackBerry] Spellcheck should be enabled if undefined in content. + https://bugs.webkit.org/show_bug.cgi?id=95139 + + Currently we only enable spellcheck if it is defined as such in + the web content explicitly. + Making this change to enable by default, and only turn off if it is + explicitly set, or if we expect the field to be a username, email or + url. + + Internally reviewed by Mike Fenton. + + Reviewed by Rob Buis. + + * WebKitSupport/InputHandler.cpp: + (BlackBerry::WebKit::InputHandler::requestCheckingOfString): + (BlackBerry::WebKit::InputHandler::setElementFocused): + (BlackBerry::WebKit::InputHandler::unlockSequenceMap): + (WebKit): + (BlackBerry::WebKit::InputHandler::shouldSpellCheckElement): + * WebKitSupport/InputHandler.h: + (InputHandler): + +2012-08-28 Caio Marcelo de Oliveira Filho <caio.oliveira@openbossa.org> + + Rename first/second to key/value in HashMap iterators + https://bugs.webkit.org/show_bug.cgi?id=82784 + + Reviewed by Eric Seidel. + + * Api/BackingStore.cpp: + (BlackBerry::WebKit::BackingStorePrivate::setBackingStoreRect): + (BlackBerry::WebKit::BackingStorePrivate::visibleTilesRect): + (BlackBerry::WebKit::BackingStorePrivate::resetTiles): + (BlackBerry::WebKit::BackingStorePrivate::updateTiles): + (BlackBerry::WebKit::BackingStorePrivate::updateTilesForScrollOrNotRenderedRegion): + (BlackBerry::WebKit::BackingStorePrivate::mapFromTransformedContentsToTiles): + * WebCoreSupport/NotificationPresenterImpl.cpp: + (WebCore::NotificationPresenterImpl::cancel): + (WebCore::NotificationPresenterImpl::onPermission): + (WebCore::NotificationPresenterImpl::notificationClicked): + * WebKitSupport/AboutData.cpp: + (BlackBerry::WebKit::dumpJSCTypeCountSetToTableHTML): + * WebKitSupport/FrameLayers.cpp: + (BlackBerry::WebKit::FrameLayers::removeLayerByFrame): + (BlackBerry::WebKit::FrameLayers::commitOnWebKitThread): + (BlackBerry::WebKit::FrameLayers::calculateRootLayer): + * WebCoreSupport/UserMediaClientImpl.cpp: + (WebCore::UserMediaClientImpl::cancelUserMediaRequest): + +2012-08-28 Nima Ghanavatian <nghanavatian@rim.com> + + [BlackBerry] Range boundaries should use endOfBlock instead of endOfLine. + https://bugs.webkit.org/show_bug.cgi?id=95135 + + The original implementation used nextLinePosition to iterate + through the field from the start of each line, and was bounded in + comparison to the endOfLine. This works fine as long as there aren't any + empty lines between paragraphs of text, since these will have + startOfLine == endOfLine and break out. + + Also, protect map access with a mutex in case we get a response + before updating the map. Further, we should check the Range pointer + before using it, since its not guaranteed to be valid. + + Internally reviewed by Mike Fenton. + + Reviewed by Antonio Gomes. + + * WebKitSupport/InputHandler.cpp: + (BlackBerry::WebKit::InputHandler::spellCheckBlock): + +2012-08-28 Andrew Lo <anlo@rim.com> + + [BlackBerry] One shot drawing synchronization broken + https://bugs.webkit.org/show_bug.cgi?id=95179 + + Reviewed by Antonio Gomes. + Internally reviewed by Arvid Nilsson. + + Make sure no backing store blits happen during one shot drawing + synchronization. + Since we always blit during commit now, make sure we don't blit if + we commit after a render. + We no longer need a deferred blit since we don't commit during renderContents + now. Instead, we only commit & blit once after a full render job. + + * Api/BackingStore.cpp: + (BlackBerry::WebKit::BackingStorePrivate::BackingStorePrivate): + (BlackBerry::WebKit::BackingStorePrivate::repaint): + (BlackBerry::WebKit::BackingStorePrivate::slowScroll): + (BlackBerry::WebKit::BackingStorePrivate::renderJob): + (BlackBerry::WebKit::BackingStorePrivate::blitVisibleContents): + (BlackBerry::WebKit::BackingStorePrivate::blitContents): + (BlackBerry::WebKit::BackingStorePrivate::renderContents): + (WebKit): + (BlackBerry::WebKit::BackingStorePrivate::drawAndBlendLayersForDirectRendering): + (BlackBerry::WebKit::BackingStorePrivate::didRenderContent): + * Api/BackingStore_p.h: + (BackingStorePrivate): + * Api/WebPage.cpp: + (WebKit): + (BlackBerry::WebKit::WebPagePrivate::rootLayerCommitTimerFired): + * Api/WebPage_p.h: + (WebPagePrivate): + * WebKitSupport/RenderQueue.cpp: + (BlackBerry::WebKit::RenderQueue::renderAllCurrentRegularRenderJobs): + (BlackBerry::WebKit::RenderQueue::renderRegularRenderJob): + (BlackBerry::WebKit::RenderQueue::visibleScrollJobsCompleted): + +2012-08-28 Parth Patel <parpatel@rim.com> + + [BlackBerry] Removing unnecessary include of Class BlackBerryPlatformClient + https://bugs.webkit.org/show_bug.cgi?id=95113 + + Reviewed by Kentaro Hara. + + Refactoring has lead to relocation of many or all methods from Class + BlackBerryPlatformClient to other classes. Some files include + BlackBerryPlatformClient but does not use its instance thus these + includes has to be removed. + + * Api/BackingStore.cpp: + +2012-08-28 Andy Chen <andchen@rim.com> + + [BlackBerry] UpdateViewport uses wrong size for frameView + https://bugs.webkit.org/show_bug.cgi?id=95138 + + Reviewed by Antonio Gomes. + Internally reviewed by Jakob Petsovits. + + Use actual visible size instead of screen size when updating viewport size, + otherwise, frameView size would be too big. + + * Api/WebPage.cpp: + (BlackBerry::WebKit::WebPagePrivate::updateViewportSize): + +2012-08-28 Andy Chen <andchen@rim.com> + + [BlackBerry] Pseudo class "active" is broken + https://bugs.webkit.org/show_bug.cgi?id=95142 + + Reviewed by Antonio Gomes. + + Check if an element is affected by active rule before cancelling + the touch event. + PR 198544. + + * WebKitSupport/TouchEventHandler.cpp: + (BlackBerry::WebKit::TouchEventHandler::touchEventCancel): + +2012-08-27 Sheriff Bot <webkit.review.bot@gmail.com> + + Unreviewed, rolling out r126836. + http://trac.webkit.org/changeset/126836 + https://bugs.webkit.org/show_bug.cgi?id=95163 + + Broke all Apple ports, EFL, and Qt. (Requested by tkent on + #webkit). + + * Api/BackingStore.cpp: + (BlackBerry::WebKit::BackingStorePrivate::setBackingStoreRect): + (BlackBerry::WebKit::BackingStorePrivate::visibleTilesRect): + (BlackBerry::WebKit::BackingStorePrivate::resetTiles): + (BlackBerry::WebKit::BackingStorePrivate::updateTiles): + (BlackBerry::WebKit::BackingStorePrivate::updateTilesForScrollOrNotRenderedRegion): + (BlackBerry::WebKit::BackingStorePrivate::mapFromTransformedContentsToTiles): + * WebCoreSupport/NotificationPresenterImpl.cpp: + (WebCore::NotificationPresenterImpl::cancel): + (WebCore::NotificationPresenterImpl::onPermission): + (WebCore::NotificationPresenterImpl::notificationClicked): + * WebKitSupport/AboutData.cpp: + (BlackBerry::WebKit::dumpJSCTypeCountSetToTableHTML): + * WebKitSupport/FrameLayers.cpp: + (BlackBerry::WebKit::FrameLayers::removeLayerByFrame): + (BlackBerry::WebKit::FrameLayers::commitOnWebKitThread): + (BlackBerry::WebKit::FrameLayers::calculateRootLayer): + +2012-08-27 Caio Marcelo de Oliveira Filho <caio.oliveira@openbossa.org> + + Rename first/second to key/value in HashMap iterators + https://bugs.webkit.org/show_bug.cgi?id=82784 + + Reviewed by Eric Seidel. + + * Api/BackingStore.cpp: + (BlackBerry::WebKit::BackingStorePrivate::setBackingStoreRect): + (BlackBerry::WebKit::BackingStorePrivate::visibleTilesRect): + (BlackBerry::WebKit::BackingStorePrivate::resetTiles): + (BlackBerry::WebKit::BackingStorePrivate::updateTiles): + (BlackBerry::WebKit::BackingStorePrivate::updateTilesForScrollOrNotRenderedRegion): + (BlackBerry::WebKit::BackingStorePrivate::mapFromTransformedContentsToTiles): + * WebCoreSupport/NotificationPresenterImpl.cpp: + (WebCore::NotificationPresenterImpl::cancel): + (WebCore::NotificationPresenterImpl::onPermission): + (WebCore::NotificationPresenterImpl::notificationClicked): + * WebKitSupport/AboutData.cpp: + (BlackBerry::WebKit::dumpJSCTypeCountSetToTableHTML): + * WebKitSupport/FrameLayers.cpp: + (BlackBerry::WebKit::FrameLayers::removeLayerByFrame): + (BlackBerry::WebKit::FrameLayers::commitOnWebKitThread): + (BlackBerry::WebKit::FrameLayers::calculateRootLayer): + +2012-08-27 Sheriff Bot <webkit.review.bot@gmail.com> + + Unreviewed, rolling out r126772. + http://trac.webkit.org/changeset/126772 + https://bugs.webkit.org/show_bug.cgi?id=95137 + + "This change breaks news.qq.com" (Requested by leoyang on + #webkit). + + * Api/WebPage.cpp: + (BlackBerry::WebKit::WebPagePrivate::fixedLayoutSize): + +2012-08-27 Leo Yang <leoyang@rim.com> + + [BlackBerry] Not using absoluteVisibleOverSize when rotating + https://bugs.webkit.org/show_bug.cgi?id=95092 + PR #190469 + + Reviewed by Antonio Gomes. + Reviewed internally by Arvid Nilsson. + + When we are rotating don't count absolute overflow visible size + into fixed layout size because we are in a transient state. The + absolute overflow visible size remains old size during rotation. + + * Api/WebPage.cpp: + (BlackBerry::WebKit::WebPagePrivate::fixedLayoutSize): + +2012-08-25 Antonio Gomes <agomes@rim.com> + + [BlackBerry] Remove the 'in region scrollable starting node' concept from InRegionScroller + https://bugs.webkit.org/show_bug.cgi?id=95020 + + Reviewed by Rob Buis. + + 'In-region start scrolling node' is an obsolete concept, and we can remove it + in favor of using the information from the cached layers. + + * Api/InRegionScroller.cpp: + (WebKit): + (BlackBerry::WebKit::InRegionScrollerPrivate::reset): Adjusted as it used to clear + the cached 'node'. + (BlackBerry::WebKit::InRegionScrollerPrivate::isActive): Added method to be + checked directly instead of only null-checking the previously cached 'node'. + (BlackBerry::WebKit::InRegionScrollerPrivate::clearDocumentData): New method to + clear the cached resources if its document is done. + (BlackBerry::WebKit::InRegionScrollerPrivate::pushBackInRegionScrollable): Adjusted + to not care about the cached 'node' anymore. + * Api/InRegionScroller_p.h: + (InRegionScrollerPrivate): + * Api/WebPage.cpp: + (BlackBerry::WebKit::WebPagePrivate::notifyInRegionScrollStopped): Check ::isActive instead + of ::hasNode, since the later is gone. + (BlackBerry::WebKit::WebPagePrivate::enqueueRenderingOfClippedContentOfScrollableAreaAfterInRegionScrolling): + Changed the method signature, given that we do have a cached 'node' to pass in as parameter anymore. + (BlackBerry::WebKit::WebPagePrivate::clearDocumentData): Delegate all the related work to InRegionScroller. + * Api/WebPage_p.h: + (WebPagePrivate): + * WebKitSupport/TouchEventHandler.cpp: + (BlackBerry::WebKit::TouchEventHandler::drawTapHighlight): +. +2012-08-25 Antonio Gomes <agomes@rim.com> + + BlackBerry] Shrink the in-region nested scrollable list as soon as we can + https://bugs.webkit.org/show_bug.cgi?id=95019 + + Reviewed by Rob Buis. + + We cache all possible nested scrollable in-region layers given a point. + It is up to the client to pick a view, based on the scroll position and limits + of each layer, and on the direction user swipes its finger. + From the point we pick a view on, we stick with it, and any other + possibly cached layer can be uncached, as it won't be needed. + Patch provides a simple solution to that. + + * Api/InRegionScroller.cpp: + (BlackBerry::WebKit::InRegionScrollerPrivate::InRegionScrollerPrivate): + (BlackBerry::WebKit::InRegionScrollerPrivate::reset): + (BlackBerry::WebKit::InRegionScrollerPrivate::setScrollPositionWebKitThread): + (BlackBerry::WebKit::InRegionScrollerPrivate::calculateActiveAndShrinkCachedScrollableAreas): + (WebKit): + (BlackBerry::WebKit::InRegionScrollerPrivate::calculateInRegionScrollableAreasForPoint): + * Api/InRegionScroller_p.h: + (InRegionScrollerPrivate): + +2012-08-25 Antonio Gomes <agomes@rim.com> + + For convenience, make RenderLayer::enclosingElement a public method. + https://bugs.webkit.org/show_bug.cgi?id=95018 + + Reviewed by George Staikos. + + Make use of the new public RenderLayer::enclosingElement method and + remove duplicated code. + + * WebKitSupport/InRegionScrollableArea.cpp: + (BlackBerry::WebKit::InRegionScrollableArea::InRegionScrollableArea): + +2012-08-27 Mikhail Pozdnyakov <mikhail.pozdnyakov@intel.com> + + Rename RegisterProtocolHandler API to NavigatorContentUtils + https://bugs.webkit.org/show_bug.cgi?id=94920 + + Reviewed by Adam Barth. + + Renaming whatever RegisterProtocolHandler-prefixed to NavigatorContentUtils-prefixed. + + * WebCoreSupport/AboutDataEnableFeatures.in: + * WebCoreSupport/ChromeClientBlackBerry.cpp: + (WebCore): + (WebCore::ChromeClientBlackBerry::registerProtocolHandler): + * WebCoreSupport/ChromeClientBlackBerry.h: + (ChromeClientBlackBerry): + +2012-08-26 Arvid Nilsson <anilsson@rim.com> + + [BlackBerry] ASSERT failed in WebPagePrivate::commitRootLayerIfNeeded() + https://bugs.webkit.org/show_bug.cgi?id=94921 + + PR 104676 + As visibility changed due to WebPage::setVisible(true), + resumeRootLayerCommit() would call commitRootLayerIfNeeded(), without + layouting or rendering. If a one shot drawing sync was pending at this + time, it would cause the condition + ASSERT(!needsOneShotDrawingSynchronization()) to fail. + + The comment immediately before the assert states that "In case of one + shot drawing synchronization, you should first layoutIfNeeded, render, + then commit and draw the layers". However, resumeRootLayerCommit() did + no such thing. + + Fixed by removing the call to commitRootLayerIfNeeded() from + resumeRootLayerCommit(), because the latter is only called in a code + path where we're going to layout, render and then commit anyway. These + operations will be performed from resumeBackingStore() which is called + at the end of setVisible(). + + Reviewed by George Staikos. + + * Api/WebPage.cpp: + (BlackBerry::WebKit::WebPagePrivate::resumeRootLayerCommit): + +2012-08-24 Adam Treat <atreat@rim.com> + + [BlackBerry] Web pages are zoomed out to much on initial load + https://bugs.webkit.org/show_bug.cgi?id=94830 + + The previous patch caused a slight regression to the calculation we do + for the default splitting factor in the render queue. The default value + we use to represent the max area should be the tile size. This was true + with the old calculation of default max layout width since it was the + screen size. The fix is to be explicit and use the tile size directly. + + Reviewed by George Staikos. + + * WebKitSupport/RenderQueue.cpp: + (BlackBerry::WebKit::RenderQueue::splittingFactor): + +2012-08-24 Parth Patel <parpatel@rim.com> + + [BlackBerry] Changes resulting from moving network related methods + from platform client to platform settings. + https://bugs.webkit.org/show_bug.cgi?id=94963 + + Reviewed by Yong Li. + + Changes in response to Network methods moved from + class BlackBerryPlatformClient to class BlackBerryPlatformSettings + in platform repository. + + * WebKitSupport/AboutData.cpp: + (BlackBerry::WebKit::cachePage): + +2012-08-24 Liam Quinn <lquinn@rim.com> + + [BlackBerry] Debug assertion fires in BackingStorePrivate::renderJob() + https://bugs.webkit.org/show_bug.cgi?id=94960 + + Reviewed by Adam Treat. + + Change the assertion into an early return as recommended by Adam Treat. + + * Api/BackingStore.cpp: + (BlackBerry::WebKit::BackingStorePrivate::renderJob): + +2012-08-24 Andrew Lo <anlo@rim.com> + + [BlackBerry] Animation & UI lag when rendering + https://bugs.webkit.org/show_bug.cgi?id=94943 + + Reviewed by Rob Buis. + + Schedule a backing store blit & composite when commiting root layer. + This results in compositing not having to wait until after a long render + operation, increasing responsiveness & fixing animations which skip to + the last frame due to lag. + + This can cause a blit during a "one shot drawing synchronization", which is + a render & commit on the AC layers, which may result in flashing. + However, this can happen in other situations as well, and we feel that + the responsiveness, reduced lag, and smoothness of animations is + more important. + + Internal PR194209 + Internally reviewed by: George Staikos. + + * Api/WebPage.cpp: + (BlackBerry::WebKit::WebPagePrivate::commitRootLayer): + +2012-08-24 Parth Patel <parpatel@rim.com> + + [BlackBerry] Changes resulting from moving application directory methods from platform client to platform settings. + https://bugs.webkit.org/show_bug.cgi?id=94249 + + Reviewed by Rob Buis. + + PR# 170160 + Changes in response to Application Directory methods moved from + Class BlackBerryPlatformClient to BlackBerryPlatformSettings in + platform respository since these methods are more appropriate in + class BlackBerryPlatformSettings. + + * WebCoreSupport/IconDatabaseClientBlackBerry.cpp: + (WebCore::IconDatabaseClientBlackBerry::initIconDatabase): + +2012-08-24 Antonio Gomes <agomes@rim.com> + + [BlackBerry] Touch cancel can cause huge and needless invalidations + https://bugs.webkit.org/show_bug.cgi?id=94938 + PR #198051 + + Reviewed by George Staikos. + Internally reviewed by Gen Mak. + + In order to remove the possible hover effect on touch_cancel, we always + invalidate the node under the fat finger, being the fat finger valid or not. + + Point is: having a valid fat finger node does not mean the original touch + position was actually adjust for clicking or that the fat finger is actually + valid. We set the fat finger node to be the result of the point-based hit-test + regardless if it is a click target or not (in order to make our mouse-move + machinery to work). + + We should can less aggressively invalidate the fat finger node, since it can + be rather an expensive call (longer than 1s in the worst scenario). + + * WebKitSupport/TouchEventHandler.cpp: + (BlackBerry::WebKit::TouchEventHandler::touchEventCancel): + +2012-08-24 Arvid Nilsson <anilsson@rim.com> + + [BlackBerry] Add WebPage API to reset block zoom + https://bugs.webkit.org/show_bug.cgi?id=94863 + + PR 187478 + This is an alternative to WebPage::blockZoomAnimationFinished() when + it's desirable to avoid rerendering of the whole web page at the end + of block zoom. This is the case when the planned "incremental zoom + factor" is used instead of zoomAboutPoint and it's relatives. + + Ideally, the block zoom algorithm would be clever enough not to need + a reset or any form of callback when the animation finishes, but that + requires the implementation of said incremental zoom factor, which is + not done yet. + + Reviewed by Antonio Gomes. + + * Api/WebPage.cpp: + (BlackBerry::WebKit::WebPage::resetBlockZoom): + (WebKit): + * Api/WebPage.h: + 2012-08-23 Antonio Gomes <agomes@rim.com> [BlackBerry] Obsolete the in-region scroll codepath prior to BB10's diff --git a/Source/WebKit/blackberry/WebCoreSupport/AboutDataEnableFeatures.in b/Source/WebKit/blackberry/WebCoreSupport/AboutDataEnableFeatures.in index 15e40e66b..42fc389f8 100644 --- a/Source/WebKit/blackberry/WebCoreSupport/AboutDataEnableFeatures.in +++ b/Source/WebKit/blackberry/WebCoreSupport/AboutDataEnableFeatures.in @@ -122,6 +122,7 @@ MHTML MICRODATA MUTATION_OBSERVERS MYSTERIOUS_FEATURE +NAVIGATOR_CONTENT_UTILS NETSCAPE_PLUGIN_METADATA_CACHE NETWORK_INFO NEW_XML @@ -150,7 +151,6 @@ PROGRESS_TAG PURGEABLE_MEMORY QUOTA REGEXP_TRACING -REGISTER_PROTOCOL_HANDLER REPAINT_THROTTLING REQUEST_ANIMATION_FRAME RUBBER_BANDING diff --git a/Source/WebKit/blackberry/WebCoreSupport/ChromeClientBlackBerry.cpp b/Source/WebKit/blackberry/WebCoreSupport/ChromeClientBlackBerry.cpp index 9a6325fcd..8fbf9a56a 100644 --- a/Source/WebKit/blackberry/WebCoreSupport/ChromeClientBlackBerry.cpp +++ b/Source/WebKit/blackberry/WebCoreSupport/ChromeClientBlackBerry.cpp @@ -23,7 +23,6 @@ #include "BackingStore.h" #include "BackingStoreClient.h" #include "BackingStore_p.h" -#include "CString.h" #include "ColorChooser.h" #include "DatabaseTracker.h" #include "Document.h" @@ -50,7 +49,6 @@ #include "PageGroupLoadDeferrer.h" #include "PagePopupBlackBerry.h" #include "PagePopupClient.h" -#include "PlatformString.h" #include "PopupMenuBlackBerry.h" #include "RenderView.h" #include "SVGZoomAndPan.h" @@ -70,6 +68,9 @@ #include <BlackBerryPlatformSettings.h> #include <BlackBerryPlatformWindow.h> +#include <wtf/text/CString.h> +#include <wtf/text/WTFString.h> + #define DEBUG_OVERFLOW_DETECTION 0 using namespace BlackBerry::WebKit; @@ -825,6 +826,12 @@ PassOwnPtr<ColorChooser> ChromeClientBlackBerry::createColorChooser(ColorChooser return nullptr; } +#if ENABLE(NAVIGATOR_CONTENT_UTILS) +void ChromeClientBlackBerry::registerProtocolHandler(const String& scheme, const String& baseURL, const String& url, const String& title) +{ + m_webPagePrivate->m_client->registerProtocolHandler(scheme, baseURL, url, title); +} + #if ENABLE(CUSTOM_SCHEME_HANDLER) ChromeClient::CustomHandlersState ChromeClientBlackBerry::isProtocolHandlerRegistered(const String& scheme, const String& baseURL, const String& url) { @@ -836,12 +843,6 @@ void ChromeClientBlackBerry::unregisterProtocolHandler(const String& scheme, con m_webPagePrivate->m_client->unregisterProtocolHandler(scheme, baseURL, url); } #endif - -#if ENABLE(REGISTER_PROTOCOL_HANDLER) -void ChromeClientBlackBerry::registerProtocolHandler(const String& scheme, const String& baseURL, const String& url, const String& title) -{ - m_webPagePrivate->m_client->registerProtocolHandler(scheme, baseURL, url, title); -} #endif } // namespace WebCore diff --git a/Source/WebKit/blackberry/WebCoreSupport/ChromeClientBlackBerry.h b/Source/WebKit/blackberry/WebCoreSupport/ChromeClientBlackBerry.h index d4d02f8bd..5602ff1da 100644 --- a/Source/WebKit/blackberry/WebCoreSupport/ChromeClientBlackBerry.h +++ b/Source/WebKit/blackberry/WebCoreSupport/ChromeClientBlackBerry.h @@ -154,14 +154,14 @@ public: virtual bool allowsAcceleratedCompositing() const; #endif -#if ENABLE(REGISTER_PROTOCOL_HANDLER) +#if ENABLE(NAVIGATOR_CONTENT_UTILS) virtual void registerProtocolHandler(const String& /*scheme*/, const String& /*baseURL*/, const String& /*url*/, const String& /*title*/); -#endif #if ENABLE(CUSTOM_SCHEME_HANDLER) virtual CustomHandlersState isProtocolHandlerRegistered(const String& /*scheme*/, const String& /*baseURL*/, const String& /*url*/); virtual void unregisterProtocolHandler(const String& /*scheme*/, const String& /*baseURL*/, const String& /*url*/); #endif +#endif BlackBerry::WebKit::WebPagePrivate* webPagePrivate() const { return m_webPagePrivate; } diff --git a/Source/WebKit/blackberry/WebCoreSupport/ClientExtension.cpp b/Source/WebKit/blackberry/WebCoreSupport/ClientExtension.cpp index 392097189..54c456a71 100644 --- a/Source/WebKit/blackberry/WebCoreSupport/ClientExtension.cpp +++ b/Source/WebKit/blackberry/WebCoreSupport/ClientExtension.cpp @@ -103,7 +103,7 @@ void attachExtensionObjectToFrame(Frame* frame, WebPageClient* client) JSObjectRef clientClassObject = JSObjectMake(scriptCtx, clientClass, 0); JSObjectSetPrivate(clientClassObject, reinterpret_cast<void*>(client)); - JSC::UString name("qnx"); + String name("qnx"); JSC::PutPropertySlot slot; window->put(window, exec, JSC::Identifier(exec, name), toJS(clientClassObject), slot); diff --git a/Source/WebKit/blackberry/WebCoreSupport/ColorPickerClient.cpp b/Source/WebKit/blackberry/WebCoreSupport/ColorPickerClient.cpp new file mode 100644 index 000000000..7ffc8fef6 --- /dev/null +++ b/Source/WebKit/blackberry/WebCoreSupport/ColorPickerClient.cpp @@ -0,0 +1,107 @@ +/* + * Copyright (C) 2012 Research In Motion Limited. All rights reserved. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#include "config.h" +#include "ColorPickerClient.h" + +#include "Chrome.h" +#include "ChromeClient.h" +#include "Document.h" +#include "DocumentWriter.h" +#include "HTMLInputElement.h" +#include "Page.h" +#include "PagePopup.h" +#include "PopupPicker.h" +#include "RenderObject.h" +#include "WebPage_p.h" +#include "WebString.h" + +#include <wtf/text/StringBuilder.h> + +namespace WebCore { + +ColorPickerClient::ColorPickerClient(const BlackBerry::WebKit::WebString& value, BlackBerry::WebKit::WebPagePrivate* webPage, HTMLInputElement* element) + : m_webPage(webPage) + , m_element(element) +{ + generateHTML(value); +} + +void ColorPickerClient::generateHTML(const BlackBerry::WebKit::WebString& value) +{ + StringBuilder source; + source.append("<style>\n"); + // Include CSS file. + source.append(popupControlBlackBerryCss, + sizeof(popupControlBlackBerryCss)); + source.append("</style>\n<style>"); + source.append(colorControlBlackBerryCss, + sizeof(colorControlBlackBerryCss)); + source.append("</style></head><body>\n"); + source.append("<script>\n"); + source.append("window.addEventListener('load', function () {"); + source.append("window.popupcontrol.show("); + if (!value.isEmpty()) + source.append("\"" + String(value.impl()) + "\"); \n }); \n"); + else + source.append("); \n }); \n"); + source.append(colorControlBlackBerryJs, sizeof(colorControlBlackBerryJs)); + source.append("</script>\n"); + source.append("</body> </html>\n"); + m_source = source.toString(); +} + +void ColorPickerClient::closePopup() +{ + ASSERT(m_webPage); + m_webPage->m_page->chrome()->client()->closePagePopup(0); +} + +IntSize ColorPickerClient::contentSize() +{ + // FIXME: will generate content size dynamically + return IntSize(320, 256); +} + +String ColorPickerClient::htmlSource() const +{ + return m_source; +} + +void ColorPickerClient::setValueAndClosePopup(int, const String& value) +{ + ASSERT(m_element); + + static const char* cancelValue = "-1"; + if (value != cancelValue) + m_element->setValue(value); + closePopup(); +} + +void ColorPickerClient::didClosePopup() +{ + m_webPage = 0; + m_element = 0; +} + +void ColorPickerClient::writeDocument(DocumentWriter& writer) +{ + CString sourceString = m_source.utf8(); + writer.addData(sourceString.data(), sourceString.length()); +} +} diff --git a/Source/WebKit/blackberry/WebCoreSupport/ColorPickerClient.h b/Source/WebKit/blackberry/WebCoreSupport/ColorPickerClient.h new file mode 100644 index 000000000..8a75ea454 --- /dev/null +++ b/Source/WebKit/blackberry/WebCoreSupport/ColorPickerClient.h @@ -0,0 +1,55 @@ +/* + * Copyright (C) 2012 Research In Motion Limited. All rights reserved. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef ColorPickerClient_h +#define ColorPickerClient_h + +#include "PagePopupClient.h" +#include <BlackBerryPlatformInputEvents.h> + +namespace BlackBerry { +namespace WebKit { +class WebPagePrivate; +class WebString; +} +} + +namespace WebCore { +class DocumentWriter; +class HTMLInputElement; + +class ColorPickerClient : public PagePopupClient { +public: + ColorPickerClient(const BlackBerry::WebKit::WebString& value, BlackBerry::WebKit::WebPagePrivate*, HTMLInputElement*); + + void generateHTML(const BlackBerry::WebKit::WebString& value); + void writeDocument(DocumentWriter&); + IntSize contentSize(); + String htmlSource() const; + void setValueAndClosePopup(int, const String&); + void didClosePopup(); + +private: + void closePopup(); + + String m_source; + BlackBerry::WebKit::WebPagePrivate* m_webPage; + HTMLInputElement* m_element; +}; +} // namespace WebCore +#endif diff --git a/Source/WebKit/blackberry/WebCoreSupport/FrameLoaderClientBlackBerry.cpp b/Source/WebKit/blackberry/WebCoreSupport/FrameLoaderClientBlackBerry.cpp index bbaf2cecb..58cb66821 100644 --- a/Source/WebKit/blackberry/WebCoreSupport/FrameLoaderClientBlackBerry.cpp +++ b/Source/WebKit/blackberry/WebCoreSupport/FrameLoaderClientBlackBerry.cpp @@ -572,7 +572,7 @@ void FrameLoaderClientBlackBerry::dispatchDidCommitLoad() void FrameLoaderClientBlackBerry::dispatchDidHandleOnloadEvents() { - m_webPagePrivate->m_client->notifyDocumentOnLoad(); + m_webPagePrivate->m_client->notifyDocumentOnLoad(isMainFrame()); if (m_webPagePrivate->m_dumpRenderTree) m_webPagePrivate->m_dumpRenderTree->didHandleOnloadEventsForFrame(m_frame); } @@ -1076,8 +1076,16 @@ void FrameLoaderClientBlackBerry::restoreViewState() m_webPagePrivate->m_minimumScale = viewState.minimumScale; m_webPagePrivate->m_maximumScale = viewState.maximumScale; m_webPagePrivate->m_userScalable = viewState.isUserScalable; + // Also, try to keep the users zoom if any. double scale = viewState.scale; + + // If it was zoomToFitScale use the new zoomToFitScale because + // the new one may be different to the old one due to contents + // size change (e.g. after reloaded). + if (viewState.isZoomToFitScale) + scale = m_webPagePrivate->zoomToFitScale(); + bool shouldReflowBlock = viewState.shouldReflowBlock; if (m_webPagePrivate->m_userPerformedManualZoom) { scale = m_webPagePrivate->currentScale(); diff --git a/Source/WebKit/blackberry/WebCoreSupport/GeolocationControllerClientBlackBerry.h b/Source/WebKit/blackberry/WebCoreSupport/GeolocationControllerClientBlackBerry.h index c32449aee..ab56d62d3 100644 --- a/Source/WebKit/blackberry/WebCoreSupport/GeolocationControllerClientBlackBerry.h +++ b/Source/WebKit/blackberry/WebCoreSupport/GeolocationControllerClientBlackBerry.h @@ -22,7 +22,7 @@ #include <BlackBerryPlatformGeoTracker.h> #include <BlackBerryPlatformGeoTrackerListener.h> #include <GeolocationClient.h> -#include <RefPtr.h> +#include <wtf/RefPtr.h> namespace BlackBerry { namespace WebKit { diff --git a/Source/WebKit/blackberry/WebCoreSupport/IconDatabaseClientBlackBerry.cpp b/Source/WebKit/blackberry/WebCoreSupport/IconDatabaseClientBlackBerry.cpp index 5f6442fdf..4728146fd 100644 --- a/Source/WebKit/blackberry/WebCoreSupport/IconDatabaseClientBlackBerry.cpp +++ b/Source/WebKit/blackberry/WebCoreSupport/IconDatabaseClientBlackBerry.cpp @@ -19,7 +19,7 @@ #include "config.h" #include "IconDatabaseClientBlackBerry.h" -#include "BlackBerryPlatformClient.h" +#include "BlackBerryPlatformSettings.h" #include "IconDatabase.h" #include "WebSettings.h" #include "WebString.h" @@ -51,7 +51,7 @@ bool IconDatabaseClientBlackBerry::initIconDatabase(const BlackBerry::WebKit::We iconDatabase().setClient(this); - m_initState = iconDatabase().open(BlackBerry::Platform::Client::get()->getApplicationDataDirectory().c_str(), + m_initState = iconDatabase().open(BlackBerry::Platform::Settings::instance()->applicationDataDirectory().c_str(), IconDatabase::defaultDatabaseFilename()) ? InitializeSucceeded : InitializeFailed; return m_initState == InitializeSucceeded; diff --git a/Source/WebKit/blackberry/WebCoreSupport/InspectorClientBlackBerry.h b/Source/WebKit/blackberry/WebCoreSupport/InspectorClientBlackBerry.h index 2af37526a..274bc8cce 100644 --- a/Source/WebKit/blackberry/WebCoreSupport/InspectorClientBlackBerry.h +++ b/Source/WebKit/blackberry/WebCoreSupport/InspectorClientBlackBerry.h @@ -23,8 +23,8 @@ #include "InspectorClient.h" #include "InspectorFrontendChannel.h" #include "InspectorOverlay.h" -#include "PlatformString.h" #include <wtf/HashMap.h> +#include <wtf/text/WTFString.h> namespace BlackBerry { namespace WebKit { diff --git a/Source/WebKit/blackberry/WebCoreSupport/JavaScriptDebuggerBlackBerry.cpp b/Source/WebKit/blackberry/WebCoreSupport/JavaScriptDebuggerBlackBerry.cpp index ffe7e9383..ea4c4266f 100644 --- a/Source/WebKit/blackberry/WebCoreSupport/JavaScriptDebuggerBlackBerry.cpp +++ b/Source/WebKit/blackberry/WebCoreSupport/JavaScriptDebuggerBlackBerry.cpp @@ -24,10 +24,10 @@ #include "JavaScriptCallFrame.h" #include "PageScriptDebugServer.h" -#include "PlatformString.h" #include "ScriptBreakpoint.h" #include "SourceCode.h" #include "WebPage_p.h" +#include <wtf/text/WTFString.h> namespace WebCore { diff --git a/Source/WebKit/blackberry/WebCoreSupport/PagePopupBlackBerry.cpp b/Source/WebKit/blackberry/WebCoreSupport/PagePopupBlackBerry.cpp index 402b52333..e2ed3490b 100644 --- a/Source/WebKit/blackberry/WebCoreSupport/PagePopupBlackBerry.cpp +++ b/Source/WebKit/blackberry/WebCoreSupport/PagePopupBlackBerry.cpp @@ -166,7 +166,7 @@ void PagePopupBlackBerry::installDomFunction(Frame* frame) JSObjectRef clientClassObject = JSObjectMake(context, clientClass, 0); JSObjectSetPrivate(clientClassObject, reinterpret_cast<void*>(m_client.get())); - JSC::UString name("popUp"); + String name("popUp"); JSC::PutPropertySlot slot; window->put(window, exec, JSC::Identifier(exec, name), diff --git a/Source/WebKit/blackberry/WebCoreSupport/SelectPopupClient.h b/Source/WebKit/blackberry/WebCoreSupport/SelectPopupClient.h index 17cc776dc..24141a7e7 100644 --- a/Source/WebKit/blackberry/WebCoreSupport/SelectPopupClient.h +++ b/Source/WebKit/blackberry/WebCoreSupport/SelectPopupClient.h @@ -23,8 +23,8 @@ #include "PagePopupClient.h" #include "ScopePointer.h" #include "Timer.h" -#include "WTFString.h" #include "WebString.h" +#include <wtf/text/WTFString.h> namespace BlackBerry { namespace WebKit { diff --git a/Source/WebKit/blackberry/WebCoreSupport/UserMediaClientImpl.cpp b/Source/WebKit/blackberry/WebCoreSupport/UserMediaClientImpl.cpp index a4e45c2e5..6b09f2a64 100644 --- a/Source/WebKit/blackberry/WebCoreSupport/UserMediaClientImpl.cpp +++ b/Source/WebKit/blackberry/WebCoreSupport/UserMediaClientImpl.cpp @@ -21,14 +21,18 @@ #if ENABLE(MEDIA_STREAM) #include "MediaStreamDescriptor.h" +#include "ScriptExecutionContext.h" +#include "SecurityOrigin.h" #include "WebPage.h" +#include "WebPageClient.h" #include <BlackBerryPlatformWebMediaStreamDescriptor.h> -#include <BlackBerryPlatformWebUserMedia.h> +#include <BlackBerryPlatformWebUserMediaRequest.h> #include <wtf/HashMap.h> #include <wtf/OwnPtr.h> #include <wtf/PassOwnPtr.h> #include <wtf/RefPtr.h> +#include <wtf/text/CString.h> using namespace BlackBerry::Platform; @@ -95,14 +99,13 @@ private: RefPtr<UserMediaRequest> m_request; }; -UserMediaClientImpl::UserMediaClientImpl(BlackBerry::WebKit::WebPage*) - : m_webUserMedia(0) +UserMediaClientImpl::UserMediaClientImpl(BlackBerry::WebKit::WebPage* page) + : m_page(page) { } UserMediaClientImpl::~UserMediaClientImpl() { - BlackBerry::Platform::deleteGuardedObject(m_webUserMedia); } void UserMediaClientImpl::pageDestroyed() @@ -114,7 +117,8 @@ void UserMediaClientImpl::requestUserMedia(PassRefPtr<UserMediaRequest> prpReque UserMediaRequest* request = prpRequest.get(); OwnPtr<WebUserMediaRequestClientImpl> requestClient = adoptPtr(new WebUserMediaRequestClientImpl(prpRequest)); - webUserMedia()->requestUserMedia(WebUserMediaRequest(request->audio(), request->video(), requestClient.get())); + SecurityOrigin* origin = request->scriptExecutionContext()->securityOrigin(); + m_page->client()->requestUserMedia(WebUserMediaRequest(request->audio(), request->video(), origin->toString().utf8().data(), requestClient.get())); userMediaRequestsMap().add(request, requestClient.release()); } @@ -124,16 +128,10 @@ void UserMediaClientImpl::cancelUserMediaRequest(UserMediaRequest* request) if (it == userMediaRequestsMap().end()) return; - webUserMedia()->cancelUserMediaRequest(WebUserMediaRequest(request->audio(), request->video(), it->second.get())); + SecurityOrigin* origin = request->scriptExecutionContext()->securityOrigin(); + m_page->client()->cancelUserMediaRequest(WebUserMediaRequest(request->audio(), request->video(), origin->toString().utf8().data(), it->second.get())); userMediaRequestsMap().remove(it); } -BlackBerry::Platform::WebUserMedia* UserMediaClientImpl::webUserMedia() -{ - if (!m_webUserMedia) - m_webUserMedia = new WebUserMedia; - return m_webUserMedia; -} - } #endif diff --git a/Source/WebKit/blackberry/WebCoreSupport/UserMediaClientImpl.h b/Source/WebKit/blackberry/WebCoreSupport/UserMediaClientImpl.h index a31233b86..f76cb3d56 100644 --- a/Source/WebKit/blackberry/WebCoreSupport/UserMediaClientImpl.h +++ b/Source/WebKit/blackberry/WebCoreSupport/UserMediaClientImpl.h @@ -30,10 +30,6 @@ namespace BlackBerry { namespace WebKit { class WebPage; } - -namespace Platform { -class WebUserMedia; -} } namespace WebCore { @@ -51,9 +47,8 @@ public: private: UserMediaClientImpl(); - BlackBerry::Platform::WebUserMedia* webUserMedia(); - BlackBerry::Platform::WebUserMedia* m_webUserMedia; + BlackBerry::WebKit::WebPage* m_page; }; } diff --git a/Source/WebKit/blackberry/WebKitSupport/AboutData.cpp b/Source/WebKit/blackberry/WebKitSupport/AboutData.cpp index a6772ccb5..24260b039 100644 --- a/Source/WebKit/blackberry/WebKitSupport/AboutData.cpp +++ b/Source/WebKit/blackberry/WebKitSupport/AboutData.cpp @@ -20,7 +20,7 @@ #include "AboutData.h" #include "AboutTemplate.html.cpp" -#include "CString.h" +#include "CacheHelper.h" #include "CookieManager.h" #include "JSDOMWindow.h" #include "MemoryCache.h" @@ -28,7 +28,6 @@ #include "SurfacePool.h" #include "WebKitVersion.h" -#include <BlackBerryPlatformClient.h> #include <BlackBerryPlatformLog.h> #include <BlackBerryPlatformMemory.h> #include <BlackBerryPlatformSettings.h> @@ -39,6 +38,7 @@ #include <runtime/JSGlobalData.h> #include <sys/stat.h> #include <sys/utsname.h> +#include <wtf/text/CString.h> using namespace WebCore; @@ -142,7 +142,6 @@ static String configPage() page += numberToHTMLTr("allowCenterScrollAdjustmentForInputFields", settings->allowCenterScrollAdjustmentForInputFields()); page += numberToHTMLTr("unrestrictedResizeEvents", settings->unrestrictedResizeEvents()); page += numberToHTMLTr("isBridgeBrowser", settings->isBridgeBrowser()); - page += numberToHTMLTr("isWebGLSupported", settings->isWebGLSupported()); page += numberToHTMLTr("showImageLocationOptionsInGCM", settings->showImageLocationOptionsInGCM()); page += numberToHTMLTr("forceGLES2WindowUsage", settings->forceGLES2WindowUsage()); page += numberToHTMLTr("maxClickableSpeed", settings->maxClickableSpeed()); @@ -458,27 +457,14 @@ static String cachePage(String cacheCommand) result.append(String("<html><head><title>BlackBerry Browser Disk Cache</title></head><body>")); - BlackBerry::Platform::Client* client = BlackBerry::Platform::Client::get(); - ASSERT(client); - if (cacheCommand.isEmpty()) - result.append(String(client->generateHtmlFragmentForCacheKeys().data())); + result.append(String(BlackBerry::Platform::generateHtmlFragmentForCacheKeys().data())); else if (cacheCommand.startsWith("?query=", false)) { std::string key(cacheCommand.substring(7).utf8().data()); // 7 is length of "query=". result.append(String(key.data())); result.append(String("<hr>")); - result.append(String(client->generateHtmlFragmentForCacheHeaders(key).data())); - } -#if !defined(PUBLIC_BUILD) || !PUBLIC_BUILD - else if (equalIgnoringCase(cacheCommand, "/disable")) { - client->setDiskCacheEnabled(false); - result.append("Http disk cache is disabled."); - } else if (equalIgnoringCase(cacheCommand, "/enable")) { - client->setDiskCacheEnabled(true); - result.append("Http disk cache is enabled."); - } -#endif - else { + result.append(String(BlackBerry::Platform::generateHtmlFragmentForCacheHeaders(key).data())); + } else { // Unknown cache command. return String(); } @@ -506,6 +492,7 @@ static String buildPage() result.append(String(BlackBerry::Platform::BUILDINFO_WEBKIT)); result.append(String(BlackBerry::Platform::BUILDINFO_PLATFORM)); result.append(String(BlackBerry::Platform::BUILDINFO_LIBWEBVIEW)); + result.append(String(BlackBerry::Platform::BUILDINFO_WEBPLATFORM)); result.append(String("</body></html>")); return result; diff --git a/Source/WebKit/blackberry/WebKitSupport/AboutData.h b/Source/WebKit/blackberry/WebKitSupport/AboutData.h index 0e11a60c8..da040c670 100644 --- a/Source/WebKit/blackberry/WebKitSupport/AboutData.h +++ b/Source/WebKit/blackberry/WebKitSupport/AboutData.h @@ -19,7 +19,7 @@ #ifndef AboutData_h #define AboutData_h -#include "PlatformString.h" +#include <wtf/text/WTFString.h> namespace BlackBerry { namespace WebKit { diff --git a/Source/WebKit/blackberry/WebKitSupport/BackingStoreTile.cpp b/Source/WebKit/blackberry/WebKitSupport/BackingStoreTile.cpp index 2c8242cbb..262fbeff2 100644 --- a/Source/WebKit/blackberry/WebKitSupport/BackingStoreTile.cpp +++ b/Source/WebKit/blackberry/WebKitSupport/BackingStoreTile.cpp @@ -27,6 +27,12 @@ namespace BlackBerry { namespace WebKit { +Fence::~Fence() +{ + if (m_platformSync) + SurfacePool::globalSurfacePool()->destroyPlatformSync(m_platformSync); +} + TileBuffer::TileBuffer(const Platform::IntSize& size) : m_size(size) , m_fence(Fence::create()) diff --git a/Source/WebKit/blackberry/WebKitSupport/BackingStoreTile.h b/Source/WebKit/blackberry/WebKitSupport/BackingStoreTile.h index 69bf40aa2..036808f32 100644 --- a/Source/WebKit/blackberry/WebKitSupport/BackingStoreTile.h +++ b/Source/WebKit/blackberry/WebKitSupport/BackingStoreTile.h @@ -32,6 +32,8 @@ struct Buffer; } } +namespace WebKit { + // Represents a fence that has been inserted into the command stream. You can wait on the corresponding platform sync // object to make sure that previous commands have been completed. // There is no reason to wait twice on the same platform sync object, so the only mechanism provided to access the sync @@ -54,6 +56,8 @@ public: return tmp; } + ~Fence(); + private: Fence(void* platformSync) : m_platformSync(platformSync) @@ -63,7 +67,6 @@ private: void* m_platformSync; }; -namespace WebKit { class TileBuffer { public: TileBuffer(const Platform::IntSize&); diff --git a/Source/WebKit/blackberry/WebKitSupport/DOMSupport.cpp b/Source/WebKit/blackberry/WebKitSupport/DOMSupport.cpp index 4b0ffbc52..433b8cdc9 100644 --- a/Source/WebKit/blackberry/WebKitSupport/DOMSupport.cpp +++ b/Source/WebKit/blackberry/WebKitSupport/DOMSupport.cpp @@ -33,13 +33,14 @@ #include "RenderTextControl.h" #include "TextIterator.h" #include "VisibleSelection.h" -#include "WTFString.h" #include "htmlediting.h" #include "visible_units.h" #include <limits> +#include <wtf/text/WTFString.h> + using WTF::Vector; using namespace WebCore; @@ -115,6 +116,18 @@ WTF::String inputElementText(Element* element) return elementText; } +WTF::String webWorksContext(const WebCore::Element* element) +{ + if (!element) + return WTF::String(); + + DEFINE_STATIC_LOCAL(QualifiedName, webworksContextAttr, (nullAtom, "data-blackberry-webworks-context", nullAtom)); + if (element->fastHasAttribute(webworksContextAttr)) + return element->fastGetAttribute(webworksContextAttr); + + return WTF::String(); +} + bool isElementTypePlugin(const Element* element) { if (!element) diff --git a/Source/WebKit/blackberry/WebKitSupport/DOMSupport.h b/Source/WebKit/blackberry/WebKitSupport/DOMSupport.h index 5de7f731f..cdfe0fcfa 100644 --- a/Source/WebKit/blackberry/WebKitSupport/DOMSupport.h +++ b/Source/WebKit/blackberry/WebKitSupport/DOMSupport.h @@ -63,6 +63,7 @@ AttributeState elementSupportsAutocomplete(const WebCore::Element*); AttributeState elementSupportsSpellCheck(const WebCore::Element*); WTF::String inputElementText(WebCore::Element*); +WTF::String webWorksContext(const WebCore::Element*); WebCore::HTMLTextFormControlElement* toTextControlElement(WebCore::Node*); diff --git a/Source/WebKit/blackberry/WebKitSupport/FatFingers.cpp b/Source/WebKit/blackberry/WebKitSupport/FatFingers.cpp index 381e7a1ec..f42f5edbf 100644 --- a/Source/WebKit/blackberry/WebKitSupport/FatFingers.cpp +++ b/Source/WebKit/blackberry/WebKitSupport/FatFingers.cpp @@ -465,7 +465,7 @@ void FatFingers::getPaddings(unsigned& top, unsigned& right, unsigned& bottom, u FatFingers::CachedResultsStrategy FatFingers::cachingStrategy() const { switch (m_matchingApproach) { - case ClickableElement: + case ClickableByDefault: return GetFromRenderTree; case MadeClickableByTheWebpage: return GetFromCache; @@ -491,11 +491,12 @@ void FatFingers::getNodesFromRect(Document* document, const IntPoint& contentPos unsigned topPadding, rightPadding, bottomPadding, leftPadding; getPaddings(topPadding, rightPadding, bottomPadding, leftPadding); - HitTestRequest request(HitTestRequest::ReadOnly | HitTestRequest::Active | HitTestRequest::IgnoreClipping); // The user functions checkForText() and findIntersectingRegions() uses the Node.wholeText() to checkFingerIntersection() // not the text in its shadow tree. - ShadowContentFilterPolicy allowShadow = m_targetType == Text ? DoNotAllowShadowContent : AllowShadowContent; - HitTestResult result(contentPos, topPadding, rightPadding, bottomPadding, leftPadding, allowShadow); + HitTestRequest request = HitTestRequest::ReadOnly | HitTestRequest::Active | HitTestRequest::IgnoreClipping; + if (m_targetType != Text) + request |= HitTestRequest::AllowShadowContent; + HitTestResult result(contentPos, topPadding, rightPadding, bottomPadding, leftPadding); document->renderView()->layer()->hitTest(request, result); intersectedNodes = result.rectBasedTestResult(); @@ -510,7 +511,7 @@ void FatFingers::getRelevantInfoFromPoint(Document* document, const IntPoint& co if (!document || !document->renderer() || !document->frame()) return; - HitTestResult result = document->frame()->eventHandler()->hitTestResultAtPoint(contentPos, true /*allowShadowContent*/); + HitTestResult result = document->frame()->eventHandler()->hitTestResultAtPoint(contentPos, HitTestRequest::ReadOnly | HitTestRequest::Active | HitTestRequest::AllowShadowContent); Node* node = result.innerNode(); while (node && !node->isElementNode()) node = node->parentNode(); diff --git a/Source/WebKit/blackberry/WebKitSupport/GLES2Context.cpp b/Source/WebKit/blackberry/WebKitSupport/GLES2Context.cpp index 7812da8df..c50c8804e 100644 --- a/Source/WebKit/blackberry/WebKitSupport/GLES2Context.cpp +++ b/Source/WebKit/blackberry/WebKitSupport/GLES2Context.cpp @@ -32,7 +32,6 @@ #include "config.h" #include "GLES2Context.h" -#include "Assertions.h" #include "BackingStoreCompositingSurface.h" #include "Chrome.h" #include "ChromeClient.h" @@ -42,6 +41,8 @@ #include <GLES2/gl2.h> +#include <wtf/Assertions.h> + using BlackBerry::Platform::Graphics::Window; namespace BlackBerry { diff --git a/Source/WebKit/blackberry/WebKitSupport/InPageSearchManager.cpp b/Source/WebKit/blackberry/WebKitSupport/InPageSearchManager.cpp index 4adb9b4aa..c57de91b0 100644 --- a/Source/WebKit/blackberry/WebKitSupport/InPageSearchManager.cpp +++ b/Source/WebKit/blackberry/WebKitSupport/InPageSearchManager.cpp @@ -40,12 +40,13 @@ namespace WebKit { class InPageSearchManager::DeferredScopeStringMatches { public: - DeferredScopeStringMatches(InPageSearchManager* ipsm, Frame* scopingFrame, const String& text, bool reset) + DeferredScopeStringMatches(InPageSearchManager* ipsm, Frame* scopingFrame, const String& text, bool reset, bool locateActiveMatchOnly) : m_searchManager(ipsm) , m_scopingFrame(scopingFrame) , m_timer(this, &DeferredScopeStringMatches::doTimeout) , m_searchText(text) , m_reset(reset) + , m_locateActiveMatchOnly(locateActiveMatchOnly) { m_timer.startOneShot(0.0); } @@ -53,13 +54,14 @@ public: private: void doTimeout(Timer<DeferredScopeStringMatches>*) { - m_searchManager->callScopeStringMatches(this, m_scopingFrame, m_searchText, m_reset); + m_searchManager->callScopeStringMatches(this, m_scopingFrame, m_searchText, m_reset, m_locateActiveMatchOnly); } InPageSearchManager* m_searchManager; Frame* m_scopingFrame; Timer<DeferredScopeStringMatches> m_timer; String m_searchText; bool m_reset; + bool m_locateActiveMatchOnly; }; InPageSearchManager::InPageSearchManager(WebPagePrivate* page) @@ -88,11 +90,13 @@ bool InPageSearchManager::findNextString(const String& text, FindOptions findOpt clearTextMatches(); cancelPendingScopingEffort(); m_activeSearchString = String(); + m_webPage->m_client->updateFindStringResult(m_activeMatchCount, m_activeMatchIndex); return false; } if (!shouldSearchForText(text)) { m_activeSearchString = text; + m_webPage->m_client->updateFindStringResult(m_activeMatchCount, m_activeMatchIndex); return false; } @@ -120,15 +124,17 @@ bool InPageSearchManager::findNextString(const String& text, FindOptions findOpt } // If there is any active selection, new search should start from the beginning of it. + bool startFromSelection = false; VisibleSelection selection = m_webPage->focusedOrMainFrame()->selection()->selection(); if (!selection.isNone()) { searchStartingPoint = selection.firstRange().get(); m_webPage->focusedOrMainFrame()->selection()->clear(); + startFromSelection = true; } Frame* currentActiveMatchFrame = selection.isNone() && m_activeMatch ? m_activeMatch->ownerDocument()->frame() : m_webPage->focusedOrMainFrame(); - if (findAndMarkText(text, searchStartingPoint.get(), currentActiveMatchFrame, findOptions, newSearch)) + if (findAndMarkText(text, searchStartingPoint.get(), currentActiveMatchFrame, findOptions, newSearch, startFromSelection)) return true; Frame* startFrame = currentActiveMatchFrame; @@ -139,16 +145,17 @@ bool InPageSearchManager::findNextString(const String& text, FindOptions findOpt // We should only ever have a null frame if we haven't found any // matches and we're not wrapping. We have searched every frame. ASSERT(!wrap); + m_webPage->m_client->updateFindStringResult(m_activeMatchCount, m_activeMatchIndex); return false; } - if (findAndMarkText(text, 0, currentActiveMatchFrame, findOptions, newSearch)) + if (findAndMarkText(text, 0, currentActiveMatchFrame, findOptions, newSearch, startFromSelection)) return true; } while (startFrame != currentActiveMatchFrame); clearTextMatches(); - // FIXME: We need to notify client here. + m_webPage->m_client->updateFindStringResult(m_activeMatchCount, m_activeMatchIndex); return false; } @@ -168,25 +175,45 @@ bool InPageSearchManager::shouldSearchForText(const String& text) return true; } -bool InPageSearchManager::findAndMarkText(const String& text, Range* range, Frame* frame, const FindOptions& options, bool isNewSearch) +bool InPageSearchManager::findAndMarkText(const String& text, Range* range, Frame* frame, const FindOptions& options, bool isNewSearch, bool startFromSelection) { if (RefPtr<Range> match = frame->editor()->findStringAndScrollToVisible(text, range, options)) { // Move the highlight to the new match. setActiveMatchAndMarker(match); - - if (m_highlightAllMatches) { - // FIXME: If it is a not new search, we need to calculate activeMatchIndex and notify client. - if (isNewSearch) - scopeStringMatches(text, true /* reset */); + if (isNewSearch) { + scopeStringMatches(text, true /* reset */, false /* locateActiveMatchOnly */); + return true; + } + if (startFromSelection || m_locatingActiveMatch) { + // We are finding next, but + // - starting from a new node, or + // - last locating active match effort is not done yet + if (!m_scopingComplete) { + // Last scoping is not done yet, let's restart it. + scopeStringMatches(text, true /* reset */, false /* locateActiveMatchOnly */); + } else { + // Last scoping is done, but we are jumping to somewhere instead of + // searching one by one, or there is another locating active match effort, + // let's start a scoping effort to locate active match only. + scopeStringMatches(text, true /* reset */, true /* locateActiveMatchOnly */); + } } else { - // When only showing single matches, cancel any scoping effort and ensure - // only the single active match is marked. - cancelPendingScopingEffort(); + // We are finding next one by one, let's calculate active match index + // There is at least one match, because otherwise we won't get into this block, + // so m_activeMatchIndex is at least one. + ASSERT(m_activeMatchCount); + if (!(options & WebCore::Backwards)) + m_activeMatchIndex = m_activeMatchIndex + 1 > m_activeMatchCount ? 1 : m_activeMatchIndex + 1; + else + m_activeMatchIndex = m_activeMatchIndex - 1 < 1 ? m_activeMatchCount : m_activeMatchIndex - 1; + m_webPage->m_client->updateFindStringResult(m_activeMatchCount, m_activeMatchIndex); + } + if (!m_highlightAllMatches) { + // When only showing single matches, the scoping effort won't highlight + // all matches but count them. m_webPage->m_page->unmarkAllTextMatches(); m_activeMatch->ownerDocument()->markers()->addTextMatchMarker(m_activeMatch.get(), true); frame->editor()->setMarkedTextMatchesAreHighlighted(true /* highlight */); - m_activeMatchCount = 1; - m_activeMatchIndex = 1; } return true; @@ -239,15 +266,18 @@ void InPageSearchManager::frameUnloaded(const Frame* frame) } } -void InPageSearchManager::scopeStringMatches(const String& text, bool reset, Frame* scopingFrame) +void InPageSearchManager::scopeStringMatches(const String& text, bool reset, bool locateActiveMatchOnly, Frame* scopingFrame) { if (reset) { - m_activeMatchCount = 0; + if (!locateActiveMatchOnly) { + m_activeMatchCount = 0; + m_scopingComplete = false; + } m_resumeScopingFromRange = 0; - m_scopingComplete = false; m_locatingActiveMatch = true; + m_activeMatchIndex = 0; // New search should always start from mainFrame. - scopeStringMatchesSoon(m_webPage->mainFrame(), text, false /* reset */); + scopeStringMatchesSoon(m_webPage->mainFrame(), text, false /* reset */, locateActiveMatchOnly); return; } @@ -284,10 +314,15 @@ void InPageSearchManager::scopeStringMatches(const String& text, bool reset, Fra if (m_locatingActiveMatch && areRangesEqual(resultRange.get(), m_activeMatch.get())) { foundActiveMatch = true; m_locatingActiveMatch = false; + if (locateActiveMatchOnly) { + m_activeMatchIndex += matchCount; + m_webPage->m_client->updateFindStringResult(m_activeMatchCount, m_activeMatchIndex); + return; + } m_activeMatchIndex = m_activeMatchCount + matchCount; - // FIXME: We need to notify client with m_activeMatchIndex. } - resultRange->ownerDocument()->markers()->addTextMatchMarker(resultRange.get(), foundActiveMatch); + if (!locateActiveMatchOnly && m_highlightAllMatches) + resultRange->ownerDocument()->markers()->addTextMatchMarker(resultRange.get(), foundActiveMatch); searchRange->setStart(resultRange->endContainer(ec), resultRange->endOffset(ec), ec); Node* shadowTreeRoot = searchRange->shadowTreeRootNode(); @@ -298,12 +333,20 @@ void InPageSearchManager::scopeStringMatches(const String& text, bool reset, Fra } while (!timeout); if (matchCount > 0) { - scopingFrame->editor()->setMarkedTextMatchesAreHighlighted(true /* highlight */); - m_activeMatchCount += matchCount; + if (locateActiveMatchOnly) { + // We have not found it yet. + // m_activeMatchIndex now temporarily remember where we left over in this time slot. + m_activeMatchIndex += matchCount; + } else { + if (m_highlightAllMatches) + scopingFrame->editor()->setMarkedTextMatchesAreHighlighted(true /* highlight */); + m_activeMatchCount += matchCount; + m_webPage->m_client->updateFindStringResult(m_activeMatchCount, m_activeMatchIndex); + } } if (timeout) - scopeStringMatchesSoon(scopingFrame, text, false /* reset */); + scopeStringMatchesSoon(scopingFrame, text, false /* reset */, locateActiveMatchOnly); else { // Scoping is done for this frame. Frame* nextFrame = DOMSupport::incrementFrame(scopingFrame, true /* forward */, false /* wrapFlag */); @@ -311,19 +354,19 @@ void InPageSearchManager::scopeStringMatches(const String& text, bool reset, Fra m_scopingComplete = true; return; // Scoping is done for all frames; } - scopeStringMatchesSoon(nextFrame, text, false /* reset */); + scopeStringMatchesSoon(nextFrame, text, false /* reset */, locateActiveMatchOnly); } } -void InPageSearchManager::scopeStringMatchesSoon(Frame* scopingFrame, const String& text, bool reset) +void InPageSearchManager::scopeStringMatchesSoon(Frame* scopingFrame, const String& text, bool reset, bool locateActiveMatchOnly) { - m_deferredScopingWork.append(new DeferredScopeStringMatches(this, scopingFrame, text, reset)); + m_deferredScopingWork.append(new DeferredScopeStringMatches(this, scopingFrame, text, reset, locateActiveMatchOnly)); } -void InPageSearchManager::callScopeStringMatches(DeferredScopeStringMatches* caller, Frame* scopingFrame, const String& text, bool reset) +void InPageSearchManager::callScopeStringMatches(DeferredScopeStringMatches* caller, Frame* scopingFrame, const String& text, bool reset, bool locateActiveMatchOnly) { m_deferredScopingWork.remove(m_deferredScopingWork.find(caller)); - scopeStringMatches(text, reset, scopingFrame); + scopeStringMatches(text, reset, locateActiveMatchOnly, scopingFrame); delete caller; } diff --git a/Source/WebKit/blackberry/WebKitSupport/InPageSearchManager.h b/Source/WebKit/blackberry/WebKitSupport/InPageSearchManager.h index f48bb8e29..421dd2c2a 100644 --- a/Source/WebKit/blackberry/WebKitSupport/InPageSearchManager.h +++ b/Source/WebKit/blackberry/WebKitSupport/InPageSearchManager.h @@ -20,7 +20,7 @@ #define InPageSearchManager_h #include "FindOptions.h" -#include "WTFString.h" +#include <wtf/text/WTFString.h> namespace WebCore { class Frame; @@ -48,11 +48,11 @@ private: void clearTextMatches(); void setActiveMatchAndMarker(PassRefPtr<WebCore::Range>); - bool findAndMarkText(const String&, WebCore::Range*, WebCore::Frame*, const WebCore::FindOptions&, bool); + bool findAndMarkText(const String&, WebCore::Range*, WebCore::Frame*, const WebCore::FindOptions&, bool /* isNewSearch */, bool /* startFromSelection */); bool shouldSearchForText(const String&); - void scopeStringMatches(const String& text, bool reset, WebCore::Frame* scopingFrame = 0); - void scopeStringMatchesSoon(WebCore::Frame* scopingFrame, const String& text, bool reset); - void callScopeStringMatches(DeferredScopeStringMatches* caller, WebCore::Frame* scopingFrame, const String& text, bool reset); + void scopeStringMatches(const String& text, bool reset, bool locateActiveMatchOnly, WebCore::Frame* scopingFrame = 0); + void scopeStringMatchesSoon(WebCore::Frame* scopingFrame, const String& text, bool reset, bool locateActiveMatchOnly); + void callScopeStringMatches(DeferredScopeStringMatches* caller, WebCore::Frame* scopingFrame, const String& text, bool reset, bool locateActiveMatchOnly); void cancelPendingScopingEffort(); Vector<DeferredScopeStringMatches*> m_deferredScopingWork; diff --git a/Source/WebKit/blackberry/WebKitSupport/InRegionScrollableArea.cpp b/Source/WebKit/blackberry/WebKitSupport/InRegionScrollableArea.cpp index f1141c336..0e6c95432 100644 --- a/Source/WebKit/blackberry/WebKitSupport/InRegionScrollableArea.cpp +++ b/Source/WebKit/blackberry/WebKitSupport/InRegionScrollableArea.cpp @@ -46,17 +46,6 @@ InRegionScrollableArea::~InRegionScrollableArea() m_cachedCompositedScrollableLayer->clearOverride(); } -// FIXME: Make RenderLayer::enclosingElement public so this one can be removed. -static Node* enclosingLayerNode(RenderLayer* layer) -{ - for (RenderObject* r = layer->renderer(); r; r = r->parent()) { - if (Node* e = r->node()) - return e; - } - ASSERT_NOT_REACHED(); - return 0; -} - InRegionScrollableArea::InRegionScrollableArea(WebPagePrivate* webPage, RenderLayer* layer) : m_webPage(webPage) , m_layer(layer) @@ -86,8 +75,8 @@ InRegionScrollableArea::InRegionScrollableArea(WebPagePrivate* webPage, RenderLa m_scrollsHorizontally = view->contentsWidth() > view->visibleWidth(); m_scrollsVertically = view->contentsHeight() > view->visibleHeight(); - m_overscrollLimitFactor = 0.0; // FIXME eventually support overscroll - m_cachedCompositedScrollableLayer = 0; // FIXME: Needs composited layer for inner frames. + m_camouflagedCompositedScrollableLayer = reinterpret_cast<unsigned>(m_layer->enclosingElement()); // FIXME: Needs composited layer for inner frames. + m_cachedNonCompositedScrollableNode = m_layer->enclosingElement(); } else { // RenderBox-based elements case (scrollable boxes (div's, p's, textarea's, etc)). @@ -107,16 +96,14 @@ InRegionScrollableArea::InRegionScrollableArea(WebPagePrivate* webPage, RenderLa if (m_layer->usesCompositedScrolling()) { m_supportsCompositedScrolling = true; ASSERT(m_layer->backing()->hasScrollingLayer()); - m_camouflagedCompositedScrollableLayer = reinterpret_cast<unsigned>(m_layer->backing()->scrollingLayer()->platformLayer()); - m_cachedCompositedScrollableLayer = m_layer->backing()->scrollingLayer()->platformLayer(); + m_camouflagedCompositedScrollableLayer = reinterpret_cast<unsigned>(m_layer->backing()->scrollingContentsLayer()->platformLayer()); + m_cachedCompositedScrollableLayer = m_layer->backing()->scrollingContentsLayer()->platformLayer(); ASSERT(!m_cachedNonCompositedScrollableNode); } else { - m_camouflagedCompositedScrollableLayer = reinterpret_cast<unsigned>(enclosingLayerNode(m_layer)); - m_cachedNonCompositedScrollableNode = enclosingLayerNode(m_layer); + m_camouflagedCompositedScrollableLayer = reinterpret_cast<unsigned>(m_layer->enclosingElement()); + m_cachedNonCompositedScrollableNode = m_layer->enclosingElement(); ASSERT(!m_cachedCompositedScrollableLayer); } - - m_overscrollLimitFactor = 0.0; } } diff --git a/Source/WebKit/blackberry/WebKitSupport/InputHandler.cpp b/Source/WebKit/blackberry/WebKitSupport/InputHandler.cpp index 77f8ada84..7e5d46262 100644 --- a/Source/WebKit/blackberry/WebKitSupport/InputHandler.cpp +++ b/Source/WebKit/blackberry/WebKitSupport/InputHandler.cpp @@ -22,8 +22,8 @@ #include "BackingStore.h" #include "BackingStoreClient.h" #include "CSSStyleDeclaration.h" -#include "CString.h" #include "Chrome.h" +#include "ColorPickerClient.h" #include "DOMSupport.h" #include "DatePickerClient.h" #include "Document.h" @@ -68,6 +68,7 @@ #include <BlackBerryPlatformMisc.h> #include <BlackBerryPlatformSettings.h> #include <sys/keycodes.h> +#include <wtf/text/CString.h> #define ENABLE_INPUT_LOG 0 #define ENABLE_FOCUS_LOG 0 @@ -135,6 +136,7 @@ InputHandler::InputHandler(WebPagePrivate* page) , m_pendingKeyboardVisibilityChange(NoChange) , m_delayKeyboardVisibilityChange(false) { + pthread_mutex_init(&m_sequenceMapMutex, 0); } InputHandler::~InputHandler() @@ -540,8 +542,8 @@ void InputHandler::requestCheckingOfString(PassRefPtr<WebCore::TextCheckingReque return; } - // Check if field explicitly asked for spellchecking. - if (DOMSupport::elementSupportsSpellCheck(m_currentFocusElement.get()) != DOMSupport::On) { + // Check if the field should be spellchecked. + if (!shouldSpellCheckElement(m_currentFocusElement.get())) { spellCheckingRequestCancelled(sequenceId, true /* isSequenceId */); return; } @@ -581,6 +583,7 @@ void InputHandler::requestCheckingOfString(PassRefPtr<WebCore::TextCheckingReque return; } + BlackBerry::Platform::MutexLocker lock(&m_sequenceMapMutex); int32_t transactionId = m_webPage->m_client->checkSpellingOfStringAsync(checkingString, paragraphLength); free(checkingString); @@ -598,6 +601,7 @@ void InputHandler::requestCheckingOfString(PassRefPtr<WebCore::TextCheckingReque int32_t InputHandler::convertTransactionIdToSequenceId(int32_t transactionId) { + BlackBerry::Platform::MutexLocker lock(&m_sequenceMapMutex); std::map<int32_t, int32_t>::iterator it = m_sequenceMap.find(transactionId); if (it == m_sequenceMap.end()) @@ -660,6 +664,7 @@ void InputHandler::spellCheckingRequestProcessed(int32_t transactionId, spannabl void InputHandler::cancelAllSpellCheckingRequests() { + BlackBerry::Platform::MutexLocker lock(&m_sequenceMapMutex); for (std::map<int32_t, int32_t>::iterator it = m_sequenceMap.begin(); it != m_sequenceMap.end(); ++it) spellCheckingRequestCancelled(it->second, true /* isSequenceId */); m_sequenceMap.clear(); @@ -672,7 +677,7 @@ void InputHandler::spellCheckingRequestCancelled(int32_t id, bool isSequenceId) int32_t sequenceId = isSequenceId ? id : convertTransactionIdToSequenceId(id); SpellChecker* spellChecker = getSpellChecker(); - if (!spellChecker) { + if (!spellChecker || !sequenceId) { SpellingLog(LogLevelWarn, "InputHandler::spellCheckingRequestCancelled failed to cancel the request with sequenceId %d", sequenceId); return; } @@ -838,8 +843,8 @@ void InputHandler::setElementFocused(Element* element) SpellingLog(LogLevelInfo, "InputHandler::setElementFocused Focusing the field took %f seconds.", timer.elapsed()); #endif - // Check if the field explicitly asks for spellchecking. - if (DOMSupport::elementSupportsSpellCheck(element) != DOMSupport::On) + // Check if the field should be spellchecked. + if (!shouldSpellCheckElement(element)) return; // Spellcheck the field in its entirety. @@ -851,19 +856,36 @@ void InputHandler::setElementFocused(Element* element) #endif } +bool InputHandler::shouldSpellCheckElement(const Element* element) const +{ + DOMSupport::AttributeState spellCheckAttr = DOMSupport::elementSupportsSpellCheck(element); + + // Explicitly set to off. + if (spellCheckAttr == DOMSupport::Off) + return false; + + // Undefined and part of a set of cases which we do not wish to check. This includes user names and email addresses, so we are piggybacking on NoAutocomplete cases. + if (spellCheckAttr == DOMSupport::Default && (m_currentFocusElementTextEditMask & NO_AUTO_TEXT)) + return false; + + return true; +} + void InputHandler::spellCheckBlock(VisibleSelection& visibleSelection, TextCheckingProcessType textCheckingProcessType) { if (!isActiveTextEdit()) return; + RefPtr<Range> rangeForSpellChecking = visibleSelection.toNormalizedRange(); + if (!rangeForSpellChecking || !rangeForSpellChecking->text() || !rangeForSpellChecking->text().length()) + return; + SpellChecker* spellChecker = getSpellChecker(); if (!spellChecker) { SpellingLog(LogLevelInfo, "InputHandler::spellCheckBlock Failed to spellcheck the current focused element."); return; } - RefPtr<Range> rangeForSpellChecking = visibleSelection.toNormalizedRange(); - // If we have a batch request, try to send off the entire block. if (textCheckingProcessType == TextCheckingProcessBatch) { // If total block text is under the limited amount, send the entire chunk. @@ -876,13 +898,16 @@ void InputHandler::spellCheckBlock(VisibleSelection& visibleSelection, TextCheck // Since we couldn't check the entire block at once, set up starting and ending markers to fire incrementally. VisiblePosition startPos = visibleSelection.visibleStart(); VisiblePosition startOfCurrentLine = startOfLine(startPos); - VisiblePosition endOfCurrentLine = endOfLine(startPos); + VisiblePosition endOfCurrentLine = endOfLine(startOfCurrentLine); - while (startOfCurrentLine != endOfCurrentLine) { + while (!isEndOfBlock(startOfCurrentLine)) { // Create a selection with the start and end points of the line, and convert to Range to create a SpellCheckRequest. rangeForSpellChecking = VisibleSelection(startOfCurrentLine, endOfCurrentLine).toNormalizedRange(); - if (rangeForSpellChecking->text().length() >= MaxSpellCheckingStringLength) { + if (rangeForSpellChecking->text().length() < MaxSpellCheckingStringLength) { + startOfCurrentLine = nextLinePosition(startOfCurrentLine, startOfCurrentLine.lineDirectionPointForBlockDirectionNavigation()); + endOfCurrentLine = endOfLine(startOfCurrentLine); + } else { // Iterate through words from the start of the line to the end. rangeForSpellChecking = getRangeForSpellCheckWithFineGranularity(startOfCurrentLine, endOfCurrentLine); if (!rangeForSpellChecking) { @@ -890,12 +915,6 @@ void InputHandler::spellCheckBlock(VisibleSelection& visibleSelection, TextCheck return; } startOfCurrentLine = VisiblePosition(rangeForSpellChecking->endPosition()); - } else { - startOfCurrentLine = nextLinePosition(startOfCurrentLine, startOfCurrentLine.lineDirectionPointForBlockDirectionNavigation()); - endOfCurrentLine = endOfLine(startOfCurrentLine); - // If we are at the last line, nextLinePosition will return the position at the end of the line. If we're not at the end, wrap with a call to startOfLine to be safe. - if (startOfCurrentLine != endOfCurrentLine) - startOfCurrentLine = startOfLine(startOfCurrentLine); } SpellingLog(LogLevelInfo, "InputHandler::spellCheckBlock Substring text is '%s', of size %d", rangeForSpellChecking->text().latin1().data(), rangeForSpellChecking->text().length()); @@ -941,11 +960,7 @@ bool InputHandler::openDatePopup(HTMLInputElement* element, BlackBerryInputType double step = element->getAttribute(HTMLNames::stepAttr).toDouble(); DatePickerClient* client = new DatePickerClient(type, value, min, max, step, m_webPage, element); - // Fail to create HTML popup, use the old path - if (!m_webPage->m_page->chrome()->client()->openPagePopup(client, WebCore::IntRect())) - m_webPage->m_client->openDateTimePopup(type, value, min, max, step); - - return true; + return m_webPage->m_page->chrome()->client()->openPagePopup(client, WebCore::IntRect()); } default: // Other types not supported return false; @@ -963,7 +978,10 @@ bool InputHandler::openColorPopup(HTMLInputElement* element) m_currentFocusElement = element; m_currentFocusElementType = TextPopup; - m_webPage->m_client->openColorPopup(element->value()); + // Check if popup already exists, close it if does. + m_webPage->m_page->chrome()->client()->closePagePopup(0); + ColorPickerClient* client = new ColorPickerClient(element->value(), m_webPage, element); + m_webPage->m_page->chrome()->client()->openPagePopup(client, WebCore::IntRect()); return true; } @@ -1642,6 +1660,9 @@ bool InputHandler::openSelectPopup(HTMLSelectElement* select) // Fail to create HTML popup, use the old path if (!m_webPage->m_page->chrome()->client()->openPagePopup(selectClient, elementRectInRootView)) m_webPage->m_client->openPopupList(multiple, size, labels, enableds, itemTypes, selecteds); + delete[] enableds; + delete[] itemTypes; + delete[] selecteds; return true; } diff --git a/Source/WebKit/blackberry/WebKitSupport/InputHandler.h b/Source/WebKit/blackberry/WebKitSupport/InputHandler.h index 869cfc273..f0ecb7dfe 100644 --- a/Source/WebKit/blackberry/WebKitSupport/InputHandler.h +++ b/Source/WebKit/blackberry/WebKitSupport/InputHandler.h @@ -26,6 +26,7 @@ #include <imf/events.h> #include <imf/input_data.h> #include <map> +#include <pthread.h> #include <wtf/RefPtr.h> namespace WTF { @@ -198,6 +199,7 @@ private: PassRefPtr<WebCore::Range> getRangeForSpellCheckWithFineGranularity(WebCore::VisiblePosition startPosition, WebCore::VisiblePosition endPosition); void cancelAllSpellCheckingRequests(); WebCore::SpellChecker* getSpellChecker(); + bool shouldSpellCheckElement(const WebCore::Element*) const; WebPagePrivate* m_webPage; @@ -217,6 +219,7 @@ private: bool m_delayKeyboardVisibilityChange; std::map<int32_t, int32_t> m_sequenceMap; + pthread_mutex_t m_sequenceMapMutex; }; } diff --git a/Source/WebKit/blackberry/WebKitSupport/RenderQueue.cpp b/Source/WebKit/blackberry/WebKitSupport/RenderQueue.cpp index 3460bd8f0..110be1aa1 100644 --- a/Source/WebKit/blackberry/WebKitSupport/RenderQueue.cpp +++ b/Source/WebKit/blackberry/WebKitSupport/RenderQueue.cpp @@ -243,7 +243,7 @@ int RenderQueue::splittingFactor(const Platform::IntRect& rect) const // rendered in any one pass should stay fixed with regard to the zoom level. Platform::IntRect untransformedRect = m_parent->m_webPage->d->mapFromTransformed(rect); double rectArea = untransformedRect.width() * untransformedRect.height(); - double maxArea = DEFAULT_MAX_LAYOUT_WIDTH * DEFAULT_MAX_LAYOUT_HEIGHT; // Defined in WebPage_p.h. + double maxArea = m_parent->tileWidth() * m_parent->tileHeight(); const unsigned splitFactor = 1 << 0; double renderRectArea = maxArea / splitFactor; @@ -655,14 +655,8 @@ void RenderQueue::renderAllCurrentRegularRenderJobs() m_currentRegularRenderJobsBatchRegion = Platform::IntRectRegion(); m_currentRegularRenderJobsBatchUnderPressure = false; - // Update the screen only if we're not scrolling or zooming. - if (rendered && !m_parent->isScrollingOrZooming()) { - if (!m_parent->shouldDirectRenderingToWindow()) - m_parent->blitVisibleContents(); - else - m_parent->invalidateWindow(); - m_parent->m_webPage->client()->notifyContentRendered(renderedRect); - } + if (rendered) + m_parent->didRenderContent(renderedRect); if (m_parent->shouldSuppressNonVisibleRegularRenderJobs() && !regionNotRendered.isEmpty()) m_parent->updateTilesForScrollOrNotRenderedRegion(false /*checkLoading*/); @@ -810,14 +804,7 @@ void RenderQueue::renderRegularRenderJob() // Clear the region and the and blit since this batch is now complete. m_currentRegularRenderJobsBatchRegion = Platform::IntRectRegion(); m_currentRegularRenderJobsBatchUnderPressure = false; - // Update the screen only if we're not scrolling or zooming. - if (!m_parent->isScrollingOrZooming()) { - if (!m_parent->shouldDirectRenderingToWindow()) - m_parent->blitVisibleContents(); - else - m_parent->invalidateWindow(); - m_parent->m_webPage->client()->notifyContentRendered(renderedRect); - } + m_parent->didRenderContent(renderedRect); } // Make sure we didn't alter state of the queues that should have been empty @@ -880,13 +867,8 @@ void RenderQueue::visibleScrollJobsCompleted(bool shouldBlit) // Now blit to the screen if we are done and get rid of the completed list! ASSERT(m_visibleScrollJobs.empty()); m_visibleScrollJobsCompleted.clear(); - if (shouldBlit && !m_parent->isScrollingOrZooming()) { - if (!m_parent->shouldDirectRenderingToWindow()) - m_parent->blitVisibleContents(); - else - m_parent->invalidateWindow(); - m_parent->m_webPage->client()->notifyContentRendered(m_parent->visibleContentsRect()); - } + if (shouldBlit) + m_parent->didRenderContent(m_parent->visibleContentsRect()); } void RenderQueue::nonVisibleScrollJobsCompleted() diff --git a/Source/WebKit/blackberry/WebKitSupport/SelectionHandler.cpp b/Source/WebKit/blackberry/WebKitSupport/SelectionHandler.cpp index 3b04247be..1e150c33e 100644 --- a/Source/WebKit/blackberry/WebKitSupport/SelectionHandler.cpp +++ b/Source/WebKit/blackberry/WebKitSupport/SelectionHandler.cpp @@ -159,7 +159,7 @@ static VisiblePosition visiblePositionForPointIgnoringClipping(const Frame& fram // outside the visible rect. To work around the bug, this is a copy of // visiblePositionAtPoint which which passes ignoreClipping=true. // See RIM Bug #4315. - HitTestResult result = frame.eventHandler()->hitTestResultAtPoint(framePoint, true /* allowShadowContent */, true /* ignoreClipping */); + HitTestResult result = frame.eventHandler()->hitTestResultAtPoint(framePoint, HitTestRequest::ReadOnly | HitTestRequest::Active | HitTestRequest::AllowShadowContent | HitTestRequest::IgnoreClipping); Node* node = result.innerNode(); if (!node || node->document() != frame.document()) @@ -738,6 +738,8 @@ static void adjustCaretRects(WebCore::IntRect& startCaret, bool isStartCaretClip else { startCaret = rectList[0]; startCaret.setLocation(caretLocationForRect(startCaret, true, isRTL)); + // Reset width to 1 as we are strictly interested in caret location. + startCaret.setWidth(1); } if (isEndCaretClippedOut) @@ -745,15 +747,13 @@ static void adjustCaretRects(WebCore::IntRect& startCaret, bool isStartCaretClip else { endCaret = rectList[0]; endCaret.setLocation(caretLocationForRect(endCaret, false, isRTL)); + // Reset width to 1 as we are strictly interested in caret location. + endCaret.setWidth(1); } if (isStartCaretClippedOut && isEndCaretClippedOut) return; - // Reset width to 1 as we are strictly interested in caret location. - startCaret.setWidth(1); - endCaret.setWidth(1); - for (unsigned i = 1; i < rectList.size(); i++) { WebCore::IntRect currentRect(rectList[i]); @@ -874,8 +874,8 @@ void SelectionHandler::selectionPositionChanged(bool forceUpdateWithoutChange) SelectionTimingLog(LogLevelInfo, "SelectionHandler::selectionPositionChanged starting at %f", m_timer.elapsed()); - WebCore::IntRect startCaret; - WebCore::IntRect endCaret; + WebCore::IntRect startCaret(DOMSupport::InvalidPoint, WebCore::IntSize()); + WebCore::IntRect endCaret(DOMSupport::InvalidPoint, WebCore::IntSize()); // Get the text rects from the selections range. Vector<FloatQuad> quads; diff --git a/Source/WebKit/blackberry/WebKitSupport/SurfacePool.cpp b/Source/WebKit/blackberry/WebKitSupport/SurfacePool.cpp index 3a09b8c42..694cc16b2 100644 --- a/Source/WebKit/blackberry/WebKitSupport/SurfacePool.cpp +++ b/Source/WebKit/blackberry/WebKitSupport/SurfacePool.cpp @@ -123,7 +123,13 @@ void SurfacePool::initialize(const BlackBerry::Platform::IntSize& tileSize) } #endif - pthread_mutex_init(&m_mutex, 0); + // m_mutex must be recursive because destroyPlatformSync may be called indirectly + // from notifyBuffersComposited + pthread_mutexattr_t attr; + pthread_mutexattr_init(&attr); + pthread_mutexattr_settype(&attr, PTHREAD_MUTEX_RECURSIVE); + pthread_mutex_init(&m_mutex, &attr); + pthread_mutexattr_destroy(&attr); } PlatformGraphicsContext* SurfacePool::createPlatformGraphicsContext(BlackBerry::Platform::Graphics::Drawable* drawable) const @@ -280,12 +286,16 @@ void SurfacePool::notifyBuffersComposited(const Vector<TileBuffer*>& tileBuffers // fence that may be active among these tiles and add its sync object to the garbage set // for later destruction to make sure it doesn't leak. RefPtr<Fence> fence = Fence::create(eglCreateSyncKHR(display, EGL_SYNC_FENCE_KHR, 0)); - for (unsigned int i = 0; i < tileBuffers.size(); ++i) { - if (EGLSyncKHR platformSync = tileBuffers[i]->fence()->takePlatformSync()) - m_garbage.insert(platformSync); - + for (unsigned int i = 0; i < tileBuffers.size(); ++i) tileBuffers[i]->setFence(fence); - } +#endif +} + +void SurfacePool::destroyPlatformSync(void* platformSync) +{ +#if BLACKBERRY_PLATFORM_GRAPHICS_EGL && USE(SKIA) + Platform::MutexLocker locker(&m_mutex); + m_garbage.insert(platformSync); #endif } diff --git a/Source/WebKit/blackberry/WebKitSupport/SurfacePool.h b/Source/WebKit/blackberry/WebKitSupport/SurfacePool.h index 40788fab6..8e0d8b138 100644 --- a/Source/WebKit/blackberry/WebKitSupport/SurfacePool.h +++ b/Source/WebKit/blackberry/WebKitSupport/SurfacePool.h @@ -83,6 +83,8 @@ public: // Compositing thread must notify the SurfacePool when EGLImages are composited void notifyBuffersComposited(const Vector<TileBuffer*>& buffers); + void destroyPlatformSync(void* platformSync); + private: // This is necessary so BackingStoreTile can atomically swap buffers with m_backBuffer. friend class BackingStoreTile; diff --git a/Source/WebKit/blackberry/WebKitSupport/TouchEventHandler.cpp b/Source/WebKit/blackberry/WebKitSupport/TouchEventHandler.cpp index ee3a75f32..e64a4c5cc 100644 --- a/Source/WebKit/blackberry/WebKitSupport/TouchEventHandler.cpp +++ b/Source/WebKit/blackberry/WebKitSupport/TouchEventHandler.cpp @@ -135,10 +135,16 @@ void TouchEventHandler::touchEventCancel() // If we cancel a single touch event, we need to also clean up any hover // state we get into by synthetically moving the mouse to the m_fingerPoint. - Element* elementUnderFatFinger = m_lastFatFingersResult.nodeAsElementIfApplicable(); - if (elementUnderFatFinger && elementUnderFatFinger->renderer()) { + Element* elementUnderFatFinger = m_lastFatFingersResult.positionWasAdjusted() ? m_lastFatFingersResult.nodeAsElementIfApplicable() : 0; + do { + if (!elementUnderFatFinger || !elementUnderFatFinger->renderer()) + break; + + if (!elementUnderFatFinger->renderer()->style()->affectedByHoverRules() + && !elementUnderFatFinger->renderer()->style()->affectedByActiveRules()) + break; - HitTestRequest request(HitTestRequest::FingerUp); + HitTestRequest request(HitTestRequest::TouchEvent | HitTestRequest::Release); // The HitTestResult point is not actually needed. HitTestResult result(IntPoint::zero()); result.setInnerNode(elementUnderFatFinger); @@ -147,11 +153,14 @@ void TouchEventHandler::touchEventCancel() ASSERT(document); document->renderView()->layer()->updateHoverActiveState(request, result); document->updateStyleIfNeeded(); + // Updating the document style may destroy the renderer. - if (elementUnderFatFinger->renderer()) - elementUnderFatFinger->renderer()->repaint(); + if (!elementUnderFatFinger->renderer()) + break; + + elementUnderFatFinger->renderer()->repaint(); ASSERT(!elementUnderFatFinger->hovered()); - } + } while (0); m_lastFatFingersResult.reset(); } @@ -220,7 +229,9 @@ bool TouchEventHandler::handleTouchPoint(Platform::TouchPoint& point, bool useFa bool shouldRequestSpellCheckOptions = false; if (m_lastFatFingersResult.isTextInput()) - shouldRequestSpellCheckOptions = m_webPage->m_inputHandler->shouldRequestSpellCheckingOptionsForPoint(point.m_pos, m_lastFatFingersResult.nodeAsElementIfApplicable(), spellCheckOptionRequest); + shouldRequestSpellCheckOptions = m_webPage->m_inputHandler->shouldRequestSpellCheckingOptionsForPoint(point.m_pos + , m_lastFatFingersResult.nodeAsElementIfApplicable(FatFingersResult::ShadowContentNotAllowed) + , spellCheckOptionRequest); // Apply any suppressed changes. This does not eliminate the need // for the show after the handling of fat finger pressed as it may @@ -343,7 +354,7 @@ void TouchEventHandler::drawTapHighlight() // On the client side, this info is being used to hide the tap highlight window on scroll. RenderLayer* layer = m_webPage->enclosingFixedPositionedAncestorOrSelfIfFixedPositioned(renderer->enclosingLayer()); bool shouldHideTapHighlightRightAfterScrolling = !layer->renderer()->isRenderView(); - shouldHideTapHighlightRightAfterScrolling |= !!m_webPage->m_inRegionScroller->d->node(); + shouldHideTapHighlightRightAfterScrolling |= !!m_webPage->m_inRegionScroller->d->isActive(); IntPoint framePos(m_webPage->frameOffset(elementFrame)); diff --git a/Source/WebKit/cf/ChangeLog b/Source/WebKit/cf/ChangeLog index ee69fa6a7..5863e92f4 100644 --- a/Source/WebKit/cf/ChangeLog +++ b/Source/WebKit/cf/ChangeLog @@ -1,3 +1,15 @@ +2012-09-05 Sam Weinig <sam@webkit.org> + + Part 2 of removing PlatformString.h, remove PlatformString.h + https://bugs.webkit.org/show_bug.cgi?id=95931 + + Reviewed by Adam Barth. + + Remove PlatformString.h + + * WebCoreSupport/WebInspectorClientCF.cpp: + (WebInspectorClient::createFrontendSettings): + 2012-06-19 Sergio Villar Senin <svillar@igalia.com> Calling nativeImageForCurrentFrame() causes assertion failure: m_verifier.isSafeToUse() diff --git a/Source/WebKit/cf/WebCoreSupport/WebInspectorClientCF.cpp b/Source/WebKit/cf/WebCoreSupport/WebInspectorClientCF.cpp index 16c5b6b4e..83747f223 100644 --- a/Source/WebKit/cf/WebCoreSupport/WebInspectorClientCF.cpp +++ b/Source/WebKit/cf/WebCoreSupport/WebInspectorClientCF.cpp @@ -53,11 +53,11 @@ #include <WebCore/Frame.h> #include <WebCore/InspectorFrontendClientLocal.h> #include <WebCore/Page.h> -#include <WebCore/PlatformString.h> #include <wtf/PassOwnPtr.h> #include <wtf/RetainPtr.h> #include <wtf/Vector.h> +#include <wtf/text/WTFString.h> using namespace WebCore; @@ -115,7 +115,7 @@ void WebInspectorClient::setInspectorStartsAttached(bool attached) storeSetting(inspectorStartsAttachedSetting, attached ? "true" : "false"); } -WTF::PassOwnPtr<WebCore::InspectorFrontendClientLocal::Settings> WebInspectorClient::createFrontendSettings() +PassOwnPtr<WebCore::InspectorFrontendClientLocal::Settings> WebInspectorClient::createFrontendSettings() { class InspectorFrontendSettingsCF : public WebCore::InspectorFrontendClientLocal::Settings { public: diff --git a/Source/WebKit/chromium/.gitignore b/Source/WebKit/chromium/.gitignore deleted file mode 100644 index 4def72c92..000000000 --- a/Source/WebKit/chromium/.gitignore +++ /dev/null @@ -1,40 +0,0 @@ -# Ignore Chromium dependencies - -*.Makefile -*.mk -*.sln -*.vcproj* -*.vcxproj* -All.ncb -All.sdf -All.xcodeproj -WebKit.ncb -WebKit.xcodeproj -WebKitUnitTests.xcodeproj - -.gclient -.gclient_entries -base/ -cc/ -chromium_deps/ -crypto/ -depot_tools/ -dbus/ -gfx/ -googleurl/ -gpu/ -ipc/ -media/ -net/ -ppapi/ -printing/ -sdch/ -skia/ -sql/ -testing/ -third_party/ -tools/ -ui/ -v8/ -webkit/ -xcodebuild/ diff --git a/Source/WebKit/chromium/All.gyp b/Source/WebKit/chromium/All.gyp index 739a0c8ec..882120207 100644 --- a/Source/WebKit/chromium/All.gyp +++ b/Source/WebKit/chromium/All.gyp @@ -47,8 +47,15 @@ 'conditions': [ ['OS=="android"', { 'dependencies': [ - 'WebKitUnitTests.gyp:webkit_unit_tests_apk', '../../../Tools/DumpRenderTree/DumpRenderTree.gyp/DumpRenderTree.gyp:DumpRenderTree_apk', + ], + }], + # Special target to wrap a gtest_target_type==shared_library + # webkit_unit_tests and TestWebKitAPI into an android apk for + # execution. See base.gyp for TODO(jrg)s about this strategy. + ['OS=="android" and gtest_target_type == "shared_library"', { + 'dependencies': [ + 'WebKitUnitTests.gyp:webkit_unit_tests_apk', '../../../Tools/TestWebKitAPI/TestWebKitAPI.gyp/TestWebKitAPI.gyp:TestWebKitAPI_apk', ], }], diff --git a/Source/WebKit/chromium/ChangeLog b/Source/WebKit/chromium/ChangeLog index 2e08a17ed..2a621451b 100644 --- a/Source/WebKit/chromium/ChangeLog +++ b/Source/WebKit/chromium/ChangeLog @@ -1,3 +1,2495 @@ +2012-09-10 Rick Byers <rbyers@chromium.org> + + [chromium] Don't use WebGestureEvent.boundingBox for touch adjustment + https://bugs.webkit.org/show_bug.cgi?id=95996 + + Reviewed by Adam Barth. + + Switch from WebGestureEvent.boundingBox to new gesture-type specific + data fields. + * src/WebViewImpl.cpp: + (WebKit::WebViewImpl::handleGestureEvent): + +2012-09-09 Keishi Hattori <keishi@webkit.org> + + REGRESSION(r127558): Fix a crash in DateTimeChooserImpl::didClosePopup + https://bugs.webkit.org/show_bug.cgi?id=96222 + + Reviewed by Kent Tamura. + + DateTimeChooserClient will delete DateTimeChooserImpl inside didEndChooser() + so we shouldn't be changing the members after that. + + Testing covered by fast/forms/date/calendar-picker-appearance-pre-100.html. + + * src/DateTimeChooserImpl.cpp: + (WebKit::DateTimeChooserImpl::didClosePopup): + +2012-09-09 Kenichi Ishibashi <bashi@chromium.org> + + [Chromium] Unreviewed gardening after r127907 + + Fix CCRenderPassTest::copyShouldBeIdenticalExceptIdAndQuads + + * tests/CCRenderPassTest.cpp: + (CCRenderPassSize): Changed type of m_id + +2012-09-09 Emil A Eklund <eae@chromium.org> + + Rename Node::getRect/getPixelSnappedRect and remove ContainerNode::getRect + https://bugs.webkit.org/show_bug.cgi?id=81413 + + Reviewed by David Hyatt. + + Update WebViewImpl to call boundingBox/pixelSnappedBoundingBox. + + * src/WebViewImpl.cpp: + (WebKit::WebViewImpl::computeBlockBounds): + (WebKit::WebViewImpl::applyAutofillSuggestions): + (WebKit::WebViewImpl::refreshAutofillPopup): + +2012-09-09 James Robinson <jamesr@chromium.org> + + [chromium] webkit_platform should only be linked into the webkit target + https://bugs.webkit.org/show_bug.cgi?id=96213 + + Reviewed by Adrienne Walker. + + The Platform.gyp:webkit_platform target provides the implementation of several WEBKIT_EXPORTed symbols. It only + makes sense as a target of WebKit.gyp:webkit, other targets shouldn't directly depend on it. + + * WebKit.gyp: + +2012-09-09 James Robinson <jamesr@chromium.org> + + [chromium] Use WebCompositorSupport creation functions in GraphicsLayerChromiumTest + https://bugs.webkit.org/show_bug.cgi?id=96212 + + Reviewed by Adrienne Walker. + + The static ::create()s the test references currently are going away soon. + + * tests/GraphicsLayerChromiumTest.cpp: + (WebKit::GraphicsLayerChromiumTest::GraphicsLayerChromiumTest): + (WebKit::TEST_F): + +2012-09-07 Benjamin Poulain <benjamin@webkit.org> + + Unreviewed prospective build fix. + + * tests/WebCompositorInputHandlerImplTest.cpp: Looks like someone is missing an #include. + Remove the using directive from r127959. + +2012-09-07 Simon Hausmann <simon.hausmann@nokia.com> + + Unreviewed prospective build fix. + + Use WTF namespace like in other files in the same directory to resolve unqualified + adoptPtr correctly. + + * tests/WebCompositorInputHandlerImplTest.cpp: + +2012-09-07 James Robinson <jamesr@chromium.org> + + [chromium] Remove transitional WebCompositorSupport fallback code + https://bugs.webkit.org/show_bug.cgi?id=96155 + + Reviewed by Adrienne Walker. + + * src/LinkHighlight.cpp: + (WebKit::LinkHighlight::LinkHighlight): + (WebKit::LinkHighlight::startHighlightAnimation): + * src/WebMediaPlayerClientImpl.cpp: + (WebKit::WebMediaPlayerClientImpl::readyStateChanged): + * src/WebPluginContainerImpl.cpp: + (WebKit::WebPluginContainerImpl::setBackingTextureId): + (WebKit::WebPluginContainerImpl::setBackingIOSurfaceId): + * src/WebViewImpl.cpp: + (WebKit::WebViewImpl::setIsAcceleratedCompositingActive): + (WebKit): + +2012-09-07 James Robinson <jamesr@chromium.org> + + [chromium] Implement WebCompositorInputHandlerImpl on top of exposed API instead of CC internals + https://bugs.webkit.org/show_bug.cgi?id=96151 + + Reviewed by Adrienne Walker. + + Moves input handler setup code up to the WebKit layer instead of reaching in to CC internals. + WebLayerTreeViewImpl implements createInputHandler() by asking its embedder for a WebInputHandler. If one is + provided, it wraps the WebInputHandler in a CCInputHandler implementation to pass down to CC. + + WebViewImpl implements WebLayerTreeView::createInputHandler() by constructing a WebCompositorInputHandlerImpl + and storing its identifier for the didActivateCompositor call. From this point on the setup is the same as + before. + + WCIHI changes covered by unit tests, overall scrolling behavior manually tested. + + * WebKit.gypi: + * src/WebCompositorInputHandlerImpl.cpp: + (WebKit::WebCompositorInputHandlerImpl::fromIdentifier): + (WebKit::WebCompositorInputHandlerImpl::WebCompositorInputHandlerImpl): + (WebKit::WebCompositorInputHandlerImpl::~WebCompositorInputHandlerImpl): + (WebKit::WebCompositorInputHandlerImpl::setClient): + (WebKit::WebCompositorInputHandlerImpl::handleInputEvent): + (WebKit::WebCompositorInputHandlerImpl::handleInputEventInternal): + (WebKit::WebCompositorInputHandlerImpl::handleGestureFling): + (WebKit::WebCompositorInputHandlerImpl::bindToClient): + * src/WebCompositorInputHandlerImpl.h: + (WebCompositorInputHandlerImpl): + (WebKit::WebCompositorInputHandlerImpl::identifier): + * src/WebLayerTreeViewImpl.cpp: + (WebKit::WebLayerTreeViewImpl::createInputHandler): + (WebKit): + * src/WebLayerTreeViewImpl.h: + (WebLayerTreeViewImpl): + * src/WebToCCInputHandlerAdapter.cpp: Added. + (WebKit): + (WebKit::WebToCCInputHandlerAdapter::create): + (WebKit::WebToCCInputHandlerAdapter::WebToCCInputHandlerAdapter): + (WebKit::WebToCCInputHandlerAdapter::~WebToCCInputHandlerAdapter): + (WebToCCInputHandlerAdapter::ClientAdapter): + (WebKit::WebToCCInputHandlerAdapter::ClientAdapter::ClientAdapter): + (WebKit::WebToCCInputHandlerAdapter::ClientAdapter::~ClientAdapter): + (WebKit::WebToCCInputHandlerAdapter::bindToClient): + (WebKit::WebToCCInputHandlerAdapter::animate): + * src/WebToCCInputHandlerAdapter.h: Copied from Source/WebCore/platform/graphics/chromium/cc/CCLayerTreeHostClient.h. + (WebKit): + (WebToCCInputHandlerAdapter): + * src/WebViewImpl.cpp: + (WebKit::WebViewImpl::WebViewImpl): + (WebKit::WebViewImpl::setIsAcceleratedCompositingActive): + (WebKit): + (WebKit::WebViewImpl::createInputHandler): + * src/WebViewImpl.h: + (WebViewImpl): + * tests/CCThreadedTest.cpp: + * tests/FakeCCLayerTreeHostClient.h: + * tests/WebCompositorInputHandlerImplTest.cpp: + (MockWebInputHandlerClient): + (WebKit::MockWebInputHandlerClient::MockWebInputHandlerClient): + (WebKit::MockWebInputHandlerClient::~MockWebInputHandlerClient): + (WebKit::WebCompositorInputHandlerImplTest::WebCompositorInputHandlerImplTest): + (WebCompositorInputHandlerImplTest): + (WebKit::TEST_F): + +2012-09-07 David Reveman <reveman@chromium.org> + + [Chromium] Multiple commits without invalidation allowed per redraw. + https://bugs.webkit.org/show_bug.cgi?id=95661 + + Reviewed by James Robinson. + + * tests/CCLayerTreeHostTest.cpp: + (CCLayerTreeHostTestContinuousCommit): + (WebKitTests::CCLayerTreeHostTestContinuousCommit::CCLayerTreeHostTestContinuousCommit): + (WebKitTests): + (WebKitTests::TEST_F): + (CCLayerTreeHostTestContinuousInvalidate): + (WebKitTests::CCLayerTreeHostTestContinuousInvalidate::CCLayerTreeHostTestContinuousInvalidate): + (CCLayerTreeHostTestContinuousAnimate): + (WebKitTests::CCLayerTreeHostTestContinuousAnimate::CCLayerTreeHostTestContinuousAnimate): + * tests/CCSchedulerStateMachineTest.cpp: + (WebCore::TEST): + +2012-09-07 Dominic Mazzoni <dmazzoni@google.com> + + AX: WebCore accessibility roles should be cross-platform + https://bugs.webkit.org/show_bug.cgi?id=94870 + + Reviewed by Chris Fleizach. + + Add a new accessibility role. + + * public/WebAccessibilityRole.h: + * src/AssertMatchingEnums.cpp: + +2012-09-07 Dominic Mazzoni <dmazzoni@google.com> + + AX: Chromium needs access to canvasHasFallbackContent + https://bugs.webkit.org/show_bug.cgi?id=96124 + + Reviewed by Chris Fleizach. + + Expose canvasHasFallbackContent on Chromium. + + * public/WebAccessibilityObject.h: + (WebAccessibilityObject): + * src/WebAccessibilityObject.cpp: + (WebKit::WebAccessibilityObject::canvasHasFallbackContent): + (WebKit): + +2012-09-07 Robert Kroeger <rjkroege@chromium.org> + + [chromium] Add touchscreen specific fling curve parametrization + https://bugs.webkit.org/show_bug.cgi?id=95997 + + Reviewed by James Robinson. + + Added a new set of fling curve parameters with a good feel for touchscreen + initiated flings. Renamed TouchpadFlingPlatformGestureCurve to + TouchFlingPlatformGestureCurve to better reflect that the class + can serve for both touchscreen and touchpad flings when appropriately + parametrized. Updated build files as necessary for the rename. + + No new tests - existing tests apply. + + + * tests/PlatformGestureCurveTest.cpp: To use the renamed curve constructor. + +2012-09-07 Dana Jansens <danakj@chromium.org> + + [chromium] Make RenderPass ids hold both generating layer id and an index + https://bugs.webkit.org/show_bug.cgi?id=95500 + + Reviewed by Adrienne Walker. + + * tests/CCLayerTreeHostImplTest.cpp: + * tests/CCLayerTreeHostTest.cpp: + * tests/CCRenderSurfaceTest.cpp: + * tests/CCRendererGLTest.cpp: + (FakeCCRendererClient::FakeCCRendererClient): + +2012-09-07 Joshua Bell <jsbell@chromium.org> + + [Chromium] IndexedDB: public WebKit API changes for consolidating two-phase connect + https://bugs.webkit.org/show_bug.cgi?id=96122 + + Reviewed by Adam Barth. + + Prep work for landing Chromium side of http://webkit.org/b/90411 - the IDBFactory + open() method now takes the "database callbacks", rather than being sent through + in a later call. + + Also, delete an obsolete method. + + * public/WebIDBFactory.h: + (WebKit): + (WebIDBFactory): Delete pre-version overload of open(). + (WebKit::WebIDBFactory::open): Add overload that takes WebIDBDatabaseCallbacks. + +2012-09-07 Sami Kyostila <skyostil@google.com> + + [Chromium] GraphicsLayerChromiumTest::applyScrollToScrollableArea() is failing + https://bugs.webkit.org/show_bug.cgi?id=95932 + + Reviewed by James Robinson. + + Give the FakeScrollableArea valid geometry to allow ScrollAnimatorMac to + properly scroll it. + + * tests/GraphicsLayerChromiumTest.cpp: + (WebKit::TEST_F): Re-enable the test. + +2012-09-07 James Robinson <jamesr@chromium.org> + + [chromium] Move some CC unit tests into correct gyp variable + https://bugs.webkit.org/show_bug.cgi?id=96048 + + Reviewed by Adrienne Walker. + + These tests are testing compositor internals, so they belong in the webkit_compositor_unittest_files variable. + + * WebKit.gypi: + +2012-09-07 James Robinson <jamesr@chromium.org> + + [chromium] Remove dead CCActiveGestureAnimation code and related classes + https://bugs.webkit.org/show_bug.cgi?id=96075 + + Reviewed by Adrienne Walker. + + Cuts out unnecessary boilerplate in PlatformGestureCurve evaluation for handling flings. WCIHI can easily + evaluate the curve itself without intermediate classes. + + * src/WebCompositorInputHandlerImpl.cpp: + (WebKit::WebCompositorInputHandlerImpl::handleGestureFling): + (WebKit::WebCompositorInputHandlerImpl::animate): + (WebKit::WebCompositorInputHandlerImpl::cancelCurrentFling): + * src/WebCompositorInputHandlerImpl.h: + (WebCore): + (WebCompositorInputHandlerImpl): + * tests/PlatformGestureCurveTest.cpp: + * tests/WebCompositorInputHandlerImplTest.cpp: + +2012-09-07 James Robinson <jamesr@chromium.org> + + [chromium] Clean up dependencies in ScrollbarLayerChromiumTest + https://bugs.webkit.org/show_bug.cgi?id=96052 + + Reviewed by Adrienne Walker. + + Fixes two minor but annoying dependencies in ScrollbarLayerChromiumTest: + *) WebScrollbarImpl.h is #included, but not use + *) The two-arg constructor of WebThemeScrollbarPainter is used, but this is guarded by #if + WEBKIT_IMPLEMENTATION. The no-arg c'tor does the right thing for this test. + + * tests/ScrollbarLayerChromiumTest.cpp: + (WebCore::TEST): + +2012-09-07 Dominic Mazzoni <dmazzoni@google.com> + + AX: ARIA spin button should support range value attributes + https://bugs.webkit.org/show_bug.cgi?id=96076 + + Reviewed by Chris Fleizach. + + Expose supportsRangeValue to simplify Chromium logic for when to + extract a value from a range. + + * public/WebAccessibilityObject.h: + (WebAccessibilityObject): + * src/WebAccessibilityObject.cpp: + (WebKit::WebAccessibilityObject::supportsRangeValue): + (WebKit): + +2012-09-07 Allan Sandfeld Jensen <allan.jensen@nokia.com> + + Simplify hitTestResultAtPoint and nodesFromRect APIs + https://bugs.webkit.org/show_bug.cgi?id=95720 + + Reviewed by Antonio Gomes. + + Update calls to new API. + + * src/ContextMenuClientImpl.cpp: + (WebKit::selectMisspelledWord): + * src/FrameLoaderClientImpl.cpp: + (WebKit::FrameLoaderClientImpl::dispatchDecidePolicyForNavigationAction): + * src/WebFrameImpl.cpp: + (WebKit::WebFrameImpl::characterIndexForPoint): + * src/WebPluginContainerImpl.cpp: + (WebKit::WebPluginContainerImpl::isRectTopmost): + * src/WebViewImpl.cpp: + (WebKit::WebViewImpl::handleMouseUp): + (WebKit::WebViewImpl::computeBlockBounds): + +2012-09-07 Ilya Tikhonovsky <loislo@chromium.org> + + Web Inspector: NMI: move WebCore specific code to separate header + https://bugs.webkit.org/show_bug.cgi?id=96101 + + Reviewed by Yury Semikhatsky. + + I extracted WebCore related code from MemoryInstrumentation.h to WebCoreMemoryInstrumentation.h + + * tests/MemoryInstrumentationTest.cpp: + +2012-09-07 Ian Vollick <vollick@chromium.org> + + [chromium] We should accelerate all transformations, except when we must blend matrices that cannot be decomposed. + https://bugs.webkit.org/show_bug.cgi?id=95855 + + Reviewed by James Robinson. + + Added the following unit tests: + AnimationTranslationUtilTest.createTransformAnimationWithNonDecomposableMatrix + AnimationTranslationUtilTest.createTransformAnimationWithNonInvertibleTransform + + * tests/AnimationTranslationUtilTest.cpp: + (WebKit::TEST): + (WebKit): + +2012-09-07 Allan Sandfeld Jensen <allan.jensen@nokia.com> + + X11 Global Selection + https://bugs.webkit.org/show_bug.cgi?id=88238 + + Reviewed by Tony Chang. + + Use new editor command for pasting global selection. + + * src/EditorClientImpl.cpp: + (WebKit::EditorClientImpl::supportsGlobalSelection): + * src/EditorClientImpl.h: + (EditorClientImpl): + * src/WebViewImpl.cpp: + (WebKit::WebViewImpl::handleMouseUp): + +2012-09-07 Yoshifumi Inoue <yosin@chromium.org> + + We should have a localized string of empty for date time field + https://bugs.webkit.org/show_bug.cgi?id=96081 + + Reviewed by Kent Tamura. + + This patch add a function for getting localized string of empty field + value of date time fields for accessibility inside + ENABLE_INPUT_TYPE_TIME_MULTIPLE_FIELDS. + + These functions will be used by derived classes of DateTimeFieldElement. + + Note: We'll rename ENABLE_INPUT_TYPE_MULTIPLE_FIELDS to generic name + to support "date", "datetime", "month" and "week" multiple fields input + UI. + + * src/LocalizedStrings.cpp: + (WebCore::AXDateTimeFieldEmptyValueText): Added. + +2012-09-06 Sheriff Bot <webkit.review.bot@gmail.com> + + Unreviewed, rolling out r127822. + http://trac.webkit.org/changeset/127822 + https://bugs.webkit.org/show_bug.cgi?id=96073 + + It broke compilation on chromium debug bots (Requested by + loislo on #webkit). + + * tests/CCDrawQuadTest.cpp: + (WebCore::TEST): + * tests/CCLayerTreeHostImplTest.cpp: + * tests/CCLayerTreeHostTest.cpp: + * tests/CCRenderPassTest.cpp: + (WebCore::TEST): + * tests/CCRenderSurfaceTest.cpp: + * tests/CCRendererGLTest.cpp: + (FakeCCRendererClient::FakeCCRendererClient): + +2012-09-06 Dana Jansens <danakj@chromium.org> + + [chromium] Make RenderPass ids hold both generating layer id and an index + https://bugs.webkit.org/show_bug.cgi?id=95500 + + Reviewed by Adrienne Walker. + + * tests/CCLayerTreeHostImplTest.cpp: + * tests/CCLayerTreeHostTest.cpp: + * tests/CCRenderSurfaceTest.cpp: + * tests/CCRendererGLTest.cpp: + (FakeCCRendererClient::FakeCCRendererClient): + +2012-09-06 Yoshifumi Inoue <yosin@chromium.org> + + We should have localized strings of date time fields for accessibility + https://bugs.webkit.org/show_bug.cgi?id=96050 + + Reviewed by Kent Tamura. + + This patch adds functions for getting localized strings of date time + fields for accessibility inside ENABLE_INPUT_TYPE_TIME_MULTIPLE_FIELDS. + + These functions will be used by derived classes of DateTimeFieldElement. + + Note: We'll rename ENABLE_INPUT_TYPE_MULTIPLE_FIELDS to generic name + to support "date", "datetime", "month" and "week" multiple fields input + UI. + + * src/LocalizedStrings.cpp: + (WebCore::AXAMPMFieldText): Added. + (WebCore::AXDayOfMonthFieldText): Added. + (WebCore::AXHourFieldText): Added. + (WebCore::AXMillisecondFieldText): Added. + (WebCore::AXMinuteFieldText): Added. + (WebCore::AXMonthFieldText): Added. + (WebCore::AXSecondFieldText): Added. + (WebCore::AXWeekOfYearFieldText): Added. + (WebCore::AXYearFieldText): Added. + +2012-09-06 James Robinson <jamesr@chromium.org> + + [chromium] Don't link cc in to WebKit.dll when use_libcc_for_compositor=1 + https://bugs.webkit.org/show_bug.cgi?id=96024 + + Reviewed by Adam Barth. + + When use_libcc_for_compositor=1, the implementation of the compositor guts are provided through PlatformSupport. + We don't need to link anything in to WebKit.dll. + + * WebKit.gyp: + +2012-09-06 James Robinson <jamesr@chromium.org> + + [chromium] Use WebCompositorSupport functions instead of WebCompositor statics + https://bugs.webkit.org/show_bug.cgi?id=96007 + + Reviewed by Adrienne Walker. + + Updates many tests to initialize / shutdown compositing with WebCompositorSupport. Adds a + WebCompositorInitializer RAII class to simplify this somewhat tedious process. + + * WebKit.gypi: + * public/WebCompositorInputHandlerClient.h: + (WebCompositorInputHandlerClient): + * src/WebCompositorInputHandlerImpl.h: + * src/WebViewImpl.cpp: + (WebKit::WebViewImpl::composite): + (WebKit::WebViewImpl::scheduleAnimation): + (WebKit::WebViewImpl::scheduleComposite): + * tests/CCPrioritizedTextureTest.cpp: + (WTF::CCPrioritizedTextureTest::CCPrioritizedTextureTest): + (WTF::CCPrioritizedTextureTest::~CCPrioritizedTextureTest): + (CCPrioritizedTextureTest): + * tests/CCRendererGLTest.cpp: + (CCRendererGLTest::CCRendererGLTest): + (CCRendererGLTest::SetUp): + (CCRendererGLTest): + * tests/CCTextureUpdateControllerTest.cpp: + * tests/CCThreadedTest.cpp: + (WebKitTests::CCThreadedTest::runTest): + * tests/Canvas2DLayerBridgeTest.cpp: + (Canvas2DLayerBridgeTest::fullLifecycleTest): + * tests/GraphicsLayerChromiumTest.cpp: + (WebKit::GraphicsLayerChromiumTest::GraphicsLayerChromiumTest): + (WebKit::GraphicsLayerChromiumTest::~GraphicsLayerChromiumTest): + * tests/LayerChromiumTest.cpp: + * tests/LinkHighlightTest.cpp: + (WebCore::TEST): + * tests/TextureLayerChromiumTest.cpp: + * tests/TiledLayerChromiumTest.cpp: + * tests/WebCompositorInitializer.h: Added. + (WebKit): + (WebKitTests): + (WebCompositorInitializer): + (WebKitTests::WebCompositorInitializer::WebCompositorInitializer): + (WebKitTests::WebCompositorInitializer::~WebCompositorInitializer): + * tests/WebCompositorInputHandlerImplTest.cpp: + (WebKit::TEST): + (WebKit::WebCompositorInputHandlerImplTest::WebCompositorInputHandlerImplTest): + (WebCompositorInputHandlerImplTest): + * tests/WebLayerTest.cpp: + * tests/WebLayerTreeViewTest.cpp: + +2012-09-06 Sheriff Bot <webkit.review.bot@gmail.com> + + Unreviewed. Rolled DEPS. + + * DEPS: + +2012-09-06 Alec Flett <alecflett@chromium.org> + + IndexedDB: make IDBKeyPath's string and array constructors explicit + https://bugs.webkit.org/show_bug.cgi?id=96004 + + Reviewed by Tony Chang. + + Fix test to use explicit constructor for IDBKeyPath. + + * tests/IDBDatabaseBackendTest.cpp: + +2012-09-06 Adrienne Walker <enne@google.com> + + [chromium] Remove GraphicsContext references from ContentLayerChromiumTest + https://bugs.webkit.org/show_bug.cgi?id=96002 + + Reviewed by James Robinson. + + This is a compositor unit test, so it shouldn't reference things + outside of the compositor like GraphicsContext. The + OpaqueRectTrackingContentLayerDelegateTest already tests opaque + tracking right at the time of paint. This test is about verifying that + transformed canvases work properly, so can just fake the opaque rect + coming back from the paint. + + * tests/ContentLayerChromiumTest.cpp: + (WebKit::MockContentLayerChromiumClient::MockContentLayerChromiumClient): + (WebKit::TEST): + +2012-09-06 Jeff Timanus <twiz@chromium.org> + + [Chromium] Remove contentsScale and related logic from GraphicsLayerChromium. + https://bugs.webkit.org/show_bug.cgi?id=95094 + + Reviewed by Adrienne Walker. + + In the short term, the page-scale logic is to be unified in the CCLayerTreeHost class. This is a first pass to + try to remove the page-scale logic from GraphicsLayerChromium. This change should be a no-op in terms of + contentsScale behaviour. + This change exports the disregardsPageScale() set of functions from WebContentLayer to LayerChromium. + + * src/NonCompositedContentHost.cpp: + (WebKit::NonCompositedContentHost::NonCompositedContentHost): + Inform the layer associated with the NCCH that it is to disregard the page scale factor. + Also remove now unused m_deviceScaleFactor and associated routines. + (WebKit::NonCompositedContentHost::setViewport): + * src/NonCompositedContentHost.h: + (NonCompositedContentHost): + * src/WebContentLayerImpl.cpp: + (WebKit::WebContentLayerImpl::setBoundsContainPageScale): + (WebKit): + (WebKit::WebContentLayerImpl::boundsContainPageScale): + * src/WebContentLayerImpl.h: + (WebContentLayerImpl): + * src/WebViewImpl.cpp: + (WebKit::WebViewImpl::updateLayerTreeViewport): + * tests/CCLayerTreeHostTest.cpp: + (NoScaleContentLayerChromium): + (WebKitTests::NoScaleContentLayerChromium::create): + (WebKitTests::NoScaleContentLayerChromium::NoScaleContentLayerChromium): + (WebKitTests): + (WebKitTests::CCLayerTreeHostTestDeviceScaleFactorScalesViewportAndLayers::CCLayerTreeHostTestDeviceScaleFactorScalesViewportAndLayers): + Rebaselined to correspond to the new behaviour. Because the layers are now assigned a contentsScale, the + scale on the draw transforms remain identity. + * tests/GraphicsLayerChromiumTest.cpp: + (WebKit): Remove now obsolete unit-test. + +2012-09-06 Adrienne Walker <enne@google.com> + + [chromium] Remove Scrollbar/Settings dependencies from ScrollbarLayerChromiumTest + https://bugs.webkit.org/show_bug.cgi?id=95994 + + Reviewed by James Robinson. + + This compositor test shouldn't depend on code outside the compositor. + + * tests/ScrollbarLayerChromiumTest.cpp: + (WebCore::FakeWebScrollbar::create): + (FakeWebScrollbar): + (WebCore::TEST): + +2012-09-06 James Robinson <jamesr@chromium.org> + + [chromium] Put chromium implementations of WTF symbols in separate static library + https://bugs.webkit.org/show_bug.cgi?id=95933 + + Reviewed by Adam Barth. + + A few symbols from WTF are implemented in chromium on top of the chromium WebKit Platform API. These + implementation files are in WebKit/chromium/src and currently link into the webkit target, which in the + component build is a DLL. This moves these files into a static library that webkit depends on so targets can + statically link in wtf and these support files without depending directly on webkit. + + * WebKit.gyp: + +2012-09-06 Iain Merrick <husky@chromium.org> + + [chromium] Add WebFrame::moveSelectionStart, moveSelectionEnd, moveCaret + https://bugs.webkit.org/show_bug.cgi?id=93998 + + Reviewed by Adam Barth. + + These provide the same functionality selectRange(WebPoint, WebPoint), + with finer-grained control needed on the Android platform. By passing + allowCollapsedSelection=false, we can ensure the selection stays at + least one character wide. + + I have reimplemented WebFrameImpl::selectRange(WebPoint, WebPoint) by + calling the new methods. The existing test passes, and I've added new + tests for the new methods. + + * public/WebFrame.h: + (WebFrame): + * src/WebFrameImpl.cpp: + (WebKit::WebFrameImpl::selectRange): + (WebKit): + (WebKit::WebFrameImpl::moveSelectionStart): + (WebKit::WebFrameImpl::moveSelectionEnd): + (WebKit::WebFrameImpl::moveCaret): + * src/WebFrameImpl.h: + (WebFrameImpl): + * tests/WebFrameTest.cpp: + * tests/data/text_selection.html: Added. + +2012-09-06 Robert Kroeger <rjkroege@chromium.org> + + [chromium] Enable different fling behaviour for touchscreen and touchpad + https://bugs.webkit.org/show_bug.cgi?id=95756 + + Reviewed by James Robinson. + + Add support for a flag on WebGestureEvents that differentiates GestureFlingStart + events by their originating device and pass this flag to a factory that produces + different device specific fling curves based on the value of the flag. + + * public/WebActiveWheelFlingParameters.h: + (WebActiveWheelFlingParameters): Store source device for transfer to mainthread. + (WebKit::WebActiveWheelFlingParameters::WebActiveWheelFlingParameters): + * public/WebInputEvent.h: Added source device flag to WebGestureEvent. + * src/WebCompositorInputHandlerImpl.cpp: + (WebKit::WebCompositorInputHandlerImpl::handleGestureFling): Use factory to + obtain device-appropriate fling curve. + * src/WebViewImpl.cpp: + (WebKit::WebViewImpl::handleGestureEvent): Use factory to obtain device-appropriate + fling curve. + (WebKit::WebViewImpl::transferActiveWheelFlingAnimation): + +2012-09-05 Sam Weinig <sam@webkit.org> + + Part 2 of removing PlatformString.h, remove PlatformString.h + https://bugs.webkit.org/show_bug.cgi?id=95931 + + Reviewed by Adam Barth. + + Remove PlatformString.h + + * src/ContextMenuClientImpl.cpp: + * src/EditorClientImpl.cpp: + * src/InspectorFrontendClientImpl.cpp: + * src/LocalFileSystemChromium.cpp: + * src/SpeechInputClientImpl.cpp: + * src/SpeechRecognitionClientProxy.h: + * src/WebDevToolsAgentImpl.cpp: + * src/WebDevToolsFrontendImpl.cpp: + * src/WebDevToolsFrontendImpl.h: + * src/WebEntities.h: + * src/WebFrameImpl.h: + * src/WorkerFileSystemCallbacksBridge.h: + * tests/UniscribeHelperTest.cpp: + +2012-09-06 Dana Jansens <danakj@chromium.org> + + [chromium] Add a customized copy() method to CCRenderPassDrawQuad + https://bugs.webkit.org/show_bug.cgi?id=95871 + + Reviewed by Adrienne Walker. + + * tests/CCDrawQuadTest.cpp: + (WebCore): + (WebCore::TEST): + +2012-09-06 Ilya Tikhonovsky <loislo@chromium.org> + + Unreviewed Web Inspector: test fix. + + * tests/MemoryInstrumentationTest.cpp: + (StringOwnerInstrumented): + (WebCore::StringOwnerInstrumented::StringOwnerInstrumented): + (WebCore::StringOwnerInstrumented::reportMemoryUsage): + (WebCore): + (WebCore::TEST): + +2012-09-06 Ilya Tikhonovsky <loislo@chromium.org> + + Web Inspector: NMI: switch to hierarchical identifiers of MemoryBlockTypes and use these identifiers in protocol. + https://bugs.webkit.org/show_bug.cgi?id=95957 + + Reviewed by Yury Semikhatsky. + + Now when we use string identifiers as MemoryObjectType we can use them as the identifiers for the protocol + instead of MemoryBlockNames hardcoded in InspectorMemoryAgent.. + At a later stage, when each memory type is counted in MemoryInstrumentation + we will build the blocks hierarchy for the front-end automatically. + + * tests/MemoryInstrumentationTest.cpp: + (WebCore::InstrumentedUndefined::InstrumentedUndefined): + (WebCore::InstrumentedUndefined::reportMemoryUsage): + (WebCore::InstrumentedDOM::InstrumentedDOM): + (WebCore::InstrumentedDOM::reportMemoryUsage): + (InstrumentedDOM): + (WebCore::TEST): + +2012-09-06 Kenichi Ishibashi <bashi@chromium.org> + + [Chromium] Win build fix attempt after r127715 + + * tests/CCRenderPassTest.cpp: + (WebCore::TEST): + +2012-09-06 Peter Beverloo <peter@chromium.org> + + Unreviewed. Rolled DEPS. + + * DEPS: + +2012-09-06 Dana Jansens <danakj@chromium.org> + + [chromium] Add a copy() method to CCRenderPass + https://bugs.webkit.org/show_bug.cgi?id=95485 + + Reviewed by Adrienne Walker. + + * WebKit.gypi: + * tests/CCRenderPassTest.cpp: Added. + (CCTestRenderPass): + (CCTestRenderPass::quadList): + (CCTestRenderPass::sharedQuadStateList): + (CCRenderPassSize): + (TEST): + +2012-09-06 Peter Beverloo <peter@chromium.org> + + [Chromium] Chromium Mac build fix after revision r127711 + https://bugs.webkit.org/show_bug.cgi?id=95958 + + Unreviewed build fix. + + This is a clear typo in the source file, so changing the function to + call locationModifiersFromWindowsKeyCode instead. + + * src/mac/WebInputEventFactory.mm: + (WebKit::WebInputEventFactory::keyboardEvent): + +2012-09-06 Raymes Khoury <raymes@chromium.org> + + Added modifiers to distinguish between left/right Shift/Ctrl/Alt in WebInputEvents + https://bugs.webkit.org/show_bug.cgi?id=94142 + + Reviewed by Tony Chang. + + Previously we distinguished between left/right Shift/Ctrl/Alt in + WebInputEvents by using the location-specific virtual keycodes (e.g. + VK_LSHIFT instead of VK_SHIFT. However, the Windows API for key events + always returns the non-locational version (e.g. VK_SHIFT). + Furthermore, KeyboardEvent also returns + non-locational keycodes and separates the location information which + matches the behavior described in the DOM3 + spec http://www.w3.org/TR/DOM-Level-3-Events/#events-keyboardevents. We + should be consistent with this in our representation of key events. + This patch changes WebInputEvents so they always store the + non-locational keycode and location information is stored in + modifiers. Since this only changes internal representation, no new + tests are added. + + This patch also ensures that when KeyboardEvents are converted back to + WebInputEvents location information is preserved (which was not + happening before). This is important so that key location information + is passed on to plugins. A unittest is added for this. + + * WebKit.gypi: + * public/WebInputEvent.h: + (WebKeyboardEvent): + * src/WebInputEvent.cpp: + (WebKit): + (WebKit::WebKeyboardEvent::windowsKeyCodeWithoutLocation): + (WebKit::WebKeyboardEvent::locationModifiersFromWindowsKeyCode): + * src/WebInputEventConversion.cpp: + (WebKit::PlatformKeyboardEventBuilder::PlatformKeyboardEventBuilder): + (WebKit::WebKeyboardEventBuilder::WebKeyboardEventBuilder): + * src/android/WebInputEventFactory.cpp: + (WebKit::WebInputEventFactory::keyboardEvent): + * src/gtk/WebInputEventFactory.cpp: + (WebKit::WebInputEventFactory::keyboardEvent): + * src/mac/WebInputEventFactory.mm: + (WebKit::WebInputEventFactory::keyboardEvent): + * src/win/WebInputEventFactory.cpp: + (WebKit::getLocationModifier): + (WebKit::WebInputEventFactory::keyboardEvent): + * tests/WebInputEventConversionTest.cpp: Added. + +2012-09-06 Adam Barth <abarth@webkit.org> + + Chromium should call restrictScaleFactorToInitialScaleIfNotUserScalable unless/until userScalable is supported directly. + https://bugs.webkit.org/show_bug.cgi?id=91110 + + Reviewed by Tony Chang. + + Prior to this patch, we were ignoring the user-scalable property of + viewport meta tags. This patch enforces the user-scalable property by + claming the minimum-scale and maximum-scale values, effectively + preventing user scaling. This approach isn't perfect, as discussed in + https://bugs.webkit.org/show_bug.cgi?id=70609, but it is an improvement + over the status quo. + + This approach is also used by EFL, GTK, and Qt. + + * src/ChromeClientImpl.cpp: + (WebKit::ChromeClientImpl::dispatchViewportPropertiesDidChange): + +2012-09-05 Dana Jansens <danakj@chromium.org> + + [chromium] Add a copy() method to CCDrawQuad and CCSharedQuadState + https://bugs.webkit.org/show_bug.cgi?id=95374 + + Reviewed by Adrienne Walker. + + * WebKit.gypi: + * tests/CCDrawQuadTest.cpp: Added. + (TEST): + (createSharedQuadState): + (compareDrawQuad): + +2012-09-05 Kenichi Ishibashi <bashi@chromium.org> + + [Chromium] Unreviewed gardening + + * tests/GraphicsLayerChromiumTest.cpp: + (WebKit::TEST_F): Disabled applyScrollToScrollableArea() + +2012-09-05 Tony Chang <tony@chromium.org> + + [chromium] Remove dependency on webkit_user_agent + https://bugs.webkit.org/show_bug.cgi?id=95886 + + Reviewed by Adam Barth. + + The code isn't used by webkit_unit_tests. + + * WebKitUnitTests.gyp: + +2012-09-05 Nate Chapin <japhet@chromium.org> + + Test for https://bugs.webkit.org/show_bug.cgi?id=91685 + + Reviewed by Adam Barth. + + * tests/WebFrameTest.cpp: + +2012-09-05 Rick Byers <rbyers@chromium.org> + + Use new type-specific WebGestureEvent fields + https://bugs.webkit.org/show_bug.cgi?id=95573 + + Reviewed by James Robinson. + + Chromium has been updated to store gesture-type specific details in the + new WebGestureEvent fields (crrev.com/152508, crrev.com/154815 and + crrev.com/154959), so we can now rely on them. + + * src/WebCompositorInputHandlerImpl.cpp: + Update the compositor scroll, pinch and fling handling to use these new fields. + (WebKit::WebCompositorInputHandlerImpl::handleInputEventInternal): + (WebKit::WebCompositorInputHandlerImpl::handleGestureFling): + * src/WebInputEventConversion.cpp: + Update PlatformGestureEvent/WebGestureEvent conversion to use the new + fields, storing into the existing overloaded PlatformGestureEvent + fields (which will be cleaned up in my next CL). + (WebKit::PlatformGestureEventBuilder::PlatformGestureEventBuilder): + (WebKit::WebGestureEventBuilder::WebGestureEventBuilder): + * src/WebViewImpl.cpp: + (WebKit::WebViewImpl::handleGestureEvent): + Update fling scrolling implementation for correct location of velocity. + * tests/WebCompositorInputHandlerImplTest.cpp: + (WebKit::TEST_F): + Update tests to use the new fields. + + +2012-09-05 James Robinson <jamesr@chromium.org> + + [chromium] Test WebSolidColorLayer in WebLayerTest.Client unit test + https://bugs.webkit.org/show_bug.cgi?id=95819 + + Reviewed by Adam Barth. + + This unit test doesn't do all that much, but it does verify that WebSolidColorLayer doesn't completely explode + upon use and also makes sure that the WebSolidColorLayer::create() symbol is referenced and not dropped from + webkit.dll in the component build. + + * tests/WebLayerTest.cpp: + +2012-09-05 Victoria Kirst <vrk@chromium.org> + + Add the duration attribute to MediaSource + https://bugs.webkit.org/show_bug.cgi?id=95149 + + Reviewed by Eric Carlson. + + Add support for the duration attribute recently added to the MediaSource spec. + http://dev.w3.org/html5/spec/media-elements.html#dom-media-duration + + * public/WebMediaPlayer.h: + (WebKit::WebMediaPlayer::sourceSetDuration): Add empty definition. + * src/WebMediaPlayerClientImpl.cpp: + (WebKit::WebMediaPlayerClientImpl::sourceSetDuration): Forward call to m_webMediaPlayer. + (WebKit): + * src/WebMediaPlayerClientImpl.h: + (WebMediaPlayerClientImpl): + +2012-09-05 Mihai Parparita <mihaip@chromium.org> + + [Chromium] history.{push,replace}State should no longer be V8EnabledAtRuntime + https://bugs.webkit.org/show_bug.cgi?id=95865 + + Reviewed by Darin Fisher. + + Make WebRuntimeFeatures::{enablePushState,isPushStateEnabled} into + no-ops. + + * public/WebRuntimeFeatures.h: + (WebRuntimeFeatures): + * src/WebRuntimeFeatures.cpp: + (WebKit::WebRuntimeFeatures::enablePushState): + (WebKit::WebRuntimeFeatures::isPushStateEnabled): + +2012-09-05 Mark Pilgrim <pilgrim@chromium.org> + + [Chromium] Remove getRenderStyleForStrike from PlatformSupport + https://bugs.webkit.org/show_bug.cgi?id=95363 + + Reviewed by Adam Barth. + + Part of a refactoring series. See tracking bug 82948. + + * public/linux/WebFontInfo.h: + * public/linux/WebFontRenderStyle.h: + * src/PlatformSupport.cpp: + (WebCore): + +2012-09-05 Ilya Tikhonovsky <loislo@chromium.org> + + Unreviewed: WebInspector: remove accidentally committed speed test. + + * tests/MemoryInstrumentationTest.cpp: + +2012-09-05 Sami Kyostila <skyostil@chromium.org> + + [chromium] Wire up scrollable sublayers in ScrollingCoordinatorChromium + https://bugs.webkit.org/show_bug.cgi?id=95679 + + Reviewed by James Robinson. + + Introduce WebLayerScrollClient for getting notified about scroll events targeting a WebLayer. + + * src/WebLayerImpl.cpp: + (WebKit::WebLayerImpl::setMaxScrollPosition): + (WebKit): + (WebKit::WebLayerImpl::setScrollClient): + (WebKit::WebLayerImpl::scrollBy): + * src/WebLayerImpl.h: + (WebLayerImpl): + * tests/CCLayerTreeHostTest.cpp: + * tests/GraphicsLayerChromiumTest.cpp: + (MockScrollableArea): + (WebKit): + (WebKit::TEST_F): + * tests/WebLayerTest.cpp: + +2012-09-05 Ilya Tikhonovsky <loislo@chromium.org> + + Web Inspector: NMI: extract MemoryObjectType constants from MemoryInstrumentation. + https://bugs.webkit.org/show_bug.cgi?id=95850 + + Reviewed by Yury Semikhatsky. + + I'd like to extract MemoryObjectTypes into separate classes. + After that we will be able to move core NMI instrumentation code to WTF. + + * tests/MemoryInstrumentationTest.cpp: + (WebCore::Instrumented::reportMemoryUsage): + (WebCore::InstrumentedRefPtr::reportMemoryUsage): + (WebCore::InstrumentedWithOwnPtr::reportMemoryUsage): + (WebCore::InstrumentedOther::reportMemoryUsage): + (WebCore::InstrumentedDOM::reportMemoryUsage): + (WebCore::TEST): + (WebCore::NonVirtualInstrumented::reportMemoryUsage): + +2012-09-05 Peter Beverloo <peter@chromium.org> + + Unreviewed, rolling out r127590. + http://trac.webkit.org/changeset/127590 + + Broke the Chromium bots because of a compile error in the compositor. + + * DEPS: + +2012-09-05 Peter Beverloo <peter@chromium.org> + + Unreviewed. Rolled DEPS. + + * DEPS: + +2012-09-04 Ilya Tikhonovsky <loislo@chromium.org> + + Web Inspector: NMI: replace ObjectType enum with static const char* string identifiers. + https://bugs.webkit.org/show_bug.cgi?id=95739 + + Reviewed by Yury Semikhatsky. + + When we go deeper into different parts of browser like skia, chromium itself etc. + we can't use a single enum for all reported object types. + The current idea is to use plain simple strings as ObjectType identifiers. + In the future patches we will extract these identifiers into separate class or namespace + and and split it between components. + + * tests/MemoryInstrumentationTest.cpp: + (WebCore::TEST): + (WebCore): + +2012-09-04 Keishi Hattori <keishi@webkit.org> + + Move PagePopupClient implementation for input[type=date] to Chromium WebKit layer + https://bugs.webkit.org/show_bug.cgi?id=95681 + + Reviewed by Kent Tamura. + + * WebKit.gyp: + * src/ChromeClientImpl.cpp: + (WebKit): + (WebKit::ChromeClientImpl::openDateTimeChooser): + * src/ChromeClientImpl.h: + (WebCore): + (ChromeClientImpl): + * src/DateTimeChooserImpl.cpp: Added. + (WebKit): + (WebKit::DateTimeChooserImpl::DateTimeChooserImpl): + (WebKit::DateTimeChooserImpl::~DateTimeChooserImpl): + (WebKit::DateTimeChooserImpl::endChooser): + (WebKit::DateTimeChooserImpl::contentSize): + (WebKit::DateTimeChooserImpl::writeDocument): + (WebKit::DateTimeChooserImpl::setValueAndClosePopup): + (WebKit::DateTimeChooserImpl::didClosePopup): + * src/DateTimeChooserImpl.h: + (WebCore): + (WebKit): + (DateTimeChooserImpl): + +2012-09-04 Adam Barth <abarth@chromium.org> + + Make chromium-linux build without WTF_DEPRECATED_STRING_OPERATORS + https://bugs.webkit.org/show_bug.cgi?id=95798 + + Reviewed by Eric Seidel. + + * src/WebAccessibilityObject.cpp: + (WebKit::WebAccessibilityObject::keyboardShortcut): + - Remove use of WTF::String::operator+= + * src/WebPageSerializerImpl.cpp: + - Whitelist use of WTF::String::operator+=. Remove this use will take + some more careful thought. + +2012-09-04 Alec Flett <alecflett@chromium.org> + + IndexedDB: remove final createIndex backend glue + https://bugs.webkit.org/show_bug.cgi?id=95385 + + Reviewed by Adam Barth. + + Remove chromium glue for old key-generation code. + + * public/WebIDBKey.h: + (WebIDBKey): + * src/WebIDBKey.cpp: + +2012-09-04 Tien-Ren Chen <trchen@chromium.org> + + [chromium] Rename WebViewClient::handleDisambiguationPopup + https://bugs.webkit.org/show_bug.cgi?id=95529 + + Reviewed by Adam Barth. + + Rename it to something more descriptive (WebViewClient::didTapMultipleTargets) before people start using it. + + * public/WebViewClient.h: + (WebKit::WebViewClient::didTapMultipleTargets): + * src/WebViewImpl.cpp: + (WebKit::WebViewImpl::handleGestureEvent): + * tests/WebFrameTest.cpp: + +2012-09-03 Tao Bai <michaelbai@chromium.org> + + Added ANDROID_GDBSERVER definition for Ant + https://bugs.webkit.org/show_bug.cgi?id=95265 + + Reviewed by Adam Barth. + + ANDROID_GDBSERVER will replace ANDROID_TOOLCHAIN, because the ANDROID_TOOLCHAIN + is only used for finding the gdbserver. + + * WebKitUnitTests.gyp: + +2012-09-03 Peter Beverloo <peter@chromium.org> + + Unreviewed. Rolled DEPS. + + * DEPS: + +2012-09-03 Tommy Widenflycht <tommyw@google.com> + + MediaStream API: Add Ice-related functionality to RTCPeerConnection + https://bugs.webkit.org/show_bug.cgi?id=95565 + + Reviewed by Adam Barth. + + * src/AssertMatchingEnums.cpp: + +2012-09-01 James Robinson <jamesr@chromium.org> + + Unreviewed chromium buildfix when use_libcc_for_compositor=1 + + This gyp target was renamed downstream. + + * WebKit.gyp: + +2012-09-01 Tommy Widenflycht <tommyw@google.com> + + MediaStream API: Add MediaStream management to RTCPeerConnection + https://bugs.webkit.org/show_bug.cgi?id=95543 + + Reviewed by Adam Barth. + + * src/AssertMatchingEnums.cpp: + +2012-08-31 Koji Ishii <kojiishi@gmail.com> + + Glyphs in vertical text tests are rotated 90 degrees clockwise on Chromium Windows + https://bugs.webkit.org/show_bug.cgi?id=51450 + + Reviewed by Tony Chang. + + When writing-mode is vertical-*, Chromium Win does not render glyphs correctly. + http://dev.w3.org/csswg/css3-writing-modes/#writing-mode + Glyphs are now drawn in the correct orientation, regardless of the leading '@' in the font name, + and vertical alternate glyphs (OpenType 'vert' feature) is not enabled. + CJK characters drawn at wrong baseline position is also fixed. + In addition, fontMetrics().unitsPerEm() and SimpleFontData::platformBoundsForGlyph() were empty + in Chromium Win but they were implemented because they were needed to draw vertical flow correctly. + + Note that this patch does not address issues in vertical flow for complex code path. + The issue is under discussion with Google people and it will not be fixed in short term. + + Existing tests in fast/writing-mode/* are enabled in LayoutTests/platform/chromium/TestExpectations. + + * features.gypi: ENABLE_OPENTYPE_VERTICAL=1. + +2012-08-31 W. James MacLean <wjmaclean@chromium.org> + + [chromium] Make link highlighter use same node selection criteria as Chromium for Android. + https://bugs.webkit.org/show_bug.cgi?id=95371 + + Reviewed by James Robinson. + + This CL brings the selection criteria for link highlight targets into alignment with Chromium for Android. + + * src/WebViewImpl.cpp: + (WebKit::highlightConditions): + (WebKit::WebViewImpl::bestTouchLinkNode): + * tests/data/test_touch_link_highlight.html: + +2012-08-31 James Robinson <jamesr@chromium.org> + + [chromium] Consolidate geometry unit testing functions for cc + https://bugs.webkit.org/show_bug.cgi?id=95526 + + Reviewed by Julien Chaffraix. + + This consolidates geometry equality (rects, matrices) in CCGeometryUtils and removes a few duplicate macros for + testing rect equality. + + * WebKit.gypi: + * tests/CCDamageTrackerTest.cpp: + (WebKitTests::TEST_F): + * tests/CCGeometryTestUtils.cpp: Added. + (WebKitTests): + (WebKitTests::ExpectTransformationMatrixEq): + * tests/CCGeometryTestUtils.h: Renamed from Source/WebKit/chromium/tests/CCLayerTreeTestCommon.h. + (WebKit): + (WebKitTests): + * tests/CCLayerTreeHostTest.cpp: + * tests/CCMathUtilTest.cpp: + (WebKit::TEST): + * tests/TiledLayerChromiumTest.cpp: + +2012-08-31 James Robinson <jamesr@chromium.org> + + [chromium] Clean up Web*Layer initialization paths + https://bugs.webkit.org/show_bug.cgi?id=95523 + + Reviewed by Darin Fisher. + + Constructing a Web*LayerImpl (or other compositor type) wrapper shouldn't require knowledge of the underyling + implementation. Also normalizes naming conventions in these files. + + * src/WebAnimationImpl.cpp: + (WebKit::WebAnimation::create): + (WebKit::WebAnimationImpl::WebAnimationImpl): + * src/WebAnimationImpl.h: + (WebAnimationImpl): + * src/WebContentLayerImpl.cpp: + (WebKit::WebContentLayerImpl::WebContentLayerImpl): + (WebKit::WebContentLayerImpl::~WebContentLayerImpl): + (WebKit::WebContentLayerImpl::layer): + (WebKit::WebContentLayerImpl::setDoubleSided): + (WebKit::WebContentLayerImpl::setContentsScale): + (WebKit::WebContentLayerImpl::setUseLCDText): + (WebKit::WebContentLayerImpl::setDrawCheckerboardForMissingTiles): + * src/WebContentLayerImpl.h: + (WebContentLayerImpl): + * src/WebFloatAnimationCurveImpl.cpp: + (WebKit::WebFloatAnimationCurve::create): + (WebKit::WebFloatAnimationCurveImpl::WebFloatAnimationCurveImpl): + * src/WebFloatAnimationCurveImpl.h: + (WebFloatAnimationCurveImpl): + * src/WebIOSurfaceLayerImpl.cpp: + (WebKit::WebIOSurfaceLayer::create): + (WebKit::WebIOSurfaceLayerImpl::WebIOSurfaceLayerImpl): + * src/WebIOSurfaceLayerImpl.h: + (WebIOSurfaceLayerImpl): + * src/WebImageLayerImpl.cpp: + (WebKit::WebImageLayer::create): + (WebKit::WebImageLayerImpl::WebImageLayerImpl): + * src/WebImageLayerImpl.h: + (WebImageLayerImpl): + * src/WebLayerImpl.cpp: + (WebKit::WebLayer::create): + (WebKit): + (WebKit::WebLayerImpl::WebLayerImpl): + * src/WebLayerImpl.h: + (WebLayerImpl): + * src/WebScrollbarLayerImpl.cpp: + (WebKit::WebScrollbarLayer::create): + (WebKit::WebScrollbarLayerImpl::WebScrollbarLayerImpl): + * src/WebScrollbarLayerImpl.h: + (WebScrollbarLayerImpl): + * src/WebSolidColorLayerImpl.cpp: + (WebKit::WebSolidColorLayer::create): + (WebKit::WebSolidColorLayerImpl::WebSolidColorLayerImpl): + * src/WebSolidColorLayerImpl.h: + (WebSolidColorLayerImpl): + * src/WebTransformAnimationCurveImpl.cpp: + (WebKit::WebTransformAnimationCurve::create): + (WebKit::WebTransformAnimationCurveImpl::WebTransformAnimationCurveImpl): + * src/WebTransformAnimationCurveImpl.h: + (WebTransformAnimationCurveImpl): + * src/WebVideoLayerImpl.cpp: + (WebKit::WebVideoLayer::create): + (WebKit::WebVideoLayerImpl::WebVideoLayerImpl): + * src/WebVideoLayerImpl.h: + (WebVideoLayerImpl): + +2012-08-31 Tony Chang <tony@chromium.org> + + Remove ENABLE_CSS3_FLEXBOX compile time flag + https://bugs.webkit.org/show_bug.cgi?id=95382 + + Reviewed by Ojan Vafai. + + Everyone is already enabling this by default and the spec has stablized. + + * features.gypi: + +2012-08-31 Christopher Cameron <ccameron@chromium.org> + + [chromium] Add main versus impl thread asserts + https://bugs.webkit.org/show_bug.cgi?id=95596 + + Reviewed by James Robinson. + + Add asserts to prioritized texture manager that specify that a + function be called on the main or impl thread. + + Add debug signs that the main thread is blocked to the threaded + proxy. + + Add a mechanism to simultaneously set the thread to the impl thread + and indicate that the main thread is blocked. + + Update tests that hit asserts in the prioritized texture manager to + set their impl thread and main thread blocked state correctly. + + * tests/CCPrioritizedTextureTest.cpp: + (WTF::CCPrioritizedTextureTest::CCPrioritizedTextureTest): + (WTF::CCPrioritizedTextureTest::~CCPrioritizedTextureTest): + (WTF::CCPrioritizedTextureTest::validateTexture): + (WTF::TEST_F): + * tests/TiledLayerChromiumTest.cpp: + +2012-08-30 James Robinson <jamesr@chromium.org> + + [chromium] Put compositor client interfaces in separate headers, normalize naming + https://bugs.webkit.org/show_bug.cgi?id=95522 + + Reviewed by Adam Barth. + + * src/WebContentLayerImpl.cpp: + (WebKit::WebContentLayerImpl::~WebContentLayerImpl): + * src/WebContentLayerImpl.h: + (WebContentLayerImpl): + * src/WebExternalTextureLayerImpl.h: + * src/WebLayerTreeViewImpl.h: + (WebCore): + * tests/CCLayerTreeHostCommonTest.cpp: + * tests/CCLayerTreeHostTest.cpp: + (WebKitTests::ContentLayerChromiumWithUpdateTracking::create): + (WebKitTests::ContentLayerChromiumWithUpdateTracking::ContentLayerChromiumWithUpdateTracking): + (WebKitTests::CCLayerTreeHostTestDeviceScaleFactorScalesViewportAndLayers::CCLayerTreeHostTestDeviceScaleFactorScalesViewportAndLayers): + (WebKitTests::CCLayerTreeHostTestAtomicCommit::CCLayerTreeHostTestAtomicCommit): + (WebKitTests::CCLayerTreeHostTestAtomicCommitWithPartialUpdate::CCLayerTreeHostTestAtomicCommitWithPartialUpdate): + (WebKitTests::CCLayerTreeHostTestLostContextWhileUpdatingResources::CCLayerTreeHostTestLostContextWhileUpdatingResources): + (CCLayerTreeHostTestLostContextWhileUpdatingResources): + * tests/ContentLayerChromiumTest.cpp: + (WebKit::MockContentLayerChromiumClient::MockContentLayerChromiumClient): + (WebKit::TEST): + +2012-08-31 Gavin Peters <gavinp@chromium.org> + + [chromium] DEPS roll with a test skip. + https://bugs.webkit.org/show_bug.cgi?id=95601 + + Unreviewed gardening & DEPS roll. + + + fast/frames/cached-frame-counter.html was never the most stable test, and now it's failing on more platforms. Marking it flaky, along with a DEPS roll (earlier attempts at the DEPS roll failed on this) + + * DEPS: + +2012-08-31 Gavin Peters <gavinp@chromium.org> + + [chromium] Disable WebViewTest.AutoResizeMinimumSize + https://bugs.webkit.org/show_bug.cgi?id=95571 + + Unreviewed gardening. + + Disabling this test since it started failing in build 17225, see http://build.chromium.org/p/chromium.webkit/builders/Webkit%20Win/builds/17247 for instance. Will shortly file bug to re-enable this. + + * tests/WebViewTest.cpp: + +2012-08-30 James Robinson <jamesr@chromium.org> + + [chromium] Revert WebCompositorSupport to raw ptrs, make dtor protected + https://bugs.webkit.org/show_bug.cgi?id=95520 + + Reviewed by Darin Fisher. + + Adopt the return value of WebCompositorSupport explicitly. + + * src/LinkHighlight.cpp: + (WebKit::LinkHighlight::LinkHighlight): + (WebKit::LinkHighlight::startHighlightAnimation): + * src/WebMediaPlayerClientImpl.cpp: + (WebKit::WebMediaPlayerClientImpl::readyStateChanged): + * src/WebPluginContainerImpl.cpp: + (WebKit::WebPluginContainerImpl::setBackingTextureId): + (WebKit::WebPluginContainerImpl::setBackingIOSurfaceId): + +2012-08-30 James Robinson <jamesr@chromium.org> + + [chromium] Make webkit_compositor specific unit test compilation conditional on gyp var + https://bugs.webkit.org/show_bug.cgi?id=95401 + + Reviewed by Dirk Pranke. + + If use_libcc_for_compositor is set, these tests are being compiled and run elsewhere. + + * WebKit.gyp: + * WebKit.gypi: + * WebKitUnitTests.gyp: + +2012-08-27 James Robinson <jamesr@chromium.org> + + [chromium] Add CompositorSupport interface for constructing compositor classes + https://bugs.webkit.org/show_bug.cgi?id=95040 + + Reviewed by Darin Fisher. + + * src/LinkHighlight.cpp: + (WebKit::LinkHighlight::LinkHighlight): + (WebKit::LinkHighlight::startHighlightAnimation): + * src/WebMediaPlayerClientImpl.cpp: + (WebKit::WebMediaPlayerClientImpl::readyStateChanged): + * src/WebMediaPlayerClientImpl.h: + (WebKit): + * src/WebPluginContainerImpl.cpp: + (WebKit::WebPluginContainerImpl::setBackingTextureId): + (WebKit::WebPluginContainerImpl::setBackingIOSurfaceId): + * src/WebPluginContainerImpl.h: + (WebKit): + +2012-08-30 Gavin Peters <gavinp@chromium.org> + + [chromium] Disable CCLayerTreeHostTestScrollMultipleRedraw.runMultiThread + https://bugs.webkit.org/show_bug.cgi?id=95472 + + Unreviewed gardening. + + When landing r127079, this test was re-enabled, and has not passed since. I'm disabling it, and created bug 95473 to track fixing this issue. + + * tests/CCLayerTreeHostTest.cpp: + (WebKitTests::TEST_F): + +2012-08-30 James Robinson <jamesr@chromium.org> + + [chromium] Clean up some webkit compositor unit tests + https://bugs.webkit.org/show_bug.cgi?id=95410 + + Reviewed by Adrienne Walker. + + This adds includes that were implicitly being picked up, removes ones that weren't being used, removes + dead code, adds OVERRIDE on functions that OVERRIDE, and deinlines virtuals that the chromium clang style + plugin is unhappy about. + + * tests/CCAnimationTestCommon.cpp: + (WebKitTests::FakeFloatAnimationCurve::duration): + (WebKitTests): + (WebKitTests::FakeFloatAnimationCurve::getValue): + (WebKitTests::FakeTransformTransition::duration): + (WebKitTests::FakeFloatTransition::duration): + (WebKitTests::FakeLayerAnimationControllerClient::id): + (WebKitTests::FakeLayerAnimationControllerClient::setOpacityFromAnimation): + (WebKitTests::FakeLayerAnimationControllerClient::opacity): + (WebKitTests::FakeLayerAnimationControllerClient::setTransformFromAnimation): + (WebKitTests::FakeLayerAnimationControllerClient::transform): + * tests/CCAnimationTestCommon.h: + (FakeFloatAnimationCurve): + (FakeTransformTransition): + (FakeFloatTransition): + (FakeLayerAnimationControllerClient): + * tests/CCTiledLayerTestCommon.cpp: + (WebKitTests::FakeLayerTextureUpdater::sampledTexelFormat): + (WebKitTests): + (WebKitTests::FakeTiledLayerWithScaledBounds::FakeTiledLayerWithScaledBounds): + (WebKitTests::FakeTiledLayerChromium::textureManager): + (WebKitTests::FakeTiledLayerChromium::textureUpdater): + (WebKitTests::FakeTiledLayerWithScaledBounds::contentBounds): + (WebKitTests::FakeTextureUploader::isBusy): + (WebKitTests::FakeTextureUploader::uploadTexture): + * tests/CCTiledLayerTestCommon.h: + (FakeLayerTextureUpdater): + (FakeTiledLayerChromium): + (FakeTiledLayerWithScaledBounds): + (FakeTextureUploader): + * tests/FakeWebCompositorOutputSurface.h: + * tests/TextureCopierTest.cpp: + (MockContext): + (TEST): + * tests/ThrottledTextureUploaderTest.cpp: + (WebKit::TEST): + * tests/WebLayerTreeViewTest.cpp: + +2012-08-29 Hironori Bono <hbono@chromium.org> + + Fix Chromium builds (Win and Mac) + https://bugs.webkit.org/show_bug.cgi?id=95421 + + Reviewed by James Robinson. + + This change replaces 'class WebRect' with 'struct WebRect' to fix build breaks + on the "Chromium Mac Release" and the "Chromium Win Release" bot caused by + r127095. + + * public/WebViewClient.h: + (WebKit): + +2012-08-29 Nat Duca <nduca@chromium.org> + + [chromium] setNeedsAnimate should not cause commitRequested to become true + https://bugs.webkit.org/show_bug.cgi?id=95393 + + Reviewed by James Robinson. + + * tests/CCLayerTreeHostTest.cpp: + (CCLayerTreeHostTestSetNeedsAnimateShouldNotSetCommitRequested): + (CCLayerTreeHostTestSetNeedsAnimateShouldNotSetCommitRequested::CCLayerTreeHostTestSetNeedsAnimateShouldNotSetCommitRequested): + +2012-08-29 Tien-Ren Chen <trchen@chromium.org> + + [chromium] Implement disambiguation popup (a.k.a. Link Preview) + https://bugs.webkit.org/show_bug.cgi?id=94182 + + Reviewed by Adam Barth. + + In this new implementation, we add a new WebViewClient::handleDisambiguationPopup delegate. + The disambiguation sequence will be initiated by the gesture event handler + in WebViewImpl if an ambiguous tap is detected, then + m_client->handleDisambiguationPopup will be called, so the embedder can + decide whether to swallow the touch event and show a popup. + + New test: WebFrameTest.DisambiguationPopupTest + + * WebKit.gyp: + * features.gypi: + * public/WebInputEvent.h: + (WebGestureEvent): + (WebKit::WebGestureEvent::WebGestureEvent): + * public/WebTouchCandidatesInfo.h: Removed. + * public/WebView.h: + (WebKit): + * public/WebViewClient.h: + (WebKit): + (WebViewClient): + (WebKit::WebViewClient::triggersLinkPreview): + * src/WebInputEvent.cpp: + (SameSizeAsWebGestureEvent): + * src/WebViewImpl.cpp: + (WebKit): + (WebKit::WebViewImpl::handleGestureEventWithLinkPreview): + (WebKit::WebViewImpl::handleGestureEvent): + * src/WebViewImpl.h: + (WebViewImpl): + +2012-08-29 Dominic Mazzoni <dmazzoni@google.com> + + AX: Canvas should have a distinct role + https://bugs.webkit.org/show_bug.cgi?id=95248 + + Reviewed by Chris Fleizach. + + Add support for canvas accessibility role. + + * public/WebAccessibilityRole.h: + * src/AssertMatchingEnums.cpp: + +2012-08-29 Alex Sakhartchouk <alexst@chromium.org> + + [chromium] CCLayerTreeHost::finishCommitOnImplThread wrong setter order + https://bugs.webkit.org/show_bug.cgi?id=94828 + + Reviewed by Adrienne Walker. + + Testing that setDeviceScaleFactor properly changes maxScrollPosition + + * tests/CCLayerTreeHostImplTest.cpp: + +2012-08-29 James Robinson <jamesr@chromium.org> + + Unreviewed, rolling out r126956. + http://trac.webkit.org/changeset/126956 + https://bugs.webkit.org/show_bug.cgi?id=94721 + + Breaks several unit tests + + * tests/CCSchedulerTest.cpp: + (WebKitTests::FakeCCSchedulerClient::reset): + (WebKitTests::FakeCCSchedulerClient::setHasMoreResourceUpdates): + (WebKitTests::TEST): + * tests/CCTextureUpdateControllerTest.cpp: + +2012-08-29 James Robinson <jamesr@chromium.org> + + [chromium] Register/unregister contents layers with GraphicsLayerChromium + https://bugs.webkit.org/show_bug.cgi?id=95379 + + Reviewed by Adrienne Walker. + + * src/WebMediaPlayerClientImpl.cpp: + (WebKit::WebMediaPlayerClientImpl::~WebMediaPlayerClientImpl): + (WebKit::WebMediaPlayerClientImpl::readyStateChanged): + * src/WebPluginContainerImpl.cpp: + (WebKit::WebPluginContainerImpl::setBackingTextureId): + (WebKit::WebPluginContainerImpl::setBackingIOSurfaceId): + (WebKit::WebPluginContainerImpl::~WebPluginContainerImpl): + +2012-08-29 W. James MacLean <wjmaclean@chromium.org> + + [chromium] Add WebSettings support for flag to enable/disable gesture tap highlights. + https://bugs.webkit.org/show_bug.cgi?id=95119 + + Reviewed by Adam Barth. + + Add support to WebSettings for flag to enable/disable gesture tap highlights. Relies on existing tests. + + * public/WebSettings.h: + * src/WebSettingsImpl.cpp: + (WebKit::WebSettingsImpl::WebSettingsImpl): + (WebKit::WebSettingsImpl::setGestureTapHighlightEnabled): + (WebKit): + * src/WebSettingsImpl.h: + (WebSettingsImpl): + (WebKit::WebSettingsImpl::gestureTapHighlightEnabled): + * src/WebViewImpl.cpp: + (WebKit::WebViewImpl::handleGestureEvent): + +2012-08-29 Dana Jansens <danakj@chromium.org> + + [chromium] Remove HUD layer when rootLayer is set to null + https://bugs.webkit.org/show_bug.cgi?id=95257 + + Reviewed by James Robinson. + + * WebKit.gypi: + * tests/CCHeadsUpDisplayTest.cpp: Added. + (CCHeadsUpDisplayTest): + (DrawsContentLayerChromium): + (DrawsContentLayerChromium::create): + (DrawsContentLayerChromium::DrawsContentLayerChromium): + (CCHudWithRootLayerChange): + (CCHudWithRootLayerChange::CCHudWithRootLayerChange): + (TEST_F): + * tests/CCLayerTreeHostTest.cpp: + * tests/CCThreadedTest.cpp: + (WebKitTests::CCThreadedTest::runTest): + * tests/CCThreadedTest.h: + (WebKitTests::CCThreadedTest::initializeSettings): + (CCThreadedTest): + +2012-08-29 Shawn Singh <shawnsingh@chromium.org> + + [chromium] Add more unit test coverage for semantics of drawableContentRect and visibleContentRect + https://bugs.webkit.org/show_bug.cgi?id=94542 + + Reviewed by Adrienne Walker. + + To make upcoming refactors safer, it was appropriate to (finally) + add unit tests that check the behavior of drawableContentRect and + visibleContentRect computations in calculateDrawTransforms. + + * tests/CCLayerTreeHostCommonTest.cpp: + +2012-08-29 W. James MacLean <wjmaclean@chromium.org> + + [chromium] Link highlight should clear on page navigation. + https://bugs.webkit.org/show_bug.cgi?id=95129 + + Reviewed by James Robinson. + + Modified WebViewImpl to clear link highlight when navigating to new url. + + * src/WebViewImpl.cpp: + (WebKit::WebViewImpl::didCommitLoad): + +2012-08-29 James Robinson <jamesr@chromium.org> + + [chromium] CCThreadImpl / WebCompositorImpl shouldn't compile from webkit when use_libcc_for_compositor=1 + https://bugs.webkit.org/show_bug.cgi?id=94995 + + Reviewed by Adam Barth. + + * WebKit.gyp: + +2012-08-28 Shawn Singh <shawnsingh@chromium.org> + + [chromium] Do not clip root layer's subtree to viewport + https://bugs.webkit.org/show_bug.cgi?id=95235 + + Reviewed by Adrienne Walker. + + Existing tests updated, and otherwise this change is already + covered by layout and unit tests. + + * tests/CCLayerTreeHostCommonTest.cpp: + * tests/CCOcclusionTrackerTest.cpp: + (WebKitTests::CCOcclusionTrackerTestChildInRotatedChild::runMyTest): + (WebKitTests::CCOcclusionTrackerTestVisitTargetTwoTimes::runMyTest): + (WebKitTests::CCOcclusionTrackerTestSurfaceWithTwoOpaqueChildren::runMyTest): + (WebKitTests::CCOcclusionTrackerTestOverlappingSurfaceSiblings::runMyTest): + (WebKitTests::CCOcclusionTrackerTestOverlappingSurfaceSiblingsWithTwoTransforms::runMyTest): + (WebKitTests::CCOcclusionTrackerTestFilters::runMyTest): + (WebKitTests::CCOcclusionTrackerTestReplicaWithClipping::runMyTest): + (WebKitTests::CCOcclusionTrackerTestLargePixelsOccludeInsideClipRect::runMyTest): + (WebKitTests::CCOcclusionTrackerTestSurfaceOcclusionTranslatesWithClipping::runMyTest): + (WebKitTests::CCOcclusionTrackerTestSurfaceChildOfClippingSurface::runMyTest): + +2012-08-29 Julien Chaffraix <jchaffraix@webkit.org> + + [Chromium] CCLayerTreeHostTestScrollChildLayer makes the wrong assumptions + https://bugs.webkit.org/show_bug.cgi?id=95358 + + Unreviewed gardening. + + * tests/CCLayerTreeHostTest.cpp: + Disabled the test until it is fixed. + +2012-08-29 Sheriff Bot <webkit.review.bot@gmail.com> + + Unreviewed, rolling out r126972. + http://trac.webkit.org/changeset/126972 + https://bugs.webkit.org/show_bug.cgi?id=95349 + + accessibility/canvas-description-and-role.html has been + failing consistently on several bots and Dominic needs some + time to investigate why (Requested by jchaffraix on #webkit). + + * public/WebAccessibilityRole.h: + * src/AssertMatchingEnums.cpp: + +2012-08-29 Peter Beverloo <peter@chromium.org> + + Unreviewed. Rolled DEPS. + + * DEPS: + +2012-08-29 Dominic Mazzoni <dmazzoni@google.com> + + AX: Canvas should have a distinct role + https://bugs.webkit.org/show_bug.cgi?id=95248 + + Reviewed by Chris Fleizach. + + Add support for canvas accessibility role. + + * public/WebAccessibilityRole.h: + * src/AssertMatchingEnums.cpp: + +2012-08-28 David Reveman <reveman@chromium.org> + + [Chromium] Scheduler will never process a commit until it receives a vsync tick. + https://bugs.webkit.org/show_bug.cgi?id=94721 + + Reviewed by James Robinson. + + * tests/CCSchedulerTest.cpp: + (WebKitTests::FakeCCSchedulerClient::reset): + (WebKitTests::TEST): + * tests/CCTextureUpdateControllerTest.cpp: + +2012-08-28 Adam Barth <abarth@webkit.org> + + Fix ASSERT in fast/events/touch/gesture/context-menu-on-two-finger-tap.html + + * src/WebViewImpl.cpp: + (WebKit::WebViewImpl::detectContentOnTouch): + +2012-08-28 Leandro Gracia Gil <leandrogracia@chromium.org> + + Content detection should not disrupt the page behaviour + https://bugs.webkit.org/show_bug.cgi?id=94727 + + Reviewed by Adam Barth. + + Triggers content detection in the embedder on tap gestures and + add checks for the appropriate event listeners in order to prevent + triggering content detection when it would disrupt the page's behaviour. + + * src/WebViewImpl.cpp: + (WebKit::WebViewImpl::handleGestureEvent): + (WebKit::WebViewImpl::detectContentOnTouch): + * tests/WebViewTest.cpp: + * tests/data/content_listeners.html: Added. + +2012-08-28 Sheriff Bot <webkit.review.bot@gmail.com> + + Unreviewed, rolling out r126933. + http://trac.webkit.org/changeset/126933 + https://bugs.webkit.org/show_bug.cgi?id=95261 + + Turns out we do need this! (Requested by abarth on #webkit). + + * public/WebWidget.h: + (WebKit::WebWidget::paint): + * src/WebPagePopupImpl.cpp: + (WebKit::WebPagePopupImpl::paint): + * src/WebPagePopupImpl.h: + (WebPagePopupImpl): + * src/WebPopupMenuImpl.cpp: + (WebKit::WebPopupMenuImpl::paint): + * src/WebPopupMenuImpl.h: + * src/WebViewImpl.cpp: + (WebKit::WebViewImpl::paint): + * src/WebViewImpl.h: + (WebViewImpl): + +2012-08-28 Mark Pilgrim <pilgrim@chromium.org> + + [Chromium] Remove decodeAudioFileData from PlatformSupport + https://bugs.webkit.org/show_bug.cgi?id=95250 + + Reviewed by Adam Barth. + + Part of a refactoring series. See tracking bug 82948. + + * src/PlatformSupport.cpp: + (WebCore): + +2012-08-28 Sheriff Bot <webkit.review.bot@gmail.com> + + Unreviewed, rolling out r126344. + http://trac.webkit.org/changeset/126344 + https://bugs.webkit.org/show_bug.cgi?id=95253 + + This change is no longer needed (Requested by abarth on + #webkit). + + * public/WebWidget.h: + (WebKit::WebWidget::paint): + * src/WebPagePopupImpl.cpp: + (WebKit::WebPagePopupImpl::paint): + * src/WebPagePopupImpl.h: + (WebPagePopupImpl): + * src/WebPopupMenuImpl.cpp: + (WebKit::WebPopupMenuImpl::paint): + * src/WebPopupMenuImpl.h: + * src/WebViewImpl.cpp: + (WebKit::WebViewImpl::paint): + * src/WebViewImpl.h: + (WebViewImpl): + +2012-08-28 Dominic Mazzoni <dmazzoni@google.com> + + AX: Crash due to object getting deleted inside updateBackingStore + https://bugs.webkit.org/show_bug.cgi?id=94619 + + Reviewed by Chris Fleizach. + + Chromium now calls updateBackingStoreAndCheckValidity explicitly, + so we can now get rid of calls to updateBackingStore in the + method implementations, and just make sure we're checking isDetached. + + * public/WebAccessibilityObject.h: + (WebAccessibilityObject): + * src/WebAccessibilityObject.cpp: + (WebKit::WebAccessibilityObject::axID): + (WebKit::WebAccessibilityObject::accessibilityDescription): + (WebKit::WebAccessibilityObject::actionVerb): + (WebKit::WebAccessibilityObject::canSetFocusAttribute): + (WebKit::WebAccessibilityObject::canSetValueAttribute): + (WebKit::WebAccessibilityObject::childCount): + (WebKit::WebAccessibilityObject::childAt): + (WebKit::WebAccessibilityObject::firstChild): + (WebKit::WebAccessibilityObject::focusedChild): + (WebKit::WebAccessibilityObject::lastChild): + (WebKit::WebAccessibilityObject::nextSibling): + (WebKit::WebAccessibilityObject::parentObject): + (WebKit::WebAccessibilityObject::previousSibling): + (WebKit::WebAccessibilityObject::canSetSelectedAttribute): + (WebKit::WebAccessibilityObject::isAnchor): + (WebKit::WebAccessibilityObject::isAriaReadOnly): + (WebKit::WebAccessibilityObject::isButtonStateMixed): + (WebKit::WebAccessibilityObject::isChecked): + (WebKit::WebAccessibilityObject::isCollapsed): + (WebKit::WebAccessibilityObject::isControl): + (WebKit::WebAccessibilityObject::isEnabled): + (WebKit::WebAccessibilityObject::isFocused): + (WebKit::WebAccessibilityObject::isHovered): + (WebKit::WebAccessibilityObject::isIndeterminate): + (WebKit::WebAccessibilityObject::isLinked): + (WebKit::WebAccessibilityObject::isLoaded): + (WebKit::WebAccessibilityObject::isMultiSelectable): + (WebKit::WebAccessibilityObject::isOffScreen): + (WebKit::WebAccessibilityObject::isPasswordField): + (WebKit::WebAccessibilityObject::isPressed): + (WebKit::WebAccessibilityObject::isReadOnly): + (WebKit::WebAccessibilityObject::isRequired): + (WebKit::WebAccessibilityObject::isSelected): + (WebKit::WebAccessibilityObject::isSelectedOptionActive): + (WebKit::WebAccessibilityObject::isVertical): + (WebKit::WebAccessibilityObject::isVisible): + (WebKit::WebAccessibilityObject::isVisited): + (WebKit::WebAccessibilityObject::accessKey): + (WebKit::WebAccessibilityObject::ariaHasPopup): + (WebKit::WebAccessibilityObject::ariaLiveRegionAtomic): + (WebKit::WebAccessibilityObject::ariaLiveRegionBusy): + (WebKit::WebAccessibilityObject::ariaLiveRegionRelevant): + (WebKit::WebAccessibilityObject::ariaLiveRegionStatus): + (WebKit::WebAccessibilityObject::boundingBoxRect): + (WebKit::WebAccessibilityObject::estimatedLoadingProgress): + (WebKit::WebAccessibilityObject::helpText): + (WebKit::WebAccessibilityObject::headingLevel): + (WebKit::WebAccessibilityObject::hierarchicalLevel): + (WebKit::WebAccessibilityObject::hitTest): + (WebKit::WebAccessibilityObject::keyboardShortcut): + (WebKit::WebAccessibilityObject::performDefaultAction): + (WebKit::WebAccessibilityObject::roleValue): + (WebKit::WebAccessibilityObject::selectionEnd): + (WebKit::WebAccessibilityObject::selectionStart): + (WebKit::WebAccessibilityObject::stringValue): + (WebKit::WebAccessibilityObject::title): + (WebKit::WebAccessibilityObject::titleUIElement): + (WebKit::WebAccessibilityObject::url): + (WebKit::WebAccessibilityObject::valueDescription): + (WebKit::WebAccessibilityObject::valueForRange): + (WebKit::WebAccessibilityObject::maxValueForRange): + (WebKit::WebAccessibilityObject::minValueForRange): + (WebKit::WebAccessibilityObject::node): + (WebKit::WebAccessibilityObject::document): + (WebKit::WebAccessibilityObject::accessibilityIsIgnored): + (WebKit::WebAccessibilityObject::lineBreaks): + (WebKit::WebAccessibilityObject::columnCount): + (WebKit::WebAccessibilityObject::rowCount): + (WebKit::WebAccessibilityObject::cellForColumnAndRow): + (WebKit::WebAccessibilityObject::cellColumnIndex): + (WebKit::WebAccessibilityObject::cellColumnSpan): + (WebKit::WebAccessibilityObject::cellRowIndex): + (WebKit::WebAccessibilityObject::cellRowSpan): + (WebKit::WebAccessibilityObject::scrollToMakeVisible): + (WebKit::WebAccessibilityObject::scrollToMakeVisibleWithSubFocus): + (WebKit::WebAccessibilityObject::scrollToGlobalPoint): + +2012-08-28 Sheriff Bot <webkit.review.bot@gmail.com> + + Unreviewed, rolling out r126914. + http://trac.webkit.org/changeset/126914 + https://bugs.webkit.org/show_bug.cgi?id=95239 + + it breaks everything and fixes nothing (Requested by pizlo on + #webkit). + + * src/WebGeolocationPermissionRequestManager.cpp: + (WebGeolocationPermissionRequestManager::remove): + * src/WebIDBMetadata.cpp: + (WebKit::WebIDBMetadata::WebIDBMetadata): + * src/WebIntent.cpp: + (WebKit::WebIntent::extrasValue): + * tests/WebSocketExtensionDispatcherTest.cpp: + (WebCore::TEST_F): + +2012-08-28 W. James MacLean <wjmaclean@chromium.org> + + [unreviewed] Compile fix: windows compiler expects float but find double. + + Need to specify a float literal when initialising the highlight animation duration. + + * src/LinkHighlight.cpp: + (WebKit::LinkHighlight::startHighlightAnimation): + +2012-08-28 Caio Marcelo de Oliveira Filho <caio.oliveira@openbossa.org> + + Rename first/second to key/value in HashMap iterators + https://bugs.webkit.org/show_bug.cgi?id=82784 + + Reviewed by Eric Seidel. + + * src/WebGeolocationPermissionRequestManager.cpp: + (WebGeolocationPermissionRequestManager::remove): + * src/WebIDBMetadata.cpp: + (WebKit::WebIDBMetadata::WebIDBMetadata): + * src/WebIntent.cpp: + (WebKit::WebIntent::extrasValue): + * tests/WebSocketExtensionDispatcherTest.cpp: + (WebCore::TEST_F): + +2012-08-28 W. James MacLean <wjmaclean@chromium.org> + + [chromium] Drastically shorten the link highlight duration. + https://bugs.webkit.org/show_bug.cgi?id=95216 + + Reviewed by James Robinson. + + Parameter change; covered by existing layout tests. + + * src/LinkHighlight.cpp: + (WebKit::LinkHighlight::startHighlightAnimation): + +2012-08-27 Tien-Ren Chen <trchen@chromium.org> + + [Chromium] Remove stub for WebView::getTouchHighlightQuads() + https://bugs.webkit.org/show_bug.cgi?id=95164 + + Reviewed by Adam Barth. + + Reverts https://bugs.webkit.org/show_bug.cgi?id=92997 + We're uploading a new implementation that no longer uses this API. + See https://bugs.webkit.org/show_bug.cgi?id=94182 + + * WebKit.gyp: + * public/WebTouchCandidatesInfo.h: Removed. + * public/WebView.h: + (WebKit): + * src/WebViewImpl.cpp: + * src/WebViewImpl.h: + (WebViewImpl): + +2012-08-27 Ian Vollick <vollick@chromium.org> + + [chromium] Should accelerate rotations of >= 180 degrees + https://bugs.webkit.org/show_bug.cgi?id=94860 + + Reviewed by James Robinson. + + Added new unit tests: + WebTransformOperationTest.transformTypesAreUnique + WebTransformOperationTest.matchTypesSameLength + WebTransformOperationTest.identityAlwaysMatches + WebTransformOperationTest.largeRotationsWithSameAxis + WebTransformOperationTest.largeRotationsWithSameAxisInDifferentDirection + WebTransformOperationTest.largeRotationsWithDifferentAxes + WebTransformOperationTest.blendRotationFromIdentity + WebTransformOperationTest.blendTranslationFromIdentity + WebTransformOperationTest.blendScaleFromIdentity + WebTransformOperationTest.blendSkewFromIdentity + WebTransformOperationTest.blendPerspectiveFromIdentity + WebTransformOperationTest.blendRotationToIdentity + WebTransformOperationTest.blendTranslationToIdentity + WebTransformOperationTest.blendScaleToIdentity + WebTransformOperationTest.blendSkewToIdentity + WebTransformOperationTest.blendPerspectiveToIdentity + AnimationTranslationUtilTest.createTransformAnimationWithBigRotation + AnimationTranslationUtilTest.createTransformAnimationWithBigRotationAndEmptyTransformOperationList + + * tests/AnimationTranslationUtilTest.cpp: + (WebKit::TEST): + * tests/WebTransformOperationsTest.cpp: + (TEST): + (getIdentityOperations): + +2012-08-27 Sheriff Bot <webkit.review.bot@gmail.com> + + Unreviewed, rolling out r126836. + http://trac.webkit.org/changeset/126836 + https://bugs.webkit.org/show_bug.cgi?id=95163 + + Broke all Apple ports, EFL, and Qt. (Requested by tkent on + #webkit). + + * src/WebGeolocationPermissionRequestManager.cpp: + (WebGeolocationPermissionRequestManager::remove): + * src/WebIDBMetadata.cpp: + (WebKit::WebIDBMetadata::WebIDBMetadata): + * src/WebIntent.cpp: + (WebKit::WebIntent::extrasValue): + * tests/WebSocketExtensionDispatcherTest.cpp: + (WebCore::TEST_F): + +2012-08-27 Caio Marcelo de Oliveira Filho <caio.oliveira@openbossa.org> + + Rename first/second to key/value in HashMap iterators + https://bugs.webkit.org/show_bug.cgi?id=82784 + + Reviewed by Eric Seidel. + + * src/WebGeolocationPermissionRequestManager.cpp: + (WebGeolocationPermissionRequestManager::remove): + * src/WebIDBMetadata.cpp: + (WebKit::WebIDBMetadata::WebIDBMetadata): + * src/WebIntent.cpp: + (WebKit::WebIntent::extrasValue): + * tests/WebSocketExtensionDispatcherTest.cpp: + (WebCore::TEST_F): + +2012-08-27 David Reveman <reveman@chromium.org> + + [Chromium] Stop texture updates when context is lost. + https://bugs.webkit.org/show_bug.cgi?id=94983 + + Reviewed by James Robinson. + + * tests/CCLayerTreeHostTest.cpp: + (CompositorFakeWebGraphicsContext3DWithEndQueryCausingLostContext): + (CompositorFakeWebGraphicsContext3DWithEndQueryCausingLostContext::create): + (CompositorFakeWebGraphicsContext3DWithEndQueryCausingLostContext::setContextLostCallback): + (CompositorFakeWebGraphicsContext3DWithEndQueryCausingLostContext::isContextLost): + (CompositorFakeWebGraphicsContext3DWithEndQueryCausingLostContext::beginQueryEXT): + (CompositorFakeWebGraphicsContext3DWithEndQueryCausingLostContext::endQueryEXT): + (CompositorFakeWebGraphicsContext3DWithEndQueryCausingLostContext::getQueryObjectuivEXT): + (CompositorFakeWebGraphicsContext3DWithEndQueryCausingLostContext::CompositorFakeWebGraphicsContext3DWithEndQueryCausingLostContext): + (CCLayerTreeHostTestLostContextWhileUpdatingResources): + (CCLayerTreeHostTestLostContextWhileUpdatingResources::CCLayerTreeHostTestLostContextWhileUpdatingResources): + (CCLayerTreeHostTestLostContextWhileUpdatingResources::createOutputSurface): + (CCLayerTreeHostTestLostContextWhileUpdatingResources::beginTest): + (CCLayerTreeHostTestLostContextWhileUpdatingResources::commitCompleteOnCCThread): + (CCLayerTreeHostTestLostContextWhileUpdatingResources::layout): + (CCLayerTreeHostTestLostContextWhileUpdatingResources::afterTest): + (TEST_F): + +2012-08-27 Dana Jansens <danakj@chromium.org> + + [chromium] A general mechanism for passing data into and out of appendQuads and quadCuller via CCAppendQuadsData + https://bugs.webkit.org/show_bug.cgi?id=95109 + + Reviewed by Adrienne Walker. + + Update tests to use the new data structure. + + * tests/CCLayerTreeHostImplTest.cpp: + * tests/CCLayerTreeHostTest.cpp: + * tests/CCQuadCullerTest.cpp: + * tests/CCRenderSurfaceTest.cpp: + * tests/CCSolidColorLayerImplTest.cpp: + (CCLayerTestCommon::TEST): + * tests/CCTiledLayerImplTest.cpp: + (CCLayerTestCommon::TEST): + (CCLayerTestCommon::getQuads): + * tests/MockCCQuadCuller.h: + +2012-08-24 James Robinson <jamesr@chromium.org> + + [chromium] Clean up dependencies of WebScrollbar and WebScrollbarLayer + https://bugs.webkit.org/show_bug.cgi?id=94996 + + Reviewed by Adrienne Walker. + + Fix up tests for API changes. + + * WebKit.gyp: + * src/WebScrollbarLayerImpl.cpp: + (WebKit::WebScrollbarLayer::create): + * tests/ScrollbarLayerChromiumTest.cpp: + (WebCore::TEST): + +2012-08-27 Adrienne Walker <enne@google.com> + + [chromium] Prevent scrollbar thumb size from changing during compositor zoom + https://bugs.webkit.org/show_bug.cgi?id=94859 + + Reviewed by James Robinson. + + Update test. + + * tests/CCLayerTreeHostImplTest.cpp: + +2012-08-27 Dana Jansens <danakj@chromium.org> + + [chromium] Have RenderSurface create and add its own generated RenderPass + https://bugs.webkit.org/show_bug.cgi?id=94957 + + Reviewed by Adrienne Walker. + + Test that a RenderSurface generates the RenderPass that we expect. + + * tests/CCRenderSurfaceTest.cpp: + +2012-08-27 Justin Novosad <junov@chromium.org> + + [Chromium] Fixing infinite recursion in Canvas2DLayerManager + https://bugs.webkit.org/show_bug.cgi?id=95110 + + Reviewed by Stephen White. + + Breaking recursion cycle by not reporting a change in memory allocation + when no memory is freed in FakeCanvas2DLayer::freeMemoryIfPossible. + + * tests/Canvas2DLayerManagerTest.cpp: + +2012-08-27 Justin Novosad <junov@chromium.org> + + [Chromium] Implementing a global limit on memory consumed by deferred 2D canvases + https://bugs.webkit.org/show_bug.cgi?id=94386 + + Reviewed by Stephen White. + + Adding unit tests for WebCore::Canvas2DLayerManager + + * WebKit.gypi: + +2012-08-27 Sheriff Bot <webkit.review.bot@gmail.com> + + Unreviewed. Rolled DEPS. + + * DEPS: + +2012-08-27 Mikhail Pozdnyakov <mikhail.pozdnyakov@intel.com> + + Rename RegisterProtocolHandler API to NavigatorContentUtils + https://bugs.webkit.org/show_bug.cgi?id=94920 + + Reviewed by Adam Barth. + + Renaming whatever RegisterProtocolHandler-prefixed to NavigatorContentUtils-prefixed. + RegisterProtocolHandlerClientImpl is renamed to NavigatorContentUtilsClientImpl. + + * features.gypi: + * src/ChromeClientImpl.cpp: + (WebKit): + (WebKit::NavigatorContentUtilsClientImpl::create): + (WebKit::NavigatorContentUtilsClientImpl::NavigatorContentUtilsClientImpl): + (WebKit::NavigatorContentUtilsClientImpl::registerProtocolHandler): + * src/ChromeClientImpl.h: + (NavigatorContentUtilsClientImpl): + (WebKit::NavigatorContentUtilsClientImpl::~NavigatorContentUtilsClientImpl): + * src/WebViewImpl.cpp: + (WebKit::WebViewImpl::WebViewImpl): + * src/WebViewImpl.h: + +2012-08-27 Johnny Ding <jnd@chromium.org> + + [Chromium-Android]Move webkit_unit_tests_apk and TestWebKitAPI_apk into a + condition block:['OS=="android" and gtest_target_type == "shared_library"']. + https://bugs.webkit.org/show_bug.cgi?id=95049 + + Reviewed by Adam Barth. + + Move webkit_unit_tests_apk and TestWebKitAPI_apk into block of gtest_target_type == "shared_library" + + * All.gyp: + +2012-08-24 Dominic Mazzoni <dmazzoni@google.com> + + Chromium: WebAccessibilityObject should expose updateBackingStore + https://bugs.webkit.org/show_bug.cgi?id=94611 + + Reviewed by Chris Fleizach. + + This change just exposes a method, with no new tests. Next, Chromium + will be modified to call this new method, and this will be followed + by a change that gets rid of calls to updateBackingStore under the + hood. That last change may add a test or update an existing test. + + * public/WebAccessibilityObject.h: + (WebAccessibilityObject): + * src/WebAccessibilityObject.cpp: + (WebKit::WebAccessibilityObject::updateBackingStoreAndCheckValidity): + (WebKit): + +2012-08-24 W. James MacLean <wjmaclean@chromium.org> + + [chromium] WebViewImpl::enableTouchHighlight() should always clear any existing highlight when invoked. + https://bugs.webkit.org/show_bug.cgi?id=94978 + + Reviewed by James Robinson. + + Modified WebViewImpl::enableTouchHighlight() so it always clears any existing highlight, even if no new + highlight target is found. + + * src/WebViewImpl.cpp: + (WebKit::WebViewImpl::enableTouchHighlight): + +2012-08-23 James Robinson <jamesr@chromium.org> + + [chromium] Convert WebLayerTreeView interface into pure virtual + https://bugs.webkit.org/show_bug.cgi?id=94866 + + Reviewed by Adrienne Walker. + + Updates WebLayerTreeView implementation and callers to new interface. The createGraphicsContext3D() wrapper + stuff can just go away now since downstream has updated to createOutputSurface(). + + * WebKit.gypi: + * src/WebLayerTreeView.cpp: Removed. + * src/WebLayerTreeViewImpl.cpp: + (WebKit::WebLayerTreeView::create): + (WebKit::WebLayerTreeViewImpl::WebLayerTreeViewImpl): + (WebKit::WebLayerTreeViewImpl::initialize): + (WebKit): + (WebKit::WebLayerTreeViewImpl::setSurfaceReady): + (WebKit::WebLayerTreeViewImpl::setRootLayer): + (WebKit::WebLayerTreeViewImpl::clearRootLayer): + (WebKit::WebLayerTreeViewImpl::compositorIdentifier): + (WebKit::WebLayerTreeViewImpl::setViewportSize): + (WebKit::WebLayerTreeViewImpl::layoutViewportSize): + (WebKit::WebLayerTreeViewImpl::deviceViewportSize): + (WebKit::WebLayerTreeViewImpl::setDeviceScaleFactor): + (WebKit::WebLayerTreeViewImpl::deviceScaleFactor): + (WebKit::WebLayerTreeViewImpl::setBackgroundColor): + (WebKit::WebLayerTreeViewImpl::setHasTransparentBackground): + (WebKit::WebLayerTreeViewImpl::setVisible): + (WebKit::WebLayerTreeViewImpl::setPageScaleFactorAndLimits): + (WebKit::WebLayerTreeViewImpl::startPageScaleAnimation): + (WebKit::WebLayerTreeViewImpl::setNeedsAnimate): + (WebKit::WebLayerTreeViewImpl::setNeedsRedraw): + (WebKit::WebLayerTreeViewImpl::commitRequested): + (WebKit::WebLayerTreeViewImpl::composite): + (WebKit::WebLayerTreeViewImpl::updateAnimations): + (WebKit::WebLayerTreeViewImpl::compositeAndReadback): + (WebKit::WebLayerTreeViewImpl::finishAllRendering): + (WebKit::WebLayerTreeViewImpl::renderingStats): + (WebKit::WebLayerTreeViewImpl::setFontAtlas): + (WebKit::WebLayerTreeViewImpl::loseCompositorContext): + (WebKit::WebLayerTreeViewImpl::willBeginFrame): + (WebKit::WebLayerTreeViewImpl::didBeginFrame): + (WebKit::WebLayerTreeViewImpl::animate): + (WebKit::WebLayerTreeViewImpl::layout): + (WebKit::WebLayerTreeViewImpl::applyScrollAndScale): + (WebKit::WebLayerTreeViewImpl::createOutputSurface): + (WebKit::WebLayerTreeViewImpl::didRecreateOutputSurface): + (WebKit::WebLayerTreeViewImpl::willCommit): + (WebKit::WebLayerTreeViewImpl::didCommit): + (WebKit::WebLayerTreeViewImpl::didCommitAndDrawFrame): + (WebKit::WebLayerTreeViewImpl::didCompleteSwapBuffers): + (WebKit::WebLayerTreeViewImpl::scheduleComposite): + * src/WebLayerTreeViewImpl.h: + (WebLayerTreeViewImpl): + * src/WebViewImpl.cpp: + (WebKit::WebViewImpl::renderingStats): + (WebKit::WebViewImpl::startPageScaleAnimation): + (WebKit::WebViewImpl::setCompositorSurfaceReady): + (WebKit::WebViewImpl::animate): + (WebKit::WebViewImpl::doPixelReadbackToCanvas): + (WebKit::WebViewImpl::paint): + (WebKit::WebViewImpl::composite): + (WebKit::WebViewImpl::setNeedsRedraw): + (WebKit::WebViewImpl::isInputThrottled): + (WebKit::WebViewImpl::loseCompositorContext): + (WebKit::WebViewImpl::setDeviceScaleFactor): + (WebKit::WebViewImpl::computePageScaleFactorLimits): + (WebKit::WebViewImpl::setIsTransparent): + (WebKit::WebViewImpl::setRootGraphicsLayer): + (WebKit::WebViewImpl::scheduleCompositingLayerSync): + (WebKit::WebViewImpl::invalidateRootLayerRect): + (WebKit::WebViewImpl::setBackgroundColor): + (WebKit::WebViewImpl::scheduleAnimation): + (WebKit::WebViewImpl::setIsAcceleratedCompositingActive): + (WebKit): + (WebKit::WebViewImpl::updateLayerTreeViewport): + (WebKit::WebViewImpl::setVisibilityState): + * src/WebViewImpl.h: + (WebKit): + * tests/CCLayerTreeHostTest.cpp: + * tests/CCThreadedTest.cpp: + * tests/CCThreadedTest.h: + (WebKitTests::TestHooks::animate): + * tests/FakeCCLayerTreeHostClient.h: + * tests/GraphicsLayerChromiumTest.cpp: + (WebKit::GraphicsLayerChromiumTest::GraphicsLayerChromiumTest): + (WebKit::GraphicsLayerChromiumTest::~GraphicsLayerChromiumTest): + (GraphicsLayerChromiumTest): + * tests/WebLayerTest.cpp: + * tests/WebLayerTreeViewTest.cpp: + * tests/WebLayerTreeViewTestCommon.h: + (MockWebLayerTreeViewClient): + +2012-08-24 Sheriff Bot <webkit.review.bot@gmail.com> + + Unreviewed. Rolled DEPS. + + * DEPS: + +2012-08-24 James Robinson <jamesr@chromium.org> + + [chromium] Clean up WebAnimation animationId/groupId generation + https://bugs.webkit.org/show_bug.cgi?id=94973 + + Reviewed by Adrienne Walker. + + * src/WebAnimationImpl.cpp: + (WebKit::WebAnimation::create): + (WebKit::WebAnimationImpl::WebAnimationImpl): + (WebKit::WebAnimationImpl::id): + (WebKit): + * src/WebAnimationImpl.h: + (WebAnimationImpl): + * tests/AnimationTranslationUtilTest.cpp: + (WebKit::animationCanBeTranslated): + * tests/GraphicsLayerChromiumTest.cpp: + (WebKit::TEST_F): + +2012-08-24 Mark Pilgrim <pilgrim@chromium.org> + + [Chromium] Remove visitedLinkHash from PlatformSupport + https://bugs.webkit.org/show_bug.cgi?id=94965 + + Reviewed by Adam Barth. + + Part of a refactoring series. See tracking bug 82948. + + * src/PlatformSupport.cpp: + (WebCore): + +2012-08-24 Sheriff Bot <webkit.review.bot@gmail.com> + + Unreviewed, rolling out r126620. + http://trac.webkit.org/changeset/126620 + https://bugs.webkit.org/show_bug.cgi?id=94976 + + ASSERT((intptr_t)m_bytesAllocated + deltaBytes > 0) is + triggering on the bots (Requested by jchaffraix on #webkit). + + * WebKit.gypi: + * tests/Canvas2DLayerManagerTest.cpp: Removed. + +2012-08-24 Justin Novosad <junov@chromium.org> + + [Chromium] Implementing a global limit on memory consumed by deferred 2D canvases + https://bugs.webkit.org/show_bug.cgi?id=94386 + + Reviewed by Stephen White. + + Adding unit tests for WebCore::Canvas2DLayerManager + + * WebKit.gypi: + * tests/Canvas2DLayerManagerTest.cpp: Added. + (FakeCanvas2DLayerBridge): + (FakeCanvas2DLayerBridge::FakeCanvas2DLayerBridge): + (FakeCanvas2DLayerBridge::fakeFreeableBytes): + (Canvas2DLayerManagerTest): + (Canvas2DLayerManagerTest::storageAllocationTrackingTest): + (Canvas2DLayerManagerTest::evictionTest): + (Canvas2DLayerManagerTest::flushEvictionTest): + +2012-08-24 Cris Neckar <cdn@chromium.org> + + Plumb consumeUserGesture() to the chromium platform layer. + https://bugs.webkit.org/show_bug.cgi?id=9475294867 + + Reviewed by Adam Barth. + + * public/WebFrame.h: + (WebFrame): + * src/WebFrameImpl.cpp: + (WebKit::WebFrameImpl::consumeUserGesture): + (WebKit): + * src/WebFrameImpl.h: + (WebFrameImpl): + +2012-08-24 W. James MacLean <wjmaclean@chromium.org> + + [chromium] gestureTapDown should not select a RenderView node as target. + https://bugs.webkit.org/show_bug.cgi?id=94956 + + Reviewed by James Robinson. + + Add check to prevent selecting a RenderView node as a highlight target. + + * src/WebViewImpl.cpp: + (WebKit::WebViewImpl::bestTouchLinkNode): + +2012-08-24 Tommy Widenflycht <tommyw@google.com> + + MediaStream API: Add readyState functionality to RTCPeerConnection + https://bugs.webkit.org/show_bug.cgi?id=94813 + + Reviewed by Adam Barth. + + * src/AssertMatchingEnums.cpp: + +2012-08-24 Dan Carney <dcarney@google.com> + + [V8] Refactor away IsolatedWorld + https://bugs.webkit.org/show_bug.cgi?id=93971 + + Reviewed by Kentaro Hara. + + Remove IsolatedWorld class as it was 1:1 with DOMWrapperWorld. + + * src/WebViewImpl.cpp: + (WebKit::WebView::addUserScript): + (WebKit::WebView::addUserStyleSheet): + 2012-08-23 Antoine Labour <piman@chromium.org> [chromium] Fix lost context when textures are evicted @@ -14482,7 +16974,7 @@ (WebKit::WebAccessibilityObject::ariaLiveRegionBusy): (WebKit::WebAccessibilityObject::ariaLiveRegionRelevant): (WebKit::WebAccessibilityObject::ariaLiveRegionStatus): - (WebKit::WebAccessibilityObject::boundingBoxRect): + (WebKit::WebAccessibilityObject::boundingBox): (WebKit::WebAccessibilityObject::estimatedLoadingProgress): (WebKit::WebAccessibilityObject::helpText): (WebKit::WebAccessibilityObject::headingLevel): diff --git a/Source/WebKit/chromium/DEPS b/Source/WebKit/chromium/DEPS index 479de4270..d16efe14c 100644 --- a/Source/WebKit/chromium/DEPS +++ b/Source/WebKit/chromium/DEPS @@ -32,7 +32,7 @@ vars = { 'chromium_svn': 'http://src.chromium.org/svn/trunk/src', - 'chromium_rev': '153032' + 'chromium_rev': '155215' } deps = { diff --git a/Source/WebKit/chromium/WebKit.gyp b/Source/WebKit/chromium/WebKit.gyp index 1fd2164bc..179ad50ef 100644 --- a/Source/WebKit/chromium/WebKit.gyp +++ b/Source/WebKit/chromium/WebKit.gyp @@ -54,7 +54,7 @@ # stored as is. Otherwise, a concatenated file is stored. 'debug_devtools%': 0, - # If set to 1, links against the compositor bindings from the chromium repository + # If set to 1, uses the compositor bindings provided by PlatformSupport # instead of the compositor-implementation binding files in WebKit/chromium/src. 'use_libcc_for_compositor%': 0, @@ -71,13 +71,14 @@ 'type': 'static_library', 'variables': { 'enable_wexit_time_destructors': 1, }, 'dependencies': [ - '../../WebCore/WebCore.gyp/WebCore.gyp:webcore', '../../Platform/Platform.gyp/Platform.gyp:webkit_platform', + '../../WebCore/WebCore.gyp/WebCore.gyp:webcore', '<(chromium_src_dir)/skia/skia.gyp:skia', + '<(chromium_src_dir)/third_party/angle/src/build_angle.gyp:translator_glsl', '<(chromium_src_dir)/third_party/icu/icu.gyp:icuuc', '<(chromium_src_dir)/third_party/npapi/npapi.gyp:npapi', - '<(chromium_src_dir)/third_party/angle/src/build_angle.gyp:translator_glsl', '<(chromium_src_dir)/v8/tools/gyp/v8.gyp:v8', + 'webkit_wtf_support', ], 'export_dependent_settings': [ '../../Platform/Platform.gyp/Platform.gyp:webkit_platform', @@ -277,7 +278,6 @@ 'public/WebTextInputType.h', 'public/WebTextRun.h', 'public/WebTimeRange.h', - 'public/WebTouchCandidatesInfo.h', 'public/WebURLLoaderOptions.h', 'public/WebUserMediaClient.h', 'public/WebUserMediaRequest.h', @@ -359,11 +359,10 @@ 'src/BatteryClientImpl.h', 'src/BlobRegistryProxy.cpp', 'src/BlobRegistryProxy.h', + 'src/DateTimeChooserImpl.cpp', + 'src/DateTimeChooserImpl.h', 'src/ChromeClientImpl.cpp', 'src/ChromeClientImpl.h', - 'src/ChromiumCurrentTime.cpp', - 'src/ChromiumOSRandomSource.cpp', - 'src/ChromiumThreading.cpp', 'src/ColorChooserUIController.cpp', 'src/ColorChooserUIController.h', 'src/CompositionUnderlineBuilder.h', @@ -486,6 +485,8 @@ 'src/WebCache.cpp', 'src/WebColorName.cpp', 'src/WebCommon.cpp', + 'src/WebCompositorInputHandlerImpl.cpp', + 'src/WebCompositorInputHandlerImpl.h', 'src/WebCrossOriginPreflightResultCache.cpp', 'src/WebCursorInfo.cpp', 'src/WebDOMEvent.cpp', @@ -605,8 +606,6 @@ 'src/WebScopedMicrotaskSuppression.cpp', 'src/WebScopedUserGesture.cpp', 'src/WebScriptController.cpp', - 'src/WebScrollbarImpl.cpp', - 'src/WebScrollbarImpl.h', 'src/WebScrollbarThemeClientImpl.cpp', 'src/WebScrollbarThemeClientImpl.h', 'src/WebScrollbarThemePainter.cpp', @@ -741,6 +740,11 @@ 'WARNING_CFLAGS!': ['-Wglobal-constructors'], }, }], + ['use_libcc_for_compositor==0', { + 'sources': [ + '<@(webkit_compositor_unittest_files)', + ], + }], ], 'msvs_settings': { 'VCLinkerTool': { @@ -836,8 +840,11 @@ }, }], ['use_libcc_for_compositor==1', { - 'dependencies': [ - '<(chromium_src_dir)/webkit/compositor/compositor.gyp:webkit_compositor', + 'sources!': [ + '../../WebCore/platform/chromium/support/CCThreadImpl.cpp', + '../../WebCore/platform/chromium/support/CCThreadImpl.h', + '../../WebCore/platform/chromium/support/WebCompositorImpl.cpp', + '../../WebCore/platform/chromium/support/WebCompositorImpl.h', ], }, { # else: use_libcc_for_compositor==0 'sources': [ @@ -855,6 +862,31 @@ ], }, { + 'target_name': 'webkit_wtf_support', + 'type': 'static_library', + 'dependencies': [ + '../../WTF/WTF.gyp/WTF.gyp:wtf', + ], + 'defines': [ + 'WEBKIT_IMPLEMENTATION=1', + ], + 'include_dirs': [ + '../../Platform/chromium', + ], + 'sources': [ + 'src/ChromiumCurrentTime.cpp', + 'src/ChromiumOSRandomSource.cpp', + 'src/ChromiumThreading.cpp', + ], + 'conditions': [ + ['component=="shared_library"', { + 'defines': [ + 'WEBKIT_DLL', + ], + }], + ], + }, + { 'target_name': 'inspector_resources', 'type': 'none', 'dependencies': [ diff --git a/Source/WebKit/chromium/WebKit.gypi b/Source/WebKit/chromium/WebKit.gypi index 890b3f675..5d3f850d5 100644 --- a/Source/WebKit/chromium/WebKit.gypi +++ b/Source/WebKit/chromium/WebKit.gypi @@ -56,12 +56,72 @@ 'tests/ArenaTestHelpers.h', 'tests/AssociatedURLLoaderTest.cpp', 'tests/Canvas2DLayerBridgeTest.cpp', + 'tests/Canvas2DLayerManagerTest.cpp', + 'tests/ClipboardChromiumTest.cpp', + 'tests/DateTimeFormatTest.cpp', + 'tests/DecimalTest.cpp', + 'tests/DragImageTest.cpp', + 'tests/EventListenerTest.cpp', + 'tests/FrameLoaderClientImplTest.cpp', + 'tests/FrameTestHelpers.cpp', + 'tests/FrameTestHelpers.h', + 'tests/GraphicsLayerChromiumTest.cpp', + 'tests/IDBAbortOnCorruptTest.cpp', + 'tests/IDBBindingUtilitiesTest.cpp', + 'tests/IDBDatabaseBackendTest.cpp', + 'tests/IDBFakeBackingStore.h', + 'tests/IDBKeyPathTest.cpp', + 'tests/IDBLevelDBCodingTest.cpp', + 'tests/IDBRequestTest.cpp', + 'tests/ImageLayerChromiumTest.cpp', + 'tests/KeyboardTest.cpp', + 'tests/KURLTest.cpp', + 'tests/LevelDBTest.cpp', + 'tests/LinkHighlightTest.cpp', + 'tests/ListenerLeakTest.cpp', + 'tests/MemoryInfo.cpp', + 'tests/MemoryInstrumentationTest.cpp', + 'tests/OpaqueRectTrackingContentLayerDelegateTest.cpp', + 'tests/OpenTypeVerticalDataTest.cpp', + 'tests/PaintAggregatorTest.cpp', + 'tests/PlatformGestureCurveTest.cpp', + 'tests/PlatformContextSkiaTest.cpp', + 'tests/PODArenaTest.cpp', + 'tests/PODIntervalTreeTest.cpp', + 'tests/PODRedBlackTreeTest.cpp', + 'tests/PopupContainerTest.cpp', + 'tests/RegionTest.cpp', + 'tests/RenderTableCellTest.cpp', + 'tests/RenderTableRowTest.cpp', + 'tests/TilingDataTest.cpp', + 'tests/TreeTestHelpers.cpp', + 'tests/TreeTestHelpers.h', + 'tests/URLTestHelpers.cpp', + 'tests/URLTestHelpers.h', + 'tests/WebCompositorInitializer.h', + 'tests/WebCompositorInputHandlerImplTest.cpp', + 'tests/WebFrameTest.cpp', + 'tests/WebMediaPlayerClientImplTest.cpp', + 'tests/WebPageNewSerializerTest.cpp', + 'tests/WebPageSerializerTest.cpp', + 'tests/WebSocketDeflaterTest.cpp', + 'tests/WebSocketExtensionDispatcherTest.cpp', + 'tests/WebURLRequestTest.cpp', + 'tests/WebURLResponseTest.cpp', + 'tests/WebViewTest.cpp', + ], + + 'webkit_compositor_unittest_files': [ 'tests/CCActiveAnimationTest.cpp', 'tests/CCAnimationTestCommon.cpp', 'tests/CCAnimationTestCommon.h', 'tests/CCDamageTrackerTest.cpp', 'tests/CCDelayBasedTimeSourceTest.cpp', + 'tests/CCDrawQuadTest.cpp', 'tests/CCFrameRateControllerTest.cpp', + 'tests/CCGeometryTestUtils.cpp', + 'tests/CCGeometryTestUtils.h', + 'tests/CCHeadsUpDisplayTest.cpp', 'tests/CCKeyframedAnimationCurveTest.cpp', 'tests/CCLayerAnimationControllerTest.cpp', 'tests/CCLayerImplTest.cpp', @@ -73,36 +133,33 @@ 'tests/CCLayerTreeHostCommonTest.cpp', 'tests/CCLayerTreeHostImplTest.cpp', 'tests/CCLayerTreeHostTest.cpp', - 'tests/CCLayerTreeTestCommon.h', 'tests/CCMathUtilTest.cpp', 'tests/CCOcclusionTrackerTest.cpp', 'tests/CCOcclusionTrackerTestCommon.h', + 'tests/CCPrioritizedTextureTest.cpp', 'tests/CCQuadCullerTest.cpp', + 'tests/CCRenderPassTest.cpp', 'tests/CCRenderSurfaceFiltersTest.cpp', 'tests/CCRenderSurfaceTest.cpp', + 'tests/CCRendererGLTest.cpp', 'tests/CCResourceProviderTest.cpp', 'tests/CCSchedulerStateMachineTest.cpp', - 'tests/CCSchedulerTestCommon.h', 'tests/CCSchedulerTest.cpp', + 'tests/CCSchedulerTestCommon.h', 'tests/CCScopedTextureTest.cpp', 'tests/CCScrollbarAnimationControllerLinearFadeTest.cpp', 'tests/CCSolidColorLayerImplTest.cpp', 'tests/CCTestCommon.h', 'tests/CCTextureUpdateControllerTest.cpp', - 'tests/CCTiledLayerImplTest.cpp', - 'tests/CCTiledLayerTestCommon.h', - 'tests/CCTiledLayerTestCommon.cpp', 'tests/CCThreadTaskTest.cpp', 'tests/CCThreadedTest.cpp', 'tests/CCThreadedTest.h', + 'tests/CCTiledLayerImplTest.cpp', + 'tests/CCTiledLayerTestCommon.cpp', + 'tests/CCTiledLayerTestCommon.h', 'tests/CCTimerTest.cpp', - 'tests/ClipboardChromiumTest.cpp', 'tests/CompositorFakeWebGraphicsContext3D.h', 'tests/ContentLayerChromiumTest.cpp', - 'tests/DateTimeFormatTest.cpp', - 'tests/DecimalTest.cpp', - 'tests/DragImageTest.cpp', - 'tests/EventListenerTest.cpp', 'tests/FakeCCLayerTreeHostClient.h', 'tests/FakeGraphicsContext3DTest.cpp', 'tests/FakeWebCompositorOutputSurface.h', @@ -110,70 +167,23 @@ 'tests/FakeWebScrollbarThemeGeometry.h', 'tests/FilterOperationsTest.cpp', 'tests/FloatQuadTest.cpp', - 'tests/FrameLoaderClientImplTest.cpp', - 'tests/FrameTestHelpers.cpp', - 'tests/FrameTestHelpers.h', - 'tests/GraphicsLayerChromiumTest.cpp', - 'tests/IDBAbortOnCorruptTest.cpp', - 'tests/IDBBindingUtilitiesTest.cpp', - 'tests/IDBDatabaseBackendTest.cpp', - 'tests/IDBFakeBackingStore.h', - 'tests/IDBKeyPathTest.cpp', - 'tests/IDBLevelDBCodingTest.cpp', - 'tests/IDBRequestTest.cpp', - 'tests/ImageLayerChromiumTest.cpp', - 'tests/KeyboardTest.cpp', - 'tests/KURLTest.cpp', 'tests/LayerChromiumTest.cpp', - 'tests/CCRendererGLTest.cpp', - 'tests/LevelDBTest.cpp', - 'tests/LinkHighlightTest.cpp', - 'tests/ListenerLeakTest.cpp', - 'tests/MemoryInfo.cpp', - 'tests/MemoryInstrumentationTest.cpp', 'tests/MockCCQuadCuller.h', - 'tests/OpaqueRectTrackingContentLayerDelegateTest.cpp', - 'tests/OpenTypeVerticalDataTest.cpp', - 'tests/PaintAggregatorTest.cpp', - 'tests/PlatformGestureCurveTest.cpp', - 'tests/PlatformContextSkiaTest.cpp', - 'tests/PODArenaTest.cpp', - 'tests/PODIntervalTreeTest.cpp', - 'tests/PODRedBlackTreeTest.cpp', - 'tests/PopupContainerTest.cpp', - 'tests/CCPrioritizedTextureTest.cpp', - 'tests/RegionTest.cpp', - 'tests/RenderTableCellTest.cpp', - 'tests/RenderTableRowTest.cpp', 'tests/ScrollbarLayerChromiumTest.cpp', 'tests/TextureCopierTest.cpp', 'tests/TextureLayerChromiumTest.cpp', 'tests/ThrottledTextureUploaderTest.cpp', 'tests/TiledLayerChromiumTest.cpp', - 'tests/TilingDataTest.cpp', 'tests/TreeSynchronizerTest.cpp', - 'tests/TreeTestHelpers.cpp', - 'tests/TreeTestHelpers.h', - 'tests/URLTestHelpers.cpp', - 'tests/URLTestHelpers.h', 'tests/WebAnimationTest.cpp', - 'tests/WebCompositorInputHandlerImplTest.cpp', 'tests/WebFloatAnimationCurveTest.cpp', - 'tests/WebFrameTest.cpp', + 'tests/WebInputEventConversionTest.cpp', 'tests/WebLayerTest.cpp', 'tests/WebLayerTreeViewTest.cpp', 'tests/WebLayerTreeViewTestCommon.h', - 'tests/WebMediaPlayerClientImplTest.cpp', - 'tests/WebPageNewSerializerTest.cpp', - 'tests/WebPageSerializerTest.cpp', - 'tests/WebSocketDeflaterTest.cpp', - 'tests/WebSocketExtensionDispatcherTest.cpp', 'tests/WebTransformAnimationCurveTest.cpp', - 'tests/WebTransformationMatrixTest.cpp', 'tests/WebTransformOperationsTest.cpp', - 'tests/WebURLRequestTest.cpp', - 'tests/WebURLResponseTest.cpp', - 'tests/WebViewTest.cpp', + 'tests/WebTransformationMatrixTest.cpp', ], 'webkit_compositor_bindings_files': [ @@ -181,8 +191,6 @@ 'src/WebAnimationCurveCommon.h', 'src/WebAnimationImpl.cpp', 'src/WebAnimationImpl.h', - 'src/WebCompositorInputHandlerImpl.cpp', - 'src/WebCompositorInputHandlerImpl.h', 'src/WebContentLayerImpl.cpp', 'src/WebContentLayerImpl.h', 'src/WebExternalTextureLayerImpl.cpp', @@ -195,7 +203,8 @@ 'src/WebImageLayerImpl.h', 'src/WebLayerImpl.cpp', 'src/WebLayerImpl.h', - 'src/WebLayerTreeView.cpp', + 'src/WebToCCInputHandlerAdapter.cpp', + 'src/WebToCCInputHandlerAdapter.h', 'src/WebLayerTreeViewImpl.cpp', 'src/WebLayerTreeViewImpl.h', 'src/WebScrollbarLayerImpl.cpp', diff --git a/Source/WebKit/chromium/WebKitUnitTests.gyp b/Source/WebKit/chromium/WebKitUnitTests.gyp index a77392ef4..b0f155a74 100644 --- a/Source/WebKit/chromium/WebKitUnitTests.gyp +++ b/Source/WebKit/chromium/WebKitUnitTests.gyp @@ -46,6 +46,8 @@ 'chromium_src_dir': '../../../../..', }], ], + + 'use_libcc_for_compositor%': 0, }, 'targets': [ { @@ -64,7 +66,6 @@ '<(chromium_src_dir)/base/base.gyp:test_support_base', '<(chromium_src_dir)/third_party/zlib/zlib.gyp:zlib', '<(chromium_src_dir)/webkit/support/webkit_support.gyp:webkit_support', - '<(chromium_src_dir)/webkit/support/webkit_support.gyp:webkit_user_agent', ], 'sources': [ 'tests/RunAllTests.cpp', @@ -103,6 +104,11 @@ 'chromium_code': 1, }, }], + ['use_libcc_for_compositor==0', { + 'sources': [ + '<@(webkit_compositor_unittest_files)', + ], + }], ], }], ['inside_chromium_build==1 and OS=="win" and component!="shared_library"', { @@ -190,6 +196,8 @@ '--ant-args', '-DANDROID_TOOLCHAIN=<(android_toolchain)', '--ant-args', + '-DANDROID_GDBSERVER=<(android_gdbserver)', + '--ant-args', '-DPRODUCT_DIR=<(ant_build_out)', '--ant-args', '-DCHROMIUM_SRC=<(ant_build_to_chromium_src)', diff --git a/Source/WebKit/chromium/features.gypi b/Source/WebKit/chromium/features.gypi index 6b165fd8e..4664b04a4 100644 --- a/Source/WebKit/chromium/features.gypi +++ b/Source/WebKit/chromium/features.gypi @@ -38,7 +38,6 @@ 'ENABLE_BLOB_SLICE=1', 'ENABLE_CHANNEL_MESSAGING=1', 'ENABLE_CSP_NEXT=1', - 'ENABLE_CSS3_FLEXBOX=1', 'ENABLE_CSS3_TEXT_DECORATION=0', 'ENABLE_CSS_BOX_DECORATION_BREAK=1', 'ENABLE_CSS_COMPOSITING=0', @@ -87,11 +86,11 @@ 'ENABLE_MHTML=1', 'ENABLE_MICRODATA=0', 'ENABLE_MUTATION_OBSERVERS=<(enable_mutation_observers)', + 'ENABLE_NAVIGATOR_CONTENT_UTILS=1', 'ENABLE_PAGE_VISIBILITY_API=1', 'ENABLE_POINTER_LOCK=1', 'ENABLE_PROGRESS_ELEMENT=1', 'ENABLE_QUOTA=1', - 'ENABLE_REGISTER_PROTOCOL_HANDLER=1', 'ENABLE_REQUEST_ANIMATION_FRAME=1', 'ENABLE_RUBY=1', 'ENABLE_SANDBOX=1', @@ -201,6 +200,11 @@ 'WTF_USE_WEBAUDIO_FFMPEG=1', ], }], + ['OS=="win"', { + 'feature_defines': [ + 'ENABLE_OPENTYPE_VERTICAL=1', + ], + }], ['enable_web_intents==1', { 'feature_defines': [ 'ENABLE_WEB_INTENTS=1', diff --git a/Source/WebKit/chromium/public/WebAccessibilityObject.h b/Source/WebKit/chromium/public/WebAccessibilityObject.h index 029f43872..3a32a95ee 100644 --- a/Source/WebKit/chromium/public/WebAccessibilityObject.h +++ b/Source/WebKit/chromium/public/WebAccessibilityObject.h @@ -69,6 +69,7 @@ public: WEBKIT_EXPORT bool equals(const WebAccessibilityObject&) const; bool isNull() const { return m_private.isNull(); } + // isDetached also checks for null, so it's safe to just call isDetached. WEBKIT_EXPORT bool isDetached() const; // Static methods for enabling accessibility. @@ -77,11 +78,17 @@ public: WEBKIT_EXPORT int axID() const; + // Update the underlying tree, and return true if this object is + // still valid (not detached). Note that calling this method + // can cause other WebAccessibilityObjects to become invalid, too, + // so always call isDetached if updateBackingStoreAndCheckValidity + // has been called on any object, or if any other WebCore code has run. + WEBKIT_EXPORT bool updateBackingStoreAndCheckValidity(); + WEBKIT_EXPORT WebString accessibilityDescription() const; WEBKIT_EXPORT WebString actionVerb() const; WEBKIT_EXPORT bool canSetFocusAttribute() const; WEBKIT_EXPORT bool canSetValueAttribute() const; - WEBKIT_EXPORT bool isValid() const; WEBKIT_EXPORT unsigned childCount() const; @@ -126,6 +133,7 @@ public: WEBKIT_EXPORT WebString ariaLiveRegionRelevant() const; WEBKIT_EXPORT WebString ariaLiveRegionStatus() const; WEBKIT_EXPORT WebRect boundingBoxRect() const; + WEBKIT_EXPORT bool canvasHasFallbackContent() const; WEBKIT_EXPORT double estimatedLoadingProgress() const; WEBKIT_EXPORT WebString helpText() const; WEBKIT_EXPORT int headingLevel() const; @@ -142,6 +150,7 @@ public: WEBKIT_EXPORT WebAccessibilityObject titleUIElement() const; WEBKIT_EXPORT WebURL url() const; + WEBKIT_EXPORT bool supportsRangeValue() const; WEBKIT_EXPORT WebString valueDescription() const; WEBKIT_EXPORT float valueForRange() const; WEBKIT_EXPORT float maxValueForRange() const; diff --git a/Source/WebKit/chromium/public/WebAccessibilityRole.h b/Source/WebKit/chromium/public/WebAccessibilityRole.h index f40c1d99b..db8fbcbd4 100644 --- a/Source/WebKit/chromium/public/WebAccessibilityRole.h +++ b/Source/WebKit/chromium/public/WebAccessibilityRole.h @@ -49,6 +49,7 @@ enum WebAccessibilityRole { WebAccessibilityRoleBrowser, WebAccessibilityRoleBusyIndicator, WebAccessibilityRoleButton, + WebAccessibilityRoleCanvas, WebAccessibilityRoleCell, WebAccessibilityRoleCheckBox, WebAccessibilityRoleColorWell, @@ -74,6 +75,7 @@ enum WebAccessibilityRole { WebAccessibilityRoleGrowArea, WebAccessibilityRoleHeading, WebAccessibilityRoleHelpTag, + WebAccessibilityRoleHorizontalRule, WebAccessibilityRoleIgnored, WebAccessibilityRoleImage, WebAccessibilityRoleImageMap, diff --git a/Source/WebKit/chromium/public/WebActiveWheelFlingParameters.h b/Source/WebKit/chromium/public/WebActiveWheelFlingParameters.h index ef277d5fd..2133e8508 100644 --- a/Source/WebKit/chromium/public/WebActiveWheelFlingParameters.h +++ b/Source/WebKit/chromium/public/WebActiveWheelFlingParameters.h @@ -26,6 +26,7 @@ #ifndef WebActiveWheelFlingParameters_h #define WebActiveWheelFlingParameters_h +#include "WebInputEvent.h" #include "platform/WebCommon.h" #include "platform/WebFloatPoint.h" @@ -39,11 +40,13 @@ struct WebActiveWheelFlingParameters { WebPoint point; WebPoint globalPoint; int modifiers; + WebGestureEvent::SourceDevice sourceDevice; WebSize cumulativeScroll; double startTime; WebActiveWheelFlingParameters() : modifiers(0) + , sourceDevice(WebGestureEvent::Touchpad) , startTime(0) { } diff --git a/Source/WebKit/chromium/public/WebCompositorInputHandlerClient.h b/Source/WebKit/chromium/public/WebCompositorInputHandlerClient.h index 7c911d8f8..a4c4f62c3 100644 --- a/Source/WebKit/chromium/public/WebCompositorInputHandlerClient.h +++ b/Source/WebKit/chromium/public/WebCompositorInputHandlerClient.h @@ -35,12 +35,12 @@ public: // Callbacks invoked from the compositor thread. virtual void willShutdown() = 0; - // Exactly one of the following two callbacks will be invoked after every call to WebCompositor::handleInputEvent(): + // Exactly one of the following two callbacks will be invoked after every call to WebCompositorInputHandler::handleInputEvent(): - // Called when the WebCompositor handled the input event and no further processing is required. + // Called when the WebCompositorInputHandler handled the input event and no further processing is required. virtual void didHandleInputEvent() = 0; - // Called when the WebCompositor did not handle the input event. If sendToWidget is true, the input event + // Called when the WebCompositorInputHandler did not handle the input event. If sendToWidget is true, the input event // should be forwarded to the WebWidget associated with this compositor for further processing. virtual void didNotHandleInputEvent(bool sendToWidget) = 0; diff --git a/Source/WebKit/chromium/public/WebFrame.h b/Source/WebKit/chromium/public/WebFrame.h index 06531df8f..56cbe1ea4 100644 --- a/Source/WebKit/chromium/public/WebFrame.h +++ b/Source/WebKit/chromium/public/WebFrame.h @@ -415,6 +415,9 @@ public: // Returns true if a user gesture is currently being processed. virtual bool isProcessingUserGesture() const = 0; + // Returns true if a consumable gesture exists and has been successfully consumed. + virtual bool consumeUserGesture() const = 0; + // Returns true if this frame is in the process of opening a new frame // with a suppressed opener. virtual bool willSuppressOpenerInNewFrame() const = 0; @@ -469,10 +472,29 @@ public: // there is ranged selection. virtual bool selectWordAroundCaret() = 0; + // DEPRECATED: Use moveSelectionStart / moveSelectionEnd / moveCaret + // This method is intended for touch-based UIs, but it's missing some + // functionality needed on Android, like preventing collapsed selections. virtual void selectRange(const WebPoint& start, const WebPoint& end) = 0; virtual void selectRange(const WebRange&) = 0; + // The methods below are for adjusting the start and/or end of the current + // selection by direct manipulation on a touch-based UI. To enter selection + // mode in the first place, call selectRange() or send a fake mouse event. + + // Moves the start of the current selection, keeping the end fixed. + // Returns true on success, false if there is no selection to modify. + virtual bool moveSelectionStart(const WebPoint&, bool allowCollapsedSelection) = 0; + + // Moves the end of the current selection, keeping the start fixed. + // Returns true on success, false if there is no selection to modify. + virtual bool moveSelectionEnd(const WebPoint&, bool allowCollapsedSelection) = 0; + + // Move both endpoints of the current selection to the given position. + // The caret will remain pinned inside the current editable region. + // Returns true on success, false if there is no selection or if we're not editing. + virtual bool moveCaret(const WebPoint&) = 0; // Printing ------------------------------------------------------------ diff --git a/Source/WebKit/chromium/public/WebIDBFactory.h b/Source/WebKit/chromium/public/WebIDBFactory.h index f10a8eb9a..70c8c840c 100644 --- a/Source/WebKit/chromium/public/WebIDBFactory.h +++ b/Source/WebKit/chromium/public/WebIDBFactory.h @@ -41,6 +41,7 @@ namespace WebKit { class WebFrame; class WebIDBDatabase; +class WebIDBDatabaseCallbacks; class WebSecurityOrigin; // The entry point into the IndexedDatabase API. These classes match their Foo and @@ -54,16 +55,13 @@ public: virtual void getDatabaseNames(WebIDBCallbacks* callbacks, const WebSecurityOrigin& origin, WebFrame* frame, const WebString& dataDir) { WEBKIT_ASSERT_NOT_REACHED(); } - // FIXME: Delete this method when derived classes in chromium have - // implemented the other open method. - virtual void open(const WebString& name, WebIDBCallbacks* callbacks, const WebSecurityOrigin& origin, WebFrame* frame, const WebString& dataDir) - { - open(name, WebIDBMetadata::NoIntVersion, callbacks, origin, frame, dataDir); - } - + // FIXME: This overload should be removed when WK90411 lands. // The WebKit implementation of open ignores the WebFrame* parameter. virtual void open(const WebString& name, long long version, WebIDBCallbacks* callbacks, const WebSecurityOrigin& origin, WebFrame* frame, const WebString& dataDir) { WEBKIT_ASSERT_NOT_REACHED(); } + // The WebKit implementation of open ignores the WebFrame* parameter. + virtual void open(const WebString& name, long long version, WebIDBCallbacks* callbacks, WebIDBDatabaseCallbacks* databaseCallbacks, const WebSecurityOrigin& origin, WebFrame* frame, const WebString& dataDir) { WEBKIT_ASSERT_NOT_REACHED(); } + virtual void deleteDatabase(const WebString& name, WebIDBCallbacks*, const WebSecurityOrigin&, WebFrame*, const WebString& dataDir) { WEBKIT_ASSERT_NOT_REACHED(); } }; diff --git a/Source/WebKit/chromium/public/WebIDBKey.h b/Source/WebKit/chromium/public/WebIDBKey.h index 0b704cac2..3819de875 100644 --- a/Source/WebKit/chromium/public/WebIDBKey.h +++ b/Source/WebKit/chromium/public/WebIDBKey.h @@ -35,9 +35,6 @@ namespace WebCore { class IDBKey; } namespace WebKit { -class WebIDBKeyPath; -class WebSerializedScriptValue; - class WebIDBKey { public: // Please use one of the factory methods. This is public only to allow WebVector. @@ -50,8 +47,6 @@ public: WEBKIT_EXPORT static WebIDBKey createNumber(double); WEBKIT_EXPORT static WebIDBKey createInvalid(); WEBKIT_EXPORT static WebIDBKey createNull(); - WEBKIT_EXPORT static WebIDBKey createFromValueAndKeyPath(const WebSerializedScriptValue&, const WebIDBKeyPath&); - WEBKIT_EXPORT static WebSerializedScriptValue injectIDBKeyIntoSerializedValue(const WebIDBKey&, const WebSerializedScriptValue&, const WebIDBKeyPath&); WebIDBKey(const WebIDBKey& e) { assign(e); } WebIDBKey& operator=(const WebIDBKey& e) diff --git a/Source/WebKit/chromium/public/WebInputEvent.h b/Source/WebKit/chromium/public/WebInputEvent.h index d1f5173e9..63ce7131c 100644 --- a/Source/WebKit/chromium/public/WebInputEvent.h +++ b/Source/WebKit/chromium/public/WebInputEvent.h @@ -151,6 +151,10 @@ public: // event and back will not preserve these flags. CapsLockOn = 1 << 9, NumLockOn = 1 << 10, + + // Left/right modifiers for keyboard events. + IsLeft = 1 << 11, + IsRight = 1 << 12, }; static const int InputModifiers = ShiftKey | ControlKey | AltKey | MetaKey; @@ -237,7 +241,11 @@ public: // |windowsKeyCode| is the Windows key code associated with this key // event. Sometimes it's direct from the event (i.e. on Windows), // sometimes it's via a mapping function. If you want a list, see - // WebCore/platform/chromium/KeyboardCodes* . + // WebCore/platform/chromium/KeyboardCodes* . Note that this should + // ALWAYS store the non-locational version of a keycode as this is + // what is returned by the Windows API. For example, it should + // store VK_SHIFT instead of VK_RSHIFT. The location information + // should be stored in |modifiers|. int windowsKeyCode; // The actual key code genenerated by the platform. The DOM spec runs @@ -279,6 +287,9 @@ public: // Sets keyIdentifier based on the value of windowsKeyCode. This is // handy for generating synthetic keyboard events. WEBKIT_EXPORT void setKeyIdentifierFromWindowsKeyCode(); + + static int windowsKeyCodeWithoutLocation(int keycode); + static int locationModifiersFromWindowsKeyCode(int keycode); }; // WebMouseEvent -------------------------------------------------------------- @@ -365,6 +376,11 @@ public: class WebGestureEvent : public WebInputEvent { public: + enum SourceDevice { + Touchpad, + Touchscreen, + }; + int x; int y; int globalX; @@ -398,6 +414,7 @@ public: struct { float velocityX; float velocityY; + SourceDevice sourceDevice; } flingStart; struct { diff --git a/Source/WebKit/chromium/public/WebMediaPlayer.h b/Source/WebKit/chromium/public/WebMediaPlayer.h index ed62754d3..e0395ccd3 100644 --- a/Source/WebKit/chromium/public/WebMediaPlayer.h +++ b/Source/WebKit/chromium/public/WebMediaPlayer.h @@ -186,6 +186,7 @@ public: virtual WebTimeRanges sourceBuffered(const WebString& id) { return WebTimeRanges(); }; virtual bool sourceAppend(const WebString& id, const unsigned char* data, unsigned length) { return false; } virtual bool sourceAbort(const WebString& id) { return false; } + virtual void sourceSetDuration(double) { } virtual void sourceEndOfStream(EndOfStreamStatus) { } virtual bool sourceSetTimestampOffset(const WebString& id, double offset) { return false; } diff --git a/Source/WebKit/chromium/public/WebRuntimeFeatures.h b/Source/WebKit/chromium/public/WebRuntimeFeatures.h index 7152249e5..012efe82d 100644 --- a/Source/WebKit/chromium/public/WebRuntimeFeatures.h +++ b/Source/WebKit/chromium/public/WebRuntimeFeatures.h @@ -63,7 +63,7 @@ public: WEBKIT_EXPORT static void enableApplicationCache(bool); WEBKIT_EXPORT static bool isApplicationCacheEnabled(); - + WEBKIT_EXPORT static void enableDataTransferItems(bool); WEBKIT_EXPORT static bool isDataTransferItemsEnabled(); @@ -76,6 +76,7 @@ public: WEBKIT_EXPORT static void enableWebAudio(bool); WEBKIT_EXPORT static bool isWebAudioEnabled(); + // TODO: Remove these (since they're no-ops) once Chromium code stops calling them. WEBKIT_EXPORT static void enablePushState(bool); WEBKIT_EXPORT static bool isPushStateEnabled(bool); @@ -99,7 +100,7 @@ public: WEBKIT_EXPORT static void enableFileSystem(bool); WEBKIT_EXPORT static bool isFileSystemEnabled(); - + WEBKIT_EXPORT static void enableJavaScriptI18NAPI(bool); WEBKIT_EXPORT static bool isJavaScriptI18NAPIEnabled(); diff --git a/Source/WebKit/chromium/public/WebSettings.h b/Source/WebKit/chromium/public/WebSettings.h index e1e74a9b9..f47ff9f7c 100644 --- a/Source/WebKit/chromium/public/WebSettings.h +++ b/Source/WebKit/chromium/public/WebSettings.h @@ -103,6 +103,7 @@ public: virtual void setForceCompositingMode(bool) = 0; virtual void setFrameFlatteningEnabled(bool) = 0; virtual void setFullScreenEnabled(bool) = 0; + virtual void setGestureTapHighlightEnabled(bool) = 0; virtual void setHyperlinkAuditingEnabled(bool) = 0; virtual void setImagesEnabled(bool) = 0; virtual void setInteractiveFormValidationEnabled(bool) = 0; diff --git a/Source/WebKit/chromium/public/WebView.h b/Source/WebKit/chromium/public/WebView.h index e95ec6b53..5bb5712fa 100644 --- a/Source/WebKit/chromium/public/WebView.h +++ b/Source/WebKit/chromium/public/WebView.h @@ -60,11 +60,9 @@ class WebString; class WebTextFieldDecoratorClient; class WebViewClient; struct WebActiveWheelFlingParameters; -struct WebFloatQuad; struct WebMediaPlayerAction; struct WebPluginAction; struct WebPoint; -struct WebTouchCandidatesInfo; class WebView : public WebWidget { public: @@ -469,20 +467,6 @@ public: virtual WebViewBenchmarkSupport* benchmarkSupport() { return 0; } - - // Touch ---------------------------------------------------------------- - - // Returns a list of layout bounding boxes of the event target node touched by - // the input point with the padding. If no target node is found, an empty - // list is returned. If the node is of an inline type, each line box is returned - // separately. Otherwise, one bounding box is returned. Also returns information - // about the found candidates and their dimension, and the highlight color to use. - virtual WebVector<WebFloatQuad> getTouchHighlightQuads(const WebPoint&, - int padding, - WebTouchCandidatesInfo& outTouchInfo, - WebColor& outTapHighlightColor) = 0; - - // Visibility ----------------------------------------------------------- // Sets the visibility of the WebView. diff --git a/Source/WebKit/chromium/public/WebViewClient.h b/Source/WebKit/chromium/public/WebViewClient.h index 904d4a2d2..839ed0d17 100644 --- a/Source/WebKit/chromium/public/WebViewClient.h +++ b/Source/WebKit/chromium/public/WebViewClient.h @@ -62,6 +62,7 @@ class WebFileChooserCompletion; class WebFrame; class WebGeolocationClient; class WebGeolocationService; +class WebGestureEvent; class WebHelperPlugin; class WebHitTestResult; class WebIconLoadingCompletion; @@ -84,6 +85,7 @@ struct WebConsoleMessage; struct WebContextMenuData; struct WebPoint; struct WebPopupMenuInfo; +struct WebRect; struct WebSize; struct WebWindowFeatures; @@ -285,6 +287,9 @@ public: // unless the view did not need a layout. virtual void didUpdateLayout() { } + // Return true to swallow the input event if the embedder will start a disambiguation popup + virtual bool didTapMultipleTargets(const WebGestureEvent&, const WebVector<WebRect>& targetRects) { return false; } + // Session history ----------------------------------------------------- // Tells the embedder to navigate back or forward in session history by diff --git a/Source/WebKit/chromium/public/linux/WebFontInfo.h b/Source/WebKit/chromium/public/linux/WebFontInfo.h index ed88b9306..a5758f1d4 100644 --- a/Source/WebKit/chromium/public/linux/WebFontInfo.h +++ b/Source/WebKit/chromium/public/linux/WebFontInfo.h @@ -28,51 +28,4 @@ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -#ifndef WebFontInfo_h -#define WebFontInfo_h - -#include "../linux/WebFontRenderStyle.h" -#include "../platform/WebCString.h" -#include "../platform/linux/WebFontFamily.h" - -#include <string.h> -#include <unistd.h> - -namespace WebKit { - -class WebFontInfo { -public: - // Set a global preference describing whether renderStyleForStrike() should - // enable subpixel positioning or not. FontConfig doesn't currently provide - // a parameter for controlling this. - WEBKIT_EXPORT static void setSubpixelPositioning(bool); - - // Return a font family which provides glyphs for the Unicode code points - // specified by |utf16| - // characters: a native-endian UTF16 string - // numCharacters: the number of 16-bit words in |utf16| - // preferredLocale: preferred locale identifier for the |characters| - // (e.g. "en", "ja", "zh-CN") - // - // Returns: the font family or an empty string if the request could not be - // satisfied. - // Returns: the font family instance. The instance has an empty font name if the request could not be satisfied. - WEBKIT_EXPORT static void familyForChars(const WebUChar* characters, size_t numCharacters, const char* preferredLocale, WebFontFamily*); - - // Fill out the given WebFontRenderStyle with the user's preferences for - // rendering the given font at the given size (in pixels). - // family: i.e. "Times New Roman" - // sizeAndStyle: - // 3322222222221111111111 - // 10987654321098765432109876543210 - // +--------------------------------+ - // |..............Size............IB| - // +--------------------------------+ - // I: italic flag - // B: bold flag - WEBKIT_EXPORT static void renderStyleForStrike(const char* family, int sizeAndStyle, WebFontRenderStyle* result); -}; - -} // namespace WebKit - -#endif +#include "../../../../Platform/chromium/public/linux/WebFontInfo.h" diff --git a/Source/WebKit/chromium/public/linux/WebFontRenderStyle.h b/Source/WebKit/chromium/public/linux/WebFontRenderStyle.h index f4858f3ec..26f61aa4b 100644 --- a/Source/WebKit/chromium/public/linux/WebFontRenderStyle.h +++ b/Source/WebKit/chromium/public/linux/WebFontRenderStyle.h @@ -28,36 +28,4 @@ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -#ifndef WebFontRenderStyle_h -#define WebFontRenderStyle_h - -#include "../platform/WebCommon.h" - -namespace WebCore { struct FontRenderStyle; } - -namespace WebKit { - -struct WEBKIT_EXPORT WebFontRenderStyle { - // Each of the use* members below can take one of three values: - // 0: off - // 1: on - // 2: no preference expressed - char useBitmaps; // use embedded bitmap strike if possible - char useAutoHint; // use 'auto' hinting (FreeType specific) - char useHinting; // hint glyphs to the pixel grid - char hintStyle; // level of hinting, 0..3 - char useAntiAlias; // antialias glyph shapes - char useSubpixelRendering; // use subpixel rendering (partially-filled pixels) - char useSubpixelPositioning; // use subpixel positioning (fractional X positions for glyphs) - -#if WEBKIT_IMPLEMENTATION - // Translates the members of this struct to a FontRenderStyle - void toFontRenderStyle(WebCore::FontRenderStyle*); -#endif - - void setDefaults(); -}; - -} // namespace WebKit - -#endif // WebFontRenderStyle_h +#include "../../../../Platform/chromium/public/linux/WebFontRenderStyle.h" diff --git a/Source/WebKit/chromium/public/platform/WebKitPlatformSupport.h b/Source/WebKit/chromium/public/platform/WebKitPlatformSupport.h index 70ad85228..a4e2397cd 100644 --- a/Source/WebKit/chromium/public/platform/WebKitPlatformSupport.h +++ b/Source/WebKit/chromium/public/platform/WebKitPlatformSupport.h @@ -49,8 +49,6 @@ namespace WebKit { class WebApplicationCacheHost; // FIXME: Does this belong in platform? class WebApplicationCacheHostClient; // FIXME: Does this belong in platform? class WebIDBFactory; // FIXME: Does this belong in platform? -class WebIDBKey; // FIXME: Does this belong in platform? -class WebIDBKeyPath; // FIXME: Does this belong in platform? class WebPluginListBuilder; // FIXME: Does this belong in platform? class WebSharedWorkerRepository; // FIXME: Does this belong in platform? @@ -60,8 +58,6 @@ public: // Indexed Database ---------------------------------------------------- virtual WebIDBFactory* idbFactory() { return 0; } - virtual void createIDBKeysFromSerializedValuesAndKeyPath(const WebVector<WebSerializedScriptValue>& values, const WebIDBKeyPath& keyPath, WebVector<WebIDBKey>& keys) { } - virtual WebSerializedScriptValue injectIDBKeyIntoSerializedValue(const WebIDBKey& key, const WebSerializedScriptValue& value, const WebIDBKeyPath& keyPath) { return WebSerializedScriptValue(); } // Plugins ------------------------------------------------------------- diff --git a/Source/WebKit/chromium/src/AssertMatchingEnums.cpp b/Source/WebKit/chromium/src/AssertMatchingEnums.cpp index 27239d769..cfaa26bab 100644 --- a/Source/WebKit/chromium/src/AssertMatchingEnums.cpp +++ b/Source/WebKit/chromium/src/AssertMatchingEnums.cpp @@ -64,6 +64,7 @@ #include "PageVisibilityState.h" #include "PeerConnection00.h" #include "PlatformCursor.h" +#include "RTCPeerConnectionHandlerClient.h" #include "ReferrerPolicy.h" #include "ResourceResponse.h" #include "Settings.h" @@ -108,13 +109,15 @@ #include "WebTextCheckingResult.h" #include "WebTextCheckingType.h" #include "WebView.h" -#include "platform/WebICEOptions.h" -#include "platform/WebMediaStreamSource.h" -#include "platform/WebPeerConnection00Handler.h" -#include "platform/WebPeerConnection00HandlerClient.h" #include <public/WebClipboard.h> #include <public/WebFileSystem.h> #include <public/WebFilterOperation.h> +#include <public/WebICEOptions.h> +#include <public/WebMediaStreamSource.h> +#include <public/WebPeerConnection00Handler.h> +#include <public/WebPeerConnection00HandlerClient.h> +#include <public/WebRTCPeerConnectionHandler.h> +#include <public/WebRTCPeerConnectionHandlerClient.h> #include <public/WebReferrerPolicy.h> #include <public/WebScrollbar.h> #include <public/WebURLResponse.h> @@ -258,6 +261,7 @@ COMPILE_ASSERT_MATCHING_ENUM(WebAccessibilityRoleDocumentNote, DocumentNoteRole) COMPILE_ASSERT_MATCHING_ENUM(WebAccessibilityRoleDocumentRegion, DocumentRegionRole); COMPILE_ASSERT_MATCHING_ENUM(WebAccessibilityRoleUserInterfaceTooltip, UserInterfaceTooltipRole); COMPILE_ASSERT_MATCHING_ENUM(WebAccessibilityRoleToggleButton, ToggleButtonRole); +COMPILE_ASSERT_MATCHING_ENUM(WebAccessibilityRoleCanvas, CanvasRole); COMPILE_ASSERT_MATCHING_ENUM(WebApplicationCacheHost::Uncached, ApplicationCacheHost::UNCACHED); COMPILE_ASSERT_MATCHING_ENUM(WebApplicationCacheHost::Idle, ApplicationCacheHost::IDLE); @@ -592,6 +596,21 @@ COMPILE_ASSERT_MATCHING_ENUM(WebPeerConnection00HandlerClient::ICEStateConnected COMPILE_ASSERT_MATCHING_ENUM(WebPeerConnection00HandlerClient::ICEStateCompleted, PeerConnection00::ICE_COMPLETED); COMPILE_ASSERT_MATCHING_ENUM(WebPeerConnection00HandlerClient::ICEStateFailed, PeerConnection00::ICE_FAILED); COMPILE_ASSERT_MATCHING_ENUM(WebPeerConnection00HandlerClient::ICEStateClosed, PeerConnection00::ICE_CLOSED); + +COMPILE_ASSERT_MATCHING_ENUM(WebRTCPeerConnectionHandlerClient::ReadyStateNew, RTCPeerConnectionHandlerClient::ReadyStateNew); +COMPILE_ASSERT_MATCHING_ENUM(WebRTCPeerConnectionHandlerClient::ReadyStateOpening, RTCPeerConnectionHandlerClient::ReadyStateOpening); +COMPILE_ASSERT_MATCHING_ENUM(WebRTCPeerConnectionHandlerClient::ReadyStateActive, RTCPeerConnectionHandlerClient::ReadyStateActive); +COMPILE_ASSERT_MATCHING_ENUM(WebRTCPeerConnectionHandlerClient::ReadyStateClosing, RTCPeerConnectionHandlerClient::ReadyStateClosing); +COMPILE_ASSERT_MATCHING_ENUM(WebRTCPeerConnectionHandlerClient::ReadyStateClosed, RTCPeerConnectionHandlerClient::ReadyStateClosed); + +COMPILE_ASSERT_MATCHING_ENUM(WebRTCPeerConnectionHandlerClient::ICEStateNew, RTCPeerConnectionHandlerClient::IceStateNew); +COMPILE_ASSERT_MATCHING_ENUM(WebRTCPeerConnectionHandlerClient::ICEStateGathering, RTCPeerConnectionHandlerClient::IceStateGathering); +COMPILE_ASSERT_MATCHING_ENUM(WebRTCPeerConnectionHandlerClient::ICEStateWaiting, RTCPeerConnectionHandlerClient::IceStateWaiting); +COMPILE_ASSERT_MATCHING_ENUM(WebRTCPeerConnectionHandlerClient::ICEStateChecking, RTCPeerConnectionHandlerClient::IceStateChecking); +COMPILE_ASSERT_MATCHING_ENUM(WebRTCPeerConnectionHandlerClient::ICEStateConnected, RTCPeerConnectionHandlerClient::IceStateConnected); +COMPILE_ASSERT_MATCHING_ENUM(WebRTCPeerConnectionHandlerClient::ICEStateCompleted, RTCPeerConnectionHandlerClient::IceStateCompleted); +COMPILE_ASSERT_MATCHING_ENUM(WebRTCPeerConnectionHandlerClient::ICEStateFailed, RTCPeerConnectionHandlerClient::IceStateFailed); +COMPILE_ASSERT_MATCHING_ENUM(WebRTCPeerConnectionHandlerClient::ICEStateClosed, RTCPeerConnectionHandlerClient::IceStateClosed); #endif #if ENABLE(SCRIPTED_SPEECH) diff --git a/Source/WebKit/chromium/src/ChromeClientImpl.cpp b/Source/WebKit/chromium/src/ChromeClientImpl.cpp index d73654578..985757783 100644 --- a/Source/WebKit/chromium/src/ChromeClientImpl.cpp +++ b/Source/WebKit/chromium/src/ChromeClientImpl.cpp @@ -42,6 +42,7 @@ #include "Console.h" #include "Cursor.h" #include "DatabaseTracker.h" +#include "DateTimeChooserImpl.h" #include "Document.h" #include "DocumentLoader.h" #include "ExternalPopupMenu.h" @@ -652,6 +653,8 @@ void ChromeClientImpl::dispatchViewportPropertiesDidChange(const ViewportArgumen args, settings->layoutFallbackWidth(), deviceRect.width, deviceRect.height, dpi / ViewportArguments::deprecatedTargetDPI, IntSize(deviceRect.width, deviceRect.height)); + restrictScaleFactorToInitialScaleIfNotUserScalable(computed); + if (m_webView->ignoreViewportTagMaximumScale()) { computed.maximumScale = max(computed.maximumScale, m_webView->maxPageScaleFactor); computed.userScalable = true; @@ -704,6 +707,13 @@ PassOwnPtr<WebColorChooser> ChromeClientImpl::createWebColorChooser(WebColorChoo } #endif +#if ENABLE(CALENDAR_PICKER) +PassOwnPtr<WebCore::DateTimeChooser> ChromeClientImpl::openDateTimeChooser(WebCore::DateTimeChooserClient* pickerClient, const WebCore::DateTimeChooserParameters& parameters) +{ + return adoptPtr(new DateTimeChooserImpl(this, pickerClient, parameters)); +} +#endif + void ChromeClientImpl::runOpenPanel(Frame* frame, PassRefPtr<FileChooser> fileChooser) { WebViewClient* client = m_webView->client(); @@ -1119,18 +1129,18 @@ void ChromeClientImpl::dashboardRegionsChanged() } #endif -#if ENABLE(REGISTER_PROTOCOL_HANDLER) -PassOwnPtr<RegisterProtocolHandlerClientImpl> RegisterProtocolHandlerClientImpl::create(WebViewImpl* webView) +#if ENABLE(NAVIGATOR_CONTENT_UTILS) +PassOwnPtr<NavigatorContentUtilsClientImpl> NavigatorContentUtilsClientImpl::create(WebViewImpl* webView) { - return adoptPtr(new RegisterProtocolHandlerClientImpl(webView)); + return adoptPtr(new NavigatorContentUtilsClientImpl(webView)); } -RegisterProtocolHandlerClientImpl::RegisterProtocolHandlerClientImpl(WebViewImpl* webView) +NavigatorContentUtilsClientImpl::NavigatorContentUtilsClientImpl(WebViewImpl* webView) : m_webView(webView) { } -void RegisterProtocolHandlerClientImpl::registerProtocolHandler(const String& scheme, const String& baseURL, const String& url, const String& title) +void NavigatorContentUtilsClientImpl::registerProtocolHandler(const String& scheme, const String& baseURL, const String& url, const String& title) { m_webView->client()->registerProtocolHandler(scheme, baseURL, url, title); } diff --git a/Source/WebKit/chromium/src/ChromeClientImpl.h b/Source/WebKit/chromium/src/ChromeClientImpl.h index a786dc5eb..7d456fbf5 100644 --- a/Source/WebKit/chromium/src/ChromeClientImpl.h +++ b/Source/WebKit/chromium/src/ChromeClientImpl.h @@ -33,8 +33,8 @@ #define ChromeClientImpl_h #include "ChromeClientChromium.h" +#include "NavigatorContentUtilsClient.h" #include "PopupMenu.h" -#include "RegisterProtocolHandlerClient.h" #include "SearchPopupMenu.h" #include "WebNavigationPolicy.h" #include <public/WebColor.h> @@ -50,6 +50,8 @@ class PopupContainer; class PopupMenuClient; class RenderBox; class SecurityOrigin; +class DateTimeChooser; +class DateTimeChooserClient; struct WindowFeatures; } @@ -144,6 +146,9 @@ public: virtual PassOwnPtr<WebCore::ColorChooser> createColorChooser(WebCore::ColorChooserClient*, const WebCore::Color&) OVERRIDE; PassOwnPtr<WebColorChooser> createWebColorChooser(WebColorChooserClient*, const WebColor&); #endif +#if ENABLE(CALENDAR_PICKER) + virtual PassOwnPtr<WebCore::DateTimeChooser> openDateTimeChooser(WebCore::DateTimeChooserClient*, const WebCore::DateTimeChooserParameters&) OVERRIDE; +#endif virtual void runOpenPanel(WebCore::Frame*, PassRefPtr<WebCore::FileChooser>); virtual void loadIconForFiles(const Vector<WTF::String>&, WebCore::FileIconLoader*); #if ENABLE(DIRECTORY_UPLOAD) @@ -237,15 +242,15 @@ private: #endif }; -class RegisterProtocolHandlerClientImpl : public WebCore::RegisterProtocolHandlerClient { +class NavigatorContentUtilsClientImpl : public WebCore::NavigatorContentUtilsClient { public: - static PassOwnPtr<RegisterProtocolHandlerClientImpl> create(WebViewImpl*); - ~RegisterProtocolHandlerClientImpl() { } + static PassOwnPtr<NavigatorContentUtilsClientImpl> create(WebViewImpl*); + ~NavigatorContentUtilsClientImpl() { } virtual void registerProtocolHandler(const String& scheme, const String& baseURL, const String& url, const String& title) OVERRIDE; private: - explicit RegisterProtocolHandlerClientImpl(WebViewImpl*); + explicit NavigatorContentUtilsClientImpl(WebViewImpl*); WebViewImpl* m_webView; }; diff --git a/Source/WebKit/chromium/src/ContextMenuClientImpl.cpp b/Source/WebKit/chromium/src/ContextMenuClientImpl.cpp index adaa41392..2fd6431c1 100644 --- a/Source/WebKit/chromium/src/ContextMenuClientImpl.cpp +++ b/Source/WebKit/chromium/src/ContextMenuClientImpl.cpp @@ -53,7 +53,6 @@ #include "KURL.h" #include "MediaError.h" #include "Page.h" -#include "PlatformString.h" #include "RenderWidget.h" #include "Settings.h" #include "TextBreakIterator.h" @@ -75,6 +74,7 @@ #include "platform/WebVector.h" #include "WebViewClient.h" #include "WebViewImpl.h" +#include <wtf/text/WTFString.h> using namespace WebCore; @@ -122,7 +122,7 @@ static String selectMisspelledWord(const ContextMenu* defaultMenu, Frame* select // Selection is empty, so change the selection to the word under the cursor. HitTestResult hitTestResult = selectedFrame->eventHandler()-> - hitTestResultAtPoint(selectedFrame->page()->contextMenuController()->hitTestResult().point(), true); + hitTestResultAtPoint(selectedFrame->page()->contextMenuController()->hitTestResult().point(), HitTestRequest::ReadOnly | HitTestRequest::Active | HitTestRequest::AllowShadowContent); Node* innerNode = hitTestResult.innerNode(); VisiblePosition pos(innerNode->renderer()->positionForPoint( hitTestResult.localPoint())); diff --git a/Source/WebKit/chromium/src/DateTimeChooserImpl.cpp b/Source/WebKit/chromium/src/DateTimeChooserImpl.cpp new file mode 100644 index 000000000..69718dcb6 --- /dev/null +++ b/Source/WebKit/chromium/src/DateTimeChooserImpl.cpp @@ -0,0 +1,132 @@ +/* + * Copyright (C) 2012 Google Inc. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following disclaimer + * in the documentation and/or other materials provided with the + * distribution. + * * Neither the name of Google Inc. nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#include "config.h" +#include "DateTimeChooserImpl.h" + +#if ENABLE(CALENDAR_PICKER) + +#include "CalendarPicker.h" +#include "ChromeClientImpl.h" +#include "DateComponents.h" +#include "DateTimeChooserClient.h" +#include "Language.h" +#include "LocalizedDate.h" +#include "NotImplemented.h" +#include "PickerCommon.h" +#include "RenderTheme.h" +#include "platform/WebKitPlatformSupport.h" +#include <public/WebLocalizedString.h> + +using namespace WTF::Unicode; + +namespace WebKit { + +DateTimeChooserImpl::DateTimeChooserImpl(ChromeClientImpl* chromeClient, WebCore::DateTimeChooserClient* client, const WebCore::DateTimeChooserParameters& parameters) + : m_chromeClient(chromeClient) + , m_client(client) + , m_popup(0) + , m_parameters(parameters) +{ + ASSERT(m_chromeClient); + ASSERT(m_client); + m_popup = m_chromeClient->openPagePopup(this, m_parameters.anchorRectInRootView); +} + +DateTimeChooserImpl::~DateTimeChooserImpl() +{ +} + +void DateTimeChooserImpl::endChooser() +{ + if (!m_popup) + return; + m_chromeClient->closePagePopup(m_popup); +} + +WebCore::IntSize DateTimeChooserImpl::contentSize() +{ + return WebCore::IntSize(0, 0); +} + +void DateTimeChooserImpl::writeDocument(WebCore::DocumentWriter& writer) +{ + WebCore::DateComponents date; + date.setMillisecondsSinceEpochForDate(m_parameters.minimum); + String minString = date.toString(); + date.setMillisecondsSinceEpochForDate(m_parameters.maximum); + String maxString = date.toString(); + String stepString = String::number(m_parameters.step); + + addString("<!DOCTYPE html><head><meta charset='UTF-8'><style>\n", writer); + writer.addData(WebCore::pickerCommonCss, sizeof(WebCore::pickerCommonCss)); + writer.addData(WebCore::calendarPickerCss, sizeof(WebCore::calendarPickerCss)); + CString extraStyle = WebCore::RenderTheme::defaultTheme()->extraCalendarPickerStyleSheet(); + if (extraStyle.length()) + writer.addData(extraStyle.data(), extraStyle.length()); + addString("</style></head><body><div id=main>Loading...</div><script>\n" + "window.dialogArguments = {\n", writer); + addProperty("min", minString, writer); + addProperty("max", maxString, writer); + addProperty("step", stepString, writer); + addProperty("required", m_parameters.required, writer); + addProperty("currentValue", m_parameters.currentValue, writer); + addProperty("locale", WebCore::defaultLanguage(), writer); + addProperty("todayLabel", Platform::current()->queryLocalizedString(WebLocalizedString::CalendarToday), writer); + addProperty("clearLabel", Platform::current()->queryLocalizedString(WebLocalizedString::CalendarClear), writer); + addProperty("weekStartDay", WebCore::firstDayOfWeek(), writer); + addProperty("monthLabels", WebCore::monthLabels(), writer); + addProperty("dayLabels", WebCore::weekDayShortLabels(), writer); + Direction dir = direction(WebCore::monthLabels()[0][0]); + addProperty("isRTL", dir == RightToLeft || dir == RightToLeftArabic, writer); + addString("}\n", writer); + + writer.addData(WebCore::pickerCommonJs, sizeof(WebCore::pickerCommonJs)); + writer.addData(WebCore::calendarPickerJs, sizeof(WebCore::calendarPickerJs)); + addString("</script></body>\n", writer); +} + +void DateTimeChooserImpl::setValueAndClosePopup(int numValue, const String& stringValue) +{ + if (numValue >= 0) + m_client->didChooseValue(stringValue); + endChooser(); +} + +void DateTimeChooserImpl::didClosePopup() +{ + ASSERT(m_client); + m_popup = 0; + m_client->didEndChooser(); +} + +} // namespace WebKit + +#endif // ENABLE(CALENDAR_PICKER) diff --git a/Source/WebKit/chromium/src/DateTimeChooserImpl.h b/Source/WebKit/chromium/src/DateTimeChooserImpl.h new file mode 100644 index 000000000..e504592bc --- /dev/null +++ b/Source/WebKit/chromium/src/DateTimeChooserImpl.h @@ -0,0 +1,73 @@ +/* + * Copyright (C) 2012 Google Inc. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following disclaimer + * in the documentation and/or other materials provided with the + * distribution. + * * Neither the name of Google Inc. nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef DateTimeChooserImpl_h +#define DateTimeChooserImpl_h + +#include "DateTimeChooser.h" +#include "PagePopupClient.h" + +#if ENABLE(CALENDAR_PICKER) + +namespace WebCore { +class PagePopup; +class DateTimeChooserClient; +} + +namespace WebKit { + +class ChromeClientImpl; + +class DateTimeChooserImpl : public WebCore::DateTimeChooser, public WebCore::PagePopupClient { +public: + DateTimeChooserImpl(ChromeClientImpl*, WebCore::DateTimeChooserClient*, const WebCore::DateTimeChooserParameters&); + virtual ~DateTimeChooserImpl(); + + // DateTimeChooser functions: + virtual void endChooser() OVERRIDE; + +private: + // PagePopupClient functions: + virtual WebCore::IntSize contentSize() OVERRIDE; + virtual void writeDocument(WebCore::DocumentWriter&) OVERRIDE; + virtual void setValueAndClosePopup(int, const String&) OVERRIDE; + virtual void didClosePopup() OVERRIDE; + + ChromeClientImpl* m_chromeClient; + WebCore::DateTimeChooserClient* m_client; + WebCore::PagePopup* m_popup; + WebCore::DateTimeChooserParameters m_parameters; +}; + +} + +#endif // ENABLE(CALENDAR_PICKER) + +#endif // DateTimeChooserImpl_h diff --git a/Source/WebKit/chromium/src/EditorClientImpl.cpp b/Source/WebKit/chromium/src/EditorClientImpl.cpp index b5eaf595f..3046db32e 100644 --- a/Source/WebKit/chromium/src/EditorClientImpl.cpp +++ b/Source/WebKit/chromium/src/EditorClientImpl.cpp @@ -37,7 +37,6 @@ #include "KeyboardCodes.h" #include "KeyboardEvent.h" #include "PlatformKeyboardEvent.h" -#include "PlatformString.h" #include "RenderObject.h" #include "Settings.h" #include "SpellChecker.h" @@ -61,6 +60,7 @@ #include "WebTextCheckingResult.h" #include "WebViewClient.h" #include "WebViewImpl.h" +#include <wtf/text/WTFString.h> using namespace WebCore; @@ -849,6 +849,15 @@ void EditorClientImpl::getGuessesForWord(const String& word, notImplemented(); } +bool EditorClientImpl::supportsGlobalSelection() +{ +#if OS(UNIX) && !OS(DARWIN) + return true; +#else + return false; +#endif +} + void EditorClientImpl::willSetInputMethodState() { if (m_webView->client()) diff --git a/Source/WebKit/chromium/src/EditorClientImpl.h b/Source/WebKit/chromium/src/EditorClientImpl.h index 3ee9ebaaa..a79bb9b1f 100644 --- a/Source/WebKit/chromium/src/EditorClientImpl.h +++ b/Source/WebKit/chromium/src/EditorClientImpl.h @@ -113,6 +113,7 @@ public: virtual void willSetInputMethodState(); virtual void setInputMethodState(bool enabled); virtual void requestCheckingOfString(WTF::PassRefPtr<WebCore::TextCheckingRequest>); + virtual bool supportsGlobalSelection() OVERRIDE; virtual WebCore::TextCheckerClient* textChecker() { return this; } diff --git a/Source/WebKit/chromium/src/FrameLoaderClientImpl.cpp b/Source/WebKit/chromium/src/FrameLoaderClientImpl.cpp index 5dd02b563..c99bd7c57 100644 --- a/Source/WebKit/chromium/src/FrameLoaderClientImpl.cpp +++ b/Source/WebKit/chromium/src/FrameLoaderClientImpl.cpp @@ -997,8 +997,7 @@ void FrameLoaderClientImpl::dispatchDecidePolicyForNavigationAction( if (event->isMouseEvent()) { const MouseEvent* mouseEvent = static_cast<const MouseEvent*>(event); - node = m_webFrame->frame()->eventHandler()->hitTestResultAtPoint( - mouseEvent->absoluteLocation(), false).innerNonSharedNode(); + node = m_webFrame->frame()->eventHandler()->hitTestResultAtPoint(mouseEvent->absoluteLocation()).innerNonSharedNode(); break; } } diff --git a/Source/WebKit/chromium/src/InspectorFrontendClientImpl.cpp b/Source/WebKit/chromium/src/InspectorFrontendClientImpl.cpp index 4f257c77c..f2657a7bd 100644 --- a/Source/WebKit/chromium/src/InspectorFrontendClientImpl.cpp +++ b/Source/WebKit/chromium/src/InspectorFrontendClientImpl.cpp @@ -35,13 +35,13 @@ #include "Frame.h" #include "InspectorFrontendHost.h" #include "Page.h" -#include "PlatformString.h" #include "ScriptController.h" #include "V8InspectorFrontendHost.h" #include "WebDevToolsFrontendClient.h" #include "WebDevToolsFrontendImpl.h" #include "platform/WebFloatPoint.h" #include "platform/WebString.h" +#include <wtf/text/WTFString.h> using namespace WebCore; diff --git a/Source/WebKit/chromium/src/LinkHighlight.cpp b/Source/WebKit/chromium/src/LinkHighlight.cpp index 2c804a8cd..1e72900c4 100644 --- a/Source/WebKit/chromium/src/LinkHighlight.cpp +++ b/Source/WebKit/chromium/src/LinkHighlight.cpp @@ -41,7 +41,9 @@ #include "WebFrameImpl.h" #include "WebKit.h" #include "WebViewImpl.h" +#include <public/Platform.h> #include <public/WebAnimationCurve.h> +#include <public/WebCompositorSupport.h> #include <public/WebFloatAnimationCurve.h> #include <public/WebFloatPoint.h> #include <public/WebRect.h> @@ -59,16 +61,16 @@ PassOwnPtr<LinkHighlight> LinkHighlight::create(Node* node, WebViewImpl* owningW } LinkHighlight::LinkHighlight(Node* node, WebViewImpl* owningWebViewImpl) - : m_contentLayer(adoptPtr(WebContentLayer::create(this))) - , m_clipLayer(adoptPtr(WebLayer::create())) - , m_node(node) + : m_node(node) , m_owningWebViewImpl(owningWebViewImpl) , m_currentGraphicsLayer(0) , m_geometryNeedsUpdate(false) { ASSERT(m_node); ASSERT(owningWebViewImpl); - + WebCompositorSupport* compositorSupport = Platform::current()->compositorSupport(); + m_contentLayer = adoptPtr(compositorSupport->createContentLayer(this)); + m_clipLayer = adoptPtr(compositorSupport->createLayer()); m_clipLayer->setAnchorPoint(WebFloatPoint()); m_clipLayer->addChild(m_contentLayer->layer()); m_contentLayer->layer()->setDrawsContent(false); @@ -147,7 +149,7 @@ bool LinkHighlight::computeHighlightLayerPathAndPosition(RenderLayer* compositin return false; bool pathHasChanged = false; - FloatRect boundingRect = m_node->getPixelSnappedRect(); + FloatRect boundingRect = m_node->pixelSnappedBoundingBox(); // FIXME: If we ever use a more sophisticated highlight path, we'll need // to devise a way of detecting when it changes. @@ -196,17 +198,21 @@ void LinkHighlight::startHighlightAnimation() { const float startOpacity = 1; // FIXME: Should duration be configurable? - const float duration = 2; + const float duration = 0.1f; m_contentLayer->layer()->setOpacity(startOpacity); - OwnPtr<WebFloatAnimationCurve> curve = adoptPtr(WebFloatAnimationCurve::create()); + WebCompositorSupport* compositorSupport = Platform::current()->compositorSupport(); + + OwnPtr<WebFloatAnimationCurve> curve = adoptPtr(compositorSupport->createFloatAnimationCurve()); + curve->add(WebFloatKeyframe(0, startOpacity)); curve->add(WebFloatKeyframe(duration / 2, startOpacity)); // For layout tests we don't fade out. curve->add(WebFloatKeyframe(duration, WebKit::layoutTestMode() ? startOpacity : 0)); - m_animation = adoptPtr(WebAnimation::create(*curve, WebAnimation::TargetPropertyOpacity)); + m_animation = adoptPtr(compositorSupport->createAnimation(*curve, WebAnimation::TargetPropertyOpacity)); + m_contentLayer->layer()->setDrawsContent(true); m_contentLayer->layer()->addAnimation(m_animation.get()); diff --git a/Source/WebKit/chromium/src/LocalFileSystemChromium.cpp b/Source/WebKit/chromium/src/LocalFileSystemChromium.cpp index d22412ac8..5fa07ddad 100644 --- a/Source/WebKit/chromium/src/LocalFileSystemChromium.cpp +++ b/Source/WebKit/chromium/src/LocalFileSystemChromium.cpp @@ -39,7 +39,6 @@ #include "FileSystemCallback.h" #include "FileSystemCallbacks.h" #include "FileSystemType.h" -#include "PlatformString.h" #include "WebFileError.h" #include "WebFileSystemCallbacksImpl.h" #include "WebFrameClient.h" @@ -52,6 +51,7 @@ #include "WorkerThread.h" #include <public/WebFileSystem.h> #include <wtf/Threading.h> +#include <wtf/text/WTFString.h> using namespace WebKit; diff --git a/Source/WebKit/chromium/src/LocalizedStrings.cpp b/Source/WebKit/chromium/src/LocalizedStrings.cpp index 2a4432d8a..40a009369 100644 --- a/Source/WebKit/chromium/src/LocalizedStrings.cpp +++ b/Source/WebKit/chromium/src/LocalizedStrings.cpp @@ -202,6 +202,58 @@ String AXMenuListActionVerb() return String(); } +#if ENABLE(INPUT_TYPE_TIME_MULTIPLE_FIELDS) +String AXAMPMFieldText() +{ + return query(WebLocalizedString::AXAMPMFieldText); +} + +String AXDayOfMonthFieldText() +{ + return query(WebLocalizedString::AXDayOfMonthFieldText); +} + +String AXDateTimeFieldEmptyValueText() +{ + return query(WebLocalizedString::AXDateTimeFieldEmptyValueText); +} + +String AXHourFieldText() +{ + return query(WebLocalizedString::AXHourFieldText); +} + +String AXMillisecondFieldText() +{ + return query(WebLocalizedString::AXMillisecondFieldText); +} + +String AXMinuteFieldText() +{ + return query(WebLocalizedString::AXMinuteFieldText); +} + +String AXMonthFieldText() +{ + return query(WebLocalizedString::AXMonthFieldText); +} + +String AXSecondFieldText() +{ + return query(WebLocalizedString::AXSecondFieldText); +} + +String AXWeekOfYearFieldText() +{ + return query(WebLocalizedString::AXWeekOfYearFieldText); +} + +String AXYearFieldText() +{ + return query(WebLocalizedString::AXYearFieldText); +} +#endif + String missingPluginText() { return query(WebLocalizedString::MissingPluginText); diff --git a/Source/WebKit/chromium/src/NonCompositedContentHost.cpp b/Source/WebKit/chromium/src/NonCompositedContentHost.cpp index 4df4204b3..ae99ba889 100644 --- a/Source/WebKit/chromium/src/NonCompositedContentHost.cpp +++ b/Source/WebKit/chromium/src/NonCompositedContentHost.cpp @@ -42,13 +42,13 @@ NonCompositedContentHost::NonCompositedContentHost(WebViewImpl* webView) : m_webView(webView) , m_opaque(true) , m_showDebugBorders(false) - , m_deviceScaleFactor(1.0) { m_graphicsLayer = WebCore::GraphicsLayer::create(this); #ifndef NDEBUG m_graphicsLayer->setName("non-composited content"); #endif m_graphicsLayer->setDrawsContent(true); + m_graphicsLayer->setAppliesPageScale(true); WebContentLayer* layer = static_cast<WebCore::GraphicsLayerChromium*>(m_graphicsLayer.get())->contentLayer(); layer->setUseLCDText(true); layer->layer()->setOpaque(true); @@ -88,7 +88,7 @@ void NonCompositedContentHost::setScrollLayer(WebCore::GraphicsLayer* layer) ASSERT(haveScrollLayer()); } -void NonCompositedContentHost::setViewport(const WebCore::IntSize& viewportSize, const WebCore::IntSize& contentsSize, const WebCore::IntPoint& scrollPosition, const WebCore::IntPoint& scrollOrigin, float deviceScale) +void NonCompositedContentHost::setViewport(const WebCore::IntSize& viewportSize, const WebCore::IntSize& contentsSize, const WebCore::IntPoint& scrollPosition, const WebCore::IntPoint& scrollOrigin) { if (!haveScrollLayer()) return; @@ -102,8 +102,6 @@ void NonCompositedContentHost::setViewport(const WebCore::IntSize& viewportSize, // Due to the possibility of pinch zoom, the noncomposited layer is always // assumed to be scrollable. layer->setScrollable(true); - m_deviceScaleFactor = deviceScale; - m_graphicsLayer->deviceOrPageScaleFactorChanged(); m_graphicsLayer->setSize(contentsSize); // In RTL-style pages, the origin of the initial containing block for the diff --git a/Source/WebKit/chromium/src/NonCompositedContentHost.h b/Source/WebKit/chromium/src/NonCompositedContentHost.h index 08b5f6a41..69776d90f 100644 --- a/Source/WebKit/chromium/src/NonCompositedContentHost.h +++ b/Source/WebKit/chromium/src/NonCompositedContentHost.h @@ -58,7 +58,7 @@ public: void setBackgroundColor(const WebCore::Color&); void setOpaque(bool); void setScrollLayer(WebCore::GraphicsLayer*); - void setViewport(const WebCore::IntSize& viewportSize, const WebCore::IntSize& contentsSize, const WebCore::IntPoint& scrollPosition, const WebCore::IntPoint& scrollOrigin, float deviceScale); + void setViewport(const WebCore::IntSize& viewportSize, const WebCore::IntSize& contentsSize, const WebCore::IntPoint& scrollPosition, const WebCore::IntPoint& scrollOrigin); WebCore::GraphicsLayer* topLevelRootLayer() const { return m_graphicsLayer.get(); } void setShowDebugBorders(bool); @@ -73,11 +73,6 @@ private: virtual void paintContents(const WebCore::GraphicsLayer*, WebCore::GraphicsContext&, WebCore::GraphicsLayerPaintingPhase, const WebCore::IntRect& clipRect); virtual bool showDebugBorders(const WebCore::GraphicsLayer*) const; virtual bool showRepaintCounter(const WebCore::GraphicsLayer*) const; - // The deviceScaleFactor given to the GraphicsLayer can be non-1 when the - // contents are scaled in the compositor instead of by the pageScaleFactor. - // However, the pageScaleFactor is always baked into the GraphicsLayer's - // size, so it is always 1 for the GraphicsLayer. - virtual float deviceScaleFactor() const OVERRIDE { return m_deviceScaleFactor; } bool haveScrollLayer(); WebLayer* scrollLayer(); @@ -89,7 +84,6 @@ private: bool m_opaque; bool m_showDebugBorders; - float m_deviceScaleFactor; }; } // namespace WebKit diff --git a/Source/WebKit/chromium/src/PlatformSupport.cpp b/Source/WebKit/chromium/src/PlatformSupport.cpp index aca97d0a3..762055497 100644 --- a/Source/WebKit/chromium/src/PlatformSupport.cpp +++ b/Source/WebKit/chromium/src/PlatformSupport.cpp @@ -31,8 +31,6 @@ #include "config.h" #include "PlatformSupport.h" -#include <googleurl/src/url_util.h> - #include "Chrome.h" #include "ChromeClientImpl.h" #include "FileMetadata.h" @@ -41,8 +39,6 @@ #include "WebFileUtilities.h" #include "WebFrameClient.h" #include "WebFrameImpl.h" -#include "WebIDBKey.h" -#include "WebIDBKeyPath.h" #include "WebKit.h" #include "WebPluginContainerImpl.h" #include "WebPluginListBuilderImpl.h" @@ -257,23 +253,6 @@ void PlatformSupport::getFontFamilyForCharacters(const UChar* characters, size_t #endif } -void PlatformSupport::getRenderStyleForStrike(const char* font, int sizeAndStyle, FontRenderStyle* result) -{ - WebFontRenderStyle style; - -#if OS(ANDROID) - style.setDefaults(); -#else - if (!font || !*font) - style.setDefaults(); // It's probably a webfont. Take the system defaults. - else if (WebKit::Platform::current()->sandboxSupport()) - WebKit::Platform::current()->sandboxSupport()->getRenderStyleForStrike(font, sizeAndStyle, &style); - else - WebFontInfo::renderStyleForStrike(font, sizeAndStyle, &style); -#endif - - style.toFontRenderStyle(result); -} #endif // Indexed Database ----------------------------------------------------------- @@ -285,23 +264,6 @@ PassRefPtr<IDBFactoryBackendInterface> PlatformSupport::idbFactory() return IDBFactoryBackendProxy::create(); } -void PlatformSupport::createIDBKeysFromSerializedValuesAndKeyPath(const Vector<RefPtr<SerializedScriptValue> >& values, const IDBKeyPath& keyPath, Vector<RefPtr<IDBKey> >& keys) -{ - WebVector<WebSerializedScriptValue> webValues = values; - WebVector<WebIDBKey> webKeys; - webKitPlatformSupport()->createIDBKeysFromSerializedValuesAndKeyPath(webValues, keyPath, webKeys); - - size_t webKeysSize = webKeys.size(); - keys.reserveCapacity(webKeysSize); - for (size_t i = 0; i < webKeysSize; ++i) - keys.append(PassRefPtr<IDBKey>(webKeys[i])); -} - -PassRefPtr<SerializedScriptValue> PlatformSupport::injectIDBKeyIntoSerializedValue(PassRefPtr<IDBKey> key, PassRefPtr<SerializedScriptValue> value, const IDBKeyPath& keyPath) -{ - return webKitPlatformSupport()->injectIDBKeyIntoSerializedValue(key, value, keyPath); -} - // Plugin --------------------------------------------------------------------- bool PlatformSupport::plugins(bool refresh, Vector<PluginInfo>* results) @@ -319,20 +281,6 @@ NPObject* PlatformSupport::pluginScriptableObject(Widget* widget) return static_cast<WebPluginContainerImpl*>(widget)->scriptableObject(); } -// Resources ------------------------------------------------------------------ - -#if ENABLE(WEB_AUDIO) - -PassOwnPtr<AudioBus> PlatformSupport::decodeAudioFileData(const char* data, size_t size, double sampleRate) -{ - WebAudioBus webAudioBus; - if (webKitPlatformSupport()->loadAudioResource(&webAudioBus, data, size, sampleRate)) - return webAudioBus.release(); - return nullptr; -} - -#endif // ENABLE(WEB_AUDIO) - // Theming -------------------------------------------------------------------- #if OS(WINDOWS) @@ -547,51 +495,6 @@ void PlatformSupport::paintThemePart( #endif -// Visited Links -------------------------------------------------------------- - -LinkHash PlatformSupport::visitedLinkHash(const UChar* url, unsigned length) -{ - url_canon::RawCanonOutput<2048> buffer; - url_parse::Parsed parsed; - if (!url_util::Canonicalize(url, length, 0, &buffer, &parsed)) - return 0; // Invalid URLs are unvisited. - return webKitPlatformSupport()->visitedLinkHash(buffer.data(), buffer.length()); -} - -LinkHash PlatformSupport::visitedLinkHash(const KURL& base, - const AtomicString& attributeURL) -{ - // Resolve the relative URL using googleurl and pass the absolute URL up to - // the embedder. We could create a GURL object from the base and resolve - // the relative URL that way, but calling the lower-level functions - // directly saves us the string allocation in most cases. - url_canon::RawCanonOutput<2048> buffer; - url_parse::Parsed parsed; - -#if USE(GOOGLEURL) - const CString& cstr = base.utf8String(); - const char* data = cstr.data(); - int length = cstr.length(); - const url_parse::Parsed& srcParsed = base.parsed(); -#else - // When we're not using GoogleURL, first canonicalize it so we can resolve it - // below. - url_canon::RawCanonOutput<2048> srcCanon; - url_parse::Parsed srcParsed; - String str = base.string(); - if (!url_util::Canonicalize(str.characters(), str.length(), 0, &srcCanon, &srcParsed)) - return 0; - const char* data = srcCanon.data(); - int length = srcCanon.length(); -#endif - - if (!url_util::ResolveRelative(data, length, srcParsed, attributeURL.characters(), - attributeURL.length(), 0, &buffer, &parsed)) - return 0; // Invalid resolved URL. - - return webKitPlatformSupport()->visitedLinkHash(buffer.data(), buffer.length()); -} - // These are temporary methods that the WebKit layer can use to call to the // Glue layer. Once the Glue layer moves entirely into the WebKit layer, these // methods will be deleted. diff --git a/Source/WebKit/chromium/src/SpeechInputClientImpl.cpp b/Source/WebKit/chromium/src/SpeechInputClientImpl.cpp index 147f40e13..09176ee98 100644 --- a/Source/WebKit/chromium/src/SpeechInputClientImpl.cpp +++ b/Source/WebKit/chromium/src/SpeechInputClientImpl.cpp @@ -31,7 +31,6 @@ #include "config.h" #include "SpeechInputClientImpl.h" -#include "PlatformString.h" #include "SecurityOrigin.h" #include "SpeechInputListener.h" #include "WebSecurityOrigin.h" @@ -39,6 +38,7 @@ #include "platform/WebString.h" #include "WebViewClient.h" #include <wtf/PassOwnPtr.h> +#include <wtf/text/WTFString.h> #if ENABLE(INPUT_SPEECH) diff --git a/Source/WebKit/chromium/src/SpeechRecognitionClientProxy.h b/Source/WebKit/chromium/src/SpeechRecognitionClientProxy.h index 750cbae5c..312e88b13 100644 --- a/Source/WebKit/chromium/src/SpeechRecognitionClientProxy.h +++ b/Source/WebKit/chromium/src/SpeechRecognitionClientProxy.h @@ -26,11 +26,11 @@ #ifndef SpeechRecognitionClientProxy_h #define SpeechRecognitionClientProxy_h -#include "PlatformString.h" #include "SpeechRecognitionClient.h" #include "WebSpeechRecognizerClient.h" #include <wtf/Compiler.h> #include <wtf/PassOwnPtr.h> +#include <wtf/text/WTFString.h> namespace WebKit { diff --git a/Source/WebKit/chromium/src/WebAccessibilityObject.cpp b/Source/WebKit/chromium/src/WebAccessibilityObject.cpp index 1eb69d28f..f559715d9 100644 --- a/Source/WebKit/chromium/src/WebAccessibilityObject.cpp +++ b/Source/WebKit/chromium/src/WebAccessibilityObject.cpp @@ -50,6 +50,7 @@ #include "platform/WebRect.h" #include "platform/WebString.h" #include "platform/WebURL.h" +#include <wtf/text/StringBuilder.h> using namespace WebCore; @@ -95,16 +96,21 @@ int WebAccessibilityObject::axID() const if (isDetached()) return -1; - m_private->updateBackingStore(); return m_private->axObjectID(); } +bool WebAccessibilityObject::updateBackingStoreAndCheckValidity() +{ + if (!isDetached()) + m_private->updateBackingStore(); + return !isDetached(); +} + WebString WebAccessibilityObject::accessibilityDescription() const { if (isDetached()) return WebString(); - m_private->updateBackingStore(); return m_private->accessibilityDescription(); } @@ -113,7 +119,6 @@ WebString WebAccessibilityObject::actionVerb() const if (isDetached()) return WebString(); - m_private->updateBackingStore(); return m_private->actionVerb(); } @@ -122,7 +127,6 @@ bool WebAccessibilityObject::canSetFocusAttribute() const if (isDetached()) return false; - m_private->updateBackingStore(); return m_private->canSetFocusAttribute(); } @@ -131,25 +135,14 @@ bool WebAccessibilityObject::canSetValueAttribute() const if (isDetached()) return false; - m_private->updateBackingStore(); return m_private->canSetValueAttribute(); } -bool WebAccessibilityObject::isValid() const -{ - if (isDetached()) - return false; - - m_private->updateBackingStore(); - return m_private->axObjectID(); -} - unsigned WebAccessibilityObject::childCount() const { if (isDetached()) return 0; - m_private->updateBackingStore(); return m_private->children().size(); } @@ -158,7 +151,6 @@ WebAccessibilityObject WebAccessibilityObject::childAt(unsigned index) const if (isDetached()) return WebAccessibilityObject(); - m_private->updateBackingStore(); if (m_private->children().size() <= index) return WebAccessibilityObject(); @@ -170,7 +162,6 @@ WebAccessibilityObject WebAccessibilityObject::firstChild() const if (isDetached()) return WebAccessibilityObject(); - m_private->updateBackingStore(); return WebAccessibilityObject(m_private->firstChild()); } @@ -179,7 +170,6 @@ WebAccessibilityObject WebAccessibilityObject::focusedChild() const if (isDetached()) return WebAccessibilityObject(); - m_private->updateBackingStore(); RefPtr<AccessibilityObject> focused = m_private->focusedUIElement(); if (m_private.get() == focused.get() || m_private.get() == focused->parentObject()) return WebAccessibilityObject(focused); @@ -192,7 +182,6 @@ WebAccessibilityObject WebAccessibilityObject::lastChild() const if (isDetached()) return WebAccessibilityObject(); - m_private->updateBackingStore(); return WebAccessibilityObject(m_private->lastChild()); } @@ -202,7 +191,6 @@ WebAccessibilityObject WebAccessibilityObject::nextSibling() const if (isDetached()) return WebAccessibilityObject(); - m_private->updateBackingStore(); return WebAccessibilityObject(m_private->nextSibling()); } @@ -211,7 +199,6 @@ WebAccessibilityObject WebAccessibilityObject::parentObject() const if (isDetached()) return WebAccessibilityObject(); - m_private->updateBackingStore(); return WebAccessibilityObject(m_private->parentObject()); } @@ -221,7 +208,6 @@ WebAccessibilityObject WebAccessibilityObject::previousSibling() const if (isDetached()) return WebAccessibilityObject(); - m_private->updateBackingStore(); return WebAccessibilityObject(m_private->previousSibling()); } @@ -230,7 +216,6 @@ bool WebAccessibilityObject::canSetSelectedAttribute() const if (isDetached()) return 0; - m_private->updateBackingStore(); return m_private->canSetSelectedAttribute(); } @@ -239,7 +224,6 @@ bool WebAccessibilityObject::isAnchor() const if (isDetached()) return 0; - m_private->updateBackingStore(); return m_private->isAnchor(); } @@ -248,7 +232,6 @@ bool WebAccessibilityObject::isAriaReadOnly() const if (isDetached()) return 0; - m_private->updateBackingStore(); return equalIgnoringCase(m_private->getAttribute(HTMLNames::aria_readonlyAttr), "true"); } @@ -257,7 +240,6 @@ bool WebAccessibilityObject::isButtonStateMixed() const if (isDetached()) return 0; - m_private->updateBackingStore(); return m_private->checkboxOrRadioValue() == ButtonStateMixed; } @@ -266,7 +248,6 @@ bool WebAccessibilityObject::isChecked() const if (isDetached()) return 0; - m_private->updateBackingStore(); return m_private->isChecked(); } @@ -275,7 +256,6 @@ bool WebAccessibilityObject::isCollapsed() const if (isDetached()) return 0; - m_private->updateBackingStore(); return m_private->isCollapsed(); } @@ -284,7 +264,6 @@ bool WebAccessibilityObject::isControl() const if (isDetached()) return 0; - m_private->updateBackingStore(); return m_private->isControl(); } @@ -293,7 +272,6 @@ bool WebAccessibilityObject::isEnabled() const if (isDetached()) return 0; - m_private->updateBackingStore(); return m_private->isEnabled(); } @@ -302,7 +280,6 @@ bool WebAccessibilityObject::isFocused() const if (isDetached()) return 0; - m_private->updateBackingStore(); return m_private->isFocused(); } @@ -311,7 +288,6 @@ bool WebAccessibilityObject::isHovered() const if (isDetached()) return 0; - m_private->updateBackingStore(); return m_private->isHovered(); } @@ -320,7 +296,6 @@ bool WebAccessibilityObject::isIndeterminate() const if (isDetached()) return 0; - m_private->updateBackingStore(); return m_private->isIndeterminate(); } @@ -329,7 +304,6 @@ bool WebAccessibilityObject::isLinked() const if (isDetached()) return 0; - m_private->updateBackingStore(); return m_private->isLinked(); } @@ -338,7 +312,6 @@ bool WebAccessibilityObject::isLoaded() const if (isDetached()) return 0; - m_private->updateBackingStore(); return m_private->isLoaded(); } @@ -347,7 +320,6 @@ bool WebAccessibilityObject::isMultiSelectable() const if (isDetached()) return 0; - m_private->updateBackingStore(); return m_private->isMultiSelectable(); } @@ -356,7 +328,6 @@ bool WebAccessibilityObject::isOffScreen() const if (isDetached()) return 0; - m_private->updateBackingStore(); return m_private->isOffScreen(); } @@ -365,7 +336,6 @@ bool WebAccessibilityObject::isPasswordField() const if (isDetached()) return 0; - m_private->updateBackingStore(); return m_private->isPasswordField(); } @@ -374,7 +344,6 @@ bool WebAccessibilityObject::isPressed() const if (isDetached()) return 0; - m_private->updateBackingStore(); return m_private->isPressed(); } @@ -383,7 +352,6 @@ bool WebAccessibilityObject::isReadOnly() const if (isDetached()) return 0; - m_private->updateBackingStore(); return m_private->isReadOnly(); } @@ -392,7 +360,6 @@ bool WebAccessibilityObject::isRequired() const if (isDetached()) return 0; - m_private->updateBackingStore(); return m_private->isRequired(); } @@ -401,7 +368,6 @@ bool WebAccessibilityObject::isSelected() const if (isDetached()) return 0; - m_private->updateBackingStore(); return m_private->isSelected(); } @@ -410,7 +376,6 @@ bool WebAccessibilityObject::isSelectedOptionActive() const if (isDetached()) return false; - m_private->updateBackingStore(); return m_private->isSelectedOptionActive(); } @@ -419,7 +384,6 @@ bool WebAccessibilityObject::isVertical() const if (isDetached()) return 0; - m_private->updateBackingStore(); return m_private->orientation() == AccessibilityOrientationVertical; } @@ -428,7 +392,6 @@ bool WebAccessibilityObject::isVisible() const if (isDetached()) return 0; - m_private->updateBackingStore(); return m_private->isVisible(); } @@ -437,7 +400,6 @@ bool WebAccessibilityObject::isVisited() const if (isDetached()) return 0; - m_private->updateBackingStore(); return m_private->isVisited(); } @@ -446,7 +408,6 @@ WebString WebAccessibilityObject::accessKey() const if (isDetached()) return WebString(); - m_private->updateBackingStore(); return WebString(m_private->accessKey()); } @@ -455,7 +416,6 @@ bool WebAccessibilityObject::ariaHasPopup() const if (isDetached()) return 0; - m_private->updateBackingStore(); return m_private->ariaHasPopup(); } @@ -464,7 +424,6 @@ bool WebAccessibilityObject::ariaLiveRegionAtomic() const if (isDetached()) return 0; - m_private->updateBackingStore(); return m_private->ariaLiveRegionAtomic(); } @@ -473,7 +432,6 @@ bool WebAccessibilityObject::ariaLiveRegionBusy() const if (isDetached()) return 0; - m_private->updateBackingStore(); return m_private->ariaLiveRegionBusy(); } @@ -482,7 +440,6 @@ WebString WebAccessibilityObject::ariaLiveRegionRelevant() const if (isDetached()) return WebString(); - m_private->updateBackingStore(); return m_private->ariaLiveRegionRelevant(); } @@ -491,7 +448,6 @@ WebString WebAccessibilityObject::ariaLiveRegionStatus() const if (isDetached()) return WebString(); - m_private->updateBackingStore(); return m_private->ariaLiveRegionStatus(); } @@ -500,16 +456,22 @@ WebRect WebAccessibilityObject::boundingBoxRect() const if (isDetached()) return WebRect(); - m_private->updateBackingStore(); return m_private->pixelSnappedBoundingBoxRect(); } +bool WebAccessibilityObject::canvasHasFallbackContent() const +{ + if (isDetached()) + return false; + + return m_private->canvasHasFallbackContent(); +} + double WebAccessibilityObject::estimatedLoadingProgress() const { if (isDetached()) return 0.0; - m_private->updateBackingStore(); return m_private->estimatedLoadingProgress(); } @@ -518,7 +480,6 @@ WebString WebAccessibilityObject::helpText() const if (isDetached()) return WebString(); - m_private->updateBackingStore(); return m_private->helpText(); } @@ -527,7 +488,6 @@ int WebAccessibilityObject::headingLevel() const if (isDetached()) return 0; - m_private->updateBackingStore(); return m_private->headingLevel(); } @@ -536,7 +496,6 @@ int WebAccessibilityObject::hierarchicalLevel() const if (isDetached()) return 0; - m_private->updateBackingStore(); return m_private->hierarchicalLevel(); } @@ -545,7 +504,6 @@ WebAccessibilityObject WebAccessibilityObject::hitTest(const WebPoint& point) co if (isDetached()) return WebAccessibilityObject(); - m_private->updateBackingStore(); IntPoint contentsPoint = m_private->documentFrameView()->windowToContents(point); RefPtr<AccessibilityObject> hit = m_private->accessibilityHitTest(contentsPoint); @@ -563,7 +521,6 @@ WebString WebAccessibilityObject::keyboardShortcut() const if (isDetached()) return WebString(); - m_private->updateBackingStore(); String accessKey = m_private->accessKey(); if (accessKey.isNull()) return WebString(); @@ -574,14 +531,16 @@ WebString WebAccessibilityObject::keyboardShortcut() const // Follow the same order as Mozilla MSAA implementation: // Ctrl+Alt+Shift+Meta+key. MSDN states that keyboard shortcut strings // should not be localized and defines the separator as "+". + StringBuilder modifierStringBuilder; if (modifiers & PlatformEvent::CtrlKey) - modifierString += "Ctrl+"; + modifierStringBuilder.appendLiteral("Ctrl+"); if (modifiers & PlatformEvent::AltKey) - modifierString += "Alt+"; + modifierStringBuilder.appendLiteral("Alt+"); if (modifiers & PlatformEvent::ShiftKey) - modifierString += "Shift+"; + modifierStringBuilder.appendLiteral("Shift+"); if (modifiers & PlatformEvent::MetaKey) - modifierString += "Win+"; + modifierStringBuilder.appendLiteral("Win+"); + modifierString = modifierStringBuilder.toString(); } return String(modifierString + accessKey); @@ -594,7 +553,6 @@ bool WebAccessibilityObject::performDefaultAction() const UserGestureIndicator gestureIndicator(DefinitelyProcessingUserGesture); - m_private->updateBackingStore(); return m_private->performDefaultAction(); } @@ -603,7 +561,6 @@ WebAccessibilityRole WebAccessibilityObject::roleValue() const if (isDetached()) return WebKit::WebAccessibilityRoleUnknown; - m_private->updateBackingStore(); return static_cast<WebAccessibilityRole>(m_private->roleValue()); } @@ -612,7 +569,6 @@ unsigned WebAccessibilityObject::selectionEnd() const if (isDetached()) return 0; - m_private->updateBackingStore(); return m_private->selectedTextRange().start + m_private->selectedTextRange().length; } @@ -621,7 +577,6 @@ unsigned WebAccessibilityObject::selectionStart() const if (isDetached()) return 0; - m_private->updateBackingStore(); return m_private->selectedTextRange().start; } @@ -636,7 +591,6 @@ WebString WebAccessibilityObject::stringValue() const if (isDetached()) return WebString(); - m_private->updateBackingStore(); return m_private->stringValue(); } @@ -645,7 +599,6 @@ WebString WebAccessibilityObject::title() const if (isDetached()) return WebString(); - m_private->updateBackingStore(); return m_private->title(); } @@ -654,7 +607,6 @@ WebAccessibilityObject WebAccessibilityObject::titleUIElement() const if (isDetached()) return WebAccessibilityObject(); - m_private->updateBackingStore(); return WebAccessibilityObject(m_private->titleUIElement()); } @@ -663,16 +615,22 @@ WebURL WebAccessibilityObject::url() const if (isDetached()) return WebURL(); - m_private->updateBackingStore(); return m_private->url(); } +bool WebAccessibilityObject::supportsRangeValue() const +{ + if (isDetached()) + return false; + + return m_private->supportsRangeValue(); +} + WebString WebAccessibilityObject::valueDescription() const { if (isDetached()) return WebString(); - m_private->updateBackingStore(); return m_private->valueDescription(); } @@ -681,7 +639,6 @@ float WebAccessibilityObject::valueForRange() const if (isDetached()) return 0.0; - m_private->updateBackingStore(); return m_private->valueForRange(); } @@ -690,7 +647,6 @@ float WebAccessibilityObject::maxValueForRange() const if (isDetached()) return 0.0; - m_private->updateBackingStore(); return m_private->maxValueForRange(); } @@ -699,7 +655,6 @@ float WebAccessibilityObject::minValueForRange() const if (isDetached()) return 0.0; - m_private->updateBackingStore(); return m_private->minValueForRange(); } @@ -708,8 +663,6 @@ WebNode WebAccessibilityObject::node() const if (isDetached()) return WebNode(); - m_private->updateBackingStore(); - Node* node = m_private->node(); if (!node) return WebNode(); @@ -722,8 +675,6 @@ WebDocument WebAccessibilityObject::document() const if (isDetached()) return WebDocument(); - m_private->updateBackingStore(); - Document* document = m_private->document(); if (!document) return WebDocument(); @@ -772,7 +723,6 @@ bool WebAccessibilityObject::accessibilityIsIgnored() const if (isDetached()) return false; - m_private->updateBackingStore(); return m_private->accessibilityIsIgnored(); } @@ -781,7 +731,6 @@ bool WebAccessibilityObject::lineBreaks(WebVector<int>& result) const if (isDetached()) return false; - m_private->updateBackingStore(); int textLength = m_private->textLength(); if (!textLength) return false; @@ -805,7 +754,6 @@ unsigned WebAccessibilityObject::columnCount() const if (isDetached()) return false; - m_private->updateBackingStore(); if (!m_private->isAccessibilityTable()) return 0; @@ -817,7 +765,6 @@ unsigned WebAccessibilityObject::rowCount() const if (isDetached()) return false; - m_private->updateBackingStore(); if (!m_private->isAccessibilityTable()) return 0; @@ -826,7 +773,9 @@ unsigned WebAccessibilityObject::rowCount() const WebAccessibilityObject WebAccessibilityObject::cellForColumnAndRow(unsigned column, unsigned row) const { - m_private->updateBackingStore(); + if (isDetached()) + return WebAccessibilityObject(); + if (!m_private->isAccessibilityTable()) return WebAccessibilityObject(); @@ -836,7 +785,9 @@ WebAccessibilityObject WebAccessibilityObject::cellForColumnAndRow(unsigned colu unsigned WebAccessibilityObject::cellColumnIndex() const { - m_private->updateBackingStore(); + if (isDetached()) + return 0; + if (!m_private->isTableCell()) return 0; @@ -847,7 +798,9 @@ unsigned WebAccessibilityObject::cellColumnIndex() const unsigned WebAccessibilityObject::cellColumnSpan() const { - m_private->updateBackingStore(); + if (isDetached()) + return 0; + if (!m_private->isTableCell()) return 0; @@ -858,7 +811,9 @@ unsigned WebAccessibilityObject::cellColumnSpan() const unsigned WebAccessibilityObject::cellRowIndex() const { - m_private->updateBackingStore(); + if (isDetached()) + return 0; + if (!m_private->isTableCell()) return 0; @@ -869,7 +824,9 @@ unsigned WebAccessibilityObject::cellRowIndex() const unsigned WebAccessibilityObject::cellRowSpan() const { - m_private->updateBackingStore(); + if (isDetached()) + return 0; + if (!m_private->isTableCell()) return 0; @@ -880,20 +837,20 @@ unsigned WebAccessibilityObject::cellRowSpan() const void WebAccessibilityObject::scrollToMakeVisible() const { - m_private->updateBackingStore(); - m_private->scrollToMakeVisible(); + if (!isDetached()) + m_private->scrollToMakeVisible(); } void WebAccessibilityObject::scrollToMakeVisibleWithSubFocus(const WebRect& subfocus) const { - m_private->updateBackingStore(); - m_private->scrollToMakeVisibleWithSubFocus(subfocus); + if (!isDetached()) + m_private->scrollToMakeVisibleWithSubFocus(subfocus); } void WebAccessibilityObject::scrollToGlobalPoint(const WebPoint& point) const { - m_private->updateBackingStore(); - m_private->scrollToGlobalPoint(point); + if (!isDetached()) + m_private->scrollToGlobalPoint(point); } WebAccessibilityObject::WebAccessibilityObject(const WTF::PassRefPtr<WebCore::AccessibilityObject>& object) diff --git a/Source/WebKit/chromium/src/WebAnimationImpl.cpp b/Source/WebKit/chromium/src/WebAnimationImpl.cpp index e5d9ef2a3..b5a94d714 100644 --- a/Source/WebKit/chromium/src/WebAnimationImpl.cpp +++ b/Source/WebKit/chromium/src/WebAnimationImpl.cpp @@ -26,7 +26,6 @@ #include "WebAnimationImpl.h" -#include "AnimationIdVendor.h" #include "CCActiveAnimation.h" #include "CCAnimationCurve.h" #include "WebFloatAnimationCurveImpl.h" @@ -36,23 +35,24 @@ #include <wtf/OwnPtr.h> #include <wtf/PassOwnPtr.h> -using WebCore::AnimationIdVendor; using WebCore::CCActiveAnimation; namespace WebKit { -WebAnimation* WebAnimation::create(const WebAnimationCurve& curve, TargetProperty targetProperty) +WebAnimation* WebAnimation::create(const WebAnimationCurve& curve, TargetProperty targetProperty, int animationId) { - return WebAnimation::create(curve, AnimationIdVendor::getNextAnimationId(), AnimationIdVendor::getNextGroupId(), targetProperty); + return new WebAnimationImpl(curve, targetProperty, animationId, 0); } -WebAnimation* WebAnimation::create(const WebAnimationCurve& curve, int animationId, int groupId, TargetProperty targetProperty) +WebAnimationImpl::WebAnimationImpl(const WebAnimationCurve& webCurve, TargetProperty targetProperty, int animationId, int groupId) { - return new WebAnimationImpl(curve, animationId, groupId, targetProperty); -} + static int nextAnimationId = 1; + static int nextGroupId = 1; + if (!animationId) + animationId = nextAnimationId++; + if (!groupId) + groupId = nextGroupId++; -WebAnimationImpl::WebAnimationImpl(const WebAnimationCurve& webCurve, int animationId, int groupId, TargetProperty targetProperty) -{ WebAnimationCurve::AnimationCurveType curveType = webCurve.type(); OwnPtr<WebCore::CCAnimationCurve> curve; switch (curveType) { @@ -74,6 +74,11 @@ WebAnimationImpl::~WebAnimationImpl() { } +int WebAnimationImpl::id() +{ + return m_animation->id(); +} + WebAnimation::TargetProperty WebAnimationImpl::targetProperty() const { return static_cast<WebAnimationImpl::TargetProperty>(m_animation->targetProperty()); diff --git a/Source/WebKit/chromium/src/WebAnimationImpl.h b/Source/WebKit/chromium/src/WebAnimationImpl.h index d7ceba51f..ccf451786 100644 --- a/Source/WebKit/chromium/src/WebAnimationImpl.h +++ b/Source/WebKit/chromium/src/WebAnimationImpl.h @@ -37,10 +37,11 @@ namespace WebKit { class WebAnimationImpl : public WebAnimation { public: - WebAnimationImpl(const WebAnimationCurve&, int animationId, int groupId, TargetProperty); + WebAnimationImpl(const WebAnimationCurve&, TargetProperty, int animationId, int groupId = 0); virtual ~WebAnimationImpl(); // WebAnimation implementation + virtual int id() OVERRIDE; virtual TargetProperty targetProperty() const OVERRIDE; virtual int iterations() const OVERRIDE; virtual void setIterations(int) OVERRIDE; diff --git a/Source/WebKit/chromium/src/WebCompositorInputHandlerImpl.cpp b/Source/WebKit/chromium/src/WebCompositorInputHandlerImpl.cpp index 8084d715c..16222ac4f 100644 --- a/Source/WebKit/chromium/src/WebCompositorInputHandlerImpl.cpp +++ b/Source/WebKit/chromium/src/WebCompositorInputHandlerImpl.cpp @@ -27,63 +27,16 @@ #include "WebCompositorInputHandlerImpl.h" -#include "CCActiveGestureAnimation.h" -#include "CCProxy.h" +#include "PlatformGestureCurveFactory.h" #include "PlatformGestureCurveTarget.h" -#include "TouchpadFlingPlatformGestureCurve.h" #include "TraceEvent.h" -#include "WebCompositorImpl.h" #include "WebCompositorInputHandlerClient.h" #include "WebInputEvent.h" +#include <public/WebInputHandlerClient.h> #include <wtf/ThreadingPrimitives.h> using namespace WebCore; -namespace WebCore { - -PassOwnPtr<CCInputHandler> CCInputHandler::create(CCInputHandlerClient* inputHandlerClient) -{ - return WebKit::WebCompositorInputHandlerImpl::create(inputHandlerClient); -} - -class PlatformGestureToCCGestureAdapter : public CCGestureCurve, public PlatformGestureCurveTarget { -public: - static PassOwnPtr<CCGestureCurve> create(PassOwnPtr<PlatformGestureCurve> platformCurve) - { - return adoptPtr(new PlatformGestureToCCGestureAdapter(platformCurve)); - } - - virtual const char* debugName() const - { - return m_curve->debugName(); - } - - virtual bool apply(double time, CCGestureCurveTarget* target) - { - ASSERT(target); - m_target = target; - return m_curve->apply(time, this); - } - - virtual void scrollBy(const IntPoint& scrollDelta) - { - ASSERT(m_target); - m_target->scrollBy(scrollDelta); - } - -private: - PlatformGestureToCCGestureAdapter(PassOwnPtr<PlatformGestureCurve> curve) - : m_curve(curve) - , m_target(0) - { - } - - OwnPtr<PlatformGestureCurve> m_curve; - CCGestureCurveTarget* m_target; -}; - -} - namespace WebKit { // These statics may only be accessed from the compositor thread. @@ -95,15 +48,8 @@ WebCompositorInputHandler* WebCompositorInputHandler::fromIdentifier(int identif return WebCompositorInputHandlerImpl::fromIdentifier(identifier); } -PassOwnPtr<WebCompositorInputHandlerImpl> WebCompositorInputHandlerImpl::create(WebCore::CCInputHandlerClient* inputHandlerClient) -{ - return adoptPtr(new WebCompositorInputHandlerImpl(inputHandlerClient)); -} - WebCompositorInputHandler* WebCompositorInputHandlerImpl::fromIdentifier(int identifier) { - ASSERT(WebCompositorImpl::initialized()); - ASSERT(CCProxy::isImplThread()); if (!s_compositors) return 0; @@ -115,26 +61,20 @@ WebCompositorInputHandler* WebCompositorInputHandlerImpl::fromIdentifier(int ide return 0; } -WebCompositorInputHandlerImpl::WebCompositorInputHandlerImpl(CCInputHandlerClient* inputHandlerClient) +WebCompositorInputHandlerImpl::WebCompositorInputHandlerImpl() : m_client(0) , m_identifier(s_nextAvailableIdentifier++) - , m_inputHandlerClient(inputHandlerClient) + , m_inputHandlerClient(0) #ifndef NDEBUG , m_expectScrollUpdateEnd(false) , m_expectPinchUpdateEnd(false) #endif , m_gestureScrollStarted(false) { - ASSERT(CCProxy::isImplThread()); - - if (!s_compositors) - s_compositors = new HashSet<WebCompositorInputHandlerImpl*>; - s_compositors->add(this); } WebCompositorInputHandlerImpl::~WebCompositorInputHandlerImpl() { - ASSERT(CCProxy::isImplThread()); if (m_client) m_client->willShutdown(); @@ -148,7 +88,6 @@ WebCompositorInputHandlerImpl::~WebCompositorInputHandlerImpl() void WebCompositorInputHandlerImpl::setClient(WebCompositorInputHandlerClient* client) { - ASSERT(CCProxy::isImplThread()); // It's valid to set a new client if we've never had one or to clear the client, but it's not valid to change from having one client to a different one. ASSERT(!m_client || !client); m_client = client; @@ -156,7 +95,6 @@ void WebCompositorInputHandlerImpl::setClient(WebCompositorInputHandlerClient* c void WebCompositorInputHandlerImpl::handleInputEvent(const WebInputEvent& event) { - ASSERT(CCProxy::isImplThread()); ASSERT(m_client); WebCompositorInputHandlerImpl::EventDisposition disposition = handleInputEventInternal(event); @@ -177,19 +115,19 @@ WebCompositorInputHandlerImpl::EventDisposition WebCompositorInputHandlerImpl::h { if (event.type == WebInputEvent::MouseWheel) { const WebMouseWheelEvent& wheelEvent = *static_cast<const WebMouseWheelEvent*>(&event); - CCInputHandlerClient::ScrollStatus scrollStatus = m_inputHandlerClient->scrollBegin(IntPoint(wheelEvent.x, wheelEvent.y), CCInputHandlerClient::Wheel); + WebInputHandlerClient::ScrollStatus scrollStatus = m_inputHandlerClient->scrollBegin(WebPoint(wheelEvent.x, wheelEvent.y), WebInputHandlerClient::ScrollInputTypeWheel); switch (scrollStatus) { - case CCInputHandlerClient::ScrollStarted: { + case WebInputHandlerClient::ScrollStatusStarted: { TRACE_EVENT_INSTANT2("cc", "WebCompositorInputHandlerImpl::handleInput wheel scroll", "deltaX", -wheelEvent.deltaX, "deltaY", -wheelEvent.deltaY); - m_inputHandlerClient->scrollBy(IntPoint(wheelEvent.x, wheelEvent.y), IntSize(-wheelEvent.deltaX, -wheelEvent.deltaY)); + m_inputHandlerClient->scrollBy(WebPoint(wheelEvent.x, wheelEvent.y), IntSize(-wheelEvent.deltaX, -wheelEvent.deltaY)); m_inputHandlerClient->scrollEnd(); return DidHandle; } - case CCInputHandlerClient::ScrollIgnored: + case WebInputHandlerClient::ScrollStatusIgnored: // FIXME: This should be DropEvent, but in cases where we fail to properly sync scrollability it's safer to send the // event to the main thread. Change back to DropEvent once we have synchronization bugs sorted out. return DidNotHandle; - case CCInputHandlerClient::ScrollOnMainThread: + case WebInputHandlerClient::ScrollStatusOnMainThread: return DidNotHandle; } } else if (event.type == WebInputEvent::GestureScrollBegin) { @@ -199,14 +137,14 @@ WebCompositorInputHandlerImpl::EventDisposition WebCompositorInputHandlerImpl::h m_expectScrollUpdateEnd = true; #endif const WebGestureEvent& gestureEvent = *static_cast<const WebGestureEvent*>(&event); - CCInputHandlerClient::ScrollStatus scrollStatus = m_inputHandlerClient->scrollBegin(IntPoint(gestureEvent.x, gestureEvent.y), CCInputHandlerClient::Gesture); + WebInputHandlerClient::ScrollStatus scrollStatus = m_inputHandlerClient->scrollBegin(WebPoint(gestureEvent.x, gestureEvent.y), WebInputHandlerClient::ScrollInputTypeGesture); switch (scrollStatus) { - case CCInputHandlerClient::ScrollStarted: + case WebInputHandlerClient::ScrollStatusStarted: m_gestureScrollStarted = true; return DidHandle; - case CCInputHandlerClient::ScrollOnMainThread: + case WebInputHandlerClient::ScrollStatusOnMainThread: return DidNotHandle; - case CCInputHandlerClient::ScrollIgnored: + case WebInputHandlerClient::ScrollStatusIgnored: return DropEvent; } } else if (event.type == WebInputEvent::GestureScrollUpdate) { @@ -216,7 +154,8 @@ WebCompositorInputHandlerImpl::EventDisposition WebCompositorInputHandlerImpl::h return DidNotHandle; const WebGestureEvent& gestureEvent = *static_cast<const WebGestureEvent*>(&event); - m_inputHandlerClient->scrollBy(IntPoint(gestureEvent.x, gestureEvent.y), IntSize(-gestureEvent.deltaX, -gestureEvent.deltaY)); + m_inputHandlerClient->scrollBy(WebPoint(gestureEvent.x, gestureEvent.y), + IntSize(-gestureEvent.data.scrollUpdate.deltaX, -gestureEvent.data.scrollUpdate.deltaY)); return DidHandle; } else if (event.type == WebInputEvent::GestureScrollEnd) { ASSERT(m_expectScrollUpdateEnd); @@ -246,7 +185,7 @@ WebCompositorInputHandlerImpl::EventDisposition WebCompositorInputHandlerImpl::h } else if (event.type == WebInputEvent::GesturePinchUpdate) { ASSERT(m_expectPinchUpdateEnd); const WebGestureEvent& gestureEvent = *static_cast<const WebGestureEvent*>(&event); - m_inputHandlerClient->pinchGestureUpdate(gestureEvent.deltaX, IntPoint(gestureEvent.x, gestureEvent.y)); + m_inputHandlerClient->pinchGestureUpdate(gestureEvent.data.pinchUpdate.scale, WebPoint(gestureEvent.x, gestureEvent.y)); return DidHandle; } else if (event.type == WebInputEvent::GestureFlingStart) { const WebGestureEvent& gestureEvent = *static_cast<const WebGestureEvent*>(&event); @@ -263,24 +202,24 @@ WebCompositorInputHandlerImpl::EventDisposition WebCompositorInputHandlerImpl::h WebCompositorInputHandlerImpl::EventDisposition WebCompositorInputHandlerImpl::handleGestureFling(const WebGestureEvent& gestureEvent) { - CCInputHandlerClient::ScrollStatus scrollStatus = m_inputHandlerClient->scrollBegin(IntPoint(gestureEvent.x, gestureEvent.y), CCInputHandlerClient::Gesture); + WebInputHandlerClient::ScrollStatus scrollStatus = m_inputHandlerClient->scrollBegin(WebPoint(gestureEvent.x, gestureEvent.y), WebInputHandlerClient::ScrollInputTypeGesture); switch (scrollStatus) { - case CCInputHandlerClient::ScrollStarted: { - TRACE_EVENT_INSTANT0("cc", "WebCompositorInputHandlerImpl::handleGestureFling::started"); - OwnPtr<PlatformGestureCurve> flingCurve = TouchpadFlingPlatformGestureCurve::create(FloatPoint(gestureEvent.deltaX, gestureEvent.deltaY)); - m_wheelFlingAnimation = CCActiveGestureAnimation::create(PlatformGestureToCCGestureAdapter::create(flingCurve.release()), this); - m_wheelFlingParameters.delta = WebFloatPoint(gestureEvent.deltaX, gestureEvent.deltaY); + case WebInputHandlerClient::ScrollStatusStarted: { + m_wheelFlingCurve = PlatformGestureCurveFactory::get()->createCurve(gestureEvent.data.flingStart.sourceDevice, FloatPoint(gestureEvent.data.flingStart.velocityX, gestureEvent.data.flingStart.velocityY)); + TRACE_EVENT_ASYNC_BEGIN1("cc", "WebCompositorInputHandlerImpl::handleGestureFling::started", this, "curve", m_wheelFlingCurve->debugName()); + m_wheelFlingParameters.delta = WebFloatPoint(gestureEvent.data.flingStart.velocityX, gestureEvent.data.flingStart.velocityY); m_wheelFlingParameters.point = WebPoint(gestureEvent.x, gestureEvent.y); m_wheelFlingParameters.globalPoint = WebPoint(gestureEvent.globalX, gestureEvent.globalY); m_wheelFlingParameters.modifiers = gestureEvent.modifiers; + m_wheelFlingParameters.sourceDevice = gestureEvent.data.flingStart.sourceDevice; m_inputHandlerClient->scheduleAnimation(); return DidHandle; } - case CCInputHandlerClient::ScrollOnMainThread: { + case WebInputHandlerClient::ScrollStatusOnMainThread: { TRACE_EVENT_INSTANT0("cc", "WebCompositorInputHandlerImpl::handleGestureFling::scrollOnMainThread"); return DidNotHandle; } - case CCInputHandlerClient::ScrollIgnored: { + case WebInputHandlerClient::ScrollStatusIgnored: { TRACE_EVENT_INSTANT0("cc", "WebCompositorInputHandlerImpl::handleGestureFling::ignored"); // We still pass the curve to the main thread if there's nothing scrollable, in case something // registers a handler before the curve is over. @@ -290,21 +229,30 @@ WebCompositorInputHandlerImpl::EventDisposition WebCompositorInputHandlerImpl::h return DidNotHandle; } -int WebCompositorInputHandlerImpl::identifier() const +void WebCompositorInputHandlerImpl::bindToClient(WebInputHandlerClient* client) { - ASSERT(CCProxy::isImplThread()); - return m_identifier; + ASSERT(!m_inputHandlerClient); + + TRACE_EVENT_INSTANT0("cc", "WebCompositorInputHandlerImpl::bindToClient"); + if (!s_compositors) + s_compositors = new HashSet<WebCompositorInputHandlerImpl*>; + s_compositors->add(this); + + m_inputHandlerClient = client; } void WebCompositorInputHandlerImpl::animate(double monotonicTime) { - if (!m_wheelFlingAnimation) + if (!m_wheelFlingCurve) return; - if (!m_wheelFlingParameters.startTime) + if (!m_wheelFlingParameters.startTime) { m_wheelFlingParameters.startTime = monotonicTime; + m_inputHandlerClient->scheduleAnimation(); + return; + } - if (m_wheelFlingAnimation->animate(monotonicTime)) + if (m_wheelFlingCurve->apply(monotonicTime - m_wheelFlingParameters.startTime, this)) m_inputHandlerClient->scheduleAnimation(); else { TRACE_EVENT_INSTANT0("cc", "WebCompositorInputHandlerImpl::animate::flingOver"); @@ -314,9 +262,12 @@ void WebCompositorInputHandlerImpl::animate(double monotonicTime) bool WebCompositorInputHandlerImpl::cancelCurrentFling() { - bool hadFlingAnimation = m_wheelFlingAnimation; + bool hadFlingAnimation = m_wheelFlingCurve; + if (hadFlingAnimation) + TRACE_EVENT_ASYNC_END0("cc", "WebCompositorInputHandlerImpl::handleGestureFling::started", this); + TRACE_EVENT_INSTANT1("cc", "WebCompositorInputHandlerImpl::cancelCurrentFling", "hadFlingAnimation", hadFlingAnimation); - m_wheelFlingAnimation.clear(); + m_wheelFlingCurve.clear(); m_wheelFlingParameters = WebActiveWheelFlingParameters(); return hadFlingAnimation; } diff --git a/Source/WebKit/chromium/src/WebCompositorInputHandlerImpl.h b/Source/WebKit/chromium/src/WebCompositorInputHandlerImpl.h index 9474b2193..fa81de945 100644 --- a/Source/WebKit/chromium/src/WebCompositorInputHandlerImpl.h +++ b/Source/WebKit/chromium/src/WebCompositorInputHandlerImpl.h @@ -26,12 +26,11 @@ #ifndef WebCompositorInputHandlerImpl_h #define WebCompositorInputHandlerImpl_h -#include "CCGestureCurve.h" -#include "CCInputHandler.h" +#include "PlatformGestureCurveTarget.h" #include "WebActiveWheelFlingParameters.h" #include "WebCompositorInputHandler.h" #include "WebInputEvent.h" -#include <public/WebCompositor.h> +#include <public/WebInputHandler.h> #include <wtf/HashSet.h> #include <wtf/Noncopyable.h> #include <wtf/OwnPtr.h> @@ -42,36 +41,35 @@ class Mutex; namespace WebCore { class IntPoint; -class CCGestureCurveTarget; -class CCInputHandlerClient; -class CCThread; +class PlatformGestureCurve; } namespace WebKit { class WebCompositorInputHandlerClient; -class WebCompositorInputHandlerImpl : public WebCompositorInputHandler, public WebCore::CCInputHandler, public WebCore::CCGestureCurveTarget { +class WebCompositorInputHandlerImpl : public WebCompositorInputHandler, public WebInputHandler, public WebCore::PlatformGestureCurveTarget { WTF_MAKE_NONCOPYABLE(WebCompositorInputHandlerImpl); public: - static PassOwnPtr<WebCompositorInputHandlerImpl> create(WebCore::CCInputHandlerClient*); static WebCompositorInputHandler* fromIdentifier(int identifier); + WebCompositorInputHandlerImpl(); virtual ~WebCompositorInputHandlerImpl(); // WebCompositorInputHandler implementation. virtual void setClient(WebCompositorInputHandlerClient*); virtual void handleInputEvent(const WebInputEvent&); - // WebCore::CCInputHandler implementation. - virtual int identifier() const; + // WebInputHandler implementation. + virtual void bindToClient(WebInputHandlerClient*); virtual void animate(double monotonicTime); - // WebCore::CCGestureCurveTarget implementation. + // WebCore::PlatformGestureCurveTarget implementation. virtual void scrollBy(const WebCore::IntPoint&); + int identifier() const { return m_identifier; } + private: - explicit WebCompositorInputHandlerImpl(WebCore::CCInputHandlerClient*); enum EventDisposition { DidHandle, DidNotHandle, DropEvent }; // This function processes the input event and determines the disposition, but does not make @@ -83,13 +81,13 @@ private: // Returns true if we actually had an active fling to cancel. bool cancelCurrentFling(); - OwnPtr<WebCore::CCActiveGestureAnimation> m_wheelFlingAnimation; + OwnPtr<WebCore::PlatformGestureCurve> m_wheelFlingCurve; // Parameters for the active fling animation, stored in case we need to transfer it out later. WebActiveWheelFlingParameters m_wheelFlingParameters; WebCompositorInputHandlerClient* m_client; int m_identifier; - WebCore::CCInputHandlerClient* m_inputHandlerClient; + WebInputHandlerClient* m_inputHandlerClient; #ifndef NDEBUG bool m_expectScrollUpdateEnd; diff --git a/Source/WebKit/chromium/src/WebContentLayerImpl.cpp b/Source/WebKit/chromium/src/WebContentLayerImpl.cpp index fa21e8974..862b19be6 100644 --- a/Source/WebKit/chromium/src/WebContentLayerImpl.cpp +++ b/Source/WebKit/chromium/src/WebContentLayerImpl.cpp @@ -26,6 +26,7 @@ #include "config.h" #include "WebContentLayerImpl.h" +#include "ContentLayerChromium.h" #include "SkMatrix44.h" #include <public/WebContentLayerClient.h> #include <public/WebFloatPoint.h> @@ -43,40 +44,45 @@ WebContentLayer* WebContentLayer::create(WebContentLayerClient* client) } WebContentLayerImpl::WebContentLayerImpl(WebContentLayerClient* client) - : m_webLayerImpl(adoptPtr(new WebLayerImpl(ContentLayerChromium::create(this)))) + : m_layer(adoptPtr(new WebLayerImpl(ContentLayerChromium::create(this)))) , m_client(client) { - m_webLayerImpl->layer()->setIsDrawable(true); + m_layer->layer()->setIsDrawable(true); } WebContentLayerImpl::~WebContentLayerImpl() { - static_cast<ContentLayerChromium*>(m_webLayerImpl->layer())->clearDelegate(); + static_cast<ContentLayerChromium*>(m_layer->layer())->clearClient(); } WebLayer* WebContentLayerImpl::layer() { - return m_webLayerImpl.get(); + return m_layer.get(); } void WebContentLayerImpl::setDoubleSided(bool doubleSided) { - m_webLayerImpl->layer()->setDoubleSided(doubleSided); + m_layer->layer()->setDoubleSided(doubleSided); } -void WebContentLayerImpl::setContentsScale(float scale) +void WebContentLayerImpl::setBoundsContainPageScale(bool boundsContainPageScale) { - m_webLayerImpl->layer()->setContentsScale(scale); + return m_layer->layer()->setBoundsContainPageScale(boundsContainPageScale); +} + +bool WebContentLayerImpl::boundsContainPageScale() const +{ + return m_layer->layer()->boundsContainPageScale(); } void WebContentLayerImpl::setUseLCDText(bool enable) { - m_webLayerImpl->layer()->setUseLCDText(enable); + m_layer->layer()->setUseLCDText(enable); } void WebContentLayerImpl::setDrawCheckerboardForMissingTiles(bool enable) { - m_webLayerImpl->layer()->setDrawCheckerboardForMissingTiles(enable); + m_layer->layer()->setDrawCheckerboardForMissingTiles(enable); } diff --git a/Source/WebKit/chromium/src/WebContentLayerImpl.h b/Source/WebKit/chromium/src/WebContentLayerImpl.h index 511f8e0ba..45fa79b0e 100644 --- a/Source/WebKit/chromium/src/WebContentLayerImpl.h +++ b/Source/WebKit/chromium/src/WebContentLayerImpl.h @@ -26,33 +26,34 @@ #ifndef WebContentLayerImpl_h #define WebContentLayerImpl_h -#include "ContentLayerChromium.h" +#include "ContentLayerChromiumClient.h" #include "WebLayerImpl.h" #include <public/WebContentLayer.h> -#include <wtf/PassRefPtr.h> +#include <wtf/OwnPtr.h> namespace WebKit { class WebContentLayerClient; class WebContentLayerImpl : public WebContentLayer, - public WebCore::ContentLayerDelegate { + public WebCore::ContentLayerChromiumClient { public: explicit WebContentLayerImpl(WebContentLayerClient*); // WebContentLayer implementation. virtual WebLayer* layer() OVERRIDE; virtual void setDoubleSided(bool) OVERRIDE; - virtual void setContentsScale(float) OVERRIDE; + virtual void setBoundsContainPageScale(bool) OVERRIDE; + virtual bool boundsContainPageScale() const OVERRIDE; virtual void setUseLCDText(bool) OVERRIDE; virtual void setDrawCheckerboardForMissingTiles(bool) OVERRIDE; protected: virtual ~WebContentLayerImpl(); - // ContentLayerDelegate implementation. + // ContentLayerChromiumClient implementation. virtual void paintContents(SkCanvas*, const WebCore::IntRect& clip, WebCore::FloatRect& opaque) OVERRIDE; - OwnPtr<WebLayerImpl> m_webLayerImpl; + OwnPtr<WebLayerImpl> m_layer; WebContentLayerClient* m_client; bool m_drawsContent; }; diff --git a/Source/WebKit/chromium/src/WebDevToolsAgentImpl.cpp b/Source/WebKit/chromium/src/WebDevToolsAgentImpl.cpp index c639f674d..a0a75b48c 100644 --- a/Source/WebKit/chromium/src/WebDevToolsAgentImpl.cpp +++ b/Source/WebKit/chromium/src/WebDevToolsAgentImpl.cpp @@ -45,7 +45,6 @@ #include "PageGroup.h" #include "PageScriptDebugServer.h" #include "painting/GraphicsContextBuilder.h" -#include "PlatformString.h" #include "RenderView.h" #include "ResourceError.h" #include "ResourceRequest.h" @@ -67,6 +66,7 @@ #include <wtf/MathExtras.h> #include <wtf/Noncopyable.h> #include <wtf/OwnPtr.h> +#include <wtf/text/WTFString.h> using namespace WebCore; using namespace std; diff --git a/Source/WebKit/chromium/src/WebDevToolsFrontendImpl.cpp b/Source/WebKit/chromium/src/WebDevToolsFrontendImpl.cpp index 800568a61..f723390b5 100644 --- a/Source/WebKit/chromium/src/WebDevToolsFrontendImpl.cpp +++ b/Source/WebKit/chromium/src/WebDevToolsFrontendImpl.cpp @@ -43,7 +43,6 @@ #include "Node.h" #include "Page.h" #include "Pasteboard.h" -#include "PlatformString.h" #include "ScriptController.h" #include "SecurityOrigin.h" #include "Settings.h" @@ -59,6 +58,7 @@ #include "WebViewImpl.h" #include <wtf/OwnPtr.h> #include <wtf/Vector.h> +#include <wtf/text/WTFString.h> using namespace WebCore; diff --git a/Source/WebKit/chromium/src/WebDevToolsFrontendImpl.h b/Source/WebKit/chromium/src/WebDevToolsFrontendImpl.h index a5dca3074..4030da7b3 100644 --- a/Source/WebKit/chromium/src/WebDevToolsFrontendImpl.h +++ b/Source/WebKit/chromium/src/WebDevToolsFrontendImpl.h @@ -31,11 +31,11 @@ #ifndef WebDevToolsFrontendImpl_h #define WebDevToolsFrontendImpl_h -#include "PlatformString.h" #include "WebDevToolsFrontend.h" #include <wtf/Forward.h> #include <wtf/Noncopyable.h> #include <wtf/Vector.h> +#include <wtf/text/WTFString.h> namespace WebKit { diff --git a/Source/WebKit/chromium/src/WebEntities.h b/Source/WebKit/chromium/src/WebEntities.h index f21056664..68a434367 100644 --- a/Source/WebKit/chromium/src/WebEntities.h +++ b/Source/WebKit/chromium/src/WebEntities.h @@ -31,8 +31,8 @@ #ifndef WebEntities_h #define WebEntities_h -#include "PlatformString.h" #include <wtf/HashMap.h> +#include <wtf/text/WTFString.h> namespace WebKit { diff --git a/Source/WebKit/chromium/src/WebExternalTextureLayerImpl.h b/Source/WebKit/chromium/src/WebExternalTextureLayerImpl.h index 5348895bf..6c03c2342 100644 --- a/Source/WebKit/chromium/src/WebExternalTextureLayerImpl.h +++ b/Source/WebKit/chromium/src/WebExternalTextureLayerImpl.h @@ -26,7 +26,7 @@ #ifndef WebExternalTextureLayerImpl_h #define WebExternalTextureLayerImpl_h -#include "TextureLayerChromium.h" +#include "TextureLayerChromiumClient.h" #include <public/WebExternalTextureLayer.h> namespace WebKit { diff --git a/Source/WebKit/chromium/src/WebFloatAnimationCurveImpl.cpp b/Source/WebKit/chromium/src/WebFloatAnimationCurveImpl.cpp index 9f5665cb8..4349f84e2 100644 --- a/Source/WebKit/chromium/src/WebFloatAnimationCurveImpl.cpp +++ b/Source/WebKit/chromium/src/WebFloatAnimationCurveImpl.cpp @@ -37,11 +37,11 @@ namespace WebKit { WebFloatAnimationCurve* WebFloatAnimationCurve::create() { - return new WebFloatAnimationCurveImpl(WebCore::CCKeyframedFloatAnimationCurve::create()); + return new WebFloatAnimationCurveImpl(); } -WebFloatAnimationCurveImpl::WebFloatAnimationCurveImpl(PassOwnPtr<WebCore::CCKeyframedFloatAnimationCurve> curve) - : m_curve(curve) +WebFloatAnimationCurveImpl::WebFloatAnimationCurveImpl() + : m_curve(WebCore::CCKeyframedFloatAnimationCurve::create()) { } diff --git a/Source/WebKit/chromium/src/WebFloatAnimationCurveImpl.h b/Source/WebKit/chromium/src/WebFloatAnimationCurveImpl.h index e8f1620d6..12ca3c66e 100644 --- a/Source/WebKit/chromium/src/WebFloatAnimationCurveImpl.h +++ b/Source/WebKit/chromium/src/WebFloatAnimationCurveImpl.h @@ -38,7 +38,7 @@ namespace WebKit { class WebFloatAnimationCurveImpl : public WebFloatAnimationCurve { public: - explicit WebFloatAnimationCurveImpl(PassOwnPtr<WebCore::CCKeyframedFloatAnimationCurve>); + WebFloatAnimationCurveImpl(); virtual ~WebFloatAnimationCurveImpl(); // WebAnimationCurve implementation. diff --git a/Source/WebKit/chromium/src/WebFrameImpl.cpp b/Source/WebKit/chromium/src/WebFrameImpl.cpp index 4279febe0..4395c6d70 100644 --- a/Source/WebKit/chromium/src/WebFrameImpl.cpp +++ b/Source/WebKit/chromium/src/WebFrameImpl.cpp @@ -170,6 +170,7 @@ #include "WebSecurityOrigin.h" #include "WebViewImpl.h" #include "XPathResult.h" +#include "htmlediting.h" #include "markup.h" #include "painting/GraphicsContextBuilder.h" #include "platform/WebFloatPoint.h" @@ -1190,6 +1191,11 @@ bool WebFrameImpl::isProcessingUserGesture() const return ScriptController::processingUserGesture(); } +bool WebFrameImpl::consumeUserGesture() const +{ + return UserGestureIndicator::consumeUserGesture(); +} + bool WebFrameImpl::willSuppressOpenerInNewFrame() const { return frame()->loader()->suppressOpenerInNewFrame(); @@ -1257,7 +1263,7 @@ size_t WebFrameImpl::characterIndexForPoint(const WebPoint& webPoint) const return notFound; IntPoint point = frame()->view()->windowToContents(webPoint); - HitTestResult result = frame()->eventHandler()->hitTestResultAtPoint(point, false); + HitTestResult result = frame()->eventHandler()->hitTestResultAtPoint(point); RefPtr<Range> range = frame()->rangeForPoint(result.roundedPoint()); if (!range) return notFound; @@ -1460,24 +1466,69 @@ bool WebFrameImpl::selectWordAroundCaret() void WebFrameImpl::selectRange(const WebPoint& start, const WebPoint& end) { - VisiblePosition startPosition = visiblePositionForWindowPoint(start); - VisiblePosition endPosition = visiblePositionForWindowPoint(end); + if (start == end && moveCaret(start)) + return; - // To correctly handle editable boundaries, we adjust the selection by setting its extent - // while keeping its base fixed. For a touch-based UI, this means that moving the selection - // handles behaves like a drag-select with the mouse, which is what we want here. If both - // endpoints changed, we need to set the extent twice. - // FIXME: the WebFrame::SelectRange API should explicitly state which endpoint is moving. - VisibleSelection newSelection = frame()->selection()->selection(); - if (startPosition != newSelection.visibleStart()) - newSelection = VisibleSelection(newSelection.visibleEnd(), startPosition); - if (endPosition != newSelection.visibleEnd()) - newSelection = VisibleSelection(newSelection.visibleStart(), endPosition); + if (moveSelectionStart(start, true) && moveSelectionEnd(end, true)) + return; + // Failed to move endpoints, probably because there's no current selection. + // Just set the selection explicitly (but this won't handle editable boundaries correctly). + VisibleSelection newSelection(visiblePositionForWindowPoint(start), visiblePositionForWindowPoint(end)); if (frame()->selection()->shouldChangeSelection(newSelection)) frame()->selection()->setSelection(newSelection, CharacterGranularity); } +bool WebFrameImpl::moveSelectionStart(const WebPoint& point, bool allowCollapsedSelection) +{ + const VisibleSelection& selection = frame()->selection()->selection(); + if (selection.isNone()) + return false; + + VisiblePosition start = visiblePositionForWindowPoint(point); + if (!allowCollapsedSelection) { + VisiblePosition maxStart = selection.visibleEnd().previous(); + if (comparePositions(start, maxStart) > 0) + start = maxStart; + } + + // start is moving, so base=end, extent=start + VisibleSelection newSelection = VisibleSelection(selection.visibleEnd(), start); + frame()->selection()->setNonDirectionalSelectionIfNeeded(newSelection, CharacterGranularity); + return true; +} + +bool WebFrameImpl::moveSelectionEnd(const WebPoint& point, bool allowCollapsedSelection) +{ + const VisibleSelection& selection = frame()->selection()->selection(); + if (selection.isNone()) + return false; + + VisiblePosition end = visiblePositionForWindowPoint(point); + if (!allowCollapsedSelection) { + VisiblePosition minEnd = selection.visibleStart().next(); + if (comparePositions(end, minEnd) < 0) + end = minEnd; + } + + // end is moving, so base=start, extent=end + VisibleSelection newSelection = VisibleSelection(selection.visibleStart(), end); + frame()->selection()->setNonDirectionalSelectionIfNeeded(newSelection, CharacterGranularity); + return true; +} + +bool WebFrameImpl::moveCaret(const WebPoint& point) +{ + FrameSelection* frameSelection = frame()->selection(); + if (frameSelection->isNone() || !frameSelection->isContentEditable()) + return false; + + VisiblePosition pos = visiblePositionForWindowPoint(point); + frameSelection->setExtent(pos, UserTriggered); + frameSelection->setBase(frameSelection->extent(), UserTriggered); + return true; +} + void WebFrameImpl::selectRange(const WebRange& webRange) { RefPtr<Range> range = static_cast<PassRefPtr<Range> >(webRange); diff --git a/Source/WebKit/chromium/src/WebFrameImpl.h b/Source/WebKit/chromium/src/WebFrameImpl.h index 20c5fe9d3..e59c932c5 100644 --- a/Source/WebKit/chromium/src/WebFrameImpl.h +++ b/Source/WebKit/chromium/src/WebFrameImpl.h @@ -36,10 +36,10 @@ #include "Frame.h" #include "FrameLoaderClientImpl.h" -#include "PlatformString.h" #include <wtf/Compiler.h> #include <wtf/OwnPtr.h> #include <wtf/RefCounted.h> +#include <wtf/text/WTFString.h> namespace WebCore { class GraphicsContext; @@ -162,6 +162,7 @@ public: virtual void commitDocumentData(const char* data, size_t length); virtual unsigned unloadListenerCount() const; virtual bool isProcessingUserGesture() const; + virtual bool consumeUserGesture() const; virtual bool willSuppressOpenerInNewFrame() const; virtual void replaceSelection(const WebString&); virtual void insertText(const WebString&); @@ -185,6 +186,9 @@ public: virtual bool selectWordAroundCaret(); virtual void selectRange(const WebPoint& start, const WebPoint& end); virtual void selectRange(const WebRange&); + virtual bool moveSelectionStart(const WebPoint&, bool allowCollapsedSelection); + virtual bool moveSelectionEnd(const WebPoint&, bool allowCollapsedSelection); + virtual bool moveCaret(const WebPoint&); virtual int printBegin(const WebPrintParams&, const WebNode& constrainToNode, bool* useBrowserOverlays); diff --git a/Source/WebKit/chromium/src/WebIDBKey.cpp b/Source/WebKit/chromium/src/WebIDBKey.cpp index cfadafbac..d60b5f5c1 100644 --- a/Source/WebKit/chromium/src/WebIDBKey.cpp +++ b/Source/WebKit/chromium/src/WebIDBKey.cpp @@ -32,10 +32,6 @@ #include "IDBBindingUtilities.h" #include "IDBKey.h" -#include "IDBKeyPath.h" -#include "SerializedScriptValue.h" -#include "WebIDBKeyPath.h" -#include "platform/WebSerializedScriptValue.h" using namespace WebCore; @@ -83,19 +79,6 @@ WebIDBKey WebIDBKey::createNull() return key; } -WebIDBKey WebIDBKey::createFromValueAndKeyPath(const WebSerializedScriptValue& serializedScriptValue, const WebIDBKeyPath& idbKeyPath) -{ - // FIXME: If key path is empty string, this should return invalid key instead - if (serializedScriptValue.isNull()) - return WebIDBKey::createNull(); - return createIDBKeyFromSerializedValueAndKeyPath(serializedScriptValue, idbKeyPath); -} - -WebSerializedScriptValue WebIDBKey::injectIDBKeyIntoSerializedValue(const WebIDBKey& key, const WebSerializedScriptValue& value, const WebIDBKeyPath& path) -{ - return WebCore::injectIDBKeyIntoSerializedValue(key, value, path); -} - void WebIDBKey::assign(const WebIDBKey& value) { m_private = value.m_private; diff --git a/Source/WebKit/chromium/src/WebIOSurfaceLayerImpl.cpp b/Source/WebKit/chromium/src/WebIOSurfaceLayerImpl.cpp index bab70c61d..d2df09045 100644 --- a/Source/WebKit/chromium/src/WebIOSurfaceLayerImpl.cpp +++ b/Source/WebKit/chromium/src/WebIOSurfaceLayerImpl.cpp @@ -35,14 +35,13 @@ namespace WebKit { WebIOSurfaceLayer* WebIOSurfaceLayer::create() { - RefPtr<IOSurfaceLayerChromium> layer = IOSurfaceLayerChromium::create(); - layer->setIsDrawable(true); - return new WebIOSurfaceLayerImpl(layer.release()); + return new WebIOSurfaceLayerImpl(); } -WebIOSurfaceLayerImpl::WebIOSurfaceLayerImpl(PassRefPtr<IOSurfaceLayerChromium> layer) - : m_layer(adoptPtr(new WebLayerImpl(layer))) +WebIOSurfaceLayerImpl::WebIOSurfaceLayerImpl() + : m_layer(adoptPtr(new WebLayerImpl(IOSurfaceLayerChromium::create()))) { + m_layer->layer()->setIsDrawable(true); } WebIOSurfaceLayerImpl::~WebIOSurfaceLayerImpl() diff --git a/Source/WebKit/chromium/src/WebIOSurfaceLayerImpl.h b/Source/WebKit/chromium/src/WebIOSurfaceLayerImpl.h index 3dbb02759..7aaeb02c1 100644 --- a/Source/WebKit/chromium/src/WebIOSurfaceLayerImpl.h +++ b/Source/WebKit/chromium/src/WebIOSurfaceLayerImpl.h @@ -29,15 +29,11 @@ #include <public/WebIOSurfaceLayer.h> #include <wtf/OwnPtr.h> -namespace WebCore { -class IOSurfaceLayerChromium; -} - namespace WebKit { class WebIOSurfaceLayerImpl : public WebIOSurfaceLayer { public: - explicit WebIOSurfaceLayerImpl(PassRefPtr<WebCore::IOSurfaceLayerChromium>); + WebIOSurfaceLayerImpl(); virtual ~WebIOSurfaceLayerImpl(); // WebIOSurfaceLayer implementation. diff --git a/Source/WebKit/chromium/src/WebImageLayerImpl.cpp b/Source/WebKit/chromium/src/WebImageLayerImpl.cpp index d93af8045..7038e3550 100644 --- a/Source/WebKit/chromium/src/WebImageLayerImpl.cpp +++ b/Source/WebKit/chromium/src/WebImageLayerImpl.cpp @@ -35,11 +35,11 @@ namespace WebKit { WebImageLayer* WebImageLayer::create() { - return new WebImageLayerImpl(WebCore::ImageLayerChromium::create()); + return new WebImageLayerImpl(); } -WebImageLayerImpl::WebImageLayerImpl(PassRefPtr<WebCore::ImageLayerChromium> layer) - : m_layer(adoptPtr(new WebLayerImpl(layer))) +WebImageLayerImpl::WebImageLayerImpl() + : m_layer(adoptPtr(new WebLayerImpl(ImageLayerChromium::create()))) { } diff --git a/Source/WebKit/chromium/src/WebImageLayerImpl.h b/Source/WebKit/chromium/src/WebImageLayerImpl.h index 9a4b8b3eb..feea60b9c 100644 --- a/Source/WebKit/chromium/src/WebImageLayerImpl.h +++ b/Source/WebKit/chromium/src/WebImageLayerImpl.h @@ -38,7 +38,7 @@ class WebLayerImpl; class WebImageLayerImpl : public WebImageLayer { public: - explicit WebImageLayerImpl(PassRefPtr<WebCore::ImageLayerChromium>); + WebImageLayerImpl(); virtual ~WebImageLayerImpl(); // WebImageLayer implementation. diff --git a/Source/WebKit/chromium/src/WebInputEvent.cpp b/Source/WebKit/chromium/src/WebInputEvent.cpp index d61eb2d31..96123c62e 100644 --- a/Source/WebKit/chromium/src/WebInputEvent.cpp +++ b/Source/WebKit/chromium/src/WebInputEvent.cpp @@ -202,4 +202,41 @@ void WebKeyboardEvent::setKeyIdentifierFromWindowsKeyCode() snprintf(keyIdentifier, sizeof(keyIdentifier), "U+%04X", toupper(windowsKeyCode)); } +// static +int WebKeyboardEvent::windowsKeyCodeWithoutLocation(int keycode) +{ + switch (keycode) { + case VK_LCONTROL: + case VK_RCONTROL: + return VK_CONTROL; + case VK_LSHIFT: + case VK_RSHIFT: + return VK_SHIFT; + case VK_LMENU: + case VK_RMENU: + return VK_MENU; + default: + return keycode; + } +} + +// static +int WebKeyboardEvent::locationModifiersFromWindowsKeyCode(int keycode) +{ + switch (keycode) { + case VK_LCONTROL: + case VK_LSHIFT: + case VK_LMENU: + case VK_LWIN: + return IsLeft; + case VK_RCONTROL: + case VK_RSHIFT: + case VK_RMENU: + case VK_RWIN: + return IsRight; + default: + return 0; + } +} + } // namespace WebKit diff --git a/Source/WebKit/chromium/src/WebInputEventConversion.cpp b/Source/WebKit/chromium/src/WebInputEventConversion.cpp index 0391c285b..2afc7dcfe 100644 --- a/Source/WebKit/chromium/src/WebInputEventConversion.cpp +++ b/Source/WebKit/chromium/src/WebInputEventConversion.cpp @@ -149,10 +149,14 @@ PlatformGestureEventBuilder::PlatformGestureEventBuilder(Widget* widget, const W break; case WebInputEvent::GestureScrollUpdate: m_type = PlatformEvent::GestureScrollUpdate; + m_deltaX = e.data.scrollUpdate.deltaX; + m_deltaY = e.data.scrollUpdate.deltaY; break; case WebInputEvent::GestureTap: m_type = PlatformEvent::GestureTap; - m_area = IntSize(e.boundingBox.width, e.boundingBox.height); + m_area = IntSize(e.data.tap.width, e.data.tap.height); + // FIXME: PlatformGestureEvent deltaX is overloaded - wkb.ug/93123 + m_deltaX = static_cast<int>(e.data.tap.tapCount); break; case WebInputEvent::GestureTapDown: m_type = PlatformEvent::GestureTapDown; @@ -165,7 +169,7 @@ PlatformGestureEventBuilder::PlatformGestureEventBuilder(Widget* widget, const W break; case WebInputEvent::GestureLongPress: m_type = PlatformEvent::GestureLongPress; - m_area = IntSize(e.boundingBox.width, e.boundingBox.height); + m_area = IntSize(e.data.longPress.width, e.data.longPress.height); break; case WebInputEvent::GesturePinchBegin: m_type = PlatformEvent::GesturePinchBegin; @@ -175,14 +179,14 @@ PlatformGestureEventBuilder::PlatformGestureEventBuilder(Widget* widget, const W break; case WebInputEvent::GesturePinchUpdate: m_type = PlatformEvent::GesturePinchUpdate; + // FIXME: PlatformGestureEvent deltaX is overloaded - wkb.ug/93123 + m_deltaX = e.data.pinchUpdate.scale; break; default: ASSERT_NOT_REACHED(); } m_position = widget->convertFromContainingWindow(IntPoint(e.x, e.y)); m_globalPosition = IntPoint(e.globalX, e.globalY); - m_deltaX = e.deltaX; - m_deltaY = e.deltaY; m_timestamp = e.timeStampSeconds; m_modifiers = 0; @@ -223,7 +227,6 @@ PlatformKeyboardEventBuilder::PlatformKeyboardEventBuilder(const WebKeyboardEven m_unmodifiedText = String(e.unmodifiedText); m_keyIdentifier = String(e.keyIdentifier); m_autoRepeat = (e.modifiers & WebInputEvent::IsAutoRepeat); - m_windowsVirtualKeyCode = e.windowsKeyCode; m_nativeVirtualKeyCode = e.nativeKeyCode; m_isKeypad = (e.modifiers & WebInputEvent::IsKeyPad); m_isSystemKey = e.isSystemKey; @@ -237,6 +240,28 @@ PlatformKeyboardEventBuilder::PlatformKeyboardEventBuilder(const WebKeyboardEven m_modifiers |= PlatformEvent::AltKey; if (e.modifiers & WebInputEvent::MetaKey) m_modifiers |= PlatformEvent::MetaKey; + + // FIXME: PlatformKeyboardEvents expect a locational version of the keycode (e.g. VK_LSHIFT + // instead of VK_SHIFT). This should be changed so the location/keycode are stored separately, + // as in other places in the code. + m_windowsVirtualKeyCode = e.windowsKeyCode; + if (e.windowsKeyCode == VK_SHIFT) { + if (e.modifiers & WebInputEvent::IsLeft) + m_windowsVirtualKeyCode = VK_LSHIFT; + else if (e.modifiers & WebInputEvent::IsRight) + m_windowsVirtualKeyCode = VK_RSHIFT; + } else if (e.windowsKeyCode == VK_CONTROL) { + if (e.modifiers & WebInputEvent::IsLeft) + m_windowsVirtualKeyCode = VK_LCONTROL; + else if (e.modifiers & WebInputEvent::IsRight) + m_windowsVirtualKeyCode = VK_RCONTROL; + } else if (e.windowsKeyCode == VK_MENU) { + if (e.modifiers & WebInputEvent::IsLeft) + m_windowsVirtualKeyCode = VK_LMENU; + else if (e.modifiers & WebInputEvent::IsRight) + m_windowsVirtualKeyCode = VK_RMENU; + } + } void PlatformKeyboardEventBuilder::setKeyType(Type type) @@ -448,8 +473,12 @@ WebKeyboardEventBuilder::WebKeyboardEventBuilder(const KeyboardEvent& event) return; // Skip all other keyboard events. modifiers = getWebInputModifiers(event); - if (event.keyLocation() & KeyboardEvent::DOM_KEY_LOCATION_NUMPAD) + if (event.keyLocation() == KeyboardEvent::DOM_KEY_LOCATION_NUMPAD) modifiers |= WebInputEvent::IsKeyPad; + else if (event.keyLocation() == KeyboardEvent::DOM_KEY_LOCATION_LEFT) + modifiers |= WebInputEvent::IsLeft; + else if (event.keyLocation() == KeyboardEvent::DOM_KEY_LOCATION_RIGHT) + modifiers |= WebInputEvent::IsRight; timeStampSeconds = event.timeStamp() / millisPerSecond; windowsKeyCode = event.keyCode(); @@ -526,8 +555,11 @@ WebGestureEventBuilder::WebGestureEventBuilder(const Widget* widget, const Gestu type = GestureScrollBegin; else if (event.type() == eventNames().gesturescrollendEvent) type = GestureScrollEnd; - else if (event.type() == eventNames().gesturescrollupdateEvent) + else if (event.type() == eventNames().gesturescrollupdateEvent) { type = GestureScrollUpdate; + data.scrollUpdate.deltaX = event.deltaX(); + data.scrollUpdate.deltaY = event.deltaY(); + } timeStampSeconds = event.timeStamp() / millisPerSecond; modifiers = getWebInputModifiers(event); @@ -536,9 +568,6 @@ WebGestureEventBuilder::WebGestureEventBuilder(const Widget* widget, const Gestu globalY = event.screenY(); x = event.absoluteLocation().x() - widget->location().x(); y = event.absoluteLocation().y() - widget->location().y(); - - deltaX = event.deltaX(); - deltaY = event.deltaY(); } #endif // ENABLE(GESTURE_EVENTS) diff --git a/Source/WebKit/chromium/src/WebLayerImpl.cpp b/Source/WebKit/chromium/src/WebLayerImpl.cpp index bf64a8f2a..85f9b4db4 100644 --- a/Source/WebKit/chromium/src/WebLayerImpl.cpp +++ b/Source/WebKit/chromium/src/WebLayerImpl.cpp @@ -79,7 +79,12 @@ SkMatrix44 skMatrix44FromTransformationMatrix(const WebTransformationMatrix& mat WebLayer* WebLayer::create() { - return new WebLayerImpl(LayerChromium::create()); + return new WebLayerImpl(); +} + +WebLayerImpl::WebLayerImpl() + : m_layer(LayerChromium::create()) +{ } WebLayerImpl::WebLayerImpl(PassRefPtr<LayerChromium> layer) @@ -87,6 +92,7 @@ WebLayerImpl::WebLayerImpl(PassRefPtr<LayerChromium> layer) { } + WebLayerImpl::~WebLayerImpl() { m_layer->clearRenderSurface(); @@ -349,6 +355,16 @@ void WebLayerImpl::setScrollPosition(WebPoint position) m_layer->setScrollPosition(position); } +WebPoint WebLayerImpl::scrollPosition() const +{ + return m_layer->scrollPosition(); +} + +void WebLayerImpl::setMaxScrollPosition(WebSize maxScrollPosition) +{ + m_layer->setMaxScrollPosition(maxScrollPosition); +} + void WebLayerImpl::setScrollable(bool scrollable) { m_layer->setScrollable(scrollable); @@ -385,6 +401,11 @@ void WebLayerImpl::setFixedToContainerLayer(bool enable) m_layer->setFixedToContainerLayer(enable); } +void WebLayerImpl::setScrollClient(WebLayerScrollClient* scrollClient) +{ + m_layer->setLayerScrollClient(scrollClient); +} + LayerChromium* WebLayerImpl::layer() const { return m_layer.get(); diff --git a/Source/WebKit/chromium/src/WebLayerImpl.h b/Source/WebKit/chromium/src/WebLayerImpl.h index 0a61826a5..6739fd5ed 100644 --- a/Source/WebKit/chromium/src/WebLayerImpl.h +++ b/Source/WebKit/chromium/src/WebLayerImpl.h @@ -27,6 +27,7 @@ #define WebLayerImpl_h #include <public/WebLayer.h> +#include <wtf/PassRefPtr.h> #include <wtf/RefPtr.h> namespace WebCore { @@ -37,6 +38,7 @@ namespace WebKit { class WebLayerImpl : public WebLayer { public: + WebLayerImpl(); explicit WebLayerImpl(PassRefPtr<WebCore::LayerChromium>); virtual ~WebLayerImpl(); @@ -92,12 +94,15 @@ public: virtual void transferAnimationsTo(WebLayer*) OVERRIDE; virtual void setForceRenderSurface(bool) OVERRIDE; virtual void setScrollPosition(WebPoint) OVERRIDE; + virtual WebPoint scrollPosition() const OVERRIDE; + virtual void setMaxScrollPosition(WebSize) OVERRIDE; virtual void setScrollable(bool) OVERRIDE; virtual void setHaveWheelEventHandlers(bool) OVERRIDE; virtual void setShouldScrollOnMainThread(bool) OVERRIDE; virtual void setNonFastScrollableRegion(const WebVector<WebRect>&) OVERRIDE; virtual void setIsContainerForFixedPositionLayers(bool) OVERRIDE; virtual void setFixedToContainerLayer(bool) OVERRIDE; + virtual void setScrollClient(WebLayerScrollClient*) OVERRIDE; WebCore::LayerChromium* layer() const; diff --git a/Source/WebKit/chromium/src/WebLayerTreeView.cpp b/Source/WebKit/chromium/src/WebLayerTreeView.cpp deleted file mode 100644 index 7dfbcd129..000000000 --- a/Source/WebKit/chromium/src/WebLayerTreeView.cpp +++ /dev/null @@ -1,214 +0,0 @@ -/* - * Copyright (C) 2011 Google Inc. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY - * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY - * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND - * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF - * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -#include "config.h" -#include <public/WebLayerTreeView.h> - -#include "CCFontAtlas.h" -#include "CCGraphicsContext.h" -#include "CCLayerTreeHost.h" -#include "CCRenderingStats.h" -#include "LayerChromium.h" -#include "WebLayerImpl.h" -#include "WebLayerTreeViewImpl.h" -#include <public/WebLayer.h> -#include <public/WebPoint.h> -#include <public/WebRect.h> -#include <public/WebRenderingStats.h> -#include <public/WebSize.h> - -using namespace WebCore; - -namespace WebKit { - -WebLayerTreeView::Settings::operator CCLayerTreeSettings() const -{ - CCLayerTreeSettings settings; - settings.showFPSCounter = showFPSCounter; - settings.showPlatformLayerTree = showPlatformLayerTree; - settings.showPaintRects = showPaintRects; - settings.renderVSyncEnabled = renderVSyncEnabled; - settings.refreshRate = refreshRate; - settings.defaultTileSize = defaultTileSize; - settings.maxUntiledLayerSize = maxUntiledLayerSize; - settings.acceleratePainting = acceleratePainting; - - // FIXME: showFPSCounter / showPlatformLayerTree / maxPartialTextureUpdates aren't supported currently. - return settings; -} - -void WebLayerTreeView::reset() -{ - m_private.reset(0); -} - -bool WebLayerTreeView::isNull() const -{ - return !m_private.get(); -} - -bool WebLayerTreeView::initialize(WebLayerTreeViewClient* client, const WebLayer& root, const WebLayerTreeView::Settings& settings) -{ - // We have to leak the pointer here into a WebPrivateOwnPtr. We free this object in reset(). - m_private.reset(WebLayerTreeViewImpl::create(client, root, settings).leakPtr()); - return !isNull(); -} - -void WebLayerTreeView::setSurfaceReady() -{ - m_private->layerTreeHost()->setSurfaceReady(); -} - -void WebLayerTreeView::setRootLayer(WebLayer *root) -{ - if (root) - m_private->layerTreeHost()->setRootLayer(static_cast<WebLayerImpl*>(root)->layer()); - else - m_private->layerTreeHost()->setRootLayer(PassRefPtr<LayerChromium>()); -} - -int WebLayerTreeView::compositorIdentifier() -{ - return m_private->layerTreeHost()->compositorIdentifier(); -} - -void WebLayerTreeView::setViewportSize(const WebSize& layoutViewportSize, const WebSize& deviceViewportSize) -{ - if (!deviceViewportSize.isEmpty()) - m_private->layerTreeHost()->setViewportSize(layoutViewportSize, deviceViewportSize); - else - m_private->layerTreeHost()->setViewportSize(layoutViewportSize, layoutViewportSize); -} - -WebSize WebLayerTreeView::layoutViewportSize() const -{ - return WebSize(m_private->layerTreeHost()->layoutViewportSize()); -} - -WebSize WebLayerTreeView::deviceViewportSize() const -{ - return WebSize(m_private->layerTreeHost()->deviceViewportSize()); -} - -void WebLayerTreeView::setDeviceScaleFactor(const float deviceScaleFactor) -{ - m_private->layerTreeHost()->setDeviceScaleFactor(deviceScaleFactor); -} - -float WebLayerTreeView::deviceScaleFactor() const -{ - return m_private->layerTreeHost()->deviceScaleFactor(); -} - -void WebLayerTreeView::setBackgroundColor(WebColor color) -{ - m_private->layerTreeHost()->setBackgroundColor(color); -} - -void WebLayerTreeView::setHasTransparentBackground(bool transparent) -{ - m_private->layerTreeHost()->setHasTransparentBackground(transparent); -} - -void WebLayerTreeView::setVisible(bool visible) -{ - m_private->layerTreeHost()->setVisible(visible); -} - -void WebLayerTreeView::setPageScaleFactorAndLimits(float pageScaleFactor, float minimum, float maximum) -{ - m_private->layerTreeHost()->setPageScaleFactorAndLimits(pageScaleFactor, minimum, maximum); -} - -void WebLayerTreeView::startPageScaleAnimation(const WebPoint& scroll, bool useAnchor, float newPageScale, double durationSec) -{ - m_private->layerTreeHost()->startPageScaleAnimation(IntSize(scroll.x, scroll.y), useAnchor, newPageScale, durationSec); -} - -void WebLayerTreeView::setNeedsAnimate() -{ - m_private->layerTreeHost()->setNeedsAnimate(); -} - -void WebLayerTreeView::setNeedsRedraw() -{ - m_private->layerTreeHost()->setNeedsRedraw(); -} - -bool WebLayerTreeView::commitRequested() const -{ - return m_private->layerTreeHost()->commitRequested(); -} - -void WebLayerTreeView::composite() -{ - if (CCProxy::hasImplThread()) - m_private->layerTreeHost()->setNeedsCommit(); - else - m_private->layerTreeHost()->composite(); -} - -void WebLayerTreeView::updateAnimations(double frameBeginTime) -{ - m_private->layerTreeHost()->updateAnimations(frameBeginTime); -} - -bool WebLayerTreeView::compositeAndReadback(void *pixels, const WebRect& rect) -{ - return m_private->layerTreeHost()->compositeAndReadback(pixels, rect); -} - -void WebLayerTreeView::finishAllRendering() -{ - m_private->layerTreeHost()->finishAllRendering(); -} - -void WebLayerTreeView::renderingStats(WebRenderingStats& stats) const -{ - CCRenderingStats ccStats; - m_private->layerTreeHost()->renderingStats(ccStats); - - stats.numAnimationFrames = ccStats.numAnimationFrames; - stats.numFramesSentToScreen = ccStats.numFramesSentToScreen; - stats.droppedFrameCount = ccStats.droppedFrameCount; - stats.totalPaintTimeInSeconds = ccStats.totalPaintTimeInSeconds; - stats.totalRasterizeTimeInSeconds = ccStats.totalRasterizeTimeInSeconds; -} - -void WebLayerTreeView::setFontAtlas(SkBitmap bitmap, WebRect asciiToWebRectTable[128], int fontHeight) -{ - IntRect asciiToRectTable[128]; - for (int i = 0; i < 128; ++i) - asciiToRectTable[i] = asciiToWebRectTable[i]; - OwnPtr<CCFontAtlas> fontAtlas = CCFontAtlas::create(bitmap, asciiToRectTable, fontHeight); - m_private->layerTreeHost()->setFontAtlas(fontAtlas.release()); -} - -void WebLayerTreeView::loseCompositorContext(int numTimes) -{ - m_private->layerTreeHost()->loseContext(numTimes); -} - -} // namespace WebKit diff --git a/Source/WebKit/chromium/src/WebLayerTreeViewImpl.cpp b/Source/WebKit/chromium/src/WebLayerTreeViewImpl.cpp index 1fd823976..bb898c966 100644 --- a/Source/WebKit/chromium/src/WebLayerTreeViewImpl.cpp +++ b/Source/WebKit/chromium/src/WebLayerTreeViewImpl.cpp @@ -26,130 +26,35 @@ #include "config.h" #include "WebLayerTreeViewImpl.h" +#include "CCFontAtlas.h" +#include "CCInputHandler.h" #include "CCLayerTreeHost.h" -#include "CCThreadProxy.h" #include "LayerChromium.h" #include "WebLayerImpl.h" +#include "WebToCCInputHandlerAdapter.h" #include <public/WebGraphicsContext3D.h> +#include <public/WebInputHandler.h> #include <public/WebLayer.h> #include <public/WebLayerTreeView.h> #include <public/WebLayerTreeViewClient.h> +#include <public/WebRenderingStats.h> #include <public/WebSize.h> -#include <public/WebThread.h> using namespace WebCore; -namespace { - -// Adapts a pure WebGraphicsContext3D into a WebCompositorOutputSurface until -// downstream code can be updated to produce output surfaces directly. -class WebGraphicsContextToOutputSurfaceAdapter : public WebKit::WebCompositorOutputSurface { -public: - explicit WebGraphicsContextToOutputSurfaceAdapter(PassOwnPtr<WebKit::WebGraphicsContext3D> context) - : m_context3D(context) - , m_client(0) - { - } - - virtual bool bindToClient(WebKit::WebCompositorOutputSurfaceClient* client) OVERRIDE - { - ASSERT(client); - if (!m_context3D->makeContextCurrent()) - return false; - m_client = client; - return true; - } - - virtual const Capabilities& capabilities() const OVERRIDE - { - return m_capabilities; - } - - virtual WebKit::WebGraphicsContext3D* context3D() const OVERRIDE - { - return m_context3D.get(); - } - - virtual void sendFrameToParentCompositor(const WebKit::WebCompositorFrame&) OVERRIDE - { - } - -private: - OwnPtr<WebKit::WebGraphicsContext3D> m_context3D; - Capabilities m_capabilities; - WebKit::WebCompositorOutputSurfaceClient* m_client; -}; +namespace WebKit { +WebLayerTreeView* WebLayerTreeView::create(WebLayerTreeViewClient* client, const WebLayer& root, const WebLayerTreeView::Settings& settings) +{ + OwnPtr<WebLayerTreeViewImpl> layerTreeViewImpl = adoptPtr(new WebLayerTreeViewImpl(client)); + if (!layerTreeViewImpl->initialize(settings)) + return 0; + layerTreeViewImpl->setRootLayer(root); + return layerTreeViewImpl.leakPtr(); } -namespace WebKit { - -// Converts messages from CCLayerTreeHostClient to WebLayerTreeViewClient. -class WebLayerTreeViewClientAdapter : public WebCore::CCLayerTreeHostClient { -public: - WebLayerTreeViewClientAdapter(WebLayerTreeViewClient* client) - : m_client(client) - , m_usingRealOutputSurface(false) - { - } - virtual ~WebLayerTreeViewClientAdapter() { } - - // CCLayerTreeHostClient implementation - virtual void willBeginFrame() OVERRIDE { m_client->willBeginFrame(); } - virtual void didBeginFrame() OVERRIDE { m_client->didBeginFrame(); } - virtual void updateAnimations(double monotonicFrameBeginTime) OVERRIDE { m_client->updateAnimations(monotonicFrameBeginTime); } - virtual void layout() OVERRIDE { m_client->layout(); } - virtual void applyScrollAndScale(const WebCore::IntSize& scrollDelta, float pageScale) OVERRIDE { m_client->applyScrollAndScale(scrollDelta, pageScale); } - virtual PassOwnPtr<WebCompositorOutputSurface> createOutputSurface() OVERRIDE - { - WebCompositorOutputSurface* outputSurface = m_client->createOutputSurface(); - if (outputSurface) { - m_usingRealOutputSurface = true; - return adoptPtr(outputSurface); - } - - // Temporarily, if the output surface can't be created, create a WebGraphicsContext3D - // directly. This allows bootstrapping the output surface system while downstream - // users of the API still use the old approach. - WebGraphicsContext3D* context = m_client->createContext3D(); - if (!context) - return nullptr; - - m_usingRealOutputSurface = false; - return adoptPtr(new WebGraphicsContextToOutputSurfaceAdapter(adoptPtr(context))); - } - - virtual void didRecreateOutputSurface(bool success) OVERRIDE - { - if (m_usingRealOutputSurface) { - m_client->didRecreateOutputSurface(success); - return; - } - m_client->didRebindGraphicsContext(success); - } - virtual void willCommit() OVERRIDE { m_client->willCommit(); } - virtual void didCommit() OVERRIDE { m_client->didCommit(); } - virtual void didCommitAndDrawFrame() OVERRIDE { m_client->didCommitAndDrawFrame(); } - virtual void didCompleteSwapBuffers() OVERRIDE { m_client->didCompleteSwapBuffers(); } - virtual void scheduleComposite() OVERRIDE { m_client->scheduleComposite(); } - -private: - WebLayerTreeViewClient* m_client; - bool m_usingRealOutputSurface; -}; - -PassOwnPtr<WebLayerTreeViewImpl> WebLayerTreeViewImpl::create(WebLayerTreeViewClient* client, const WebLayer& root, const WebLayerTreeView::Settings& settings) -{ - OwnPtr<WebLayerTreeViewImpl> impl = adoptPtr(new WebLayerTreeViewImpl(client, settings)); - if (!impl->layerTreeHost()) - return nullptr; - impl->layerTreeHost()->setRootLayer(static_cast<const WebLayerImpl*>(&root)->layer()); - return impl.release(); -} - -WebLayerTreeViewImpl::WebLayerTreeViewImpl(WebLayerTreeViewClient* client, const WebLayerTreeView::Settings& settings) - : m_clientAdapter(adoptPtr(new WebLayerTreeViewClientAdapter(client))) - , m_layerTreeHost(CCLayerTreeHost::create(m_clientAdapter.get(), settings)) +WebLayerTreeViewImpl::WebLayerTreeViewImpl(WebLayerTreeViewClient* client) + : m_client(client) { } @@ -157,4 +62,221 @@ WebLayerTreeViewImpl::~WebLayerTreeViewImpl() { } +bool WebLayerTreeViewImpl::initialize(const WebLayerTreeView::Settings& webSettings) +{ + CCLayerTreeSettings settings; + settings.acceleratePainting = webSettings.acceleratePainting; + settings.showFPSCounter = webSettings.showFPSCounter; + settings.showPlatformLayerTree = webSettings.showPlatformLayerTree; + settings.showPaintRects = webSettings.showPaintRects; + settings.renderVSyncEnabled = webSettings.renderVSyncEnabled; + settings.refreshRate = webSettings.refreshRate; + settings.defaultTileSize = webSettings.defaultTileSize; + settings.maxUntiledLayerSize = webSettings.maxUntiledLayerSize; + m_layerTreeHost = CCLayerTreeHost::create(this, settings); + if (!m_layerTreeHost) + return false; + return true; +} + +void WebLayerTreeViewImpl::setSurfaceReady() +{ + m_layerTreeHost->setSurfaceReady(); +} + +void WebLayerTreeViewImpl::setRootLayer(const WebLayer& root) +{ + m_layerTreeHost->setRootLayer(static_cast<const WebLayerImpl*>(&root)->layer()); +} + +void WebLayerTreeViewImpl::clearRootLayer() +{ + m_layerTreeHost->setRootLayer(PassRefPtr<LayerChromium>()); +} + +void WebLayerTreeViewImpl::setViewportSize(const WebSize& layoutViewportSize, const WebSize& deviceViewportSize) +{ + if (!deviceViewportSize.isEmpty()) + m_layerTreeHost->setViewportSize(layoutViewportSize, deviceViewportSize); + else + m_layerTreeHost->setViewportSize(layoutViewportSize, layoutViewportSize); +} + +WebSize WebLayerTreeViewImpl::layoutViewportSize() const +{ + return WebSize(m_layerTreeHost->layoutViewportSize()); +} + +WebSize WebLayerTreeViewImpl::deviceViewportSize() const +{ + return WebSize(m_layerTreeHost->deviceViewportSize()); +} + +void WebLayerTreeViewImpl::setDeviceScaleFactor(const float deviceScaleFactor) +{ + m_layerTreeHost->setDeviceScaleFactor(deviceScaleFactor); +} + +float WebLayerTreeViewImpl::deviceScaleFactor() const +{ + return m_layerTreeHost->deviceScaleFactor(); +} + +void WebLayerTreeViewImpl::setBackgroundColor(WebColor color) +{ + m_layerTreeHost->setBackgroundColor(color); +} + +void WebLayerTreeViewImpl::setHasTransparentBackground(bool transparent) +{ + m_layerTreeHost->setHasTransparentBackground(transparent); +} + +void WebLayerTreeViewImpl::setVisible(bool visible) +{ + m_layerTreeHost->setVisible(visible); +} + +void WebLayerTreeViewImpl::setPageScaleFactorAndLimits(float pageScaleFactor, float minimum, float maximum) +{ + m_layerTreeHost->setPageScaleFactorAndLimits(pageScaleFactor, minimum, maximum); +} + +void WebLayerTreeViewImpl::startPageScaleAnimation(const WebPoint& scroll, bool useAnchor, float newPageScale, double durationSec) +{ + m_layerTreeHost->startPageScaleAnimation(IntSize(scroll.x, scroll.y), useAnchor, newPageScale, durationSec); +} + +void WebLayerTreeViewImpl::setNeedsAnimate() +{ + m_layerTreeHost->setNeedsAnimate(); +} + +void WebLayerTreeViewImpl::setNeedsRedraw() +{ + m_layerTreeHost->setNeedsRedraw(); +} + +bool WebLayerTreeViewImpl::commitRequested() const +{ + return m_layerTreeHost->commitRequested(); +} + +void WebLayerTreeViewImpl::composite() +{ + if (CCProxy::hasImplThread()) + m_layerTreeHost->setNeedsCommit(); + else + m_layerTreeHost->composite(); +} + +void WebLayerTreeViewImpl::updateAnimations(double frameBeginTime) +{ + m_layerTreeHost->updateAnimations(frameBeginTime); +} + +bool WebLayerTreeViewImpl::compositeAndReadback(void *pixels, const WebRect& rect) +{ + return m_layerTreeHost->compositeAndReadback(pixels, rect); +} + +void WebLayerTreeViewImpl::finishAllRendering() +{ + m_layerTreeHost->finishAllRendering(); +} + +void WebLayerTreeViewImpl::renderingStats(WebRenderingStats& stats) const +{ + CCRenderingStats ccStats; + m_layerTreeHost->renderingStats(ccStats); + + stats.numAnimationFrames = ccStats.numAnimationFrames; + stats.numFramesSentToScreen = ccStats.numFramesSentToScreen; + stats.droppedFrameCount = ccStats.droppedFrameCount; + stats.totalPaintTimeInSeconds = ccStats.totalPaintTimeInSeconds; + stats.totalRasterizeTimeInSeconds = ccStats.totalRasterizeTimeInSeconds; +} + +void WebLayerTreeViewImpl::setFontAtlas(SkBitmap bitmap, WebRect asciiToWebRectTable[128], int fontHeight) +{ + IntRect asciiToRectTable[128]; + for (int i = 0; i < 128; ++i) + asciiToRectTable[i] = asciiToWebRectTable[i]; + OwnPtr<CCFontAtlas> fontAtlas = CCFontAtlas::create(bitmap, asciiToRectTable, fontHeight); + m_layerTreeHost->setFontAtlas(fontAtlas.release()); +} + +void WebLayerTreeViewImpl::loseCompositorContext(int numTimes) +{ + m_layerTreeHost->loseContext(numTimes); +} + +void WebLayerTreeViewImpl::willBeginFrame() +{ + m_client->willBeginFrame(); +} + +void WebLayerTreeViewImpl::didBeginFrame() +{ + m_client->didBeginFrame(); +} + +void WebLayerTreeViewImpl::animate(double monotonicFrameBeginTime) +{ + m_client->updateAnimations(monotonicFrameBeginTime); +} + +void WebLayerTreeViewImpl::layout() +{ + m_client->layout(); +} + +void WebLayerTreeViewImpl::applyScrollAndScale(const WebCore::IntSize& scrollDelta, float pageScale) +{ + m_client->applyScrollAndScale(scrollDelta, pageScale); +} + +PassOwnPtr<WebCompositorOutputSurface> WebLayerTreeViewImpl::createOutputSurface() +{ + return adoptPtr(m_client->createOutputSurface()); +} + +void WebLayerTreeViewImpl::didRecreateOutputSurface(bool success) +{ + m_client->didRecreateOutputSurface(success); +} + +PassOwnPtr<CCInputHandler> WebLayerTreeViewImpl::createInputHandler() +{ + OwnPtr<WebInputHandler> handler = adoptPtr(m_client->createInputHandler()); + if (handler) + return WebToCCInputHandlerAdapter::create(handler.release()); + return nullptr; +} + +void WebLayerTreeViewImpl::willCommit() +{ + m_client->willCommit(); +} + +void WebLayerTreeViewImpl::didCommit() +{ + m_client->didCommit(); +} + +void WebLayerTreeViewImpl::didCommitAndDrawFrame() +{ + m_client->didCommitAndDrawFrame(); +} + +void WebLayerTreeViewImpl::didCompleteSwapBuffers() +{ + m_client->didCompleteSwapBuffers(); +} + +void WebLayerTreeViewImpl::scheduleComposite() +{ + m_client->scheduleComposite(); +} + } // namespace WebKit diff --git a/Source/WebKit/chromium/src/WebLayerTreeViewImpl.h b/Source/WebKit/chromium/src/WebLayerTreeViewImpl.h index 3bc43410d..a1dbd7404 100644 --- a/Source/WebKit/chromium/src/WebLayerTreeViewImpl.h +++ b/Source/WebKit/chromium/src/WebLayerTreeViewImpl.h @@ -26,6 +26,7 @@ #ifndef WebLayerTreeViewImpl_h #define WebLayerTreeViewImpl_h +#include "CCLayerTreeHostClient.h" #include <public/WebLayerTreeView.h> #include <wtf/OwnPtr.h> #include <wtf/PassOwnPtr.h> @@ -39,17 +40,55 @@ class WebLayer; class WebLayerTreeViewClient; class WebLayerTreeViewClientAdapter; -class WebLayerTreeViewImpl { +class WebLayerTreeViewImpl : public WebLayerTreeView, public WebCore::CCLayerTreeHostClient { public: - static PassOwnPtr<WebLayerTreeViewImpl> create(WebLayerTreeViewClient*, const WebLayer& root, const WebLayerTreeView::Settings&); + explicit WebLayerTreeViewImpl(WebLayerTreeViewClient*); virtual ~WebLayerTreeViewImpl(); - WebCore::CCLayerTreeHost* layerTreeHost() { return m_layerTreeHost.get(); } + bool initialize(const Settings&); -private: - WebLayerTreeViewImpl(WebLayerTreeViewClient*, const WebLayerTreeView::Settings&); + // WebLayerTreeView implementation. + virtual void setSurfaceReady() OVERRIDE; + virtual void setRootLayer(const WebLayer&) OVERRIDE; + virtual void clearRootLayer() OVERRIDE; + virtual void setViewportSize(const WebSize& layoutViewportSize, const WebSize& deviceViewportSize = WebSize()) OVERRIDE; + virtual WebSize layoutViewportSize() const OVERRIDE; + virtual WebSize deviceViewportSize() const OVERRIDE; + virtual void setDeviceScaleFactor(float) OVERRIDE; + virtual float deviceScaleFactor() const OVERRIDE; + virtual void setBackgroundColor(WebColor) OVERRIDE; + virtual void setHasTransparentBackground(bool) OVERRIDE; + virtual void setVisible(bool) OVERRIDE; + virtual void setPageScaleFactorAndLimits(float pageScaleFactor, float minimum, float maximum) OVERRIDE; + virtual void startPageScaleAnimation(const WebPoint& destination, bool useAnchor, float newPageScale, double durationSec) OVERRIDE; + virtual void setNeedsAnimate() OVERRIDE; + virtual void setNeedsRedraw() OVERRIDE; + virtual bool commitRequested() const OVERRIDE; + virtual void composite() OVERRIDE; + virtual void updateAnimations(double frameBeginTime) OVERRIDE; + virtual bool compositeAndReadback(void *pixels, const WebRect&) OVERRIDE; + virtual void finishAllRendering() OVERRIDE; + virtual void renderingStats(WebRenderingStats&) const OVERRIDE; + virtual void setFontAtlas(SkBitmap, WebRect asciiToRectTable[128], int fontHeight) OVERRIDE; + virtual void loseCompositorContext(int numTimes) OVERRIDE; + + // WebCore::CCLayerTreeHostClient implementation. + virtual void willBeginFrame() OVERRIDE; + virtual void didBeginFrame() OVERRIDE; + virtual void animate(double monotonicFrameBeginTime) OVERRIDE; + virtual void layout() OVERRIDE; + virtual void applyScrollAndScale(const WebCore::IntSize& scrollDelta, float pageScale) OVERRIDE; + virtual PassOwnPtr<WebCompositorOutputSurface> createOutputSurface() OVERRIDE; + virtual void didRecreateOutputSurface(bool success) OVERRIDE; + virtual PassOwnPtr<WebCore::CCInputHandler> createInputHandler() OVERRIDE; + virtual void willCommit() OVERRIDE; + virtual void didCommit() OVERRIDE; + virtual void didCommitAndDrawFrame() OVERRIDE; + virtual void didCompleteSwapBuffers() OVERRIDE; + virtual void scheduleComposite() OVERRIDE; - OwnPtr<WebLayerTreeViewClientAdapter> m_clientAdapter; +private: + WebLayerTreeViewClient* m_client; OwnPtr<WebCore::CCLayerTreeHost> m_layerTreeHost; }; diff --git a/Source/WebKit/chromium/src/WebMediaPlayerClientImpl.cpp b/Source/WebKit/chromium/src/WebMediaPlayerClientImpl.cpp index 72e871637..e570dca5a 100644 --- a/Source/WebKit/chromium/src/WebMediaPlayerClientImpl.cpp +++ b/Source/WebKit/chromium/src/WebMediaPlayerClientImpl.cpp @@ -12,6 +12,7 @@ #include "AudioSourceProviderClient.h" #include "Frame.h" #include "GraphicsContext.h" +#include "GraphicsLayerChromium.h" #include "HTMLMediaElement.h" #include "IntSize.h" #include "KURL.h" @@ -29,11 +30,13 @@ #include <public/Platform.h> #include <public/WebCString.h> #include <public/WebCanvas.h> +#include <public/WebCompositorSupport.h> #include <public/WebMimeRegistry.h> #include <public/WebRect.h> #include <public/WebSize.h> #include <public/WebString.h> #include <public/WebURL.h> +#include <public/WebVideoLayer.h> #if USE(ACCELERATED_COMPOSITING) #include "RenderLayerCompositor.h" @@ -97,6 +100,10 @@ WebMediaPlayerClientImpl::~WebMediaPlayerClientImpl() #endif if (m_helperPlugin) closeHelperPlugin(); +#if USE(ACCELERATED_COMPOSITING) + if (m_videoLayer) + GraphicsLayerChromium::unregisterContentsLayer(m_videoLayer->layer()); +#endif } void WebMediaPlayerClientImpl::networkStateChanged() @@ -111,8 +118,10 @@ void WebMediaPlayerClientImpl::readyStateChanged() m_mediaPlayer->readyStateChanged(); #if USE(ACCELERATED_COMPOSITING) if (hasVideo() && supportsAcceleratedRendering() && !m_videoLayer) { - m_videoLayer = adoptPtr(WebVideoLayer::create(this)); + m_videoLayer = adoptPtr(Platform::current()->compositorSupport()->createVideoLayer(this)); + m_videoLayer->layer()->setOpaque(m_opaque); + GraphicsLayerChromium::registerContentsLayer(m_videoLayer->layer()); } #endif } @@ -431,6 +440,12 @@ bool WebMediaPlayerClientImpl::sourceAbort(const String& id) return m_webMediaPlayer->sourceAbort(id); } +void WebMediaPlayerClientImpl::sourceSetDuration(double duration) +{ + if (m_webMediaPlayer) + m_webMediaPlayer->sourceSetDuration(duration); +} + void WebMediaPlayerClientImpl::sourceEndOfStream(WebCore::MediaPlayer::EndOfStreamStatus status) { if (m_webMediaPlayer) diff --git a/Source/WebKit/chromium/src/WebMediaPlayerClientImpl.h b/Source/WebKit/chromium/src/WebMediaPlayerClientImpl.h index 329fd9ec0..dd170e57c 100644 --- a/Source/WebKit/chromium/src/WebMediaPlayerClientImpl.h +++ b/Source/WebKit/chromium/src/WebMediaPlayerClientImpl.h @@ -39,7 +39,6 @@ #include "WebMediaPlayerClient.h" #include "WebStreamTextureClient.h" #include <public/WebVideoFrameProvider.h> -#include <public/WebVideoLayer.h> #include <wtf/OwnPtr.h> #include <wtf/PassOwnPtr.h> @@ -50,6 +49,7 @@ namespace WebKit { class WebHelperPluginImpl; class WebAudioSourceProvider; class WebMediaPlayer; +class WebVideoLayer; // This class serves as a bridge between WebCore::MediaPlayer and // WebKit::WebMediaPlayer. @@ -163,6 +163,7 @@ public: virtual WTF::PassRefPtr<WebCore::TimeRanges> sourceBuffered(const String&); virtual bool sourceAppend(const String&, const unsigned char* data, unsigned length); virtual bool sourceAbort(const String&); + virtual void sourceSetDuration(double); virtual void sourceEndOfStream(WebCore::MediaPlayer::EndOfStreamStatus); virtual bool sourceSetTimestampOffset(const String&, double offset); #endif diff --git a/Source/WebKit/chromium/src/WebPageSerializerImpl.cpp b/Source/WebKit/chromium/src/WebPageSerializerImpl.cpp index dd4b15ebd..793ca8b83 100644 --- a/Source/WebKit/chromium/src/WebPageSerializerImpl.cpp +++ b/Source/WebKit/chromium/src/WebPageSerializerImpl.cpp @@ -75,6 +75,8 @@ // override the incorrect base URL and make sure we alway load correct local // saved resource files. +#define WTF_DEPRECATED_STRING_OPERATORS + #include "config.h" #include "WebPageSerializerImpl.h" diff --git a/Source/WebKit/chromium/src/WebPluginContainerImpl.cpp b/Source/WebKit/chromium/src/WebPluginContainerImpl.cpp index 75a97e0f6..524ba80f8 100644 --- a/Source/WebKit/chromium/src/WebPluginContainerImpl.cpp +++ b/Source/WebKit/chromium/src/WebPluginContainerImpl.cpp @@ -51,6 +51,7 @@ #include "FrameView.h" #include "GestureEvent.h" #include "GraphicsContext.h" +#include "GraphicsLayerChromium.h" #include "HitTestResult.h" #include "HostWindow.h" #include "HTMLFormElement.h" @@ -71,6 +72,8 @@ #include "WheelEvent.h" #include <public/Platform.h> #include <public/WebClipboard.h> +#include <public/WebCompositorSupport.h> +#include <public/WebExternalTextureLayer.h> #include <public/WebRect.h> #include <public/WebString.h> #include <public/WebURL.h> @@ -368,8 +371,10 @@ void WebPluginContainerImpl::setBackingTextureId(unsigned textureId) ASSERT(!m_ioSurfaceLayer); - if (!m_textureLayer) - m_textureLayer = adoptPtr(WebExternalTextureLayer::create()); + if (!m_textureLayer) { + m_textureLayer = adoptPtr(Platform::current()->compositorSupport()->createExternalTextureLayer()); + GraphicsLayerChromium::registerContentsLayer(m_textureLayer->layer()); + } m_textureLayer->setTextureId(textureId); // If anyone of the IDs is zero we need to switch between hardware @@ -392,8 +397,10 @@ void WebPluginContainerImpl::setBackingIOSurfaceId(int width, ASSERT(!m_textureLayer); - if (!m_ioSurfaceLayer) - m_ioSurfaceLayer = adoptPtr(WebIOSurfaceLayer::create()); + if (!m_ioSurfaceLayer) { + m_ioSurfaceLayer = adoptPtr(Platform::current()->compositorSupport()->createIOSurfaceLayer()); + GraphicsLayerChromium::registerContentsLayer(m_ioSurfaceLayer->layer()); + } m_ioSurfaceLayer->setIOSurfaceProperties(ioSurfaceId, WebSize(width, height)); // If anyone of the IDs is zero we need to switch between hardware @@ -500,7 +507,7 @@ bool WebPluginContainerImpl::isRectTopmost(const WebRect& rect) LayoutPoint center = documentRect.center(); // Make the rect we're checking (the point surrounded by padding rects) contained inside the requested rect. (Note that -1/2 is 0.) LayoutSize padding((documentRect.width() - 1) / 2, (documentRect.height() - 1) / 2); - HitTestResult result = frame->eventHandler()->hitTestResultAtPoint(center, false, false, DontHitTestScrollbars, HitTestRequest::ReadOnly | HitTestRequest::Active, padding); + HitTestResult result = frame->eventHandler()->hitTestResultAtPoint(center, HitTestRequest::ReadOnly | HitTestRequest::Active, padding); const HitTestResult::NodeSet& nodes = result.rectBasedTestResult(); if (nodes.size() != 1) return false; @@ -627,6 +634,13 @@ WebPluginContainerImpl::WebPluginContainerImpl(WebCore::HTMLPlugInElement* eleme WebPluginContainerImpl::~WebPluginContainerImpl() { +#if USE(ACCELERATED_COMPOSITING) + if (m_textureLayer) + GraphicsLayerChromium::unregisterContentsLayer(m_textureLayer->layer()); + if (m_ioSurfaceLayer) + GraphicsLayerChromium::unregisterContentsLayer(m_ioSurfaceLayer->layer()); +#endif + if (m_isAcceptingTouchEvents) m_element->document()->didRemoveTouchEventHandler(); diff --git a/Source/WebKit/chromium/src/WebPluginContainerImpl.h b/Source/WebKit/chromium/src/WebPluginContainerImpl.h index 998be6e41..e203a7370 100644 --- a/Source/WebKit/chromium/src/WebPluginContainerImpl.h +++ b/Source/WebKit/chromium/src/WebPluginContainerImpl.h @@ -35,7 +35,6 @@ #include "WebPluginContainer.h" #include "Widget.h" -#include <public/WebExternalTextureLayer.h> #include <public/WebIOSurfaceLayer.h> #include <wtf/OwnPtr.h> #include <wtf/PassRefPtr.h> @@ -67,6 +66,7 @@ struct WebPrintParams; class ScrollbarGroup; class WebPlugin; class WebPluginLoadObserver; +class WebExternalTextureLayer; class WebPluginContainerImpl : public WebCore::PluginViewBase, public WebPluginContainer { public: diff --git a/Source/WebKit/chromium/src/WebRuntimeFeatures.cpp b/Source/WebKit/chromium/src/WebRuntimeFeatures.cpp index 8bc880c75..bbd71bc82 100644 --- a/Source/WebKit/chromium/src/WebRuntimeFeatures.cpp +++ b/Source/WebKit/chromium/src/WebRuntimeFeatures.cpp @@ -204,14 +204,13 @@ bool WebRuntimeFeatures::isWebAudioEnabled() #endif } -void WebRuntimeFeatures::enablePushState(bool enable) +void WebRuntimeFeatures::enablePushState(bool) { - RuntimeEnabledFeatures::setPushStateEnabled(enable); } bool WebRuntimeFeatures::isPushStateEnabled(bool enable) { - return RuntimeEnabledFeatures::pushStateEnabled(); + return true; } void WebRuntimeFeatures::enableTouch(bool enable) diff --git a/Source/WebKit/chromium/src/WebScrollbarImpl.cpp b/Source/WebKit/chromium/src/WebScrollbarImpl.cpp deleted file mode 100644 index 73b92697e..000000000 --- a/Source/WebKit/chromium/src/WebScrollbarImpl.cpp +++ /dev/null @@ -1,131 +0,0 @@ -/* - * Copyright (C) 2012 Google Inc. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS'' AND ANY - * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS BE LIABLE FOR ANY - * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON - * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -#include "config.h" - -#include "WebScrollbarImpl.h" - -#include "IntRect.h" -#include "Scrollbar.h" - -namespace WebKit { - -PassOwnPtr<WebScrollbar> WebScrollbar::create(WebCore::Scrollbar* scrollbar) -{ - return adoptPtr(new WebScrollbarImpl(scrollbar)); -} - -WebScrollbarImpl::WebScrollbarImpl(WebCore::Scrollbar* scrollbar) - : m_scrollbar(scrollbar) -{ -} - -bool WebScrollbarImpl::isOverlay() const -{ - return m_scrollbar->isOverlayScrollbar(); -} - -int WebScrollbarImpl::value() const -{ - return m_scrollbar->value(); -} - -WebPoint WebScrollbarImpl::location() const -{ - return m_scrollbar->location(); -} - -WebSize WebScrollbarImpl::size() const -{ - return m_scrollbar->size(); -} - -bool WebScrollbarImpl::enabled() const -{ - return m_scrollbar->enabled(); -} - -int WebScrollbarImpl::maximum() const -{ - return m_scrollbar->maximum(); -} - -int WebScrollbarImpl::totalSize() const -{ - return m_scrollbar->totalSize(); -} - -bool WebScrollbarImpl::isScrollViewScrollbar() const -{ - return m_scrollbar->isScrollViewScrollbar(); -} - -bool WebScrollbarImpl::isScrollableAreaActive() const -{ - return m_scrollbar->isScrollableAreaActive(); -} - -void WebScrollbarImpl::getTickmarks(WebVector<WebRect>& webTickmarks) const -{ - Vector<WebCore::IntRect> tickmarks; - m_scrollbar->getTickmarks(tickmarks); - - WebVector<WebRect> result(tickmarks.size()); - for (size_t i = 0; i < tickmarks.size(); ++i) - result[i] = tickmarks[i]; - - webTickmarks.swap(result); -} - -WebScrollbar::ScrollbarControlSize WebScrollbarImpl::controlSize() const -{ - return static_cast<WebScrollbar::ScrollbarControlSize>(m_scrollbar->controlSize()); -} - -WebScrollbar::ScrollbarPart WebScrollbarImpl::pressedPart() const -{ - return static_cast<WebScrollbar::ScrollbarPart>(m_scrollbar->pressedPart()); -} - -WebScrollbar::ScrollbarPart WebScrollbarImpl::hoveredPart() const -{ - return static_cast<WebScrollbar::ScrollbarPart>(m_scrollbar->hoveredPart()); -} - -WebScrollbar::ScrollbarOverlayStyle WebScrollbarImpl::scrollbarOverlayStyle() const -{ - return static_cast<WebScrollbar::ScrollbarOverlayStyle>(m_scrollbar->scrollbarOverlayStyle()); -} - -WebScrollbar::Orientation WebScrollbarImpl::orientation() const -{ - return static_cast<WebScrollbar::Orientation>(m_scrollbar->orientation()); -} - -bool WebScrollbarImpl::isCustomScrollbar() const -{ - return m_scrollbar->isCustomScrollbar(); -} - -} // namespace WebKit diff --git a/Source/WebKit/chromium/src/WebScrollbarLayerImpl.cpp b/Source/WebKit/chromium/src/WebScrollbarLayerImpl.cpp index ec6e9895d..44f6ea3c5 100644 --- a/Source/WebKit/chromium/src/WebScrollbarLayerImpl.cpp +++ b/Source/WebKit/chromium/src/WebScrollbarLayerImpl.cpp @@ -29,19 +29,18 @@ #include "ScrollbarLayerChromium.h" #include "WebLayerImpl.h" -using WebCore::Scrollbar; using WebCore::ScrollbarLayerChromium; namespace WebKit { -WebScrollbarLayer* WebScrollbarLayer::create(WebCore::Scrollbar* scrollbar, WebScrollbarThemePainter painter, PassOwnPtr<WebScrollbarThemeGeometry> geometry) +WebScrollbarLayer* WebScrollbarLayer::create(WebScrollbar* scrollbar, WebScrollbarThemePainter painter, WebScrollbarThemeGeometry* geometry) { - return new WebScrollbarLayerImpl(ScrollbarLayerChromium::create(WebScrollbar::create(scrollbar), painter, geometry, 0)); + return new WebScrollbarLayerImpl(scrollbar, painter, geometry); } -WebScrollbarLayerImpl::WebScrollbarLayerImpl(PassRefPtr<WebCore::ScrollbarLayerChromium> layer) - : m_layer(adoptPtr(new WebLayerImpl(layer))) +WebScrollbarLayerImpl::WebScrollbarLayerImpl(WebScrollbar* scrollbar, WebScrollbarThemePainter painter, WebScrollbarThemeGeometry* geometry) + : m_layer(adoptPtr(new WebLayerImpl(ScrollbarLayerChromium::create(adoptPtr(scrollbar), painter, adoptPtr(geometry), 0)))) { } diff --git a/Source/WebKit/chromium/src/WebScrollbarLayerImpl.h b/Source/WebKit/chromium/src/WebScrollbarLayerImpl.h index 720f79c55..a85b28e67 100644 --- a/Source/WebKit/chromium/src/WebScrollbarLayerImpl.h +++ b/Source/WebKit/chromium/src/WebScrollbarLayerImpl.h @@ -28,18 +28,13 @@ #include <public/WebScrollbarLayer.h> #include <wtf/OwnPtr.h> -#include <wtf/PassRefPtr.h> - -namespace WebCore { -class ScrollbarLayerChromium; -} namespace WebKit { class WebLayerImpl; class WebScrollbarLayerImpl : public WebScrollbarLayer { public: - explicit WebScrollbarLayerImpl(PassRefPtr<WebCore::ScrollbarLayerChromium>); + WebScrollbarLayerImpl(WebScrollbar*, WebScrollbarThemePainter, WebScrollbarThemeGeometry*); virtual ~WebScrollbarLayerImpl(); // WebScrollbarLayer implementation. diff --git a/Source/WebKit/chromium/src/WebSettingsImpl.cpp b/Source/WebKit/chromium/src/WebSettingsImpl.cpp index eb4b7bb76..5026ee94b 100644 --- a/Source/WebKit/chromium/src/WebSettingsImpl.cpp +++ b/Source/WebKit/chromium/src/WebSettingsImpl.cpp @@ -53,6 +53,7 @@ WebSettingsImpl::WebSettingsImpl(Settings* settings) , m_renderVSyncEnabled(true) , m_viewportEnabled(false) , m_applyDefaultDeviceScaleFactorInCompositor(false) + , m_gestureTapHighlightEnabled(true) , m_defaultTileSize(WebSize(256, 256)) , m_maxUntiledLayerSize(WebSize(512, 512)) { @@ -636,4 +637,9 @@ void WebSettingsImpl::setCookieEnabled(bool enabled) m_settings->setCookieEnabled(enabled); } +void WebSettingsImpl::setGestureTapHighlightEnabled(bool enableHighlight) +{ + m_gestureTapHighlightEnabled = enableHighlight; +} + } // namespace WebKit diff --git a/Source/WebKit/chromium/src/WebSettingsImpl.h b/Source/WebKit/chromium/src/WebSettingsImpl.h index 7bc8a649a..6cee2af23 100644 --- a/Source/WebKit/chromium/src/WebSettingsImpl.h +++ b/Source/WebKit/chromium/src/WebSettingsImpl.h @@ -95,6 +95,7 @@ public: virtual void setForceCompositingMode(bool); virtual void setFrameFlatteningEnabled(bool); virtual void setFullScreenEnabled(bool); + virtual void setGestureTapHighlightEnabled(bool); virtual void setHyperlinkAuditingEnabled(bool); virtual void setImagesEnabled(bool); virtual void setInteractiveFormValidationEnabled(bool); @@ -157,6 +158,7 @@ public: bool showPaintRects() const { return m_showPaintRects; } bool renderVSyncEnabled() const { return m_renderVSyncEnabled; } bool applyDefaultDeviceScaleFactorInCompositor() const { return m_applyDefaultDeviceScaleFactorInCompositor; } + bool gestureTapHighlightEnabled() { return m_gestureTapHighlightEnabled; } WebSize defaultTileSize() const { return m_defaultTileSize; } WebSize maxUntiledLayerSize() const { return m_maxUntiledLayerSize; } @@ -168,6 +170,7 @@ private: bool m_renderVSyncEnabled; bool m_viewportEnabled; bool m_applyDefaultDeviceScaleFactorInCompositor; + bool m_gestureTapHighlightEnabled; WebSize m_defaultTileSize; WebSize m_maxUntiledLayerSize; }; diff --git a/Source/WebKit/chromium/src/WebSolidColorLayerImpl.cpp b/Source/WebKit/chromium/src/WebSolidColorLayerImpl.cpp index 94404262c..5a5231fce 100644 --- a/Source/WebKit/chromium/src/WebSolidColorLayerImpl.cpp +++ b/Source/WebKit/chromium/src/WebSolidColorLayerImpl.cpp @@ -35,11 +35,11 @@ namespace WebKit { WebSolidColorLayer* WebSolidColorLayer::create() { - return new WebSolidColorLayerImpl(SolidColorLayerChromium::create()); + return new WebSolidColorLayerImpl(); } -WebSolidColorLayerImpl::WebSolidColorLayerImpl(PassRefPtr<SolidColorLayerChromium> layer) - : m_layer(adoptPtr(new WebLayerImpl(layer))) +WebSolidColorLayerImpl::WebSolidColorLayerImpl() + : m_layer(adoptPtr(new WebLayerImpl(SolidColorLayerChromium::create()))) { m_layer->layer()->setIsDrawable(true); } diff --git a/Source/WebKit/chromium/src/WebSolidColorLayerImpl.h b/Source/WebKit/chromium/src/WebSolidColorLayerImpl.h index 7742ba492..f6e46e3ec 100644 --- a/Source/WebKit/chromium/src/WebSolidColorLayerImpl.h +++ b/Source/WebKit/chromium/src/WebSolidColorLayerImpl.h @@ -28,18 +28,13 @@ #include <public/WebSolidColorLayer.h> #include <wtf/OwnPtr.h> -#include <wtf/PassRefPtr.h> - -namespace WebCore { -class SolidColorLayerChromium; -} namespace WebKit { class WebLayerImpl; class WebSolidColorLayerImpl : public WebSolidColorLayer { public: - explicit WebSolidColorLayerImpl(PassRefPtr<WebCore::SolidColorLayerChromium>); + WebSolidColorLayerImpl(); virtual ~WebSolidColorLayerImpl(); // WebSolidColorLayer implementation. diff --git a/Source/WebKit/chromium/src/WebToCCInputHandlerAdapter.cpp b/Source/WebKit/chromium/src/WebToCCInputHandlerAdapter.cpp new file mode 100644 index 000000000..79049c97a --- /dev/null +++ b/Source/WebKit/chromium/src/WebToCCInputHandlerAdapter.cpp @@ -0,0 +1,128 @@ +/* + * Copyright (C) 2012 Google Inc. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#include "config.h" + +#include "WebToCCInputHandlerAdapter.h" + +#include <public/WebInputHandlerClient.h> + +#define COMPILE_ASSERT_MATCHING_ENUM(webkit_name, webcore_name) \ + COMPILE_ASSERT(int(WebKit::webkit_name) == int(WebCore::webcore_name), mismatching_enums) + +COMPILE_ASSERT_MATCHING_ENUM(WebInputHandlerClient::ScrollStatusOnMainThread, CCInputHandlerClient::ScrollOnMainThread); +COMPILE_ASSERT_MATCHING_ENUM(WebInputHandlerClient::ScrollStatusStarted, CCInputHandlerClient::ScrollStarted); +COMPILE_ASSERT_MATCHING_ENUM(WebInputHandlerClient::ScrollStatusIgnored, CCInputHandlerClient::ScrollIgnored); +COMPILE_ASSERT_MATCHING_ENUM(WebInputHandlerClient::ScrollInputTypeGesture, CCInputHandlerClient::Gesture); +COMPILE_ASSERT_MATCHING_ENUM(WebInputHandlerClient::ScrollInputTypeWheel, CCInputHandlerClient::Wheel); + +namespace WebKit { + +PassOwnPtr<WebToCCInputHandlerAdapter> WebToCCInputHandlerAdapter::create(PassOwnPtr<WebInputHandler> handler) +{ + return adoptPtr(new WebToCCInputHandlerAdapter(handler)); +} + +WebToCCInputHandlerAdapter::WebToCCInputHandlerAdapter(PassOwnPtr<WebInputHandler> handler) + : m_handler(handler) +{ +} + +WebToCCInputHandlerAdapter::~WebToCCInputHandlerAdapter() +{ +} + +class WebToCCInputHandlerAdapter::ClientAdapter : public WebInputHandlerClient { +public: + ClientAdapter(WebCore::CCInputHandlerClient* client) + : m_client(client) + { + } + + virtual ~ClientAdapter() + { + } + + virtual ScrollStatus scrollBegin(WebPoint point, ScrollInputType type) OVERRIDE + { + return static_cast<WebInputHandlerClient::ScrollStatus>(m_client->scrollBegin(point, static_cast<WebCore::CCInputHandlerClient::ScrollInputType>(type))); + } + + virtual void scrollBy(WebPoint point, WebSize offset) OVERRIDE + { + m_client->scrollBy(point, offset); + } + + virtual void scrollEnd() OVERRIDE + { + m_client->scrollEnd(); + } + + virtual void pinchGestureBegin() OVERRIDE + { + m_client->pinchGestureBegin(); + } + + virtual void pinchGestureUpdate(float magnifyDelta, WebPoint anchor) OVERRIDE + { + m_client->pinchGestureUpdate(magnifyDelta, anchor); + } + + virtual void pinchGestureEnd() OVERRIDE + { + m_client->pinchGestureEnd(); + } + + virtual void startPageScaleAnimation(WebSize targetPosition, + bool anchorPoint, + float pageScale, + double startTime, + double duration) OVERRIDE + { + m_client->startPageScaleAnimation(targetPosition, anchorPoint, pageScale, startTime, duration); + } + + virtual void scheduleAnimation() OVERRIDE + { + m_client->scheduleAnimation(); + } + +private: + WebCore::CCInputHandlerClient* m_client; +}; + + +void WebToCCInputHandlerAdapter::bindToClient(WebCore::CCInputHandlerClient* client) +{ + m_clientAdapter = adoptPtr(new ClientAdapter(client)); + m_handler->bindToClient(m_clientAdapter.get()); +} + +void WebToCCInputHandlerAdapter::animate(double monotonicTime) +{ + m_handler->animate(monotonicTime); +} + +} + diff --git a/Source/WebKit/chromium/src/WebScrollbarImpl.h b/Source/WebKit/chromium/src/WebToCCInputHandlerAdapter.h index 5c9231aaa..889553559 100644 --- a/Source/WebKit/chromium/src/WebScrollbarImpl.h +++ b/Source/WebKit/chromium/src/WebToCCInputHandlerAdapter.h @@ -22,43 +22,33 @@ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -#ifndef WebScrollbarImpl_h -#define WebScrollbarImpl_h +#ifndef WebToCCInputHandlerAdapter_h +#define WebToCCInputHandlerAdapter_h -#include <public/WebScrollbar.h> - -namespace WebCore { -class Scrollbar; -} +#include "CCInputHandler.h" +#include <public/WebInputHandler.h> +#include <wtf/OwnPtr.h> +#include <wtf/PassOwnPtr.h> namespace WebKit { -class WebScrollbarImpl : public WebScrollbar { +class WebToCCInputHandlerAdapter : public WebCore::CCInputHandler { public: - WebScrollbarImpl(WebCore::Scrollbar*); + static PassOwnPtr<WebToCCInputHandlerAdapter> create(PassOwnPtr<WebInputHandler>); + virtual ~WebToCCInputHandlerAdapter(); - // Implement WebKit::WebScrollbar methods - virtual bool isOverlay() const OVERRIDE; - virtual int value() const OVERRIDE; - virtual WebPoint location() const OVERRIDE; - virtual WebSize size() const OVERRIDE; - virtual bool enabled() const OVERRIDE; - virtual int maximum() const OVERRIDE; - virtual int totalSize() const OVERRIDE; - virtual bool isScrollViewScrollbar() const OVERRIDE; - virtual bool isScrollableAreaActive() const OVERRIDE; - virtual void getTickmarks(WebVector<WebRect>& tickmarks) const OVERRIDE; - virtual ScrollbarControlSize controlSize() const OVERRIDE; - virtual ScrollbarPart pressedPart() const OVERRIDE; - virtual ScrollbarPart hoveredPart() const OVERRIDE; - virtual ScrollbarOverlayStyle scrollbarOverlayStyle() const OVERRIDE; - virtual Orientation orientation() const OVERRIDE; - virtual bool isCustomScrollbar() const OVERRIDE; + // WebCore::CCInputHandler implementation. + virtual void bindToClient(WebCore::CCInputHandlerClient*) OVERRIDE; + virtual void animate(double monotonicTime) OVERRIDE; private: - RefPtr<WebCore::Scrollbar> m_scrollbar; + explicit WebToCCInputHandlerAdapter(PassOwnPtr<WebInputHandler>); + + class ClientAdapter; + OwnPtr<ClientAdapter> m_clientAdapter; + OwnPtr<WebInputHandler> m_handler; }; -} // namespace WebKit +} -#endif +#endif // WebToCCInputHandlerAdapter_h diff --git a/Source/WebKit/chromium/src/WebTransformAnimationCurveImpl.cpp b/Source/WebKit/chromium/src/WebTransformAnimationCurveImpl.cpp index 201042e95..69a12e8a9 100644 --- a/Source/WebKit/chromium/src/WebTransformAnimationCurveImpl.cpp +++ b/Source/WebKit/chromium/src/WebTransformAnimationCurveImpl.cpp @@ -36,11 +36,11 @@ namespace WebKit { WebTransformAnimationCurve* WebTransformAnimationCurve::create() { - return new WebTransformAnimationCurveImpl(WebCore::CCKeyframedTransformAnimationCurve::create()); + return new WebTransformAnimationCurveImpl(); } -WebTransformAnimationCurveImpl::WebTransformAnimationCurveImpl(PassOwnPtr<WebCore::CCKeyframedTransformAnimationCurve> curve) - : m_curve(curve) +WebTransformAnimationCurveImpl::WebTransformAnimationCurveImpl() + : m_curve(WebCore::CCKeyframedTransformAnimationCurve::create()) { } diff --git a/Source/WebKit/chromium/src/WebTransformAnimationCurveImpl.h b/Source/WebKit/chromium/src/WebTransformAnimationCurveImpl.h index 45a03ef06..bc9a9345a 100644 --- a/Source/WebKit/chromium/src/WebTransformAnimationCurveImpl.h +++ b/Source/WebKit/chromium/src/WebTransformAnimationCurveImpl.h @@ -38,7 +38,7 @@ namespace WebKit { class WebTransformAnimationCurveImpl : public WebTransformAnimationCurve { public: - explicit WebTransformAnimationCurveImpl(PassOwnPtr<WebCore::CCKeyframedTransformAnimationCurve>); + WebTransformAnimationCurveImpl(); virtual ~WebTransformAnimationCurveImpl(); // WebAnimationCurve implementation. diff --git a/Source/WebKit/chromium/src/WebVideoLayerImpl.cpp b/Source/WebKit/chromium/src/WebVideoLayerImpl.cpp index 5bfed6742..a8fdb4b4f 100644 --- a/Source/WebKit/chromium/src/WebVideoLayerImpl.cpp +++ b/Source/WebKit/chromium/src/WebVideoLayerImpl.cpp @@ -33,11 +33,11 @@ namespace WebKit { WebVideoLayer* WebVideoLayer::create(WebVideoFrameProvider* provider) { - return new WebVideoLayerImpl(WebCore::VideoLayerChromium::create(provider)); + return new WebVideoLayerImpl(provider); } -WebVideoLayerImpl::WebVideoLayerImpl(PassRefPtr<WebCore::VideoLayerChromium> layer) - : m_layer(adoptPtr(new WebLayerImpl(layer))) +WebVideoLayerImpl::WebVideoLayerImpl(WebVideoFrameProvider* provider) + : m_layer(adoptPtr(new WebLayerImpl(WebCore::VideoLayerChromium::create(provider)))) { } diff --git a/Source/WebKit/chromium/src/WebVideoLayerImpl.h b/Source/WebKit/chromium/src/WebVideoLayerImpl.h index 287e4b5e2..664935baf 100644 --- a/Source/WebKit/chromium/src/WebVideoLayerImpl.h +++ b/Source/WebKit/chromium/src/WebVideoLayerImpl.h @@ -28,16 +28,12 @@ #include <public/WebVideoLayer.h> -namespace WebCore { -class VideoLayerChromium; -} - namespace WebKit { class WebLayerImpl; class WebVideoLayerImpl : public WebVideoLayer { public: - explicit WebVideoLayerImpl(PassRefPtr<WebCore::VideoLayerChromium>); + explicit WebVideoLayerImpl(WebVideoFrameProvider*); virtual ~WebVideoLayerImpl(); // WebVideoLayer implementation. diff --git a/Source/WebKit/chromium/src/WebViewImpl.cpp b/Source/WebKit/chromium/src/WebViewImpl.cpp index c6f9f7e09..be474d8fa 100644 --- a/Source/WebKit/chromium/src/WebViewImpl.cpp +++ b/Source/WebKit/chromium/src/WebViewImpl.cpp @@ -119,13 +119,12 @@ #include "TextFieldDecoratorImpl.h" #include "TextIterator.h" #include "Timer.h" -#include "TouchpadFlingPlatformGestureCurve.h" #include "TraceEvent.h" #include "UserGestureIndicator.h" #include "WebAccessibilityObject.h" #include "WebActiveWheelFlingParameters.h" #include "WebAutofillClient.h" -#include "WebCompositorImpl.h" +#include "WebCompositorInputHandlerImpl.h" #include "WebDevToolsAgentImpl.h" #include "WebDevToolsAgentPrivate.h" #include "WebFrameImpl.h" @@ -145,13 +144,12 @@ #include "WebRuntimeFeatures.h" #include "WebSettingsImpl.h" #include "WebTextInputInfo.h" -#include "WebTouchCandidatesInfo.h" #include "WebViewClient.h" #include "WheelEvent.h" #include "painting/GraphicsContextBuilder.h" #include <public/Platform.h> -#include <public/WebCompositor.h> #include <public/WebCompositorOutputSurface.h> +#include <public/WebCompositorSupport.h> #include <public/WebDragData.h> #include <public/WebFloatPoint.h> #include <public/WebGraphicsContext3D.h> @@ -169,7 +167,9 @@ #include <wtf/Uint8ClampedArray.h> #if ENABLE(GESTURE_EVENTS) +#include "PlatformGestureCurveFactory.h" #include "PlatformGestureEvent.h" +#include "TouchDisambiguation.h" #endif #if OS(WINDOWS) @@ -416,6 +416,7 @@ WebViewImpl::WebViewImpl(WebViewClient* client) , m_recreatingGraphicsContext(false) , m_compositorSurfaceReady(false) , m_deviceScaleInCompositor(1) + , m_inputHandlerIdentifier(-1) #endif #if ENABLE(INPUT_SPEECH) , m_speechInputClient(SpeechInputClientImpl::create(client)) @@ -432,8 +433,8 @@ WebViewImpl::WebViewImpl(WebViewClient* client) #if ENABLE(MEDIA_STREAM) , m_userMediaClientImpl(this) #endif -#if ENABLE(REGISTER_PROTOCOL_HANDLER) - , m_registerProtocolHandlerClient(RegisterProtocolHandlerClientImpl::create(this)) +#if ENABLE(NAVIGATOR_CONTENT_UTILS) + , m_navigatorContentUtilsClient(NavigatorContentUtilsClientImpl::create(this)) #endif , m_flingModifier(0) { @@ -464,8 +465,8 @@ WebViewImpl::WebViewImpl(WebViewClient* client) #if ENABLE(NOTIFICATIONS) || ENABLE(LEGACY_NOTIFICATIONS) provideNotification(m_page.get(), notificationPresenterImpl()); #endif -#if ENABLE(REGISTER_PROTOCOL_HANDLER) - provideRegisterProtocolHandlerTo(m_page.get(), m_registerProtocolHandlerClient.get()); +#if ENABLE(NAVIGATOR_CONTENT_UTILS) + provideNavigatorContentUtilsTo(m_page.get(), m_navigatorContentUtilsClient.get()); #endif provideContextFeaturesTo(m_page.get(), m_featureSwitchClient.get()); @@ -638,17 +639,13 @@ void WebViewImpl::handleMouseUp(Frame& mainFrame, const WebMouseEvent& event) FrameView* view = m_page->mainFrame()->view(); IntPoint clickPoint(m_lastMouseDownPoint.x, m_lastMouseDownPoint.y); IntPoint contentPoint = view->windowToContents(clickPoint); - HitTestResult hitTestResult = focused->eventHandler()->hitTestResultAtPoint(contentPoint, false, false, ShouldHitTestScrollbars); + HitTestResult hitTestResult = focused->eventHandler()->hitTestResultAtPoint(contentPoint, HitTestRequest::ReadOnly | HitTestRequest::Active | HitTestRequest::TestChildFrameScrollBars); // We don't want to send a paste when middle clicking a scroll bar or a // link (which will navigate later in the code). The main scrollbars // have to be handled separately. if (!hitTestResult.scrollbar() && !hitTestResult.isLiveLink() && focused && !view->scrollbarAtPoint(clickPoint)) { Editor* editor = focused->editor(); - Pasteboard* pasteboard = Pasteboard::generalPasteboard(); - bool oldSelectionMode = pasteboard->isSelectionMode(); - pasteboard->setSelectionMode(true); - editor->command(AtomicString("Paste")).execute(); - pasteboard->setSelectionMode(oldSelectionMode); + editor->command(AtomicString("PasteGlobalSelection")).execute(); } } #endif @@ -688,11 +685,13 @@ bool WebViewImpl::handleGestureEvent(const WebGestureEvent& event) { switch (event.type) { case WebInputEvent::GestureFlingStart: { + m_client->cancelScheduledContentIntents(); m_lastWheelPosition = WebPoint(event.x, event.y); m_lastWheelGlobalPosition = WebPoint(event.globalX, event.globalY); m_flingModifier = event.modifiers; // FIXME: Make the curve parametrizable from the browser. - m_gestureAnimation = ActivePlatformGestureAnimation::create(TouchpadFlingPlatformGestureCurve::create(FloatPoint(event.deltaX, event.deltaY)), this); + OwnPtr<PlatformGestureCurve> flingCurve = PlatformGestureCurveFactory::get()->createCurve(event.data.flingStart.sourceDevice, FloatPoint(event.data.flingStart.velocityX, event.data.flingStart.velocityY)); + m_gestureAnimation = ActivePlatformGestureAnimation::create(flingCurve.release(), this); scheduleAnimation(); return true; } @@ -703,12 +702,28 @@ bool WebViewImpl::handleGestureEvent(const WebGestureEvent& event) } return false; case WebInputEvent::GestureTap: { - PlatformGestureEventBuilder platformEvent(mainFrameImpl()->frameView(), event); + m_client->cancelScheduledContentIntents(); + if (detectContentOnTouch(WebPoint(event.x, event.y), event.type)) + return true; + RefPtr<WebCore::PopupContainer> selectPopup; selectPopup = m_selectPopup; hideSelectPopup(); ASSERT(!m_selectPopup); + + if (event.data.tap.width > 0) { + IntRect boundingBox(event.x - event.data.tap.width / 2, event.y - event.data.tap.height / 2, event.data.tap.width, event.data.tap.height); + Vector<IntRect> goodTargets; + findGoodTouchTargets(boundingBox, mainFrameImpl()->frame(), pageScaleFactor(), goodTargets); + // FIXME: replace touch adjustment code when numberOfGoodTargets == 1? + // Single candidate case is currently handled by: https://bugs.webkit.org/show_bug.cgi?id=85101 + if (goodTargets.size() >= 2 && m_client && m_client->didTapMultipleTargets(event, goodTargets)) + return true; + } + + PlatformGestureEventBuilder platformEvent(mainFrameImpl()->frameView(), event); bool gestureHandled = mainFrameImpl()->frame()->eventHandler()->handleGestureEvent(platformEvent); + if (m_selectPopup && m_selectPopup == selectPopup) { // That tap triggered a select popup which is the same as the one that // was showing before the tap. It means the user tapped the select @@ -716,6 +731,7 @@ bool WebViewImpl::handleGestureEvent(const WebGestureEvent& event) // immediately reopened the select popup. It needs to be closed. hideSelectPopup(); } + return gestureHandled; } case WebInputEvent::GestureTwoFingerTap: @@ -723,6 +739,10 @@ bool WebViewImpl::handleGestureEvent(const WebGestureEvent& event) if (!mainFrameImpl() || !mainFrameImpl()->frameView()) return false; + m_client->cancelScheduledContentIntents(); + if (detectContentOnTouch(WebPoint(event.x, event.y), event.type)) + return true; + m_page->contextMenuController()->clearContextMenu(); m_contextMenuAllowed = true; PlatformGestureEventBuilder platformEvent(mainFrameImpl()->frameView(), event); @@ -731,18 +751,21 @@ bool WebViewImpl::handleGestureEvent(const WebGestureEvent& event) return handled; } case WebInputEvent::GestureTapDown: { + m_client->cancelScheduledContentIntents(); // Queue a highlight animation, then hand off to regular handler. #if OS(LINUX) - enableTouchHighlight(IntPoint(event.x, event.y)); + if (settingsImpl()->gestureTapHighlightEnabled()) + enableTouchHighlight(IntPoint(event.x, event.y)); #endif PlatformGestureEventBuilder platformEvent(mainFrameImpl()->frameView(), event); return mainFrameImpl()->frame()->eventHandler()->handleGestureEvent(platformEvent); } + case WebInputEvent::GestureDoubleTap: case WebInputEvent::GestureScrollBegin: + case WebInputEvent::GesturePinchBegin: + m_client->cancelScheduledContentIntents(); case WebInputEvent::GestureScrollEnd: case WebInputEvent::GestureScrollUpdate: - case WebInputEvent::GestureDoubleTap: - case WebInputEvent::GesturePinchBegin: case WebInputEvent::GesturePinchEnd: case WebInputEvent::GesturePinchUpdate: { PlatformGestureEventBuilder platformEvent(mainFrameImpl()->frameView(), event); @@ -761,20 +784,20 @@ void WebViewImpl::transferActiveWheelFlingAnimation(const WebActiveWheelFlingPar m_lastWheelPosition = parameters.point; m_lastWheelGlobalPosition = parameters.globalPoint; m_flingModifier = parameters.modifiers; - OwnPtr<PlatformGestureCurve> curve = TouchpadFlingPlatformGestureCurve::create(parameters.delta, IntPoint(parameters.cumulativeScroll)); + OwnPtr<PlatformGestureCurve> curve = PlatformGestureCurveFactory::get()->createCurve(parameters.sourceDevice, parameters.delta, IntPoint(parameters.cumulativeScroll)); m_gestureAnimation = ActivePlatformGestureAnimation::create(curve.release(), this, parameters.startTime); scheduleAnimation(); } void WebViewImpl::renderingStats(WebRenderingStats& stats) const { - if (!m_layerTreeView.isNull()) - m_layerTreeView.renderingStats(stats); + if (m_layerTreeView) + m_layerTreeView->renderingStats(stats); } void WebViewImpl::startPageScaleAnimation(const IntPoint& targetPosition, bool useAnchor, float newScale, double durationInSeconds) { - if (m_layerTreeView.isNull()) + if (!m_layerTreeView) return; IntPoint clampedPoint = targetPosition; @@ -786,7 +809,7 @@ void WebViewImpl::startPageScaleAnimation(const IntPoint& targetPosition, bool u return; } - m_layerTreeView.startPageScaleAnimation(targetPosition, useAnchor, newScale, durationInSeconds); + m_layerTreeView->startPageScaleAnimation(targetPosition, useAnchor, newScale, durationInSeconds); } #endif @@ -795,17 +818,6 @@ WebViewBenchmarkSupport* WebViewImpl::benchmarkSupport() return &m_benchmarkSupport; } -WebVector<WebFloatQuad> WebViewImpl::getTouchHighlightQuads(const WebPoint& point, - int padding, - WebTouchCandidatesInfo& outTouchInfo, - WebColor& outTapHighlightColor) -{ - // FIXME: Upstream this function from the chromium-android branch. - notImplemented(); - - return WebVector<WebFloatQuad>(); -} - bool WebViewImpl::handleKeyEvent(const WebKeyboardEvent& event) { ASSERT((event.type == WebInputEvent::RawKeyDown) @@ -992,9 +1004,8 @@ WebRect WebViewImpl::computeBlockBounds(const WebRect& rect, AutoZoomType zoomTy // Use the rect-based hit test to find the node. IntPoint point = mainFrameImpl()->frameView()->windowToContents(IntPoint(rect.x, rect.y)); - HitTestResult result = mainFrameImpl()->frame()->eventHandler()->hitTestResultAtPoint(point, - false, zoomType == FindInPage, DontHitTestScrollbars, HitTestRequest::Active | HitTestRequest::ReadOnly, - IntSize(rect.width, rect.height)); + HitTestRequest::HitTestRequestType hitType = HitTestRequest::ReadOnly | HitTestRequest::Active | ((zoomType == FindInPage) ? HitTestRequest::IgnoreClipping : 0); + HitTestResult result = mainFrameImpl()->frame()->eventHandler()->hitTestResultAtPoint(point, hitType, IntSize(rect.width, rect.height)); Node* node = result.innerNonSharedNode(); if (!node) @@ -1006,7 +1017,7 @@ WebRect WebViewImpl::computeBlockBounds(const WebRect& rect, AutoZoomType zoomTy // Return the bounding box in the window coordinate system. if (node) { - IntRect rect = node->Node::getPixelSnappedRect(); + IntRect rect = node->Node::pixelSnappedBoundingBox(); Frame* frame = node->document()->frame(); return frame->view()->contentsToWindow(rect); } @@ -1128,8 +1139,7 @@ void WebViewImpl::computeScaleAndScrollForHitRect(const WebRect& hitRect, AutoZo static bool highlightConditions(Node* node) { - return node->isLink() - || node->supportsFocus() + return node->supportsFocus() || node->hasEventListeners(eventNames().clickEvent) || node->hasEventListeners(eventNames().mousedownEvent) || node->hasEventListeners(eventNames().mouseupEvent); @@ -1150,11 +1160,20 @@ Node* WebViewImpl::bestTouchLinkNode(IntPoint touchEventLocation) while (bestTouchNode && !highlightConditions(bestTouchNode)) bestTouchNode = bestTouchNode->parentNode(); + // If the document has click handlers installed, we don't want to default to applying the highlight to the entire RenderView, or the + // entire body. Also, if the node has non-auto Z-index, we cannot be sure of it's ordering with respect to other possible target nodes. + RenderObject* touchNodeRenderer = bestTouchNode ? bestTouchNode->renderer() : 0; + if (bestTouchNode && (!touchNodeRenderer || touchNodeRenderer->isRenderView() || touchNodeRenderer->isBody() || !touchNodeRenderer->style()->hasAutoZIndex())) + return 0; + return bestTouchNode; } void WebViewImpl::enableTouchHighlight(IntPoint touchEventLocation) { + // Always clear any existing highlight when this is invoked, even if we don't get a new target to highlight. + m_linkHighlight.clear(); + Node* touchNode = bestTouchLinkNode(touchEventLocation); if (!touchNode || !touchNode->renderer() || !touchNode->renderer()->enclosingLayer()) @@ -1167,7 +1186,6 @@ void WebViewImpl::enableTouchHighlight(IntPoint touchEventLocation) if (!highlightColor.alpha()) return; - // This will clear any highlight currently being displayed. m_linkHighlight = LinkHighlight::create(touchNode, this); m_linkHighlight->startHighlightAnimation(); } @@ -1650,8 +1668,8 @@ void WebViewImpl::updateBatteryStatus(const WebBatteryStatus& status) void WebViewImpl::setCompositorSurfaceReady() { m_compositorSurfaceReady = true; - if (!m_layerTreeView.isNull()) - m_layerTreeView.setSurfaceReady(); + if (m_layerTreeView) + m_layerTreeView->setSurfaceReady(); } void WebViewImpl::animate(double) @@ -1663,7 +1681,7 @@ void WebViewImpl::animate(double) // In composited mode, we always go through the compositor so it can apply // appropriate flow-control mechanisms. if (isAcceleratedCompositingActive()) - m_layerTreeView.updateAnimations(monotonicFrameBeginTime); + m_layerTreeView->updateAnimations(monotonicFrameBeginTime); else #endif updateAnimations(monotonicFrameBeginTime); @@ -1717,7 +1735,7 @@ void WebViewImpl::layout() #if USE(ACCELERATED_COMPOSITING) void WebViewImpl::doPixelReadbackToCanvas(WebCanvas* canvas, const IntRect& rect) { - ASSERT(!m_layerTreeView.isNull()); + ASSERT(m_layerTreeView); PlatformContextSkia context(canvas); @@ -1731,7 +1749,7 @@ void WebViewImpl::doPixelReadbackToCanvas(WebCanvas* canvas, const IntRect& rect OwnPtr<ImageBuffer> imageBuffer(ImageBuffer::create(rect.size())); RefPtr<Uint8ClampedArray> pixelArray(Uint8ClampedArray::createUninitialized(rect.width() * rect.height() * 4)); if (imageBuffer && pixelArray) { - m_layerTreeView.compositeAndReadback(pixelArray->data(), invertRect); + m_layerTreeView->compositeAndReadback(pixelArray->data(), invertRect); imageBuffer->putByteArray(Premultiplied, pixelArray.get(), rect.size(), IntRect(IntPoint(), rect.size()), IntPoint()); gc.save(); gc.translate(IntSize(0, bitmapHeight)); @@ -1759,7 +1777,7 @@ void WebViewImpl::paint(WebCanvas* canvas, const WebRect& rect, PaintOptions opt if (canvas) { // Clip rect to the confines of the rootLayerTexture. IntRect resizeRect(rect); - resizeRect.intersect(IntRect(IntPoint(0, 0), m_layerTreeView.deviceViewportSize())); + resizeRect.intersect(IntRect(IntPoint(0, 0), m_layerTreeView->deviceViewportSize())); doPixelReadbackToCanvas(canvas, resizeRect); } #endif @@ -1798,8 +1816,8 @@ void WebViewImpl::themeChanged() void WebViewImpl::composite(bool) { #if USE(ACCELERATED_COMPOSITING) - if (WebCompositor::threadingEnabled()) - m_layerTreeView.setNeedsRedraw(); + if (Platform::current()->compositorSupport()->isThreadingEnabled()) + m_layerTreeView->setNeedsRedraw(); else { ASSERT(isAcceleratedCompositingActive()); if (!page()) @@ -1808,7 +1826,7 @@ void WebViewImpl::composite(bool) if (m_pageOverlays) m_pageOverlays->update(); - m_layerTreeView.composite(); + m_layerTreeView->composite(); } #endif } @@ -1816,16 +1834,16 @@ void WebViewImpl::composite(bool) void WebViewImpl::setNeedsRedraw() { #if USE(ACCELERATED_COMPOSITING) - if (!m_layerTreeView.isNull() && isAcceleratedCompositingActive()) - m_layerTreeView.setNeedsRedraw(); + if (m_layerTreeView && isAcceleratedCompositingActive()) + m_layerTreeView->setNeedsRedraw(); #endif } bool WebViewImpl::isInputThrottled() const { #if USE(ACCELERATED_COMPOSITING) - if (!m_layerTreeView.isNull() && isAcceleratedCompositingActive()) - return m_layerTreeView.commitRequested(); + if (m_layerTreeView && isAcceleratedCompositingActive()) + return m_layerTreeView->commitRequested(); #endif return false; } @@ -1833,8 +1851,8 @@ bool WebViewImpl::isInputThrottled() const void WebViewImpl::loseCompositorContext(int numTimes) { #if USE(ACCELERATED_COMPOSITING) - if (!m_layerTreeView.isNull()) - m_layerTreeView.loseCompositorContext(numTimes); + if (m_layerTreeView) + m_layerTreeView->loseCompositorContext(numTimes); #endif } @@ -2761,9 +2779,9 @@ void WebViewImpl::setDeviceScaleFactor(float scaleFactor) page()->setDeviceScaleFactor(scaleFactor); - if (!m_layerTreeView.isNull() && m_webSettings->applyDefaultDeviceScaleFactorInCompositor()) { + if (m_layerTreeView && m_webSettings->applyDefaultDeviceScaleFactorInCompositor()) { m_deviceScaleInCompositor = page()->deviceScaleFactor(); - m_layerTreeView.setDeviceScaleFactor(m_deviceScaleInCompositor); + m_layerTreeView->setDeviceScaleFactor(m_deviceScaleInCompositor); } if (m_deviceScaleInCompositor != 1) { // Don't allow page scaling when compositor scaling is being used, @@ -2858,8 +2876,8 @@ bool WebViewImpl::computePageScaleFactorLimits() float clampedScale = clampPageScaleFactorToLimits(pageScaleFactor()); #if USE(ACCELERATED_COMPOSITING) - if (!m_layerTreeView.isNull()) - m_layerTreeView.setPageScaleFactorAndLimits(clampedScale, m_minimumPageScaleFactor, m_maximumPageScaleFactor); + if (m_layerTreeView) + m_layerTreeView->setPageScaleFactorAndLimits(clampedScale, m_minimumPageScaleFactor, m_maximumPageScaleFactor); #endif if (clampedScale != pageScaleFactor()) { setPageScaleFactorPreservingScrollOffset(clampedScale); @@ -3290,7 +3308,7 @@ void WebViewImpl::applyAutofillSuggestions( refreshAutofillPopup(); } else { m_autofillPopupShowing = true; - m_autofillPopup->showInRect(focusedNode->getPixelSnappedRect(), focusedNode->ownerDocument()->view(), 0); + m_autofillPopup->showInRect(focusedNode->pixelSnappedBoundingBox(), focusedNode->ownerDocument()->view(), 0); } } @@ -3334,8 +3352,8 @@ void WebViewImpl::setIsTransparent(bool isTransparent) if (m_nonCompositedContentHost) m_nonCompositedContentHost->setOpaque(!isTransparent); - if (!m_layerTreeView.isNull()) - m_layerTreeView.setHasTransparentBackground(isTransparent); + if (m_layerTreeView) + m_layerTreeView->setHasTransparentBackground(isTransparent); } bool WebViewImpl::isTransparent() const @@ -3390,7 +3408,7 @@ void WebView::addUserScript(const WebString& sourceCode, patterns->append(patternsIn[i]); PageGroup* pageGroup = PageGroup::pageGroup(pageGroupName); - RefPtr<DOMWrapperWorld> world(DOMWrapperWorld::create()); + RefPtr<DOMWrapperWorld> world(DOMWrapperWorld::createUninitializedWorld()); pageGroup->addUserScriptToWorld(world.get(), sourceCode, WebURL(), patterns.release(), nullptr, static_cast<UserScriptInjectionTime>(injectAt), static_cast<UserContentInjectedFrames>(injectIn)); @@ -3406,7 +3424,7 @@ void WebView::addUserStyleSheet(const WebString& sourceCode, patterns->append(patternsIn[i]); PageGroup* pageGroup = PageGroup::pageGroup(pageGroupName); - RefPtr<DOMWrapperWorld> world(DOMWrapperWorld::create()); + RefPtr<DOMWrapperWorld> world(DOMWrapperWorld::createUninitializedWorld()); // FIXME: Current callers always want the level to be "author". It probably makes sense to let // callers specify this though, since in other cases the caller will probably want "user" level. @@ -3438,6 +3456,8 @@ void WebViewImpl::didCommitLoad(bool* isNewNavigation, bool isNavigationWithinPa if (*isNewNavigation && !isNavigationWithinPage) m_pageScaleFactorIsSet = false; + // Make sure link highlight from previous page is cleared. + m_linkHighlight.clear(); m_gestureAnimation.clear(); resetSavedScrollAndScaleState(); } @@ -3596,7 +3616,7 @@ void WebViewImpl::refreshAutofillPopup() return; } - WebRect newWidgetRect = m_autofillPopup->refresh(focusedWebCoreNode()->getPixelSnappedRect()); + WebRect newWidgetRect = m_autofillPopup->refresh(focusedWebCoreNode()->pixelSnappedBoundingBox()); // Let's resize the backing window if necessary. WebPopupMenuImpl* popupMenu = static_cast<WebPopupMenuImpl*>(m_autofillPopup->client()); if (popupMenu && popupMenu->client()->windowRect() != newWidgetRect) @@ -3655,8 +3675,12 @@ void WebViewImpl::setRootGraphicsLayer(GraphicsLayer* layer) m_nonCompositedContentHost->setScrollLayer(scrollLayer); } - if (!m_layerTreeView.isNull()) - m_layerTreeView.setRootLayer(m_rootLayer); + if (m_layerTreeView) { + if (m_rootLayer) + m_layerTreeView->setRootLayer(*m_rootLayer); + else + m_layerTreeView->clearRootLayer(); + } IntRect damagedRect(0, 0, m_size.width, m_size.height); if (!m_isAcceleratedCompositingActive) @@ -3665,7 +3689,7 @@ void WebViewImpl::setRootGraphicsLayer(GraphicsLayer* layer) void WebViewImpl::scheduleCompositingLayerSync() { - m_layerTreeView.setNeedsRedraw(); + m_layerTreeView->setNeedsRedraw(); } void WebViewImpl::scrollRootLayerRect(const IntSize&, const IntRect&) @@ -3675,7 +3699,7 @@ void WebViewImpl::scrollRootLayerRect(const IntSize&, const IntRect&) void WebViewImpl::invalidateRootLayerRect(const IntRect& rect) { - ASSERT(!m_layerTreeView.isNull()); + ASSERT(m_layerTreeView); if (!page()) return; @@ -3696,7 +3720,7 @@ void WebViewImpl::setBackgroundColor(const WebCore::Color& color) WebCore::Color documentBackgroundColor = color.isValid() ? color : WebCore::Color::white; WebColor webDocumentBackgroundColor = documentBackgroundColor.rgb(); m_nonCompositedContentHost->setBackgroundColor(documentBackgroundColor); - m_layerTreeView.setBackgroundColor(webDocumentBackgroundColor); + m_layerTreeView->setBackgroundColor(webDocumentBackgroundColor); } WebCore::GraphicsLayer* WebViewImpl::rootGraphicsLayer() @@ -3708,9 +3732,9 @@ WebCore::GraphicsLayer* WebViewImpl::rootGraphicsLayer() void WebViewImpl::scheduleAnimation() { if (isAcceleratedCompositingActive()) { - if (WebCompositor::threadingEnabled()) { - ASSERT(!m_layerTreeView.isNull()); - m_layerTreeView.setNeedsAnimate(); + if (Platform::current()->compositorSupport()->isThreadingEnabled()) { + ASSERT(m_layerTreeView); + m_layerTreeView->setNeedsAnimate(); } else m_client->scheduleAnimation(); } else @@ -3744,14 +3768,14 @@ void WebViewImpl::setIsAcceleratedCompositingActive(bool active) m_isAcceleratedCompositingActive = false; // We need to finish all GL rendering before sending didDeactivateCompositor() to prevent // flickering when compositing turns off. - if (!m_layerTreeView.isNull()) - m_layerTreeView.finishAllRendering(); + if (m_layerTreeView) + m_layerTreeView->finishAllRendering(); m_client->didDeactivateCompositor(); - } else if (!m_layerTreeView.isNull()) { + } else if (m_layerTreeView) { m_isAcceleratedCompositingActive = true; updateLayerTreeViewport(); - m_client->didActivateCompositor(m_layerTreeView.compositorIdentifier()); + m_client->didActivateCompositor(m_inputHandlerIdentifier); } else { TRACE_EVENT0("webkit", "WebViewImpl::setIsAcceleratedCompositingActive(true)"); @@ -3769,8 +3793,8 @@ void WebViewImpl::setIsAcceleratedCompositingActive(bool active) m_nonCompositedContentHost->setShowDebugBorders(page()->settings()->showDebugBorders()); m_nonCompositedContentHost->setOpaque(!isTransparent()); - m_layerTreeView.initialize(this, *m_rootLayer, layerTreeViewSettings); - if (!m_layerTreeView.isNull()) { + m_layerTreeView = adoptPtr(Platform::current()->compositorSupport()->createLayerTreeView(this, *m_rootLayer, layerTreeViewSettings)); + if (m_layerTreeView) { if (m_webSettings->applyDefaultDeviceScaleFactorInCompositor() && page()->deviceScaleFactor() != 1) { ASSERT(page()->deviceScaleFactor()); @@ -3779,13 +3803,13 @@ void WebViewImpl::setIsAcceleratedCompositingActive(bool active) } bool visible = page()->visibilityState() == PageVisibilityStateVisible; - m_layerTreeView.setVisible(visible); - m_layerTreeView.setPageScaleFactorAndLimits(pageScaleFactor(), m_minimumPageScaleFactor, m_maximumPageScaleFactor); + m_layerTreeView->setVisible(visible); + m_layerTreeView->setPageScaleFactorAndLimits(pageScaleFactor(), m_minimumPageScaleFactor, m_maximumPageScaleFactor); if (m_compositorSurfaceReady) - m_layerTreeView.setSurfaceReady(); - m_layerTreeView.setHasTransparentBackground(isTransparent()); + m_layerTreeView->setSurfaceReady(); + m_layerTreeView->setHasTransparentBackground(isTransparent()); updateLayerTreeViewport(); - m_client->didActivateCompositor(m_layerTreeView.compositorIdentifier()); + m_client->didActivateCompositor(m_inputHandlerIdentifier); m_isAcceleratedCompositingActive = true; m_compositorCreationFailed = false; if (m_pageOverlays) @@ -3797,7 +3821,7 @@ void WebViewImpl::setIsAcceleratedCompositingActive(bool active) WebRect asciiToRectTable[128]; int fontHeight; SkBitmap bitmap = WebCore::CompositorHUDFontAtlas::generateFontAtlas(asciiToRectTable, fontHeight); - m_layerTreeView.setFontAtlas(bitmap, asciiToRectTable, fontHeight); + m_layerTreeView->setFontAtlas(bitmap, asciiToRectTable, fontHeight); } } else { m_nonCompositedContentHost.clear(); @@ -3871,6 +3895,13 @@ WebCompositorOutputSurface* WebViewImpl::createOutputSurface() return m_client->createOutputSurface(); } +WebInputHandler* WebViewImpl::createInputHandler() +{ + WebCompositorInputHandlerImpl* handler = new WebCompositorInputHandlerImpl(); + m_inputHandlerIdentifier = handler->identifier(); + return handler; +} + void WebViewImpl::applyScrollAndScale(const WebSize& scrollDelta, float pageScaleDelta) { if (!mainFrameImpl() || !mainFrameImpl()->frameView()) @@ -3941,29 +3972,29 @@ void WebViewImpl::didRecreateOutputSurface(bool success) void WebViewImpl::scheduleComposite() { - ASSERT(!WebCompositor::threadingEnabled()); + ASSERT(!Platform::current()->compositorSupport()->isThreadingEnabled()); m_client->scheduleComposite(); } void WebViewImpl::updateLayerTreeViewport() { - if (!page() || !m_nonCompositedContentHost || m_layerTreeView.isNull()) + if (!page() || !m_nonCompositedContentHost || !m_layerTreeView) return; FrameView* view = page()->mainFrame()->view(); IntRect visibleRect = view->visibleContentRect(true /* include scrollbars */); IntPoint scroll(view->scrollX(), view->scrollY()); - // This part of the deviceScale will be used to scale the contents of - // the NCCH's GraphicsLayer. - float deviceScale = m_deviceScaleInCompositor; - m_nonCompositedContentHost->setViewport(visibleRect.size(), view->contentsSize(), scroll, view->scrollOrigin(), deviceScale); + m_nonCompositedContentHost->setViewport(visibleRect.size(), view->contentsSize(), scroll, view->scrollOrigin()); IntSize layoutViewportSize = size(); IntSize deviceViewportSize = size(); - deviceViewportSize.scale(deviceScale); - m_layerTreeView.setViewportSize(layoutViewportSize, deviceViewportSize); - m_layerTreeView.setPageScaleFactorAndLimits(pageScaleFactor(), m_minimumPageScaleFactor, m_maximumPageScaleFactor); + + // This part of the deviceScale will be used to scale the contents of + // the NCCH's GraphicsLayer. + deviceViewportSize.scale(m_deviceScaleInCompositor); + m_layerTreeView->setViewportSize(layoutViewportSize, deviceViewportSize); + m_layerTreeView->setPageScaleFactorAndLimits(pageScaleFactor(), m_minimumPageScaleFactor, m_maximumPageScaleFactor); } WebGraphicsContext3D* WebViewImpl::sharedGraphicsContext3D() @@ -3982,7 +4013,10 @@ void WebViewImpl::selectAutofillSuggestionAtIndex(unsigned listIndex) bool WebViewImpl::detectContentOnTouch(const WebPoint& position, WebInputEvent::Type touchType) { - ASSERT(touchType == WebInputEvent::GestureTap || touchType == WebInputEvent::GestureLongPress); + ASSERT(touchType == WebInputEvent::GestureTap + || touchType == WebInputEvent::GestureTwoFingerTap + || touchType == WebInputEvent::GestureLongPress); + HitTestResult touchHit = hitTestResultForWindowPos(position); if (touchHit.isContentEditable()) @@ -3992,13 +4026,20 @@ bool WebViewImpl::detectContentOnTouch(const WebPoint& position, WebInputEvent:: if (!node || !node->isTextNode()) return false; - // FIXME: Should we not detect content intents in nodes that have event listeners? + // Ignore when tapping on links or nodes listening to click events, unless the click event is on the + // body element, in which case it's unlikely that the original node itself was intended to be clickable. + for (; node && !node->hasTagName(HTMLNames::bodyTag); node = node->parentNode()) { + if (node->isLink() || (touchType == WebInputEvent::GestureTap + && (node->willRespondToTouchEvents() || node->willRespondToMouseClickEvents()))) { + return false; + } + } WebContentDetectionResult content = m_client->detectContentAround(touchHit); if (!content.isValid()) return false; - if (touchType == WebInputEvent::GestureLongPress) { + if (touchType != WebInputEvent::GestureTap) { // Select the detected content as a block. focusedFrame()->selectRange(content.range()); return true; @@ -4022,9 +4063,9 @@ void WebViewImpl::setVisibilityState(WebPageVisibilityState visibilityState, #endif #if USE(ACCELERATED_COMPOSITING) - if (!m_layerTreeView.isNull()) { + if (m_layerTreeView) { bool visible = visibilityState == WebPageVisibilityStateVisible; - m_layerTreeView.setVisible(visible); + m_layerTreeView->setVisible(visible); } #endif } diff --git a/Source/WebKit/chromium/src/WebViewImpl.h b/Source/WebKit/chromium/src/WebViewImpl.h index 206cf4572..ce5657a2b 100644 --- a/Source/WebKit/chromium/src/WebViewImpl.h +++ b/Source/WebKit/chromium/src/WebViewImpl.h @@ -52,7 +52,6 @@ #include "WebViewBenchmarkSupportImpl.h" #include <public/WebFloatQuad.h> #include <public/WebLayer.h> -#include <public/WebLayerTreeView.h> #include <public/WebLayerTreeViewClient.h> #include <public/WebPoint.h> #include <public/WebRect.h> @@ -95,7 +94,6 @@ class DeviceOrientationClientProxy; class DragScrollTimer; class GeolocationClientProxy; class LinkHighlight; -class WebHelperPluginImpl; class NonCompositedContentHost; class PrerendererClientImpl; class SpeechInputClientImpl; @@ -107,15 +105,17 @@ class WebDevToolsAgentClient; class WebDevToolsAgentPrivate; class WebFrameImpl; class WebGestureEvent; -class WebPagePopupImpl; -class WebPrerendererClient; -class WebViewBenchmarkSupport; +class WebHelperPluginImpl; class WebImage; class WebKeyboardEvent; +class WebLayerTreeView; class WebMouseEvent; class WebMouseWheelEvent; +class WebPagePopupImpl; +class WebPrerendererClient; class WebSettingsImpl; class WebTouchEvent; +class WebViewBenchmarkSupport; class WebViewImpl : public WebView , public WebLayerTreeViewClient @@ -305,11 +305,6 @@ public: virtual void transferActiveWheelFlingAnimation(const WebActiveWheelFlingParameters&); virtual WebViewBenchmarkSupport* benchmarkSupport(); - virtual WebVector<WebFloatQuad> getTouchHighlightQuads(const WebPoint&, - int padding, - WebTouchCandidatesInfo& outTouchInfo, - WebColor& outTapHighlightColor); - // WebLayerTreeViewClient virtual void willBeginFrame(); virtual void didBeginFrame(); @@ -319,6 +314,7 @@ public: virtual void didRebindGraphicsContext(bool success) OVERRIDE; virtual WebCompositorOutputSurface* createOutputSurface() OVERRIDE; virtual void didRecreateOutputSurface(bool success) OVERRIDE; + virtual WebInputHandler* createInputHandler() OVERRIDE; virtual void willCommit(); virtual void didCommit(); virtual void didCommitAndDrawFrame(); @@ -824,7 +820,7 @@ private: #if USE(ACCELERATED_COMPOSITING) WebCore::IntRect m_rootLayerScrollDamage; OwnPtr<NonCompositedContentHost> m_nonCompositedContentHost; - WebLayerTreeView m_layerTreeView; + OwnPtr<WebLayerTreeView> m_layerTreeView; WebLayer* m_rootLayer; WebCore::GraphicsLayer* m_rootGraphicsLayer; bool m_isAcceleratedCompositingActive; @@ -833,6 +829,7 @@ private: bool m_recreatingGraphicsContext; bool m_compositorSurfaceReady; float m_deviceScaleInCompositor; + int m_inputHandlerIdentifier; #endif static const WebInputEvent* m_currentInputEvent; @@ -854,8 +851,8 @@ private: #if ENABLE(MEDIA_STREAM) UserMediaClientImpl m_userMediaClientImpl; #endif -#if ENABLE(REGISTER_PROTOCOL_HANDLER) - OwnPtr<RegisterProtocolHandlerClientImpl> m_registerProtocolHandlerClient; +#if ENABLE(NAVIGATOR_CONTENT_UTILS) + OwnPtr<NavigatorContentUtilsClientImpl> m_navigatorContentUtilsClient; #endif OwnPtr<WebCore::ActivePlatformGestureAnimation> m_gestureAnimation; WebPoint m_lastWheelPosition; diff --git a/Source/WebKit/chromium/src/WorkerFileSystemCallbacksBridge.h b/Source/WebKit/chromium/src/WorkerFileSystemCallbacksBridge.h index fa70dd261..5c0a59084 100644 --- a/Source/WebKit/chromium/src/WorkerFileSystemCallbacksBridge.h +++ b/Source/WebKit/chromium/src/WorkerFileSystemCallbacksBridge.h @@ -33,7 +33,6 @@ #if ENABLE(FILE_SYSTEM) && ENABLE(WORKERS) -#include "PlatformString.h" #include "ScriptExecutionContext.h" #include "WebFileError.h" #include "platform/WebVector.h" @@ -41,6 +40,7 @@ #include <wtf/PassOwnPtr.h> #include <wtf/PassRefPtr.h> #include <wtf/Threading.h> +#include <wtf/text/WTFString.h> namespace WebCore { class WorkerLoaderProxy; diff --git a/Source/WebKit/chromium/src/android/WebInputEventFactory.cpp b/Source/WebKit/chromium/src/android/WebInputEventFactory.cpp index fb723223b..9bc70faca 100644 --- a/Source/WebKit/chromium/src/android/WebInputEventFactory.cpp +++ b/Source/WebKit/chromium/src/android/WebInputEventFactory.cpp @@ -50,7 +50,9 @@ WebKeyboardEvent WebInputEventFactory::keyboardEvent(WebInputEvent::Type type, result.type = type; result.modifiers = modifiers; result.timeStampSeconds = timeStampSeconds; - result.windowsKeyCode = WebCore::windowsKeyCodeForKeyEvent(keycode); + int windowsKeyCode = WebCore::windowsKeyCodeForKeyEvent(keycode); + result.windowsKeyCode = WebKeyboardEvent::windowsKeyCodeWithoutLocation(windowsKeyCode); + result.modifiers |= WebKeyboardEvent::locationModifiersFromWindowsKeyCode(windowsKeyCode); result.nativeKeyCode = keycode; result.unmodifiedText[0] = unicodeCharacter; if (result.windowsKeyCode == WebCore::VKEY_RETURN) { diff --git a/Source/WebKit/chromium/src/gtk/WebInputEventFactory.cpp b/Source/WebKit/chromium/src/gtk/WebInputEventFactory.cpp index 43c238a69..207d34f01 100644 --- a/Source/WebKit/chromium/src/gtk/WebInputEventFactory.cpp +++ b/Source/WebKit/chromium/src/gtk/WebInputEventFactory.cpp @@ -383,7 +383,9 @@ WebKeyboardEvent WebInputEventFactory::keyboardEvent(const GdkEventKey* event) // The key code tells us which physical key was pressed (for example, the // A key went down or up). It does not determine whether A should be lower // or upper case. This is what text does, which should be the keyval. - result.windowsKeyCode = gdkEventToWindowsKeyCode(event); + int windowsKeyCode = gdkEventToWindowsKeyCode(event); + result.windowsKeyCode = WebKeyboardEvent::windowsKeyCodeWithoutLocation(windowsKeyCode); + result.modifiers |= WebKeyboardEvent::locationModifiersFromWindowsKeyCode(windowsKeyCode); result.nativeKeyCode = event->hardware_keycode; if (result.windowsKeyCode == WebCore::VKEY_RETURN) diff --git a/Source/WebKit/chromium/src/mac/WebInputEventFactory.mm b/Source/WebKit/chromium/src/mac/WebInputEventFactory.mm index babb1f6cc..b3a22fee1 100644 --- a/Source/WebKit/chromium/src/mac/WebInputEventFactory.mm +++ b/Source/WebKit/chromium/src/mac/WebInputEventFactory.mm @@ -606,7 +606,9 @@ WebKeyboardEvent WebInputEventFactory::keyboardEvent(NSEvent* event) if (([event type] != NSFlagsChanged) && [event isARepeat]) result.modifiers |= WebInputEvent::IsAutoRepeat; - result.windowsKeyCode = windowsKeyCodeForKeyEvent(event); + int windowsKeyCode = windowsKeyCodeForKeyEvent(event); + result.windowsKeyCode = WebKeyboardEvent::windowsKeyCodeWithoutLocation(windowsKeyCode); + result.modifiers |= WebKeyboardEvent::locationModifiersFromWindowsKeyCode(windowsKeyCode); result.nativeKeyCode = [event keyCode]; NSString* textStr = textFromEvent(event); diff --git a/Source/WebKit/chromium/src/win/WebInputEventFactory.cpp b/Source/WebKit/chromium/src/win/WebInputEventFactory.cpp index 9da4b4a27..a177ea244 100644 --- a/Source/WebKit/chromium/src/win/WebInputEventFactory.cpp +++ b/Source/WebKit/chromium/src/win/WebInputEventFactory.cpp @@ -42,12 +42,18 @@ static const unsigned long defaultScrollCharsPerWheelDelta = 1; // WebKeyboardEvent ----------------------------------------------------------- -static bool isKeyPad(WPARAM wparam, LPARAM lparam) +static bool isKeyDown(WPARAM wparam) { - bool keypad = false; + return GetKeyState(wparam) & 0x8000; +} + +static int getLocationModifier(WPARAM wparam, LPARAM lparam) +{ + int modifier = 0; switch (wparam) { case VK_RETURN: - keypad = (lparam >> 16) & KF_EXTENDED; + if ((lparam >> 16) & KF_EXTENDED) + modifier = WebInputEvent::IsKeyPad; break; case VK_INSERT: case VK_DELETE: @@ -59,7 +65,8 @@ static bool isKeyPad(WPARAM wparam, LPARAM lparam) case VK_DOWN: case VK_LEFT: case VK_RIGHT: - keypad = !((lparam >> 16) & KF_EXTENDED); + if (!((lparam >> 16) & KF_EXTENDED)) + modifier = WebInputEvent::IsKeyPad; break; case VK_NUMLOCK: case VK_NUMPAD0: @@ -78,12 +85,39 @@ static bool isKeyPad(WPARAM wparam, LPARAM lparam) case VK_ADD: case VK_DECIMAL: case VK_CLEAR: - keypad = true; + modifier = WebInputEvent::IsKeyPad; + break; + case VK_SHIFT: + if (isKeyDown(VK_LSHIFT)) + modifier = WebInputEvent::IsLeft; + else if (isKeyDown(VK_RSHIFT)) + modifier = WebInputEvent::IsRight; + break; + case VK_CONTROL: + if (isKeyDown(VK_LCONTROL)) + modifier = WebInputEvent::IsLeft; + else if (isKeyDown(VK_RCONTROL)) + modifier = WebInputEvent::IsRight; + break; + case VK_MENU: + if (isKeyDown(VK_LMENU)) + modifier = WebInputEvent::IsLeft; + else if (isKeyDown(VK_RMENU)) + modifier = WebInputEvent::IsRight; + break; + case VK_LWIN: + modifier = WebInputEvent::IsLeft; + break; + case VK_RWIN: + modifier = WebInputEvent::IsRight; break; - default: - keypad = false; } - return keypad; + + ASSERT(!modifier + || modifier == WebInputEvent::IsKeyPad + || modifier == WebInputEvent::IsLeft + || modifier == WebInputEvent::IsRight); + return modifier; } // Loads the state for toggle keys into the event. @@ -153,8 +187,8 @@ WebKeyboardEvent WebInputEventFactory::keyboardEvent(HWND hwnd, UINT message, if (LOWORD(lparam) > 1) result.modifiers |= WebInputEvent::IsAutoRepeat; - if (isKeyPad(wparam, lparam)) - result.modifiers |= WebInputEvent::IsKeyPad; + + result.modifiers |= getLocationModifier(wparam, lparam); SetToggleKeyState(&result); return result; diff --git a/Source/WebKit/chromium/tests/AnimationTranslationUtilTest.cpp b/Source/WebKit/chromium/tests/AnimationTranslationUtilTest.cpp index 70da65ef6..7b184fa34 100644 --- a/Source/WebKit/chromium/tests/AnimationTranslationUtilTest.cpp +++ b/Source/WebKit/chromium/tests/AnimationTranslationUtilTest.cpp @@ -31,6 +31,7 @@ #include "IntSize.h" #include "Matrix3DTransformOperation.h" #include "RotateTransformOperation.h" +#include "ScaleTransformOperation.h" #include "TransformOperations.h" #include "TranslateTransformOperation.h" #include <gtest/gtest.h> @@ -45,7 +46,7 @@ namespace { bool animationCanBeTranslated(const KeyframeValueList& values, Animation* animation) { IntSize boxSize; - return createWebAnimation(values, animation, 0, 0, 0, boxSize); + return createWebAnimation(values, animation, 0, 0, boxSize); } TEST(AnimationTranslationUtilTest, createOpacityAnimation) @@ -96,7 +97,7 @@ TEST(AnimationTranslationUtilTest, createTransformAnimationWithBigRotation) RefPtr<Animation> animation = Animation::create(); animation->setDuration(duration); - EXPECT_FALSE(animationCanBeTranslated(values, animation.get())); + EXPECT_TRUE(animationCanBeTranslated(values, animation.get())); } TEST(AnimationTranslationUtilTest, createTransformAnimationWithBigRotationAndEmptyTransformOperationList) @@ -114,7 +115,7 @@ TEST(AnimationTranslationUtilTest, createTransformAnimationWithBigRotationAndEmp RefPtr<Animation> animation = Animation::create(); animation->setDuration(duration); - EXPECT_FALSE(animationCanBeTranslated(values, animation.get())); + EXPECT_TRUE(animationCanBeTranslated(values, animation.get())); } TEST(AnimationTranslationUtilTest, createTransformAnimationWithRotationInvolvingNegativeAngles) @@ -155,7 +156,7 @@ TEST(AnimationTranslationUtilTest, createTransformAnimationWithSmallRotationInvo EXPECT_TRUE(animationCanBeTranslated(values, animation.get())); } -TEST(AnimationTranslationUtilTest, createTransformAnimationWithSingularMatrix) +TEST(AnimationTranslationUtilTest, createTransformAnimationWithNonDecomposableMatrix) { const double duration = 1; WebCore::KeyframeValueList values(AnimatedPropertyWebkitTransform); @@ -177,6 +178,25 @@ TEST(AnimationTranslationUtilTest, createTransformAnimationWithSingularMatrix) EXPECT_FALSE(animationCanBeTranslated(values, animation.get())); } +TEST(AnimationTranslationUtilTest, createTransformAnimationWithNonInvertibleTransform) +{ + const double duration = 1; + WebCore::KeyframeValueList values(AnimatedPropertyWebkitTransform); + + TransformOperations operations1; + operations1.operations().append(ScaleTransformOperation::create(1, 1, 1, TransformOperation::SCALE_3D)); + values.insert(new TransformAnimationValue(0, &operations1)); + + TransformOperations operations2; + operations2.operations().append(ScaleTransformOperation::create(1, 0, 1, TransformOperation::SCALE_3D)); + values.insert(new TransformAnimationValue(duration, &operations2)); + + RefPtr<Animation> animation = Animation::create(); + animation->setDuration(duration); + + EXPECT_TRUE(animationCanBeTranslated(values, animation.get())); +} + TEST(AnimationTranslationUtilTest, createReversedAnimation) { const double duration = 1; diff --git a/Source/WebKit/chromium/tests/CCAnimationTestCommon.cpp b/Source/WebKit/chromium/tests/CCAnimationTestCommon.cpp index 76d1c0a3e..bb2141197 100644 --- a/Source/WebKit/chromium/tests/CCAnimationTestCommon.cpp +++ b/Source/WebKit/chromium/tests/CCAnimationTestCommon.cpp @@ -85,6 +85,16 @@ FakeFloatAnimationCurve::~FakeFloatAnimationCurve() { } +double FakeFloatAnimationCurve::duration() const +{ + return 1; +} + +float FakeFloatAnimationCurve::getValue(double now) const +{ + return 0; +} + PassOwnPtr<WebCore::CCAnimationCurve> FakeFloatAnimationCurve::clone() const { return adoptPtr(new FakeFloatAnimationCurve); @@ -99,6 +109,11 @@ FakeTransformTransition::~FakeTransformTransition() { } +double FakeTransformTransition::duration() const +{ + return m_duration; +} + WebKit::WebTransformationMatrix FakeTransformTransition::getValue(double time) const { return WebKit::WebTransformationMatrix(); @@ -121,6 +136,11 @@ FakeFloatTransition::~FakeFloatTransition() { } +double FakeFloatTransition::duration() const +{ + return m_duration; +} + float FakeFloatTransition::getValue(double time) const { time /= m_duration; @@ -138,6 +158,31 @@ FakeLayerAnimationControllerClient::~FakeLayerAnimationControllerClient() { } +int FakeLayerAnimationControllerClient::id() const +{ + return 0; +} + +void FakeLayerAnimationControllerClient::setOpacityFromAnimation(float opacity) +{ + m_opacity = opacity; +} + +float FakeLayerAnimationControllerClient::opacity() const +{ + return m_opacity; +} + +void FakeLayerAnimationControllerClient::setTransformFromAnimation(const WebKit::WebTransformationMatrix& transform) +{ + m_transform = transform; +} + +const WebKit::WebTransformationMatrix& FakeLayerAnimationControllerClient::transform() const +{ + return m_transform; +} + PassOwnPtr<WebCore::CCAnimationCurve> FakeFloatTransition::clone() const { return adoptPtr(new FakeFloatTransition(*this)); diff --git a/Source/WebKit/chromium/tests/CCAnimationTestCommon.h b/Source/WebKit/chromium/tests/CCAnimationTestCommon.h index 71b0add26..900a4e9a1 100644 --- a/Source/WebKit/chromium/tests/CCAnimationTestCommon.h +++ b/Source/WebKit/chromium/tests/CCAnimationTestCommon.h @@ -44,8 +44,8 @@ public: FakeFloatAnimationCurve(); virtual ~FakeFloatAnimationCurve(); - virtual double duration() const OVERRIDE { return 1; } - virtual float getValue(double now) const OVERRIDE { return 0; } + virtual double duration() const OVERRIDE; + virtual float getValue(double now) const OVERRIDE; virtual PassOwnPtr<WebCore::CCAnimationCurve> clone() const OVERRIDE; }; @@ -54,7 +54,7 @@ public: FakeTransformTransition(double duration); virtual ~FakeTransformTransition(); - virtual double duration() const OVERRIDE { return m_duration; } + virtual double duration() const OVERRIDE; virtual WebKit::WebTransformationMatrix getValue(double time) const OVERRIDE; virtual PassOwnPtr<WebCore::CCAnimationCurve> clone() const OVERRIDE; @@ -68,7 +68,7 @@ public: FakeFloatTransition(double duration, float from, float to); virtual ~FakeFloatTransition(); - virtual double duration() const OVERRIDE { return m_duration; } + virtual double duration() const OVERRIDE; virtual float getValue(double time) const OVERRIDE; virtual PassOwnPtr<WebCore::CCAnimationCurve> clone() const OVERRIDE; @@ -85,11 +85,11 @@ public: virtual ~FakeLayerAnimationControllerClient(); // CCLayerAnimationControllerClient implementation - virtual int id() const OVERRIDE { return 0; } - virtual void setOpacityFromAnimation(float opacity) OVERRIDE { m_opacity = opacity; } - virtual float opacity() const OVERRIDE { return m_opacity; } - virtual void setTransformFromAnimation(const WebKit::WebTransformationMatrix& transform) OVERRIDE { m_transform = transform; } - virtual const WebKit::WebTransformationMatrix& transform() const OVERRIDE { return m_transform; } + virtual int id() const OVERRIDE; + virtual void setOpacityFromAnimation(float) OVERRIDE; + virtual float opacity() const OVERRIDE; + virtual void setTransformFromAnimation(const WebKit::WebTransformationMatrix&) OVERRIDE; + virtual const WebKit::WebTransformationMatrix& transform() const OVERRIDE; private: float m_opacity; diff --git a/Source/WebKit/chromium/tests/CCDamageTrackerTest.cpp b/Source/WebKit/chromium/tests/CCDamageTrackerTest.cpp index f9eecdb75..e50a1f70a 100644 --- a/Source/WebKit/chromium/tests/CCDamageTrackerTest.cpp +++ b/Source/WebKit/chromium/tests/CCDamageTrackerTest.cpp @@ -26,10 +26,10 @@ #include "CCDamageTracker.h" +#include "CCGeometryTestUtils.h" #include "CCLayerImpl.h" #include "CCLayerSorter.h" #include "CCLayerTreeHostCommon.h" -#include "CCLayerTreeTestCommon.h" #include "CCMathUtil.h" #include "CCSingleThreadProxy.h" #include <gtest/gtest.h> diff --git a/Source/WebKit/chromium/tests/CCDrawQuadTest.cpp b/Source/WebKit/chromium/tests/CCDrawQuadTest.cpp new file mode 100644 index 000000000..3c5c384f8 --- /dev/null +++ b/Source/WebKit/chromium/tests/CCDrawQuadTest.cpp @@ -0,0 +1,332 @@ +/* + * Copyright (C) 2012 Google Inc. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#include "config.h" + +#include "CCDrawQuad.h" + +#include "CCCheckerboardDrawQuad.h" +#include "CCDebugBorderDrawQuad.h" +#include "CCGeometryTestUtils.h" +#include "CCIOSurfaceDrawQuad.h" +#include "CCRenderPassDrawQuad.h" +#include "CCSolidColorDrawQuad.h" +#include "CCStreamVideoDrawQuad.h" +#include "CCTextureDrawQuad.h" +#include "CCTileDrawQuad.h" +#include "CCYUVVideoDrawQuad.h" +#include <gtest/gtest.h> +#include <public/WebTransformationMatrix.h> + +using WebKit::WebTransformationMatrix; + +using namespace WebCore; + +namespace { + +TEST(CCDrawQuadTest, copySharedQuadState) +{ + WebTransformationMatrix quadTransform(1, 0.5, 0, 1, 0.5, 0); + IntRect visibleContentRect(10, 12, 14, 16); + IntRect clippedRectInTarget(19, 21, 23, 25); + float opacity = 0.25; + bool opaque = true; + int id = 3; + + OwnPtr<CCSharedQuadState> state(CCSharedQuadState::create(quadTransform, visibleContentRect, clippedRectInTarget, opacity, opaque)); + state->id = id; + + OwnPtr<CCSharedQuadState> copy(state->copy()); + EXPECT_EQ(id, copy->id); + EXPECT_EQ(quadTransform, copy->quadTransform); + EXPECT_RECT_EQ(visibleContentRect, copy->visibleContentRect); + EXPECT_RECT_EQ(clippedRectInTarget, copy->clippedRectInTarget); + EXPECT_EQ(opacity, copy->opacity); + EXPECT_EQ(opaque, copy->opaque); +} + +PassOwnPtr<CCSharedQuadState> createSharedQuadState() +{ + WebTransformationMatrix quadTransform(1, 0.5, 0, 1, 0.5, 0); + IntRect visibleContentRect(10, 12, 14, 16); + IntRect clippedRectInTarget(19, 21, 23, 25); + float opacity = 1; + bool opaque = false; + int id = 3; + + OwnPtr<CCSharedQuadState> state(CCSharedQuadState::create(quadTransform, visibleContentRect, clippedRectInTarget, opacity, opaque)); + state->id = id; + return state.release(); +} + +void compareDrawQuad(CCDrawQuad* quad, CCDrawQuad* copy, CCSharedQuadState* copySharedState) +{ + EXPECT_EQ(quad->size(), copy->size()); + EXPECT_EQ(quad->material(), copy->material()); + EXPECT_EQ(quad->isDebugQuad(), copy->isDebugQuad()); + EXPECT_RECT_EQ(quad->quadRect(), copy->quadRect()); + EXPECT_RECT_EQ(quad->quadVisibleRect(), copy->quadVisibleRect()); + EXPECT_EQ(quad->opaqueRect(), copy->opaqueRect()); + EXPECT_EQ(quad->needsBlending(), copy->needsBlending()); + + EXPECT_EQ(copySharedState, copy->sharedQuadState()); + EXPECT_EQ(copySharedState->id, copy->sharedQuadStateId()); + + EXPECT_EQ(quad->sharedQuadStateId(), quad->sharedQuadState()->id); + EXPECT_EQ(copy->sharedQuadStateId(), copy->sharedQuadState()->id); +} + +#define CREATE_SHARED_STATE() \ + OwnPtr<CCSharedQuadState> sharedState(createSharedQuadState()); \ + OwnPtr<CCSharedQuadState> copySharedState(sharedState->copy()); \ + copySharedState->id = 5; + +#define QUAD_DATA \ + IntRect quadRect(30, 40, 50, 60); \ + IntRect quadVisibleRect(40, 50, 30, 20); \ + +#define SETUP_AND_COPY_QUAD(Type, quad) \ + quad->setQuadVisibleRect(quadVisibleRect); \ + OwnPtr<CCDrawQuad> copy(quad->copy(copySharedState.get())); \ + compareDrawQuad(quad.get(), copy.get(), copySharedState.get()); \ + const Type* copyQuad = Type::materialCast(copy.get()); + +#define SETUP_AND_COPY_QUAD_1(Type, quad, a) \ + quad->setQuadVisibleRect(quadVisibleRect); \ + OwnPtr<CCDrawQuad> copy(quad->copy(copySharedState.get(), a)); \ + compareDrawQuad(quad.get(), copy.get(), copySharedState.get()); \ + const Type* copyQuad = Type::materialCast(copy.get()); + +#define CREATE_QUAD_0(Type) \ + QUAD_DATA \ + OwnPtr<Type> quad(Type::create(sharedState.get(), quadRect)); \ + SETUP_AND_COPY_QUAD(Type, quad); \ + UNUSED_PARAM(copyQuad); + +#define CREATE_QUAD_1(Type, a) \ + QUAD_DATA \ + OwnPtr<Type> quad(Type::create(sharedState.get(), quadRect, a)); \ + SETUP_AND_COPY_QUAD(Type, quad); + +#define CREATE_QUAD_2(Type, a, b) \ + QUAD_DATA \ + OwnPtr<Type> quad(Type::create(sharedState.get(), quadRect, a, b)); \ + SETUP_AND_COPY_QUAD(Type, quad); + +#define CREATE_QUAD_3(Type, a, b, c) \ + QUAD_DATA \ + OwnPtr<Type> quad(Type::create(sharedState.get(), quadRect, a, b, c)); \ + SETUP_AND_COPY_QUAD(Type, quad); + +#define CREATE_QUAD_4(Type, a, b, c, d) \ + QUAD_DATA \ + OwnPtr<Type> quad(Type::create(sharedState.get(), quadRect, a, b, c, d)); \ + SETUP_AND_COPY_QUAD(Type, quad); + +#define CREATE_QUAD_5(Type, a, b, c, d, e) \ + QUAD_DATA \ + OwnPtr<Type> quad(Type::create(sharedState.get(), quadRect, a, b, c, d, e)); \ + SETUP_AND_COPY_QUAD(Type, quad); + +#define CREATE_QUAD_6(Type, a, b, c, d, e, f) \ + QUAD_DATA \ + OwnPtr<Type> quad(Type::create(sharedState.get(), quadRect, a, b, c, d, e, f)); \ + SETUP_AND_COPY_QUAD(Type, quad); + +#define CREATE_QUAD_7(Type, a, b, c, d, e, f, g) \ + QUAD_DATA \ + OwnPtr<Type> quad(Type::create(sharedState.get(), quadRect, a, b, c, d, e, f, g)); \ + SETUP_AND_COPY_QUAD(Type, quad); + +#define CREATE_QUAD_8(Type, a, b, c, d, e, f, g, h) \ + QUAD_DATA \ + OwnPtr<Type> quad(Type::create(sharedState.get(), quadRect, a, b, c, d, e, f, g, h)); \ + SETUP_AND_COPY_QUAD(Type, quad); + +#define CREATE_QUAD_8_1(Type, a, b, c, d, e, f, g, h, copyA) \ + QUAD_DATA \ + OwnPtr<Type> quad(Type::create(sharedState.get(), quadRect, a, b, c, d, e, f, g, h)); \ + SETUP_AND_COPY_QUAD_1(Type, quad, copyA); + +#define CREATE_QUAD_9(Type, a, b, c, d, e, f, g, h, i) \ + QUAD_DATA \ + OwnPtr<Type> quad(Type::create(sharedState.get(), quadRect, a, b, c, d, e, f, g, h, i)); \ + SETUP_AND_COPY_QUAD(Type, quad); + +#define CREATE_QUAD_10(Type, a, b, c, d, e, f, g, h, i, j) \ + QUAD_DATA \ + OwnPtr<Type> quad(Type::create(sharedState.get(), quadRect, a, b, c, d, e, f, g, h, i, j)); \ + SETUP_AND_COPY_QUAD(Type, quad); + +TEST(CCDrawQuadTest, copyCheckerboardDrawQuad) +{ + CREATE_SHARED_STATE(); + CREATE_QUAD_0(CCCheckerboardDrawQuad); +} + +TEST(CCDrawQuadTest, copyDebugBorderDrawQuad) +{ + SkColor color = 0xfabb0011; + int width = 99; + CREATE_SHARED_STATE(); + CREATE_QUAD_2(CCDebugBorderDrawQuad, color, width); + EXPECT_EQ(color, copyQuad->color()); + EXPECT_EQ(width, copyQuad->width()); +} + +TEST(CCDrawQuadTest, copyIOSurfaceDrawQuad) +{ + IntSize size(58, 95); + unsigned textureId = 72; + CCIOSurfaceDrawQuad::Orientation orientation = CCIOSurfaceDrawQuad::Unflipped; + + CREATE_SHARED_STATE(); + CREATE_QUAD_3(CCIOSurfaceDrawQuad, size, textureId, orientation); + EXPECT_EQ(size, copyQuad->ioSurfaceSize()); + EXPECT_EQ(textureId, copyQuad->ioSurfaceTextureId()); + EXPECT_EQ(orientation, copyQuad->orientation()); +} + +TEST(CCDrawQuadTest, copyRenderPassDrawQuad) +{ + CCRenderPass::Id renderPassId(22, 64); + bool isReplica = true; + CCResourceProvider::ResourceId maskResourceId = 78; + IntRect contentsChangedSinceLastFrame(42, 11, 74, 24); + float maskTexCoordScaleX = 33; + float maskTexCoordScaleY = 19; + float maskTexCoordOffsetX = -45; + float maskTexCoordOffsetY = -21; + + CCRenderPass::Id copiedRenderPassId(235, 11); + + CREATE_SHARED_STATE(); + CREATE_QUAD_8_1(CCRenderPassDrawQuad, renderPassId, isReplica, maskResourceId, contentsChangedSinceLastFrame, maskTexCoordScaleX, maskTexCoordScaleY, maskTexCoordOffsetX, maskTexCoordOffsetY, copiedRenderPassId); + EXPECT_EQ(copiedRenderPassId, copyQuad->renderPassId()); + EXPECT_EQ(isReplica, copyQuad->isReplica()); + EXPECT_EQ(maskResourceId, copyQuad->maskResourceId()); + EXPECT_RECT_EQ(contentsChangedSinceLastFrame, copyQuad->contentsChangedSinceLastFrame()); + EXPECT_EQ(maskTexCoordScaleX, copyQuad->maskTexCoordScaleX()); + EXPECT_EQ(maskTexCoordScaleY, copyQuad->maskTexCoordScaleY()); + EXPECT_EQ(maskTexCoordOffsetX, copyQuad->maskTexCoordOffsetX()); + EXPECT_EQ(maskTexCoordOffsetY, copyQuad->maskTexCoordOffsetY()); +} + +TEST(CCDrawQuadTest, copySolidColorDrawQuad) +{ + SkColor color = 0x49494949; + + CREATE_SHARED_STATE(); + CREATE_QUAD_1(CCSolidColorDrawQuad, color); + EXPECT_EQ(color, copyQuad->color()); +} + +TEST(CCDrawQuadTest, copyStreamVideoDrawQuad) +{ + unsigned textureId = 64; + WebTransformationMatrix matrix(0.5, 1, 0.25, 0.75, 0, 1); + + CREATE_SHARED_STATE(); + CREATE_QUAD_2(CCStreamVideoDrawQuad, textureId, matrix); + EXPECT_EQ(textureId, copyQuad->textureId()); + EXPECT_EQ(matrix, copyQuad->matrix()); +} + +TEST(CCDrawQuadTest, copyTextureDrawQuad) +{ + unsigned resourceId = 82; + bool premultipliedAlpha = true; + FloatRect uvRect(0.5, 224, -51, 36); + bool flipped = true; + + CREATE_SHARED_STATE(); + CREATE_QUAD_4(CCTextureDrawQuad, resourceId, premultipliedAlpha, uvRect, flipped); + EXPECT_EQ(resourceId, copyQuad->resourceId()); + EXPECT_EQ(premultipliedAlpha, copyQuad->premultipliedAlpha()); + EXPECT_EQ(uvRect, copyQuad->uvRect()); + EXPECT_EQ(flipped, copyQuad->flipped()); +} + +TEST(CCDrawQuadTest, copyTileDrawQuad) +{ + IntRect opaqueRect(33, 44, 22, 33); + unsigned resourceId = 104; + IntPoint textureOffset(-31, 47); + IntSize textureSize(85, 32); + GC3Dint textureFilter = 82; + bool swizzleContents = true; + bool leftEdgeAA = true; + bool topEdgeAA = true; + bool rightEdgeAA = false; + bool bottomEdgeAA = true; + + CREATE_SHARED_STATE(); + CREATE_QUAD_10(CCTileDrawQuad, opaqueRect, resourceId, textureOffset, textureSize, textureFilter, swizzleContents, leftEdgeAA, topEdgeAA, rightEdgeAA, bottomEdgeAA); + EXPECT_RECT_EQ(opaqueRect, copyQuad->opaqueRect()); + EXPECT_EQ(resourceId, copyQuad->resourceId()); + EXPECT_EQ(textureOffset, copyQuad->textureOffset()); + EXPECT_EQ(textureSize, copyQuad->textureSize()); + EXPECT_EQ(textureFilter, copyQuad->textureFilter()); + EXPECT_EQ(swizzleContents, copyQuad->swizzleContents()); + EXPECT_EQ(leftEdgeAA, copyQuad->leftEdgeAA()); + EXPECT_EQ(topEdgeAA, copyQuad->topEdgeAA()); + EXPECT_EQ(rightEdgeAA, copyQuad->rightEdgeAA()); + EXPECT_EQ(bottomEdgeAA, copyQuad->bottomEdgeAA()); +} + +TEST(CCDrawQuadTest, copyYUVVideoDrawQuad) +{ + CCVideoLayerImpl::FramePlane yPlane; + yPlane.resourceId = 45; + yPlane.size = IntSize(34, 23); + yPlane.format = 8; + yPlane.visibleSize = IntSize(623, 235); + CCVideoLayerImpl::FramePlane uPlane; + uPlane.resourceId = 532; + uPlane.size = IntSize(134, 16); + uPlane.format = 2; + uPlane.visibleSize = IntSize(126, 27); + CCVideoLayerImpl::FramePlane vPlane; + vPlane.resourceId = 4; + vPlane.size = IntSize(456, 486); + vPlane.format = 46; + vPlane.visibleSize = IntSize(19, 45); + + CREATE_SHARED_STATE(); + CREATE_QUAD_3(CCYUVVideoDrawQuad, yPlane, uPlane, vPlane); + EXPECT_EQ(yPlane.resourceId, copyQuad->yPlane().resourceId); + EXPECT_EQ(yPlane.size, copyQuad->yPlane().size); + EXPECT_EQ(yPlane.format, copyQuad->yPlane().format); + EXPECT_EQ(yPlane.visibleSize, copyQuad->yPlane().visibleSize); + EXPECT_EQ(uPlane.resourceId, copyQuad->uPlane().resourceId); + EXPECT_EQ(uPlane.size, copyQuad->uPlane().size); + EXPECT_EQ(uPlane.format, copyQuad->uPlane().format); + EXPECT_EQ(uPlane.visibleSize, copyQuad->uPlane().visibleSize); + EXPECT_EQ(vPlane.resourceId, copyQuad->vPlane().resourceId); + EXPECT_EQ(vPlane.size, copyQuad->vPlane().size); + EXPECT_EQ(vPlane.format, copyQuad->vPlane().format); + EXPECT_EQ(vPlane.visibleSize, copyQuad->vPlane().visibleSize); +} + +} // namespace diff --git a/Source/WebKit/chromium/tests/CCGeometryTestUtils.cpp b/Source/WebKit/chromium/tests/CCGeometryTestUtils.cpp new file mode 100644 index 000000000..a17fc643f --- /dev/null +++ b/Source/WebKit/chromium/tests/CCGeometryTestUtils.cpp @@ -0,0 +1,56 @@ +/* + * Copyright (C) 2012 Google Inc. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#include "config.h" + +#include "CCGeometryTestUtils.h" + +#include <gtest/gtest.h> +#include <public/WebTransformationMatrix.h> + +namespace WebKitTests { + +void ExpectTransformationMatrixEq(const WebKit::WebTransformationMatrix& expected, + const WebKit::WebTransformationMatrix& actual) +{ + EXPECT_FLOAT_EQ((expected).m11(), (actual).m11()); + EXPECT_FLOAT_EQ((expected).m12(), (actual).m12()); + EXPECT_FLOAT_EQ((expected).m13(), (actual).m13()); + EXPECT_FLOAT_EQ((expected).m14(), (actual).m14()); + EXPECT_FLOAT_EQ((expected).m21(), (actual).m21()); + EXPECT_FLOAT_EQ((expected).m22(), (actual).m22()); + EXPECT_FLOAT_EQ((expected).m23(), (actual).m23()); + EXPECT_FLOAT_EQ((expected).m24(), (actual).m24()); + EXPECT_FLOAT_EQ((expected).m31(), (actual).m31()); + EXPECT_FLOAT_EQ((expected).m32(), (actual).m32()); + EXPECT_FLOAT_EQ((expected).m33(), (actual).m33()); + EXPECT_FLOAT_EQ((expected).m34(), (actual).m34()); + EXPECT_FLOAT_EQ((expected).m41(), (actual).m41()); + EXPECT_FLOAT_EQ((expected).m42(), (actual).m42()); + EXPECT_FLOAT_EQ((expected).m43(), (actual).m43()); + EXPECT_FLOAT_EQ((expected).m44(), (actual).m44()); +} + +} // namespace WebKitTests + diff --git a/Source/WebKit/chromium/tests/CCLayerTreeTestCommon.h b/Source/WebKit/chromium/tests/CCGeometryTestUtils.h index 7f7e20279..6dea70918 100644 --- a/Source/WebKit/chromium/tests/CCLayerTreeTestCommon.h +++ b/Source/WebKit/chromium/tests/CCGeometryTestUtils.h @@ -22,10 +22,12 @@ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -#ifndef CCLayerTreeTestCommon_h -#define CCLayerTreeTestCommon_h +#ifndef CCGeometryTestUtils_h +#define CCGeometryTestUtils_h -#include <public/WebTransformationMatrix.h> +namespace WebKit { +class WebTransformationMatrix; +} namespace WebKitTests { @@ -36,7 +38,7 @@ namespace WebKitTests { EXPECT_FLOAT_EQ((expected).size().width(), (actual).size().width()); \ EXPECT_FLOAT_EQ((expected).size().height(), (actual).size().height()) -#define EXPECT_INT_RECT_EQ(expected, actual) \ +#define EXPECT_RECT_EQ(expected, actual) \ EXPECT_EQ((expected).location().x(), (actual).location().x()); \ EXPECT_EQ((expected).location().y(), (actual).location().y()); \ EXPECT_EQ((expected).size().width(), (actual).size().width()); \ @@ -46,8 +48,8 @@ namespace WebKitTests { // in bulk, it causes a significant slow-down in compilation time. This problem // exists with both gcc and clang, and bugs have been filed at // http://llvm.org/bugs/show_bug.cgi?id=13651 and http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54337 -void ExpectTransformationMatrixEq(WebKit::WebTransformationMatrix expected, - WebKit::WebTransformationMatrix actual); +void ExpectTransformationMatrixEq(const WebKit::WebTransformationMatrix& expected, + const WebKit::WebTransformationMatrix& actual); #define EXPECT_TRANSFORMATION_MATRIX_EQ(expected, actual) \ { \ @@ -55,6 +57,6 @@ void ExpectTransformationMatrixEq(WebKit::WebTransformationMatrix expected, WebKitTests::ExpectTransformationMatrixEq(expected, actual); \ } -} // namespace +} // namespace WebKitTests -#endif // CCLayerTreeTestCommon_h +#endif // CCGeometryTestUtils_h diff --git a/Source/WebKit/chromium/tests/CCHeadsUpDisplayTest.cpp b/Source/WebKit/chromium/tests/CCHeadsUpDisplayTest.cpp new file mode 100644 index 000000000..63616b35a --- /dev/null +++ b/Source/WebKit/chromium/tests/CCHeadsUpDisplayTest.cpp @@ -0,0 +1,130 @@ +/* + * Copyright (C) 2012 Google Inc. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#include "config.h" + +#include "CCLayerTreeHost.h" +#include "CCThreadedTest.h" +#include "HeadsUpDisplayLayerChromium.h" +#include "LayerChromium.h" + +using namespace WebCore; +using namespace WebKitTests; + +namespace { + +class CCHeadsUpDisplayTest : public CCThreadedTest { +protected: + virtual void initializeSettings(CCLayerTreeSettings& settings) OVERRIDE + { + // Enable the HUD without requiring text. + settings.showPropertyChangedRects = true; + } +}; + +class DrawsContentLayerChromium : public LayerChromium { +public: + static PassRefPtr<DrawsContentLayerChromium> create() { return adoptRef(new DrawsContentLayerChromium()); } + virtual bool drawsContent() const OVERRIDE { return true; } + +private: + DrawsContentLayerChromium() : LayerChromium() { } +}; + +class CCHudWithRootLayerChange : public CCHeadsUpDisplayTest { +public: + CCHudWithRootLayerChange() + : m_rootLayer1(DrawsContentLayerChromium::create()) + , m_rootLayer2(DrawsContentLayerChromium::create()) + , m_numCommits(0) + { + } + + virtual void beginTest() OVERRIDE + { + m_rootLayer1->setBounds(IntSize(30, 30)); + m_rootLayer2->setBounds(IntSize(30, 30)); + + postSetNeedsCommitToMainThread(); + } + + virtual void didCommit() OVERRIDE + { + ++m_numCommits; + + ASSERT_TRUE(m_layerTreeHost->hudLayer()); + + switch (m_numCommits) { + case 1: + // Change directly to a new root layer. + m_layerTreeHost->setRootLayer(m_rootLayer1); + break; + case 2: + EXPECT_EQ(m_rootLayer1.get(), m_layerTreeHost->hudLayer()->parent()); + // Unset the root layer. + m_layerTreeHost->setRootLayer(0); + break; + case 3: + EXPECT_EQ(0, m_layerTreeHost->hudLayer()->parent()); + // Change back to the previous root layer. + m_layerTreeHost->setRootLayer(m_rootLayer1); + break; + case 4: + EXPECT_EQ(m_rootLayer1.get(), m_layerTreeHost->hudLayer()->parent()); + // Unset the root layer. + m_layerTreeHost->setRootLayer(0); + break; + case 5: + EXPECT_EQ(0, m_layerTreeHost->hudLayer()->parent()); + // Change to a new root layer from a null root. + m_layerTreeHost->setRootLayer(m_rootLayer2); + break; + case 6: + EXPECT_EQ(m_rootLayer2.get(), m_layerTreeHost->hudLayer()->parent()); + // Change directly back to the last root layer/ + m_layerTreeHost->setRootLayer(m_rootLayer1); + break; + case 7: + EXPECT_EQ(m_rootLayer1.get(), m_layerTreeHost->hudLayer()->parent()); + endTest(); + break; + } + } + + virtual void afterTest() OVERRIDE + { + } + +private: + RefPtr<DrawsContentLayerChromium> m_rootLayer1; + RefPtr<DrawsContentLayerChromium> m_rootLayer2; + int m_numCommits; +}; + +TEST_F(CCHudWithRootLayerChange, runMultiThread) +{ + runTest(true); +} + +} // namespace diff --git a/Source/WebKit/chromium/tests/CCLayerTreeHostCommonTest.cpp b/Source/WebKit/chromium/tests/CCLayerTreeHostCommonTest.cpp index 0b5aa6be6..3d008ce13 100644 --- a/Source/WebKit/chromium/tests/CCLayerTreeHostCommonTest.cpp +++ b/Source/WebKit/chromium/tests/CCLayerTreeHostCommonTest.cpp @@ -27,15 +27,16 @@ #include "CCLayerTreeHostCommon.h" #include "CCAnimationTestCommon.h" +#include "CCGeometryTestUtils.h" #include "CCLayerAnimationController.h" #include "CCLayerImpl.h" #include "CCLayerSorter.h" -#include "CCLayerTreeTestCommon.h" #include "CCMathUtil.h" #include "CCProxy.h" #include "CCSingleThreadProxy.h" #include "CCThread.h" #include "ContentLayerChromium.h" +#include "ContentLayerChromiumClient.h" #include "LayerChromium.h" #include <gmock/gmock.h> @@ -46,27 +47,6 @@ using namespace WebCore; using namespace WebKitTests; using WebKit::WebTransformationMatrix; -void WebKitTests::ExpectTransformationMatrixEq(WebTransformationMatrix expected, - WebTransformationMatrix actual) -{ - EXPECT_FLOAT_EQ((expected).m11(), (actual).m11()); - EXPECT_FLOAT_EQ((expected).m12(), (actual).m12()); - EXPECT_FLOAT_EQ((expected).m13(), (actual).m13()); - EXPECT_FLOAT_EQ((expected).m14(), (actual).m14()); - EXPECT_FLOAT_EQ((expected).m21(), (actual).m21()); - EXPECT_FLOAT_EQ((expected).m22(), (actual).m22()); - EXPECT_FLOAT_EQ((expected).m23(), (actual).m23()); - EXPECT_FLOAT_EQ((expected).m24(), (actual).m24()); - EXPECT_FLOAT_EQ((expected).m31(), (actual).m31()); - EXPECT_FLOAT_EQ((expected).m32(), (actual).m32()); - EXPECT_FLOAT_EQ((expected).m33(), (actual).m33()); - EXPECT_FLOAT_EQ((expected).m34(), (actual).m34()); - EXPECT_FLOAT_EQ((expected).m41(), (actual).m41()); - EXPECT_FLOAT_EQ((expected).m42(), (actual).m42()); - EXPECT_FLOAT_EQ((expected).m43(), (actual).m43()); - EXPECT_FLOAT_EQ((expected).m44(), (actual).m44()); -} - namespace { template<typename LayerType> @@ -672,6 +652,7 @@ TEST(CCLayerTreeHostCommonTest, verifyRenderSurfaceListForRenderSurfaceWithClipp setLayerPropertiesForTesting(child.get(), identityMatrix, identityMatrix, FloatPoint::zero(), FloatPoint(30, 30), IntSize(10, 10), false); parent->addChild(renderSurface1); + parent->setMasksToBounds(true); renderSurface1->addChild(child); renderSurface1->setForceRenderSurface(true); @@ -1477,9 +1458,9 @@ TEST(CCLayerTreeHostCommonTest, verifyDrawableContentRectForLayers) CCLayerTreeHostCommon::calculateDrawTransforms(parent.get(), parent->bounds(), 1, dummyMaxTextureSize, renderSurfaceLayerList); CCLayerTreeHostCommon::calculateVisibleRects(renderSurfaceLayerList); - EXPECT_INT_RECT_EQ(IntRect(IntPoint(5, 5), IntSize(10, 10)), grandChild1->drawableContentRect()); - EXPECT_INT_RECT_EQ(IntRect(IntPoint(15, 15), IntSize(5, 5)), grandChild3->drawableContentRect()); - EXPECT_INT_RECT_EQ(IntRect(IntPoint(15, 15), IntSize(5, 5)), grandChild3->drawableContentRect()); + EXPECT_RECT_EQ(IntRect(IntPoint(5, 5), IntSize(10, 10)), grandChild1->drawableContentRect()); + EXPECT_RECT_EQ(IntRect(IntPoint(15, 15), IntSize(5, 5)), grandChild3->drawableContentRect()); + EXPECT_RECT_EQ(IntRect(IntPoint(15, 15), IntSize(5, 5)), grandChild3->drawableContentRect()); EXPECT_TRUE(grandChild4->drawableContentRect().isEmpty()); } @@ -1549,9 +1530,9 @@ TEST(CCLayerTreeHostCommonTest, verifyClipRectIsPropagatedCorrectlyToSurfaces) EXPECT_FALSE(grandChild4->renderSurface()); // Because grandChild4 is entirely clipped, it is expected to not have a renderSurface. // Surfaces are clipped by their parent, but un-affected by the owning layer's masksToBounds. - EXPECT_INT_RECT_EQ(IntRect(IntPoint(0, 0), IntSize(20, 20)), grandChild1->renderSurface()->clipRect()); - EXPECT_INT_RECT_EQ(IntRect(IntPoint(0, 0), IntSize(20, 20)), grandChild2->renderSurface()->clipRect()); - EXPECT_INT_RECT_EQ(IntRect(IntPoint(0, 0), IntSize(20, 20)), grandChild3->renderSurface()->clipRect()); + EXPECT_RECT_EQ(IntRect(IntPoint(0, 0), IntSize(20, 20)), grandChild1->renderSurface()->clipRect()); + EXPECT_RECT_EQ(IntRect(IntPoint(0, 0), IntSize(20, 20)), grandChild2->renderSurface()->clipRect()); + EXPECT_RECT_EQ(IntRect(IntPoint(0, 0), IntSize(20, 20)), grandChild3->renderSurface()->clipRect()); } TEST(CCLayerTreeHostCommonTest, verifyAnimationsForRenderSurfaceHierarchy) @@ -1706,7 +1687,7 @@ TEST(CCLayerTreeHostCommonTest, verifyVisibleRectForIdentityTransform) IntRect layerContentRect = IntRect(IntPoint(10, 10), IntSize(30, 30)); IntRect expected = IntRect(IntPoint(10, 10), IntSize(30, 30)); IntRect actual = CCLayerTreeHostCommon::calculateVisibleRect(targetSurfaceRect, layerContentRect, layerToSurfaceTransform); - EXPECT_INT_RECT_EQ(expected, actual); + EXPECT_RECT_EQ(expected, actual); // Case 2: Layer is outside the surface rect. layerContentRect = IntRect(IntPoint(120, 120), IntSize(30, 30)); @@ -1717,7 +1698,7 @@ TEST(CCLayerTreeHostCommonTest, verifyVisibleRectForIdentityTransform) layerContentRect = IntRect(IntPoint(80, 80), IntSize(30, 30)); expected = IntRect(IntPoint(80, 80), IntSize(20, 20)); actual = CCLayerTreeHostCommon::calculateVisibleRect(targetSurfaceRect, layerContentRect, layerToSurfaceTransform); - EXPECT_INT_RECT_EQ(expected, actual); + EXPECT_RECT_EQ(expected, actual); } TEST(CCLayerTreeHostCommonTest, verifyVisibleRectForTranslations) @@ -1733,7 +1714,7 @@ TEST(CCLayerTreeHostCommonTest, verifyVisibleRectForTranslations) layerToSurfaceTransform.translate(10, 10); IntRect expected = IntRect(IntPoint(0, 0), IntSize(30, 30)); IntRect actual = CCLayerTreeHostCommon::calculateVisibleRect(targetSurfaceRect, layerContentRect, layerToSurfaceTransform); - EXPECT_INT_RECT_EQ(expected, actual); + EXPECT_RECT_EQ(expected, actual); // Case 2: Layer is outside the surface rect. layerToSurfaceTransform.makeIdentity(); @@ -1746,7 +1727,7 @@ TEST(CCLayerTreeHostCommonTest, verifyVisibleRectForTranslations) layerToSurfaceTransform.translate(80, 80); expected = IntRect(IntPoint(0, 0), IntSize(20, 20)); actual = CCLayerTreeHostCommon::calculateVisibleRect(targetSurfaceRect, layerContentRect, layerToSurfaceTransform); - EXPECT_INT_RECT_EQ(expected, actual); + EXPECT_RECT_EQ(expected, actual); } TEST(CCLayerTreeHostCommonTest, verifyVisibleRectFor2DRotations) @@ -1764,7 +1745,7 @@ TEST(CCLayerTreeHostCommonTest, verifyVisibleRectFor2DRotations) layerToSurfaceTransform.rotate(45); IntRect expected = IntRect(IntPoint(0, 0), IntSize(30, 30)); IntRect actual = CCLayerTreeHostCommon::calculateVisibleRect(targetSurfaceRect, layerContentRect, layerToSurfaceTransform); - EXPECT_INT_RECT_EQ(expected, actual); + EXPECT_RECT_EQ(expected, actual); // Case 2: Layer is outside the surface rect. layerToSurfaceTransform.makeIdentity(); @@ -1782,7 +1763,7 @@ TEST(CCLayerTreeHostCommonTest, verifyVisibleRectFor2DRotations) layerToSurfaceTransform.rotate(45); expected = IntRect(IntPoint(0, 0), IntSize(30, 30)); actual = CCLayerTreeHostCommon::calculateVisibleRect(targetSurfaceRect, layerContentRect, layerToSurfaceTransform); - EXPECT_INT_RECT_EQ(expected, actual); + EXPECT_RECT_EQ(expected, actual); // Case 4: The layer is rotated about its top-left corner, and translated upwards. In // surface space, the layer is oriented diagonally, with only the top corner @@ -1794,7 +1775,7 @@ TEST(CCLayerTreeHostCommonTest, verifyVisibleRectFor2DRotations) layerToSurfaceTransform.rotate(45); expected = IntRect(IntPoint(15, 0), IntSize(15, 30)); // right half of layer bounds. actual = CCLayerTreeHostCommon::calculateVisibleRect(targetSurfaceRect, layerContentRect, layerToSurfaceTransform); - EXPECT_INT_RECT_EQ(expected, actual); + EXPECT_RECT_EQ(expected, actual); } TEST(CCLayerTreeHostCommonTest, verifyVisibleRectFor3dOrthographicTransform) @@ -1810,7 +1791,7 @@ TEST(CCLayerTreeHostCommonTest, verifyVisibleRectFor3dOrthographicTransform) layerToSurfaceTransform.rotate3d(0, 45, 0); IntRect expected = IntRect(IntPoint(0, 0), IntSize(100, 100)); IntRect actual = CCLayerTreeHostCommon::calculateVisibleRect(targetSurfaceRect, layerContentRect, layerToSurfaceTransform); - EXPECT_INT_RECT_EQ(expected, actual); + EXPECT_RECT_EQ(expected, actual); // Case 2: Orthographic projection of a layer rotated about y-axis by 45 degrees, but // shifted to the side so only the right-half the layer would be visible on @@ -1821,7 +1802,7 @@ TEST(CCLayerTreeHostCommonTest, verifyVisibleRectFor3dOrthographicTransform) layerToSurfaceTransform.rotate3d(0, 45, 0); // rotates about the left edge of the layer expected = IntRect(IntPoint(50, 0), IntSize(50, 100)); // right half of the layer. actual = CCLayerTreeHostCommon::calculateVisibleRect(targetSurfaceRect, layerContentRect, layerToSurfaceTransform); - EXPECT_INT_RECT_EQ(expected, actual); + EXPECT_RECT_EQ(expected, actual); } TEST(CCLayerTreeHostCommonTest, verifyVisibleRectFor3dPerspectiveTransform) @@ -1848,7 +1829,7 @@ TEST(CCLayerTreeHostCommonTest, verifyVisibleRectFor3dPerspectiveTransform) IntRect expected = IntRect(IntPoint(-50, -50), IntSize(200, 200)); IntRect actual = CCLayerTreeHostCommon::calculateVisibleRect(targetSurfaceRect, layerContentRect, layerToSurfaceTransform); - EXPECT_INT_RECT_EQ(expected, actual); + EXPECT_RECT_EQ(expected, actual); // Case 2: same projection as before, except that the layer is also translated to the // side, so that only the right half of the layer should be visible. @@ -1861,7 +1842,7 @@ TEST(CCLayerTreeHostCommonTest, verifyVisibleRectFor3dPerspectiveTransform) layerToSurfaceTransform.translate3d(-200, 0, 0); expected = IntRect(IntPoint(50, -50), IntSize(100, 200)); // The right half of the layer's bounding rect. actual = CCLayerTreeHostCommon::calculateVisibleRect(targetSurfaceRect, layerContentRect, layerToSurfaceTransform); - EXPECT_INT_RECT_EQ(expected, actual); + EXPECT_RECT_EQ(expected, actual); } TEST(CCLayerTreeHostCommonTest, verifyVisibleRectFor3dOrthographicIsNotClippedBehindSurface) @@ -1884,7 +1865,7 @@ TEST(CCLayerTreeHostCommonTest, verifyVisibleRectFor3dOrthographicIsNotClippedBe IntRect expected = IntRect(IntPoint(0, 0), IntSize(100, 100)); IntRect actual = CCLayerTreeHostCommon::calculateVisibleRect(targetSurfaceRect, layerContentRect, layerToSurfaceTransform); - EXPECT_INT_RECT_EQ(expected, actual); + EXPECT_RECT_EQ(expected, actual); } TEST(CCLayerTreeHostCommonTest, verifyVisibleRectFor3dPerspectiveWhenClippedByW) @@ -1950,7 +1931,313 @@ TEST(CCLayerTreeHostCommonTest, verifyVisibleRectForPerspectiveUnprojection) // that the entire layer should still be considered visible. IntRect expected = IntRect(IntPoint(-10, -10), IntSize(20, 20)); IntRect actual = CCLayerTreeHostCommon::calculateVisibleRect(targetSurfaceRect, layerContentRect, layerToSurfaceTransform); - EXPECT_INT_RECT_EQ(expected, actual); + EXPECT_RECT_EQ(expected, actual); +} + +TEST(CCLayerTreeHostCommonTest, verifyDrawableAndVisibleContentRectsForSimpleLayers) +{ + RefPtr<LayerChromium> root = LayerChromium::create(); + RefPtr<LayerChromiumWithForcedDrawsContent> child1 = adoptRef(new LayerChromiumWithForcedDrawsContent()); + RefPtr<LayerChromiumWithForcedDrawsContent> child2 = adoptRef(new LayerChromiumWithForcedDrawsContent()); + RefPtr<LayerChromiumWithForcedDrawsContent> child3 = adoptRef(new LayerChromiumWithForcedDrawsContent()); + root->addChild(child1); + root->addChild(child2); + root->addChild(child3); + + WebTransformationMatrix identityMatrix; + setLayerPropertiesForTesting(root.get(), identityMatrix, identityMatrix, FloatPoint(0, 0), FloatPoint(0, 0), IntSize(100, 100), false); + setLayerPropertiesForTesting(child1.get(), identityMatrix, identityMatrix, FloatPoint(0, 0), FloatPoint(0, 0), IntSize(50, 50), false); + setLayerPropertiesForTesting(child2.get(), identityMatrix, identityMatrix, FloatPoint(0, 0), FloatPoint(75, 75), IntSize(50, 50), false); + setLayerPropertiesForTesting(child3.get(), identityMatrix, identityMatrix, FloatPoint(0, 0), FloatPoint(125, 125), IntSize(50, 50), false); + + executeCalculateDrawTransformsAndVisibility(root.get()); + + EXPECT_RECT_EQ(IntRect(0, 0, 100, 100), root->renderSurface()->drawableContentRect()); + EXPECT_RECT_EQ(IntRect(0, 0, 100, 100), root->drawableContentRect()); + + // Layers that do not draw content should have empty visibleContentRects. + EXPECT_RECT_EQ(IntRect(0, 0, 0, 0), root->visibleContentRect()); + + // layer visibleContentRects are clipped by their targetSurface + EXPECT_RECT_EQ(IntRect(0, 0, 50, 50), child1->visibleContentRect()); + EXPECT_RECT_EQ(IntRect(0, 0, 25, 25), child2->visibleContentRect()); + EXPECT_TRUE(child3->visibleContentRect().isEmpty()); + + // layer drawableContentRects are not clipped. + EXPECT_RECT_EQ(IntRect(0, 0, 50, 50), child1->drawableContentRect()); + EXPECT_RECT_EQ(IntRect(75, 75, 50, 50), child2->drawableContentRect()); + EXPECT_RECT_EQ(IntRect(125, 125, 50, 50), child3->drawableContentRect()); +} + +TEST(CCLayerTreeHostCommonTest, verifyDrawableAndVisibleContentRectsForLayersClippedByLayer) +{ + RefPtr<LayerChromium> root = LayerChromium::create(); + RefPtr<LayerChromium> child = LayerChromium::create(); + RefPtr<LayerChromiumWithForcedDrawsContent> grandChild1 = adoptRef(new LayerChromiumWithForcedDrawsContent()); + RefPtr<LayerChromiumWithForcedDrawsContent> grandChild2 = adoptRef(new LayerChromiumWithForcedDrawsContent()); + RefPtr<LayerChromiumWithForcedDrawsContent> grandChild3 = adoptRef(new LayerChromiumWithForcedDrawsContent()); + root->addChild(child); + child->addChild(grandChild1); + child->addChild(grandChild2); + child->addChild(grandChild3); + + WebTransformationMatrix identityMatrix; + setLayerPropertiesForTesting(root.get(), identityMatrix, identityMatrix, FloatPoint(0, 0), FloatPoint(0, 0), IntSize(100, 100), false); + setLayerPropertiesForTesting(child.get(), identityMatrix, identityMatrix, FloatPoint(0, 0), FloatPoint(0, 0), IntSize(100, 100), false); + setLayerPropertiesForTesting(grandChild1.get(), identityMatrix, identityMatrix, FloatPoint(0, 0), FloatPoint(5, 5), IntSize(50, 50), false); + setLayerPropertiesForTesting(grandChild2.get(), identityMatrix, identityMatrix, FloatPoint(0, 0), FloatPoint(75, 75), IntSize(50, 50), false); + setLayerPropertiesForTesting(grandChild3.get(), identityMatrix, identityMatrix, FloatPoint(0, 0), FloatPoint(125, 125), IntSize(50, 50), false); + + child->setMasksToBounds(true); + executeCalculateDrawTransformsAndVisibility(root.get()); + + ASSERT_FALSE(child->renderSurface()); + + EXPECT_RECT_EQ(IntRect(0, 0, 100, 100), root->renderSurface()->drawableContentRect()); + EXPECT_RECT_EQ(IntRect(0, 0, 100, 100), root->drawableContentRect()); + + // Layers that do not draw content should have empty visibleContentRects. + EXPECT_RECT_EQ(IntRect(0, 0, 0, 0), root->visibleContentRect()); + EXPECT_RECT_EQ(IntRect(0, 0, 0, 0), child->visibleContentRect()); + + // All grandchild visibleContentRects should be clipped by child. + EXPECT_RECT_EQ(IntRect(0, 0, 50, 50), grandChild1->visibleContentRect()); + EXPECT_RECT_EQ(IntRect(0, 0, 25, 25), grandChild2->visibleContentRect()); + EXPECT_TRUE(grandChild3->visibleContentRect().isEmpty()); + + // All grandchild drawableContentRects should also be clipped by child. + EXPECT_RECT_EQ(IntRect(5, 5, 50, 50), grandChild1->drawableContentRect()); + EXPECT_RECT_EQ(IntRect(75, 75, 25, 25), grandChild2->drawableContentRect()); + EXPECT_TRUE(grandChild3->drawableContentRect().isEmpty()); +} + +TEST(CCLayerTreeHostCommonTest, verifyDrawableAndVisibleContentRectsForLayersInUnclippedRenderSurface) +{ + RefPtr<LayerChromium> root = LayerChromium::create(); + RefPtr<LayerChromium> renderSurface1 = LayerChromium::create(); + RefPtr<LayerChromiumWithForcedDrawsContent> child1 = adoptRef(new LayerChromiumWithForcedDrawsContent()); + RefPtr<LayerChromiumWithForcedDrawsContent> child2 = adoptRef(new LayerChromiumWithForcedDrawsContent()); + RefPtr<LayerChromiumWithForcedDrawsContent> child3 = adoptRef(new LayerChromiumWithForcedDrawsContent()); + root->addChild(renderSurface1); + renderSurface1->addChild(child1); + renderSurface1->addChild(child2); + renderSurface1->addChild(child3); + + WebTransformationMatrix identityMatrix; + setLayerPropertiesForTesting(root.get(), identityMatrix, identityMatrix, FloatPoint(0, 0), FloatPoint(0, 0), IntSize(100, 100), false); + setLayerPropertiesForTesting(renderSurface1.get(), identityMatrix, identityMatrix, FloatPoint(0, 0), FloatPoint(0, 0), IntSize(3, 4), false); + setLayerPropertiesForTesting(child1.get(), identityMatrix, identityMatrix, FloatPoint(0, 0), FloatPoint(5, 5), IntSize(50, 50), false); + setLayerPropertiesForTesting(child2.get(), identityMatrix, identityMatrix, FloatPoint(0, 0), FloatPoint(75, 75), IntSize(50, 50), false); + setLayerPropertiesForTesting(child3.get(), identityMatrix, identityMatrix, FloatPoint(0, 0), FloatPoint(125, 125), IntSize(50, 50), false); + + renderSurface1->setForceRenderSurface(true); + executeCalculateDrawTransformsAndVisibility(root.get()); + + ASSERT_TRUE(renderSurface1->renderSurface()); + + EXPECT_RECT_EQ(IntRect(0, 0, 100, 100), root->renderSurface()->drawableContentRect()); + EXPECT_RECT_EQ(IntRect(0, 0, 100, 100), root->drawableContentRect()); + + // Layers that do not draw content should have empty visibleContentRects. + EXPECT_RECT_EQ(IntRect(0, 0, 0, 0), root->visibleContentRect()); + EXPECT_RECT_EQ(IntRect(0, 0, 0, 0), renderSurface1->visibleContentRect()); + + // An unclipped surface grows its drawableContentRect to include all drawable regions of the subtree. + EXPECT_RECT_EQ(IntRect(5, 5, 170, 170), renderSurface1->renderSurface()->drawableContentRect()); + + // All layers that draw content into the unclipped surface are also unclipped. + EXPECT_RECT_EQ(IntRect(0, 0, 50, 50), child1->visibleContentRect()); + EXPECT_RECT_EQ(IntRect(0, 0, 50, 50), child2->visibleContentRect()); + EXPECT_RECT_EQ(IntRect(0, 0, 50, 50), child3->visibleContentRect()); + + EXPECT_RECT_EQ(IntRect(5, 5, 50, 50), child1->drawableContentRect()); + EXPECT_RECT_EQ(IntRect(75, 75, 50, 50), child2->drawableContentRect()); + EXPECT_RECT_EQ(IntRect(125, 125, 50, 50), child3->drawableContentRect()); +} + +TEST(CCLayerTreeHostCommonTest, verifyDrawableAndVisibleContentRectsForLayersInClippedRenderSurface) +{ + RefPtr<LayerChromium> root = LayerChromium::create(); + RefPtr<LayerChromium> renderSurface1 = LayerChromium::create(); + RefPtr<LayerChromiumWithForcedDrawsContent> child1 = adoptRef(new LayerChromiumWithForcedDrawsContent()); + RefPtr<LayerChromiumWithForcedDrawsContent> child2 = adoptRef(new LayerChromiumWithForcedDrawsContent()); + RefPtr<LayerChromiumWithForcedDrawsContent> child3 = adoptRef(new LayerChromiumWithForcedDrawsContent()); + root->addChild(renderSurface1); + renderSurface1->addChild(child1); + renderSurface1->addChild(child2); + renderSurface1->addChild(child3); + + WebTransformationMatrix identityMatrix; + setLayerPropertiesForTesting(root.get(), identityMatrix, identityMatrix, FloatPoint(0, 0), FloatPoint(0, 0), IntSize(100, 100), false); + setLayerPropertiesForTesting(renderSurface1.get(), identityMatrix, identityMatrix, FloatPoint(0, 0), FloatPoint(0, 0), IntSize(3, 4), false); + setLayerPropertiesForTesting(child1.get(), identityMatrix, identityMatrix, FloatPoint(0, 0), FloatPoint(5, 5), IntSize(50, 50), false); + setLayerPropertiesForTesting(child2.get(), identityMatrix, identityMatrix, FloatPoint(0, 0), FloatPoint(75, 75), IntSize(50, 50), false); + setLayerPropertiesForTesting(child3.get(), identityMatrix, identityMatrix, FloatPoint(0, 0), FloatPoint(125, 125), IntSize(50, 50), false); + + root->setMasksToBounds(true); + renderSurface1->setForceRenderSurface(true); + executeCalculateDrawTransformsAndVisibility(root.get()); + + ASSERT_TRUE(renderSurface1->renderSurface()); + + EXPECT_RECT_EQ(IntRect(0, 0, 100, 100), root->renderSurface()->drawableContentRect()); + EXPECT_RECT_EQ(IntRect(0, 0, 100, 100), root->drawableContentRect()); + + // Layers that do not draw content should have empty visibleContentRects. + EXPECT_RECT_EQ(IntRect(0, 0, 0, 0), root->visibleContentRect()); + EXPECT_RECT_EQ(IntRect(0, 0, 0, 0), renderSurface1->visibleContentRect()); + + // A clipped surface grows its drawableContentRect to include all drawable regions of the subtree, + // but also gets clamped by the ancestor's clip. + EXPECT_RECT_EQ(IntRect(5, 5, 95, 95), renderSurface1->renderSurface()->drawableContentRect()); + + // All layers that draw content into the surface have their visibleContentRect clipped by the surface clipRect. + EXPECT_RECT_EQ(IntRect(0, 0, 50, 50), child1->visibleContentRect()); + EXPECT_RECT_EQ(IntRect(0, 0, 25, 25), child2->visibleContentRect()); + EXPECT_TRUE(child3->visibleContentRect().isEmpty()); + + // But the drawableContentRects are unclipped. + EXPECT_RECT_EQ(IntRect(5, 5, 50, 50), child1->drawableContentRect()); + EXPECT_RECT_EQ(IntRect(75, 75, 50, 50), child2->drawableContentRect()); + EXPECT_RECT_EQ(IntRect(125, 125, 50, 50), child3->drawableContentRect()); +} + +TEST(CCLayerTreeHostCommonTest, verifyDrawableAndVisibleContentRectsForSurfaceHierarchy) +{ + // Check that clipping does not propagate down surfaces. + RefPtr<LayerChromium> root = LayerChromium::create(); + RefPtr<LayerChromium> renderSurface1 = LayerChromium::create(); + RefPtr<LayerChromium> renderSurface2 = LayerChromium::create(); + RefPtr<LayerChromiumWithForcedDrawsContent> child1 = adoptRef(new LayerChromiumWithForcedDrawsContent()); + RefPtr<LayerChromiumWithForcedDrawsContent> child2 = adoptRef(new LayerChromiumWithForcedDrawsContent()); + RefPtr<LayerChromiumWithForcedDrawsContent> child3 = adoptRef(new LayerChromiumWithForcedDrawsContent()); + root->addChild(renderSurface1); + renderSurface1->addChild(renderSurface2); + renderSurface2->addChild(child1); + renderSurface2->addChild(child2); + renderSurface2->addChild(child3); + + WebTransformationMatrix identityMatrix; + setLayerPropertiesForTesting(root.get(), identityMatrix, identityMatrix, FloatPoint(0, 0), FloatPoint(0, 0), IntSize(100, 100), false); + setLayerPropertiesForTesting(renderSurface1.get(), identityMatrix, identityMatrix, FloatPoint(0, 0), FloatPoint(0, 0), IntSize(3, 4), false); + setLayerPropertiesForTesting(renderSurface2.get(), identityMatrix, identityMatrix, FloatPoint(0, 0), FloatPoint(0, 0), IntSize(7, 13), false); + setLayerPropertiesForTesting(child1.get(), identityMatrix, identityMatrix, FloatPoint(0, 0), FloatPoint(5, 5), IntSize(50, 50), false); + setLayerPropertiesForTesting(child2.get(), identityMatrix, identityMatrix, FloatPoint(0, 0), FloatPoint(75, 75), IntSize(50, 50), false); + setLayerPropertiesForTesting(child3.get(), identityMatrix, identityMatrix, FloatPoint(0, 0), FloatPoint(125, 125), IntSize(50, 50), false); + + root->setMasksToBounds(true); + renderSurface1->setForceRenderSurface(true); + renderSurface2->setForceRenderSurface(true); + executeCalculateDrawTransformsAndVisibility(root.get()); + + ASSERT_TRUE(renderSurface1->renderSurface()); + ASSERT_TRUE(renderSurface2->renderSurface()); + + EXPECT_RECT_EQ(IntRect(0, 0, 100, 100), root->renderSurface()->drawableContentRect()); + EXPECT_RECT_EQ(IntRect(0, 0, 100, 100), root->drawableContentRect()); + + // Layers that do not draw content should have empty visibleContentRects. + EXPECT_RECT_EQ(IntRect(0, 0, 0, 0), root->visibleContentRect()); + EXPECT_RECT_EQ(IntRect(0, 0, 0, 0), renderSurface1->visibleContentRect()); + EXPECT_RECT_EQ(IntRect(0, 0, 0, 0), renderSurface2->visibleContentRect()); + + // A clipped surface grows its drawableContentRect to include all drawable regions of the subtree, + // but also gets clamped by the ancestor's clip. + EXPECT_RECT_EQ(IntRect(5, 5, 95, 95), renderSurface1->renderSurface()->drawableContentRect()); + + // renderSurface1 lives in the "unclipped universe" of renderSurface1, and is only + // implicitly clipped by renderSurface1's contentRect. So, renderSurface2 grows to + // enclose all drawable content of its subtree. + EXPECT_RECT_EQ(IntRect(5, 5, 170, 170), renderSurface2->renderSurface()->drawableContentRect()); + + // All layers that draw content into renderSurface2 think they are unclipped. + EXPECT_RECT_EQ(IntRect(0, 0, 50, 50), child1->visibleContentRect()); + EXPECT_RECT_EQ(IntRect(0, 0, 50, 50), child2->visibleContentRect()); + EXPECT_RECT_EQ(IntRect(0, 0, 50, 50), child3->visibleContentRect()); + + // drawableContentRects are also unclipped. + EXPECT_RECT_EQ(IntRect(5, 5, 50, 50), child1->drawableContentRect()); + EXPECT_RECT_EQ(IntRect(75, 75, 50, 50), child2->drawableContentRect()); + EXPECT_RECT_EQ(IntRect(125, 125, 50, 50), child3->drawableContentRect()); +} + +TEST(CCLayerTreeHostCommonTest, verifyDrawableAndVisibleContentRectsWithTransformOnUnclippedSurface) +{ + // Layers that have non-axis aligned bounds (due to transforms) have an expanded, + // axis-aligned drawableContentRect and visibleContentRect. + + RefPtr<LayerChromium> root = LayerChromium::create(); + RefPtr<LayerChromium> renderSurface1 = LayerChromium::create(); + RefPtr<LayerChromiumWithForcedDrawsContent> child1 = adoptRef(new LayerChromiumWithForcedDrawsContent()); + root->addChild(renderSurface1); + renderSurface1->addChild(child1); + + WebTransformationMatrix identityMatrix; + WebTransformationMatrix childRotation; + childRotation.rotate(45); + setLayerPropertiesForTesting(root.get(), identityMatrix, identityMatrix, FloatPoint(0, 0), FloatPoint(0, 0), IntSize(100, 100), false); + setLayerPropertiesForTesting(renderSurface1.get(), identityMatrix, identityMatrix, FloatPoint(0, 0), FloatPoint(0, 0), IntSize(3, 4), false); + setLayerPropertiesForTesting(child1.get(), childRotation, identityMatrix, FloatPoint(0.5, 0.5), FloatPoint(25, 25), IntSize(50, 50), false); + + renderSurface1->setForceRenderSurface(true); + executeCalculateDrawTransformsAndVisibility(root.get()); + + ASSERT_TRUE(renderSurface1->renderSurface()); + + EXPECT_RECT_EQ(IntRect(0, 0, 100, 100), root->renderSurface()->drawableContentRect()); + EXPECT_RECT_EQ(IntRect(0, 0, 100, 100), root->drawableContentRect()); + + // Layers that do not draw content should have empty visibleContentRects. + EXPECT_RECT_EQ(IntRect(0, 0, 0, 0), root->visibleContentRect()); + EXPECT_RECT_EQ(IntRect(0, 0, 0, 0), renderSurface1->visibleContentRect()); + + // The unclipped surface grows its drawableContentRect to include all drawable regions of the subtree. + int diagonalRadius = ceil(sqrt(2.0) * 25); + IntRect expectedSurfaceDrawableContent = IntRect(50 - diagonalRadius, 50 - diagonalRadius, diagonalRadius * 2, diagonalRadius * 2); + EXPECT_RECT_EQ(expectedSurfaceDrawableContent, renderSurface1->renderSurface()->drawableContentRect()); + + // All layers that draw content into the unclipped surface are also unclipped. + EXPECT_RECT_EQ(IntRect(0, 0, 50, 50), child1->visibleContentRect()); + EXPECT_RECT_EQ(expectedSurfaceDrawableContent, child1->drawableContentRect()); +} + +TEST(CCLayerTreeHostCommonTest, verifyDrawableAndVisibleContentRectsWithTransformOnClippedSurface) +{ + // Layers that have non-axis aligned bounds (due to transforms) have an expanded, + // axis-aligned drawableContentRect and visibleContentRect. + + RefPtr<LayerChromium> root = LayerChromium::create(); + RefPtr<LayerChromium> renderSurface1 = LayerChromium::create(); + RefPtr<LayerChromiumWithForcedDrawsContent> child1 = adoptRef(new LayerChromiumWithForcedDrawsContent()); + root->addChild(renderSurface1); + renderSurface1->addChild(child1); + + WebTransformationMatrix identityMatrix; + WebTransformationMatrix childRotation; + childRotation.rotate(45); + setLayerPropertiesForTesting(root.get(), identityMatrix, identityMatrix, FloatPoint(0, 0), FloatPoint(0, 0), IntSize(50, 50), false); + setLayerPropertiesForTesting(renderSurface1.get(), identityMatrix, identityMatrix, FloatPoint(0, 0), FloatPoint(0, 0), IntSize(3, 4), false); + setLayerPropertiesForTesting(child1.get(), childRotation, identityMatrix, FloatPoint(0.5, 0.5), FloatPoint(25, 25), IntSize(50, 50), false); + + root->setMasksToBounds(true); + renderSurface1->setForceRenderSurface(true); + executeCalculateDrawTransformsAndVisibility(root.get()); + + ASSERT_TRUE(renderSurface1->renderSurface()); + + // The clipped surface clamps the drawableContentRect that encloses the rotated layer. + int diagonalRadius = ceil(sqrt(2.0) * 25); + IntRect unclippedSurfaceContent = IntRect(50 - diagonalRadius, 50 - diagonalRadius, diagonalRadius * 2, diagonalRadius * 2); + IntRect expectedSurfaceDrawableContent = intersection(unclippedSurfaceContent, IntRect(0, 0, 50, 50)); + EXPECT_RECT_EQ(expectedSurfaceDrawableContent, renderSurface1->renderSurface()->drawableContentRect()); + + // On the clipped surface, only a quarter of the child1 is visible, but when rotating + // it back to child1's content space, the actual enclosing rect ends up covering the + // full left half of child1. + EXPECT_RECT_EQ(IntRect(0, 0, 26, 50), child1->visibleContentRect()); + + // The child's drawableContentRect is unclipped. + EXPECT_RECT_EQ(unclippedSurfaceContent, child1->drawableContentRect()); } TEST(CCLayerTreeHostCommonTest, verifyBackFaceCullingWithoutPreserves3d) @@ -2593,7 +2880,7 @@ TEST(CCLayerTreeHostCommonTest, verifyHitTestingForSingleLayerWithScaledContents // Sanity check the scenario we just created. // The visibleContentRect for testLayer is actually 100x100, even though its layout size is 50x50, positioned at 25x25. CCLayerImpl* testLayer = root->children()[0].get(); - EXPECT_INT_RECT_EQ(IntRect(IntPoint::zero(), IntSize(100, 100)), testLayer->visibleContentRect()); + EXPECT_RECT_EQ(IntRect(IntPoint::zero(), IntSize(100, 100)), testLayer->visibleContentRect()); ASSERT_EQ(1u, renderSurfaceLayerList.size()); ASSERT_EQ(1u, root->renderSurface()->layerList().size()); @@ -3073,14 +3360,14 @@ TEST(CCLayerTreeHostCommonTest, verifyHitTestingForMultipleLayerLists) EXPECT_EQ(4, resultLayer->id()); } -class MockContentLayerDelegate : public ContentLayerDelegate { +class MockContentLayerChromiumClient : public ContentLayerChromiumClient { public: - MockContentLayerDelegate() { } - virtual ~MockContentLayerDelegate() { } + MockContentLayerChromiumClient() { } + virtual ~MockContentLayerChromiumClient() { } virtual void paintContents(SkCanvas*, const IntRect& clip, FloatRect& opaque) OVERRIDE { } }; -PassRefPtr<ContentLayerChromium> createDrawableContentLayerChromium(ContentLayerDelegate* delegate) +PassRefPtr<ContentLayerChromium> createDrawableContentLayerChromium(ContentLayerChromiumClient* delegate) { RefPtr<ContentLayerChromium> toReturn = ContentLayerChromium::create(delegate); toReturn->setIsDrawable(true); @@ -3090,7 +3377,7 @@ PassRefPtr<ContentLayerChromium> createDrawableContentLayerChromium(ContentLayer TEST(CCLayerTreeHostCommonTest, verifyLayerTransformsInHighDPI) { // Verify draw and screen space transforms of layers not in a surface. - MockContentLayerDelegate delegate; + MockContentLayerChromiumClient delegate; WebTransformationMatrix identityMatrix; RefPtr<ContentLayerChromium> parent = createDrawableContentLayerChromium(&delegate); @@ -3162,7 +3449,7 @@ TEST(CCLayerTreeHostCommonTest, verifyLayerTransformsInHighDPI) TEST(CCLayerTreeHostCommonTest, verifyRenderSurfaceTransformsInHighDPI) { - MockContentLayerDelegate delegate; + MockContentLayerChromiumClient delegate; WebTransformationMatrix identityMatrix; RefPtr<ContentLayerChromium> parent = createDrawableContentLayerChromium(&delegate); @@ -3214,7 +3501,7 @@ TEST(CCLayerTreeHostCommonTest, verifyRenderSurfaceTransformsInHighDPI) WebTransformationMatrix expectedDuplicateChildDrawTransform = child->drawTransform(); EXPECT_TRANSFORMATION_MATRIX_EQ(child->drawTransform(), duplicateChildNonOwner->drawTransform()); EXPECT_TRANSFORMATION_MATRIX_EQ(child->screenSpaceTransform(), duplicateChildNonOwner->screenSpaceTransform()); - EXPECT_INT_RECT_EQ(child->drawableContentRect(), duplicateChildNonOwner->drawableContentRect()); + EXPECT_RECT_EQ(child->drawableContentRect(), duplicateChildNonOwner->drawableContentRect()); EXPECT_EQ(child->contentBounds(), duplicateChildNonOwner->contentBounds()); WebTransformationMatrix expectedRenderSurfaceDrawTransform; diff --git a/Source/WebKit/chromium/tests/CCLayerTreeHostImplTest.cpp b/Source/WebKit/chromium/tests/CCLayerTreeHostImplTest.cpp index a715f5b9a..d7e955783 100644 --- a/Source/WebKit/chromium/tests/CCLayerTreeHostImplTest.cpp +++ b/Source/WebKit/chromium/tests/CCLayerTreeHostImplTest.cpp @@ -27,15 +27,16 @@ #include "CCLayerTreeHostImpl.h" #include "CCAnimationTestCommon.h" +#include "CCGeometryTestUtils.h" #include "CCHeadsUpDisplayLayerImpl.h" #include "CCIOSurfaceLayerImpl.h" #include "CCLayerImpl.h" #include "CCLayerTestCommon.h" #include "CCLayerTilingData.h" -#include "CCLayerTreeTestCommon.h" -#include "CCQuadCuller.h" +#include "CCQuadSink.h" #include "CCRenderPassDrawQuad.h" #include "CCRendererGL.h" +#include "CCScrollbarGeometryFixedThumb.h" #include "CCScrollbarLayerImpl.h" #include "CCSettings.h" #include "CCSingleThreadProxy.h" @@ -69,7 +70,8 @@ namespace { class CCLayerTreeHostImplTest : public testing::Test, public CCLayerTreeHostImplClient { public: CCLayerTreeHostImplTest() - : m_didRequestCommit(false) + : m_onCanDrawStateChangedCalled(false) + , m_didRequestCommit(false) , m_didRequestRedraw(false) { CCLayerTreeSettings settings; @@ -83,6 +85,7 @@ public: virtual void didLoseContextOnImplThread() OVERRIDE { } virtual void onSwapBuffersCompleteOnImplThread() OVERRIDE { } virtual void onVSyncParametersChanged(double, double) OVERRIDE { } + virtual void onCanDrawStateChanged(bool canDraw) OVERRIDE { m_onCanDrawStateChangedCalled = true; } virtual void setNeedsRedrawOnImplThread() OVERRIDE { m_didRequestRedraw = true; } virtual void setNeedsCommitOnImplThread() OVERRIDE { m_didRequestCommit = true; } virtual void postAnimationEventsToMainThreadOnImplThread(PassOwnPtr<CCAnimationEventsVector>, double wallClockTime) OVERRIDE { } @@ -184,6 +187,7 @@ protected: DebugScopedSetMainThreadBlocked m_alwaysMainThreadBlocked; OwnPtr<CCLayerTreeHostImpl> m_hostImpl; + bool m_onCanDrawStateChangedCalled; bool m_didRequestCommit; bool m_didRequestRedraw; CCScopedSettings m_scopedSettings; @@ -194,6 +198,53 @@ public: virtual bool makeContextCurrent() { return false; } }; +TEST_F(CCLayerTreeHostImplTest, notifyIfCanDrawChanged) +{ + // Note: It is not possible to disable the renderer once it has been set, + // so we do not need to test that disabling the renderer notifies us + // that canDraw changed. + EXPECT_FALSE(m_hostImpl->canDraw()); + m_onCanDrawStateChangedCalled = false; + + setupScrollAndContentsLayers(IntSize(100, 100)); + EXPECT_TRUE(m_hostImpl->canDraw()); + EXPECT_TRUE(m_onCanDrawStateChangedCalled); + m_onCanDrawStateChangedCalled = false; + + // Toggle the root layer to make sure it toggles canDraw + m_hostImpl->setRootLayer(adoptPtr<CCLayerImpl>(0)); + EXPECT_FALSE(m_hostImpl->canDraw()); + EXPECT_TRUE(m_onCanDrawStateChangedCalled); + m_onCanDrawStateChangedCalled = false; + + setupScrollAndContentsLayers(IntSize(100, 100)); + EXPECT_TRUE(m_hostImpl->canDraw()); + EXPECT_TRUE(m_onCanDrawStateChangedCalled); + m_onCanDrawStateChangedCalled = false; + + // Toggle the device viewport size to make sure it toggles canDraw. + m_hostImpl->setViewportSize(IntSize(100, 100), IntSize(0, 0)); + EXPECT_FALSE(m_hostImpl->canDraw()); + EXPECT_TRUE(m_onCanDrawStateChangedCalled); + m_onCanDrawStateChangedCalled = false; + + m_hostImpl->setViewportSize(IntSize(100, 100), IntSize(100, 100)); + EXPECT_TRUE(m_hostImpl->canDraw()); + EXPECT_TRUE(m_onCanDrawStateChangedCalled); + m_onCanDrawStateChangedCalled = false; + + // Toggle contents textures purged to make sure it toggles canDraw + m_hostImpl->releaseContentsTextures(); + EXPECT_FALSE(m_hostImpl->canDraw()); + EXPECT_TRUE(m_onCanDrawStateChangedCalled); + m_onCanDrawStateChangedCalled = false; + + m_hostImpl->resetContentsTexturesPurged(); + EXPECT_TRUE(m_hostImpl->canDraw()); + EXPECT_TRUE(m_onCanDrawStateChangedCalled); + m_onCanDrawStateChangedCalled = false; +} + TEST_F(CCLayerTreeHostImplTest, scrollDeltaNoLayers) { ASSERT_FALSE(m_hostImpl->rootLayer()); @@ -399,6 +450,24 @@ TEST_F(CCLayerTreeHostImplTest, nonFastScrollableRegionWithOffset) EXPECT_EQ(m_hostImpl->scrollBegin(IntPoint(10, 10), CCInputHandlerClient::Wheel), CCInputHandlerClient::ScrollOnMainThread); } +TEST_F(CCLayerTreeHostImplTest, maxScrollPositionChangedByDeviceScaleFactor) +{ + setupScrollAndContentsLayers(IntSize(100, 100)); + + float deviceScaleFactor = 2; + IntSize layoutViewport(25, 25); + IntSize deviceViewport(layoutViewport); + deviceViewport.scale(deviceScaleFactor); + m_hostImpl->setViewportSize(layoutViewport, deviceViewport); + m_hostImpl->setDeviceScaleFactor(deviceScaleFactor); + EXPECT_EQ(m_hostImpl->rootLayer()->maxScrollPosition(), IntSize(25, 25)); + + deviceScaleFactor = 1; + m_hostImpl->setViewportSize(layoutViewport, layoutViewport); + m_hostImpl->setDeviceScaleFactor(deviceScaleFactor); + EXPECT_EQ(m_hostImpl->rootLayer()->maxScrollPosition(), IntSize(75, 75)); +} + TEST_F(CCLayerTreeHostImplTest, pinchGesture) { setupScrollAndContentsLayers(IntSize(100, 100)); @@ -1345,7 +1414,7 @@ class BlendStateCheckLayer : public CCLayerImpl { public: static PassOwnPtr<BlendStateCheckLayer> create(int id, CCResourceProvider* resourceProvider) { return adoptPtr(new BlendStateCheckLayer(id, resourceProvider)); } - virtual void appendQuads(CCQuadSink& quadSink, bool&) OVERRIDE + virtual void appendQuads(CCQuadSink& quadSink, CCAppendQuadsData& appendQuadsData) OVERRIDE { m_quadsAppended = true; @@ -1360,7 +1429,7 @@ public: testBlendingDrawQuad->setQuadVisibleRect(m_quadVisibleRect); EXPECT_EQ(m_blend, testBlendingDrawQuad->needsBlending()); EXPECT_EQ(m_hasRenderSurface, !!renderSurface()); - quadSink.append(testBlendingDrawQuad.release()); + quadSink.append(testBlendingDrawQuad.release(), appendQuadsData); } void setExpectation(bool blend, bool hasRenderSurface) @@ -1879,14 +1948,14 @@ class FakeLayerWithQuads : public CCLayerImpl { public: static PassOwnPtr<FakeLayerWithQuads> create(int id) { return adoptPtr(new FakeLayerWithQuads(id)); } - virtual void appendQuads(CCQuadSink& quadSink, bool&) OVERRIDE + virtual void appendQuads(CCQuadSink& quadSink, CCAppendQuadsData& appendQuadsData) OVERRIDE { CCSharedQuadState* sharedQuadState = quadSink.useSharedQuadState(createSharedQuadState()); SkColor gray = SkColorSetRGB(100, 100, 100); IntRect quadRect(IntPoint(0, 0), contentBounds()); OwnPtr<CCDrawQuad> myQuad = CCSolidColorDrawQuad::create(sharedQuadState, quadRect, gray); - quadSink.append(myQuad.release()); + quadSink.append(myQuad.release(), appendQuadsData); } private: @@ -2416,7 +2485,7 @@ public: IntSize size(10, 10); GC3Denum format = GraphicsContext3D::RGBA; CCResourceProvider::TextureUsageHint hint = CCResourceProvider::TextureUsageAny; - setScrollbarGeometry(FakeWebScrollbarThemeGeometryNonEmpty::create()); + setScrollbarGeometry(CCScrollbarGeometryFixedThumb::create(FakeWebScrollbarThemeGeometryNonEmpty::create())); setBackTrackResourceId(provider->createResource(pool, size, format, hint)); setForeTrackResourceId(provider->createResource(pool, size, format, hint)); @@ -2801,7 +2870,7 @@ TEST_F(CCLayerTreeHostImplTest, textureCachingWithClipping) EXPECT_LT(quadVisibleRect.width(), 100); // Verify that the render surface texture is *not* clipped. - EXPECT_INT_RECT_EQ(IntRect(0, 0, 100, 100), frame.renderPasses[0]->outputRect()); + EXPECT_RECT_EQ(IntRect(0, 0, 100, 100), frame.renderPasses[0]->outputRect()); EXPECT_EQ(CCDrawQuad::RenderPass, frame.renderPasses[1]->quadList()[0]->material()); CCRenderPassDrawQuad* quad = static_cast<CCRenderPassDrawQuad*>(frame.renderPasses[1]->quadList()[0].get()); @@ -3406,13 +3475,14 @@ TEST_F(CCLayerTreeHostImplTest, textureCachingWithScissor) grandChild->setDrawsContent(true); CCTiledLayerImpl* childPtr = child.get(); + CCRenderPass::Id childPassId(childPtr->id(), 0); child->addChild(grandChild.release()); root->addChild(child.release()); myHostImpl->setRootLayer(root.release()); myHostImpl->setViewportSize(rootRect.size(), rootRect.size()); - EXPECT_FALSE(myHostImpl->renderer()->haveCachedResourcesForRenderPassId(childPtr->id())); + EXPECT_FALSE(myHostImpl->renderer()->haveCachedResourcesForRenderPassId(childPassId)); { CCLayerTreeHostImpl::FrameData frame; @@ -3422,7 +3492,7 @@ TEST_F(CCLayerTreeHostImplTest, textureCachingWithScissor) } // We should have cached textures for surface 2. - EXPECT_TRUE(myHostImpl->renderer()->haveCachedResourcesForRenderPassId(childPtr->id())); + EXPECT_TRUE(myHostImpl->renderer()->haveCachedResourcesForRenderPassId(childPassId)); { CCLayerTreeHostImpl::FrameData frame; @@ -3432,7 +3502,7 @@ TEST_F(CCLayerTreeHostImplTest, textureCachingWithScissor) } // We should still have cached textures for surface 2 after drawing with no damage. - EXPECT_TRUE(myHostImpl->renderer()->haveCachedResourcesForRenderPassId(childPtr->id())); + EXPECT_TRUE(myHostImpl->renderer()->haveCachedResourcesForRenderPassId(childPassId)); // Damage a single tile of surface 2. childPtr->setUpdateRect(IntRect(10, 10, 10, 10)); @@ -3445,7 +3515,7 @@ TEST_F(CCLayerTreeHostImplTest, textureCachingWithScissor) } // We should have a cached texture for surface 2 again even though it was damaged. - EXPECT_TRUE(myHostImpl->renderer()->haveCachedResourcesForRenderPassId(childPtr->id())); + EXPECT_TRUE(myHostImpl->renderer()->haveCachedResourcesForRenderPassId(childPassId)); } TEST_F(CCLayerTreeHostImplTest, surfaceTextureCaching) @@ -3807,18 +3877,18 @@ struct RenderPassCacheEntry { }; struct RenderPassRemovalTestData : public CCLayerTreeHostImpl::FrameData { - std::map<char, RenderPassCacheEntry> renderPassCache; + std::map<CCRenderPass::Id, RenderPassCacheEntry> renderPassCache; OwnPtr<CCSharedQuadState> sharedQuadState; }; class CCTestRenderPass: public CCRenderPass { public: - static PassOwnPtr<CCRenderPass> create(int id, IntRect outputRect, const WebTransformationMatrix& rootTransform) { return adoptPtr(new CCTestRenderPass(id, outputRect, rootTransform)); } + static PassOwnPtr<CCRenderPass> create(CCRenderPass::Id id, IntRect outputRect, const WebTransformationMatrix& rootTransform) { return adoptPtr(new CCTestRenderPass(id, outputRect, rootTransform)); } void appendQuad(PassOwnPtr<CCDrawQuad> quad) { m_quadList.append(quad); } protected: - CCTestRenderPass(int id, IntRect outputRect, const WebTransformationMatrix& rootTransform) : CCRenderPass(id, outputRect, rootTransform) { } + CCTestRenderPass(CCRenderPass::Id id, IntRect outputRect, const WebTransformationMatrix& rootTransform) : CCRenderPass(id, outputRect, rootTransform) { } }; class CCTestRenderer : public CCRendererGL, public CCRendererClient { @@ -3833,9 +3903,9 @@ public: } void clearCachedTextures() { m_textures.clear(); } - void setHaveCachedResourcesForRenderPassId(int id) { m_textures.add(id); } + void setHaveCachedResourcesForRenderPassId(CCRenderPass::Id id) { m_textures.add(id); } - virtual bool haveCachedResourcesForRenderPassId(int id) const OVERRIDE { return m_textures.contains(id); } + virtual bool haveCachedResourcesForRenderPassId(CCRenderPass::Id id) const OVERRIDE { return m_textures.contains(id); } // CCRendererClient implementation. virtual const IntSize& deviceViewportSize() const OVERRIDE { return m_viewportSize; } @@ -3852,7 +3922,7 @@ protected: private: CCLayerTreeSettings m_settings; IntSize m_viewportSize; - HashSet<int> m_textures; + HashSet<CCRenderPass::Id> m_textures; }; static void configureRenderPassTestData(const char* testScript, RenderPassRemovalTestData& testData, CCTestRenderer* renderer) @@ -3865,13 +3935,18 @@ static void configureRenderPassTestData(const char* testScript, RenderPassRemova const char* currentChar = testScript; // Pre-create root pass - char rootRenderPassId = testScript[0]; + CCRenderPass::Id rootRenderPassId = CCRenderPass::Id(testScript[0], testScript[1]); OwnPtr<CCRenderPass> rootRenderPass = CCTestRenderPass::create(rootRenderPassId, IntRect(), WebTransformationMatrix()); - testData.renderPassCache.insert(std::pair<char, RenderPassCacheEntry>(rootRenderPassId, RenderPassCacheEntry(rootRenderPass.release()))); + testData.renderPassCache.insert(std::pair<CCRenderPass::Id, RenderPassCacheEntry>(rootRenderPassId, RenderPassCacheEntry(rootRenderPass.release()))); while (*currentChar) { - char renderPassId = currentChar[0]; + int layerId = *currentChar; + currentChar++; + ASSERT_TRUE(currentChar); + int index = *currentChar; currentChar++; + CCRenderPass::Id renderPassId = CCRenderPass::Id(layerId, index); + OwnPtr<CCRenderPass> renderPass; bool isReplica = false; @@ -3890,9 +3965,13 @@ static void configureRenderPassTestData(const char* testScript, RenderPassRemova currentChar++; } else if ((*currentChar >= 'A') && (*currentChar <= 'Z')) { // RenderPass draw quad - char newRenderPassId = *currentChar; - ASSERT_NE(rootRenderPassId, newRenderPassId); + int layerId = *currentChar; + currentChar++; + ASSERT_TRUE(currentChar); + int index = *currentChar; currentChar++; + CCRenderPass::Id newRenderPassId = CCRenderPass::Id(layerId, index); + ASSERT_NE(rootRenderPassId, newRenderPassId); bool hasTexture = false; bool contentsChanged = true; @@ -3918,7 +3997,7 @@ static void configureRenderPassTestData(const char* testScript, RenderPassRemova renderer->setHaveCachedResourcesForRenderPassId(newRenderPassId); OwnPtr<CCRenderPass> renderPass = CCTestRenderPass::create(newRenderPassId, IntRect(), WebTransformationMatrix()); - testData.renderPassCache.insert(std::pair<char, RenderPassCacheEntry>(newRenderPassId, RenderPassCacheEntry(renderPass.release()))); + testData.renderPassCache.insert(std::pair<CCRenderPass::Id, RenderPassCacheEntry>(newRenderPassId, RenderPassCacheEntry(renderPass.release()))); } IntRect quadRect = IntRect(0, 0, 1, 1); @@ -3939,7 +4018,9 @@ void dumpRenderPassTestData(const RenderPassRemovalTestData& testData, char* buf char* pos = buffer; for (CCRenderPassList::const_reverse_iterator it = testData.renderPasses.rbegin(); it != testData.renderPasses.rend(); ++it) { const CCRenderPass* currentPass = *it; - *pos = currentPass->id(); + *pos = currentPass->id().layerId; + pos++; + *pos = currentPass->id().index; pos++; CCQuadList::const_iterator quadListIterator = currentPass->quadList().begin(); @@ -3951,7 +4032,9 @@ void dumpRenderPassTestData(const RenderPassRemovalTestData& testData, char* buf pos++; break; case CCDrawQuad::RenderPass: - *pos = CCRenderPassDrawQuad::materialCast(currentQuad)->renderPassId(); + *pos = CCRenderPassDrawQuad::materialCast(currentQuad)->renderPassId().layerId; + pos++; + *pos = CCRenderPassDrawQuad::materialCast(currentQuad)->renderPassId().index; pos++; break; default: @@ -3995,115 +4078,115 @@ TestCase removeRenderPassesCases[] = { { "Single root pass", - "Rssss\n", - "Rssss\n" + "R0ssss\n", + "R0ssss\n" }, { "Single pass - no quads", - "R\n", - "R\n" + "R0\n", + "R0\n" }, { "Two passes, no removal", - "RssssAsss\n" - "Assss\n", - "RssssAsss\n" - "Assss\n" + "R0ssssA0sss\n" + "A0ssss\n", + "R0ssssA0sss\n" + "A0ssss\n" }, { "Two passes, remove last", - "RssssA[ct]sss\n" - "Assss\n", - "RssssAsss\n" + "R0ssssA0[ct]sss\n" + "A0ssss\n", + "R0ssssA0sss\n" }, { "Have texture but contents changed - leave pass", - "RssssA[t]sss\n" - "Assss\n", - "RssssAsss\n" - "Assss\n" + "R0ssssA0[t]sss\n" + "A0ssss\n", + "R0ssssA0sss\n" + "A0ssss\n" }, { "Contents didn't change but no texture - leave pass", - "RssssA[c]sss\n" - "Assss\n", - "RssssAsss\n" - "Assss\n" + "R0ssssA0[c]sss\n" + "A0ssss\n", + "R0ssssA0sss\n" + "A0ssss\n" }, { "Replica: two quads reference the same pass; remove", - "RssssA[ct]A[ct]sss\n" - "Assss\n", - "RssssAAsss\n" + "R0ssssA0[ct]A0[ct]sss\n" + "A0ssss\n", + "R0ssssA0A0sss\n" }, { "Replica: two quads reference the same pass; leave", - "RssssA[c]A[c]sss\n" - "Assss\n", - "RssssAAsss\n" - "Assss\n", + "R0ssssA0[c]A0[c]sss\n" + "A0ssss\n", + "R0ssssA0A0sss\n" + "A0ssss\n", }, { "Many passes, remove all", - "RssssA[ct]sss\n" - "AsssB[ct]C[ct]s\n" - "BsssD[ct]ssE[ct]F[ct]\n" - "Essssss\n" - "CG[ct]\n" - "Dsssssss\n" - "Fsssssss\n" - "Gsss\n", - - "RssssAsss\n" + "R0ssssA0[ct]sss\n" + "A0sssB0[ct]C0[ct]s\n" + "B0sssD0[ct]ssE0[ct]F0[ct]\n" + "E0ssssss\n" + "C0G0[ct]\n" + "D0sssssss\n" + "F0sssssss\n" + "G0sss\n", + + "R0ssssA0sss\n" }, { "Deep recursion, remove all", - "RsssssA[ct]ssss\n" - "AssssBsss\n" - "BC\n" - "CD\n" - "DE\n" - "EF\n" - "FG\n" - "GH\n" - "HsssIsss\n" - "IJ\n" - "Jssss\n", + "R0sssssA0[ct]ssss\n" + "A0ssssB0sss\n" + "B0C0\n" + "C0D0\n" + "D0E0\n" + "E0F0\n" + "F0G0\n" + "G0H0\n" + "H0sssI0sss\n" + "I0J0\n" + "J0ssss\n", - "RsssssAssss\n" + "R0sssssA0ssss\n" }, { "Wide recursion, remove all", - "RA[ct]B[ct]C[ct]D[ct]E[ct]F[ct]G[ct]H[ct]I[ct]J[ct]\n" - "As\n" - "Bs\n" - "Cssss\n" - "Dssss\n" - "Es\n" - "F\n" - "Gs\n" - "Hs\n" - "Is\n" - "Jssss\n", + "R0A0[ct]B0[ct]C0[ct]D0[ct]E0[ct]F0[ct]G0[ct]H0[ct]I0[ct]J0[ct]\n" + "A0s\n" + "B0s\n" + "C0ssss\n" + "D0ssss\n" + "E0s\n" + "F0\n" + "G0s\n" + "H0s\n" + "I0s\n" + "J0ssss\n", - "RABCDEFGHIJ\n" + "R0A0B0C0D0E0F0G0H0I0J0\n" }, { "Remove passes regardless of cache state", - "RssssA[ct]sss\n" - "AsssBCs\n" - "BsssD[c]ssE[t]F\n" - "Essssss\n" - "CG\n" - "Dsssssss\n" - "Fsssssss\n" - "Gsss\n", - - "RssssAsss\n" + "R0ssssA0[ct]sss\n" + "A0sssB0C0s\n" + "B0sssD0[c]ssE0[t]F0\n" + "E0ssssss\n" + "C0G0\n" + "D0sssssss\n" + "F0sssssss\n" + "G0sss\n", + + "R0ssssA0sss\n" }, { "Leave some passes, remove others", - "RssssA[c]sss\n" - "AsssB[t]C[ct]s\n" - "BsssD[c]ss\n" - "CG\n" - "Dsssssss\n" - "Gsss\n", - - "RssssAsss\n" - "AsssBCs\n" - "BsssDss\n" - "Dsssssss\n" + "R0ssssA0[c]sss\n" + "A0sssB0[t]C0[ct]s\n" + "B0sssD0[c]ss\n" + "C0G0\n" + "D0sssssss\n" + "G0sss\n", + + "R0ssssA0sss\n" + "A0sssB0C0s\n" + "B0sssD0ss\n" + "D0sssssss\n" }, { 0, 0, 0 } diff --git a/Source/WebKit/chromium/tests/CCLayerTreeHostTest.cpp b/Source/WebKit/chromium/tests/CCLayerTreeHostTest.cpp index c026bd4f5..9ce449504 100644 --- a/Source/WebKit/chromium/tests/CCLayerTreeHostTest.cpp +++ b/Source/WebKit/chromium/tests/CCLayerTreeHostTest.cpp @@ -26,6 +26,7 @@ #include "CCLayerTreeHost.h" +#include "CCGeometryTestUtils.h" #include "CCGraphicsContext.h" #include "CCLayerTreeHostImpl.h" #include "CCOcclusionTrackerTestCommon.h" @@ -35,23 +36,19 @@ #include "CCThreadedTest.h" #include "CCTimingFunction.h" #include "ContentLayerChromium.h" +#include "ContentLayerChromiumClient.h" +#include "Extensions3DChromium.h" +#include "FakeWebCompositorOutputSurface.h" #include <gmock/gmock.h> -#include <gtest/gtest.h> #include <public/Platform.h> -#include <public/WebThread.h> +#include <public/WebLayerScrollClient.h> +#include <public/WebSize.h> #include <wtf/MainThread.h> #include <wtf/OwnArrayPtr.h> using namespace WebCore; using namespace WebKit; using namespace WebKitTests; -using namespace WTF; - -#define EXPECT_EQ_RECT(a, b) \ - EXPECT_EQ(a.x(), b.x()); \ - EXPECT_EQ(a.y(), b.y()); \ - EXPECT_EQ(a.width(), b.width()); \ - EXPECT_EQ(a.height(), b.height()); namespace { @@ -518,6 +515,63 @@ TEST_F(CCLayerTreeHostTestAbortFrameWhenInvisible, runMultiThread) runTest(true); } +// Makes sure that setNedsAnimate does not cause the commitRequested() state to be set. +class CCLayerTreeHostTestSetNeedsAnimateShouldNotSetCommitRequested : public CCLayerTreeHostTest { +public: + CCLayerTreeHostTestSetNeedsAnimateShouldNotSetCommitRequested() + : m_numCommits(0) + { + } + + virtual void beginTest() OVERRIDE + { + // The tests start up with a commit pending because we give them a root layer. + // We need to wait for the commit to happen before doing anything. + EXPECT_TRUE(m_layerTreeHost->commitRequested()); + } + + virtual void animate(double monotonicTime) OVERRIDE + { + // We skip the first commit becasue its the commit that populates the + // impl thread with a tree. + if (!m_numCommits) + return; + + m_layerTreeHost->setNeedsAnimate(); + // Right now, commitRequested is going to be true, because during + // beginFrame, we force commitRequested to true to prevent requests from + // hitting the impl thread. But, when the next didCommit happens, we should + // verify that commitRequested has gone back to false. + } + virtual void didCommit() OVERRIDE + { + if (!m_numCommits) { + EXPECT_FALSE(m_layerTreeHost->commitRequested()); + m_layerTreeHost->setNeedsAnimate(); + EXPECT_FALSE(m_layerTreeHost->commitRequested()); + m_numCommits++; + } + + // Verifies that the setNeedsAnimate we made in ::animate did not + // trigger commitRequested. + EXPECT_FALSE(m_layerTreeHost->commitRequested()); + endTest(); + } + + virtual void afterTest() OVERRIDE + { + } + +private: + int m_numCommits; +}; + +TEST_F(CCLayerTreeHostTestSetNeedsAnimateShouldNotSetCommitRequested, runMultiThread) +{ + runTest(true); +} + + // Trigger a frame with setNeedsCommit. Then, inside the resulting animate // callback, requet another frame using setNeedsAnimate. End the test when @@ -536,7 +590,7 @@ public: postSetNeedsAnimateToMainThread(); } - virtual void updateAnimations(double) OVERRIDE + virtual void animate(double) OVERRIDE { if (!m_numAnimates) { m_layerTreeHost->setNeedsAnimate(); @@ -912,7 +966,7 @@ private: int m_scrolls; }; -TEST_F(CCLayerTreeHostTestScrollSimple, DISABLED_runMultiThread) +TEST_F(CCLayerTreeHostTestScrollSimple, runMultiThread) { runTest(true); } @@ -1133,7 +1187,7 @@ TEST_F(CCLayerTreeHostTestSetVisible, runMultiThread) runTest(true); } -class TestOpacityChangeLayerDelegate : public ContentLayerDelegate { +class TestOpacityChangeLayerDelegate : public ContentLayerChromiumClient { public: TestOpacityChangeLayerDelegate(CCLayerTreeHostTest* test) : m_test(test) @@ -1152,7 +1206,7 @@ private: class ContentLayerChromiumWithUpdateTracking : public ContentLayerChromium { public: - static PassRefPtr<ContentLayerChromiumWithUpdateTracking> create(ContentLayerDelegate *delegate) { return adoptRef(new ContentLayerChromiumWithUpdateTracking(delegate)); } + static PassRefPtr<ContentLayerChromiumWithUpdateTracking> create(ContentLayerChromiumClient* client) { return adoptRef(new ContentLayerChromiumWithUpdateTracking(client)); } int paintContentsCount() { return m_paintContentsCount; } void resetPaintContentsCount() { m_paintContentsCount = 0; } @@ -1164,8 +1218,8 @@ public: } private: - explicit ContentLayerChromiumWithUpdateTracking(ContentLayerDelegate* delegate) - : ContentLayerChromium(delegate) + explicit ContentLayerChromiumWithUpdateTracking(ContentLayerChromiumClient* client) + : ContentLayerChromium(client) , m_paintContentsCount(0) { setAnchorPoint(FloatPoint(0, 0)); @@ -1217,7 +1271,7 @@ TEST_F(CCLayerTreeHostTestOpacityChange, runMultiThread) runTest(true); } -class MockContentLayerDelegate : public ContentLayerDelegate { +class MockContentLayerChromiumClient : public ContentLayerChromiumClient { public: bool drawsContent() const { return true; } MOCK_CONST_METHOD0(preserves3D, bool()); @@ -1225,12 +1279,23 @@ public: void notifySyncRequired() { } }; +class NoScaleContentLayerChromium : public ContentLayerChromium { +public: + static PassRefPtr<NoScaleContentLayerChromium> create(ContentLayerChromiumClient* client) { return adoptRef(new NoScaleContentLayerChromium(client)); } + + virtual bool needsContentsScale() const OVERRIDE { return false; } + +private: + explicit NoScaleContentLayerChromium(ContentLayerChromiumClient* client) + : ContentLayerChromium(client) { } +}; + class CCLayerTreeHostTestDeviceScaleFactorScalesViewportAndLayers : public CCLayerTreeHostTest { public: CCLayerTreeHostTestDeviceScaleFactorScalesViewportAndLayers() - : m_rootLayer(ContentLayerChromium::create(&m_delegate)) - , m_childLayer(ContentLayerChromium::create(&m_delegate)) + : m_rootLayer(NoScaleContentLayerChromium::create(&m_client)) + , m_childLayer(ContentLayerChromium::create(&m_client)) { } @@ -1289,7 +1354,12 @@ public: ASSERT_EQ(2u, root->renderSurface()->layerList().size()); // The root render surface is the size of the viewport. - EXPECT_EQ_RECT(IntRect(0, 0, 60, 60), root->renderSurface()->contentRect()); + EXPECT_RECT_EQ(IntRect(0, 0, 60, 60), root->renderSurface()->contentRect()); + + // The content bounds of the child should be scaled. + IntSize childBoundsScaled = child->bounds(); + childBoundsScaled.scale(1.5); + EXPECT_EQ(childBoundsScaled, child->contentBounds()); WebTransformationMatrix scaleTransform; scaleTransform.scale(impl->deviceScaleFactor()); @@ -1301,11 +1371,10 @@ public: EXPECT_EQ(rootDrawTransform, root->drawTransform()); EXPECT_EQ(rootScreenSpaceTransform, root->screenSpaceTransform()); - // The child is at position 2,2, so translate by 2,2 before applying the scale by 2x. - WebTransformationMatrix childScreenSpaceTransform = scaleTransform; - childScreenSpaceTransform.translate(2, 2); - WebTransformationMatrix childDrawTransform = scaleTransform; - childDrawTransform.translate(2, 2); + // The child is at position 2,2, which is transformed to 3,3 after the scale + WebTransformationMatrix childScreenSpaceTransform; + childScreenSpaceTransform.translate(3, 3); + WebTransformationMatrix childDrawTransform = childScreenSpaceTransform; EXPECT_EQ(childDrawTransform, child->drawTransform()); EXPECT_EQ(childScreenSpaceTransform, child->screenSpaceTransform()); @@ -1320,8 +1389,8 @@ public: } private: - MockContentLayerDelegate m_delegate; - RefPtr<ContentLayerChromium> m_rootLayer; + MockContentLayerChromiumClient m_client; + RefPtr<NoScaleContentLayerChromium> m_rootLayer; RefPtr<ContentLayerChromium> m_childLayer; }; @@ -1334,7 +1403,7 @@ TEST_F(CCLayerTreeHostTestDeviceScaleFactorScalesViewportAndLayers, runMultiThre class CCLayerTreeHostTestAtomicCommit : public CCLayerTreeHostTest { public: CCLayerTreeHostTestAtomicCommit() - : m_layer(ContentLayerChromiumWithUpdateTracking::create(&m_delegate)) + : m_layer(ContentLayerChromiumWithUpdateTracking::create(&m_client)) { // Make sure partial texture updates are turned off. m_settings.maxPartialTextureUpdates = 0; @@ -1408,7 +1477,7 @@ public: } private: - MockContentLayerDelegate m_delegate; + MockContentLayerChromiumClient m_client; RefPtr<ContentLayerChromiumWithUpdateTracking> m_layer; }; @@ -1432,8 +1501,8 @@ static void setLayerPropertiesForTesting(LayerChromium* layer, LayerChromium* pa class CCLayerTreeHostTestAtomicCommitWithPartialUpdate : public CCLayerTreeHostTest { public: CCLayerTreeHostTestAtomicCommitWithPartialUpdate() - : m_parent(ContentLayerChromiumWithUpdateTracking::create(&m_delegate)) - , m_child(ContentLayerChromiumWithUpdateTracking::create(&m_delegate)) + : m_parent(ContentLayerChromiumWithUpdateTracking::create(&m_client)) + , m_child(ContentLayerChromiumWithUpdateTracking::create(&m_client)) , m_numCommits(0) { // Allow one partial texture update. @@ -1555,7 +1624,7 @@ public: } private: - MockContentLayerDelegate m_delegate; + MockContentLayerChromiumClient m_client; RefPtr<ContentLayerChromiumWithUpdateTracking> m_parent; RefPtr<ContentLayerChromiumWithUpdateTracking> m_child; int m_numCommits; @@ -1629,11 +1698,11 @@ public: m_layerTreeHost->updateLayers(queue, std::numeric_limits<size_t>::max()); m_layerTreeHost->commitComplete(); - EXPECT_EQ_RECT(IntRect(), grandChild->occludedScreenSpace().bounds()); + EXPECT_RECT_EQ(IntRect(), grandChild->occludedScreenSpace().bounds()); EXPECT_EQ(0u, grandChild->occludedScreenSpace().rects().size()); - EXPECT_EQ_RECT(IntRect(30, 40, 170, 160), child->occludedScreenSpace().bounds()); + EXPECT_RECT_EQ(IntRect(30, 40, 170, 160), child->occludedScreenSpace().bounds()); EXPECT_EQ(1u, child->occludedScreenSpace().rects().size()); - EXPECT_EQ_RECT(IntRect(30, 40, 170, 160), rootLayer->occludedScreenSpace().bounds()); + EXPECT_RECT_EQ(IntRect(30, 40, 170, 160), rootLayer->occludedScreenSpace().bounds()); EXPECT_EQ(1u, rootLayer->occludedScreenSpace().rects().size()); // If the child layer is opaque, then it adds to the occlusion seen by the rootLayer. @@ -1646,11 +1715,11 @@ public: m_layerTreeHost->updateLayers(queue, std::numeric_limits<size_t>::max()); m_layerTreeHost->commitComplete(); - EXPECT_EQ_RECT(IntRect(), grandChild->occludedScreenSpace().bounds()); + EXPECT_RECT_EQ(IntRect(), grandChild->occludedScreenSpace().bounds()); EXPECT_EQ(0u, grandChild->occludedScreenSpace().rects().size()); - EXPECT_EQ_RECT(IntRect(30, 40, 170, 160), child->occludedScreenSpace().bounds()); + EXPECT_RECT_EQ(IntRect(30, 40, 170, 160), child->occludedScreenSpace().bounds()); EXPECT_EQ(1u, child->occludedScreenSpace().rects().size()); - EXPECT_EQ_RECT(IntRect(30, 30, 170, 170), rootLayer->occludedScreenSpace().bounds()); + EXPECT_RECT_EQ(IntRect(30, 30, 170, 170), rootLayer->occludedScreenSpace().bounds()); EXPECT_EQ(1u, rootLayer->occludedScreenSpace().rects().size()); // Add a second child to the root layer and the regions should merge @@ -1664,13 +1733,13 @@ public: m_layerTreeHost->updateLayers(queue, std::numeric_limits<size_t>::max()); m_layerTreeHost->commitComplete(); - EXPECT_EQ_RECT(IntRect(), grandChild->occludedScreenSpace().bounds()); + EXPECT_RECT_EQ(IntRect(), grandChild->occludedScreenSpace().bounds()); EXPECT_EQ(0u, grandChild->occludedScreenSpace().rects().size()); - EXPECT_EQ_RECT(IntRect(30, 40, 170, 160), child->occludedScreenSpace().bounds()); + EXPECT_RECT_EQ(IntRect(30, 40, 170, 160), child->occludedScreenSpace().bounds()); EXPECT_EQ(1u, child->occludedScreenSpace().rects().size()); - EXPECT_EQ_RECT(IntRect(30, 30, 170, 170), child2->occludedScreenSpace().bounds()); + EXPECT_RECT_EQ(IntRect(30, 30, 170, 170), child2->occludedScreenSpace().bounds()); EXPECT_EQ(1u, child2->occludedScreenSpace().rects().size()); - EXPECT_EQ_RECT(IntRect(30, 20, 170, 180), rootLayer->occludedScreenSpace().bounds()); + EXPECT_RECT_EQ(IntRect(30, 20, 170, 180), rootLayer->occludedScreenSpace().bounds()); EXPECT_EQ(2u, rootLayer->occludedScreenSpace().rects().size()); // Move the second child to be sure. @@ -1684,13 +1753,13 @@ public: m_layerTreeHost->updateLayers(queue, std::numeric_limits<size_t>::max()); m_layerTreeHost->commitComplete(); - EXPECT_EQ_RECT(IntRect(), grandChild->occludedScreenSpace().bounds()); + EXPECT_RECT_EQ(IntRect(), grandChild->occludedScreenSpace().bounds()); EXPECT_EQ(0u, grandChild->occludedScreenSpace().rects().size()); - EXPECT_EQ_RECT(IntRect(30, 40, 170, 160), child->occludedScreenSpace().bounds()); + EXPECT_RECT_EQ(IntRect(30, 40, 170, 160), child->occludedScreenSpace().bounds()); EXPECT_EQ(1u, child->occludedScreenSpace().rects().size()); - EXPECT_EQ_RECT(IntRect(30, 30, 170, 170), child2->occludedScreenSpace().bounds()); + EXPECT_RECT_EQ(IntRect(30, 30, 170, 170), child2->occludedScreenSpace().bounds()); EXPECT_EQ(1u, child2->occludedScreenSpace().rects().size()); - EXPECT_EQ_RECT(IntRect(10, 30, 190, 170), rootLayer->occludedScreenSpace().bounds()); + EXPECT_RECT_EQ(IntRect(10, 30, 190, 170), rootLayer->occludedScreenSpace().bounds()); EXPECT_EQ(2u, rootLayer->occludedScreenSpace().rects().size()); // If the child layer has a mask on it, then it shouldn't contribute to occlusion on stuff below it @@ -1706,13 +1775,13 @@ public: m_layerTreeHost->updateLayers(queue, std::numeric_limits<size_t>::max()); m_layerTreeHost->commitComplete(); - EXPECT_EQ_RECT(IntRect(), grandChild->occludedScreenSpace().bounds()); + EXPECT_RECT_EQ(IntRect(), grandChild->occludedScreenSpace().bounds()); EXPECT_EQ(0u, grandChild->occludedScreenSpace().rects().size()); - EXPECT_EQ_RECT(IntRect(30, 40, 170, 160), child->occludedScreenSpace().bounds()); + EXPECT_RECT_EQ(IntRect(30, 40, 170, 160), child->occludedScreenSpace().bounds()); EXPECT_EQ(1u, child->occludedScreenSpace().rects().size()); - EXPECT_EQ_RECT(IntRect(), child2->occludedScreenSpace().bounds()); + EXPECT_RECT_EQ(IntRect(), child2->occludedScreenSpace().bounds()); EXPECT_EQ(0u, child2->occludedScreenSpace().rects().size()); - EXPECT_EQ_RECT(IntRect(10, 70, 190, 130), rootLayer->occludedScreenSpace().bounds()); + EXPECT_RECT_EQ(IntRect(10, 70, 190, 130), rootLayer->occludedScreenSpace().bounds()); EXPECT_EQ(1u, rootLayer->occludedScreenSpace().rects().size()); // If the child layer with a mask is below child2, then child2 should contribute to occlusion on everything, and child shouldn't contribute to the rootLayer @@ -1728,13 +1797,13 @@ public: m_layerTreeHost->updateLayers(queue, std::numeric_limits<size_t>::max()); m_layerTreeHost->commitComplete(); - EXPECT_EQ_RECT(IntRect(), child2->occludedScreenSpace().bounds()); + EXPECT_RECT_EQ(IntRect(), child2->occludedScreenSpace().bounds()); EXPECT_EQ(0u, child2->occludedScreenSpace().rects().size()); - EXPECT_EQ_RECT(IntRect(10, 70, 190, 130), grandChild->occludedScreenSpace().bounds()); + EXPECT_RECT_EQ(IntRect(10, 70, 190, 130), grandChild->occludedScreenSpace().bounds()); EXPECT_EQ(1u, grandChild->occludedScreenSpace().rects().size()); - EXPECT_EQ_RECT(IntRect(10, 40, 190, 160), child->occludedScreenSpace().bounds()); + EXPECT_RECT_EQ(IntRect(10, 40, 190, 160), child->occludedScreenSpace().bounds()); EXPECT_EQ(2u, child->occludedScreenSpace().rects().size()); - EXPECT_EQ_RECT(IntRect(10, 70, 190, 130), rootLayer->occludedScreenSpace().bounds()); + EXPECT_RECT_EQ(IntRect(10, 70, 190, 130), rootLayer->occludedScreenSpace().bounds()); EXPECT_EQ(1u, rootLayer->occludedScreenSpace().rects().size()); // If the child layer has a non-opaque drawOpacity, then it shouldn't contribute to occlusion on stuff below it @@ -1751,13 +1820,13 @@ public: m_layerTreeHost->updateLayers(queue, std::numeric_limits<size_t>::max()); m_layerTreeHost->commitComplete(); - EXPECT_EQ_RECT(IntRect(), grandChild->occludedScreenSpace().bounds()); + EXPECT_RECT_EQ(IntRect(), grandChild->occludedScreenSpace().bounds()); EXPECT_EQ(0u, grandChild->occludedScreenSpace().rects().size()); - EXPECT_EQ_RECT(IntRect(30, 40, 170, 160), child->occludedScreenSpace().bounds()); + EXPECT_RECT_EQ(IntRect(30, 40, 170, 160), child->occludedScreenSpace().bounds()); EXPECT_EQ(1u, child->occludedScreenSpace().rects().size()); - EXPECT_EQ_RECT(IntRect(), child2->occludedScreenSpace().bounds()); + EXPECT_RECT_EQ(IntRect(), child2->occludedScreenSpace().bounds()); EXPECT_EQ(0u, child2->occludedScreenSpace().rects().size()); - EXPECT_EQ_RECT(IntRect(10, 70, 190, 130), rootLayer->occludedScreenSpace().bounds()); + EXPECT_RECT_EQ(IntRect(10, 70, 190, 130), rootLayer->occludedScreenSpace().bounds()); EXPECT_EQ(1u, rootLayer->occludedScreenSpace().rects().size()); // If the child layer with non-opaque drawOpacity is below child2, then child2 should contribute to occlusion on everything, and child shouldn't contribute to the rootLayer @@ -1774,13 +1843,13 @@ public: m_layerTreeHost->updateLayers(queue, std::numeric_limits<size_t>::max()); m_layerTreeHost->commitComplete(); - EXPECT_EQ_RECT(IntRect(), child2->occludedScreenSpace().bounds()); + EXPECT_RECT_EQ(IntRect(), child2->occludedScreenSpace().bounds()); EXPECT_EQ(0u, child2->occludedScreenSpace().rects().size()); - EXPECT_EQ_RECT(IntRect(10, 70, 190, 130), grandChild->occludedScreenSpace().bounds()); + EXPECT_RECT_EQ(IntRect(10, 70, 190, 130), grandChild->occludedScreenSpace().bounds()); EXPECT_EQ(1u, grandChild->occludedScreenSpace().rects().size()); - EXPECT_EQ_RECT(IntRect(10, 40, 190, 160), child->occludedScreenSpace().bounds()); + EXPECT_RECT_EQ(IntRect(10, 40, 190, 160), child->occludedScreenSpace().bounds()); EXPECT_EQ(2u, child->occludedScreenSpace().rects().size()); - EXPECT_EQ_RECT(IntRect(10, 70, 190, 130), rootLayer->occludedScreenSpace().bounds()); + EXPECT_RECT_EQ(IntRect(10, 70, 190, 130), rootLayer->occludedScreenSpace().bounds()); EXPECT_EQ(1u, rootLayer->occludedScreenSpace().rects().size()); // Kill the layerTreeHost immediately. @@ -1837,13 +1906,13 @@ public: m_layerTreeHost->updateLayers(queue, std::numeric_limits<size_t>::max()); m_layerTreeHost->commitComplete(); - EXPECT_EQ_RECT(IntRect(), child2->occludedScreenSpace().bounds()); + EXPECT_RECT_EQ(IntRect(), child2->occludedScreenSpace().bounds()); EXPECT_EQ(0u, child2->occludedScreenSpace().rects().size()); - EXPECT_EQ_RECT(IntRect(10, 70, 190, 130), grandChild->occludedScreenSpace().bounds()); + EXPECT_RECT_EQ(IntRect(10, 70, 190, 130), grandChild->occludedScreenSpace().bounds()); EXPECT_EQ(1u, grandChild->occludedScreenSpace().rects().size()); - EXPECT_EQ_RECT(IntRect(10, 40, 190, 160), child->occludedScreenSpace().bounds()); + EXPECT_RECT_EQ(IntRect(10, 40, 190, 160), child->occludedScreenSpace().bounds()); EXPECT_EQ(2u, child->occludedScreenSpace().rects().size()); - EXPECT_EQ_RECT(IntRect(10, 70, 190, 130), rootLayer->occludedScreenSpace().bounds()); + EXPECT_RECT_EQ(IntRect(10, 70, 190, 130), rootLayer->occludedScreenSpace().bounds()); EXPECT_EQ(1u, rootLayer->occludedScreenSpace().rects().size()); // If the child layer has a filter that moves pixels/changes alpha, and is below child2, then child should not inherit occlusion from outside its subtree, @@ -1864,13 +1933,13 @@ public: m_layerTreeHost->updateLayers(queue, std::numeric_limits<size_t>::max()); m_layerTreeHost->commitComplete(); - EXPECT_EQ_RECT(IntRect(), child2->occludedScreenSpace().bounds()); + EXPECT_RECT_EQ(IntRect(), child2->occludedScreenSpace().bounds()); EXPECT_EQ(0u, child2->occludedScreenSpace().rects().size()); - EXPECT_EQ_RECT(IntRect(), grandChild->occludedScreenSpace().bounds()); + EXPECT_RECT_EQ(IntRect(), grandChild->occludedScreenSpace().bounds()); EXPECT_EQ(0u, grandChild->occludedScreenSpace().rects().size()); - EXPECT_EQ_RECT(IntRect(30, 40, 170, 160), child->occludedScreenSpace().bounds()); + EXPECT_RECT_EQ(IntRect(30, 40, 170, 160), child->occludedScreenSpace().bounds()); EXPECT_EQ(1u, child->occludedScreenSpace().rects().size()); - EXPECT_EQ_RECT(IntRect(10, 70, 190, 130), rootLayer->occludedScreenSpace().bounds()); + EXPECT_RECT_EQ(IntRect(10, 70, 190, 130), rootLayer->occludedScreenSpace().bounds()); EXPECT_EQ(1u, rootLayer->occludedScreenSpace().rects().size()); // Kill the layerTreeHost immediately. @@ -1929,7 +1998,7 @@ public: for (int i = 0; i < numSurfaces-1; ++i) { IntRect expectedOcclusion(i+1, i+1, 200-i-1, 200-i-1); - EXPECT_EQ_RECT(expectedOcclusion, layers[i]->occludedScreenSpace().bounds()); + EXPECT_RECT_EQ(expectedOcclusion, layers[i]->occludedScreenSpace().bounds()); EXPECT_EQ(1u, layers[i]->occludedScreenSpace().rects().size()); } @@ -2160,7 +2229,7 @@ private: SINGLE_AND_MULTI_THREAD_TEST_F(CCLayerTreeHostTestLayerAddedWithAnimation) -class CCLayerTreeHostTestScrollChildLayer : public CCLayerTreeHostTest, public LayerChromiumScrollDelegate { +class CCLayerTreeHostTestScrollChildLayer : public CCLayerTreeHostTest, public WebLayerScrollClient { public: CCLayerTreeHostTestScrollChildLayer() : m_scrollAmount(2, 1) @@ -2183,7 +2252,7 @@ public: m_rootScrollLayer->setMaxScrollPosition(IntSize(100, 100)); m_layerTreeHost->rootLayer()->addChild(m_rootScrollLayer); m_childLayer = ContentLayerChromium::create(&m_mockDelegate); - m_childLayer->setLayerScrollDelegate(this); + m_childLayer->setLayerScrollClient(this); m_childLayer->setBounds(IntSize(50, 50)); m_childLayer->setIsDrawable(true); m_childLayer->setScrollable(true); @@ -2196,9 +2265,9 @@ public: postSetNeedsCommitToMainThread(); } - virtual void didScroll(const IntSize& scrollDelta) OVERRIDE + virtual void didScroll() OVERRIDE { - m_reportedScrollAmount = scrollDelta; + m_finalScrollPosition = m_childLayer->scrollPosition(); } virtual void applyScrollAndScale(const IntSize& scrollDelta, float) OVERRIDE @@ -2228,13 +2297,13 @@ public: virtual void afterTest() OVERRIDE { - EXPECT_EQ(m_scrollAmount, m_reportedScrollAmount); + EXPECT_EQ(IntPoint(m_scrollAmount), m_finalScrollPosition); } private: const IntSize m_scrollAmount; - IntSize m_reportedScrollAmount; - MockContentLayerDelegate m_mockDelegate; + IntPoint m_finalScrollPosition; + MockContentLayerChromiumClient m_mockDelegate; RefPtr<LayerChromium> m_childLayer; RefPtr<LayerChromium> m_rootScrollLayer; }; @@ -2300,8 +2369,8 @@ public: virtual void drawLayersOnCCThread(CCLayerTreeHostImpl* hostImpl) OVERRIDE { CCRenderer* renderer = hostImpl->renderer(); - unsigned surface1RenderPassId = hostImpl->rootLayer()->children()[0]->id(); - unsigned surface2RenderPassId = hostImpl->rootLayer()->children()[0]->children()[0]->id(); + CCRenderPass::Id surface1RenderPassId = hostImpl->rootLayer()->children()[0]->renderSurface()->renderPassId(); + CCRenderPass::Id surface2RenderPassId = hostImpl->rootLayer()->children()[0]->children()[0]->renderSurface()->renderPassId(); switch (hostImpl->sourceFrameNumber()) { case 0: @@ -2336,7 +2405,7 @@ public: } private: - MockContentLayerDelegate m_mockDelegate; + MockContentLayerChromiumClient m_mockDelegate; RefPtr<ContentLayerChromiumWithUpdateTracking> m_rootLayer; RefPtr<ContentLayerChromiumWithUpdateTracking> m_surfaceLayer1; RefPtr<ContentLayerChromiumWithUpdateTracking> m_replicaLayer1; @@ -2408,11 +2477,13 @@ public: return adoptPtr(new EvictionTestLayerImpl(id)); } virtual ~EvictionTestLayerImpl() { } - virtual void appendQuads(CCQuadSink&, bool& hadMissingTiles) OVERRIDE + + virtual void appendQuads(CCQuadSink& quadSink, CCAppendQuadsData&) OVERRIDE { ASSERT_TRUE(m_hasTexture); ASSERT_NE(0u, layerTreeHostImpl()->resourceProvider()->numResources()); } + void setHasTexture(bool hasTexture) { m_hasTexture = hasTexture; } private: @@ -2582,7 +2653,7 @@ public: } private: - MockContentLayerDelegate m_delegate; + MockContentLayerChromiumClient m_client; RefPtr<EvictionTestLayer> m_layer; CCLayerTreeHostImpl* m_implForEvictTextures; int m_numCommits; @@ -2678,7 +2749,7 @@ public: } private: - MockContentLayerDelegate m_delegate; + MockContentLayerChromiumClient m_client; RefPtr<EvictionTestLayer> m_layer; CCLayerTreeHostImpl* m_implForEvictTextures; int m_numCommits; @@ -2686,4 +2757,263 @@ private: SINGLE_AND_MULTI_THREAD_TEST_F(CCLayerTreeHostTestLostContextAfterEvictTextures) +class CompositorFakeWebGraphicsContext3DWithEndQueryCausingLostContext : public WebKit::CompositorFakeWebGraphicsContext3D { +public: + static PassOwnPtr<CompositorFakeWebGraphicsContext3DWithEndQueryCausingLostContext> create(Attributes attrs) + { + return adoptPtr(new CompositorFakeWebGraphicsContext3DWithEndQueryCausingLostContext(attrs)); + } + + virtual void setContextLostCallback(WebGraphicsContextLostCallback* callback) { m_contextLostCallback = callback; } + virtual bool isContextLost() { return m_isContextLost; } + + virtual void beginQueryEXT(GC3Denum, WebGLId) { } + virtual void endQueryEXT(GC3Denum) + { + // Lose context. + if (!m_isContextLost) { + m_contextLostCallback->onContextLost(); + m_isContextLost = true; + } + } + virtual void getQueryObjectuivEXT(WebGLId, GC3Denum pname, GC3Duint* params) + { + // Context is lost. Result will never be available. + if (pname == Extensions3DChromium::QUERY_RESULT_AVAILABLE_EXT) + *params = 0; + } + +private: + explicit CompositorFakeWebGraphicsContext3DWithEndQueryCausingLostContext(Attributes attrs) + : CompositorFakeWebGraphicsContext3D(attrs) + , m_contextLostCallback(0) + , m_isContextLost(false) { } + + WebGraphicsContextLostCallback* m_contextLostCallback; + bool m_isContextLost; +}; + +class CCLayerTreeHostTestLostContextWhileUpdatingResources : public CCLayerTreeHostTest { +public: + CCLayerTreeHostTestLostContextWhileUpdatingResources() + : m_parent(ContentLayerChromiumWithUpdateTracking::create(&m_client)) + , m_numChildren(50) + { + for (int i = 0; i < m_numChildren; i++) + m_children.append(ContentLayerChromiumWithUpdateTracking::create(&m_client)); + } + + virtual PassOwnPtr<WebKit::WebCompositorOutputSurface> createOutputSurface() + { + return FakeWebCompositorOutputSurface::create(CompositorFakeWebGraphicsContext3DWithEndQueryCausingLostContext::create(WebGraphicsContext3D::Attributes())); + } + + virtual void beginTest() + { + m_layerTreeHost->setRootLayer(m_parent); + m_layerTreeHost->setViewportSize(IntSize(m_numChildren, 1), IntSize(m_numChildren, 1)); + + WebTransformationMatrix identityMatrix; + setLayerPropertiesForTesting(m_parent.get(), 0, identityMatrix, FloatPoint(0, 0), FloatPoint(0, 0), IntSize(m_numChildren, 1), true); + for (int i = 0; i < m_numChildren; i++) + setLayerPropertiesForTesting(m_children[i].get(), m_parent.get(), identityMatrix, FloatPoint(0, 0), FloatPoint(i, 0), IntSize(1, 1), false); + + postSetNeedsCommitToMainThread(); + } + + virtual void commitCompleteOnCCThread(CCLayerTreeHostImpl* impl) + { + endTest(); + } + + virtual void layout() + { + m_parent->setNeedsDisplay(); + for (int i = 0; i < m_numChildren; i++) + m_children[i]->setNeedsDisplay(); + } + + virtual void afterTest() + { + } + +private: + MockContentLayerChromiumClient m_client; + RefPtr<ContentLayerChromiumWithUpdateTracking> m_parent; + int m_numChildren; + Vector<RefPtr<ContentLayerChromiumWithUpdateTracking> > m_children; +}; + +TEST_F(CCLayerTreeHostTestLostContextWhileUpdatingResources, runMultiThread) +{ + runTest(true); +} + +class CCLayerTreeHostTestContinuousCommit : public CCLayerTreeHostTest { +public: + CCLayerTreeHostTestContinuousCommit() + : m_numCommitComplete(0) + , m_numDrawLayers(0) + { + } + + virtual void beginTest() OVERRIDE + { + m_layerTreeHost->setViewportSize(IntSize(10, 10), IntSize(10, 10)); + m_layerTreeHost->rootLayer()->setBounds(IntSize(10, 10)); + + postSetNeedsCommitToMainThread(); + } + + virtual void didCommit() OVERRIDE + { + postSetNeedsCommitToMainThread(); + } + + virtual void commitCompleteOnCCThread(CCLayerTreeHostImpl*) OVERRIDE + { + if (m_numDrawLayers == 1) + m_numCommitComplete++; + } + + virtual void drawLayersOnCCThread(CCLayerTreeHostImpl* impl) OVERRIDE + { + m_numDrawLayers++; + if (m_numDrawLayers == 2) + endTest(); + } + + virtual void afterTest() OVERRIDE + { + // Check that we didn't commit twice between first and second draw. + EXPECT_EQ(1, m_numCommitComplete); + } + +private: + int m_numCommitComplete; + int m_numDrawLayers; +}; + +TEST_F(CCLayerTreeHostTestContinuousCommit, runMultiThread) +{ + runTest(true); +} + +class CCLayerTreeHostTestContinuousInvalidate : public CCLayerTreeHostTest { +public: + CCLayerTreeHostTestContinuousInvalidate() + : m_numCommitComplete(0) + , m_numDrawLayers(0) + { + } + + virtual void beginTest() OVERRIDE + { + m_layerTreeHost->setViewportSize(IntSize(10, 10), IntSize(10, 10)); + m_layerTreeHost->rootLayer()->setBounds(IntSize(10, 10)); + + m_contentLayer = ContentLayerChromium::create(&m_mockDelegate); + m_contentLayer->setBounds(IntSize(10, 10)); + m_contentLayer->setPosition(FloatPoint(0, 0)); + m_contentLayer->setAnchorPoint(FloatPoint(0, 0)); + m_contentLayer->setIsDrawable(true); + m_layerTreeHost->rootLayer()->addChild(m_contentLayer); + + postSetNeedsCommitToMainThread(); + } + + virtual void didCommit() OVERRIDE + { + m_contentLayer->setNeedsDisplay(); + } + + virtual void commitCompleteOnCCThread(CCLayerTreeHostImpl*) OVERRIDE + { + if (m_numDrawLayers == 1) + m_numCommitComplete++; + } + + virtual void drawLayersOnCCThread(CCLayerTreeHostImpl* impl) OVERRIDE + { + m_numDrawLayers++; + if (m_numDrawLayers == 2) + endTest(); + } + + virtual void afterTest() OVERRIDE + { + // Check that we didn't commit twice between first and second draw. + EXPECT_EQ(1, m_numCommitComplete); + + // Clear layer references so CCLayerTreeHost dies. + m_contentLayer.clear(); + } + +private: + MockContentLayerChromiumClient m_mockDelegate; + RefPtr<LayerChromium> m_contentLayer; + int m_numCommitComplete; + int m_numDrawLayers; +}; + +TEST_F(CCLayerTreeHostTestContinuousInvalidate, runMultiThread) +{ + runTest(true); +} + +class CCLayerTreeHostTestContinuousAnimate : public CCLayerTreeHostTest { +public: + CCLayerTreeHostTestContinuousAnimate() + : m_numCommitComplete(0) + , m_numDrawLayers(0) + { + } + + virtual void beginTest() OVERRIDE + { + m_layerTreeHost->setViewportSize(IntSize(10, 10), IntSize(10, 10)); + m_layerTreeHost->rootLayer()->setBounds(IntSize(10, 10)); + + postSetNeedsCommitToMainThread(); + } + + virtual void animate(double) OVERRIDE + { + m_layerTreeHost->setNeedsAnimate(); + } + + virtual void layout() OVERRIDE + { + m_layerTreeHost->rootLayer()->setNeedsDisplay(); + } + + virtual void commitCompleteOnCCThread(CCLayerTreeHostImpl*) OVERRIDE + { + if (m_numDrawLayers == 1) + m_numCommitComplete++; + } + + virtual void drawLayersOnCCThread(CCLayerTreeHostImpl* impl) OVERRIDE + { + m_numDrawLayers++; + if (m_numDrawLayers == 2) + endTest(); + } + + virtual void afterTest() OVERRIDE + { + // Check that we didn't commit twice between first and second draw. + EXPECT_EQ(1, m_numCommitComplete); + } + +private: + int m_numCommitComplete; + int m_numDrawLayers; +}; + +TEST_F(CCLayerTreeHostTestContinuousAnimate, runMultiThread) +{ + runTest(true); +} + } // namespace diff --git a/Source/WebKit/chromium/tests/CCMathUtilTest.cpp b/Source/WebKit/chromium/tests/CCMathUtilTest.cpp index 416e1b56d..553f7a647 100644 --- a/Source/WebKit/chromium/tests/CCMathUtilTest.cpp +++ b/Source/WebKit/chromium/tests/CCMathUtilTest.cpp @@ -26,7 +26,7 @@ #include "CCMathUtil.h" -#include "CCLayerTreeTestCommon.h" +#include "CCGeometryTestUtils.h" #include "FloatRect.h" #include <gmock/gmock.h> #include <gtest/gtest.h> diff --git a/Source/WebKit/chromium/tests/CCOcclusionTrackerTest.cpp b/Source/WebKit/chromium/tests/CCOcclusionTrackerTest.cpp index 4e5f9dc88..560784ba3 100644 --- a/Source/WebKit/chromium/tests/CCOcclusionTrackerTest.cpp +++ b/Source/WebKit/chromium/tests/CCOcclusionTrackerTest.cpp @@ -27,10 +27,10 @@ #include "CCOcclusionTracker.h" #include "CCAnimationTestCommon.h" +#include "CCGeometryTestUtils.h" #include "CCLayerAnimationController.h" #include "CCLayerImpl.h" #include "CCLayerTreeHostCommon.h" -#include "CCLayerTreeTestCommon.h" #include "CCMathUtil.h" #include "CCOcclusionTrackerTestCommon.h" #include "CCOverdrawMetrics.h" @@ -446,9 +446,9 @@ protected: this->visitLayer(layer, occlusion); this->enterLayer(parent, occlusion); - EXPECT_INT_RECT_EQ(IntRect(30, 30, 70, 70), occlusion.occlusionInScreenSpace().bounds()); + EXPECT_RECT_EQ(IntRect(30, 30, 70, 70), occlusion.occlusionInScreenSpace().bounds()); EXPECT_EQ(1u, occlusion.occlusionInScreenSpace().rects().size()); - EXPECT_INT_RECT_EQ(IntRect(30, 30, 70, 70), occlusion.occlusionInTargetSurface().bounds()); + EXPECT_RECT_EQ(IntRect(30, 30, 70, 70), occlusion.occlusionInTargetSurface().bounds()); EXPECT_EQ(1u, occlusion.occlusionInTargetSurface().rects().size()); EXPECT_TRUE(occlusion.occluded(parent, IntRect(30, 30, 70, 70))); @@ -466,14 +466,14 @@ protected: occlusion.setLayerClipRect(IntRect(0, 0, 1000, 1000)); EXPECT_TRUE(occlusion.unoccludedContentRect(parent, IntRect(30, 30, 70, 70)).isEmpty()); - EXPECT_INT_RECT_EQ(IntRect(29, 30, 1, 70), occlusion.unoccludedContentRect(parent, IntRect(29, 30, 70, 70))); - EXPECT_INT_RECT_EQ(IntRect(29, 29, 70, 70), occlusion.unoccludedContentRect(parent, IntRect(29, 29, 70, 70))); - EXPECT_INT_RECT_EQ(IntRect(30, 29, 70, 1), occlusion.unoccludedContentRect(parent, IntRect(30, 29, 70, 70))); - EXPECT_INT_RECT_EQ(IntRect(31, 29, 70, 70), occlusion.unoccludedContentRect(parent, IntRect(31, 29, 70, 70))); - EXPECT_INT_RECT_EQ(IntRect(100, 30, 1, 70), occlusion.unoccludedContentRect(parent, IntRect(31, 30, 70, 70))); - EXPECT_INT_RECT_EQ(IntRect(31, 31, 70, 70), occlusion.unoccludedContentRect(parent, IntRect(31, 31, 70, 70))); - EXPECT_INT_RECT_EQ(IntRect(30, 100, 70, 1), occlusion.unoccludedContentRect(parent, IntRect(30, 31, 70, 70))); - EXPECT_INT_RECT_EQ(IntRect(29, 31, 70, 70), occlusion.unoccludedContentRect(parent, IntRect(29, 31, 70, 70))); + EXPECT_RECT_EQ(IntRect(29, 30, 1, 70), occlusion.unoccludedContentRect(parent, IntRect(29, 30, 70, 70))); + EXPECT_RECT_EQ(IntRect(29, 29, 70, 70), occlusion.unoccludedContentRect(parent, IntRect(29, 29, 70, 70))); + EXPECT_RECT_EQ(IntRect(30, 29, 70, 1), occlusion.unoccludedContentRect(parent, IntRect(30, 29, 70, 70))); + EXPECT_RECT_EQ(IntRect(31, 29, 70, 70), occlusion.unoccludedContentRect(parent, IntRect(31, 29, 70, 70))); + EXPECT_RECT_EQ(IntRect(100, 30, 1, 70), occlusion.unoccludedContentRect(parent, IntRect(31, 30, 70, 70))); + EXPECT_RECT_EQ(IntRect(31, 31, 70, 70), occlusion.unoccludedContentRect(parent, IntRect(31, 31, 70, 70))); + EXPECT_RECT_EQ(IntRect(30, 100, 70, 1), occlusion.unoccludedContentRect(parent, IntRect(30, 31, 70, 70))); + EXPECT_RECT_EQ(IntRect(29, 31, 70, 70), occlusion.unoccludedContentRect(parent, IntRect(29, 31, 70, 70))); } }; @@ -499,9 +499,9 @@ protected: this->visitLayer(layer, occlusion); this->enterLayer(parent, occlusion); - EXPECT_INT_RECT_EQ(IntRect(30, 30, 70, 70), occlusion.occlusionInScreenSpace().bounds()); + EXPECT_RECT_EQ(IntRect(30, 30, 70, 70), occlusion.occlusionInScreenSpace().bounds()); EXPECT_EQ(1u, occlusion.occlusionInScreenSpace().rects().size()); - EXPECT_INT_RECT_EQ(IntRect(30, 30, 70, 70), occlusion.occlusionInTargetSurface().bounds()); + EXPECT_RECT_EQ(IntRect(30, 30, 70, 70), occlusion.occlusionInTargetSurface().bounds()); EXPECT_EQ(1u, occlusion.occlusionInTargetSurface().rects().size()); EXPECT_TRUE(occlusion.occluded(parent, IntRect(30, 30, 70, 70))); @@ -519,14 +519,14 @@ protected: occlusion.setLayerClipRect(IntRect(0, 0, 1000, 1000)); EXPECT_TRUE(occlusion.unoccludedContentRect(parent, IntRect(30, 30, 70, 70)).isEmpty()); - EXPECT_INT_RECT_EQ(IntRect(29, 30, 1, 70), occlusion.unoccludedContentRect(parent, IntRect(29, 30, 70, 70))); - EXPECT_INT_RECT_EQ(IntRect(29, 29, 70, 70), occlusion.unoccludedContentRect(parent, IntRect(29, 29, 70, 70))); - EXPECT_INT_RECT_EQ(IntRect(30, 29, 70, 1), occlusion.unoccludedContentRect(parent, IntRect(30, 29, 70, 70))); - EXPECT_INT_RECT_EQ(IntRect(31, 29, 70, 70), occlusion.unoccludedContentRect(parent, IntRect(31, 29, 70, 70))); - EXPECT_INT_RECT_EQ(IntRect(100, 30, 1, 70), occlusion.unoccludedContentRect(parent, IntRect(31, 30, 70, 70))); - EXPECT_INT_RECT_EQ(IntRect(31, 31, 70, 70), occlusion.unoccludedContentRect(parent, IntRect(31, 31, 70, 70))); - EXPECT_INT_RECT_EQ(IntRect(30, 100, 70, 1), occlusion.unoccludedContentRect(parent, IntRect(30, 31, 70, 70))); - EXPECT_INT_RECT_EQ(IntRect(29, 31, 70, 70), occlusion.unoccludedContentRect(parent, IntRect(29, 31, 70, 70))); + EXPECT_RECT_EQ(IntRect(29, 30, 1, 70), occlusion.unoccludedContentRect(parent, IntRect(29, 30, 70, 70))); + EXPECT_RECT_EQ(IntRect(29, 29, 70, 70), occlusion.unoccludedContentRect(parent, IntRect(29, 29, 70, 70))); + EXPECT_RECT_EQ(IntRect(30, 29, 70, 1), occlusion.unoccludedContentRect(parent, IntRect(30, 29, 70, 70))); + EXPECT_RECT_EQ(IntRect(31, 29, 70, 70), occlusion.unoccludedContentRect(parent, IntRect(31, 29, 70, 70))); + EXPECT_RECT_EQ(IntRect(100, 30, 1, 70), occlusion.unoccludedContentRect(parent, IntRect(31, 30, 70, 70))); + EXPECT_RECT_EQ(IntRect(31, 31, 70, 70), occlusion.unoccludedContentRect(parent, IntRect(31, 31, 70, 70))); + EXPECT_RECT_EQ(IntRect(30, 100, 70, 1), occlusion.unoccludedContentRect(parent, IntRect(30, 31, 70, 70))); + EXPECT_RECT_EQ(IntRect(29, 31, 70, 70), occlusion.unoccludedContentRect(parent, IntRect(29, 31, 70, 70))); } }; @@ -550,9 +550,9 @@ protected: this->visitLayer(layer, occlusion); this->enterLayer(parent, occlusion); - EXPECT_INT_RECT_EQ(IntRect(50, 50, 50, 50), occlusion.occlusionInScreenSpace().bounds()); + EXPECT_RECT_EQ(IntRect(50, 50, 50, 50), occlusion.occlusionInScreenSpace().bounds()); EXPECT_EQ(1u, occlusion.occlusionInScreenSpace().rects().size()); - EXPECT_INT_RECT_EQ(IntRect(50, 50, 50, 50), occlusion.occlusionInTargetSurface().bounds()); + EXPECT_RECT_EQ(IntRect(50, 50, 50, 50), occlusion.occlusionInTargetSurface().bounds()); EXPECT_EQ(1u, occlusion.occlusionInTargetSurface().rects().size()); EXPECT_TRUE(occlusion.occluded(parent, IntRect(50, 50, 50, 50))); @@ -570,25 +570,25 @@ protected: occlusion.setLayerClipRect(IntRect(0, 0, 1000, 1000)); EXPECT_TRUE(occlusion.unoccludedContentRect(parent, IntRect(50, 50, 50, 50)).isEmpty()); - EXPECT_INT_RECT_EQ(IntRect(49, 50, 1, 50), occlusion.unoccludedContentRect(parent, IntRect(49, 50, 50, 50))); - EXPECT_INT_RECT_EQ(IntRect(49, 49, 50, 50), occlusion.unoccludedContentRect(parent, IntRect(49, 49, 50, 50))); - EXPECT_INT_RECT_EQ(IntRect(50, 49, 50, 1), occlusion.unoccludedContentRect(parent, IntRect(50, 49, 50, 50))); - EXPECT_INT_RECT_EQ(IntRect(51, 49, 50, 50), occlusion.unoccludedContentRect(parent, IntRect(51, 49, 50, 50))); - EXPECT_INT_RECT_EQ(IntRect(100, 50, 1, 50), occlusion.unoccludedContentRect(parent, IntRect(51, 50, 50, 50))); - EXPECT_INT_RECT_EQ(IntRect(51, 51, 50, 50), occlusion.unoccludedContentRect(parent, IntRect(51, 51, 50, 50))); - EXPECT_INT_RECT_EQ(IntRect(50, 100, 50, 1), occlusion.unoccludedContentRect(parent, IntRect(50, 51, 50, 50))); - EXPECT_INT_RECT_EQ(IntRect(49, 51, 50, 50), occlusion.unoccludedContentRect(parent, IntRect(49, 51, 50, 50))); + EXPECT_RECT_EQ(IntRect(49, 50, 1, 50), occlusion.unoccludedContentRect(parent, IntRect(49, 50, 50, 50))); + EXPECT_RECT_EQ(IntRect(49, 49, 50, 50), occlusion.unoccludedContentRect(parent, IntRect(49, 49, 50, 50))); + EXPECT_RECT_EQ(IntRect(50, 49, 50, 1), occlusion.unoccludedContentRect(parent, IntRect(50, 49, 50, 50))); + EXPECT_RECT_EQ(IntRect(51, 49, 50, 50), occlusion.unoccludedContentRect(parent, IntRect(51, 49, 50, 50))); + EXPECT_RECT_EQ(IntRect(100, 50, 1, 50), occlusion.unoccludedContentRect(parent, IntRect(51, 50, 50, 50))); + EXPECT_RECT_EQ(IntRect(51, 51, 50, 50), occlusion.unoccludedContentRect(parent, IntRect(51, 51, 50, 50))); + EXPECT_RECT_EQ(IntRect(50, 100, 50, 1), occlusion.unoccludedContentRect(parent, IntRect(50, 51, 50, 50))); + EXPECT_RECT_EQ(IntRect(49, 51, 50, 50), occlusion.unoccludedContentRect(parent, IntRect(49, 51, 50, 50))); occlusion.useDefaultLayerClipRect(); EXPECT_TRUE(occlusion.unoccludedContentRect(parent, IntRect(50, 50, 50, 50)).isEmpty()); - EXPECT_INT_RECT_EQ(IntRect(49, 50, 1, 50), occlusion.unoccludedContentRect(parent, IntRect(49, 50, 50, 50))); - EXPECT_INT_RECT_EQ(IntRect(49, 49, 50, 50), occlusion.unoccludedContentRect(parent, IntRect(49, 49, 50, 50))); - EXPECT_INT_RECT_EQ(IntRect(50, 49, 50, 1), occlusion.unoccludedContentRect(parent, IntRect(50, 49, 50, 50))); - EXPECT_INT_RECT_EQ(IntRect(51, 49, 49, 1), occlusion.unoccludedContentRect(parent, IntRect(51, 49, 50, 50))); + EXPECT_RECT_EQ(IntRect(49, 50, 1, 50), occlusion.unoccludedContentRect(parent, IntRect(49, 50, 50, 50))); + EXPECT_RECT_EQ(IntRect(49, 49, 50, 50), occlusion.unoccludedContentRect(parent, IntRect(49, 49, 50, 50))); + EXPECT_RECT_EQ(IntRect(50, 49, 50, 1), occlusion.unoccludedContentRect(parent, IntRect(50, 49, 50, 50))); + EXPECT_RECT_EQ(IntRect(51, 49, 49, 1), occlusion.unoccludedContentRect(parent, IntRect(51, 49, 50, 50))); EXPECT_TRUE(occlusion.unoccludedContentRect(parent, IntRect(51, 50, 50, 50)).isEmpty()); EXPECT_TRUE(occlusion.unoccludedContentRect(parent, IntRect(51, 51, 50, 50)).isEmpty()); EXPECT_TRUE(occlusion.unoccludedContentRect(parent, IntRect(50, 51, 50, 50)).isEmpty()); - EXPECT_INT_RECT_EQ(IntRect(49, 51, 1, 49), occlusion.unoccludedContentRect(parent, IntRect(49, 51, 50, 50))); + EXPECT_RECT_EQ(IntRect(49, 51, 1, 49), occlusion.unoccludedContentRect(parent, IntRect(49, 51, 50, 50))); occlusion.setLayerClipRect(IntRect(0, 0, 1000, 1000)); } }; @@ -606,6 +606,7 @@ protected: childTransform.translate(-250, -250); typename Types::ContentLayerType* parent = this->createRoot(this->identityMatrix, FloatPoint(0, 0), IntSize(100, 100)); + parent->setMasksToBounds(true); typename Types::LayerType* child = this->createLayer(parent, childTransform, FloatPoint(30, 30), IntSize(500, 500)); child->setMasksToBounds(true); typename Types::ContentLayerType* layer = this->createDrawingLayer(child, this->identityMatrix, FloatPoint(10, 10), IntSize(500, 500), true); @@ -617,17 +618,17 @@ protected: this->visitLayer(layer, occlusion); this->enterContributingSurface(child, occlusion); - EXPECT_INT_RECT_EQ(IntRect(30, 40, 70, 60), occlusion.occlusionInScreenSpace().bounds()); + EXPECT_RECT_EQ(IntRect(30, 40, 70, 60), occlusion.occlusionInScreenSpace().bounds()); EXPECT_EQ(1u, occlusion.occlusionInScreenSpace().rects().size()); - EXPECT_INT_RECT_EQ(IntRect(10, 430, 60, 70), occlusion.occlusionInTargetSurface().bounds()); + EXPECT_RECT_EQ(IntRect(10, 430, 60, 70), occlusion.occlusionInTargetSurface().bounds()); EXPECT_EQ(1u, occlusion.occlusionInTargetSurface().rects().size()); this->leaveContributingSurface(child, occlusion); this->enterLayer(parent, occlusion); - EXPECT_INT_RECT_EQ(IntRect(30, 40, 70, 60), occlusion.occlusionInScreenSpace().bounds()); + EXPECT_RECT_EQ(IntRect(30, 40, 70, 60), occlusion.occlusionInScreenSpace().bounds()); EXPECT_EQ(1u, occlusion.occlusionInScreenSpace().rects().size()); - EXPECT_INT_RECT_EQ(IntRect(30, 40, 70, 60), occlusion.occlusionInTargetSurface().bounds()); + EXPECT_RECT_EQ(IntRect(30, 40, 70, 60), occlusion.occlusionInTargetSurface().bounds()); EXPECT_EQ(1u, occlusion.occlusionInTargetSurface().rects().size()); EXPECT_TRUE(occlusion.occluded(parent, IntRect(30, 40, 70, 60))); @@ -685,6 +686,7 @@ protected: childTransform.translate(-250, -250); typename Types::ContentLayerType* parent = this->createRoot(this->identityMatrix, FloatPoint(0, 0), IntSize(100, 100)); + parent->setMasksToBounds(true); typename Types::LayerType* child = this->createLayer(parent, childTransform, FloatPoint(30, 30), IntSize(500, 500)); child->setMasksToBounds(true); typename Types::ContentLayerType* layer = this->createDrawingLayer(child, this->identityMatrix, FloatPoint(10, 10), IntSize(500, 500), true); @@ -698,36 +700,36 @@ protected: this->visitLayer(child2, occlusion); - EXPECT_INT_RECT_EQ(IntRect(30, 30, 60, 20), occlusion.occlusionInScreenSpace().bounds()); + EXPECT_RECT_EQ(IntRect(30, 30, 60, 20), occlusion.occlusionInScreenSpace().bounds()); EXPECT_EQ(1u, occlusion.occlusionInScreenSpace().rects().size()); - EXPECT_INT_RECT_EQ(IntRect(30, 30, 60, 20), occlusion.occlusionInTargetSurface().bounds()); + EXPECT_RECT_EQ(IntRect(30, 30, 60, 20), occlusion.occlusionInTargetSurface().bounds()); EXPECT_EQ(1u, occlusion.occlusionInTargetSurface().rects().size()); this->visitLayer(layer, occlusion); - EXPECT_INT_RECT_EQ(IntRect(30, 30, 70, 70), occlusion.occlusionInScreenSpace().bounds()); + EXPECT_RECT_EQ(IntRect(30, 30, 70, 70), occlusion.occlusionInScreenSpace().bounds()); EXPECT_EQ(2u, occlusion.occlusionInScreenSpace().rects().size()); - EXPECT_INT_RECT_EQ(IntRect(10, 430, 60, 70), occlusion.occlusionInTargetSurface().bounds()); + EXPECT_RECT_EQ(IntRect(10, 430, 60, 70), occlusion.occlusionInTargetSurface().bounds()); EXPECT_EQ(1u, occlusion.occlusionInTargetSurface().rects().size()); this->enterContributingSurface(child, occlusion); - EXPECT_INT_RECT_EQ(IntRect(30, 30, 70, 70), occlusion.occlusionInScreenSpace().bounds()); + EXPECT_RECT_EQ(IntRect(30, 30, 70, 70), occlusion.occlusionInScreenSpace().bounds()); EXPECT_EQ(2u, occlusion.occlusionInScreenSpace().rects().size()); - EXPECT_INT_RECT_EQ(IntRect(10, 430, 60, 70), occlusion.occlusionInTargetSurface().bounds()); + EXPECT_RECT_EQ(IntRect(10, 430, 60, 70), occlusion.occlusionInTargetSurface().bounds()); EXPECT_EQ(1u, occlusion.occlusionInTargetSurface().rects().size()); // Occlusion in |child2| should get merged with the |child| surface we are leaving now. this->leaveContributingSurface(child, occlusion); this->enterLayer(parent, occlusion); - EXPECT_INT_RECT_EQ(IntRect(30, 30, 70, 70), occlusion.occlusionInScreenSpace().bounds()); + EXPECT_RECT_EQ(IntRect(30, 30, 70, 70), occlusion.occlusionInScreenSpace().bounds()); EXPECT_EQ(2u, occlusion.occlusionInScreenSpace().rects().size()); - EXPECT_INT_RECT_EQ(IntRect(30, 30, 70, 70), occlusion.occlusionInTargetSurface().bounds()); + EXPECT_RECT_EQ(IntRect(30, 30, 70, 70), occlusion.occlusionInTargetSurface().bounds()); EXPECT_EQ(2u, occlusion.occlusionInTargetSurface().rects().size()); EXPECT_FALSE(occlusion.occluded(parent, IntRect(30, 30, 70, 70))); - EXPECT_INT_RECT_EQ(IntRect(90, 30, 10, 10), occlusion.unoccludedContentRect(parent, IntRect(30, 30, 70, 70))); + EXPECT_RECT_EQ(IntRect(90, 30, 10, 10), occlusion.unoccludedContentRect(parent, IntRect(30, 30, 70, 70))); EXPECT_TRUE(occlusion.occluded(parent, IntRect(30, 30, 60, 10))); EXPECT_FALSE(occlusion.occluded(parent, IntRect(29, 30, 60, 10))); @@ -740,21 +742,21 @@ protected: EXPECT_FALSE(occlusion.occluded(parent, IntRect(30, 39, 70, 60))); EXPECT_TRUE(occlusion.unoccludedContentRect(parent, IntRect(30, 30, 60, 10)).isEmpty()); - EXPECT_INT_RECT_EQ(IntRect(29, 30, 1, 10), occlusion.unoccludedContentRect(parent, IntRect(29, 30, 60, 10))); - EXPECT_INT_RECT_EQ(IntRect(30, 29, 60, 1), occlusion.unoccludedContentRect(parent, IntRect(30, 29, 60, 10))); - EXPECT_INT_RECT_EQ(IntRect(90, 30, 1, 10), occlusion.unoccludedContentRect(parent, IntRect(31, 30, 60, 10))); + EXPECT_RECT_EQ(IntRect(29, 30, 1, 10), occlusion.unoccludedContentRect(parent, IntRect(29, 30, 60, 10))); + EXPECT_RECT_EQ(IntRect(30, 29, 60, 1), occlusion.unoccludedContentRect(parent, IntRect(30, 29, 60, 10))); + EXPECT_RECT_EQ(IntRect(90, 30, 1, 10), occlusion.unoccludedContentRect(parent, IntRect(31, 30, 60, 10))); EXPECT_TRUE(occlusion.unoccludedContentRect(parent, IntRect(30, 31, 60, 10)).isEmpty()); EXPECT_TRUE(occlusion.unoccludedContentRect(parent, IntRect(30, 40, 70, 60)).isEmpty()); - EXPECT_INT_RECT_EQ(IntRect(29, 40, 1, 60), occlusion.unoccludedContentRect(parent, IntRect(29, 40, 70, 60))); + EXPECT_RECT_EQ(IntRect(29, 40, 1, 60), occlusion.unoccludedContentRect(parent, IntRect(29, 40, 70, 60))); // This rect is mostly occluded by |child2|. - EXPECT_INT_RECT_EQ(IntRect(90, 39, 10, 1), occlusion.unoccludedContentRect(parent, IntRect(30, 39, 70, 60))); + EXPECT_RECT_EQ(IntRect(90, 39, 10, 1), occlusion.unoccludedContentRect(parent, IntRect(30, 39, 70, 60))); // This rect extends past top/right ends of |child2|. - EXPECT_INT_RECT_EQ(IntRect(30, 29, 70, 11), occlusion.unoccludedContentRect(parent, IntRect(30, 29, 70, 70))); + EXPECT_RECT_EQ(IntRect(30, 29, 70, 11), occlusion.unoccludedContentRect(parent, IntRect(30, 29, 70, 70))); // This rect extends past left/right ends of |child2|. - EXPECT_INT_RECT_EQ(IntRect(20, 39, 80, 60), occlusion.unoccludedContentRect(parent, IntRect(20, 39, 80, 60))); - EXPECT_INT_RECT_EQ(IntRect(100, 40, 1, 60), occlusion.unoccludedContentRect(parent, IntRect(31, 40, 70, 60))); - EXPECT_INT_RECT_EQ(IntRect(30, 100, 70, 1), occlusion.unoccludedContentRect(parent, IntRect(30, 41, 70, 60))); + EXPECT_RECT_EQ(IntRect(20, 39, 80, 60), occlusion.unoccludedContentRect(parent, IntRect(20, 39, 80, 60))); + EXPECT_RECT_EQ(IntRect(100, 40, 1, 60), occlusion.unoccludedContentRect(parent, IntRect(31, 40, 70, 60))); + EXPECT_RECT_EQ(IntRect(30, 100, 70, 1), occlusion.unoccludedContentRect(parent, IntRect(30, 41, 70, 60))); /* Justification for the above occlusion from |layer|: 100 @@ -812,9 +814,9 @@ protected: this->visitLayer(layer, occlusion); this->enterContributingSurface(child, occlusion); - EXPECT_INT_RECT_EQ(IntRect(), occlusion.occlusionInScreenSpace().bounds()); + EXPECT_RECT_EQ(IntRect(), occlusion.occlusionInScreenSpace().bounds()); EXPECT_EQ(0u, occlusion.occlusionInScreenSpace().rects().size()); - EXPECT_INT_RECT_EQ(clippedLayerInChild, occlusion.occlusionInTargetSurface().bounds()); + EXPECT_RECT_EQ(clippedLayerInChild, occlusion.occlusionInTargetSurface().bounds()); EXPECT_EQ(1u, occlusion.occlusionInTargetSurface().rects().size()); EXPECT_TRUE(occlusion.occluded(child, clippedLayerInChild)); @@ -839,13 +841,13 @@ protected: this->leaveContributingSurface(child, occlusion); this->enterLayer(parent, occlusion); - EXPECT_INT_RECT_EQ(IntRect(), occlusion.occlusionInScreenSpace().bounds()); + EXPECT_RECT_EQ(IntRect(), occlusion.occlusionInScreenSpace().bounds()); EXPECT_EQ(0u, occlusion.occlusionInScreenSpace().rects().size()); - EXPECT_INT_RECT_EQ(IntRect(), occlusion.occlusionInTargetSurface().bounds()); + EXPECT_RECT_EQ(IntRect(), occlusion.occlusionInTargetSurface().bounds()); EXPECT_EQ(0u, occlusion.occlusionInTargetSurface().rects().size()); EXPECT_FALSE(occlusion.occluded(parent, IntRect(75, 55, 1, 1))); - EXPECT_INT_RECT_EQ(IntRect(75, 55, 1, 1), occlusion.unoccludedContentRect(parent, IntRect(75, 55, 1, 1))); + EXPECT_RECT_EQ(IntRect(75, 55, 1, 1), occlusion.unoccludedContentRect(parent, IntRect(75, 55, 1, 1))); } }; @@ -862,6 +864,7 @@ protected: childTransform.translate(-250, -250); typename Types::ContentLayerType* parent = this->createRoot(this->identityMatrix, FloatPoint(0, 0), IntSize(100, 100)); + parent->setMasksToBounds(true); typename Types::LayerType* child = this->createLayer(parent, childTransform, FloatPoint(30, 30), IntSize(500, 500)); child->setMasksToBounds(true); typename Types::ContentLayerType* layer1 = this->createDrawingLayer(child, this->identityMatrix, FloatPoint(10, 10), IntSize(500, 500), true); @@ -875,9 +878,9 @@ protected: this->visitLayer(layer1, occlusion); this->enterContributingSurface(child, occlusion); - EXPECT_INT_RECT_EQ(IntRect(30, 40, 70, 60), occlusion.occlusionInScreenSpace().bounds()); + EXPECT_RECT_EQ(IntRect(30, 40, 70, 60), occlusion.occlusionInScreenSpace().bounds()); EXPECT_EQ(1u, occlusion.occlusionInScreenSpace().rects().size()); - EXPECT_INT_RECT_EQ(IntRect(10, 430, 60, 70), occlusion.occlusionInTargetSurface().bounds()); + EXPECT_RECT_EQ(IntRect(10, 430, 60, 70), occlusion.occlusionInTargetSurface().bounds()); EXPECT_EQ(1u, occlusion.occlusionInTargetSurface().rects().size()); EXPECT_TRUE(occlusion.occluded(child, IntRect(10, 430, 60, 70))); @@ -887,17 +890,17 @@ protected: EXPECT_FALSE(occlusion.occluded(child, IntRect(10, 431, 60, 70))); EXPECT_TRUE(occlusion.unoccludedContentRect(child, IntRect(10, 430, 60, 70)).isEmpty()); - EXPECT_INT_RECT_EQ(IntRect(9, 430, 1, 70), occlusion.unoccludedContentRect(child, IntRect(9, 430, 60, 70))); - EXPECT_INT_RECT_EQ(IntRect(10, 429, 60, 1), occlusion.unoccludedContentRect(child, IntRect(10, 429, 60, 70))); - EXPECT_INT_RECT_EQ(IntRect(70, 430, 1, 70), occlusion.unoccludedContentRect(child, IntRect(11, 430, 60, 70))); - EXPECT_INT_RECT_EQ(IntRect(10, 500, 60, 1), occlusion.unoccludedContentRect(child, IntRect(10, 431, 60, 70))); + EXPECT_RECT_EQ(IntRect(9, 430, 1, 70), occlusion.unoccludedContentRect(child, IntRect(9, 430, 60, 70))); + EXPECT_RECT_EQ(IntRect(10, 429, 60, 1), occlusion.unoccludedContentRect(child, IntRect(10, 429, 60, 70))); + EXPECT_RECT_EQ(IntRect(70, 430, 1, 70), occlusion.unoccludedContentRect(child, IntRect(11, 430, 60, 70))); + EXPECT_RECT_EQ(IntRect(10, 500, 60, 1), occlusion.unoccludedContentRect(child, IntRect(10, 431, 60, 70))); this->leaveContributingSurface(child, occlusion); this->enterLayer(parent, occlusion); - EXPECT_INT_RECT_EQ(IntRect(30, 40, 70, 60), occlusion.occlusionInScreenSpace().bounds()); + EXPECT_RECT_EQ(IntRect(30, 40, 70, 60), occlusion.occlusionInScreenSpace().bounds()); EXPECT_EQ(1u, occlusion.occlusionInScreenSpace().rects().size()); - EXPECT_INT_RECT_EQ(IntRect(30, 40, 70, 60), occlusion.occlusionInTargetSurface().bounds()); + EXPECT_RECT_EQ(IntRect(30, 40, 70, 60), occlusion.occlusionInTargetSurface().bounds()); EXPECT_EQ(1u, occlusion.occlusionInTargetSurface().rects().size()); EXPECT_TRUE(occlusion.occluded(parent, IntRect(30, 40, 70, 60))); @@ -905,10 +908,10 @@ protected: EXPECT_FALSE(occlusion.occluded(parent, IntRect(30, 39, 70, 60))); EXPECT_TRUE(occlusion.unoccludedContentRect(parent, IntRect(30, 40, 70, 60)).isEmpty()); - EXPECT_INT_RECT_EQ(IntRect(29, 40, 1, 60), occlusion.unoccludedContentRect(parent, IntRect(29, 40, 70, 60))); - EXPECT_INT_RECT_EQ(IntRect(30, 39, 70, 1), occlusion.unoccludedContentRect(parent, IntRect(30, 39, 70, 60))); - EXPECT_INT_RECT_EQ(IntRect(100, 40, 1, 60), occlusion.unoccludedContentRect(parent, IntRect(31, 40, 70, 60))); - EXPECT_INT_RECT_EQ(IntRect(30, 100, 70, 1), occlusion.unoccludedContentRect(parent, IntRect(30, 41, 70, 60))); + EXPECT_RECT_EQ(IntRect(29, 40, 1, 60), occlusion.unoccludedContentRect(parent, IntRect(29, 40, 70, 60))); + EXPECT_RECT_EQ(IntRect(30, 39, 70, 1), occlusion.unoccludedContentRect(parent, IntRect(30, 39, 70, 60))); + EXPECT_RECT_EQ(IntRect(100, 40, 1, 60), occlusion.unoccludedContentRect(parent, IntRect(31, 40, 70, 60))); + EXPECT_RECT_EQ(IntRect(30, 100, 70, 1), occlusion.unoccludedContentRect(parent, IntRect(30, 41, 70, 60))); /* Justification for the above occlusion from |layer1| and |layer2|: @@ -950,6 +953,7 @@ protected: childTransform.translate(-250, -250); typename Types::ContentLayerType* parent = this->createRoot(this->identityMatrix, FloatPoint(0, 0), IntSize(100, 100)); + parent->setMasksToBounds(true); typename Types::LayerType* child1 = this->createSurface(parent, childTransform, FloatPoint(30, 30), IntSize(10, 10)); typename Types::LayerType* child2 = this->createSurface(parent, childTransform, FloatPoint(20, 40), IntSize(10, 10)); typename Types::ContentLayerType* layer1 = this->createDrawingLayer(child1, this->identityMatrix, FloatPoint(-10, -10), IntSize(510, 510), true); @@ -962,9 +966,9 @@ protected: this->visitLayer(layer2, occlusion); this->enterContributingSurface(child2, occlusion); - EXPECT_INT_RECT_EQ(IntRect(20, 30, 80, 70), occlusion.occlusionInScreenSpace().bounds()); + EXPECT_RECT_EQ(IntRect(20, 30, 80, 70), occlusion.occlusionInScreenSpace().bounds()); EXPECT_EQ(1u, occlusion.occlusionInScreenSpace().rects().size()); - EXPECT_INT_RECT_EQ(IntRect(-10, 420, 70, 80), occlusion.occlusionInTargetSurface().bounds()); + EXPECT_RECT_EQ(IntRect(-10, 420, 70, 80), occlusion.occlusionInTargetSurface().bounds()); EXPECT_EQ(1u, occlusion.occlusionInTargetSurface().rects().size()); EXPECT_TRUE(occlusion.occluded(child2, IntRect(-10, 420, 70, 80))); @@ -982,15 +986,15 @@ protected: occlusion.setLayerClipRect(IntRect(-20, -20, 1000, 1000)); // There is nothing above child2's surface in the z-order. - EXPECT_INT_RECT_EQ(IntRect(-10, 420, 70, 80), occlusion.unoccludedContributingSurfaceContentRect(child2, false, IntRect(-10, 420, 70, 80))); + EXPECT_RECT_EQ(IntRect(-10, 420, 70, 80), occlusion.unoccludedContributingSurfaceContentRect(child2, false, IntRect(-10, 420, 70, 80))); this->leaveContributingSurface(child2, occlusion); this->visitLayer(layer1, occlusion); this->enterContributingSurface(child1, occlusion); - EXPECT_INT_RECT_EQ(IntRect(20, 20, 80, 80), occlusion.occlusionInScreenSpace().bounds()); + EXPECT_RECT_EQ(IntRect(20, 20, 80, 80), occlusion.occlusionInScreenSpace().bounds()); EXPECT_EQ(2u, occlusion.occlusionInScreenSpace().rects().size()); - EXPECT_INT_RECT_EQ(IntRect(-10, 430, 80, 70), occlusion.occlusionInTargetSurface().bounds()); + EXPECT_RECT_EQ(IntRect(-10, 430, 80, 70), occlusion.occlusionInTargetSurface().bounds()); EXPECT_EQ(1u, occlusion.occlusionInTargetSurface().rects().size()); EXPECT_TRUE(occlusion.occluded(child1, IntRect(-10, 430, 80, 70))); @@ -1000,14 +1004,14 @@ protected: EXPECT_FALSE(occlusion.occluded(child1, IntRect(-10, 430, 80, 71))); // child2's contents will occlude child1 below it. - EXPECT_INT_RECT_EQ(IntRect(-10, 430, 10, 70), occlusion.unoccludedContributingSurfaceContentRect(child1, false, IntRect(-10, 430, 80, 70))); + EXPECT_RECT_EQ(IntRect(-10, 430, 10, 70), occlusion.unoccludedContributingSurfaceContentRect(child1, false, IntRect(-10, 430, 80, 70))); this->leaveContributingSurface(child1, occlusion); this->enterLayer(parent, occlusion); - EXPECT_INT_RECT_EQ(IntRect(20, 20, 80, 80), occlusion.occlusionInScreenSpace().bounds()); + EXPECT_RECT_EQ(IntRect(20, 20, 80, 80), occlusion.occlusionInScreenSpace().bounds()); EXPECT_EQ(2u, occlusion.occlusionInScreenSpace().rects().size()); - EXPECT_INT_RECT_EQ(IntRect(20, 20, 80, 80), occlusion.occlusionInTargetSurface().bounds()); + EXPECT_RECT_EQ(IntRect(20, 20, 80, 80), occlusion.occlusionInTargetSurface().bounds()); EXPECT_EQ(2u, occlusion.occlusionInTargetSurface().rects().size()); EXPECT_FALSE(occlusion.occluded(parent, IntRect(20, 20, 80, 80))); @@ -1064,6 +1068,7 @@ protected: child2Transform.translate(-250, -250); typename Types::ContentLayerType* parent = this->createRoot(this->identityMatrix, FloatPoint(0, 0), IntSize(100, 100)); + parent->setMasksToBounds(true); typename Types::LayerType* child1 = this->createSurface(parent, child1Transform, FloatPoint(30, 20), IntSize(10, 10)); typename Types::LayerType* child2 = this->createDrawingSurface(parent, child2Transform, FloatPoint(20, 40), IntSize(10, 10), false); typename Types::ContentLayerType* layer1 = this->createDrawingLayer(child1, this->identityMatrix, FloatPoint(-10, -20), IntSize(510, 510), true); @@ -1076,9 +1081,9 @@ protected: this->visitLayer(layer2, occlusion); this->enterLayer(child2, occlusion); - EXPECT_INT_RECT_EQ(IntRect(20, 30, 80, 70), occlusion.occlusionInScreenSpace().bounds()); + EXPECT_RECT_EQ(IntRect(20, 30, 80, 70), occlusion.occlusionInScreenSpace().bounds()); EXPECT_EQ(1u, occlusion.occlusionInScreenSpace().rects().size()); - EXPECT_INT_RECT_EQ(IntRect(-10, 420, 70, 80), occlusion.occlusionInTargetSurface().bounds()); + EXPECT_RECT_EQ(IntRect(-10, 420, 70, 80), occlusion.occlusionInTargetSurface().bounds()); EXPECT_EQ(1u, occlusion.occlusionInTargetSurface().rects().size()); EXPECT_TRUE(occlusion.occluded(child2, IntRect(-10, 420, 70, 80))); @@ -1091,15 +1096,15 @@ protected: this->enterContributingSurface(child2, occlusion); // There is nothing above child2's surface in the z-order. - EXPECT_INT_RECT_EQ(IntRect(-10, 420, 70, 80), occlusion.unoccludedContributingSurfaceContentRect(child2, false, IntRect(-10, 420, 70, 80))); + EXPECT_RECT_EQ(IntRect(-10, 420, 70, 80), occlusion.unoccludedContributingSurfaceContentRect(child2, false, IntRect(-10, 420, 70, 80))); this->leaveContributingSurface(child2, occlusion); this->visitLayer(layer1, occlusion); this->enterContributingSurface(child1, occlusion); - EXPECT_INT_RECT_EQ(IntRect(10, 20, 90, 80), occlusion.occlusionInScreenSpace().bounds()); + EXPECT_RECT_EQ(IntRect(10, 20, 90, 80), occlusion.occlusionInScreenSpace().bounds()); EXPECT_EQ(1u, occlusion.occlusionInScreenSpace().rects().size()); - EXPECT_INT_RECT_EQ(IntRect(420, -20, 80, 90), occlusion.occlusionInTargetSurface().bounds()); + EXPECT_RECT_EQ(IntRect(420, -20, 80, 90), occlusion.occlusionInTargetSurface().bounds()); EXPECT_EQ(1u, occlusion.occlusionInTargetSurface().rects().size()); EXPECT_TRUE(occlusion.occluded(child1, IntRect(420, -20, 80, 90))); @@ -1109,16 +1114,16 @@ protected: EXPECT_FALSE(occlusion.occluded(child1, IntRect(421, -20, 80, 90))); // child2's contents will occlude child1 below it. - EXPECT_INT_RECT_EQ(IntRect(420, -20, 80, 90), occlusion.unoccludedContributingSurfaceContentRect(child1, false, IntRect(420, -20, 80, 90))); - EXPECT_INT_RECT_EQ(IntRect(490, -10, 10, 80), occlusion.unoccludedContributingSurfaceContentRect(child1, false, IntRect(420, -10, 80, 90))); - EXPECT_INT_RECT_EQ(IntRect(420, -20, 70, 10), occlusion.unoccludedContributingSurfaceContentRect(child1, false, IntRect(420, -20, 70, 90))); + EXPECT_RECT_EQ(IntRect(420, -20, 80, 90), occlusion.unoccludedContributingSurfaceContentRect(child1, false, IntRect(420, -20, 80, 90))); + EXPECT_RECT_EQ(IntRect(490, -10, 10, 80), occlusion.unoccludedContributingSurfaceContentRect(child1, false, IntRect(420, -10, 80, 90))); + EXPECT_RECT_EQ(IntRect(420, -20, 70, 10), occlusion.unoccludedContributingSurfaceContentRect(child1, false, IntRect(420, -20, 70, 90))); this->leaveContributingSurface(child1, occlusion); this->enterLayer(parent, occlusion); - EXPECT_INT_RECT_EQ(IntRect(10, 20, 90, 80), occlusion.occlusionInScreenSpace().bounds()); + EXPECT_RECT_EQ(IntRect(10, 20, 90, 80), occlusion.occlusionInScreenSpace().bounds()); EXPECT_EQ(1u, occlusion.occlusionInScreenSpace().rects().size()); - EXPECT_INT_RECT_EQ(IntRect(10, 20, 90, 80), occlusion.occlusionInTargetSurface().bounds()); + EXPECT_RECT_EQ(IntRect(10, 20, 90, 80), occlusion.occlusionInTargetSurface().bounds()); EXPECT_EQ(1u, occlusion.occlusionInTargetSurface().rects().size()); EXPECT_TRUE(occlusion.occluded(parent, IntRect(10, 20, 90, 80))); @@ -1166,6 +1171,7 @@ protected: layerTransform.translate(-250, -250); typename Types::ContentLayerType* parent = this->createRoot(this->identityMatrix, FloatPoint(0, 0), IntSize(100, 100)); + parent->setMasksToBounds(true); typename Types::ContentLayerType* blurLayer = this->createDrawingLayer(parent, layerTransform, FloatPoint(30, 30), IntSize(500, 500), true); typename Types::ContentLayerType* opaqueLayer = this->createDrawingLayer(parent, layerTransform, FloatPoint(30, 30), IntSize(500, 500), true); typename Types::ContentLayerType* opacityLayer = this->createDrawingLayer(parent, layerTransform, FloatPoint(30, 30), IntSize(500, 500), true); @@ -1203,16 +1209,16 @@ protected: this->visitLayer(opaqueLayer, occlusion); this->enterContributingSurface(opaqueLayer, occlusion); - EXPECT_INT_RECT_EQ(IntRect(30, 30, 70, 70), occlusion.occlusionInScreenSpace().bounds()); + EXPECT_RECT_EQ(IntRect(30, 30, 70, 70), occlusion.occlusionInScreenSpace().bounds()); EXPECT_EQ(1u, occlusion.occlusionInScreenSpace().rects().size()); - EXPECT_INT_RECT_EQ(IntRect(0, 430, 70, 70), occlusion.occlusionInTargetSurface().bounds()); + EXPECT_RECT_EQ(IntRect(0, 430, 70, 70), occlusion.occlusionInTargetSurface().bounds()); EXPECT_EQ(1u, occlusion.occlusionInTargetSurface().rects().size()); // And it gets translated to the parent surface. this->leaveContributingSurface(opaqueLayer, occlusion); - EXPECT_INT_RECT_EQ(IntRect(30, 30, 70, 70), occlusion.occlusionInScreenSpace().bounds()); + EXPECT_RECT_EQ(IntRect(30, 30, 70, 70), occlusion.occlusionInScreenSpace().bounds()); EXPECT_EQ(1u, occlusion.occlusionInScreenSpace().rects().size()); - EXPECT_INT_RECT_EQ(IntRect(30, 30, 70, 70), occlusion.occlusionInTargetSurface().bounds()); + EXPECT_RECT_EQ(IntRect(30, 30, 70, 70), occlusion.occlusionInTargetSurface().bounds()); EXPECT_EQ(1u, occlusion.occlusionInTargetSurface().rects().size()); // The blur layer needs to throw away any occlusion from outside its subtree. @@ -1229,9 +1235,9 @@ protected: // But the opaque layer's occlusion is preserved on the parent. this->leaveContributingSurface(blurLayer, occlusion); this->enterLayer(parent, occlusion); - EXPECT_INT_RECT_EQ(IntRect(30, 30, 70, 70), occlusion.occlusionInScreenSpace().bounds()); + EXPECT_RECT_EQ(IntRect(30, 30, 70, 70), occlusion.occlusionInScreenSpace().bounds()); EXPECT_EQ(1u, occlusion.occlusionInScreenSpace().rects().size()); - EXPECT_INT_RECT_EQ(IntRect(30, 30, 70, 70), occlusion.occlusionInTargetSurface().bounds()); + EXPECT_RECT_EQ(IntRect(30, 30, 70, 70), occlusion.occlusionInTargetSurface().bounds()); EXPECT_EQ(1u, occlusion.occlusionInTargetSurface().rects().size()); } }; @@ -1253,16 +1259,16 @@ protected: this->visitLayer(surface, occlusion); - EXPECT_INT_RECT_EQ(IntRect(0, 100, 50, 50), occlusion.occlusionInScreenSpace().bounds()); + EXPECT_RECT_EQ(IntRect(0, 100, 50, 50), occlusion.occlusionInScreenSpace().bounds()); EXPECT_EQ(1u, occlusion.occlusionInScreenSpace().rects().size()); - EXPECT_INT_RECT_EQ(IntRect(0, 0, 50, 50), occlusion.occlusionInTargetSurface().bounds()); + EXPECT_RECT_EQ(IntRect(0, 0, 50, 50), occlusion.occlusionInTargetSurface().bounds()); EXPECT_EQ(1u, occlusion.occlusionInTargetSurface().rects().size()); this->visitContributingSurface(surface, occlusion); this->enterLayer(parent, occlusion); // The surface and replica should both be occluding the parent. - EXPECT_INT_RECT_EQ(IntRect(0, 100, 100, 100), occlusion.occlusionInTargetSurface().bounds()); + EXPECT_RECT_EQ(IntRect(0, 100, 100, 100), occlusion.occlusionInTargetSurface().bounds()); EXPECT_EQ(2u, occlusion.occlusionInTargetSurface().rects().size()); } }; @@ -1275,6 +1281,7 @@ protected: void runMyTest() { typename Types::ContentLayerType* parent = this->createRoot(this->identityMatrix, FloatPoint(0, 0), IntSize(100, 170)); + parent->setMasksToBounds(true); typename Types::LayerType* surface = this->createDrawingSurface(parent, this->identityMatrix, FloatPoint(0, 100), IntSize(50, 50), true); this->createReplicaLayer(surface, this->identityMatrix, FloatPoint(50, 50), IntSize()); this->calcDrawEtc(parent); @@ -1284,16 +1291,16 @@ protected: this->visitLayer(surface, occlusion); - EXPECT_INT_RECT_EQ(IntRect(0, 100, 50, 50), occlusion.occlusionInScreenSpace().bounds()); + EXPECT_RECT_EQ(IntRect(0, 100, 50, 50), occlusion.occlusionInScreenSpace().bounds()); EXPECT_EQ(1u, occlusion.occlusionInScreenSpace().rects().size()); - EXPECT_INT_RECT_EQ(IntRect(0, 0, 50, 50), occlusion.occlusionInTargetSurface().bounds()); + EXPECT_RECT_EQ(IntRect(0, 0, 50, 50), occlusion.occlusionInTargetSurface().bounds()); EXPECT_EQ(1u, occlusion.occlusionInTargetSurface().rects().size()); this->visitContributingSurface(surface, occlusion); this->enterLayer(parent, occlusion); // The surface and replica should both be occluding the parent. - EXPECT_INT_RECT_EQ(IntRect(0, 100, 100, 70), occlusion.occlusionInTargetSurface().bounds()); + EXPECT_RECT_EQ(IntRect(0, 100, 100, 70), occlusion.occlusionInTargetSurface().bounds()); EXPECT_EQ(2u, occlusion.occlusionInTargetSurface().rects().size()); } }; @@ -1316,16 +1323,16 @@ protected: this->visitLayer(surface, occlusion); - EXPECT_INT_RECT_EQ(IntRect(0, 100, 50, 50), occlusion.occlusionInScreenSpace().bounds()); + EXPECT_RECT_EQ(IntRect(0, 100, 50, 50), occlusion.occlusionInScreenSpace().bounds()); EXPECT_EQ(1u, occlusion.occlusionInScreenSpace().rects().size()); - EXPECT_INT_RECT_EQ(IntRect(0, 0, 50, 50), occlusion.occlusionInTargetSurface().bounds()); + EXPECT_RECT_EQ(IntRect(0, 0, 50, 50), occlusion.occlusionInTargetSurface().bounds()); EXPECT_EQ(1u, occlusion.occlusionInTargetSurface().rects().size()); this->visitContributingSurface(surface, occlusion); this->enterLayer(parent, occlusion); // The replica should not be occluding the parent, since it has a mask applied to it. - EXPECT_INT_RECT_EQ(IntRect(0, 100, 50, 50), occlusion.occlusionInTargetSurface().bounds()); + EXPECT_RECT_EQ(IntRect(0, 100, 50, 50), occlusion.occlusionInTargetSurface().bounds()); EXPECT_EQ(1u, occlusion.occlusionInTargetSurface().rects().size()); } }; @@ -1370,7 +1377,7 @@ protected: EXPECT_TRUE(occlusion.occluded(parent, IntRect(100, 200, 100, 100))); EXPECT_TRUE(occlusion.occluded(parent, IntRect(200, 200, 100, 100))); - EXPECT_INT_RECT_EQ(IntRect(200, 100, 100, 100), occlusion.unoccludedContentRect(parent, IntRect(0, 0, 300, 300))); + EXPECT_RECT_EQ(IntRect(200, 100, 100, 100), occlusion.unoccludedContentRect(parent, IntRect(0, 0, 300, 300))); } }; @@ -1414,7 +1421,7 @@ protected: EXPECT_TRUE(occlusion.occluded(parent, IntRect(100, 200, 100, 100))); EXPECT_TRUE(occlusion.occluded(parent, IntRect(200, 200, 100, 100))); - EXPECT_INT_RECT_EQ(IntRect(200, 100, 100, 100), occlusion.unoccludedContentRect(parent, IntRect(0, 0, 300, 300))); + EXPECT_RECT_EQ(IntRect(200, 100, 100, 100), occlusion.unoccludedContentRect(parent, IntRect(0, 0, 300, 300))); } }; @@ -1531,11 +1538,11 @@ protected: EXPECT_FALSE(occlusion.occluded(parent, IntRect(100, 200, 100, 100))); EXPECT_FALSE(occlusion.occluded(parent, IntRect(200, 200, 100, 100))); - EXPECT_INT_RECT_EQ(IntRect(50, 50, 200, 200), occlusion.unoccludedContentRect(parent, IntRect(0, 0, 300, 300))); - EXPECT_INT_RECT_EQ(IntRect(200, 50, 50, 50), occlusion.unoccludedContentRect(parent, IntRect(0, 0, 300, 100))); - EXPECT_INT_RECT_EQ(IntRect(200, 100, 50, 100), occlusion.unoccludedContentRect(parent, IntRect(0, 100, 300, 100))); - EXPECT_INT_RECT_EQ(IntRect(200, 100, 50, 100), occlusion.unoccludedContentRect(parent, IntRect(200, 100, 100, 100))); - EXPECT_INT_RECT_EQ(IntRect(100, 200, 100, 50), occlusion.unoccludedContentRect(parent, IntRect(100, 200, 100, 100))); + EXPECT_RECT_EQ(IntRect(50, 50, 200, 200), occlusion.unoccludedContentRect(parent, IntRect(0, 0, 300, 300))); + EXPECT_RECT_EQ(IntRect(200, 50, 50, 50), occlusion.unoccludedContentRect(parent, IntRect(0, 0, 300, 100))); + EXPECT_RECT_EQ(IntRect(200, 100, 50, 100), occlusion.unoccludedContentRect(parent, IntRect(0, 100, 300, 100))); + EXPECT_RECT_EQ(IntRect(200, 100, 50, 100), occlusion.unoccludedContentRect(parent, IntRect(200, 100, 100, 100))); + EXPECT_RECT_EQ(IntRect(100, 200, 100, 50), occlusion.unoccludedContentRect(parent, IntRect(100, 200, 100, 100))); } }; @@ -1574,11 +1581,11 @@ protected: EXPECT_FALSE(occlusion.occluded(parent, IntRect(100, 200, 100, 100))); EXPECT_FALSE(occlusion.occluded(parent, IntRect(200, 200, 100, 100))); - EXPECT_INT_RECT_EQ(IntRect(50, 50, 200, 200), occlusion.unoccludedContentRect(parent, IntRect(0, 0, 300, 300))); - EXPECT_INT_RECT_EQ(IntRect(200, 50, 50, 50), occlusion.unoccludedContentRect(parent, IntRect(0, 0, 300, 100))); - EXPECT_INT_RECT_EQ(IntRect(200, 100, 50, 100), occlusion.unoccludedContentRect(parent, IntRect(0, 100, 300, 100))); - EXPECT_INT_RECT_EQ(IntRect(200, 100, 50, 100), occlusion.unoccludedContentRect(parent, IntRect(200, 100, 100, 100))); - EXPECT_INT_RECT_EQ(IntRect(100, 200, 100, 50), occlusion.unoccludedContentRect(parent, IntRect(100, 200, 100, 100))); + EXPECT_RECT_EQ(IntRect(50, 50, 200, 200), occlusion.unoccludedContentRect(parent, IntRect(0, 0, 300, 300))); + EXPECT_RECT_EQ(IntRect(200, 50, 50, 50), occlusion.unoccludedContentRect(parent, IntRect(0, 0, 300, 100))); + EXPECT_RECT_EQ(IntRect(200, 100, 50, 100), occlusion.unoccludedContentRect(parent, IntRect(0, 100, 300, 100))); + EXPECT_RECT_EQ(IntRect(200, 100, 50, 100), occlusion.unoccludedContentRect(parent, IntRect(200, 100, 100, 100))); + EXPECT_RECT_EQ(IntRect(100, 200, 100, 50), occlusion.unoccludedContentRect(parent, IntRect(100, 200, 100, 100))); } }; @@ -1747,7 +1754,7 @@ protected: this->visitLayer(layer, occlusion); this->enterLayer(parent, occlusion); - EXPECT_INT_RECT_EQ(IntRect(100, 100, 100, 100), occlusion.occlusionInScreenSpace().bounds()); + EXPECT_RECT_EQ(IntRect(100, 100, 100, 100), occlusion.occlusionInScreenSpace().bounds()); EXPECT_EQ(1u, occlusion.occlusionInScreenSpace().rects().size()); EXPECT_FALSE(occlusion.occluded(parent, IntRect(0, 100, 100, 100))); @@ -1763,7 +1770,7 @@ protected: this->visitLayer(layer, occlusion); this->enterLayer(parent, occlusion); - EXPECT_INT_RECT_EQ(IntRect(120, 120, 180, 180), occlusion.occlusionInScreenSpace().bounds()); + EXPECT_RECT_EQ(IntRect(120, 120, 180, 180), occlusion.occlusionInScreenSpace().bounds()); EXPECT_EQ(1u, occlusion.occlusionInScreenSpace().rects().size()); EXPECT_FALSE(occlusion.occluded(parent, IntRect(0, 100, 100, 100))); @@ -1779,7 +1786,7 @@ protected: this->visitLayer(layer, occlusion); this->enterLayer(parent, occlusion); - EXPECT_INT_RECT_EQ(IntRect(250, 250, 50, 50), occlusion.occlusionInScreenSpace().bounds()); + EXPECT_RECT_EQ(IntRect(250, 250, 50, 50), occlusion.occlusionInScreenSpace().bounds()); EXPECT_EQ(1u, occlusion.occlusionInScreenSpace().rects().size()); EXPECT_FALSE(occlusion.occluded(parent, IntRect(0, 100, 100, 100))); @@ -1808,7 +1815,7 @@ protected: this->enterLayer(layer, occlusion); // The layer is rotated in 3d but without preserving 3d, so it only gets resized. - EXPECT_INT_RECT_EQ(IntRect(0, 0, 200, 200), occlusion.unoccludedContentRect(layer, IntRect(0, 0, 200, 200))); + EXPECT_RECT_EQ(IntRect(0, 0, 200, 200), occlusion.unoccludedContentRect(layer, IntRect(0, 0, 200, 200))); } }; @@ -1873,7 +1880,7 @@ protected: TestCCOcclusionTrackerWithClip<typename Types::LayerType, typename Types::RenderSurfaceType> occlusion(IntRect(0, 0, 1000, 1000)); this->enterLayer(layer, occlusion); - EXPECT_INT_RECT_EQ(IntRect(0, 0, 200, 200), occlusion.unoccludedContentRect(layer, IntRect(0, 0, 200, 200))); + EXPECT_RECT_EQ(IntRect(0, 0, 200, 200), occlusion.unoccludedContentRect(layer, IntRect(0, 0, 200, 200))); } }; @@ -1955,6 +1962,7 @@ protected: transform.translate(-50, -50); typename Types::ContentLayerType* parent = this->createRoot(this->identityMatrix, FloatPoint(0, 0), IntSize(100, 100)); + parent->setMasksToBounds(true); typename Types::ContentLayerType* layer = this->createDrawingLayer(parent, transform, FloatPoint(0, 0), IntSize(100, 100), true); parent->setPreserves3D(true); layer->setPreserves3D(true); @@ -1966,9 +1974,9 @@ protected: // Ensure that those pixels don't occlude things outside the clipRect. this->visitLayer(layer, occlusion); this->enterLayer(parent, occlusion); - EXPECT_INT_RECT_EQ(IntRect(0, 0, 100, 100), occlusion.occlusionInTargetSurface().bounds()); + EXPECT_RECT_EQ(IntRect(0, 0, 100, 100), occlusion.occlusionInTargetSurface().bounds()); EXPECT_EQ(1u, occlusion.occlusionInTargetSurface().rects().size()); - EXPECT_INT_RECT_EQ(IntRect(0, 0, 100, 100), occlusion.occlusionInScreenSpace().bounds()); + EXPECT_RECT_EQ(IntRect(0, 0, 100, 100), occlusion.occlusionInScreenSpace().bounds()); EXPECT_EQ(1u, occlusion.occlusionInScreenSpace().rects().size()); } }; @@ -2002,27 +2010,27 @@ protected: this->visitLayer(topmost, occlusion); this->enterLayer(parent2, occlusion); // This occlusion will affect all surfaces. - EXPECT_INT_RECT_EQ(IntRect(0, 0, 250, 300), occlusion.unoccludedContentRect(parent2, IntRect(0, 0, 300, 300))); + EXPECT_RECT_EQ(IntRect(0, 0, 250, 300), occlusion.unoccludedContentRect(parent2, IntRect(0, 0, 300, 300))); this->leaveLayer(parent2, occlusion); this->visitLayer(surfaceChild2, occlusion); this->enterLayer(surfaceChild, occlusion); - EXPECT_INT_RECT_EQ(IntRect(100, 0, 100, 300), occlusion.unoccludedContentRect(surfaceChild, IntRect(0, 0, 300, 300))); + EXPECT_RECT_EQ(IntRect(100, 0, 100, 300), occlusion.unoccludedContentRect(surfaceChild, IntRect(0, 0, 300, 300))); this->leaveLayer(surfaceChild, occlusion); this->enterLayer(surface, occlusion); - EXPECT_INT_RECT_EQ(IntRect(200, 0, 50, 300), occlusion.unoccludedContentRect(surface, IntRect(0, 0, 300, 300))); + EXPECT_RECT_EQ(IntRect(200, 0, 50, 300), occlusion.unoccludedContentRect(surface, IntRect(0, 0, 300, 300))); this->leaveLayer(surface, occlusion); this->enterContributingSurface(surface, occlusion); // Occlusion within the surface is lost when leaving the animating surface. - EXPECT_INT_RECT_EQ(IntRect(0, 0, 250, 300), occlusion.unoccludedContributingSurfaceContentRect(surface, false, IntRect(0, 0, 300, 300))); + EXPECT_RECT_EQ(IntRect(0, 0, 250, 300), occlusion.unoccludedContributingSurfaceContentRect(surface, false, IntRect(0, 0, 300, 300))); this->leaveContributingSurface(surface, occlusion); this->visitLayer(layer, occlusion); this->enterLayer(parent, occlusion); // Occlusion is not added for the animating |layer|. - EXPECT_INT_RECT_EQ(IntRect(0, 0, 250, 300), occlusion.unoccludedContentRect(parent, IntRect(0, 0, 300, 300))); + EXPECT_RECT_EQ(IntRect(0, 0, 250, 300), occlusion.unoccludedContentRect(parent, IntRect(0, 0, 300, 300))); } }; @@ -2054,27 +2062,27 @@ protected: this->visitLayer(topmost, occlusion); this->enterLayer(parent2, occlusion); // This occlusion will affect all surfaces. - EXPECT_INT_RECT_EQ(IntRect(0, 0, 250, 300), occlusion.unoccludedContentRect(parent, IntRect(0, 0, 300, 300))); + EXPECT_RECT_EQ(IntRect(0, 0, 250, 300), occlusion.unoccludedContentRect(parent, IntRect(0, 0, 300, 300))); this->leaveLayer(parent2, occlusion); this->visitLayer(surfaceChild2, occlusion); this->enterLayer(surfaceChild, occlusion); - EXPECT_INT_RECT_EQ(IntRect(100, 0, 100, 300), occlusion.unoccludedContentRect(surfaceChild, IntRect(0, 0, 300, 300))); + EXPECT_RECT_EQ(IntRect(100, 0, 100, 300), occlusion.unoccludedContentRect(surfaceChild, IntRect(0, 0, 300, 300))); this->leaveLayer(surfaceChild, occlusion); this->enterLayer(surface, occlusion); - EXPECT_INT_RECT_EQ(IntRect(200, 0, 50, 300), occlusion.unoccludedContentRect(surface, IntRect(0, 0, 300, 300))); + EXPECT_RECT_EQ(IntRect(200, 0, 50, 300), occlusion.unoccludedContentRect(surface, IntRect(0, 0, 300, 300))); this->leaveLayer(surface, occlusion); this->enterContributingSurface(surface, occlusion); // Occlusion within the surface is lost when leaving the animating surface. - EXPECT_INT_RECT_EQ(IntRect(0, 0, 250, 300), occlusion.unoccludedContributingSurfaceContentRect(surface, false, IntRect(0, 0, 300, 300))); + EXPECT_RECT_EQ(IntRect(0, 0, 250, 300), occlusion.unoccludedContributingSurfaceContentRect(surface, false, IntRect(0, 0, 300, 300))); this->leaveContributingSurface(surface, occlusion); this->visitLayer(layer, occlusion); this->enterLayer(parent, occlusion); // Occlusion is not added for the animating |layer|. - EXPECT_INT_RECT_EQ(IntRect(0, 0, 250, 300), occlusion.unoccludedContentRect(parent, IntRect(0, 0, 300, 300))); + EXPECT_RECT_EQ(IntRect(0, 0, 250, 300), occlusion.unoccludedContentRect(parent, IntRect(0, 0, 300, 300))); } }; @@ -2112,7 +2120,7 @@ protected: this->visitLayer(surface2, occlusion); this->enterContributingSurface(surface2, occlusion); - EXPECT_INT_RECT_EQ(IntRect(0, 0, 50, 300), occlusion.occlusionInScreenSpace().bounds()); + EXPECT_RECT_EQ(IntRect(0, 0, 50, 300), occlusion.occlusionInScreenSpace().bounds()); EXPECT_EQ(1u, occlusion.occlusionInScreenSpace().rects().size()); this->leaveContributingSurface(surface2, occlusion); @@ -2120,53 +2128,53 @@ protected: // surfaceChild2 is moving in screen space but not relative to its target, so occlusion should happen in its target space only. // It also means that things occluding in screen space (e.g. surface2) cannot occlude this layer. - EXPECT_INT_RECT_EQ(IntRect(0, 0, 100, 300), occlusion.unoccludedContentRect(surfaceChild2, IntRect(0, 0, 100, 300))); + EXPECT_RECT_EQ(IntRect(0, 0, 100, 300), occlusion.unoccludedContentRect(surfaceChild2, IntRect(0, 0, 100, 300))); EXPECT_FALSE(occlusion.occluded(surfaceChild, IntRect(0, 0, 50, 300))); this->leaveLayer(surfaceChild2, occlusion); this->enterLayer(surfaceChild, occlusion); EXPECT_FALSE(occlusion.occluded(surfaceChild, IntRect(0, 0, 100, 300))); - EXPECT_INT_RECT_EQ(IntRect(0, 0, 50, 300), occlusion.occlusionInScreenSpace().bounds()); + EXPECT_RECT_EQ(IntRect(0, 0, 50, 300), occlusion.occlusionInScreenSpace().bounds()); EXPECT_EQ(1u, occlusion.occlusionInScreenSpace().rects().size()); - EXPECT_INT_RECT_EQ(IntRect(0, 0, 100, 300), occlusion.occlusionInTargetSurface().bounds()); + EXPECT_RECT_EQ(IntRect(0, 0, 100, 300), occlusion.occlusionInTargetSurface().bounds()); EXPECT_EQ(1u, occlusion.occlusionInTargetSurface().rects().size()); - EXPECT_INT_RECT_EQ(IntRect(100, 0, 200, 300), occlusion.unoccludedContentRect(surface, IntRect(0, 0, 300, 300))); + EXPECT_RECT_EQ(IntRect(100, 0, 200, 300), occlusion.unoccludedContentRect(surface, IntRect(0, 0, 300, 300))); // The surfaceChild is occluded by the surfaceChild2, but is moving relative its target and the screen, so it // can't be occluded. - EXPECT_INT_RECT_EQ(IntRect(0, 0, 200, 300), occlusion.unoccludedContentRect(surfaceChild, IntRect(0, 0, 200, 300))); + EXPECT_RECT_EQ(IntRect(0, 0, 200, 300), occlusion.unoccludedContentRect(surfaceChild, IntRect(0, 0, 200, 300))); EXPECT_FALSE(occlusion.occluded(surfaceChild, IntRect(0, 0, 50, 300))); this->leaveLayer(surfaceChild, occlusion); this->enterLayer(surface, occlusion); // The surfaceChild is moving in screen space but not relative to its target, so occlusion should happen in its target space only. - EXPECT_INT_RECT_EQ(IntRect(0, 0, 50, 300), occlusion.occlusionInScreenSpace().bounds()); + EXPECT_RECT_EQ(IntRect(0, 0, 50, 300), occlusion.occlusionInScreenSpace().bounds()); EXPECT_EQ(1u, occlusion.occlusionInScreenSpace().rects().size()); - EXPECT_INT_RECT_EQ(IntRect(0, 0, 100, 300), occlusion.occlusionInTargetSurface().bounds()); + EXPECT_RECT_EQ(IntRect(0, 0, 100, 300), occlusion.occlusionInTargetSurface().bounds()); EXPECT_EQ(1u, occlusion.occlusionInTargetSurface().rects().size()); - EXPECT_INT_RECT_EQ(IntRect(100, 0, 200, 300), occlusion.unoccludedContentRect(surface, IntRect(0, 0, 300, 300))); + EXPECT_RECT_EQ(IntRect(100, 0, 200, 300), occlusion.unoccludedContentRect(surface, IntRect(0, 0, 300, 300))); this->leaveLayer(surface, occlusion); // The surface's owning layer is moving in screen space but not relative to its target, so occlusion should happen in its target space only. - EXPECT_INT_RECT_EQ(IntRect(0, 0, 50, 300), occlusion.occlusionInScreenSpace().bounds()); + EXPECT_RECT_EQ(IntRect(0, 0, 50, 300), occlusion.occlusionInScreenSpace().bounds()); EXPECT_EQ(1u, occlusion.occlusionInScreenSpace().rects().size()); - EXPECT_INT_RECT_EQ(IntRect(0, 0, 300, 300), occlusion.occlusionInTargetSurface().bounds()); + EXPECT_RECT_EQ(IntRect(0, 0, 300, 300), occlusion.occlusionInTargetSurface().bounds()); EXPECT_EQ(1u, occlusion.occlusionInTargetSurface().rects().size()); - EXPECT_INT_RECT_EQ(IntRect(0, 0, 0, 0), occlusion.unoccludedContentRect(surface, IntRect(0, 0, 300, 300))); + EXPECT_RECT_EQ(IntRect(0, 0, 0, 0), occlusion.unoccludedContentRect(surface, IntRect(0, 0, 300, 300))); this->enterContributingSurface(surface, occlusion); // The contributing |surface| is animating so it can't be occluded. - EXPECT_INT_RECT_EQ(IntRect(0, 0, 300, 300), occlusion.unoccludedContributingSurfaceContentRect(surface, false, IntRect(0, 0, 300, 300))); + EXPECT_RECT_EQ(IntRect(0, 0, 300, 300), occlusion.unoccludedContributingSurfaceContentRect(surface, false, IntRect(0, 0, 300, 300))); this->leaveContributingSurface(surface, occlusion); this->enterLayer(layer, occlusion); // The |surface| is moving in the screen and in its target, so all occlusion within the surface is lost when leaving it. - EXPECT_INT_RECT_EQ(IntRect(50, 0, 250, 300), occlusion.unoccludedContentRect(parent, IntRect(0, 0, 300, 300))); + EXPECT_RECT_EQ(IntRect(50, 0, 250, 300), occlusion.unoccludedContentRect(parent, IntRect(0, 0, 300, 300))); this->leaveLayer(layer, occlusion); this->enterLayer(parent, occlusion); // The |layer| is animating in the screen and in its target, so no occlusion is added. - EXPECT_INT_RECT_EQ(IntRect(50, 0, 250, 300), occlusion.unoccludedContentRect(parent, IntRect(0, 0, 300, 300))); + EXPECT_RECT_EQ(IntRect(50, 0, 250, 300), occlusion.unoccludedContentRect(parent, IntRect(0, 0, 300, 300))); } }; @@ -2194,9 +2202,9 @@ protected: this->visitLayer(surface2, occlusion); this->visitContributingSurface(surface2, occlusion); - EXPECT_INT_RECT_EQ(IntRect(50, 50, 200, 200), occlusion.occlusionInScreenSpace().bounds()); + EXPECT_RECT_EQ(IntRect(50, 50, 200, 200), occlusion.occlusionInScreenSpace().bounds()); EXPECT_EQ(1u, occlusion.occlusionInScreenSpace().rects().size()); - EXPECT_INT_RECT_EQ(IntRect(50, 50, 200, 200), occlusion.occlusionInTargetSurface().bounds()); + EXPECT_RECT_EQ(IntRect(50, 50, 200, 200), occlusion.occlusionInTargetSurface().bounds()); EXPECT_EQ(1u, occlusion.occlusionInTargetSurface().rects().size()); // Clear any stored occlusion. @@ -2206,9 +2214,9 @@ protected: this->visitLayer(surface, occlusion); this->visitContributingSurface(surface, occlusion); - EXPECT_INT_RECT_EQ(IntRect(0, 0, 400, 400), occlusion.occlusionInScreenSpace().bounds()); + EXPECT_RECT_EQ(IntRect(0, 0, 400, 400), occlusion.occlusionInScreenSpace().bounds()); EXPECT_EQ(1u, occlusion.occlusionInScreenSpace().rects().size()); - EXPECT_INT_RECT_EQ(IntRect(0, 0, 400, 400), occlusion.occlusionInTargetSurface().bounds()); + EXPECT_RECT_EQ(IntRect(0, 0, 400, 400), occlusion.occlusionInTargetSurface().bounds()); EXPECT_EQ(1u, occlusion.occlusionInTargetSurface().rects().size()); } }; @@ -2221,6 +2229,7 @@ protected: void runMyTest() { typename Types::ContentLayerType* parent = this->createRoot(this->identityMatrix, FloatPoint(0, 0), IntSize(300, 300)); + parent->setMasksToBounds(true); typename Types::ContentLayerType* surface = this->createDrawingSurface(parent, this->identityMatrix, FloatPoint(0, 0), IntSize(500, 300), false); surface->setOpaqueContentsRect(IntRect(0, 0, 400, 200)); this->calcDrawEtc(parent); @@ -2230,9 +2239,9 @@ protected: this->visitLayer(surface, occlusion); this->visitContributingSurface(surface, occlusion); - EXPECT_INT_RECT_EQ(IntRect(0, 0, 300, 200), occlusion.occlusionInScreenSpace().bounds()); + EXPECT_RECT_EQ(IntRect(0, 0, 300, 200), occlusion.occlusionInScreenSpace().bounds()); EXPECT_EQ(1u, occlusion.occlusionInScreenSpace().rects().size()); - EXPECT_INT_RECT_EQ(IntRect(0, 0, 300, 200), occlusion.occlusionInTargetSurface().bounds()); + EXPECT_RECT_EQ(IntRect(0, 0, 300, 200), occlusion.occlusionInTargetSurface().bounds()); EXPECT_EQ(1u, occlusion.occlusionInTargetSurface().rects().size()); } }; @@ -2256,22 +2265,22 @@ protected: // |topmost| occludes the replica, but not the surface itself. this->visitLayer(topmost, occlusion); - EXPECT_INT_RECT_EQ(IntRect(0, 100, 100, 100), occlusion.occlusionInScreenSpace().bounds()); + EXPECT_RECT_EQ(IntRect(0, 100, 100, 100), occlusion.occlusionInScreenSpace().bounds()); EXPECT_EQ(1u, occlusion.occlusionInScreenSpace().rects().size()); - EXPECT_INT_RECT_EQ(IntRect(0, 100, 100, 100), occlusion.occlusionInTargetSurface().bounds()); + EXPECT_RECT_EQ(IntRect(0, 100, 100, 100), occlusion.occlusionInTargetSurface().bounds()); EXPECT_EQ(1u, occlusion.occlusionInTargetSurface().rects().size()); this->visitLayer(surface, occlusion); - EXPECT_INT_RECT_EQ(IntRect(0, 0, 100, 200), occlusion.occlusionInScreenSpace().bounds()); + EXPECT_RECT_EQ(IntRect(0, 0, 100, 200), occlusion.occlusionInScreenSpace().bounds()); EXPECT_EQ(1u, occlusion.occlusionInScreenSpace().rects().size()); - EXPECT_INT_RECT_EQ(IntRect(0, 0, 100, 100), occlusion.occlusionInTargetSurface().bounds()); + EXPECT_RECT_EQ(IntRect(0, 0, 100, 100), occlusion.occlusionInTargetSurface().bounds()); EXPECT_EQ(1u, occlusion.occlusionInTargetSurface().rects().size()); this->enterContributingSurface(surface, occlusion); // Surface is not occluded so it shouldn't think it is. - EXPECT_INT_RECT_EQ(IntRect(0, 0, 100, 100), occlusion.unoccludedContributingSurfaceContentRect(surface, false, IntRect(0, 0, 100, 100))); + EXPECT_RECT_EQ(IntRect(0, 0, 100, 100), occlusion.unoccludedContributingSurfaceContentRect(surface, false, IntRect(0, 0, 100, 100))); } }; @@ -2294,23 +2303,23 @@ protected: // |topmost| occludes the surface, but not the entire surface's replica. this->visitLayer(topmost, occlusion); - EXPECT_INT_RECT_EQ(IntRect(0, 0, 100, 110), occlusion.occlusionInScreenSpace().bounds()); + EXPECT_RECT_EQ(IntRect(0, 0, 100, 110), occlusion.occlusionInScreenSpace().bounds()); EXPECT_EQ(1u, occlusion.occlusionInScreenSpace().rects().size()); - EXPECT_INT_RECT_EQ(IntRect(0, 0, 100, 110), occlusion.occlusionInTargetSurface().bounds()); + EXPECT_RECT_EQ(IntRect(0, 0, 100, 110), occlusion.occlusionInTargetSurface().bounds()); EXPECT_EQ(1u, occlusion.occlusionInTargetSurface().rects().size()); this->visitLayer(surface, occlusion); - EXPECT_INT_RECT_EQ(IntRect(0, 0, 100, 110), occlusion.occlusionInScreenSpace().bounds()); + EXPECT_RECT_EQ(IntRect(0, 0, 100, 110), occlusion.occlusionInScreenSpace().bounds()); EXPECT_EQ(1u, occlusion.occlusionInScreenSpace().rects().size()); - EXPECT_INT_RECT_EQ(IntRect(0, 0, 100, 100), occlusion.occlusionInTargetSurface().bounds()); + EXPECT_RECT_EQ(IntRect(0, 0, 100, 100), occlusion.occlusionInTargetSurface().bounds()); EXPECT_EQ(1u, occlusion.occlusionInTargetSurface().rects().size()); this->enterContributingSurface(surface, occlusion); // Surface is occluded, but only the top 10px of the replica. - EXPECT_INT_RECT_EQ(IntRect(0, 0, 0, 0), occlusion.unoccludedContributingSurfaceContentRect(surface, false, IntRect(0, 0, 100, 100))); - EXPECT_INT_RECT_EQ(IntRect(0, 10, 100, 90), occlusion.unoccludedContributingSurfaceContentRect(surface, true, IntRect(0, 0, 100, 100))); + EXPECT_RECT_EQ(IntRect(0, 0, 0, 0), occlusion.unoccludedContributingSurfaceContentRect(surface, false, IntRect(0, 0, 100, 100))); + EXPECT_RECT_EQ(IntRect(0, 10, 100, 90), occlusion.unoccludedContributingSurfaceContentRect(surface, true, IntRect(0, 0, 100, 100))); } }; @@ -2335,23 +2344,23 @@ protected: this->visitLayer(overReplica, occlusion); this->visitLayer(overSurface, occlusion); - EXPECT_INT_RECT_EQ(IntRect(0, 0, 50, 200), occlusion.occlusionInScreenSpace().bounds()); + EXPECT_RECT_EQ(IntRect(0, 0, 50, 200), occlusion.occlusionInScreenSpace().bounds()); EXPECT_EQ(2u, occlusion.occlusionInScreenSpace().rects().size()); - EXPECT_INT_RECT_EQ(IntRect(0, 0, 50, 200), occlusion.occlusionInTargetSurface().bounds()); + EXPECT_RECT_EQ(IntRect(0, 0, 50, 200), occlusion.occlusionInTargetSurface().bounds()); EXPECT_EQ(2u, occlusion.occlusionInTargetSurface().rects().size()); this->visitLayer(surface, occlusion); - EXPECT_INT_RECT_EQ(IntRect(0, 0, 100, 200), occlusion.occlusionInScreenSpace().bounds()); + EXPECT_RECT_EQ(IntRect(0, 0, 100, 200), occlusion.occlusionInScreenSpace().bounds()); EXPECT_EQ(2u, occlusion.occlusionInScreenSpace().rects().size()); - EXPECT_INT_RECT_EQ(IntRect(0, 0, 100, 100), occlusion.occlusionInTargetSurface().bounds()); + EXPECT_RECT_EQ(IntRect(0, 0, 100, 100), occlusion.occlusionInTargetSurface().bounds()); EXPECT_EQ(1u, occlusion.occlusionInTargetSurface().rects().size()); this->enterContributingSurface(surface, occlusion); // Surface and replica are occluded different amounts. - EXPECT_INT_RECT_EQ(IntRect(40, 0, 60, 100), occlusion.unoccludedContributingSurfaceContentRect(surface, false, IntRect(0, 0, 100, 100))); - EXPECT_INT_RECT_EQ(IntRect(50, 0, 50, 100), occlusion.unoccludedContributingSurfaceContentRect(surface, true, IntRect(0, 0, 100, 100))); + EXPECT_RECT_EQ(IntRect(40, 0, 60, 100), occlusion.unoccludedContributingSurfaceContentRect(surface, false, IntRect(0, 0, 100, 100))); + EXPECT_RECT_EQ(IntRect(50, 0, 50, 100), occlusion.unoccludedContributingSurfaceContentRect(surface, true, IntRect(0, 0, 100, 100))); } }; @@ -2375,18 +2384,18 @@ protected: // |topmost| occludes everything partially so we know occlusion is happening at all. this->visitLayer(topmost, occlusion); - EXPECT_INT_RECT_EQ(IntRect(0, 0, 100, 50), occlusion.occlusionInScreenSpace().bounds()); + EXPECT_RECT_EQ(IntRect(0, 0, 100, 50), occlusion.occlusionInScreenSpace().bounds()); EXPECT_EQ(1u, occlusion.occlusionInScreenSpace().rects().size()); - EXPECT_INT_RECT_EQ(IntRect(0, 0, 100, 50), occlusion.occlusionInTargetSurface().bounds()); + EXPECT_RECT_EQ(IntRect(0, 0, 100, 50), occlusion.occlusionInTargetSurface().bounds()); EXPECT_EQ(1u, occlusion.occlusionInTargetSurface().rects().size()); this->visitLayer(surfaceChild, occlusion); // surfaceChild increases the occlusion in the screen by a narrow sliver. - EXPECT_INT_RECT_EQ(IntRect(0, 0, 100, 60), occlusion.occlusionInScreenSpace().bounds()); + EXPECT_RECT_EQ(IntRect(0, 0, 100, 60), occlusion.occlusionInScreenSpace().bounds()); EXPECT_EQ(1u, occlusion.occlusionInScreenSpace().rects().size()); // In its own surface, surfaceChild is at 0,0 as is its occlusion. - EXPECT_INT_RECT_EQ(IntRect(0, 0, 100, 50), occlusion.occlusionInTargetSurface().bounds()); + EXPECT_RECT_EQ(IntRect(0, 0, 100, 50), occlusion.occlusionInTargetSurface().bounds()); EXPECT_EQ(1u, occlusion.occlusionInTargetSurface().rects().size()); // The root layer always has a clipRect. So the parent of |surface| has a clipRect. However, the owning layer for |surface| does not @@ -2396,20 +2405,20 @@ protected: this->enterContributingSurface(surfaceChild, occlusion); // The surfaceChild's parent does not have a clipRect as it owns a render surface. Make sure the unoccluded rect // does not get clipped away inappropriately. - EXPECT_INT_RECT_EQ(IntRect(0, 40, 100, 10), occlusion.unoccludedContributingSurfaceContentRect(surfaceChild, false, IntRect(0, 0, 100, 50))); + EXPECT_RECT_EQ(IntRect(0, 40, 100, 10), occlusion.unoccludedContributingSurfaceContentRect(surfaceChild, false, IntRect(0, 0, 100, 50))); this->leaveContributingSurface(surfaceChild, occlusion); // When the surfaceChild's occlusion is transformed up to its parent, make sure it is not clipped away inappropriately also. this->enterLayer(surface, occlusion); - EXPECT_INT_RECT_EQ(IntRect(0, 0, 100, 60), occlusion.occlusionInScreenSpace().bounds()); + EXPECT_RECT_EQ(IntRect(0, 0, 100, 60), occlusion.occlusionInScreenSpace().bounds()); EXPECT_EQ(1u, occlusion.occlusionInScreenSpace().rects().size()); - EXPECT_INT_RECT_EQ(IntRect(0, 10, 100, 50), occlusion.occlusionInTargetSurface().bounds()); + EXPECT_RECT_EQ(IntRect(0, 10, 100, 50), occlusion.occlusionInTargetSurface().bounds()); EXPECT_EQ(1u, occlusion.occlusionInTargetSurface().rects().size()); this->leaveLayer(surface, occlusion); this->enterContributingSurface(surface, occlusion); // The surface's parent does have a clipRect as it is the root layer. - EXPECT_INT_RECT_EQ(IntRect(0, 50, 100, 50), occlusion.unoccludedContributingSurfaceContentRect(surface, false, IntRect(0, 0, 100, 100))); + EXPECT_RECT_EQ(IntRect(0, 50, 100, 50), occlusion.unoccludedContributingSurfaceContentRect(surface, false, IntRect(0, 0, 100, 100))); } }; @@ -2435,7 +2444,7 @@ protected: // The root layer always has a clipRect. So the parent of |surface| has a clipRect giving the surface itself a clipRect. this->enterContributingSurface(surface, occlusion); // Make sure the parent's clipRect clips the unoccluded region of the child surface. - EXPECT_INT_RECT_EQ(IntRect(0, 0, 100, 200), occlusion.unoccludedContributingSurfaceContentRect(surface, false, IntRect(0, 0, 100, 300))); + EXPECT_RECT_EQ(IntRect(0, 0, 100, 200), occlusion.unoccludedContributingSurfaceContentRect(surface, false, IntRect(0, 0, 100, 300))); } this->resetLayerIterator(); { @@ -2447,7 +2456,7 @@ protected: // The root layer always has a clipRect. So the parent of |surface| has a clipRect giving the surface itself a clipRect. this->enterContributingSurface(surface, occlusion); // Make sure the viewport rect clips the unoccluded region of the child surface. - EXPECT_INT_RECT_EQ(IntRect(0, 0, 100, 100), occlusion.unoccludedContributingSurfaceContentRect(surface, false, IntRect(0, 0, 100, 300))); + EXPECT_RECT_EQ(IntRect(0, 0, 100, 100), occlusion.unoccludedContributingSurfaceContentRect(surface, false, IntRect(0, 0, 100, 300))); } } }; @@ -2462,6 +2471,7 @@ protected: // This test verifies that the surface cliprect does not end up empty and clip away the entire unoccluded rect. typename Types::ContentLayerType* parent = this->createRoot(this->identityMatrix, FloatPoint(0, 0), IntSize(80, 200)); + parent->setMasksToBounds(true); typename Types::LayerType* surface = this->createDrawingSurface(parent, this->identityMatrix, FloatPoint(0, 0), IntSize(100, 100), true); typename Types::LayerType* surfaceChild = this->createDrawingSurface(surface, this->identityMatrix, FloatPoint(0, 0), IntSize(100, 100), false); typename Types::LayerType* topmost = this->createDrawingLayer(parent, this->identityMatrix, FloatPoint(0, 0), IntSize(100, 50), true); @@ -2473,17 +2483,17 @@ protected: // |topmost| occludes everything partially so we know occlusion is happening at all. this->visitLayer(topmost, occlusion); - EXPECT_INT_RECT_EQ(IntRect(0, 0, 80, 50), occlusion.occlusionInScreenSpace().bounds()); + EXPECT_RECT_EQ(IntRect(0, 0, 80, 50), occlusion.occlusionInScreenSpace().bounds()); EXPECT_EQ(1u, occlusion.occlusionInScreenSpace().rects().size()); - EXPECT_INT_RECT_EQ(IntRect(0, 0, 80, 50), occlusion.occlusionInTargetSurface().bounds()); + EXPECT_RECT_EQ(IntRect(0, 0, 80, 50), occlusion.occlusionInTargetSurface().bounds()); EXPECT_EQ(1u, occlusion.occlusionInTargetSurface().rects().size()); // surfaceChild is not opaque and does not occlude, so we have a non-empty unoccluded area on surface. this->visitLayer(surfaceChild, occlusion); - EXPECT_INT_RECT_EQ(IntRect(0, 0, 80, 50), occlusion.occlusionInScreenSpace().bounds()); + EXPECT_RECT_EQ(IntRect(0, 0, 80, 50), occlusion.occlusionInScreenSpace().bounds()); EXPECT_EQ(1u, occlusion.occlusionInScreenSpace().rects().size()); - EXPECT_INT_RECT_EQ(IntRect(0, 0, 0, 0), occlusion.occlusionInTargetSurface().bounds()); + EXPECT_RECT_EQ(IntRect(0, 0, 0, 0), occlusion.occlusionInTargetSurface().bounds()); EXPECT_EQ(0u, occlusion.occlusionInTargetSurface().rects().size()); // The root layer always has a clipRect. So the parent of |surface| has a clipRect. However, the owning layer for |surface| does not @@ -2492,13 +2502,13 @@ protected: this->enterContributingSurface(surfaceChild, occlusion); // The surfaceChild's parent does not have a clipRect as it owns a render surface. - EXPECT_INT_RECT_EQ(IntRect(0, 50, 80, 50), occlusion.unoccludedContributingSurfaceContentRect(surfaceChild, false, IntRect(0, 0, 100, 100))); + EXPECT_RECT_EQ(IntRect(0, 50, 80, 50), occlusion.unoccludedContributingSurfaceContentRect(surfaceChild, false, IntRect(0, 0, 100, 100))); this->leaveContributingSurface(surfaceChild, occlusion); this->visitLayer(surface, occlusion); this->enterContributingSurface(surface, occlusion); // The surface's parent does have a clipRect as it is the root layer. - EXPECT_INT_RECT_EQ(IntRect(0, 50, 80, 50), occlusion.unoccludedContributingSurfaceContentRect(surface, false, IntRect(0, 0, 100, 100))); + EXPECT_RECT_EQ(IntRect(0, 50, 80, 50), occlusion.unoccludedContributingSurfaceContentRect(surface, false, IntRect(0, 0, 100, 100))); } }; @@ -2546,28 +2556,28 @@ protected: this->visitLayer(occludingLayer2, occlusion); this->visitLayer(occludingLayer1, occlusion); - EXPECT_INT_RECT_EQ(IntRect(0, 0, 300, 150), occlusion.occlusionInScreenSpace().bounds()); + EXPECT_RECT_EQ(IntRect(0, 0, 300, 150), occlusion.occlusionInScreenSpace().bounds()); EXPECT_EQ(5u, occlusion.occlusionInScreenSpace().rects().size()); - EXPECT_INT_RECT_EQ(IntRect(0, 0, 300, 150), occlusion.occlusionInTargetSurface().bounds()); + EXPECT_RECT_EQ(IntRect(0, 0, 300, 150), occlusion.occlusionInTargetSurface().bounds()); EXPECT_EQ(5u, occlusion.occlusionInTargetSurface().rects().size()); // Everything outside the surface/replica is occluded but the surface/replica itself is not. this->enterLayer(filteredSurface, occlusion); - EXPECT_INT_RECT_EQ(IntRect(1, 0, 99, 100), occlusion.unoccludedContentRect(filteredSurface, IntRect(1, 0, 100, 100))); - EXPECT_INT_RECT_EQ(IntRect(0, 1, 100, 99), occlusion.unoccludedContentRect(filteredSurface, IntRect(0, 1, 100, 100))); - EXPECT_INT_RECT_EQ(IntRect(0, 0, 99, 100), occlusion.unoccludedContentRect(filteredSurface, IntRect(-1, 0, 100, 100))); - EXPECT_INT_RECT_EQ(IntRect(0, 0, 100, 99), occlusion.unoccludedContentRect(filteredSurface, IntRect(0, -1, 100, 100))); - - EXPECT_INT_RECT_EQ(IntRect(300 + 1, 0, 99, 100), occlusion.unoccludedContentRect(filteredSurface, IntRect(300 + 1, 0, 100, 100))); - EXPECT_INT_RECT_EQ(IntRect(300 + 0, 1, 100, 99), occlusion.unoccludedContentRect(filteredSurface, IntRect(300 + 0, 1, 100, 100))); - EXPECT_INT_RECT_EQ(IntRect(300 + 0, 0, 99, 100), occlusion.unoccludedContentRect(filteredSurface, IntRect(300 - 1, 0, 100, 100))); - EXPECT_INT_RECT_EQ(IntRect(300 + 0, 0, 100, 99), occlusion.unoccludedContentRect(filteredSurface, IntRect(300 + 0, -1, 100, 100))); + EXPECT_RECT_EQ(IntRect(1, 0, 99, 100), occlusion.unoccludedContentRect(filteredSurface, IntRect(1, 0, 100, 100))); + EXPECT_RECT_EQ(IntRect(0, 1, 100, 99), occlusion.unoccludedContentRect(filteredSurface, IntRect(0, 1, 100, 100))); + EXPECT_RECT_EQ(IntRect(0, 0, 99, 100), occlusion.unoccludedContentRect(filteredSurface, IntRect(-1, 0, 100, 100))); + EXPECT_RECT_EQ(IntRect(0, 0, 100, 99), occlusion.unoccludedContentRect(filteredSurface, IntRect(0, -1, 100, 100))); + + EXPECT_RECT_EQ(IntRect(300 + 1, 0, 99, 100), occlusion.unoccludedContentRect(filteredSurface, IntRect(300 + 1, 0, 100, 100))); + EXPECT_RECT_EQ(IntRect(300 + 0, 1, 100, 99), occlusion.unoccludedContentRect(filteredSurface, IntRect(300 + 0, 1, 100, 100))); + EXPECT_RECT_EQ(IntRect(300 + 0, 0, 99, 100), occlusion.unoccludedContentRect(filteredSurface, IntRect(300 - 1, 0, 100, 100))); + EXPECT_RECT_EQ(IntRect(300 + 0, 0, 100, 99), occlusion.unoccludedContentRect(filteredSurface, IntRect(300 + 0, -1, 100, 100))); this->leaveLayer(filteredSurface, occlusion); // The filtered layer/replica does not occlude. - EXPECT_INT_RECT_EQ(IntRect(0, 0, 300, 150), occlusion.occlusionInScreenSpace().bounds()); + EXPECT_RECT_EQ(IntRect(0, 0, 300, 150), occlusion.occlusionInScreenSpace().bounds()); EXPECT_EQ(5u, occlusion.occlusionInScreenSpace().rects().size()); - EXPECT_INT_RECT_EQ(IntRect(0, 0, 0, 0), occlusion.occlusionInTargetSurface().bounds()); + EXPECT_RECT_EQ(IntRect(0, 0, 0, 0), occlusion.occlusionInTargetSurface().bounds()); EXPECT_EQ(0u, occlusion.occlusionInTargetSurface().rects().size()); // The surface has a background blur, so it needs pixels that are currently considered occluded in order to be drawn. So the pixels @@ -2575,9 +2585,9 @@ protected: this->visitContributingSurface(filteredSurface, occlusion); this->enterLayer(parent, occlusion); - EXPECT_INT_RECT_EQ(IntRect(0, 0, 300, 150), occlusion.occlusionInScreenSpace().bounds()); + EXPECT_RECT_EQ(IntRect(0, 0, 300, 150), occlusion.occlusionInScreenSpace().bounds()); EXPECT_EQ(5u, occlusion.occlusionInScreenSpace().rects().size()); - EXPECT_INT_RECT_EQ(IntRect(0, 0, 300, 150), occlusion.occlusionInTargetSurface().bounds()); + EXPECT_RECT_EQ(IntRect(0, 0, 300, 150), occlusion.occlusionInTargetSurface().bounds()); EXPECT_EQ(5u, occlusion.occlusionInTargetSurface().rects().size()); IntRect outsetRect; @@ -2586,44 +2596,44 @@ protected: // Nothing in the blur outsets for the filteredSurface is occluded. outsetRect = IntRect(50 - outsetLeft, 50 - outsetTop, 50 + outsetLeft + outsetRight, 50 + outsetTop + outsetBottom); testRect = outsetRect; - EXPECT_INT_RECT_EQ(outsetRect, occlusion.unoccludedContentRect(parent, testRect)); + EXPECT_RECT_EQ(outsetRect, occlusion.unoccludedContentRect(parent, testRect)); // Stuff outside the blur outsets is still occluded though. testRect = outsetRect; testRect.expand(1, 0); - EXPECT_INT_RECT_EQ(outsetRect, occlusion.unoccludedContentRect(parent, testRect)); + EXPECT_RECT_EQ(outsetRect, occlusion.unoccludedContentRect(parent, testRect)); testRect = outsetRect; testRect.expand(0, 1); - EXPECT_INT_RECT_EQ(outsetRect, occlusion.unoccludedContentRect(parent, testRect)); + EXPECT_RECT_EQ(outsetRect, occlusion.unoccludedContentRect(parent, testRect)); testRect = outsetRect; testRect.move(-1, 0); testRect.expand(1, 0); - EXPECT_INT_RECT_EQ(outsetRect, occlusion.unoccludedContentRect(parent, testRect)); + EXPECT_RECT_EQ(outsetRect, occlusion.unoccludedContentRect(parent, testRect)); testRect = outsetRect; testRect.move(0, -1); testRect.expand(0, 1); - EXPECT_INT_RECT_EQ(outsetRect, occlusion.unoccludedContentRect(parent, testRect)); + EXPECT_RECT_EQ(outsetRect, occlusion.unoccludedContentRect(parent, testRect)); // Nothing in the blur outsets for the filteredSurface's replica is occluded. outsetRect = IntRect(200 - outsetLeft, 50 - outsetTop, 50 + outsetLeft + outsetRight, 50 + outsetTop + outsetBottom); testRect = outsetRect; - EXPECT_INT_RECT_EQ(outsetRect, occlusion.unoccludedContentRect(parent, testRect)); + EXPECT_RECT_EQ(outsetRect, occlusion.unoccludedContentRect(parent, testRect)); // Stuff outside the blur outsets is still occluded though. testRect = outsetRect; testRect.expand(1, 0); - EXPECT_INT_RECT_EQ(outsetRect, occlusion.unoccludedContentRect(parent, testRect)); + EXPECT_RECT_EQ(outsetRect, occlusion.unoccludedContentRect(parent, testRect)); testRect = outsetRect; testRect.expand(0, 1); - EXPECT_INT_RECT_EQ(outsetRect, occlusion.unoccludedContentRect(parent, testRect)); + EXPECT_RECT_EQ(outsetRect, occlusion.unoccludedContentRect(parent, testRect)); testRect = outsetRect; testRect.move(-1, 0); testRect.expand(1, 0); - EXPECT_INT_RECT_EQ(outsetRect, occlusion.unoccludedContentRect(parent, testRect)); + EXPECT_RECT_EQ(outsetRect, occlusion.unoccludedContentRect(parent, testRect)); testRect = outsetRect; testRect.move(0, -1); testRect.expand(0, 1); - EXPECT_INT_RECT_EQ(outsetRect, occlusion.unoccludedContentRect(parent, testRect)); + EXPECT_RECT_EQ(outsetRect, occlusion.unoccludedContentRect(parent, testRect)); } }; @@ -2661,9 +2671,9 @@ protected: occlusion.setLayerClipRect(IntRect(0, 0, 1000, 1000)); this->visitLayer(occludingLayerAbove, occlusion); - EXPECT_INT_RECT_EQ(IntRect(100 / 2, 100 / 2, 50 / 2, 50 / 2), occlusion.occlusionInScreenSpace().bounds()); + EXPECT_RECT_EQ(IntRect(100 / 2, 100 / 2, 50 / 2, 50 / 2), occlusion.occlusionInScreenSpace().bounds()); EXPECT_EQ(1u, occlusion.occlusionInScreenSpace().rects().size()); - EXPECT_INT_RECT_EQ(IntRect(100, 100, 50, 50), occlusion.occlusionInTargetSurface().bounds()); + EXPECT_RECT_EQ(IntRect(100, 100, 50, 50), occlusion.occlusionInTargetSurface().bounds()); EXPECT_EQ(1u, occlusion.occlusionInTargetSurface().rects().size()); this->visitLayer(filteredSurface2, occlusion); @@ -2676,7 +2686,7 @@ protected: // Test expectations in the target. IntRect expectedOcclusion = IntRect(100 + outsetRight * 2, 100 + outsetBottom * 2, 50 - (outsetLeft + outsetRight) * 2, 50 - (outsetTop + outsetBottom) * 2); - EXPECT_INT_RECT_EQ(expectedOcclusion, occlusion.occlusionInTargetSurface().rects()[0]); + EXPECT_RECT_EQ(expectedOcclusion, occlusion.occlusionInTargetSurface().rects()[0]); // Test expectations in the screen. Take the ceiling of half of the outsets. outsetTop = (outsetTop + 1) / 2; @@ -2685,7 +2695,7 @@ protected: outsetLeft = (outsetLeft + 1) / 2; expectedOcclusion = IntRect(100 / 2 + outsetRight * 2, 100 / 2 + outsetBottom * 2, 50 / 2 - (outsetLeft + outsetRight) * 2, 50 /2 - (outsetTop + outsetBottom) * 2); - EXPECT_INT_RECT_EQ(expectedOcclusion, occlusion.occlusionInScreenSpace().rects()[0]); + EXPECT_RECT_EQ(expectedOcclusion, occlusion.occlusionInScreenSpace().rects()[0]); } }; @@ -2732,28 +2742,28 @@ protected: this->visitLayer(occludingLayer2, occlusion); this->visitLayer(occludingLayer1, occlusion); - EXPECT_INT_RECT_EQ(IntRect(0, 0, 300, 150), occlusion.occlusionInScreenSpace().bounds()); + EXPECT_RECT_EQ(IntRect(0, 0, 300, 150), occlusion.occlusionInScreenSpace().bounds()); EXPECT_EQ(5u, occlusion.occlusionInScreenSpace().rects().size()); - EXPECT_INT_RECT_EQ(IntRect(0, 0, 300, 150), occlusion.occlusionInTargetSurface().bounds()); + EXPECT_RECT_EQ(IntRect(0, 0, 300, 150), occlusion.occlusionInTargetSurface().bounds()); EXPECT_EQ(5u, occlusion.occlusionInTargetSurface().rects().size()); // Everything outside the surface/replica is occluded but the surface/replica itself is not. this->enterLayer(filteredSurface, occlusion); - EXPECT_INT_RECT_EQ(IntRect(1, 0, 49, 50), occlusion.unoccludedContentRect(filteredSurface, IntRect(1, 0, 50, 50))); - EXPECT_INT_RECT_EQ(IntRect(0, 1, 50, 49), occlusion.unoccludedContentRect(filteredSurface, IntRect(0, 1, 50, 50))); - EXPECT_INT_RECT_EQ(IntRect(0, 0, 49, 50), occlusion.unoccludedContentRect(filteredSurface, IntRect(-1, 0, 50, 50))); - EXPECT_INT_RECT_EQ(IntRect(0, 0, 50, 49), occlusion.unoccludedContentRect(filteredSurface, IntRect(0, -1, 50, 50))); - - EXPECT_INT_RECT_EQ(IntRect(150 + 1, 0, 49, 50), occlusion.unoccludedContentRect(filteredSurface, IntRect(150 + 1, 0, 50, 50))); - EXPECT_INT_RECT_EQ(IntRect(150 + 0, 1, 50, 49), occlusion.unoccludedContentRect(filteredSurface, IntRect(150 + 0, 1, 50, 50))); - EXPECT_INT_RECT_EQ(IntRect(150 + 0, 0, 49, 50), occlusion.unoccludedContentRect(filteredSurface, IntRect(150 - 1, 0, 50, 50))); - EXPECT_INT_RECT_EQ(IntRect(150 + 0, 0, 50, 49), occlusion.unoccludedContentRect(filteredSurface, IntRect(150 + 0, -1, 50, 50))); + EXPECT_RECT_EQ(IntRect(1, 0, 49, 50), occlusion.unoccludedContentRect(filteredSurface, IntRect(1, 0, 50, 50))); + EXPECT_RECT_EQ(IntRect(0, 1, 50, 49), occlusion.unoccludedContentRect(filteredSurface, IntRect(0, 1, 50, 50))); + EXPECT_RECT_EQ(IntRect(0, 0, 49, 50), occlusion.unoccludedContentRect(filteredSurface, IntRect(-1, 0, 50, 50))); + EXPECT_RECT_EQ(IntRect(0, 0, 50, 49), occlusion.unoccludedContentRect(filteredSurface, IntRect(0, -1, 50, 50))); + + EXPECT_RECT_EQ(IntRect(150 + 1, 0, 49, 50), occlusion.unoccludedContentRect(filteredSurface, IntRect(150 + 1, 0, 50, 50))); + EXPECT_RECT_EQ(IntRect(150 + 0, 1, 50, 49), occlusion.unoccludedContentRect(filteredSurface, IntRect(150 + 0, 1, 50, 50))); + EXPECT_RECT_EQ(IntRect(150 + 0, 0, 49, 50), occlusion.unoccludedContentRect(filteredSurface, IntRect(150 - 1, 0, 50, 50))); + EXPECT_RECT_EQ(IntRect(150 + 0, 0, 50, 49), occlusion.unoccludedContentRect(filteredSurface, IntRect(150 + 0, -1, 50, 50))); this->leaveLayer(filteredSurface, occlusion); // The filtered layer/replica does not occlude. - EXPECT_INT_RECT_EQ(IntRect(0, 0, 300, 150), occlusion.occlusionInScreenSpace().bounds()); + EXPECT_RECT_EQ(IntRect(0, 0, 300, 150), occlusion.occlusionInScreenSpace().bounds()); EXPECT_EQ(5u, occlusion.occlusionInScreenSpace().rects().size()); - EXPECT_INT_RECT_EQ(IntRect(0, 0, 0, 0), occlusion.occlusionInTargetSurface().bounds()); + EXPECT_RECT_EQ(IntRect(0, 0, 0, 0), occlusion.occlusionInTargetSurface().bounds()); EXPECT_EQ(0u, occlusion.occlusionInTargetSurface().rects().size()); // The surface has a background blur, so it needs pixels that are currently considered occluded in order to be drawn. So the pixels @@ -2761,7 +2771,7 @@ protected: this->visitContributingSurface(filteredSurface, occlusion); this->enterContributingSurface(clippingSurface, occlusion); - EXPECT_INT_RECT_EQ(IntRect(0, 0, 300, 150), occlusion.occlusionInScreenSpace().bounds()); + EXPECT_RECT_EQ(IntRect(0, 0, 300, 150), occlusion.occlusionInScreenSpace().bounds()); EXPECT_EQ(5u, occlusion.occlusionInScreenSpace().rects().size()); IntRect outsetRect; @@ -2772,45 +2782,45 @@ protected: outsetRect = IntRect(50 - outsetLeft, 50 - outsetTop, 50 + outsetLeft + outsetRight, 50 + outsetTop + outsetBottom); clippedOutsetRect = intersection(outsetRect, IntRect(0 - outsetLeft, 0 - outsetTop, 300 + outsetLeft + outsetRight, 70 + outsetTop + outsetBottom)); testRect = outsetRect; - EXPECT_INT_RECT_EQ(clippedOutsetRect, occlusion.unoccludedContentRect(clippingSurface, testRect)); + EXPECT_RECT_EQ(clippedOutsetRect, occlusion.unoccludedContentRect(clippingSurface, testRect)); // Stuff outside the (clipped) blur outsets is still occluded though. testRect = outsetRect; testRect.expand(1, 0); - EXPECT_INT_RECT_EQ(clippedOutsetRect, occlusion.unoccludedContentRect(clippingSurface, testRect)); + EXPECT_RECT_EQ(clippedOutsetRect, occlusion.unoccludedContentRect(clippingSurface, testRect)); testRect = outsetRect; testRect.expand(0, 1); - EXPECT_INT_RECT_EQ(clippedOutsetRect, occlusion.unoccludedContentRect(clippingSurface, testRect)); + EXPECT_RECT_EQ(clippedOutsetRect, occlusion.unoccludedContentRect(clippingSurface, testRect)); testRect = outsetRect; testRect.move(-1, 0); testRect.expand(1, 0); - EXPECT_INT_RECT_EQ(clippedOutsetRect, occlusion.unoccludedContentRect(clippingSurface, testRect)); + EXPECT_RECT_EQ(clippedOutsetRect, occlusion.unoccludedContentRect(clippingSurface, testRect)); testRect = outsetRect; testRect.move(0, -1); testRect.expand(0, 1); - EXPECT_INT_RECT_EQ(clippedOutsetRect, occlusion.unoccludedContentRect(clippingSurface, testRect)); + EXPECT_RECT_EQ(clippedOutsetRect, occlusion.unoccludedContentRect(clippingSurface, testRect)); // Nothing in the (clipped) blur outsets for the filteredSurface's replica is occluded. outsetRect = IntRect(200 - outsetLeft, 50 - outsetTop, 50 + outsetLeft + outsetRight, 50 + outsetTop + outsetBottom); clippedOutsetRect = intersection(outsetRect, IntRect(0 - outsetLeft, 0 - outsetTop, 300 + outsetLeft + outsetRight, 70 + outsetTop + outsetBottom)); testRect = outsetRect; - EXPECT_INT_RECT_EQ(clippedOutsetRect, occlusion.unoccludedContentRect(clippingSurface, testRect)); + EXPECT_RECT_EQ(clippedOutsetRect, occlusion.unoccludedContentRect(clippingSurface, testRect)); // Stuff outside the (clipped) blur outsets is still occluded though. testRect = outsetRect; testRect.expand(1, 0); - EXPECT_INT_RECT_EQ(clippedOutsetRect, occlusion.unoccludedContentRect(clippingSurface, testRect)); + EXPECT_RECT_EQ(clippedOutsetRect, occlusion.unoccludedContentRect(clippingSurface, testRect)); testRect = outsetRect; testRect.expand(0, 1); - EXPECT_INT_RECT_EQ(clippedOutsetRect, occlusion.unoccludedContentRect(clippingSurface, testRect)); + EXPECT_RECT_EQ(clippedOutsetRect, occlusion.unoccludedContentRect(clippingSurface, testRect)); testRect = outsetRect; testRect.move(-1, 0); testRect.expand(1, 0); - EXPECT_INT_RECT_EQ(clippedOutsetRect, occlusion.unoccludedContentRect(clippingSurface, testRect)); + EXPECT_RECT_EQ(clippedOutsetRect, occlusion.unoccludedContentRect(clippingSurface, testRect)); testRect = outsetRect; testRect.move(0, -1); testRect.expand(0, 1); - EXPECT_INT_RECT_EQ(clippedOutsetRect, occlusion.unoccludedContentRect(clippingSurface, testRect)); + EXPECT_RECT_EQ(clippedOutsetRect, occlusion.unoccludedContentRect(clippingSurface, testRect)); } }; @@ -2856,9 +2866,9 @@ protected: IntRect occlusionBehindReplica = IntRect(210, 60, 30, 30); IntRect expectedOpaqueBounds = unionRect(occlusionBehindSurface, occlusionBehindReplica); - EXPECT_INT_RECT_EQ(expectedOpaqueBounds, occlusion.occlusionInScreenSpace().bounds()); + EXPECT_RECT_EQ(expectedOpaqueBounds, occlusion.occlusionInScreenSpace().bounds()); EXPECT_EQ(2u, occlusion.occlusionInScreenSpace().rects().size()); - EXPECT_INT_RECT_EQ(expectedOpaqueBounds, occlusion.occlusionInTargetSurface().bounds()); + EXPECT_RECT_EQ(expectedOpaqueBounds, occlusion.occlusionInTargetSurface().bounds()); EXPECT_EQ(2u, occlusion.occlusionInTargetSurface().rects().size()); } }; @@ -2904,9 +2914,9 @@ protected: IntRect occlusionAboveReplica = IntRect(200, 50, 50, 50); IntRect expectedOpaqueBounds = unionRect(occlusionAboveSurface, occlusionAboveReplica); - EXPECT_INT_RECT_EQ(expectedOpaqueBounds, occlusion.occlusionInScreenSpace().bounds()); + EXPECT_RECT_EQ(expectedOpaqueBounds, occlusion.occlusionInScreenSpace().bounds()); EXPECT_EQ(2u, occlusion.occlusionInScreenSpace().rects().size()); - EXPECT_INT_RECT_EQ(expectedOpaqueBounds, occlusion.occlusionInTargetSurface().bounds()); + EXPECT_RECT_EQ(expectedOpaqueBounds, occlusion.occlusionInTargetSurface().bounds()); EXPECT_EQ(2u, occlusion.occlusionInTargetSurface().rects().size()); } }; @@ -3005,17 +3015,17 @@ protected: // The small layer is not tracked because it is too small. this->visitLayer(small, occlusion); - EXPECT_INT_RECT_EQ(IntRect(), occlusion.occlusionInScreenSpace().bounds()); + EXPECT_RECT_EQ(IntRect(), occlusion.occlusionInScreenSpace().bounds()); EXPECT_EQ(0u, occlusion.occlusionInScreenSpace().rects().size()); - EXPECT_INT_RECT_EQ(IntRect(), occlusion.occlusionInTargetSurface().bounds()); + EXPECT_RECT_EQ(IntRect(), occlusion.occlusionInTargetSurface().bounds()); EXPECT_EQ(0u, occlusion.occlusionInTargetSurface().rects().size()); // The large layer is tracked as it is large enough. this->visitLayer(large, occlusion); - EXPECT_INT_RECT_EQ(IntRect(IntPoint(), trackingSize), occlusion.occlusionInScreenSpace().bounds()); + EXPECT_RECT_EQ(IntRect(IntPoint(), trackingSize), occlusion.occlusionInScreenSpace().bounds()); EXPECT_EQ(1u, occlusion.occlusionInScreenSpace().rects().size()); - EXPECT_INT_RECT_EQ(IntRect(IntPoint(), trackingSize), occlusion.occlusionInTargetSurface().bounds()); + EXPECT_RECT_EQ(IntRect(IntPoint(), trackingSize), occlusion.occlusionInTargetSurface().bounds()); EXPECT_EQ(1u, occlusion.occlusionInTargetSurface().rects().size()); } }; diff --git a/Source/WebKit/chromium/tests/CCPrioritizedTextureTest.cpp b/Source/WebKit/chromium/tests/CCPrioritizedTextureTest.cpp index 4bcaccdc3..9076d34d4 100644 --- a/Source/WebKit/chromium/tests/CCPrioritizedTextureTest.cpp +++ b/Source/WebKit/chromium/tests/CCPrioritizedTextureTest.cpp @@ -31,6 +31,7 @@ #include "CCTexture.h" #include "CCTiledLayerTestCommon.h" #include "FakeCCGraphicsContext.h" +#include "WebCompositorInitializer.h" #include <gtest/gtest.h> using namespace WebCore; @@ -44,6 +45,7 @@ public: CCPrioritizedTextureTest() : m_textureSize(256, 256) , m_textureFormat(GraphicsContext3D::RGBA) + , m_compositorInitializer(0) , m_context(WebKit::createFakeCCGraphicsContext()) { DebugScopedSetImplThread implThread; @@ -68,12 +70,12 @@ public: bool validateTexture(OwnPtr<CCPrioritizedTexture>& texture, bool requestLate) { - DebugScopedSetImplThread implThread; #if !ASSERT_DISABLED texture->textureManager()->assertInvariants(); #endif if (requestLate) texture->requestLate(); + DebugScopedSetImplThreadAndMainThreadBlocked implThreadAndMainThreadBlocked; bool success = texture->canAcquireBackingTexture(); if (success) texture->acquireBackingTexture(resourceProvider()); @@ -88,6 +90,7 @@ public: protected: const IntSize m_textureSize; const GC3Denum m_textureFormat; + WebCompositorInitializer m_compositorInitializer; OwnPtr<CCGraphicsContext> m_context; OwnPtr<CCResourceProvider> m_resourceProvider; }; @@ -128,7 +131,7 @@ TEST_F(CCPrioritizedTextureTest, requestTextureExceedingMaxLimit) EXPECT_EQ(texturesMemorySize(maxTextures), textureManager->memoryAboveCutoffBytes()); EXPECT_LE(textureManager->memoryUseBytes(), textureManager->memoryAboveCutoffBytes()); - DebugScopedSetImplThread implThread; + DebugScopedSetImplThreadAndMainThreadBlocked implThreadAndMainThreadBlocked; textureManager->clearAllMemory(resourceProvider()); } @@ -149,7 +152,7 @@ TEST_F(CCPrioritizedTextureTest, changeMemoryLimits) for (size_t i = 0; i < maxTextures; ++i) validateTexture(textures[i], false); { - DebugScopedSetImplThread implThread; + DebugScopedSetImplThreadAndMainThreadBlocked implThreadAndMainThreadBlocked; textureManager->reduceMemory(resourceProvider()); } @@ -162,7 +165,7 @@ TEST_F(CCPrioritizedTextureTest, changeMemoryLimits) for (size_t i = 0; i < maxTextures; ++i) EXPECT_EQ(validateTexture(textures[i], false), i < 5); { - DebugScopedSetImplThread implThread; + DebugScopedSetImplThreadAndMainThreadBlocked implThreadAndMainThreadBlocked; textureManager->reduceMemory(resourceProvider()); } @@ -175,14 +178,14 @@ TEST_F(CCPrioritizedTextureTest, changeMemoryLimits) for (size_t i = 0; i < maxTextures; ++i) EXPECT_EQ(validateTexture(textures[i], false), i < 4); { - DebugScopedSetImplThread implThread; + DebugScopedSetImplThreadAndMainThreadBlocked implThreadAndMainThreadBlocked; textureManager->reduceMemory(resourceProvider()); } EXPECT_EQ(texturesMemorySize(4), textureManager->memoryAboveCutoffBytes()); EXPECT_LE(textureManager->memoryUseBytes(), textureManager->memoryAboveCutoffBytes()); - DebugScopedSetImplThread implThread; + DebugScopedSetImplThreadAndMainThreadBlocked implThreadAndMainThreadBlocked; textureManager->clearAllMemory(resourceProvider()); } @@ -242,7 +245,7 @@ TEST_F(CCPrioritizedTextureTest, textureManagerPartialUpdateTextures) EXPECT_FALSE(textures[2]->haveBackingTexture()); EXPECT_FALSE(textures[3]->haveBackingTexture()); - DebugScopedSetImplThread implThread; + DebugScopedSetImplThreadAndMainThreadBlocked implThreadAndMainThreadBlocked; textureManager->clearAllMemory(resourceProvider()); } @@ -282,7 +285,7 @@ TEST_F(CCPrioritizedTextureTest, textureManagerPrioritiesAreEqual) EXPECT_EQ(texturesMemorySize(8), textureManager->memoryAboveCutoffBytes()); EXPECT_LE(textureManager->memoryUseBytes(), textureManager->memoryAboveCutoffBytes()); - DebugScopedSetImplThread implThread; + DebugScopedSetImplThreadAndMainThreadBlocked implThreadAndMainThreadBlocked; textureManager->clearAllMemory(resourceProvider()); } @@ -302,7 +305,7 @@ TEST_F(CCPrioritizedTextureTest, textureManagerDestroyedFirst) EXPECT_TRUE(texture->haveBackingTexture()); { - DebugScopedSetImplThread implThread; + DebugScopedSetImplThreadAndMainThreadBlocked implThreadAndMainThreadBlocked; textureManager->clearAllMemory(resourceProvider()); } textureManager.clear(); @@ -330,7 +333,7 @@ TEST_F(CCPrioritizedTextureTest, textureMovedToNewManager) texture->setTextureManager(0); { - DebugScopedSetImplThread implThread; + DebugScopedSetImplThreadAndMainThreadBlocked implThreadAndMainThreadBlocked; textureManagerOne->clearAllMemory(resourceProvider()); } textureManagerOne.clear(); @@ -346,7 +349,7 @@ TEST_F(CCPrioritizedTextureTest, textureMovedToNewManager) EXPECT_TRUE(texture->canAcquireBackingTexture()); EXPECT_TRUE(texture->haveBackingTexture()); - DebugScopedSetImplThread implThread; + DebugScopedSetImplThreadAndMainThreadBlocked implThreadAndMainThreadBlocked; textureManagerTwo->clearAllMemory(resourceProvider()); } @@ -392,7 +395,7 @@ TEST_F(CCPrioritizedTextureTest, renderSurfacesReduceMemoryAvailableOutsideRootS EXPECT_EQ(texturesMemorySize(4), textureManager->memoryForSelfManagedTextures()); EXPECT_LE(textureManager->memoryUseBytes(), textureManager->memoryAboveCutoffBytes()); - DebugScopedSetImplThread implThread; + DebugScopedSetImplThreadAndMainThreadBlocked implThreadAndMainThreadBlocked; textureManager->clearAllMemory(resourceProvider()); } @@ -429,7 +432,7 @@ TEST_F(CCPrioritizedTextureTest, renderSurfacesReduceMemoryAvailableForRequestLa EXPECT_EQ(texturesMemorySize(4), textureManager->memoryForSelfManagedTextures()); EXPECT_LE(textureManager->memoryUseBytes(), textureManager->memoryAboveCutoffBytes()); - DebugScopedSetImplThread implThread; + DebugScopedSetImplThreadAndMainThreadBlocked implThreadAndMainThreadBlocked; textureManager->clearAllMemory(resourceProvider()); } @@ -469,7 +472,7 @@ TEST_F(CCPrioritizedTextureTest, whenRenderSurfaceNotAvailableTexturesAlsoNotAva EXPECT_EQ(texturesMemorySize(2), textureManager->memoryForSelfManagedTextures()); EXPECT_LE(textureManager->memoryUseBytes(), textureManager->memoryAboveCutoffBytes()); - DebugScopedSetImplThread implThread; + DebugScopedSetImplThreadAndMainThreadBlocked implThreadAndMainThreadBlocked; textureManager->clearAllMemory(resourceProvider()); } diff --git a/Source/WebKit/chromium/tests/CCQuadCullerTest.cpp b/Source/WebKit/chromium/tests/CCQuadCullerTest.cpp index 2c5e8859c..b8dc30f72 100644 --- a/Source/WebKit/chromium/tests/CCQuadCullerTest.cpp +++ b/Source/WebKit/chromium/tests/CCQuadCullerTest.cpp @@ -26,6 +26,7 @@ #include "CCQuadCuller.h" +#include "CCAppendQuadsData.h" #include "CCLayerTilingData.h" #include "CCMathUtil.h" #include "CCOcclusionTracker.h" @@ -100,8 +101,8 @@ static void appendQuads(CCQuadList& quadList, CCSharedQuadStateList& sharedState { occlusionTracker.enterLayer(it); CCQuadCuller quadCuller(quadList, sharedStateList, layer, &occlusionTracker, false, false); - bool hadMissingTiles = false; - layer->appendQuads(quadCuller, hadMissingTiles); + CCAppendQuadsData data; + layer->appendQuads(quadCuller, data); occlusionTracker.leaveLayer(it); ++it; } diff --git a/Source/WebKit/chromium/tests/CCRenderPassTest.cpp b/Source/WebKit/chromium/tests/CCRenderPassTest.cpp new file mode 100644 index 000000000..8f63ad326 --- /dev/null +++ b/Source/WebKit/chromium/tests/CCRenderPassTest.cpp @@ -0,0 +1,107 @@ +/* + * Copyright (C) 2012 Google Inc. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#include "config.h" + +#include "CCRenderPass.h" + +#include "CCCheckerboardDrawQuad.h" +#include "CCGeometryTestUtils.h" +#include <gtest/gtest.h> +#include <public/WebFilterOperations.h> +#include <public/WebTransformationMatrix.h> + +using WebKit::WebFilterOperation; +using WebKit::WebFilterOperations; +using WebKit::WebTransformationMatrix; + +using namespace WebCore; + +namespace { + +class CCTestRenderPass : public CCRenderPass { +public: + CCQuadList& quadList() { return m_quadList; } + CCSharedQuadStateList& sharedQuadStateList() { return m_sharedQuadStateList; } +}; + +struct CCRenderPassSize { + // If you add a new field to this class, make sure to add it to the copy() tests. + CCRenderPass::Id m_id; + CCQuadList m_quadList; + CCSharedQuadStateList m_sharedQuadStateList; + WebKit::WebTransformationMatrix m_transformToRootTarget; + IntRect m_outputRect; + FloatRect m_damageRect; + bool m_hasTransparentBackground; + bool m_hasOcclusionFromOutsideTargetSurface; + WebKit::WebFilterOperations m_filters; + WebKit::WebFilterOperations m_backgroundFilters; +}; + +TEST(CCRenderPassTest, copyShouldBeIdenticalExceptIdAndQuads) +{ + CCRenderPass::Id id(3, 2); + IntRect outputRect(45, 22, 120, 13); + WebTransformationMatrix transformToRoot(1, 0.5, 0.5, -0.5, -1, 0); + + OwnPtr<CCRenderPass> pass(CCRenderPass::create(id, outputRect, transformToRoot)); + + IntRect damageRect(56, 123, 19, 43); + bool hasTransparentBackground = true; + bool hasOcclusionFromOutsideTargetSurface = true; + WebFilterOperations filters; + WebFilterOperations backgroundFilters; + + filters.append(WebFilterOperation::createGrayscaleFilter(0.2f)); + backgroundFilters.append(WebFilterOperation::createInvertFilter(0.2f)); + + pass->setDamageRect(damageRect); + pass->setHasTransparentBackground(hasTransparentBackground); + pass->setHasOcclusionFromOutsideTargetSurface(hasOcclusionFromOutsideTargetSurface); + pass->setFilters(filters); + pass->setBackgroundFilters(backgroundFilters); + + // Stick a quad in the pass, this should not get copied. + CCTestRenderPass* testPass = static_cast<CCTestRenderPass*>(pass.get()); + testPass->sharedQuadStateList().append(CCSharedQuadState::create(WebTransformationMatrix(), IntRect(), IntRect(), 1, false)); + testPass->quadList().append(CCCheckerboardDrawQuad::create(testPass->sharedQuadStateList().last().get(), IntRect())); + + CCRenderPass::Id newId(63, 4); + + OwnPtr<CCRenderPass> copy(pass->copy(newId)); + EXPECT_EQ(newId, copy->id()); + EXPECT_RECT_EQ(pass->outputRect(), copy->outputRect()); + EXPECT_EQ(pass->transformToRootTarget(), copy->transformToRootTarget()); + EXPECT_RECT_EQ(pass->damageRect(), copy->damageRect()); + EXPECT_EQ(pass->hasTransparentBackground(), copy->hasTransparentBackground()); + EXPECT_EQ(pass->hasOcclusionFromOutsideTargetSurface(), copy->hasOcclusionFromOutsideTargetSurface()); + EXPECT_EQ(pass->filters(), copy->filters()); + EXPECT_EQ(pass->backgroundFilters(), copy->backgroundFilters()); + EXPECT_EQ(0u, copy->quadList().size()); + + EXPECT_EQ(sizeof(CCRenderPassSize), sizeof(CCRenderPass)); +} + +} // namespace diff --git a/Source/WebKit/chromium/tests/CCRenderSurfaceTest.cpp b/Source/WebKit/chromium/tests/CCRenderSurfaceTest.cpp index 05d716641..d66b8c951 100644 --- a/Source/WebKit/chromium/tests/CCRenderSurfaceTest.cpp +++ b/Source/WebKit/chromium/tests/CCRenderSurfaceTest.cpp @@ -26,7 +26,9 @@ #include "CCRenderSurface.h" +#include "CCAppendQuadsData.h" #include "CCLayerImpl.h" +#include "CCRenderPassSink.h" #include "CCSharedQuadState.h" #include "CCSingleThreadProxy.h" #include "MockCCQuadCuller.h" @@ -119,9 +121,10 @@ TEST(CCRenderSurfaceTest, sanityCheckSurfaceCreatesCorrectSharedQuadState) CCQuadList quadList; CCSharedQuadStateList sharedStateList; MockCCQuadCuller mockQuadCuller(quadList, sharedStateList); + CCAppendQuadsData appendQuadsData; bool forReplica = false; - renderSurface->appendQuads(mockQuadCuller, forReplica, 1); + renderSurface->appendQuads(mockQuadCuller, appendQuadsData, forReplica, CCRenderPass::Id(2, 0)); ASSERT_EQ(1u, sharedStateList.size()); CCSharedQuadState* sharedQuadState = sharedStateList[0].get(); @@ -133,4 +136,49 @@ TEST(CCRenderSurfaceTest, sanityCheckSurfaceCreatesCorrectSharedQuadState) EXPECT_FALSE(sharedQuadState->opaque); } +class TestCCRenderPassSink : public CCRenderPassSink { +public: + virtual void appendRenderPass(PassOwnPtr<CCRenderPass> renderPass) OVERRIDE { m_renderPasses.append(renderPass); } + + const Vector<OwnPtr<CCRenderPass> >& renderPasses() const { return m_renderPasses; } + +private: + Vector<OwnPtr<CCRenderPass> > m_renderPasses; + +}; + +TEST(CCRenderSurfaceTest, sanityCheckSurfaceCreatesCorrectRenderPass) +{ + // This will fake that we are on the correct thread for testing purposes. + DebugScopedSetImplThread setImplThread; + + OwnPtr<CCLayerImpl> rootLayer = CCLayerImpl::create(1); + + OwnPtr<CCLayerImpl> owningLayer = CCLayerImpl::create(2); + owningLayer->createRenderSurface(); + ASSERT_TRUE(owningLayer->renderSurface()); + owningLayer->setRenderTarget(owningLayer.get()); + CCRenderSurface* renderSurface = owningLayer->renderSurface(); + + rootLayer->addChild(owningLayer.release()); + + IntRect contentRect = IntRect(IntPoint::zero(), IntSize(50, 50)); + WebTransformationMatrix origin; + origin.translate(30, 40); + + renderSurface->setScreenSpaceTransform(origin); + renderSurface->setContentRect(contentRect); + + TestCCRenderPassSink passSink; + + renderSurface->appendRenderPasses(passSink); + + ASSERT_EQ(1u, passSink.renderPasses().size()); + CCRenderPass* pass = passSink.renderPasses()[0].get(); + + EXPECT_EQ(CCRenderPass::Id(2, 0), pass->id()); + EXPECT_EQ(contentRect, pass->outputRect()); + EXPECT_EQ(origin, pass->transformToRootTarget()); +} + } // namespace diff --git a/Source/WebKit/chromium/tests/CCRendererGLTest.cpp b/Source/WebKit/chromium/tests/CCRendererGLTest.cpp index 2f3fd6a08..75e653d6f 100644 --- a/Source/WebKit/chromium/tests/CCRendererGLTest.cpp +++ b/Source/WebKit/chromium/tests/CCRendererGLTest.cpp @@ -33,9 +33,9 @@ #include "FakeWebCompositorOutputSurface.h" #include "FakeWebGraphicsContext3D.h" #include "GraphicsContext3D.h" +#include "WebCompositorInitializer.h" #include <gmock/gmock.h> #include <gtest/gtest.h> -#include <public/WebCompositor.h> #include <public/WebTransformationMatrix.h> using namespace WebCore; @@ -80,9 +80,11 @@ public: , m_rootLayer(CCLayerImpl::create(1)) , m_memoryAllocationLimitBytes(CCPrioritizedTextureManager::defaultMemoryAllocationLimit()) { - OwnPtr<CCRenderPass> rootRenderPass = CCRenderPass::create(m_rootLayer->id(), IntRect(), WebTransformationMatrix()); + m_rootLayer->createRenderSurface(); + CCRenderPass::Id renderPassId = m_rootLayer->renderSurface()->renderPassId(); + OwnPtr<CCRenderPass> rootRenderPass = CCRenderPass::create(renderPassId, IntRect(), WebTransformationMatrix()); m_renderPassesInDrawOrder.append(rootRenderPass.get()); - m_renderPasses.set(m_rootLayer->id(), rootRenderPass.release()); + m_renderPasses.set(renderPassId, rootRenderPass.release()); } // CCRendererClient methods. @@ -128,6 +130,7 @@ protected: CCRendererGLTest() : m_suggestHaveBackbufferYes(1, true) , m_suggestHaveBackbufferNo(1, false) + , m_compositorInitializer(0) , m_context(FakeWebCompositorOutputSurface::create(adoptPtr(new FrameCountingMemoryAllocationSettingContext()))) , m_resourceProvider(CCResourceProvider::create(m_context.get())) , m_renderer(&m_mockClient, m_resourceProvider.get()) @@ -136,15 +139,9 @@ protected: virtual void SetUp() { - WebKit::WebCompositor::initialize(0); m_renderer.initialize(); } - virtual void TearDown() - { - WebKit::WebCompositor::shutdown(); - } - void swapBuffers() { m_renderer.swapBuffers(); @@ -155,6 +152,7 @@ protected: WebGraphicsMemoryAllocation m_suggestHaveBackbufferYes; WebGraphicsMemoryAllocation m_suggestHaveBackbufferNo; + WebCompositorInitializer m_compositorInitializer; OwnPtr<CCGraphicsContext> m_context; FakeCCRendererClient m_mockClient; OwnPtr<CCResourceProvider> m_resourceProvider; diff --git a/Source/WebKit/chromium/tests/CCSchedulerStateMachineTest.cpp b/Source/WebKit/chromium/tests/CCSchedulerStateMachineTest.cpp index 563c2c04c..7454c9eda 100644 --- a/Source/WebKit/chromium/tests/CCSchedulerStateMachineTest.cpp +++ b/Source/WebKit/chromium/tests/CCSchedulerStateMachineTest.cpp @@ -136,6 +136,7 @@ TEST(CCSchedulerStateMachineTest, TestNextActionBeginsFrameIfNeeded) TEST(CCSchedulerStateMachineTest, TestSetForcedRedrawDoesNotSetsNormalRedraw) { CCSchedulerStateMachine state; + state.setCanDraw(true); state.setNeedsForcedRedraw(); EXPECT_FALSE(state.redrawPending()); EXPECT_TRUE(state.vsyncCallbackNeeded()); @@ -146,6 +147,7 @@ TEST(CCSchedulerStateMachineTest, TestFailedDrawSetsNeedsCommitAndDoesNotDrawAga CCSchedulerStateMachine state; state.setCanBeginFrame(true); state.setVisible(true); + state.setCanDraw(true); state.setNeedsRedraw(); EXPECT_TRUE(state.redrawPending()); EXPECT_TRUE(state.vsyncCallbackNeeded()); @@ -171,6 +173,7 @@ TEST(CCSchedulerStateMachineTest, TestSetNeedsRedrawDuringFailedDrawDoesNotRemov CCSchedulerStateMachine state; state.setCanBeginFrame(true); state.setVisible(true); + state.setCanDraw(true); state.setNeedsRedraw(); EXPECT_TRUE(state.redrawPending()); EXPECT_TRUE(state.vsyncCallbackNeeded()); @@ -199,6 +202,7 @@ TEST(CCSchedulerStateMachineTest, TestCommitAfterFailedDrawAllowsDrawInSameFrame CCSchedulerStateMachine state; state.setCanBeginFrame(true); state.setVisible(true); + state.setCanDraw(true); // Start a commit. state.setNeedsCommit(); @@ -239,6 +243,7 @@ TEST(CCSchedulerStateMachineTest, TestCommitAfterFailedAndSuccessfulDrawDoesNotA CCSchedulerStateMachine state; state.setCanBeginFrame(true); state.setVisible(true); + state.setCanDraw(true); // Start a commit. state.setNeedsCommit(); @@ -290,6 +295,7 @@ TEST(CCSchedulerStateMachineTest, TestFailedDrawsWillEventuallyForceADrawAfterTh CCSchedulerStateMachine state; state.setCanBeginFrame(true); state.setVisible(true); + state.setCanDraw(true); state.setMaximumNumberOfFailedDrawsBeforeDrawIsForced(1); // Start a commit. @@ -332,6 +338,7 @@ TEST(CCSchedulerStateMachineTest, TestFailedDrawIsRetriedNextVSync) CCSchedulerStateMachine state; state.setCanBeginFrame(true); state.setVisible(true); + state.setCanDraw(true); // Start a draw. state.setNeedsRedraw(); @@ -361,6 +368,7 @@ TEST(CCSchedulerStateMachineTest, TestDoestDrawTwiceInSameFrame) { CCSchedulerStateMachine state; state.setVisible(true); + state.setCanDraw(true); state.setNeedsRedraw(); EXPECT_TRUE(state.vsyncCallbackNeeded()); state.didEnterVSync(); @@ -413,6 +421,7 @@ TEST(CCSchedulerStateMachineTest, TestNextActionDrawsOnVSync) for (size_t i = 0; i < numCommitStates; ++i) { for (unsigned j = 0; j < 2; ++j) { StateMachine state; + state.setCanDraw(true); state.setCommitState(allCommitStates[i]); bool forcedDraw = j; if (!forcedDraw) { @@ -525,6 +534,28 @@ TEST(CCSchedulerStateMachineTest, TestCanRedrawWithWaitingForFirstDrawMakesProgr EXPECT_EQ(CCSchedulerStateMachine::ACTION_BEGIN_FRAME, state.nextAction()); } +TEST(CCSchedulerStateMachineTest, TestVsyncCallbackNeededOnCanDrawAndResourceUpdates) +{ + StateMachine state; + state.setCommitState(CCSchedulerStateMachine::COMMIT_STATE_WAITING_FOR_FIRST_DRAW); + state.setCanBeginFrame(true); + state.setNeedsCommit(true); + state.setNeedsRedraw(true); + state.setUpdateMoreResourcesPending(false); + state.setVisible(true); + state.setCanDraw(false); + EXPECT_FALSE(state.vsyncCallbackNeeded()); + + state.setUpdateMoreResourcesPending(true); + EXPECT_TRUE(state.vsyncCallbackNeeded()); + + state.setUpdateMoreResourcesPending(false); + EXPECT_FALSE(state.vsyncCallbackNeeded()); + + state.setCanDraw(true); + EXPECT_TRUE(state.vsyncCallbackNeeded()); +} + TEST(CCSchedulerStateMachineTest, TestUpdates_NoRedraw_OneRoundOfUpdates) { StateMachine state; @@ -532,6 +563,7 @@ TEST(CCSchedulerStateMachineTest, TestUpdates_NoRedraw_OneRoundOfUpdates) state.setNeedsRedraw(false); state.setUpdateMoreResourcesPending(false); state.setVisible(true); + state.setCanDraw(true); // Verify we begin update, both for vsync and not vsync. EXPECT_EQ(CCSchedulerStateMachine::ACTION_BEGIN_UPDATE_MORE_RESOURCES, state.nextAction()); @@ -560,6 +592,7 @@ TEST(CCSchedulerStateMachineTest, TestUpdates_NoRedraw_TwoRoundsOfUpdates) state.setNeedsRedraw(false); state.setUpdateMoreResourcesPending(false); state.setVisible(true); + state.setCanDraw(true); // Verify the update begins, both for vsync and not vsync. state.didEnterVSync(); @@ -599,6 +632,7 @@ TEST(CCSchedulerStateMachineTest, TestUpdates_NoRedraw_TwoRoundsOfUpdates) TEST(CCSchedulerStateMachineTest, TestVSyncNeededWhenUpdatesPendingButInvisible) { StateMachine state; + state.setCanDraw(true); state.setCommitState(CCSchedulerStateMachine::COMMIT_STATE_UPDATING_RESOURCES); state.setNeedsRedraw(false); state.setVisible(false); @@ -616,6 +650,7 @@ TEST(CCSchedulerStateMachineTest, TestUpdates_WithRedraw_OneRoundOfUpdates) state.setNeedsRedraw(true); state.setUpdateMoreResourcesPending(false); state.setVisible(true); + state.setCanDraw(true); EXPECT_EQ(CCSchedulerStateMachine::ACTION_BEGIN_UPDATE_MORE_RESOURCES, state.nextAction()); // Begin an update. @@ -663,6 +698,7 @@ TEST(CCSchedulerStateMachineTest, TestSetNeedsCommitIsNotLost) state.setCanBeginFrame(true); state.setNeedsCommit(true); state.setVisible(true); + state.setCanDraw(true); // Begin the frame. EXPECT_EQ(CCSchedulerStateMachine::ACTION_BEGIN_FRAME, state.nextAction()); @@ -705,6 +741,7 @@ TEST(CCSchedulerStateMachineTest, TestFullCycle) StateMachine state; state.setCanBeginFrame(true); state.setVisible(true); + state.setCanDraw(true); // Start clean and set commit. state.setNeedsCommit(true); @@ -729,7 +766,7 @@ TEST(CCSchedulerStateMachineTest, TestFullCycle) // Commit. state.updateState(CCSchedulerStateMachine::ACTION_COMMIT); - EXPECT_EQ(CCSchedulerStateMachine::COMMIT_STATE_IDLE, state.commitState()); + EXPECT_EQ(CCSchedulerStateMachine::COMMIT_STATE_WAITING_FOR_FIRST_DRAW, state.commitState()); EXPECT_TRUE(state.needsRedraw()); // Expect to do nothing until vsync. @@ -753,6 +790,7 @@ TEST(CCSchedulerStateMachineTest, TestFullCycleWithCommitRequestInbetween) StateMachine state; state.setCanBeginFrame(true); state.setVisible(true); + state.setCanDraw(true); // Start clean and set commit. state.setNeedsCommit(true); @@ -812,6 +850,7 @@ TEST(CCSchedulerStateMachineTest, TestGoesInvisibleBeforeBeginFrameCompletes) StateMachine state; state.setCanBeginFrame(true); state.setVisible(true); + state.setCanDraw(true); // Start clean and set commit. state.setNeedsCommit(true); @@ -830,6 +869,19 @@ TEST(CCSchedulerStateMachineTest, TestGoesInvisibleBeforeBeginFrameCompletes) // We should now be back in the idle state as if we didn't start a frame at all. EXPECT_EQ(CCSchedulerStateMachine::COMMIT_STATE_IDLE, state.commitState()); EXPECT_EQ(CCSchedulerStateMachine::ACTION_NONE, state.nextAction()); + + // Become visible again + state.setVisible(true); + + // We should be beginning a frame now + EXPECT_EQ(CCSchedulerStateMachine::COMMIT_STATE_IDLE, state.commitState()); + EXPECT_EQ(CCSchedulerStateMachine::ACTION_BEGIN_FRAME, state.nextAction()); + + // Begin the frame + state.updateState(state.nextAction()); + + // We should be starting the commit now + EXPECT_EQ(CCSchedulerStateMachine::COMMIT_STATE_FRAME_IN_PROGRESS, state.commitState()); } TEST(CCSchedulerStateMachineTest, TestContextLostWhenCompletelyIdle) @@ -837,6 +889,7 @@ TEST(CCSchedulerStateMachineTest, TestContextLostWhenCompletelyIdle) StateMachine state; state.setCanBeginFrame(true); state.setVisible(true); + state.setCanDraw(true); state.didLoseContext(); @@ -859,6 +912,7 @@ TEST(CCSchedulerStateMachineTest, TestContextLostWhenIdleAndCommitRequestedWhile StateMachine state; state.setCanBeginFrame(true); state.setVisible(true); + state.setCanDraw(true); state.didLoseContext(); @@ -895,6 +949,7 @@ TEST(CCSchedulerStateMachineTest, TestContextLostWhileCommitInProgress) StateMachine state; state.setCanBeginFrame(true); state.setVisible(true); + state.setCanDraw(true); // Get a commit in flight. state.setNeedsCommit(true); @@ -924,6 +979,11 @@ TEST(CCSchedulerStateMachineTest, TestContextLostWhileCommitInProgress) EXPECT_EQ(CCSchedulerStateMachine::ACTION_COMMIT, state.nextAction()); state.updateState(state.nextAction()); + EXPECT_EQ(CCSchedulerStateMachine::COMMIT_STATE_WAITING_FOR_FIRST_DRAW, state.commitState()); + + EXPECT_EQ(CCSchedulerStateMachine::ACTION_DRAW_IF_POSSIBLE, state.nextAction()); + state.updateState(state.nextAction()); + // Expect to be told to begin context recreation, independent of vsync state state.didEnterVSync(); EXPECT_EQ(CCSchedulerStateMachine::ACTION_BEGIN_CONTEXT_RECREATION, state.nextAction()); @@ -936,6 +996,7 @@ TEST(CCSchedulerStateMachineTest, TestContextLostWhileCommitInProgressAndAnother StateMachine state; state.setCanBeginFrame(true); state.setVisible(true); + state.setCanDraw(true); // Get a commit in flight. state.setNeedsCommit(true); @@ -953,9 +1014,6 @@ TEST(CCSchedulerStateMachineTest, TestContextLostWhileCommitInProgressAndAnother state.didLoseContext(); // Ask for another draw and also set needs commit. Expect nothing happens. - // Setting another commit will put us into - // COMMIT_STATE_WAITING_FOR_FIRST_DRAW after we finish the frame on the main - // thread. state.setNeedsRedraw(true); state.setNeedsCommit(true); EXPECT_EQ(CCSchedulerStateMachine::ACTION_NONE, state.nextAction()); @@ -986,6 +1044,7 @@ TEST(CCSchedulerStateMachineTest, TestFinishAllRenderingWhileContextLost) { StateMachine state; state.setVisible(true); + state.setCanDraw(true); // Cause a lost context lost. state.didLoseContext(); @@ -1024,6 +1083,7 @@ TEST(CCSchedulerStateMachineTest, TestBeginFrameWhenCanBeginFrameFalseAndForceCo { StateMachine state; state.setVisible(true); + state.setCanDraw(true); state.setNeedsCommit(true); state.setNeedsForcedCommit(true); EXPECT_EQ(CCSchedulerStateMachine::ACTION_BEGIN_FRAME, state.nextAction()); @@ -1046,7 +1106,7 @@ TEST(CCSchedulerStateMachineTest, TestBeginFrameWhenCommitInProgress) EXPECT_EQ(CCSchedulerStateMachine::ACTION_COMMIT, state.nextAction()); state.updateState(state.nextAction()); - EXPECT_EQ(CCSchedulerStateMachine::COMMIT_STATE_IDLE, state.commitState()); + EXPECT_EQ(CCSchedulerStateMachine::COMMIT_STATE_WAITING_FOR_FIRST_DRAW, state.commitState()); EXPECT_EQ(CCSchedulerStateMachine::ACTION_BEGIN_FRAME, state.nextAction()); } @@ -1056,6 +1116,7 @@ TEST(CCSchedulerStateMachineTest, TestBeginFrameWhenContextLost) StateMachine state; state.setCanBeginFrame(true); state.setVisible(true); + state.setCanDraw(true); state.setNeedsCommit(true); state.setNeedsForcedCommit(true); state.didLoseContext(); diff --git a/Source/WebKit/chromium/tests/CCSchedulerTest.cpp b/Source/WebKit/chromium/tests/CCSchedulerTest.cpp index 93ff66ea2..eb933f92f 100644 --- a/Source/WebKit/chromium/tests/CCSchedulerTest.cpp +++ b/Source/WebKit/chromium/tests/CCSchedulerTest.cpp @@ -44,14 +44,12 @@ public: { m_actions.clear(); m_hasMoreResourceUpdates = false; - m_canDraw = true; m_drawWillHappen = true; m_swapWillHappenIfDrawHappens = true; m_numDraws = 0; } void setHasMoreResourceUpdates(bool b) { m_hasMoreResourceUpdates = b; } - void setCanDraw(bool b) { m_canDraw = b; } int numDraws() const { return m_numDraws; } int numActions() const { return static_cast<int>(m_actions.size()); } @@ -65,8 +63,8 @@ public: return false; } - virtual bool canDraw() OVERRIDE { return m_canDraw; } virtual bool hasMoreResourceUpdates() const OVERRIDE { return m_hasMoreResourceUpdates; } + virtual void scheduledActionBeginFrame() OVERRIDE { m_actions.push_back("scheduledActionBeginFrame"); } virtual CCScheduledActionDrawAndSwapResult scheduledActionDrawAndSwapIfPossible() OVERRIDE { @@ -91,7 +89,6 @@ public: protected: bool m_hasMoreResourceUpdates; - bool m_canDraw; bool m_drawWillHappen; bool m_swapWillHappenIfDrawHappens; int m_numDraws; @@ -105,6 +102,7 @@ TEST(CCSchedulerTest, RequestCommit) OwnPtr<CCScheduler> scheduler = CCScheduler::create(&client, adoptPtr(new CCFrameRateController(timeSource))); scheduler->setCanBeginFrame(true); scheduler->setVisible(true); + scheduler->setCanDraw(true); // SetNeedsCommit should begin the frame. scheduler->setNeedsCommit(); @@ -139,6 +137,7 @@ TEST(CCSchedulerTest, RequestCommitAfterBeginFrame) OwnPtr<CCScheduler> scheduler = CCScheduler::create(&client, adoptPtr(new CCFrameRateController(timeSource))); scheduler->setCanBeginFrame(true); scheduler->setVisible(true); + scheduler->setCanDraw(true); // SetNedsCommit should begin the frame. scheduler->setNeedsCommit(); @@ -172,6 +171,7 @@ TEST(CCSchedulerTest, TextureAcquisitionCollision) OwnPtr<CCScheduler> scheduler = CCScheduler::create(&client, adoptPtr(new CCFrameRateController(timeSource))); scheduler->setCanBeginFrame(true); scheduler->setVisible(true); + scheduler->setCanDraw(true); scheduler->setNeedsCommit(); scheduler->setMainThreadNeedsLayerTextures(); @@ -210,6 +210,7 @@ TEST(CCSchedulerTest, VisibilitySwitchWithTextureAcquisition) OwnPtr<CCScheduler> scheduler = CCScheduler::create(&client, adoptPtr(new CCFrameRateController(timeSource))); scheduler->setCanBeginFrame(true); scheduler->setVisible(true); + scheduler->setCanDraw(true); scheduler->setNeedsCommit(); scheduler->beginFrameComplete(); @@ -273,6 +274,7 @@ TEST(CCSchedulerTest, RequestRedrawInsideDraw) client.setScheduler(scheduler.get()); scheduler->setCanBeginFrame(true); scheduler->setVisible(true); + scheduler->setCanDraw(true); scheduler->setNeedsRedraw(); EXPECT_TRUE(scheduler->redrawPending()); @@ -299,6 +301,7 @@ TEST(CCSchedulerTest, RequestRedrawInsideFailedDraw) client.setScheduler(scheduler.get()); scheduler->setCanBeginFrame(true); scheduler->setVisible(true); + scheduler->setCanDraw(true); client.setDrawWillHappen(false); scheduler->setNeedsRedraw(); @@ -371,6 +374,7 @@ TEST(CCSchedulerTest, RequestCommitInsideDraw) client.setScheduler(scheduler.get()); scheduler->setCanBeginFrame(true); scheduler->setVisible(true); + scheduler->setCanDraw(true); scheduler->setNeedsRedraw(); EXPECT_TRUE(scheduler->redrawPending()); @@ -398,6 +402,7 @@ TEST(CCSchedulerTest, RequestCommitInsideFailedDraw) client.setScheduler(scheduler.get()); scheduler->setCanBeginFrame(true); scheduler->setVisible(true); + scheduler->setCanDraw(true); client.setDrawWillHappen(false); scheduler->setNeedsRedraw(); @@ -440,6 +445,7 @@ TEST(CCSchedulerTest, NoBeginFrameWhenDrawFails) client.setScheduler(scheduler.get()); scheduler->setCanBeginFrame(true); scheduler->setVisible(true); + scheduler->setCanDraw(true); EXPECT_EQ(0, controllerPtr->numFramesPending()); diff --git a/Source/WebKit/chromium/tests/CCSolidColorLayerImplTest.cpp b/Source/WebKit/chromium/tests/CCSolidColorLayerImplTest.cpp index 220189b41..b330abcaa 100644 --- a/Source/WebKit/chromium/tests/CCSolidColorLayerImplTest.cpp +++ b/Source/WebKit/chromium/tests/CCSolidColorLayerImplTest.cpp @@ -26,6 +26,7 @@ #include "CCSolidColorLayerImpl.h" +#include "CCAppendQuadsData.h" #include "CCLayerTestCommon.h" #include "CCSingleThreadProxy.h" #include "CCSolidColorDrawQuad.h" @@ -53,8 +54,8 @@ TEST(CCSolidColorLayerImplTest, verifyTilingCompleteAndNoOverlap) layer->createRenderSurface(); layer->setRenderTarget(layer.get()); - bool hadMissingTiles = false; - layer->appendQuads(quadCuller, hadMissingTiles); + CCAppendQuadsData data; + layer->appendQuads(quadCuller, data); verifyQuadsExactlyCoverRect(quadCuller.quadList(), visibleContentRect); } @@ -77,8 +78,8 @@ TEST(CCSolidColorLayerImplTest, verifyCorrectBackgroundColorInQuad) layer->createRenderSurface(); layer->setRenderTarget(layer.get()); - bool hadMissingTiles = false; - layer->appendQuads(quadCuller, hadMissingTiles); + CCAppendQuadsData data; + layer->appendQuads(quadCuller, data); ASSERT_EQ(quadCuller.quadList().size(), 1U); EXPECT_EQ(CCSolidColorDrawQuad::materialCast(quadCuller.quadList()[0].get())->color(), testColor); @@ -102,8 +103,8 @@ TEST(CCSolidColorLayerImplTest, verifyCorrectOpacityInQuad) layer->createRenderSurface(); layer->setRenderTarget(layer.get()); - bool hadMissingTiles = false; - layer->appendQuads(quadCuller, hadMissingTiles); + CCAppendQuadsData data; + layer->appendQuads(quadCuller, data); ASSERT_EQ(quadCuller.quadList().size(), 1U); EXPECT_EQ(opacity, CCSolidColorDrawQuad::materialCast(quadCuller.quadList()[0].get())->opacity()); diff --git a/Source/WebKit/chromium/tests/CCTextureUpdateControllerTest.cpp b/Source/WebKit/chromium/tests/CCTextureUpdateControllerTest.cpp index 11659f6f5..baf63c2e7 100644 --- a/Source/WebKit/chromium/tests/CCTextureUpdateControllerTest.cpp +++ b/Source/WebKit/chromium/tests/CCTextureUpdateControllerTest.cpp @@ -31,8 +31,8 @@ #include "CCTiledLayerTestCommon.h" #include "FakeWebCompositorOutputSurface.h" #include "FakeWebGraphicsContext3D.h" +#include "WebCompositorInitializer.h" #include <gtest/gtest.h> -#include <public/WebCompositor.h> #include <public/WebThread.h> #include <wtf/RefPtr.h> @@ -95,21 +95,23 @@ public: class CCTextureUpdateControllerTest : public Test { public: CCTextureUpdateControllerTest() - : m_queue(adoptPtr(new CCTextureUpdateQueue)) - , m_uploader(this) - , m_fullUploadCountExpected(0) - , m_partialCountExpected(0) - , m_totalUploadCountExpected(0) - , m_maxUploadCountPerUpdate(0) - , m_numBeginUploads(0) - , m_numEndUploads(0) - , m_numConsecutiveFlushes(0) - , m_numDanglingUploads(0) - , m_numTotalUploads(0) - , m_numTotalFlushes(0) - , m_numPreviousUploads(0) - , m_numPreviousFlushes(0) - { } + : m_queue(adoptPtr(new CCTextureUpdateQueue)) + , m_uploader(this) + , m_compositorInitializer(m_thread.get()) + , m_fullUploadCountExpected(0) + , m_partialCountExpected(0) + , m_totalUploadCountExpected(0) + , m_maxUploadCountPerUpdate(0) + , m_numBeginUploads(0) + , m_numEndUploads(0) + , m_numConsecutiveFlushes(0) + , m_numDanglingUploads(0) + , m_numTotalUploads(0) + , m_numTotalFlushes(0) + , m_numPreviousUploads(0) + , m_numPreviousFlushes(0) + { + } public: void onFlush() @@ -170,19 +172,11 @@ public: protected: virtual void SetUp() { - OwnPtr<WebThread> thread; - WebCompositor::initialize(thread.get()); - m_context = FakeWebCompositorOutputSurface::create(adoptPtr(new WebGraphicsContext3DForUploadTest(this))); DebugScopedSetImplThread implThread; m_resourceProvider = CCResourceProvider::create(m_context.get()); } - virtual void TearDown() - { - WebCompositor::shutdown(); - } - void appendFullUploadsToUpdateQueue(int count) { m_fullUploadCountExpected += count; @@ -218,6 +212,9 @@ protected: TextureForUploadTest m_texture; FakeTextureCopier m_copier; TextureUploaderForUploadTest m_uploader; + OwnPtr<WebThread> m_thread; + WebCompositorInitializer m_compositorInitializer; + // Properties / expectations of this test int m_fullUploadCountExpected; diff --git a/Source/WebKit/chromium/tests/CCThreadedTest.cpp b/Source/WebKit/chromium/tests/CCThreadedTest.cpp index cde88f8e6..a74e8e03a 100644 --- a/Source/WebKit/chromium/tests/CCThreadedTest.cpp +++ b/Source/WebKit/chromium/tests/CCThreadedTest.cpp @@ -28,6 +28,7 @@ #include "CCActiveAnimation.h" #include "CCAnimationTestCommon.h" +#include "CCInputHandler.h" #include "CCLayerAnimationController.h" #include "CCLayerImpl.h" #include "CCLayerTreeHostImpl.h" @@ -44,7 +45,7 @@ #include "LayerChromium.h" #include <gmock/gmock.h> #include <public/Platform.h> -#include <public/WebCompositor.h> +#include <public/WebCompositorSupport.h> #include <public/WebFilterOperation.h> #include <public/WebFilterOperations.h> #include <public/WebThread.h> @@ -56,7 +57,6 @@ using namespace WebCore; using namespace WebKit; -using namespace WTF; namespace WebKitTests { @@ -208,9 +208,9 @@ public: { } - virtual void updateAnimations(double monotonicTime) OVERRIDE + virtual void animate(double monotonicTime) OVERRIDE { - m_testHooks->updateAnimations(monotonicTime); + m_testHooks->animate(monotonicTime); } virtual void layout() OVERRIDE @@ -228,6 +228,16 @@ public: return m_testHooks->createOutputSurface(); } + virtual void didRecreateOutputSurface(bool succeeded) OVERRIDE + { + m_testHooks->didRecreateOutputSurface(succeeded); + } + + virtual PassOwnPtr<CCInputHandler> createInputHandler() OVERRIDE + { + return nullptr; + } + virtual void willCommit() OVERRIDE { } @@ -246,11 +256,6 @@ public: { } - virtual void didRecreateOutputSurface(bool succeeded) OVERRIDE - { - m_testHooks->didRecreateOutputSurface(succeeded); - } - virtual void scheduleComposite() OVERRIDE { m_testHooks->scheduleComposite(); @@ -601,17 +606,19 @@ void CCThreadedTest::dispatchDidAddAnimation(void* self) void CCThreadedTest::runTest(bool threaded) { // For these tests, we will enable threaded animations. - WebCompositor::setAcceleratedAnimationEnabled(true); + Platform::current()->compositorSupport()->setAcceleratedAnimationEnabled(true); if (threaded) { m_webThread = adoptPtr(WebKit::Platform::current()->createThread("CCThreadedTest")); - WebCompositor::initialize(m_webThread.get()); + Platform::current()->compositorSupport()->initialize(m_webThread.get()); } else - WebCompositor::initialize(0); + Platform::current()->compositorSupport()->initialize(0); ASSERT(CCProxy::isMainThread()); m_mainThreadProxy = CCScopedThreadProxy::create(CCProxy::mainThread()); + initializeSettings(m_settings); + m_beginTask = new BeginTask(this); WebKit::Platform::current()->currentThread()->postDelayedTask(m_beginTask, 0); // postDelayedTask takes ownership of the task m_timeoutTask = new TimeoutTask(this); @@ -632,11 +639,11 @@ void CCThreadedTest::runTest(bool threaded) m_client.clear(); if (m_timedOut) { FAIL() << "Test timed out"; - WebCompositor::shutdown(); + Platform::current()->compositorSupport()->shutdown(); return; } afterTest(); - WebCompositor::shutdown(); + Platform::current()->compositorSupport()->shutdown(); } } // namespace WebKitTests diff --git a/Source/WebKit/chromium/tests/CCThreadedTest.h b/Source/WebKit/chromium/tests/CCThreadedTest.h index 0f87de1f5..305c39293 100644 --- a/Source/WebKit/chromium/tests/CCThreadedTest.h +++ b/Source/WebKit/chromium/tests/CCThreadedTest.h @@ -31,6 +31,7 @@ #include "CompositorFakeWebGraphicsContext3D.h" #include <gtest/gtest.h> #include <public/WebAnimationDelegate.h> +#include <public/WebThread.h> namespace WebCore { class CCLayerImpl; @@ -40,10 +41,6 @@ class CCLayerTreeHostImpl; class GraphicsContext3D; } -namespace WebKit { -class WebThread; -} - namespace WebKitTests { // Used by test stubs to notify the test when something interesting happens. @@ -56,7 +53,7 @@ public: virtual void animateLayers(WebCore::CCLayerTreeHostImpl*, double monotonicTime) { } virtual void willAnimateLayers(WebCore::CCLayerTreeHostImpl*, double monotonicTime) { } virtual void applyScrollAndScale(const WebCore::IntSize&, float) { } - virtual void updateAnimations(double monotonicTime) { } + virtual void animate(double monotonicTime) { } virtual void layout() { } virtual void didRecreateOutputSurface(bool succeeded) { } virtual void didAddAnimation() { } @@ -117,6 +114,8 @@ public: protected: CCThreadedTest(); + virtual void initializeSettings(WebCore::CCLayerTreeSettings&) { } + virtual void scheduleComposite(); static void onEndTest(void* self); diff --git a/Source/WebKit/chromium/tests/CCTiledLayerImplTest.cpp b/Source/WebKit/chromium/tests/CCTiledLayerImplTest.cpp index 8b4bd20e8..c49e12c2e 100644 --- a/Source/WebKit/chromium/tests/CCTiledLayerImplTest.cpp +++ b/Source/WebKit/chromium/tests/CCTiledLayerImplTest.cpp @@ -26,6 +26,7 @@ #include "CCTiledLayerImpl.h" +#include "CCAppendQuadsData.h" #include "CCLayerTestCommon.h" #include "CCLayerTilingData.h" #include "CCSingleThreadProxy.h" @@ -76,8 +77,8 @@ TEST(CCTiledLayerImplTest, emptyQuadList) { OwnPtr<CCTiledLayerImpl> layer = createLayer(tileSize, layerSize, CCLayerTilingData::NoBorderTexels); MockCCQuadCuller quadCuller; - bool hadMissingTiles = false; - layer->appendQuads(quadCuller, hadMissingTiles); + CCAppendQuadsData data; + layer->appendQuads(quadCuller, data); const unsigned numTiles = numTilesX * numTilesY; EXPECT_EQ(quadCuller.quadList().size(), numTiles); } @@ -88,8 +89,8 @@ TEST(CCTiledLayerImplTest, emptyQuadList) layer->setVisibleContentRect(IntRect()); MockCCQuadCuller quadCuller; - bool hadMissingTiles = false; - layer->appendQuads(quadCuller, hadMissingTiles); + CCAppendQuadsData data; + layer->appendQuads(quadCuller, data); EXPECT_EQ(quadCuller.quadList().size(), 0u); } @@ -101,8 +102,8 @@ TEST(CCTiledLayerImplTest, emptyQuadList) layer->setVisibleContentRect(outsideBounds); MockCCQuadCuller quadCuller; - bool hadMissingTiles = false; - layer->appendQuads(quadCuller, hadMissingTiles); + CCAppendQuadsData data; + layer->appendQuads(quadCuller, data); EXPECT_EQ(quadCuller.quadList().size(), 0u); } @@ -112,8 +113,8 @@ TEST(CCTiledLayerImplTest, emptyQuadList) layer->setSkipsDraw(true); MockCCQuadCuller quadCuller; - bool hadMissingTiles = false; - layer->appendQuads(quadCuller, hadMissingTiles); + CCAppendQuadsData data; + layer->appendQuads(quadCuller, data); EXPECT_EQ(quadCuller.quadList().size(), 0u); } } @@ -132,10 +133,10 @@ TEST(CCTiledLayerImplTest, checkerboarding) // No checkerboarding { MockCCQuadCuller quadCuller; - bool hadMissingTiles = false; - layer->appendQuads(quadCuller, hadMissingTiles); + CCAppendQuadsData data; + layer->appendQuads(quadCuller, data); EXPECT_EQ(quadCuller.quadList().size(), 4u); - EXPECT_FALSE(hadMissingTiles); + EXPECT_FALSE(data.hadMissingTiles); for (size_t i = 0; i < quadCuller.quadList().size(); ++i) EXPECT_EQ(quadCuller.quadList()[i]->material(), CCDrawQuad::TiledContent); @@ -148,9 +149,9 @@ TEST(CCTiledLayerImplTest, checkerboarding) // All checkerboarding { MockCCQuadCuller quadCuller; - bool hadMissingTiles = false; - layer->appendQuads(quadCuller, hadMissingTiles); - EXPECT_TRUE(hadMissingTiles); + CCAppendQuadsData data; + layer->appendQuads(quadCuller, data); + EXPECT_TRUE(data.hadMissingTiles); EXPECT_EQ(quadCuller.quadList().size(), 4u); for (size_t i = 0; i < quadCuller.quadList().size(); ++i) EXPECT_NE(quadCuller.quadList()[i]->material(), CCDrawQuad::TiledContent); @@ -164,8 +165,8 @@ static void getQuads(CCQuadList& quads, CCSharedQuadStateList& sharedStates, Int layer->setBounds(layerSize); MockCCQuadCuller quadCuller(quads, sharedStates); - bool hadMissingTiles = false; - layer->appendQuads(quadCuller, hadMissingTiles); + CCAppendQuadsData data; + layer->appendQuads(quadCuller, data); } // Test with both border texels and without. diff --git a/Source/WebKit/chromium/tests/CCTiledLayerTestCommon.cpp b/Source/WebKit/chromium/tests/CCTiledLayerTestCommon.cpp index dcaae59ce..ed416f238 100644 --- a/Source/WebKit/chromium/tests/CCTiledLayerTestCommon.cpp +++ b/Source/WebKit/chromium/tests/CCTiledLayerTestCommon.cpp @@ -85,6 +85,11 @@ PassOwnPtr<LayerTextureUpdater::Texture> FakeLayerTextureUpdater::createTexture( return adoptPtr(new Texture(this, CCPrioritizedTexture::create(manager))); } +LayerTextureUpdater::SampledTexelFormat FakeLayerTextureUpdater::sampledTexelFormat(GC3Denum) +{ + return SampledTexelFormatRGBA; +} + FakeCCTiledLayerImpl::FakeCCTiledLayerImpl(int id) : CCTiledLayerImpl(id) { @@ -105,6 +110,11 @@ FakeTiledLayerChromium::FakeTiledLayerChromium(CCPrioritizedTextureManager* text setIsDrawable(true); // So that we don't get false positives if any of these tests expect to return false from drawsContent() for other reasons. } +FakeTiledLayerWithScaledBounds::FakeTiledLayerWithScaledBounds(CCPrioritizedTextureManager* textureManager) + : FakeTiledLayerChromium(textureManager) +{ +} + FakeTiledLayerChromium::~FakeTiledLayerChromium() { } @@ -132,9 +142,29 @@ void FakeTiledLayerChromium::setTexturePriorities(const CCPriorityCalculator& ca } } -FakeTiledLayerWithScaledBounds::FakeTiledLayerWithScaledBounds(CCPrioritizedTextureManager* textureManager) - : FakeTiledLayerChromium(textureManager) +WebCore::CCPrioritizedTextureManager* FakeTiledLayerChromium::textureManager() const +{ + return m_textureManager; +} + +WebCore::LayerTextureUpdater* FakeTiledLayerChromium::textureUpdater() const +{ + return m_fakeTextureUpdater.get(); +} + +WebCore::IntSize FakeTiledLayerWithScaledBounds::contentBounds() const +{ + return m_forcedContentBounds; +} + +bool FakeTextureUploader::isBusy() +{ + return false; +} + +void FakeTextureUploader::uploadTexture(WebCore::CCResourceProvider* resourceProvider, Parameters upload) { + upload.texture->updateRect(resourceProvider, upload.sourceRect, upload.destOffset); } } // namespace diff --git a/Source/WebKit/chromium/tests/CCTiledLayerTestCommon.h b/Source/WebKit/chromium/tests/CCTiledLayerTestCommon.h index 3adb4bf17..486f6c022 100644 --- a/Source/WebKit/chromium/tests/CCTiledLayerTestCommon.h +++ b/Source/WebKit/chromium/tests/CCTiledLayerTestCommon.h @@ -60,7 +60,7 @@ public: virtual ~FakeLayerTextureUpdater(); virtual PassOwnPtr<WebCore::LayerTextureUpdater::Texture> createTexture(WebCore::CCPrioritizedTextureManager*) OVERRIDE; - virtual SampledTexelFormat sampledTexelFormat(GC3Denum) OVERRIDE { return SampledTexelFormatRGBA; } + virtual SampledTexelFormat sampledTexelFormat(GC3Denum) OVERRIDE; virtual void prepareToUpdate(const WebCore::IntRect& contentRect, const WebCore::IntSize&, float, float, WebCore::IntRect& resultingOpaqueRect, WebCore::CCRenderingStats&) OVERRIDE; // Sets the rect to invalidate during the next call to prepareToUpdate(). After the next @@ -122,12 +122,12 @@ public: virtual void setTexturePriorities(const WebCore::CCPriorityCalculator&) OVERRIDE; - virtual WebCore::CCPrioritizedTextureManager* textureManager() const OVERRIDE { return m_textureManager; } + virtual WebCore::CCPrioritizedTextureManager* textureManager() const OVERRIDE; FakeLayerTextureUpdater* fakeLayerTextureUpdater() { return m_fakeTextureUpdater.get(); } WebCore::FloatRect updateRect() { return m_updateRect; } protected: - virtual WebCore::LayerTextureUpdater* textureUpdater() const OVERRIDE { return m_fakeTextureUpdater.get(); } + virtual WebCore::LayerTextureUpdater* textureUpdater() const OVERRIDE; virtual void createTextureUpdaterIfNeeded() OVERRIDE { } private: @@ -141,7 +141,7 @@ public: explicit FakeTiledLayerWithScaledBounds(WebCore::CCPrioritizedTextureManager*); void setContentBounds(const WebCore::IntSize& contentBounds) { m_forcedContentBounds = contentBounds; } - virtual WebCore::IntSize contentBounds() const OVERRIDE { return m_forcedContentBounds; } + virtual WebCore::IntSize contentBounds() const OVERRIDE; protected: WebCore::IntSize m_forcedContentBounds; @@ -149,16 +149,16 @@ protected: class FakeTextureCopier : public WebCore::TextureCopier { public: - virtual void copyTexture(Parameters) { } - virtual void flush() { } + virtual void copyTexture(Parameters) OVERRIDE { } + virtual void flush() OVERRIDE { } }; class FakeTextureUploader : public WebCore::TextureUploader { public: - virtual bool isBusy() { return false; } - virtual void beginUploads() { } - virtual void endUploads() { } - virtual void uploadTexture(WebCore::CCResourceProvider* resourceProvider, Parameters upload) { upload.texture->updateRect(resourceProvider, upload.sourceRect, upload.destOffset); } + virtual bool isBusy() OVERRIDE; + virtual void beginUploads() OVERRIDE { } + virtual void endUploads() OVERRIDE { } + virtual void uploadTexture(WebCore::CCResourceProvider*, Parameters upload) OVERRIDE; }; } diff --git a/Source/WebKit/chromium/tests/Canvas2DLayerBridgeTest.cpp b/Source/WebKit/chromium/tests/Canvas2DLayerBridgeTest.cpp index 6972424b0..26bdd4f11 100644 --- a/Source/WebKit/chromium/tests/Canvas2DLayerBridgeTest.cpp +++ b/Source/WebKit/chromium/tests/Canvas2DLayerBridgeTest.cpp @@ -30,8 +30,8 @@ #include "FakeWebGraphicsContext3D.h" #include "GraphicsContext3DPrivate.h" #include "ImageBuffer.h" +#include "WebCompositorInitializer.h" #include <public/Platform.h> -#include <public/WebCompositor.h> #include <public/WebThread.h> #include <gmock/gmock.h> @@ -81,7 +81,7 @@ protected: OwnPtr<WebThread> thread; if (threadMode == Threaded) thread = adoptPtr(WebKit::Platform::current()->createThread("Canvas2DLayerBridgeTest")); - WebCompositor::initialize(thread.get()); + WebKitTests::WebCompositorInitializer initializer(thread.get()); WebGLId backTextureId = 1; WebGLId frontTextureId = 1; @@ -109,8 +109,6 @@ protected: EXPECT_CALL(mainMock, flush()); } bridge.clear(); - - WebCompositor::shutdown(); } }; diff --git a/Source/WebKit/chromium/tests/Canvas2DLayerManagerTest.cpp b/Source/WebKit/chromium/tests/Canvas2DLayerManagerTest.cpp new file mode 100644 index 000000000..f9a136c35 --- /dev/null +++ b/Source/WebKit/chromium/tests/Canvas2DLayerManagerTest.cpp @@ -0,0 +1,156 @@ +/* + * Copyright (C) 2012 Google Inc. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#include "config.h" + +#include "Canvas2DLayerManager.h" + +#include "FakeWebGraphicsContext3D.h" +#include "GraphicsContext3DPrivate.h" +#include <gmock/gmock.h> +#include <gtest/gtest.h> + +using namespace WebCore; +using testing::InSequence; +using testing::Return; +using testing::Test; + + +class FakeCanvas2DLayerBridge : public Canvas2DLayerBridge { +public: + FakeCanvas2DLayerBridge() + : Canvas2DLayerBridge(GraphicsContext3DPrivate::createGraphicsContextFromWebContext(adoptPtr(new WebKit::FakeWebGraphicsContext3D)), IntSize(1, 1), Deferred, 0) + , m_freeableBytes(0) + , m_freeMemoryIfPossibleCount(0) + , m_flushCount(0) + { + } + + void fakeFreeableBytes(size_t size) + { + m_freeableBytes = size; + } + + virtual size_t freeMemoryIfPossible(size_t size) OVERRIDE + { + m_freeMemoryIfPossibleCount++; + size_t bytesFreed = size < m_freeableBytes ? size : m_freeableBytes; + m_freeableBytes -= bytesFreed; + if (bytesFreed) + Canvas2DLayerManager::get().layerAllocatedStorageChanged(this, -((intptr_t)bytesFreed)); + m_bytesAllocated -= bytesFreed; + return bytesFreed; + } + + virtual void flush() OVERRIDE + { + m_flushCount++; + } + +public: + size_t m_freeableBytes; + int m_freeMemoryIfPossibleCount; + int m_flushCount; +}; + +class Canvas2DLayerManagerTest : public Test { +protected: + void storageAllocationTrackingTest() + { + Canvas2DLayerManager& manager = Canvas2DLayerManager::get(); + manager.init(10, 10); + { + FakeCanvas2DLayerBridge layer1; + EXPECT_EQ((size_t)0, manager.m_bytesAllocated); + layer1.storageAllocatedForRecordingChanged(1); + EXPECT_EQ((size_t)1, manager.m_bytesAllocated); + // Test allocation increase + layer1.storageAllocatedForRecordingChanged(2); + EXPECT_EQ((size_t)2, manager.m_bytesAllocated); + // Test allocation decrease + layer1.storageAllocatedForRecordingChanged(1); + EXPECT_EQ((size_t)1, manager.m_bytesAllocated); + { + FakeCanvas2DLayerBridge layer2; + EXPECT_EQ((size_t)1, manager.m_bytesAllocated); + // verify multi-layer allocation tracking + layer2.storageAllocatedForRecordingChanged(2); + EXPECT_EQ((size_t)3, manager.m_bytesAllocated); + } + // Verify tracking after destruction + EXPECT_EQ((size_t)1, manager.m_bytesAllocated); + } + } + + void evictionTest() + { + Canvas2DLayerManager& manager = Canvas2DLayerManager::get(); + manager.init(10, 5); + FakeCanvas2DLayerBridge layer; + layer.fakeFreeableBytes(10); + layer.storageAllocatedForRecordingChanged(8); // under the max + EXPECT_EQ(0, layer.m_freeMemoryIfPossibleCount); + layer.storageAllocatedForRecordingChanged(12); // over the max + EXPECT_EQ(1, layer.m_freeMemoryIfPossibleCount); + EXPECT_EQ((size_t)3, layer.m_freeableBytes); + EXPECT_EQ(0, layer.m_flushCount); // eviction succeeded without triggering a flush + EXPECT_EQ((size_t)5, layer.bytesAllocated()); + } + + void flushEvictionTest() + { + Canvas2DLayerManager& manager = Canvas2DLayerManager::get(); + manager.init(10, 5); + FakeCanvas2DLayerBridge layer; + layer.fakeFreeableBytes(1); // Not enough freeable bytes, will cause aggressive eviction by flushing + layer.storageAllocatedForRecordingChanged(8); // under the max + EXPECT_EQ(0, layer.m_freeMemoryIfPossibleCount); + layer.storageAllocatedForRecordingChanged(12); // over the max + EXPECT_EQ(2, layer.m_freeMemoryIfPossibleCount); // Two tries, one before flush, one after flush + EXPECT_EQ((size_t)0, layer.m_freeableBytes); + EXPECT_EQ(1, layer.m_flushCount); // flush was attempted + EXPECT_EQ((size_t)11, layer.bytesAllocated()); // flush drops the layer from manager's tracking list + EXPECT_FALSE(manager.isInList(&layer)); + } +}; + +namespace { + +TEST_F(Canvas2DLayerManagerTest, testStorageAllocationTracking) +{ + storageAllocationTrackingTest(); +} + +TEST_F(Canvas2DLayerManagerTest, testEviction) +{ + evictionTest(); +} + +TEST_F(Canvas2DLayerManagerTest, testFlushEviction) +{ + flushEvictionTest(); +} + +} // namespace + diff --git a/Source/WebKit/chromium/tests/ContentLayerChromiumTest.cpp b/Source/WebKit/chromium/tests/ContentLayerChromiumTest.cpp index fd35e2224..483579fe0 100644 --- a/Source/WebKit/chromium/tests/ContentLayerChromiumTest.cpp +++ b/Source/WebKit/chromium/tests/ContentLayerChromiumTest.cpp @@ -27,10 +27,9 @@ #include "ContentLayerChromium.h" #include "BitmapCanvasLayerTextureUpdater.h" -#include "CCLayerTreeTestCommon.h" +#include "CCGeometryTestUtils.h" #include "CCRenderingStats.h" -#include "GraphicsContext.h" -#include "OpaqueRectTrackingContentLayerDelegate.h" +#include "ContentLayerChromiumClient.h" #include "skia/ext/platform_canvas.h" #include <gtest/gtest.h> #include <public/WebFloatRect.h> @@ -43,49 +42,20 @@ using namespace WebKit; namespace { -class OpaqueRectDrawingGraphicsContextPainter : public GraphicsContextPainter { +class MockContentLayerChromiumClient : public ContentLayerChromiumClient { public: - explicit OpaqueRectDrawingGraphicsContextPainter(const IntRect& opaqueRect, const IntRect& contentRect) - : m_opaqueRect(opaqueRect) - , m_contentRect(contentRect) + explicit MockContentLayerChromiumClient(IntRect opaqueLayerRect) + : m_opaqueLayerRect(opaqueLayerRect) { } - virtual ~OpaqueRectDrawingGraphicsContextPainter() + virtual void paintContents(SkCanvas*, const IntRect&, FloatRect& opaque) OVERRIDE { - } - - virtual void paint(GraphicsContext& context, const IntRect& clip) OVERRIDE - { - Color alpha(0, 0, 0, 0); - context.fillRect(m_contentRect, alpha, ColorSpaceDeviceRGB); - - Color white(255, 255, 255, 255); - context.fillRect(m_opaqueRect, white, ColorSpaceDeviceRGB); - } - -private: - IntRect m_opaqueRect; - IntRect m_contentRect; -}; - -class MockContentLayerDelegate : public ContentLayerDelegate { -public: - explicit MockContentLayerDelegate(OpaqueRectTrackingContentLayerDelegate* client) - : m_client(client) - { - } - - virtual void paintContents(SkCanvas* canvas, const IntRect& clip, FloatRect& opaque) OVERRIDE - { - WebFloatRect resultingOpaqueRect(opaque.x(), opaque.y(), opaque.width(), opaque.height()); - WebRect webClipRect(clip.x(), clip.y(), clip.width(), clip.height()); - m_client->paintContents(canvas, webClipRect, resultingOpaqueRect); - opaque = FloatRect(resultingOpaqueRect.x, resultingOpaqueRect.y, resultingOpaqueRect.width, resultingOpaqueRect.height); + opaque = FloatRect(m_opaqueLayerRect); } private: - OpaqueRectTrackingContentLayerDelegate* m_client; + IntRect m_opaqueLayerRect; }; TEST(ContentLayerChromiumTest, ContentLayerPainterWithDeviceScale) @@ -96,16 +66,14 @@ TEST(ContentLayerChromiumTest, ContentLayerPainterWithDeviceScale) IntRect opaqueRectInContentSpace = opaqueRectInLayerSpace; opaqueRectInContentSpace.scale(contentsScale); OwnPtr<SkCanvas> canvas = adoptPtr(skia::CreateBitmapCanvas(contentRect.width(), contentRect.height(), false)); - OpaqueRectDrawingGraphicsContextPainter painter(opaqueRectInLayerSpace, contentRect); - OpaqueRectTrackingContentLayerDelegate opaqueRectTrackingContentLayerDelegate(&painter); - MockContentLayerDelegate delegate(&opaqueRectTrackingContentLayerDelegate); - RefPtr<BitmapCanvasLayerTextureUpdater> updater = BitmapCanvasLayerTextureUpdater::create(ContentLayerPainter::create(&delegate)); + MockContentLayerChromiumClient client(opaqueRectInLayerSpace); + RefPtr<BitmapCanvasLayerTextureUpdater> updater = BitmapCanvasLayerTextureUpdater::create(ContentLayerPainter::create(&client)); IntRect resultingOpaqueRect; CCRenderingStats stats; updater->prepareToUpdate(contentRect, IntSize(256, 256), contentsScale, contentsScale, resultingOpaqueRect, stats); - EXPECT_INT_RECT_EQ(opaqueRectInContentSpace, resultingOpaqueRect); + EXPECT_RECT_EQ(opaqueRectInContentSpace, resultingOpaqueRect); } } // namespace diff --git a/Source/WebKit/chromium/tests/FakeCCLayerTreeHostClient.h b/Source/WebKit/chromium/tests/FakeCCLayerTreeHostClient.h index b87305afe..dc5b02763 100755 --- a/Source/WebKit/chromium/tests/FakeCCLayerTreeHostClient.h +++ b/Source/WebKit/chromium/tests/FakeCCLayerTreeHostClient.h @@ -27,6 +27,7 @@ #include "config.h" +#include "CCInputHandler.h" #include "CCLayerTreeHost.h" #include "CompositorFakeWebGraphicsContext3D.h" #include "FakeWebCompositorOutputSurface.h" @@ -37,7 +38,7 @@ class FakeCCLayerTreeHostClient : public CCLayerTreeHostClient { public: virtual void willBeginFrame() OVERRIDE { } virtual void didBeginFrame() OVERRIDE { } - virtual void updateAnimations(double monotonicFrameBeginTime) OVERRIDE { } + virtual void animate(double monotonicFrameBeginTime) OVERRIDE { } virtual void layout() OVERRIDE { } virtual void applyScrollAndScale(const IntSize& scrollDelta, float pageScale) OVERRIDE { } @@ -47,6 +48,7 @@ public: return WebKit::FakeWebCompositorOutputSurface::create(WebKit::CompositorFakeWebGraphicsContext3D::create(attrs)); } virtual void didRecreateOutputSurface(bool success) OVERRIDE { } + virtual PassOwnPtr<CCInputHandler> createInputHandler() OVERRIDE { return nullptr; } virtual void willCommit() OVERRIDE { } virtual void didCommit() OVERRIDE { } virtual void didCommitAndDrawFrame() OVERRIDE { } diff --git a/Source/WebKit/chromium/tests/FakeWebCompositorOutputSurface.h b/Source/WebKit/chromium/tests/FakeWebCompositorOutputSurface.h index c20c9f991..1d93b6b6e 100644 --- a/Source/WebKit/chromium/tests/FakeWebCompositorOutputSurface.h +++ b/Source/WebKit/chromium/tests/FakeWebCompositorOutputSurface.h @@ -28,6 +28,8 @@ #include <public/WebCompositorOutputSurface.h> #include <public/WebGraphicsContext3D.h> +#include <wtf/OwnPtr.h> +#include <wtf/PassOwnPtr.h> namespace WebKit { diff --git a/Source/WebKit/chromium/tests/GraphicsLayerChromiumTest.cpp b/Source/WebKit/chromium/tests/GraphicsLayerChromiumTest.cpp index c0a9cf2ef..cff826eed 100644 --- a/Source/WebKit/chromium/tests/GraphicsLayerChromiumTest.cpp +++ b/Source/WebKit/chromium/tests/GraphicsLayerChromiumTest.cpp @@ -33,10 +33,12 @@ #include "GraphicsLayer.h" #include "Matrix3DTransformOperation.h" #include "RotateTransformOperation.h" +#include "ScrollableArea.h" #include "TranslateTransformOperation.h" #include "WebLayerTreeViewTestCommon.h" #include <gtest/gtest.h> -#include <public/WebCompositor.h> +#include <public/Platform.h> +#include <public/WebCompositorSupport.h> #include <public/WebFloatAnimationCurve.h> #include <public/WebGraphicsContext3D.h> #include <public/WebLayerTreeView.h> @@ -62,19 +64,19 @@ public: GraphicsLayerChromiumTest() { // For these tests, we will enable threaded animations. - WebCompositor::setAcceleratedAnimationEnabled(true); - WebCompositor::initialize(0); + Platform::current()->compositorSupport()->setAcceleratedAnimationEnabled(true); + Platform::current()->compositorSupport()->initialize(0); m_graphicsLayer = static_pointer_cast<GraphicsLayerChromium>(GraphicsLayer::create(&m_client)); m_platformLayer = m_graphicsLayer->platformLayer(); - m_layerTreeView.initialize(&m_layerTreeViewClient, *m_platformLayer, WebLayerTreeView::Settings()); - m_layerTreeView.setViewportSize(WebSize(1, 1), WebSize(1, 1)); + m_layerTreeView = adoptPtr(Platform::current()->compositorSupport()->createLayerTreeView(&m_layerTreeViewClient, *m_platformLayer, WebLayerTreeView::Settings())); + m_layerTreeView->setViewportSize(WebSize(1, 1), WebSize(1, 1)); } virtual ~GraphicsLayerChromiumTest() { m_graphicsLayer.clear(); - m_layerTreeView.reset(); - WebCompositor::shutdown(); + m_layerTreeView.clear(); + Platform::current()->compositorSupport()->shutdown(); } protected: @@ -88,7 +90,7 @@ protected: private: MockWebLayerTreeViewClient m_layerTreeViewClient; - WebLayerTreeView m_layerTreeView; + OwnPtr<WebLayerTreeView> m_layerTreeView; MockGraphicsLayerClient m_client; }; @@ -96,9 +98,10 @@ TEST_F(GraphicsLayerChromiumTest, updateLayerPreserves3DWithAnimations) { ASSERT_FALSE(m_platformLayer->hasActiveAnimation()); - OwnPtr<WebFloatAnimationCurve> curve = adoptPtr(WebFloatAnimationCurve::create()); + OwnPtr<WebFloatAnimationCurve> curve = adoptPtr(Platform::current()->compositorSupport()->createFloatAnimationCurve()); curve->add(WebFloatKeyframe(0.0, 0.0)); - OwnPtr<WebAnimation> floatAnimation(adoptPtr(WebAnimation::create(*curve, 1, 1, WebAnimation::TargetPropertyOpacity))); + OwnPtr<WebAnimation> floatAnimation(adoptPtr(Platform::current()->compositorSupport()->createAnimation(*curve, WebAnimation::TargetPropertyOpacity))); + int animationId = floatAnimation->id(); ASSERT_TRUE(m_platformLayer->addAnimation(floatAnimation.get())); ASSERT_TRUE(m_platformLayer->hasActiveAnimation()); @@ -109,7 +112,7 @@ TEST_F(GraphicsLayerChromiumTest, updateLayerPreserves3DWithAnimations) ASSERT_TRUE(m_platformLayer); ASSERT_TRUE(m_platformLayer->hasActiveAnimation()); - m_platformLayer->removeAnimation(1); + m_platformLayer->removeAnimation(animationId); ASSERT_FALSE(m_platformLayer->hasActiveAnimation()); m_graphicsLayer->setPreserves3D(false); @@ -120,9 +123,38 @@ TEST_F(GraphicsLayerChromiumTest, updateLayerPreserves3DWithAnimations) ASSERT_FALSE(m_platformLayer->hasActiveAnimation()); } -TEST_F(GraphicsLayerChromiumTest, shouldStartWithCorrectContentsScale) +class FakeScrollableArea : public ScrollableArea { +public: + virtual bool isActive() const OVERRIDE { return false; } + virtual int scrollSize(ScrollbarOrientation) const OVERRIDE { return 100; } + virtual int scrollPosition(Scrollbar*) const OVERRIDE { return 0; } + virtual bool isScrollCornerVisible() const OVERRIDE { return false; } + virtual IntRect scrollCornerRect() const OVERRIDE { return IntRect(); } + virtual int visibleWidth() const OVERRIDE { return 10; } + virtual int visibleHeight() const OVERRIDE { return 10; } + virtual IntSize contentsSize() const OVERRIDE { return IntSize(100, 100); } + virtual bool isOnActivePage() const OVERRIDE { return false; } + virtual ScrollableArea* enclosingScrollableArea() const OVERRIDE { return 0; } + virtual IntRect scrollableAreaBoundingBox() const OVERRIDE { return IntRect(); } + virtual void invalidateScrollbarRect(Scrollbar*, const IntRect&) OVERRIDE { } + virtual void invalidateScrollCornerRect(const IntRect&) OVERRIDE { } + + virtual void setScrollOffset(const IntPoint& scrollOffset) OVERRIDE { m_scrollPosition = scrollOffset; } + virtual IntPoint scrollPosition() const OVERRIDE { return m_scrollPosition; } + +private: + IntPoint m_scrollPosition; +}; + +TEST_F(GraphicsLayerChromiumTest, applyScrollToScrollableArea) { - EXPECT_EQ(2, m_graphicsLayer->contentsScale()); + FakeScrollableArea scrollableArea; + m_graphicsLayer->setScrollableArea(&scrollableArea); + + WebPoint scrollPosition(7, 9); + m_platformLayer->setScrollPosition(scrollPosition); + + EXPECT_EQ(scrollPosition, WebPoint(scrollableArea.scrollPosition())); } } // namespace diff --git a/Source/WebKit/chromium/tests/IDBDatabaseBackendTest.cpp b/Source/WebKit/chromium/tests/IDBDatabaseBackendTest.cpp index ead7f9bb9..1fa2c262d 100644 --- a/Source/WebKit/chromium/tests/IDBDatabaseBackendTest.cpp +++ b/Source/WebKit/chromium/tests/IDBDatabaseBackendTest.cpp @@ -57,12 +57,12 @@ TEST(IDBDatabaseBackendTest, BackingStoreRetention) EXPECT_GT(backingStore->refCount(), 1); const bool autoIncrement = false; - RefPtr<IDBObjectStoreBackendImpl> store = IDBObjectStoreBackendImpl::create(db.get(), "store", String("keyPath"), autoIncrement); + RefPtr<IDBObjectStoreBackendImpl> store = IDBObjectStoreBackendImpl::create(db.get(), "store", IDBKeyPath("keyPath"), autoIncrement); EXPECT_GT(backingStore->refCount(), 1); const bool unique = false; const bool multiEntry = false; - RefPtr<IDBIndexBackendImpl> index = IDBIndexBackendImpl::create(db.get(), store.get(), "index", String("keyPath"), unique, multiEntry); + RefPtr<IDBIndexBackendImpl> index = IDBIndexBackendImpl::create(db.get(), store.get(), "index", IDBKeyPath("keyPath"), unique, multiEntry); EXPECT_GT(backingStore->refCount(), 1); db.clear(); diff --git a/Source/WebKit/chromium/tests/LayerChromiumTest.cpp b/Source/WebKit/chromium/tests/LayerChromiumTest.cpp index 0e6eb0eb4..a17b076f3 100644 --- a/Source/WebKit/chromium/tests/LayerChromiumTest.cpp +++ b/Source/WebKit/chromium/tests/LayerChromiumTest.cpp @@ -26,15 +26,15 @@ #include "LayerChromium.h" +#include "CCGeometryTestUtils.h" #include "CCLayerImpl.h" #include "CCLayerTreeHost.h" -#include "CCLayerTreeTestCommon.h" #include "CCSingleThreadProxy.h" #include "FakeCCLayerTreeHostClient.h" #include "LayerPainterChromium.h" +#include "WebCompositorInitializer.h" #include <gmock/gmock.h> #include <gtest/gtest.h> -#include <public/WebCompositor.h> #include <public/WebTransformationMatrix.h> using namespace WebCore; @@ -74,11 +74,15 @@ public: class LayerChromiumTest : public testing::Test { +public: + LayerChromiumTest() + : m_compositorInitializer(0) + { + } + protected: virtual void SetUp() { - // Initialize without threading support. - WebKit::WebCompositor::initialize(0); m_layerTreeHost = adoptPtr(new MockCCLayerTreeHost); } @@ -96,7 +100,6 @@ protected: m_layerTreeHost->setRootLayer(0); m_layerTreeHost.clear(); - WebKit::WebCompositor::shutdown(); } void verifyTestTreeInitialState() const @@ -149,6 +152,7 @@ protected: OwnPtr<MockCCLayerTreeHost> m_layerTreeHost; RefPtr<LayerChromium> m_parent, m_child1, m_child2, m_child3, m_grandChild1, m_grandChild2, m_grandChild3; + WebCompositorInitializer m_compositorInitializer; }; TEST_F(LayerChromiumTest, basicCreateAndDestroy) @@ -635,7 +639,7 @@ void assertLayerTreeHostMatchesForSubtree(LayerChromium* layer, CCLayerTreeHost* TEST(LayerChromiumLayerTreeHostTest, enteringTree) { - WebKit::WebCompositor::initialize(0); + WebCompositorInitializer compositorInitializer(0); RefPtr<LayerChromium> parent = LayerChromium::create(); RefPtr<LayerChromium> child = LayerChromium::create(); RefPtr<LayerChromium> mask = LayerChromium::create(); @@ -662,12 +666,11 @@ TEST(LayerChromiumLayerTreeHostTest, enteringTree) assertLayerTreeHostMatchesForSubtree(parent.get(), 0); layerTreeHost.clear(); - WebKit::WebCompositor::shutdown(); } TEST(LayerChromiumLayerTreeHostTest, addingLayerSubtree) { - WebKit::WebCompositor::initialize(0); + WebCompositorInitializer compositorInitializer(0); RefPtr<LayerChromium> parent = LayerChromium::create(); OwnPtr<FakeCCLayerTreeHost> layerTreeHost(FakeCCLayerTreeHost::create()); @@ -693,12 +696,11 @@ TEST(LayerChromiumLayerTreeHostTest, addingLayerSubtree) layerTreeHost->setRootLayer(0); layerTreeHost.clear(); - WebKit::WebCompositor::shutdown(); } TEST(LayerChromiumLayerTreeHostTest, changeHost) { - WebKit::WebCompositor::initialize(0); + WebCompositorInitializer compositorInitializer(0); RefPtr<LayerChromium> parent = LayerChromium::create(); RefPtr<LayerChromium> child = LayerChromium::create(); RefPtr<LayerChromium> mask = LayerChromium::create(); @@ -726,12 +728,11 @@ TEST(LayerChromiumLayerTreeHostTest, changeHost) secondLayerTreeHost->setRootLayer(0); firstLayerTreeHost.clear(); secondLayerTreeHost.clear(); - WebKit::WebCompositor::shutdown(); } TEST(LayerChromiumLayerTreeHostTest, changeHostInSubtree) { - WebKit::WebCompositor::initialize(0); + WebCompositorInitializer compositorInitializer(0); RefPtr<LayerChromium> firstParent = LayerChromium::create(); RefPtr<LayerChromium> firstChild = LayerChromium::create(); RefPtr<LayerChromium> secondParent = LayerChromium::create(); @@ -763,12 +764,11 @@ TEST(LayerChromiumLayerTreeHostTest, changeHostInSubtree) secondLayerTreeHost->setRootLayer(0); firstLayerTreeHost.clear(); secondLayerTreeHost.clear(); - WebKit::WebCompositor::shutdown(); } TEST(LayerChromiumLayerTreeHostTest, replaceMaskAndReplicaLayer) { - WebKit::WebCompositor::initialize(0); + WebCompositorInitializer compositorInitializer(0); RefPtr<LayerChromium> parent = LayerChromium::create(); RefPtr<LayerChromium> mask = LayerChromium::create(); RefPtr<LayerChromium> replica = LayerChromium::create(); @@ -800,19 +800,17 @@ TEST(LayerChromiumLayerTreeHostTest, replaceMaskAndReplicaLayer) // Test over, cleanup time. layerTreeHost->setRootLayer(0); layerTreeHost.clear(); - WebKit::WebCompositor::shutdown(); } TEST(LayerChromiumLayerTreeHostTest, destroyHostWithNonNullRootLayer) { - WebKit::WebCompositor::initialize(0); + WebCompositorInitializer compositorInitializer(0); RefPtr<LayerChromium> root = LayerChromium::create(); RefPtr<LayerChromium> child = LayerChromium::create(); root->addChild(child); OwnPtr<FakeCCLayerTreeHost> layerTreeHost(FakeCCLayerTreeHost::create()); layerTreeHost->setRootLayer(root); layerTreeHost.clear(); - WebKit::WebCompositor::shutdown(); } class MockLayerChromium : public LayerChromium { diff --git a/Source/WebKit/chromium/tests/LinkHighlightTest.cpp b/Source/WebKit/chromium/tests/LinkHighlightTest.cpp index 64830ef22..eafe2307f 100644 --- a/Source/WebKit/chromium/tests/LinkHighlightTest.cpp +++ b/Source/WebKit/chromium/tests/LinkHighlightTest.cpp @@ -30,10 +30,10 @@ #include "IntRect.h" #include "Node.h" #include "URLTestHelpers.h" +#include "WebCompositorInitializer.h" #include "WebFrame.h" #include "WebViewImpl.h" #include <gtest/gtest.h> -#include <public/WebCompositor.h> #include <public/WebContentLayer.h> #include <public/WebFloatPoint.h> #include <public/WebSize.h> @@ -47,7 +47,7 @@ namespace { #if ENABLE(GESTURE_EVENTS) TEST(LinkHighlightTest, verifyWebViewImplIntegration) { - WebCompositor::initialize(0); + WebKitTests::WebCompositorInitializer compositorInitializer(0); const std::string baseURL("http://www.test.com/"); const std::string fileName("test_touch_link_highlight.html"); @@ -82,7 +82,6 @@ TEST(LinkHighlightTest, verifyWebViewImplIntegration) ASSERT_TRUE(webViewImpl->linkHighlight()); webViewImpl->close(); - WebCompositor::shutdown(); } #endif diff --git a/Source/WebKit/chromium/tests/MemoryInstrumentationTest.cpp b/Source/WebKit/chromium/tests/MemoryInstrumentationTest.cpp index b5b50bf7d..51b200ade 100644 --- a/Source/WebKit/chromium/tests/MemoryInstrumentationTest.cpp +++ b/Source/WebKit/chromium/tests/MemoryInstrumentationTest.cpp @@ -32,6 +32,7 @@ #include "DataRef.h" #include "MemoryInstrumentationImpl.h" +#include "WebCoreMemoryInstrumentation.h" #include <gtest/gtest.h> @@ -58,7 +59,7 @@ public: virtual void reportMemoryUsage(MemoryObjectInfo* memoryObjectInfo) const { - MemoryClassInfo info(memoryObjectInfo, this, MemoryInstrumentation::DOM); + MemoryClassInfo info(memoryObjectInfo, this, WebCoreMemoryTypes::DOM); info.addMember(m_notInstrumented); } NotInstrumented* m_notInstrumented; @@ -122,7 +123,7 @@ public: virtual void reportMemoryUsage(MemoryObjectInfo* memoryObjectInfo) const { - MemoryClassInfo info(memoryObjectInfo, this, MemoryInstrumentation::DOM); + MemoryClassInfo info(memoryObjectInfo, this, WebCoreMemoryTypes::DOM); info.addMember(m_notInstrumented); } NotInstrumented* m_notInstrumented; @@ -155,7 +156,7 @@ public: virtual void reportMemoryUsage(MemoryObjectInfo* memoryObjectInfo) const { - MemoryClassInfo info(memoryObjectInfo, this, MemoryInstrumentation::CSS); + MemoryClassInfo info(memoryObjectInfo, this, WebCoreMemoryTypes::CSS); Instrumented::reportMemoryUsage(memoryObjectInfo); info.addMember(m_notInstrumentedOwnPtr); } @@ -172,27 +173,27 @@ TEST(MemoryInstrumentationTest, ownPtrNotInstrumented) EXPECT_EQ(2, visitedObjects.size()); } -class InstrumentedOther { +class InstrumentedUndefined { public: - InstrumentedOther() : m_data(0) { } + InstrumentedUndefined() : m_data(0) { } void reportMemoryUsage(MemoryObjectInfo* memoryObjectInfo) const { - MemoryClassInfo info(memoryObjectInfo, this, MemoryInstrumentation::Other); + MemoryClassInfo info(memoryObjectInfo, this, GenericMemoryTypes::Undefined); } int m_data; }; class InstrumentedDOM { public: - InstrumentedDOM() : m_instrumentedOther(adoptPtr(new InstrumentedOther)) { } + InstrumentedDOM() : m_instrumentedUndefined(adoptPtr(new InstrumentedUndefined)) { } void reportMemoryUsage(MemoryObjectInfo* memoryObjectInfo) const { - MemoryClassInfo info(memoryObjectInfo, this, MemoryInstrumentation::DOM); - info.addInstrumentedMember(m_instrumentedOther); + MemoryClassInfo info(memoryObjectInfo, this, WebCoreMemoryTypes::DOM); + info.addInstrumentedMember(m_instrumentedUndefined); } - OwnPtr<InstrumentedOther> m_instrumentedOther; + OwnPtr<InstrumentedUndefined> m_instrumentedUndefined; }; TEST(MemoryInstrumentationTest, ownerTypePropagation) @@ -201,8 +202,8 @@ TEST(MemoryInstrumentationTest, ownerTypePropagation) MemoryInstrumentationImpl impl(visitedObjects); OwnPtr<InstrumentedDOM> instrumentedDOM(adoptPtr(new InstrumentedDOM)); impl.addRootObject(instrumentedDOM); - EXPECT_EQ(sizeof(InstrumentedDOM) + sizeof(InstrumentedOther), impl.reportedSizeForAllTypes()); - EXPECT_EQ(sizeof(InstrumentedDOM) + sizeof(InstrumentedOther), impl.totalSize(MemoryInstrumentation::DOM)); + EXPECT_EQ(sizeof(InstrumentedDOM) + sizeof(InstrumentedUndefined), impl.reportedSizeForAllTypes()); + EXPECT_EQ(sizeof(InstrumentedDOM) + sizeof(InstrumentedUndefined), impl.totalSize(WebCoreMemoryTypes::DOM)); EXPECT_EQ(2, visitedObjects.size()); } @@ -210,7 +211,7 @@ class NonVirtualInstrumented { public: void reportMemoryUsage(MemoryObjectInfo* memoryObjectInfo) const { - MemoryClassInfo info(memoryObjectInfo, this, MemoryInstrumentation::DOM); + MemoryClassInfo info(memoryObjectInfo, this, WebCoreMemoryTypes::DOM); info.addInstrumentedMember(m_instrumented); } @@ -227,32 +228,26 @@ TEST(MemoryInstrumentationTest, visitFirstMemberInNonVirtualClass) EXPECT_EQ(2, visitedObjects.size()); } -TEST(MemoryInstrumentationTest, visitStrings) -{ - { - VisitedObjects visitedObjects; - MemoryInstrumentationImpl impl(visitedObjects); - String string("string"); - impl.addRootObject(string); - EXPECT_EQ(string.impl()->sizeInBytes(), impl.reportedSizeForAllTypes()); - EXPECT_EQ(2, visitedObjects.size()); - } - { - VisitedObjects visitedObjects; - MemoryInstrumentationImpl impl(visitedObjects); - String string("string"); - impl.addRootObject(&string); - EXPECT_EQ(string.impl()->sizeInBytes() + sizeof(String), impl.reportedSizeForAllTypes()); - EXPECT_EQ(2, visitedObjects.size()); - } +class StringOwnerInstrumented { +public: + StringOwnerInstrumented() : m_name("string") { } + void reportMemoryUsage(MemoryObjectInfo* memoryObjectInfo) const { - VisitedObjects visitedObjects; - MemoryInstrumentationImpl impl(visitedObjects); - AtomicString string("string"); - impl.addRootObject(&string); - EXPECT_EQ(string.impl()->sizeInBytes() + sizeof(AtomicString), impl.reportedSizeForAllTypes()); - EXPECT_EQ(2, visitedObjects.size()); + MemoryClassInfo info(memoryObjectInfo, this, WebCoreMemoryTypes::DOM); + info.addInstrumentedMember(m_name); } + + String m_name; +}; + +TEST(MemoryInstrumentationTest, visitStrings) +{ + VisitedObjects visitedObjects; + MemoryInstrumentationImpl impl(visitedObjects); + StringOwnerInstrumented stringOwnerInstrumented; + impl.addRootObject(stringOwnerInstrumented); + EXPECT_EQ(stringOwnerInstrumented.m_name.impl()->sizeInBytes(), impl.reportedSizeForAllTypes()); + EXPECT_EQ(2, visitedObjects.size()); } } // namespace diff --git a/Source/WebKit/chromium/tests/MockCCQuadCuller.h b/Source/WebKit/chromium/tests/MockCCQuadCuller.h index 59a0073ce..1833f349e 100644 --- a/Source/WebKit/chromium/tests/MockCCQuadCuller.h +++ b/Source/WebKit/chromium/tests/MockCCQuadCuller.h @@ -44,7 +44,7 @@ public: , m_activeSharedQuadStateList(externalSharedQuadStateList) { } - virtual bool append(WTF::PassOwnPtr<CCDrawQuad> newQuad) OVERRIDE + virtual bool append(PassOwnPtr<CCDrawQuad> newQuad, CCAppendQuadsData&) OVERRIDE { OwnPtr<CCDrawQuad> drawQuad = newQuad; if (!drawQuad->quadRect().isEmpty()) { diff --git a/Source/WebKit/chromium/tests/PlatformGestureCurveTest.cpp b/Source/WebKit/chromium/tests/PlatformGestureCurveTest.cpp index 4f0a2276f..9bda21764 100644 --- a/Source/WebKit/chromium/tests/PlatformGestureCurveTest.cpp +++ b/Source/WebKit/chromium/tests/PlatformGestureCurveTest.cpp @@ -28,10 +28,8 @@ #include "PlatformGestureCurve.h" #include "ActivePlatformGestureAnimation.h" -#include "CCActiveGestureAnimation.h" -#include "CCGestureCurve.h" #include "PlatformGestureCurveTarget.h" -#include "TouchpadFlingPlatformGestureCurve.h" +#include "TouchFlingPlatformGestureCurve.h" #include "WheelFlingPlatformGestureCurve.h" #include <gtest/gtest.h> #include <wtf/OwnPtr.h> @@ -101,7 +99,7 @@ TEST(PlatformGestureCurve, flingCurveTouch) { double initialVelocity = 5000; MockPlatformGestureCurveTarget target; - OwnPtr<ActivePlatformGestureAnimation> animation = ActivePlatformGestureAnimation::create(TouchpadFlingPlatformGestureCurve::create(FloatPoint(initialVelocity, 0)), &target); + OwnPtr<ActivePlatformGestureAnimation> animation = ActivePlatformGestureAnimation::create(TouchFlingPlatformGestureCurve::createForTouchPad(FloatPoint(initialVelocity, 0)), &target); // Note: the expectations below are dependent on the value of sigma hard-coded in the curve parameters. // If the parameters change, then the tests values/expectations will need to be updated. diff --git a/Source/WebKit/chromium/tests/ScrollbarLayerChromiumTest.cpp b/Source/WebKit/chromium/tests/ScrollbarLayerChromiumTest.cpp index 6242043b3..c6efbb5bf 100644 --- a/Source/WebKit/chromium/tests/ScrollbarLayerChromiumTest.cpp +++ b/Source/WebKit/chromium/tests/ScrollbarLayerChromiumTest.cpp @@ -30,8 +30,6 @@ #include "CCScrollbarLayerImpl.h" #include "CCSingleThreadProxy.h" #include "FakeWebScrollbarThemeGeometry.h" -#include "Scrollbar.h" -#include "Settings.h" #include "TreeSynchronizer.h" #include <gtest/gtest.h> #include <public/WebScrollbar.h> @@ -42,68 +40,37 @@ using namespace WebCore; namespace { -class MockScrollbar : public Scrollbar { +class FakeWebScrollbar : public WebKit::WebScrollbar { public: - virtual int x() const { return 0; } - virtual int y() const { return 0; } - virtual int width() const { return 0; } - virtual int height() const { return 0; } - virtual IntSize size() const { return IntSize(); } - virtual IntPoint location() const { return IntPoint(); } - - virtual ScrollView* parent() const { return 0; } - virtual ScrollView* root() const { return 0; } - - virtual void setFrameRect(const IntRect&) { } - virtual IntRect frameRect() const { return IntRect(); } - - virtual void invalidate() { } - virtual void invalidateRect(const IntRect&) { } - - virtual ScrollbarOverlayStyle scrollbarOverlayStyle() const { return ScrollbarOverlayStyleDefault; } - virtual void getTickmarks(Vector<IntRect>&) const { } - virtual bool isScrollableAreaActive() const { return false; } - virtual bool isScrollViewScrollbar() const { return false; } - - virtual IntPoint convertFromContainingWindow(const IntPoint& windowPoint) { return windowPoint; } - - virtual bool isCustomScrollbar() const { return false; } - virtual ScrollbarOrientation orientation() const { return HorizontalScrollbar; } - - virtual int value() const { return 0; } - virtual float currentPos() const { return 0; } - virtual int visibleSize() const { return 1; } - virtual int totalSize() const { return 1; } - virtual int maximum() const { return 0; } - virtual ScrollbarControlSize controlSize() const { return RegularScrollbar; } - - virtual int lineStep() const { return 0; } - virtual int pageStep() const { return 0; } - - virtual ScrollbarPart pressedPart() const { return NoPart; } - virtual ScrollbarPart hoveredPart() const { return NoPart; } - - virtual void styleChanged() { } - - virtual bool enabled() const { return false; } - virtual void setEnabled(bool) { } - - virtual bool isOverlayScrollbar() const { return false; } - - MockScrollbar() : Scrollbar(0, HorizontalScrollbar, RegularScrollbar) { } - virtual ~MockScrollbar() { } + static PassOwnPtr<FakeWebScrollbar> create() { return adoptPtr(new FakeWebScrollbar()); } + + // WebScrollbar implementation + virtual bool isOverlay() const OVERRIDE { return false; } + virtual int value() const OVERRIDE { return 0; } + virtual WebKit::WebPoint location() const OVERRIDE { return WebKit::WebPoint(); } + virtual WebKit::WebSize size() const OVERRIDE { return WebKit::WebSize(); } + virtual bool enabled() const OVERRIDE { return true; } + virtual int maximum() const OVERRIDE { return 0; } + virtual int totalSize() const OVERRIDE { return 0; } + virtual bool isScrollViewScrollbar() const OVERRIDE { return false; } + virtual bool isScrollableAreaActive() const OVERRIDE { return true; } + virtual void getTickmarks(WebKit::WebVector<WebKit::WebRect>&) const OVERRIDE { } + virtual ScrollbarControlSize controlSize() const OVERRIDE { return WebScrollbar::RegularScrollbar; } + virtual ScrollbarPart pressedPart() const OVERRIDE { return WebScrollbar::NoPart; } + virtual ScrollbarPart hoveredPart() const OVERRIDE { return WebScrollbar::NoPart; } + virtual ScrollbarOverlayStyle scrollbarOverlayStyle() const OVERRIDE { return WebScrollbar::ScrollbarOverlayStyleDefault; } + virtual bool isCustomScrollbar() const OVERRIDE { return false; } + virtual Orientation orientation() const OVERRIDE { return WebScrollbar::Horizontal; } }; TEST(ScrollbarLayerChromiumTest, resolveScrollLayerPointer) { DebugScopedSetImplThread impl; - RefPtr<MockScrollbar> mockScrollbar = adoptRef(new MockScrollbar); - WebKit::WebScrollbarThemePainter painter(0, mockScrollbar.get()); + WebKit::WebScrollbarThemePainter painter; - Settings::setMockScrollbarsEnabled(true); { - OwnPtr<WebKit::WebScrollbar> scrollbar = WebKit::WebScrollbar::create(mockScrollbar.get()); + OwnPtr<WebKit::WebScrollbar> scrollbar(FakeWebScrollbar::create()); RefPtr<LayerChromium> layerTreeRoot = LayerChromium::create(); RefPtr<LayerChromium> child1 = LayerChromium::create(); RefPtr<LayerChromium> child2 = ScrollbarLayerChromium::create(scrollbar.release(), painter, WebKit::FakeWebScrollbarThemeGeometry::create(), child1->id()); @@ -120,7 +87,7 @@ TEST(ScrollbarLayerChromiumTest, resolveScrollLayerPointer) } { // another traverse order - OwnPtr<WebKit::WebScrollbar> scrollbar = WebKit::WebScrollbar::create(mockScrollbar.get()); + OwnPtr<WebKit::WebScrollbar> scrollbar(FakeWebScrollbar::create()); RefPtr<LayerChromium> layerTreeRoot = LayerChromium::create(); RefPtr<LayerChromium> child2 = LayerChromium::create(); RefPtr<LayerChromium> child1 = ScrollbarLayerChromium::create(scrollbar.release(), painter, WebKit::FakeWebScrollbarThemeGeometry::create(), child2->id()); @@ -141,12 +108,9 @@ TEST(ScrollbarLayerChromiumTest, scrollOffsetSynchronization) { DebugScopedSetImplThread impl; - RefPtr<MockScrollbar> mockScrollbar = adoptRef(new MockScrollbar); - WebKit::WebScrollbarThemePainter painter(0, mockScrollbar.get()); - - Settings::setMockScrollbarsEnabled(true); + WebKit::WebScrollbarThemePainter painter; - OwnPtr<WebKit::WebScrollbar> scrollbar = WebKit::WebScrollbar::create(mockScrollbar.get()); + OwnPtr<WebKit::WebScrollbar> scrollbar(FakeWebScrollbar::create()); RefPtr<LayerChromium> layerTreeRoot = LayerChromium::create(); RefPtr<LayerChromium> contentLayer = LayerChromium::create(); RefPtr<LayerChromium> scrollbarLayer = ScrollbarLayerChromium::create(scrollbar.release(), painter, WebKit::FakeWebScrollbarThemeGeometry::create(), layerTreeRoot->id()); diff --git a/Source/WebKit/chromium/tests/TextureCopierTest.cpp b/Source/WebKit/chromium/tests/TextureCopierTest.cpp index 432dd7c4a..c4bf63703 100644 --- a/Source/WebKit/chromium/tests/TextureCopierTest.cpp +++ b/Source/WebKit/chromium/tests/TextureCopierTest.cpp @@ -27,7 +27,7 @@ #include "TextureCopier.h" #include "FakeWebGraphicsContext3D.h" - +#include "GraphicsContext3D.h" #include <gmock/gmock.h> #include <gtest/gtest.h> #include <wtf/RefPtr.h> @@ -41,14 +41,13 @@ using testing::_; class MockContext : public FakeWebGraphicsContext3D { public: MOCK_METHOD2(bindFramebuffer, void(WGC3Denum, WebGLId)); - MOCK_METHOD3(texParameteri, void(GC3Denum target, GC3Denum pname, GC3Dint param)); + MOCK_METHOD3(texParameteri, void(WGC3Denum target, WGC3Denum pname, WGC3Dint param)); - MOCK_METHOD3(drawArrays, void(GC3Denum mode, GC3Dint first, GC3Dsizei count)); + MOCK_METHOD3(drawArrays, void(WGC3Denum mode, WGC3Dint first, WGC3Dsizei count)); }; TEST(TextureCopierTest, testDrawArraysCopy) { - GraphicsContext3D::Attributes attrs; OwnPtr<MockContext> mockContext = adoptPtr(new MockContext); { diff --git a/Source/WebKit/chromium/tests/TextureLayerChromiumTest.cpp b/Source/WebKit/chromium/tests/TextureLayerChromiumTest.cpp index a4830e53f..72e0206ad 100644 --- a/Source/WebKit/chromium/tests/TextureLayerChromiumTest.cpp +++ b/Source/WebKit/chromium/tests/TextureLayerChromiumTest.cpp @@ -28,9 +28,9 @@ #include "CCLayerTreeHost.h" #include "FakeCCLayerTreeHostClient.h" +#include "WebCompositorInitializer.h" #include <gmock/gmock.h> #include <gtest/gtest.h> -#include <public/WebCompositor.h> using namespace WebCore; using ::testing::Mock; @@ -56,11 +56,15 @@ private: class TextureLayerChromiumTest : public testing::Test { +public: + TextureLayerChromiumTest() + : m_compositorInitializer(0) + { + } + protected: virtual void SetUp() { - // Initialize without threading support. - WebKit::WebCompositor::initialize(0); m_layerTreeHost = adoptPtr(new MockCCLayerTreeHost); } @@ -71,10 +75,11 @@ protected: m_layerTreeHost->setRootLayer(0); m_layerTreeHost.clear(); - WebKit::WebCompositor::shutdown(); } OwnPtr<MockCCLayerTreeHost> m_layerTreeHost; +private: + WebKitTests::WebCompositorInitializer m_compositorInitializer; }; TEST_F(TextureLayerChromiumTest, syncImplWhenChangingTextureId) diff --git a/Source/WebKit/chromium/tests/ThrottledTextureUploaderTest.cpp b/Source/WebKit/chromium/tests/ThrottledTextureUploaderTest.cpp index 3660c9412..8937f14ad 100644 --- a/Source/WebKit/chromium/tests/ThrottledTextureUploaderTest.cpp +++ b/Source/WebKit/chromium/tests/ThrottledTextureUploaderTest.cpp @@ -28,6 +28,7 @@ #include "Extensions3DChromium.h" #include "FakeWebGraphicsContext3D.h" +#include "GraphicsContext3D.h" #include <gmock/gmock.h> #include <gtest/gtest.h> @@ -64,7 +65,6 @@ private: TEST(ThrottledTextureUploaderTest, IsBusy) { - GraphicsContext3D::Attributes attrs; OwnPtr<FakeWebGraphicsContext3DWithQueryTesting> fakeContext(adoptPtr(new FakeWebGraphicsContext3DWithQueryTesting)); OwnPtr<ThrottledTextureUploader> uploader = ThrottledTextureUploader::create(fakeContext.get(), 2); diff --git a/Source/WebKit/chromium/tests/TiledLayerChromiumTest.cpp b/Source/WebKit/chromium/tests/TiledLayerChromiumTest.cpp index 00ee28a68..85821a8b3 100644 --- a/Source/WebKit/chromium/tests/TiledLayerChromiumTest.cpp +++ b/Source/WebKit/chromium/tests/TiledLayerChromiumTest.cpp @@ -28,7 +28,7 @@ #include "BitmapCanvasLayerTextureUpdater.h" #include "CCAnimationTestCommon.h" -#include "CCLayerTreeTestCommon.h" +#include "CCGeometryTestUtils.h" #include "CCOverdrawMetrics.h" #include "CCRenderingStats.h" #include "CCSingleThreadProxy.h" // For DebugScopedSetImplThread @@ -37,8 +37,8 @@ #include "FakeCCGraphicsContext.h" #include "FakeCCLayerTreeHostClient.h" #include "LayerPainterChromium.h" +#include "WebCompositorInitializer.h" #include <gtest/gtest.h> -#include <public/WebCompositor.h> #include <public/WebTransformationMatrix.h> using namespace WebCore; @@ -46,12 +46,6 @@ using namespace WebKitTests; using namespace WTF; using WebKit::WebTransformationMatrix; -#define EXPECT_EQ_RECT(a, b) \ - EXPECT_EQ(a.x(), b.x()); \ - EXPECT_EQ(a.y(), b.y()); \ - EXPECT_EQ(a.width(), b.width()); \ - EXPECT_EQ(a.height(), b.height()); - namespace { class TestCCOcclusionTracker : public CCOcclusionTracker { @@ -76,29 +70,72 @@ private: class TiledLayerChromiumTest : public testing::Test { public: TiledLayerChromiumTest() - : m_context(WebKit::createFakeCCGraphicsContext()) + : m_compositorInitializer(0) + , m_context(WebKit::createFakeCCGraphicsContext()) , m_textureManager(CCPrioritizedTextureManager::create(60*1024*1024, 1024, CCRenderer::ContentPool)) , m_occlusion(0) { - DebugScopedSetImplThread implThread; + DebugScopedSetImplThreadAndMainThreadBlocked implThreadAndMainThreadBlocked; m_resourceProvider = CCResourceProvider::create(m_context.get()); } virtual ~TiledLayerChromiumTest() { - DebugScopedSetImplThread implThread; + textureManagerClearAllMemory(m_textureManager.get(), m_resourceProvider.get()); + DebugScopedSetImplThreadAndMainThreadBlocked implThreadAndMainThreadBlocked; m_resourceProvider.clear(); } + // Helper classes and functions that set the current thread to be the impl thread + // before doing the action that they wrap. + class ScopedFakeCCTiledLayerImpl { + public: + ScopedFakeCCTiledLayerImpl(int id) + { + DebugScopedSetImplThread implThread; + m_layerImpl = new FakeCCTiledLayerImpl(id); + } + ~ScopedFakeCCTiledLayerImpl() + { + DebugScopedSetImplThread implThread; + delete m_layerImpl; + } + FakeCCTiledLayerImpl* get() + { + return m_layerImpl; + } + FakeCCTiledLayerImpl* operator->() + { + return m_layerImpl; + } + private: + FakeCCTiledLayerImpl* m_layerImpl; + }; + void textureManagerClearAllMemory(CCPrioritizedTextureManager* textureManager, CCResourceProvider* resourceProvider) + { + DebugScopedSetImplThreadAndMainThreadBlocked implThreadAndMainThreadBlocked; + textureManager->clearAllMemory(resourceProvider); + } void updateTextures(int count = 500) { + DebugScopedSetImplThreadAndMainThreadBlocked implThreadAndMainThreadBlocked; CCTextureUpdateController::updateTextures(m_resourceProvider.get(), &m_copier, &m_uploader, &m_queue, count); } + void layerPushPropertiesTo(FakeTiledLayerChromium* layer, FakeCCTiledLayerImpl* layerImpl) + { + DebugScopedSetImplThreadAndMainThreadBlocked implThreadAndMainThreadBlocked; + layer->pushPropertiesTo(layerImpl); + } + void layerUpdate(FakeTiledLayerChromium* layer, TestCCOcclusionTracker* occluded) + { + DebugScopedSetMainThread mainThread; + layer->update(m_queue, occluded, m_stats); + } bool updateAndPush(FakeTiledLayerChromium* layer1, - CCLayerImpl* layerImpl1, + FakeCCTiledLayerImpl* layerImpl1, FakeTiledLayerChromium* layer2 = 0, - CCLayerImpl* layerImpl2 = 0) + FakeCCTiledLayerImpl* layerImpl2 = 0) { // Get textures m_textureManager->clearPriorities(); @@ -123,14 +160,15 @@ public: // Update textures and push. updateTextures(); if (layer1) - layer1->pushPropertiesTo(layerImpl1); + layerPushPropertiesTo(layer1, layerImpl1); if (layer2) - layer2->pushPropertiesTo(layerImpl2); + layerPushPropertiesTo(layer2, layerImpl2); return needsUpdate; } public: + WebKitTests::WebCompositorInitializer m_compositorInitializer; OwnPtr<CCGraphicsContext> m_context; OwnPtr<CCResourceProvider> m_resourceProvider; CCTextureUpdateQueue m_queue; @@ -145,8 +183,7 @@ public: TEST_F(TiledLayerChromiumTest, pushDirtyTiles) { RefPtr<FakeTiledLayerChromium> layer = adoptRef(new FakeTiledLayerChromium(m_textureManager.get())); - DebugScopedSetImplThread implThread; - OwnPtr<FakeCCTiledLayerImpl> layerImpl(adoptPtr(new FakeCCTiledLayerImpl(1))); + ScopedFakeCCTiledLayerImpl layerImpl(1); // The tile size is 100x100, so this invalidates and then paints two tiles. layer->setBounds(IntSize(100, 200)); @@ -172,8 +209,7 @@ TEST_F(TiledLayerChromiumTest, pushDirtyTiles) TEST_F(TiledLayerChromiumTest, pushOccludedDirtyTiles) { RefPtr<FakeTiledLayerChromium> layer = adoptRef(new FakeTiledLayerChromium(m_textureManager.get())); - DebugScopedSetImplThread implThread; - OwnPtr<FakeCCTiledLayerImpl> layerImpl(adoptPtr(new FakeCCTiledLayerImpl(1))); + ScopedFakeCCTiledLayerImpl layerImpl(1); TestCCOcclusionTracker occluded; m_occlusion = &occluded; @@ -209,8 +245,7 @@ TEST_F(TiledLayerChromiumTest, pushOccludedDirtyTiles) TEST_F(TiledLayerChromiumTest, pushDeletedTiles) { RefPtr<FakeTiledLayerChromium> layer = adoptRef(new FakeTiledLayerChromium(m_textureManager.get())); - DebugScopedSetImplThread implThread; - OwnPtr<FakeCCTiledLayerImpl> layerImpl(adoptPtr(new FakeCCTiledLayerImpl(1))); + ScopedFakeCCTiledLayerImpl layerImpl(1); // The tile size is 100x100, so this invalidates and then paints two tiles. layer->setBounds(IntSize(100, 200)); @@ -223,11 +258,11 @@ TEST_F(TiledLayerChromiumTest, pushDeletedTiles) EXPECT_TRUE(layerImpl->hasTileAt(0, 1)); m_textureManager->clearPriorities(); - m_textureManager->clearAllMemory(m_resourceProvider.get()); + textureManagerClearAllMemory(m_textureManager.get(), m_resourceProvider.get()); m_textureManager->setMaxMemoryLimitBytes(4*1024*1024); // This should drop the tiles on the impl thread. - layer->pushPropertiesTo(layerImpl.get()); + layerPushPropertiesTo(layer.get(), layerImpl.get()); // We should now have no textures on the impl thread. EXPECT_FALSE(layerImpl->hasTileAt(0, 0)); @@ -245,8 +280,7 @@ TEST_F(TiledLayerChromiumTest, pushDeletedTiles) TEST_F(TiledLayerChromiumTest, pushIdlePaintTiles) { RefPtr<FakeTiledLayerChromium> layer = adoptRef(new FakeTiledLayerChromium(m_textureManager.get())); - DebugScopedSetImplThread implThread; - OwnPtr<FakeCCTiledLayerImpl> layerImpl(adoptPtr(new FakeCCTiledLayerImpl(1))); + ScopedFakeCCTiledLayerImpl layerImpl(1); // The tile size is 100x100. Setup 5x5 tiles with one visible tile in the center. // This paints 1 visible of the 25 invalid tiles. @@ -283,11 +317,10 @@ TEST_F(TiledLayerChromiumTest, pushTilesAfterIdlePaintFailed) { // Start with 2mb of memory, but the test is going to try to use just more than 1mb, so we reduce to 1mb later. m_textureManager->setMaxMemoryLimitBytes(2 * 1024 * 1024); - DebugScopedSetImplThread implThread; RefPtr<FakeTiledLayerChromium> layer1 = adoptRef(new FakeTiledLayerChromium(m_textureManager.get())); - OwnPtr<FakeCCTiledLayerImpl> layerImpl1(adoptPtr(new FakeCCTiledLayerImpl(1))); + ScopedFakeCCTiledLayerImpl layerImpl1(1); RefPtr<FakeTiledLayerChromium> layer2 = adoptRef(new FakeTiledLayerChromium(m_textureManager.get())); - OwnPtr<FakeCCTiledLayerImpl> layerImpl2(adoptPtr(new FakeCCTiledLayerImpl(2))); + ScopedFakeCCTiledLayerImpl layerImpl2(2); // For this test we have two layers. layer1 exhausts most texture memory, leaving room for 2 more tiles from // layer2, but not all three tiles. First we paint layer1, and one tile from layer2. Then when we idle paint @@ -337,8 +370,7 @@ TEST_F(TiledLayerChromiumTest, pushTilesAfterIdlePaintFailed) TEST_F(TiledLayerChromiumTest, pushIdlePaintedOccludedTiles) { RefPtr<FakeTiledLayerChromium> layer = adoptRef(new FakeTiledLayerChromium(m_textureManager.get())); - DebugScopedSetImplThread implThread; - OwnPtr<FakeCCTiledLayerImpl> layerImpl(adoptPtr(new FakeCCTiledLayerImpl(1))); + ScopedFakeCCTiledLayerImpl layerImpl(1); TestCCOcclusionTracker occluded; m_occlusion = &occluded; @@ -357,8 +389,7 @@ TEST_F(TiledLayerChromiumTest, pushIdlePaintedOccludedTiles) TEST_F(TiledLayerChromiumTest, pushTilesMarkedDirtyDuringPaint) { RefPtr<FakeTiledLayerChromium> layer = adoptRef(new FakeTiledLayerChromium(m_textureManager.get())); - DebugScopedSetImplThread implThread; - OwnPtr<FakeCCTiledLayerImpl> layerImpl(adoptPtr(new FakeCCTiledLayerImpl(1))); + ScopedFakeCCTiledLayerImpl layerImpl(1); // The tile size is 100x100, so this invalidates and then paints two tiles. // However, during the paint, we invalidate one of the tiles. This should @@ -377,9 +408,8 @@ TEST_F(TiledLayerChromiumTest, pushTilesLayerMarkedDirtyDuringPaintOnNextLayer) { RefPtr<FakeTiledLayerChromium> layer1 = adoptRef(new FakeTiledLayerChromium(m_textureManager.get())); RefPtr<FakeTiledLayerChromium> layer2 = adoptRef(new FakeTiledLayerChromium(m_textureManager.get())); - DebugScopedSetImplThread implThread; - OwnPtr<FakeCCTiledLayerImpl> layer1Impl(adoptPtr(new FakeCCTiledLayerImpl(1))); - OwnPtr<FakeCCTiledLayerImpl> layer2Impl(adoptPtr(new FakeCCTiledLayerImpl(2))); + ScopedFakeCCTiledLayerImpl layer1Impl(1); + ScopedFakeCCTiledLayerImpl layer2Impl(2); // Invalidate a tile on layer1, during update of layer 2. layer2->fakeLayerTextureUpdater()->setRectToInvalidate(IntRect(0, 50, 100, 50), layer1.get()); @@ -401,9 +431,8 @@ TEST_F(TiledLayerChromiumTest, pushTilesLayerMarkedDirtyDuringPaintOnPreviousLay { RefPtr<FakeTiledLayerChromium> layer1 = adoptRef(new FakeTiledLayerChromium(m_textureManager.get())); RefPtr<FakeTiledLayerChromium> layer2 = adoptRef(new FakeTiledLayerChromium(m_textureManager.get())); - DebugScopedSetImplThread implThread; - OwnPtr<FakeCCTiledLayerImpl> layer1Impl(adoptPtr(new FakeCCTiledLayerImpl(1))); - OwnPtr<FakeCCTiledLayerImpl> layer2Impl(adoptPtr(new FakeCCTiledLayerImpl(2))); + ScopedFakeCCTiledLayerImpl layer1Impl(1); + ScopedFakeCCTiledLayerImpl layer2Impl(2); layer1->fakeLayerTextureUpdater()->setRectToInvalidate(IntRect(0, 50, 100, 50), layer2.get()); layer1->setBounds(IntSize(100, 200)); @@ -424,7 +453,6 @@ TEST_F(TiledLayerChromiumTest, paintSmallAnimatedLayersImmediately) { // Create a CCLayerTreeHost that has the right viewportsize, // so the layer is considered small enough. - WebKit::WebCompositor::initialize(0); FakeCCLayerTreeHostClient fakeCCLayerTreeHostClient; OwnPtr<CCLayerTreeHost> ccLayerTreeHost = CCLayerTreeHost::create(&fakeCCLayerTreeHostClient, CCLayerTreeSettings()); @@ -442,10 +470,9 @@ TEST_F(TiledLayerChromiumTest, paintSmallAnimatedLayersImmediately) layerWidth *= 2; m_textureManager->setMaxMemoryLimitBytes(memoryForLayer); - DebugScopedSetImplThread implThread; RefPtr<FakeTiledLayerChromium> layer = adoptRef(new FakeTiledLayerChromium(m_textureManager.get())); - OwnPtr<FakeCCTiledLayerImpl> layerImpl(adoptPtr(new FakeCCTiledLayerImpl(1))); + ScopedFakeCCTiledLayerImpl layerImpl(1); // Full size layer with half being visible. IntSize contentBounds(layerWidth, layerHeight); @@ -465,7 +492,7 @@ TEST_F(TiledLayerChromiumTest, paintSmallAnimatedLayersImmediately) m_textureManager->prioritizeTextures(); layer->update(m_queue, 0, m_stats); updateTextures(); - layer->pushPropertiesTo(layerImpl.get()); + layerPushPropertiesTo(layer.get(), layerImpl.get()); // We should have all the tiles for the small animated layer. // We should still have the visible tiles when we didn't @@ -483,14 +510,12 @@ TEST_F(TiledLayerChromiumTest, paintSmallAnimatedLayersImmediately) } } ccLayerTreeHost.clear(); - WebKit::WebCompositor::shutdown(); } TEST_F(TiledLayerChromiumTest, idlePaintOutOfMemory) { RefPtr<FakeTiledLayerChromium> layer = adoptRef(new FakeTiledLayerChromium(m_textureManager.get())); - DebugScopedSetImplThread implThread; - OwnPtr<FakeCCTiledLayerImpl> layerImpl(adoptPtr(new FakeCCTiledLayerImpl(1))); + ScopedFakeCCTiledLayerImpl layerImpl(1); // We have enough memory for only the visible rect, so we will run out of memory in first idle paint. int memoryLimit = 4 * 100 * 100; // 1 tiles, 4 bytes per pixel. @@ -513,8 +538,7 @@ TEST_F(TiledLayerChromiumTest, idlePaintOutOfMemory) TEST_F(TiledLayerChromiumTest, idlePaintZeroSizedLayer) { RefPtr<FakeTiledLayerChromium> layer = adoptRef(new FakeTiledLayerChromium(m_textureManager.get())); - DebugScopedSetImplThread implThread; - OwnPtr<FakeCCTiledLayerImpl> layerImpl(adoptPtr(new FakeCCTiledLayerImpl(1))); + ScopedFakeCCTiledLayerImpl layerImpl(1); bool animating[2] = {false, true}; for (int i = 0; i < 2; i++) { @@ -541,8 +565,7 @@ TEST_F(TiledLayerChromiumTest, idlePaintZeroSizedLayer) TEST_F(TiledLayerChromiumTest, idlePaintNonVisibleLayers) { RefPtr<FakeTiledLayerChromium> layer = adoptRef(new FakeTiledLayerChromium(m_textureManager.get())); - DebugScopedSetImplThread implThread; - OwnPtr<FakeCCTiledLayerImpl> layerImpl(adoptPtr(new FakeCCTiledLayerImpl(1))); + ScopedFakeCCTiledLayerImpl layerImpl(1); // Alternate between not visible and visible. IntRect v(0, 0, 100, 100); @@ -572,8 +595,7 @@ TEST_F(TiledLayerChromiumTest, idlePaintNonVisibleLayers) TEST_F(TiledLayerChromiumTest, invalidateFromPrepare) { RefPtr<FakeTiledLayerChromium> layer = adoptRef(new FakeTiledLayerChromium(m_textureManager.get())); - DebugScopedSetImplThread implThread; - OwnPtr<FakeCCTiledLayerImpl> layerImpl(adoptPtr(new FakeCCTiledLayerImpl(1))); + ScopedFakeCCTiledLayerImpl layerImpl(1); // The tile size is 100x100, so this invalidates and then paints two tiles. layer->setBounds(IntSize(100, 200)); @@ -608,7 +630,6 @@ TEST_F(TiledLayerChromiumTest, verifyUpdateRectWhenContentBoundsAreScaled) // The updateRect (that indicates what was actually painted) should be in // layer space, not the content space. RefPtr<FakeTiledLayerWithScaledBounds> layer = adoptRef(new FakeTiledLayerWithScaledBounds(m_textureManager.get())); - DebugScopedSetImplThread implThread; IntRect layerBounds(0, 0, 300, 200); IntRect contentBounds(0, 0, 200, 250); @@ -647,8 +668,7 @@ TEST_F(TiledLayerChromiumTest, verifyUpdateRectWhenContentBoundsAreScaled) TEST_F(TiledLayerChromiumTest, verifyInvalidationWhenContentsScaleChanges) { RefPtr<FakeTiledLayerChromium> layer = adoptRef(new FakeTiledLayerChromium(m_textureManager.get())); - DebugScopedSetImplThread implThread; - OwnPtr<FakeCCTiledLayerImpl> layerImpl(adoptPtr(new FakeCCTiledLayerImpl(1))); + ScopedFakeCCTiledLayerImpl layerImpl(1); // Create a layer with one tile. layer->setBounds(IntSize(100, 100)); @@ -663,7 +683,7 @@ TEST_F(TiledLayerChromiumTest, verifyInvalidationWhenContentsScaleChanges) m_textureManager->prioritizeTextures(); layer->update(m_queue, 0, m_stats); updateTextures(); - layer->pushPropertiesTo(layerImpl.get()); + layerPushPropertiesTo(layer.get(), layerImpl.get()); EXPECT_TRUE(layerImpl->hasTileAt(0, 0)); EXPECT_FALSE(layerImpl->hasTileAt(0, 1)); EXPECT_FALSE(layerImpl->hasTileAt(1, 0)); @@ -680,7 +700,7 @@ TEST_F(TiledLayerChromiumTest, verifyInvalidationWhenContentsScaleChanges) m_textureManager->prioritizeTextures(); layer->update(m_queue, 0, m_stats); updateTextures(); - layer->pushPropertiesTo(layerImpl.get()); + layerPushPropertiesTo(layer.get(), layerImpl.get()); EXPECT_TRUE(layerImpl->hasTileAt(0, 0)); EXPECT_TRUE(layerImpl->hasTileAt(0, 1)); EXPECT_TRUE(layerImpl->hasTileAt(1, 0)); @@ -692,7 +712,7 @@ TEST_F(TiledLayerChromiumTest, verifyInvalidationWhenContentsScaleChanges) layer->setTexturePriorities(m_priorityCalculator); m_textureManager->prioritizeTextures(); - layer->pushPropertiesTo(layerImpl.get()); + layerPushPropertiesTo(layer.get(), layerImpl.get()); EXPECT_FALSE(layerImpl->hasTileAt(0, 0)); EXPECT_FALSE(layerImpl->hasTileAt(0, 1)); EXPECT_FALSE(layerImpl->hasTileAt(1, 0)); @@ -701,8 +721,6 @@ TEST_F(TiledLayerChromiumTest, verifyInvalidationWhenContentsScaleChanges) TEST_F(TiledLayerChromiumTest, skipsDrawGetsReset) { - // Initialize without threading support. - WebKit::WebCompositor::initialize(0); FakeCCLayerTreeHostClient fakeCCLayerTreeHostClient; OwnPtr<CCLayerTreeHost> ccLayerTreeHost = CCLayerTreeHost::create(&fakeCCLayerTreeHostClient, CCLayerTreeSettings()); ASSERT_TRUE(ccLayerTreeHost->initializeRendererIfNeeded()); @@ -744,10 +762,9 @@ TEST_F(TiledLayerChromiumTest, skipsDrawGetsReset) ccLayerTreeHost->updateLayers(m_queue, memoryLimit); EXPECT_FALSE(rootLayer->skipsDraw()); - ccLayerTreeHost->contentsTextureManager()->clearAllMemory(m_resourceProvider.get()); + textureManagerClearAllMemory(ccLayerTreeHost->contentsTextureManager(), m_resourceProvider.get()); ccLayerTreeHost->setRootLayer(0); ccLayerTreeHost.clear(); - WebKit::WebCompositor::shutdown(); } TEST_F(TiledLayerChromiumTest, resizeToSmaller) @@ -783,9 +800,6 @@ TEST_F(TiledLayerChromiumTest, hugeLayerUpdateCrash) TEST_F(TiledLayerChromiumTest, partialUpdates) { - // Initialize without threading support. - WebKit::WebCompositor::initialize(0); - CCLayerTreeSettings settings; settings.maxPartialTextureUpdates = 4; @@ -809,8 +823,7 @@ TEST_F(TiledLayerChromiumTest, partialUpdates) // Full update of all 6 tiles. ccLayerTreeHost->updateLayers(m_queue, std::numeric_limits<size_t>::max()); { - DebugScopedSetImplThread implThread; - OwnPtr<FakeCCTiledLayerImpl> layerImpl(adoptPtr(new FakeCCTiledLayerImpl(1))); + ScopedFakeCCTiledLayerImpl layerImpl(1); updateTextures(4); EXPECT_EQ(4, layer->fakeLayerTextureUpdater()->updateCount()); EXPECT_TRUE(m_queue.hasMoreUpdates()); @@ -819,7 +832,7 @@ TEST_F(TiledLayerChromiumTest, partialUpdates) EXPECT_EQ(2, layer->fakeLayerTextureUpdater()->updateCount()); EXPECT_FALSE(m_queue.hasMoreUpdates()); layer->fakeLayerTextureUpdater()->clearUpdateCount(); - layer->pushPropertiesTo(layerImpl.get()); + layerPushPropertiesTo(layer.get(), layerImpl.get()); } ccLayerTreeHost->commitComplete(); @@ -827,8 +840,7 @@ TEST_F(TiledLayerChromiumTest, partialUpdates) layer->invalidateContentRect(IntRect(0, 0, 300, 150)); ccLayerTreeHost->updateLayers(m_queue, std::numeric_limits<size_t>::max()); { - DebugScopedSetImplThread implThread; - OwnPtr<FakeCCTiledLayerImpl> layerImpl(adoptPtr(new FakeCCTiledLayerImpl(1))); + ScopedFakeCCTiledLayerImpl layerImpl(1); updateTextures(4); EXPECT_EQ(3, layer->fakeLayerTextureUpdater()->updateCount()); EXPECT_TRUE(m_queue.hasMoreUpdates()); @@ -837,15 +849,14 @@ TEST_F(TiledLayerChromiumTest, partialUpdates) EXPECT_EQ(3, layer->fakeLayerTextureUpdater()->updateCount()); EXPECT_FALSE(m_queue.hasMoreUpdates()); layer->fakeLayerTextureUpdater()->clearUpdateCount(); - layer->pushPropertiesTo(layerImpl.get()); + layerPushPropertiesTo(layer.get(), layerImpl.get()); } ccLayerTreeHost->commitComplete(); // Partial update of 6 tiles. layer->invalidateContentRect(IntRect(50, 50, 200, 100)); { - DebugScopedSetImplThread implThread; - OwnPtr<FakeCCTiledLayerImpl> layerImpl(adoptPtr(new FakeCCTiledLayerImpl(1))); + ScopedFakeCCTiledLayerImpl layerImpl(1); ccLayerTreeHost->updateLayers(m_queue, std::numeric_limits<size_t>::max()); updateTextures(4); EXPECT_EQ(2, layer->fakeLayerTextureUpdater()->updateCount()); @@ -855,24 +866,22 @@ TEST_F(TiledLayerChromiumTest, partialUpdates) EXPECT_EQ(4, layer->fakeLayerTextureUpdater()->updateCount()); EXPECT_FALSE(m_queue.hasMoreUpdates()); layer->fakeLayerTextureUpdater()->clearUpdateCount(); - layer->pushPropertiesTo(layerImpl.get()); + layerPushPropertiesTo(layer.get(), layerImpl.get()); } ccLayerTreeHost->commitComplete(); // Checkerboard all tiles. layer->invalidateContentRect(IntRect(0, 0, 300, 200)); { - DebugScopedSetImplThread implThread; - OwnPtr<FakeCCTiledLayerImpl> layerImpl(adoptPtr(new FakeCCTiledLayerImpl(1))); - layer->pushPropertiesTo(layerImpl.get()); + ScopedFakeCCTiledLayerImpl layerImpl(1); + layerPushPropertiesTo(layer.get(), layerImpl.get()); } ccLayerTreeHost->commitComplete(); // Partial update of 6 checkerboard tiles. layer->invalidateContentRect(IntRect(50, 50, 200, 100)); { - DebugScopedSetImplThread implThread; - OwnPtr<FakeCCTiledLayerImpl> layerImpl(adoptPtr(new FakeCCTiledLayerImpl(1))); + ScopedFakeCCTiledLayerImpl layerImpl(1); ccLayerTreeHost->updateLayers(m_queue, std::numeric_limits<size_t>::max()); updateTextures(4); EXPECT_EQ(4, layer->fakeLayerTextureUpdater()->updateCount()); @@ -882,31 +891,26 @@ TEST_F(TiledLayerChromiumTest, partialUpdates) EXPECT_EQ(2, layer->fakeLayerTextureUpdater()->updateCount()); EXPECT_FALSE(m_queue.hasMoreUpdates()); layer->fakeLayerTextureUpdater()->clearUpdateCount(); - layer->pushPropertiesTo(layerImpl.get()); + layerPushPropertiesTo(layer.get(), layerImpl.get()); } ccLayerTreeHost->commitComplete(); // Partial update of 4 tiles. layer->invalidateContentRect(IntRect(50, 50, 100, 100)); { - DebugScopedSetImplThread implThread; - OwnPtr<FakeCCTiledLayerImpl> layerImpl(adoptPtr(new FakeCCTiledLayerImpl(1))); + ScopedFakeCCTiledLayerImpl layerImpl(1); ccLayerTreeHost->updateLayers(m_queue, std::numeric_limits<size_t>::max()); updateTextures(4); EXPECT_EQ(4, layer->fakeLayerTextureUpdater()->updateCount()); EXPECT_FALSE(m_queue.hasMoreUpdates()); layer->fakeLayerTextureUpdater()->clearUpdateCount(); - layer->pushPropertiesTo(layerImpl.get()); + layerPushPropertiesTo(layer.get(), layerImpl.get()); } ccLayerTreeHost->commitComplete(); - { - DebugScopedSetImplThread implThread; - ccLayerTreeHost->contentsTextureManager()->clearAllMemory(m_resourceProvider.get()); - } + textureManagerClearAllMemory(ccLayerTreeHost->contentsTextureManager(), m_resourceProvider.get()); ccLayerTreeHost->setRootLayer(0); ccLayerTreeHost.clear(); - WebKit::WebCompositor::shutdown(); } TEST_F(TiledLayerChromiumTest, tilesPaintedWithoutOcclusion) @@ -1051,7 +1055,6 @@ TEST_F(TiledLayerChromiumTest, tilesNotPaintedWithoutInvalidation) layer->update(m_queue, &occluded, m_stats); EXPECT_EQ(36-3, layer->fakeLayerTextureUpdater()->prepareRectCount()); { - DebugScopedSetImplThread implThread; updateTextures(); } @@ -1178,7 +1181,6 @@ TEST_F(TiledLayerChromiumTest, visibleContentOpaqueRegion) { RefPtr<FakeTiledLayerChromium> layer = adoptRef(new FakeTiledLayerChromium(m_textureManager.get())); TestCCOcclusionTracker occluded; - DebugScopedSetImplThread implThread; // The tile size is 100x100, so this invalidates and then paints two tiles in various ways. @@ -1215,7 +1217,7 @@ TEST_F(TiledLayerChromiumTest, visibleContentOpaqueRegion) layer->update(m_queue, &occluded, m_stats); updateTextures(); opaqueContents = layer->visibleContentOpaqueRegion(); - EXPECT_EQ_RECT(intersection(opaquePaintRect, visibleBounds), opaqueContents.bounds()); + EXPECT_RECT_EQ(intersection(opaquePaintRect, visibleBounds), opaqueContents.bounds()); EXPECT_EQ(1u, opaqueContents.rects().size()); EXPECT_NEAR(occluded.overdrawMetrics().pixelsPainted(), 20000 * 2, 1); @@ -1228,7 +1230,7 @@ TEST_F(TiledLayerChromiumTest, visibleContentOpaqueRegion) layer->update(m_queue, &occluded, m_stats); updateTextures(); opaqueContents = layer->visibleContentOpaqueRegion(); - EXPECT_EQ_RECT(intersection(opaquePaintRect, visibleBounds), opaqueContents.bounds()); + EXPECT_RECT_EQ(intersection(opaquePaintRect, visibleBounds), opaqueContents.bounds()); EXPECT_EQ(1u, opaqueContents.rects().size()); EXPECT_NEAR(occluded.overdrawMetrics().pixelsPainted(), 20000 * 2, 1); @@ -1243,7 +1245,7 @@ TEST_F(TiledLayerChromiumTest, visibleContentOpaqueRegion) layer->update(m_queue, &occluded, m_stats); updateTextures(); opaqueContents = layer->visibleContentOpaqueRegion(); - EXPECT_EQ_RECT(intersection(opaquePaintRect, visibleBounds), opaqueContents.bounds()); + EXPECT_RECT_EQ(intersection(opaquePaintRect, visibleBounds), opaqueContents.bounds()); EXPECT_EQ(1u, opaqueContents.rects().size()); EXPECT_NEAR(occluded.overdrawMetrics().pixelsPainted(), 20000 * 2 + 1, 1); @@ -1258,7 +1260,7 @@ TEST_F(TiledLayerChromiumTest, visibleContentOpaqueRegion) layer->update(m_queue, &occluded, m_stats); updateTextures(); opaqueContents = layer->visibleContentOpaqueRegion(); - EXPECT_EQ_RECT(intersection(IntRect(10, 100, 90, 100), visibleBounds), opaqueContents.bounds()); + EXPECT_RECT_EQ(intersection(IntRect(10, 100, 90, 100), visibleBounds), opaqueContents.bounds()); EXPECT_EQ(1u, opaqueContents.rects().size()); EXPECT_NEAR(occluded.overdrawMetrics().pixelsPainted(), 20000 * 2 + 1 + 1, 1); @@ -1271,7 +1273,6 @@ TEST_F(TiledLayerChromiumTest, pixelsPaintedMetrics) { RefPtr<FakeTiledLayerChromium> layer = adoptRef(new FakeTiledLayerChromium(m_textureManager.get())); TestCCOcclusionTracker occluded; - DebugScopedSetImplThread implThread; // The tile size is 100x100, so this invalidates and then paints two tiles in various ways. @@ -1322,9 +1323,6 @@ TEST_F(TiledLayerChromiumTest, pixelsPaintedMetrics) TEST_F(TiledLayerChromiumTest, dontAllocateContentsWhenTargetSurfaceCantBeAllocated) { - // Initialize without threading support. - WebKit::WebCompositor::initialize(0); - // Tile size is 100x100. IntRect rootRect(0, 0, 300, 200); IntRect childRect(0, 0, 300, 100); @@ -1373,7 +1371,6 @@ TEST_F(TiledLayerChromiumTest, dontAllocateContentsWhenTargetSurfaceCantBeAlloca child2->invalidateContentRect(child2Rect); ccLayerTreeHost->updateLayers(m_queue, std::numeric_limits<size_t>::max()); { - DebugScopedSetImplThread implThread; updateTextures(1000); EXPECT_EQ(6, root->fakeLayerTextureUpdater()->updateCount()); EXPECT_EQ(3, child->fakeLayerTextureUpdater()->updateCount()); @@ -1384,12 +1381,12 @@ TEST_F(TiledLayerChromiumTest, dontAllocateContentsWhenTargetSurfaceCantBeAlloca child->fakeLayerTextureUpdater()->clearUpdateCount(); child2->fakeLayerTextureUpdater()->clearUpdateCount(); - OwnPtr<FakeCCTiledLayerImpl> rootImpl(adoptPtr(new FakeCCTiledLayerImpl(root->id()))); - OwnPtr<FakeCCTiledLayerImpl> childImpl(adoptPtr(new FakeCCTiledLayerImpl(child->id()))); - OwnPtr<FakeCCTiledLayerImpl> child2Impl(adoptPtr(new FakeCCTiledLayerImpl(child2->id()))); - root->pushPropertiesTo(rootImpl.get()); - child->pushPropertiesTo(childImpl.get()); - child2->pushPropertiesTo(child2Impl.get()); + ScopedFakeCCTiledLayerImpl rootImpl(root->id()); + ScopedFakeCCTiledLayerImpl childImpl(child->id()); + ScopedFakeCCTiledLayerImpl child2Impl(child2->id()); + layerPushPropertiesTo(root.get(), rootImpl.get()); + layerPushPropertiesTo(child.get(), childImpl.get()); + layerPushPropertiesTo(child2.get(), child2Impl.get()); for (unsigned i = 0; i < 3; ++i) { for (unsigned j = 0; j < 2; ++j) @@ -1408,7 +1405,6 @@ TEST_F(TiledLayerChromiumTest, dontAllocateContentsWhenTargetSurfaceCantBeAlloca child2->invalidateContentRect(child2Rect); ccLayerTreeHost->updateLayers(m_queue, (3 * 2 + 3 * 1) * (100 * 100) * 4); { - DebugScopedSetImplThread implThread; updateTextures(1000); EXPECT_EQ(6, root->fakeLayerTextureUpdater()->updateCount()); EXPECT_EQ(0, child->fakeLayerTextureUpdater()->updateCount()); @@ -1419,12 +1415,12 @@ TEST_F(TiledLayerChromiumTest, dontAllocateContentsWhenTargetSurfaceCantBeAlloca child->fakeLayerTextureUpdater()->clearUpdateCount(); child2->fakeLayerTextureUpdater()->clearUpdateCount(); - OwnPtr<FakeCCTiledLayerImpl> rootImpl(adoptPtr(new FakeCCTiledLayerImpl(root->id()))); - OwnPtr<FakeCCTiledLayerImpl> childImpl(adoptPtr(new FakeCCTiledLayerImpl(child->id()))); - OwnPtr<FakeCCTiledLayerImpl> child2Impl(adoptPtr(new FakeCCTiledLayerImpl(child2->id()))); - root->pushPropertiesTo(rootImpl.get()); - child->pushPropertiesTo(childImpl.get()); - child2->pushPropertiesTo(child2Impl.get()); + ScopedFakeCCTiledLayerImpl rootImpl(root->id()); + ScopedFakeCCTiledLayerImpl childImpl(child->id()); + ScopedFakeCCTiledLayerImpl child2Impl(child2->id()); + layerPushPropertiesTo(root.get(), rootImpl.get()); + layerPushPropertiesTo(child.get(), childImpl.get()); + layerPushPropertiesTo(child2.get(), child2Impl.get()); for (unsigned i = 0; i < 3; ++i) { for (unsigned j = 0; j < 2; ++j) @@ -1444,7 +1440,6 @@ TEST_F(TiledLayerChromiumTest, dontAllocateContentsWhenTargetSurfaceCantBeAlloca child2->invalidateContentRect(child2Rect); ccLayerTreeHost->updateLayers(m_queue, (3 * 1) * (100 * 100) * 4); { - DebugScopedSetImplThread implThread; updateTextures(1000); EXPECT_EQ(0, root->fakeLayerTextureUpdater()->updateCount()); EXPECT_EQ(0, child->fakeLayerTextureUpdater()->updateCount()); @@ -1455,12 +1450,12 @@ TEST_F(TiledLayerChromiumTest, dontAllocateContentsWhenTargetSurfaceCantBeAlloca child->fakeLayerTextureUpdater()->clearUpdateCount(); child2->fakeLayerTextureUpdater()->clearUpdateCount(); - OwnPtr<FakeCCTiledLayerImpl> rootImpl(adoptPtr(new FakeCCTiledLayerImpl(root->id()))); - OwnPtr<FakeCCTiledLayerImpl> childImpl(adoptPtr(new FakeCCTiledLayerImpl(child->id()))); - OwnPtr<FakeCCTiledLayerImpl> child2Impl(adoptPtr(new FakeCCTiledLayerImpl(child2->id()))); - root->pushPropertiesTo(rootImpl.get()); - child->pushPropertiesTo(childImpl.get()); - child2->pushPropertiesTo(child2Impl.get()); + ScopedFakeCCTiledLayerImpl rootImpl(root->id()); + ScopedFakeCCTiledLayerImpl childImpl(child->id()); + ScopedFakeCCTiledLayerImpl child2Impl(child2->id()); + layerPushPropertiesTo(root.get(), rootImpl.get()); + layerPushPropertiesTo(child.get(), childImpl.get()); + layerPushPropertiesTo(child2.get(), child2Impl.get()); for (unsigned i = 0; i < 3; ++i) { for (unsigned j = 0; j < 2; ++j) @@ -1471,13 +1466,9 @@ TEST_F(TiledLayerChromiumTest, dontAllocateContentsWhenTargetSurfaceCantBeAlloca } ccLayerTreeHost->commitComplete(); - { - DebugScopedSetImplThread implThread; - ccLayerTreeHost->contentsTextureManager()->clearAllMemory(m_resourceProvider.get()); - } + textureManagerClearAllMemory(ccLayerTreeHost->contentsTextureManager(), m_resourceProvider.get()); ccLayerTreeHost->setRootLayer(0); ccLayerTreeHost.clear(); - WebKit::WebCompositor::shutdown(); } class TrackingLayerPainter : public LayerPainterChromium { @@ -1540,18 +1531,14 @@ TEST_F(TiledLayerChromiumTest, nonIntegerContentsScaleIsNotDistortedDuringPaint) layer->update(m_queue, 0, m_stats); layer->trackingLayerPainter()->resetPaintedRect(); - EXPECT_INT_RECT_EQ(IntRect(), layer->trackingLayerPainter()->paintedRect()); - - { - DebugScopedSetImplThread implThread; - updateTextures(); - } + EXPECT_RECT_EQ(IntRect(), layer->trackingLayerPainter()->paintedRect()); + updateTextures(); // Invalidate the entire layer in content space. When painting, the rect given to webkit should match the layer's bounds. layer->invalidateContentRect(contentRect); layer->update(m_queue, 0, m_stats); - EXPECT_INT_RECT_EQ(layerRect, layer->trackingLayerPainter()->paintedRect()); + EXPECT_RECT_EQ(layerRect, layer->trackingLayerPainter()->paintedRect()); } TEST_F(TiledLayerChromiumTest, nonIntegerContentsScaleIsNotDistortedDuringInvalidation) @@ -1574,18 +1561,14 @@ TEST_F(TiledLayerChromiumTest, nonIntegerContentsScaleIsNotDistortedDuringInvali layer->update(m_queue, 0, m_stats); layer->trackingLayerPainter()->resetPaintedRect(); - EXPECT_INT_RECT_EQ(IntRect(), layer->trackingLayerPainter()->paintedRect()); - - { - DebugScopedSetImplThread implThread; - updateTextures(); - } + EXPECT_RECT_EQ(IntRect(), layer->trackingLayerPainter()->paintedRect()); + updateTextures(); // Invalidate the entire layer in layer space. When painting, the rect given to webkit should match the layer's bounds. layer->setNeedsDisplayRect(layerRect); layer->update(m_queue, 0, m_stats); - EXPECT_INT_RECT_EQ(layerRect, layer->trackingLayerPainter()->paintedRect()); + EXPECT_RECT_EQ(layerRect, layer->trackingLayerPainter()->paintedRect()); } } // namespace diff --git a/Source/WebKit/chromium/tests/UniscribeHelperTest.cpp b/Source/WebKit/chromium/tests/UniscribeHelperTest.cpp index ec88f4332..fa965e936 100644 --- a/Source/WebKit/chromium/tests/UniscribeHelperTest.cpp +++ b/Source/WebKit/chromium/tests/UniscribeHelperTest.cpp @@ -32,8 +32,8 @@ #include <gtest/gtest.h> -#include "PlatformString.h" #include "UniscribeHelper.h" +#include <wtf/text/WTFString.h> using namespace WebCore; diff --git a/Source/WebKit/chromium/public/WebTouchCandidatesInfo.h b/Source/WebKit/chromium/tests/WebCompositorInitializer.h index 65d4024a2..d0893aecd 100644 --- a/Source/WebKit/chromium/public/WebTouchCandidatesInfo.h +++ b/Source/WebKit/chromium/tests/WebCompositorInitializer.h @@ -4,51 +4,51 @@ * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: - * * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * - * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY + * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS'' AND ANY * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY + * DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS BE LIABLE FOR ANY * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND - * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF - * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -#ifndef WebTouchCandidatesInfo_h -#define WebTouchCandidatesInfo_h +#ifndef WebCompositorInitializer_h +#define WebCompositorInitializer_h -#include "platform/WebRect.h" +#include <public/Platform.h> +#include <public/WebCompositorSupport.h> +#include <wtf/Noncopyable.h> namespace WebKit { +class WebThread; +} -struct WebTouchCandidatesInfo { - // The number of possible touch receivers from the last touch. - int numberOfCandidates; - - // The bounds of the possible touch candidates. This will enclose the - // rects of any possible touch candidates for a press. - WebRect unitedBounds; +namespace WebKitTests { - // The smallest dimension (either width or height) of any of the - // available touch targets. - int smallestDimension; +class WebCompositorInitializer { + WTF_MAKE_NONCOPYABLE(WebCompositorInitializer); +public: + explicit WebCompositorInitializer(WebKit::WebThread* thread) + { + WebKit::Platform::current()->compositorSupport()->initialize(thread); + } - WebTouchCandidatesInfo() - : numberOfCandidates(0) - , smallestDimension(0) + ~WebCompositorInitializer() { + WebKit::Platform::current()->compositorSupport()->shutdown(); } }; -} // namespace WebKit +} -#endif +#endif // WebCompositorInitializer_h diff --git a/Source/WebKit/chromium/tests/WebCompositorInputHandlerImplTest.cpp b/Source/WebKit/chromium/tests/WebCompositorInputHandlerImplTest.cpp index 8313b0f5b..88927a988 100644 --- a/Source/WebKit/chromium/tests/WebCompositorInputHandlerImplTest.cpp +++ b/Source/WebKit/chromium/tests/WebCompositorInputHandlerImplTest.cpp @@ -27,51 +27,48 @@ #include "WebCompositorInputHandlerImpl.h" -#include "CCActiveGestureAnimation.h" -#include "CCInputHandler.h" -#include "CCSingleThreadProxy.h" +#include "WebCompositorInitializer.h" #include "WebCompositorInputHandlerClient.h" #include "WebInputEvent.h" +#include <gmock/gmock.h> +#include <gtest/gtest.h> #include <public/WebCompositor.h> #include <public/WebFloatPoint.h> +#include <public/WebInputHandler.h> +#include <public/WebInputHandlerClient.h> #include <public/WebPoint.h> - -#include <gmock/gmock.h> -#include <gtest/gtest.h> #include <wtf/OwnPtr.h> +#include <wtf/PassOwnPtr.h> using namespace WebKit; namespace { -class MockCCInputHandlerClient : public WebCore::CCInputHandlerClient { - WTF_MAKE_NONCOPYABLE(MockCCInputHandlerClient); +class MockWebInputHandlerClient : public WebInputHandlerClient { + WTF_MAKE_NONCOPYABLE(MockWebInputHandlerClient); public: - MockCCInputHandlerClient() + MockWebInputHandlerClient() { } - virtual ~MockCCInputHandlerClient() { } + virtual ~MockWebInputHandlerClient() { } MOCK_METHOD0(pinchGestureBegin, void()); - MOCK_METHOD2(pinchGestureUpdate, void(float magnifyDelta, const WebCore::IntPoint& anchor)); + MOCK_METHOD2(pinchGestureUpdate, void(float magnifyDelta, WebPoint anchor)); MOCK_METHOD0(pinchGestureEnd, void()); MOCK_METHOD0(scheduleAnimation, void()); - MOCK_METHOD2(scrollBegin, ScrollStatus(const WebCore::IntPoint&, WebCore::CCInputHandlerClient::ScrollInputType)); - MOCK_METHOD2(scrollBy, void(const WebCore::IntPoint&, const WebCore::IntSize&)); + MOCK_METHOD2(scrollBegin, ScrollStatus(WebPoint, WebInputHandlerClient::ScrollInputType)); + MOCK_METHOD2(scrollBy, void(WebPoint, WebSize)); MOCK_METHOD0(scrollEnd, void()); private: - virtual void startPageScaleAnimation(const WebCore::IntSize& targetPosition, + virtual void startPageScaleAnimation(WebSize targetPosition, bool anchorPoint, float pageScale, double startTimeMs, double durationMs) OVERRIDE { } - - virtual WebCore::CCActiveGestureAnimation* activeGestureAnimation() OVERRIDE { return 0; } - virtual void setActiveGestureAnimation(PassOwnPtr<WebCore::CCActiveGestureAnimation>) OVERRIDE { } }; class MockWebCompositorInputHandlerClient : public WebCompositorInputHandlerClient { @@ -91,51 +88,14 @@ public: }; -TEST(WebCompositorInputHandlerImpl, fromIdentifier) -{ - WebCompositor::initialize(0); - WebCore::DebugScopedSetImplThread alwaysImplThread; - - // Before creating any WebCompositorInputHandlers, lookups for any value should fail and not crash. - EXPECT_EQ(0, WebCompositorInputHandler::fromIdentifier(2)); - EXPECT_EQ(0, WebCompositorInputHandler::fromIdentifier(0)); - EXPECT_EQ(0, WebCompositorInputHandler::fromIdentifier(-1)); - - int compositorIdentifier = -1; - { - OwnPtr<WebCompositorInputHandlerImpl> inputHandler = WebCompositorInputHandlerImpl::create(0); - compositorIdentifier = inputHandler->identifier(); - // The compositor we just created should be locatable. - EXPECT_EQ(inputHandler.get(), WebCompositorInputHandler::fromIdentifier(compositorIdentifier)); - - // But nothing else. - EXPECT_EQ(0, WebCompositorInputHandler::fromIdentifier(inputHandler->identifier() + 10)); - } - - // After the compositor is destroyed, its entry should be removed from the map. - EXPECT_EQ(0, WebCompositorInputHandler::fromIdentifier(compositorIdentifier)); - WebCompositor::shutdown(); -} - -class WebCompositorInitializer { -public: - WebCompositorInitializer() - { - WebCompositor::initialize(0); - } - - ~WebCompositorInitializer() - { - WebCompositor::shutdown(); - } -}; - class WebCompositorInputHandlerImplTest : public testing::Test { public: WebCompositorInputHandlerImplTest() - : m_expectedDisposition(DidHandle) + : m_initializer(0) + , m_expectedDisposition(DidHandle) { - m_inputHandler = WebCompositorInputHandlerImpl::create(&m_mockCCInputHandlerClient); + m_inputHandler = adoptPtr(new WebCompositorInputHandlerImpl); + m_inputHandler->bindToClient(&m_mockInputHandlerClient); m_inputHandler->setClient(&m_mockClient); } @@ -149,7 +109,7 @@ public: // out of gmock is the line number that set the expectation. #define VERIFY_AND_RESET_MOCKS() do \ { \ - testing::Mock::VerifyAndClearExpectations(&m_mockCCInputHandlerClient); \ + testing::Mock::VerifyAndClearExpectations(&m_mockInputHandlerClient); \ testing::Mock::VerifyAndClearExpectations(&m_mockClient); \ switch (m_expectedDisposition) { \ case DidHandle: \ @@ -173,12 +133,11 @@ public: } while (0) protected: - MockCCInputHandlerClient m_mockCCInputHandlerClient; + MockWebInputHandlerClient m_mockInputHandlerClient; OwnPtr<WebCompositorInputHandlerImpl> m_inputHandler; MockWebCompositorInputHandlerClient m_mockClient; WebGestureEvent gesture; - WebCore::DebugScopedSetImplThread alwaysImplThread; - WebCompositorInitializer initializer; + WebKitTests::WebCompositorInitializer m_initializer; enum ExpectedDisposition { DidHandle, DidNotHandle, DropEvent }; ExpectedDisposition m_expectedDisposition; @@ -191,8 +150,8 @@ TEST_F(WebCompositorInputHandlerImplTest, gestureScrollStarted) m_expectedDisposition = DidHandle; VERIFY_AND_RESET_MOCKS(); - EXPECT_CALL(m_mockCCInputHandlerClient, scrollBegin(testing::_, testing::_)) - .WillOnce(testing::Return(WebCore::CCInputHandlerClient::ScrollStarted)); + EXPECT_CALL(m_mockInputHandlerClient, scrollBegin(testing::_, testing::_)) + .WillOnce(testing::Return(WebInputHandlerClient::ScrollStatusStarted)); gesture.type = WebInputEvent::GestureScrollBegin; m_inputHandler->handleInputEvent(gesture); @@ -200,15 +159,15 @@ TEST_F(WebCompositorInputHandlerImplTest, gestureScrollStarted) VERIFY_AND_RESET_MOCKS(); gesture.type = WebInputEvent::GestureScrollUpdate; - gesture.deltaY = -40; // -Y means scroll down - i.e. in the +Y direction. - EXPECT_CALL(m_mockCCInputHandlerClient, scrollBy(testing::_, testing::Property(&WebCore::IntSize::height, testing::Gt(0)))); + gesture.data.scrollUpdate.deltaY = -40; // -Y means scroll down - i.e. in the +Y direction. + EXPECT_CALL(m_mockInputHandlerClient, scrollBy(testing::_, testing::Field(&WebSize::height, testing::Gt(0)))); m_inputHandler->handleInputEvent(gesture); VERIFY_AND_RESET_MOCKS(); gesture.type = WebInputEvent::GestureScrollEnd; - gesture.deltaY = 0; - EXPECT_CALL(m_mockCCInputHandlerClient, scrollEnd()); + gesture.data.scrollUpdate.deltaY = 0; + EXPECT_CALL(m_mockInputHandlerClient, scrollEnd()); m_inputHandler->handleInputEvent(gesture); } @@ -218,8 +177,8 @@ TEST_F(WebCompositorInputHandlerImplTest, gestureScrollOnMainThread) m_expectedDisposition = DidNotHandle; VERIFY_AND_RESET_MOCKS(); - EXPECT_CALL(m_mockCCInputHandlerClient, scrollBegin(::testing::_, ::testing::_)) - .WillOnce(testing::Return(WebCore::CCInputHandlerClient::ScrollOnMainThread)); + EXPECT_CALL(m_mockInputHandlerClient, scrollBegin(::testing::_, ::testing::_)) + .WillOnce(testing::Return(WebInputHandlerClient::ScrollStatusOnMainThread)); gesture.type = WebInputEvent::GestureScrollBegin; m_inputHandler->handleInputEvent(gesture); @@ -227,13 +186,13 @@ TEST_F(WebCompositorInputHandlerImplTest, gestureScrollOnMainThread) VERIFY_AND_RESET_MOCKS(); gesture.type = WebInputEvent::GestureScrollUpdate; - gesture.deltaY = 40; + gesture.data.scrollUpdate.deltaY = 40; m_inputHandler->handleInputEvent(gesture); VERIFY_AND_RESET_MOCKS(); gesture.type = WebInputEvent::GestureScrollEnd; - gesture.deltaY = 0; + gesture.data.scrollUpdate.deltaY = 0; m_inputHandler->handleInputEvent(gesture); } @@ -246,8 +205,8 @@ TEST_F(WebCompositorInputHandlerImplTest, gestureScrollIgnored) m_expectedDisposition = DropEvent; VERIFY_AND_RESET_MOCKS(); - EXPECT_CALL(m_mockCCInputHandlerClient, scrollBegin(testing::_, testing::_)) - .WillOnce(testing::Return(WebCore::CCInputHandlerClient::ScrollIgnored)); + EXPECT_CALL(m_mockInputHandlerClient, scrollBegin(testing::_, testing::_)) + .WillOnce(testing::Return(WebInputHandlerClient::ScrollStatusIgnored)); gesture.type = WebInputEvent::GestureScrollBegin; m_inputHandler->handleInputEvent(gesture); @@ -260,31 +219,31 @@ TEST_F(WebCompositorInputHandlerImplTest, gesturePinch) VERIFY_AND_RESET_MOCKS(); gesture.type = WebInputEvent::GesturePinchBegin; - EXPECT_CALL(m_mockCCInputHandlerClient, pinchGestureBegin()); + EXPECT_CALL(m_mockInputHandlerClient, pinchGestureBegin()); m_inputHandler->handleInputEvent(gesture); VERIFY_AND_RESET_MOCKS(); gesture.type = WebInputEvent::GesturePinchUpdate; - gesture.deltaX = 1.5; + gesture.data.pinchUpdate.scale = 1.5; gesture.x = 7; gesture.y = 13; - EXPECT_CALL(m_mockCCInputHandlerClient, pinchGestureUpdate(1.5, WebCore::IntPoint(7, 13))); + EXPECT_CALL(m_mockInputHandlerClient, pinchGestureUpdate(1.5, WebPoint(7, 13))); m_inputHandler->handleInputEvent(gesture); VERIFY_AND_RESET_MOCKS(); gesture.type = WebInputEvent::GesturePinchUpdate; - gesture.deltaX = 0.5; + gesture.data.pinchUpdate.scale = 0.5; gesture.x = 9; gesture.y = 6; - EXPECT_CALL(m_mockCCInputHandlerClient, pinchGestureUpdate(.5, WebCore::IntPoint(9, 6))); + EXPECT_CALL(m_mockInputHandlerClient, pinchGestureUpdate(.5, WebPoint(9, 6))); m_inputHandler->handleInputEvent(gesture); VERIFY_AND_RESET_MOCKS(); gesture.type = WebInputEvent::GesturePinchEnd; - EXPECT_CALL(m_mockCCInputHandlerClient, pinchGestureEnd()); + EXPECT_CALL(m_mockInputHandlerClient, pinchGestureEnd()); m_inputHandler->handleInputEvent(gesture); } @@ -294,12 +253,12 @@ TEST_F(WebCompositorInputHandlerImplTest, gestureFlingStarted) m_expectedDisposition = DidHandle; VERIFY_AND_RESET_MOCKS(); - EXPECT_CALL(m_mockCCInputHandlerClient, scrollBegin(testing::_, testing::_)) - .WillOnce(testing::Return(WebCore::CCInputHandlerClient::ScrollStarted)); + EXPECT_CALL(m_mockInputHandlerClient, scrollBegin(testing::_, testing::_)) + .WillOnce(testing::Return(WebInputHandlerClient::ScrollStatusStarted)); gesture.type = WebInputEvent::GestureFlingStart; - gesture.deltaX = 10; - EXPECT_CALL(m_mockCCInputHandlerClient, scheduleAnimation()); + gesture.data.flingStart.velocityX = 10; + EXPECT_CALL(m_mockInputHandlerClient, scheduleAnimation()); m_inputHandler->handleInputEvent(gesture); VERIFY_AND_RESET_MOCKS(); @@ -315,8 +274,8 @@ TEST_F(WebCompositorInputHandlerImplTest, gestureFlingFailed) m_expectedDisposition = DidNotHandle; VERIFY_AND_RESET_MOCKS(); - EXPECT_CALL(m_mockCCInputHandlerClient, scrollBegin(testing::_, testing::_)) - .WillOnce(testing::Return(WebCore::CCInputHandlerClient::ScrollOnMainThread)); + EXPECT_CALL(m_mockInputHandlerClient, scrollBegin(testing::_, testing::_)) + .WillOnce(testing::Return(WebInputHandlerClient::ScrollStatusOnMainThread)); gesture.type = WebInputEvent::GestureFlingStart; m_inputHandler->handleInputEvent(gesture); @@ -333,8 +292,8 @@ TEST_F(WebCompositorInputHandlerImplTest, gestureFlingIgnored) m_expectedDisposition = DidNotHandle; VERIFY_AND_RESET_MOCKS(); - EXPECT_CALL(m_mockCCInputHandlerClient, scrollBegin(testing::_, testing::_)) - .WillOnce(testing::Return(WebCore::CCInputHandlerClient::ScrollIgnored)); + EXPECT_CALL(m_mockInputHandlerClient, scrollBegin(testing::_, testing::_)) + .WillOnce(testing::Return(WebInputHandlerClient::ScrollStatusIgnored)); gesture.type = WebInputEvent::GestureFlingStart; m_inputHandler->handleInputEvent(gesture); @@ -359,47 +318,47 @@ TEST_F(WebCompositorInputHandlerImplTest, gestureFlingAnimates) WebPoint flingPoint = WebPoint(7, 13); WebPoint flingGlobalPoint = WebPoint(17, 23); int modifiers = 7; - gesture.deltaX = flingDelta.x; - gesture.deltaY = flingDelta.y; + gesture.data.flingStart.velocityX = flingDelta.x; + gesture.data.flingStart.velocityY = flingDelta.y; gesture.x = flingPoint.x; gesture.y = flingPoint.y; gesture.globalX = flingGlobalPoint.x; gesture.globalY = flingGlobalPoint.y; gesture.modifiers = modifiers; - EXPECT_CALL(m_mockCCInputHandlerClient, scheduleAnimation()); - EXPECT_CALL(m_mockCCInputHandlerClient, scrollBegin(testing::_, testing::_)) - .WillOnce(testing::Return(WebCore::CCInputHandlerClient::ScrollStarted)); + EXPECT_CALL(m_mockInputHandlerClient, scheduleAnimation()); + EXPECT_CALL(m_mockInputHandlerClient, scrollBegin(testing::_, testing::_)) + .WillOnce(testing::Return(WebInputHandlerClient::ScrollStatusStarted)); m_inputHandler->handleInputEvent(gesture); - testing::Mock::VerifyAndClearExpectations(&m_mockCCInputHandlerClient); + testing::Mock::VerifyAndClearExpectations(&m_mockInputHandlerClient); // The first animate call should let us pick up an animation start time, but we // shouldn't actually move anywhere just yet. The first frame after the fling start // will typically include the last scroll from the gesture that lead to the scroll // (either wheel or gesture scroll), so there should be no visible hitch. - EXPECT_CALL(m_mockCCInputHandlerClient, scheduleAnimation()); - EXPECT_CALL(m_mockCCInputHandlerClient, scrollBegin(testing::_, testing::_)).Times(0); + EXPECT_CALL(m_mockInputHandlerClient, scheduleAnimation()); + EXPECT_CALL(m_mockInputHandlerClient, scrollBegin(testing::_, testing::_)).Times(0); m_inputHandler->animate(10); - testing::Mock::VerifyAndClearExpectations(&m_mockCCInputHandlerClient); + testing::Mock::VerifyAndClearExpectations(&m_mockInputHandlerClient); // The second call should start scrolling in the -X direction. - EXPECT_CALL(m_mockCCInputHandlerClient, scheduleAnimation()); - EXPECT_CALL(m_mockCCInputHandlerClient, scrollBegin(testing::_, testing::_)) - .WillOnce(testing::Return(WebCore::CCInputHandlerClient::ScrollStarted)); - EXPECT_CALL(m_mockCCInputHandlerClient, scrollBy(testing::_, testing::Property(&WebCore::IntSize::width, testing::Lt(0)))); - EXPECT_CALL(m_mockCCInputHandlerClient, scrollEnd()); + EXPECT_CALL(m_mockInputHandlerClient, scheduleAnimation()); + EXPECT_CALL(m_mockInputHandlerClient, scrollBegin(testing::_, testing::_)) + .WillOnce(testing::Return(WebInputHandlerClient::ScrollStatusStarted)); + EXPECT_CALL(m_mockInputHandlerClient, scrollBy(testing::_, testing::Field(&WebSize::width, testing::Lt(0)))); + EXPECT_CALL(m_mockInputHandlerClient, scrollEnd()); m_inputHandler->animate(10.1); - testing::Mock::VerifyAndClearExpectations(&m_mockCCInputHandlerClient); + testing::Mock::VerifyAndClearExpectations(&m_mockInputHandlerClient); // Let's say on the third call we hit a non-scrollable region. We should abort the fling and not scroll. // We also should pass the current fling parameters out to the client so the rest of the fling can be // transferred to the main thread. - EXPECT_CALL(m_mockCCInputHandlerClient, scheduleAnimation()); - EXPECT_CALL(m_mockCCInputHandlerClient, scrollBegin(testing::_, testing::_)) - .WillOnce(testing::Return(WebCore::CCInputHandlerClient::ScrollOnMainThread)); - EXPECT_CALL(m_mockCCInputHandlerClient, scrollBy(testing::_, testing::_)).Times(0); - EXPECT_CALL(m_mockCCInputHandlerClient, scrollEnd()).Times(0); + EXPECT_CALL(m_mockInputHandlerClient, scheduleAnimation()); + EXPECT_CALL(m_mockInputHandlerClient, scrollBegin(testing::_, testing::_)) + .WillOnce(testing::Return(WebInputHandlerClient::ScrollStatusOnMainThread)); + EXPECT_CALL(m_mockInputHandlerClient, scrollBy(testing::_, testing::_)).Times(0); + EXPECT_CALL(m_mockInputHandlerClient, scrollEnd()).Times(0); // Expected wheel fling animation parameters: // *) flingDelta and flingPoint should match the original GestureFlingStart event @@ -415,13 +374,13 @@ TEST_F(WebCompositorInputHandlerImplTest, gestureFlingAnimates) testing::Field(&WebSize::width, testing::Gt(0)))))); m_inputHandler->animate(10.2); - testing::Mock::VerifyAndClearExpectations(&m_mockCCInputHandlerClient); + testing::Mock::VerifyAndClearExpectations(&m_mockInputHandlerClient); testing::Mock::VerifyAndClearExpectations(&m_mockClient); // Since we've aborted the fling, the next animation should be a no-op and should not result in another // frame being requested. - EXPECT_CALL(m_mockCCInputHandlerClient, scheduleAnimation()).Times(0); - EXPECT_CALL(m_mockCCInputHandlerClient, scrollBegin(testing::_, testing::_)).Times(0); + EXPECT_CALL(m_mockInputHandlerClient, scheduleAnimation()).Times(0); + EXPECT_CALL(m_mockInputHandlerClient, scrollBegin(testing::_, testing::_)).Times(0); m_inputHandler->animate(10.3); // Since we've transferred the fling to the main thread, we need to pass the next GestureFlingCancel to the main @@ -443,45 +402,45 @@ TEST_F(WebCompositorInputHandlerImplTest, gestureFlingTransferResets) WebPoint flingPoint = WebPoint(7, 13); WebPoint flingGlobalPoint = WebPoint(17, 23); int modifiers = 1; - gesture.deltaX = flingDelta.x; - gesture.deltaY = flingDelta.y; + gesture.data.flingStart.velocityX = flingDelta.x; + gesture.data.flingStart.velocityY = flingDelta.y; gesture.x = flingPoint.x; gesture.y = flingPoint.y; gesture.globalX = flingGlobalPoint.x; gesture.globalY = flingGlobalPoint.y; gesture.modifiers = modifiers; - EXPECT_CALL(m_mockCCInputHandlerClient, scheduleAnimation()); - EXPECT_CALL(m_mockCCInputHandlerClient, scrollBegin(testing::_, testing::_)) - .WillOnce(testing::Return(WebCore::CCInputHandlerClient::ScrollStarted)); + EXPECT_CALL(m_mockInputHandlerClient, scheduleAnimation()); + EXPECT_CALL(m_mockInputHandlerClient, scrollBegin(testing::_, testing::_)) + .WillOnce(testing::Return(WebInputHandlerClient::ScrollStatusStarted)); m_inputHandler->handleInputEvent(gesture); - testing::Mock::VerifyAndClearExpectations(&m_mockCCInputHandlerClient); + testing::Mock::VerifyAndClearExpectations(&m_mockInputHandlerClient); // Start the fling animation at time 10. This shouldn't actually scroll, just establish a start time. - EXPECT_CALL(m_mockCCInputHandlerClient, scheduleAnimation()); - EXPECT_CALL(m_mockCCInputHandlerClient, scrollBegin(testing::_, testing::_)).Times(0); + EXPECT_CALL(m_mockInputHandlerClient, scheduleAnimation()); + EXPECT_CALL(m_mockInputHandlerClient, scrollBegin(testing::_, testing::_)).Times(0); m_inputHandler->animate(10); - testing::Mock::VerifyAndClearExpectations(&m_mockCCInputHandlerClient); + testing::Mock::VerifyAndClearExpectations(&m_mockInputHandlerClient); // The second call should start scrolling in the -X direction. - EXPECT_CALL(m_mockCCInputHandlerClient, scheduleAnimation()); - EXPECT_CALL(m_mockCCInputHandlerClient, scrollBegin(testing::_, testing::_)) - .WillOnce(testing::Return(WebCore::CCInputHandlerClient::ScrollStarted)); - EXPECT_CALL(m_mockCCInputHandlerClient, scrollBy(testing::_, testing::Property(&WebCore::IntSize::width, testing::Lt(0)))); - EXPECT_CALL(m_mockCCInputHandlerClient, scrollEnd()); + EXPECT_CALL(m_mockInputHandlerClient, scheduleAnimation()); + EXPECT_CALL(m_mockInputHandlerClient, scrollBegin(testing::_, testing::_)) + .WillOnce(testing::Return(WebInputHandlerClient::ScrollStatusStarted)); + EXPECT_CALL(m_mockInputHandlerClient, scrollBy(testing::_, testing::Field(&WebSize::width, testing::Lt(0)))); + EXPECT_CALL(m_mockInputHandlerClient, scrollEnd()); m_inputHandler->animate(10.1); - testing::Mock::VerifyAndClearExpectations(&m_mockCCInputHandlerClient); + testing::Mock::VerifyAndClearExpectations(&m_mockInputHandlerClient); // Let's say on the third call we hit a non-scrollable region. We should abort the fling and not scroll. // We also should pass the current fling parameters out to the client so the rest of the fling can be // transferred to the main thread. - EXPECT_CALL(m_mockCCInputHandlerClient, scheduleAnimation()); - EXPECT_CALL(m_mockCCInputHandlerClient, scrollBegin(testing::_, testing::_)) - .WillOnce(testing::Return(WebCore::CCInputHandlerClient::ScrollOnMainThread)); - EXPECT_CALL(m_mockCCInputHandlerClient, scrollBy(testing::_, testing::_)).Times(0); - EXPECT_CALL(m_mockCCInputHandlerClient, scrollEnd()).Times(0); + EXPECT_CALL(m_mockInputHandlerClient, scheduleAnimation()); + EXPECT_CALL(m_mockInputHandlerClient, scrollBegin(testing::_, testing::_)) + .WillOnce(testing::Return(WebInputHandlerClient::ScrollStatusOnMainThread)); + EXPECT_CALL(m_mockInputHandlerClient, scrollBy(testing::_, testing::_)).Times(0); + EXPECT_CALL(m_mockInputHandlerClient, scrollEnd()).Times(0); // Expected wheel fling animation parameters: // *) flingDelta and flingPoint should match the original GestureFlingStart event @@ -497,16 +456,16 @@ TEST_F(WebCompositorInputHandlerImplTest, gestureFlingTransferResets) testing::Field(&WebSize::width, testing::Gt(0)))))); m_inputHandler->animate(10.2); - testing::Mock::VerifyAndClearExpectations(&m_mockCCInputHandlerClient); + testing::Mock::VerifyAndClearExpectations(&m_mockInputHandlerClient); testing::Mock::VerifyAndClearExpectations(&m_mockClient); // Since we've aborted the fling, the next animation should be a no-op and should not result in another // frame being requested. - EXPECT_CALL(m_mockCCInputHandlerClient, scheduleAnimation()).Times(0); - EXPECT_CALL(m_mockCCInputHandlerClient, scrollBegin(testing::_, testing::_)).Times(0); + EXPECT_CALL(m_mockInputHandlerClient, scheduleAnimation()).Times(0); + EXPECT_CALL(m_mockInputHandlerClient, scrollBegin(testing::_, testing::_)).Times(0); m_inputHandler->animate(10.3); - testing::Mock::VerifyAndClearExpectations(&m_mockCCInputHandlerClient); + testing::Mock::VerifyAndClearExpectations(&m_mockInputHandlerClient); // Since we've transferred the fling to the main thread, we need to pass the next GestureFlingCancel to the main // thread as well. @@ -522,43 +481,43 @@ TEST_F(WebCompositorInputHandlerImplTest, gestureFlingTransferResets) flingPoint = WebPoint(95, 87); flingGlobalPoint = WebPoint(32, 71); modifiers = 2; - gesture.deltaX = flingDelta.x; - gesture.deltaY = flingDelta.y; + gesture.data.flingStart.velocityX = flingDelta.x; + gesture.data.flingStart.velocityY = flingDelta.y; gesture.x = flingPoint.x; gesture.y = flingPoint.y; gesture.globalX = flingGlobalPoint.x; gesture.globalY = flingGlobalPoint.y; gesture.modifiers = modifiers; - EXPECT_CALL(m_mockCCInputHandlerClient, scheduleAnimation()); - EXPECT_CALL(m_mockCCInputHandlerClient, scrollBegin(testing::_, testing::_)) - .WillOnce(testing::Return(WebCore::CCInputHandlerClient::ScrollStarted)); + EXPECT_CALL(m_mockInputHandlerClient, scheduleAnimation()); + EXPECT_CALL(m_mockInputHandlerClient, scrollBegin(testing::_, testing::_)) + .WillOnce(testing::Return(WebInputHandlerClient::ScrollStatusStarted)); m_inputHandler->handleInputEvent(gesture); - testing::Mock::VerifyAndClearExpectations(&m_mockCCInputHandlerClient); + testing::Mock::VerifyAndClearExpectations(&m_mockInputHandlerClient); // Start the second fling animation at time 30. - EXPECT_CALL(m_mockCCInputHandlerClient, scheduleAnimation()); - EXPECT_CALL(m_mockCCInputHandlerClient, scrollBegin(testing::_, testing::_)).Times(0); + EXPECT_CALL(m_mockInputHandlerClient, scheduleAnimation()); + EXPECT_CALL(m_mockInputHandlerClient, scrollBegin(testing::_, testing::_)).Times(0); m_inputHandler->animate(30); - testing::Mock::VerifyAndClearExpectations(&m_mockCCInputHandlerClient); + testing::Mock::VerifyAndClearExpectations(&m_mockInputHandlerClient); // Tick the second fling once normally. - EXPECT_CALL(m_mockCCInputHandlerClient, scheduleAnimation()); - EXPECT_CALL(m_mockCCInputHandlerClient, scrollBegin(testing::_, testing::_)) - .WillOnce(testing::Return(WebCore::CCInputHandlerClient::ScrollStarted)); - EXPECT_CALL(m_mockCCInputHandlerClient, scrollBy(testing::_, testing::Property(&WebCore::IntSize::height, testing::Gt(0)))); - EXPECT_CALL(m_mockCCInputHandlerClient, scrollEnd()); + EXPECT_CALL(m_mockInputHandlerClient, scheduleAnimation()); + EXPECT_CALL(m_mockInputHandlerClient, scrollBegin(testing::_, testing::_)) + .WillOnce(testing::Return(WebInputHandlerClient::ScrollStatusStarted)); + EXPECT_CALL(m_mockInputHandlerClient, scrollBy(testing::_, testing::Field(&WebSize::height, testing::Gt(0)))); + EXPECT_CALL(m_mockInputHandlerClient, scrollEnd()); m_inputHandler->animate(30.1); - testing::Mock::VerifyAndClearExpectations(&m_mockCCInputHandlerClient); + testing::Mock::VerifyAndClearExpectations(&m_mockInputHandlerClient); // Then abort the second fling. - EXPECT_CALL(m_mockCCInputHandlerClient, scheduleAnimation()); - EXPECT_CALL(m_mockCCInputHandlerClient, scrollBegin(testing::_, testing::_)) - .WillOnce(testing::Return(WebCore::CCInputHandlerClient::ScrollOnMainThread)); - EXPECT_CALL(m_mockCCInputHandlerClient, scrollBy(testing::_, testing::_)).Times(0); - EXPECT_CALL(m_mockCCInputHandlerClient, scrollEnd()).Times(0); + EXPECT_CALL(m_mockInputHandlerClient, scheduleAnimation()); + EXPECT_CALL(m_mockInputHandlerClient, scrollBegin(testing::_, testing::_)) + .WillOnce(testing::Return(WebInputHandlerClient::ScrollStatusOnMainThread)); + EXPECT_CALL(m_mockInputHandlerClient, scrollBy(testing::_, testing::_)).Times(0); + EXPECT_CALL(m_mockInputHandlerClient, scrollEnd()).Times(0); // We should get parameters from the second fling, nothing from the first fling should "leak". EXPECT_CALL(m_mockClient, transferActiveWheelFlingAnimation(testing::AllOf( @@ -573,3 +532,4 @@ TEST_F(WebCompositorInputHandlerImplTest, gestureFlingTransferResets) } } + diff --git a/Source/WebKit/chromium/tests/WebFrameTest.cpp b/Source/WebKit/chromium/tests/WebFrameTest.cpp index 03c201e16..4328a0e4a 100644 --- a/Source/WebKit/chromium/tests/WebFrameTest.cpp +++ b/Source/WebKit/chromium/tests/WebFrameTest.cpp @@ -45,6 +45,7 @@ #include "WebFormElement.h" #include "WebFrameClient.h" #include "WebFrameImpl.h" +#include "WebHistoryItem.h" #include "WebRange.h" #include "WebScriptSource.h" #include "WebSearchableFormData.h" @@ -54,6 +55,7 @@ #include "WebViewClient.h" #include "WebViewImpl.h" #include "platform/WebFloatRect.h" +#include "platform/WebURLResponse.h" #include "v8.h" #include <gtest/gtest.h> #include <webkit/support/webkit_support.h> @@ -988,10 +990,11 @@ TEST_F(WebFrameTest, FindInPageMatchRects) webView->close(); } -static WebView* selectRangeTestCreateWebView(const std::string& url) +static WebView* createWebViewForTextSelection(const std::string& url) { WebView* webView = FrameTestHelpers::createWebViewAndLoad(url, true); webView->settings()->setDefaultFontSize(12); + webView->enableFixedLayoutMode(false); webView->resize(WebSize(640, 480)); return webView; } @@ -1010,6 +1013,11 @@ static WebPoint bottomRightMinusOne(const WebRect& rect) return WebPoint(rect.x + rect.width - 1, rect.y + rect.height - 1); } +static WebRect elementBounds(WebFrame* frame, const WebString& id) +{ + return frame->document().getElementById(id).boundsInViewportSpace(); +} + static std::string selectionAsString(WebFrame* frame) { return std::string(frame->selectionAsText().utf8().data()); @@ -1027,7 +1035,7 @@ TEST_F(WebFrameTest, SelectRange) registerMockedHttpURLLoad("select_range_iframe.html"); registerMockedHttpURLLoad("select_range_editable.html"); - webView = selectRangeTestCreateWebView(m_baseURL + "select_range_basic.html"); + webView = createWebViewForTextSelection(m_baseURL + "select_range_basic.html"); frame = webView->mainFrame(); EXPECT_EQ("Some test text for testing.", selectionAsString(frame)); webView->selectionBounds(startWebRect, endWebRect); @@ -1037,7 +1045,7 @@ TEST_F(WebFrameTest, SelectRange) EXPECT_EQ("Some test text for testing.", selectionAsString(frame)); webView->close(); - webView = selectRangeTestCreateWebView(m_baseURL + "select_range_scroll.html"); + webView = createWebViewForTextSelection(m_baseURL + "select_range_scroll.html"); frame = webView->mainFrame(); EXPECT_EQ("Some offscreen test text for testing.", selectionAsString(frame)); webView->selectionBounds(startWebRect, endWebRect); @@ -1047,7 +1055,7 @@ TEST_F(WebFrameTest, SelectRange) EXPECT_EQ("Some offscreen test text for testing.", selectionAsString(frame)); webView->close(); - webView = selectRangeTestCreateWebView(m_baseURL + "select_range_iframe.html"); + webView = createWebViewForTextSelection(m_baseURL + "select_range_iframe.html"); frame = webView->mainFrame(); WebFrame* subframe = frame->findChildByExpression(WebString::fromUTF8("/html/body/iframe")); EXPECT_EQ("Some test text for testing.", selectionAsString(subframe)); @@ -1060,7 +1068,7 @@ TEST_F(WebFrameTest, SelectRange) // Select the middle of an editable element, then try to extend the selection to the top of the document. // The selection range should be clipped to the bounds of the editable element. - webView = selectRangeTestCreateWebView(m_baseURL + "select_range_editable.html"); + webView = createWebViewForTextSelection(m_baseURL + "select_range_editable.html"); frame = webView->mainFrame(); EXPECT_EQ("This text is initially selected.", selectionAsString(frame)); webView->selectionBounds(startWebRect, endWebRect); @@ -1069,7 +1077,7 @@ TEST_F(WebFrameTest, SelectRange) webView->close(); // As above, but extending the selection to the bottom of the document. - webView = selectRangeTestCreateWebView(m_baseURL + "select_range_editable.html"); + webView = createWebViewForTextSelection(m_baseURL + "select_range_editable.html"); frame = webView->mainFrame(); EXPECT_EQ("This text is initially selected.", selectionAsString(frame)); webView->selectionBounds(startWebRect, endWebRect); @@ -1078,4 +1086,302 @@ TEST_F(WebFrameTest, SelectRange) webView->close(); } +TEST_F(WebFrameTest, MoveSelectionStart) +{ + registerMockedHttpURLLoad("text_selection.html"); + WebView* webView = createWebViewForTextSelection(m_baseURL + "text_selection.html"); + WebFrame* frame = webView->mainFrame(); + + // moveSelectionStart() always returns false if there's no selection. + EXPECT_FALSE(frame->moveSelectionStart(topLeft(elementBounds(frame, "header_1")), false)); + EXPECT_FALSE(frame->moveSelectionStart(topLeft(elementBounds(frame, "header_1")), true)); + + frame->executeScript(WebScriptSource("selectElement('header_1');")); + EXPECT_EQ("Header 1.", selectionAsString(frame)); + EXPECT_TRUE(frame->moveSelectionEnd(bottomRightMinusOne(elementBounds(frame, "header_2")), false)); + EXPECT_EQ("Header 1. Header 2.", selectionAsString(frame)); + + // Select second span. We can move the start to include the first span. + frame->executeScript(WebScriptSource("selectElement('header_2');")); + EXPECT_EQ("Header 2.", selectionAsString(frame)); + EXPECT_TRUE(frame->moveSelectionStart(topLeft(elementBounds(frame, "header_1")), false)); + EXPECT_EQ("Header 1. Header 2.", selectionAsString(frame)); + + // If allowCollapsedSelection=false we can't move the selection start beyond the current end. + // We end up with a single character selected. + frame->executeScript(WebScriptSource("selectElement('header_1');")); + EXPECT_EQ("Header 1.", selectionAsString(frame)); + EXPECT_TRUE(frame->moveSelectionStart(bottomRightMinusOne(elementBounds(frame, "header_1")), false)); + EXPECT_EQ(".", selectionAsString(frame)); + + // If allowCollapsedSelection=true we can move the start and end together. + frame->executeScript(WebScriptSource("selectElement('header_1');")); + EXPECT_EQ("Header 1.", selectionAsString(frame)); + EXPECT_TRUE(frame->moveSelectionStart(bottomRightMinusOne(elementBounds(frame, "header_1")), true)); + EXPECT_EQ("", selectionAsString(frame)); + // Selection is a caret, not empty. + EXPECT_FALSE(frame->selectionRange().isNull()); + EXPECT_TRUE(frame->moveSelectionStart(topLeft(elementBounds(frame, "header_1")), true)); + EXPECT_EQ("Header 1.", selectionAsString(frame)); + + // If allowCollapsedSelection=true we can move the start across the end. + frame->executeScript(WebScriptSource("selectElement('header_1');")); + EXPECT_EQ("Header 1.", selectionAsString(frame)); + EXPECT_TRUE(frame->moveSelectionStart(bottomRightMinusOne(elementBounds(frame, "header_2")), true)); + EXPECT_EQ(" Header 2.", selectionAsString(frame)); + + // Can't extend the selection part-way into an editable element. + frame->executeScript(WebScriptSource("selectElement('footer_2');")); + EXPECT_EQ("Footer 2.", selectionAsString(frame)); + EXPECT_TRUE(frame->moveSelectionStart(topLeft(elementBounds(frame, "editable_2")), true)); + EXPECT_EQ(" [ Footer 1. Footer 2.", selectionAsString(frame)); + + // Can extend the selection completely across editable elements. + frame->executeScript(WebScriptSource("selectElement('footer_2');")); + EXPECT_EQ("Footer 2.", selectionAsString(frame)); + EXPECT_TRUE(frame->moveSelectionStart(topLeft(elementBounds(frame, "header_2")), true)); + EXPECT_EQ("Header 2. ] [ Editable 1. Editable 2. ] [ Footer 1. Footer 2.", selectionAsString(frame)); + + // If the selection is editable text, we can't extend it into non-editable text. + frame->executeScript(WebScriptSource("selectElement('editable_2');")); + EXPECT_EQ("Editable 2.", selectionAsString(frame)); + EXPECT_TRUE(frame->moveSelectionStart(topLeft(elementBounds(frame, "header_2")), true)); + EXPECT_EQ("[ Editable 1. Editable 2.", selectionAsString(frame)); + + webView->close(); +} + +TEST_F(WebFrameTest, MoveSelectionEnd) +{ + registerMockedHttpURLLoad("text_selection.html"); + WebView* webView = createWebViewForTextSelection(m_baseURL + "text_selection.html"); + WebFrame* frame = webView->mainFrame(); + + // moveSelectionEnd() always returns false if there's no selection. + EXPECT_FALSE(frame->moveSelectionEnd(topLeft(elementBounds(frame, "header_1")), false)); + EXPECT_FALSE(frame->moveSelectionEnd(topLeft(elementBounds(frame, "header_1")), true)); + + // Select first span. We can move the end to include the second span. + frame->executeScript(WebScriptSource("selectElement('header_1');")); + EXPECT_EQ("Header 1.", selectionAsString(frame)); + EXPECT_TRUE(frame->moveSelectionEnd(bottomRightMinusOne(elementBounds(frame, "header_2")), false)); + EXPECT_EQ("Header 1. Header 2.", selectionAsString(frame)); + + // If allowCollapsedSelection=false we can't move the selection end beyond the current start. + // We end up with a single character selected. + frame->executeScript(WebScriptSource("selectElement('header_2');")); + EXPECT_EQ("Header 2.", selectionAsString(frame)); + EXPECT_TRUE(frame->moveSelectionEnd(topLeft(elementBounds(frame, "header_2")), false)); + EXPECT_EQ("H", selectionAsString(frame)); + + // If allowCollapsedSelection=true we can move the start and end together. + frame->executeScript(WebScriptSource("selectElement('header_2');")); + EXPECT_EQ("Header 2.", selectionAsString(frame)); + EXPECT_TRUE(frame->moveSelectionEnd(topLeft(elementBounds(frame, "header_2")), true)); + EXPECT_EQ("", selectionAsString(frame)); + // Selection is a caret, not empty. + EXPECT_FALSE(frame->selectionRange().isNull()); + EXPECT_TRUE(frame->moveSelectionEnd(bottomRightMinusOne(elementBounds(frame, "header_2")), true)); + EXPECT_EQ("Header 2.", selectionAsString(frame)); + + // If allowCollapsedSelection=true we can move the end across the start. + frame->executeScript(WebScriptSource("selectElement('header_2');")); + EXPECT_EQ("Header 2.", selectionAsString(frame)); + EXPECT_TRUE(frame->moveSelectionEnd(topLeft(elementBounds(frame, "header_1")), true)); + EXPECT_EQ("Header 1. ", selectionAsString(frame)); + + // Can't extend the selection part-way into an editable element. + frame->executeScript(WebScriptSource("selectElement('header_1');")); + EXPECT_EQ("Header 1.", selectionAsString(frame)); + EXPECT_TRUE(frame->moveSelectionEnd(bottomRightMinusOne(elementBounds(frame, "editable_1")), true)); + EXPECT_EQ("Header 1. Header 2. ] ", selectionAsString(frame)); + + // Can extend the selection completely across editable elements. + frame->executeScript(WebScriptSource("selectElement('header_1');")); + EXPECT_EQ("Header 1.", selectionAsString(frame)); + EXPECT_TRUE(frame->moveSelectionEnd(bottomRightMinusOne(elementBounds(frame, "footer_1")), true)); + EXPECT_EQ("Header 1. Header 2. ] [ Editable 1. Editable 2. ] [ Footer 1.", selectionAsString(frame)); + + // If the selection is editable text, we can't extend it into non-editable text. + frame->executeScript(WebScriptSource("selectElement('editable_1');")); + EXPECT_EQ("Editable 1.", selectionAsString(frame)); + EXPECT_TRUE(frame->moveSelectionEnd(bottomRightMinusOne(elementBounds(frame, "footer_1")), true)); + EXPECT_EQ("Editable 1. Editable 2. ]", selectionAsString(frame)); + + webView->close(); +} + +TEST_F(WebFrameTest, MoveCaret) +{ + registerMockedHttpURLLoad("text_selection.html"); + WebView* webView = createWebViewForTextSelection(m_baseURL + "text_selection.html"); + WebFrame* frame = webView->mainFrame(); + + // moveCaret() returns false if there's no selection, or if it isn't editable. + EXPECT_FALSE(frame->moveCaret(topLeft(elementBounds(frame, "editable")))); + frame->executeScript(WebScriptSource("selectElement('header_1');")); + EXPECT_EQ("Header 1.", selectionAsString(frame)); + EXPECT_FALSE(frame->moveCaret(topLeft(elementBounds(frame, "editable")))); + + // Select the editable text span. Now moveCaret() works. + frame->executeScript(WebScriptSource("selectElement('editable_1');")); + EXPECT_EQ("Editable 1.", selectionAsString(frame)); + + EXPECT_TRUE(frame->moveCaret(topLeft(elementBounds(frame, "editable_1")))); + EXPECT_EQ("", selectionAsString(frame)); + EXPECT_FALSE(frame->selectionRange().isNull()); + EXPECT_TRUE(frame->moveSelectionEnd(bottomRightMinusOne(elementBounds(frame, "editable_1")), false)); + EXPECT_EQ("Editable 1.", selectionAsString(frame)); + + EXPECT_TRUE(frame->moveCaret(bottomRightMinusOne(elementBounds(frame, "editable_2")))); + EXPECT_EQ("", selectionAsString(frame)); + EXPECT_FALSE(frame->selectionRange().isNull()); + EXPECT_TRUE(frame->moveSelectionStart(topLeft(elementBounds(frame, "editable_2")), false)); + EXPECT_EQ("Editable 2.", selectionAsString(frame)); + + // Caret is pinned at the start of the editable region. + EXPECT_TRUE(frame->moveCaret(topLeft(elementBounds(frame, "header_1")))); + EXPECT_EQ("", selectionAsString(frame)); + EXPECT_FALSE(frame->selectionRange().isNull()); + EXPECT_TRUE(frame->moveSelectionEnd(bottomRightMinusOne(elementBounds(frame, "editable_1")), false)); + EXPECT_EQ("[ Editable 1.", selectionAsString(frame)); + + // Caret is pinned at the end of the editable region. + EXPECT_TRUE(frame->moveCaret(bottomRightMinusOne(elementBounds(frame, "footer_2")))); + EXPECT_EQ("", selectionAsString(frame)); + EXPECT_FALSE(frame->selectionRange().isNull()); + EXPECT_TRUE(frame->moveSelectionStart(topLeft(elementBounds(frame, "editable_2")), false)); + EXPECT_EQ("Editable 2. ]", selectionAsString(frame)); + + webView->close(); +} + +class DisambiguationPopupTestWebViewClient : public WebViewClient { +public: + virtual bool didTapMultipleTargets(const WebGestureEvent&, const WebVector<WebRect>& targetRects) OVERRIDE + { + EXPECT_GE(targetRects.size(), 2u); + m_triggered = true; + return true; + } + + bool triggered() const { return m_triggered; } + void resetTriggered() { m_triggered = false; } + bool m_triggered; +}; + +static WebGestureEvent fatTap(int x, int y) +{ + WebGestureEvent event; + event.type = WebInputEvent::GestureTap; + event.x = x; + event.y = y; + event.data.tap.width = 50; + event.data.tap.height = 50; + return event; +} + +TEST_F(WebFrameTest, DisambiguationPopupTest) +{ + registerMockedHttpURLLoad("disambiguation_popup.html"); + + DisambiguationPopupTestWebViewClient client; + + // Make sure we initialize to minimum scale, even if the window size + // only becomes available after the load begins. + WebViewImpl* webViewImpl = static_cast<WebViewImpl*>(FrameTestHelpers::createWebViewAndLoad(m_baseURL + "disambiguation_popup.html", true, 0, &client)); + webViewImpl->resize(WebSize(1000, 1000)); + webViewImpl->layout(); + + client.resetTriggered(); + webViewImpl->handleInputEvent(fatTap(0, 0)); + EXPECT_FALSE(client.triggered()); + + client.resetTriggered(); + webViewImpl->handleInputEvent(fatTap(200, 115)); + EXPECT_FALSE(client.triggered()); + + for (int i = 0; i <= 46; i++) { + client.resetTriggered(); + webViewImpl->handleInputEvent(fatTap(120, 230 + i * 5)); + + int j = i % 10; + if (j >= 7 && j <= 9) + EXPECT_TRUE(client.triggered()); + else + EXPECT_FALSE(client.triggered()); + } + + for (int i = 0; i <= 46; i++) { + client.resetTriggered(); + webViewImpl->handleInputEvent(fatTap(10 + i * 5, 590)); + + int j = i % 10; + if (j >= 7 && j <= 9) + EXPECT_TRUE(client.triggered()); + else + EXPECT_FALSE(client.triggered()); + } + +} + +class TestSubstituteDataWebFrameClient : public WebFrameClient { +public: + TestSubstituteDataWebFrameClient() + : m_commitCalled(false) + { + } + + virtual void didFailProvisionalLoad(WebFrame* frame, const WebURLError& error) + { + frame->loadHTMLString("This should appear", toKURL("data:text/html,chromewebdata"), error.unreachableURL, true); + webkit_support::RunAllPendingMessages(); + } + + virtual void didCommitProvisionalLoad(WebFrame* frame, bool) + { + if (frame->dataSource()->response().url() != WebURL(URLTestHelpers::toKURL("about:blank"))) + m_commitCalled = true; + } + + bool commitCalled() const { return m_commitCalled; } + +private: + bool m_commitCalled; +}; + +TEST_F(WebFrameTest, ReplaceNavigationAfterHistoryNavigation) +{ + TestSubstituteDataWebFrameClient webFrameClient; + + WebView* webView = FrameTestHelpers::createWebViewAndLoad("about:blank", true, &webFrameClient); + webkit_support::RunAllPendingMessages(); + WebFrame* frame = webView->mainFrame(); + + // Load a url as a history navigation that will return an error. TestSubstituteDataWebFrameClient + // will start a SubstituteData load in response to the load failure, which should get fully committed. + // Due to https://bugs.webkit.org/show_bug.cgi?id=91685, FrameLoader::didReceiveData() wasn't getting + // called in this case, which resulted in the SubstituteData document not getting displayed. + WebURLError error; + error.reason = 1337; + error.domain = "WebFrameTest"; + std::string errorURL = "http://0.0.0.0"; + WebURLResponse response; + response.initialize(); + response.setURL(URLTestHelpers::toKURL(errorURL)); + response.setMIMEType("text/html"); + response.setHTTPStatusCode(500); + WebHistoryItem errorHistoryItem; + errorHistoryItem.initialize(); + errorHistoryItem.setURLString(WebString::fromUTF8(errorURL.c_str(), errorURL.length())); + errorHistoryItem.setOriginalURLString(WebString::fromUTF8(errorURL.c_str(), errorURL.length())); + webkit_support::RegisterMockedErrorURL(URLTestHelpers::toKURL(errorURL), response, error); + frame->loadHistoryItem(errorHistoryItem); + webkit_support::ServeAsynchronousMockedRequests(); + + WebString text = frame->contentAsText(std::numeric_limits<size_t>::max()); + EXPECT_EQ("This should appear", std::string(text.utf8().data())); + EXPECT_TRUE(webFrameClient.commitCalled()); +} + } // namespace diff --git a/Source/WebKit/chromium/tests/WebInputEventConversionTest.cpp b/Source/WebKit/chromium/tests/WebInputEventConversionTest.cpp new file mode 100644 index 000000000..1df76dc7c --- /dev/null +++ b/Source/WebKit/chromium/tests/WebInputEventConversionTest.cpp @@ -0,0 +1,75 @@ +/* + * Copyright (C) 2012 Google Inc. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following disclaimer + * in the documentation and/or other materials provided with the + * distribution. + * * Neither the name of Google Inc. nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#include "config.h" + +#include "WebInputEventConversion.h" + +#include "KeyboardEvent.h" +#include <gtest/gtest.h> + +using WebKit::WebInputEvent; +using WebKit::WebKeyboardEvent; +using WebKit::WebKeyboardEventBuilder; + +namespace { + +PassRefPtr<WebCore::KeyboardEvent> createKeyboardEventWithLocation(WebCore::KeyboardEvent::KeyLocationCode location) +{ + return WebCore::KeyboardEvent::create("keydown", true, true, 0, "", location, false, false, false, false, false); +} + +int getModifiersForKeyLocationCode(WebCore::KeyboardEvent::KeyLocationCode location) +{ + RefPtr<WebCore::KeyboardEvent> event = createKeyboardEventWithLocation(location); + WebKit::WebKeyboardEventBuilder convertedEvent(*event); + return convertedEvent.modifiers; +} + +TEST(WebInputEventConversionTest, WebKeyboardEventBuilder) +{ + // Test key location conversion. + int modifiers = getModifiersForKeyLocationCode(WebCore::KeyboardEvent::DOM_KEY_LOCATION_STANDARD); + EXPECT_FALSE(modifiers & WebInputEvent::IsKeyPad || modifiers & WebInputEvent::IsLeft || modifiers & WebInputEvent::IsRight); + + modifiers = getModifiersForKeyLocationCode(WebCore::KeyboardEvent::DOM_KEY_LOCATION_LEFT); + EXPECT_TRUE(modifiers & WebInputEvent::IsLeft); + EXPECT_FALSE(modifiers & WebInputEvent::IsKeyPad || modifiers & WebInputEvent::IsRight); + + modifiers = getModifiersForKeyLocationCode(WebCore::KeyboardEvent::DOM_KEY_LOCATION_RIGHT); + EXPECT_TRUE(modifiers & WebInputEvent::IsRight); + EXPECT_FALSE(modifiers & WebInputEvent::IsKeyPad || modifiers & WebInputEvent::IsLeft); + + modifiers = getModifiersForKeyLocationCode(WebCore::KeyboardEvent::DOM_KEY_LOCATION_NUMPAD); + EXPECT_TRUE(modifiers & WebInputEvent::IsKeyPad); + EXPECT_FALSE(modifiers & WebInputEvent::IsLeft || modifiers & WebInputEvent::IsRight); +} + +} // anonymous namespace diff --git a/Source/WebKit/chromium/tests/WebLayerTest.cpp b/Source/WebKit/chromium/tests/WebLayerTest.cpp index 9b8e58ca1..eb544b29f 100644 --- a/Source/WebKit/chromium/tests/WebLayerTest.cpp +++ b/Source/WebKit/chromium/tests/WebLayerTest.cpp @@ -26,17 +26,20 @@ #include <public/WebLayer.h> #include "CompositorFakeWebGraphicsContext3D.h" +#include "WebCompositorInitializer.h" #include "WebLayerImpl.h" -#include <public/WebCompositor.h> +#include "WebLayerTreeViewTestCommon.h" #include <public/WebContentLayer.h> #include <public/WebContentLayerClient.h> #include <public/WebExternalTextureLayer.h> #include <public/WebFloatPoint.h> #include <public/WebFloatRect.h> +#include <public/WebLayerScrollClient.h> #include <public/WebLayerTreeView.h> #include <public/WebLayerTreeViewClient.h> #include <public/WebRect.h> #include <public/WebSize.h> +#include <public/WebSolidColorLayer.h> #include <gmock/gmock.h> @@ -49,23 +52,6 @@ using testing::_; namespace { -class MockWebLayerTreeViewClient : public WebLayerTreeViewClient { -public: - MOCK_METHOD0(scheduleComposite, void()); - - virtual void updateAnimations(double frameBeginTime) { } - virtual void didBeginFrame() { } - virtual void layout() { } - virtual void applyScrollAndScale(const WebSize& scrollDelta, float scaleFactor) { } - virtual WebGraphicsContext3D* createContext3D() { return CompositorFakeWebGraphicsContext3D::create(WebGraphicsContext3D::Attributes()).leakPtr(); } - virtual void didRebindGraphicsContext(bool success) { } - virtual WebCompositorOutputSurface* createOutputSurface() { return 0; } - virtual void didRecreateOutputSurface(bool success) { } - virtual void willCommit() { } - virtual void didCommitAndDrawFrame() { } - virtual void didCompleteSwapBuffers() { } -}; - class MockWebContentLayerClient : public WebContentLayerClient { public: MOCK_METHOD3(paintContents, void(WebCanvas*, const WebRect& clip, WebFloatRect& opaque)); @@ -73,13 +59,16 @@ public: class WebLayerTest : public Test { public: + WebLayerTest() + : m_compositorInitializer(0) + { + } + virtual void SetUp() { - // Initialize without threading support. - WebKit::WebCompositor::initialize(0); m_rootLayer = adoptPtr(WebLayer::create()); EXPECT_CALL(m_client, scheduleComposite()).Times(AnyNumber()); - EXPECT_TRUE(m_view.initialize(&m_client, *m_rootLayer, WebLayerTreeView::Settings())); + EXPECT_TRUE(m_view = adoptPtr(WebLayerTreeView::create(&m_client, *m_rootLayer, WebLayerTreeView::Settings()))); Mock::VerifyAndClearExpectations(&m_client); } @@ -87,16 +76,15 @@ public: { // We may get any number of scheduleComposite calls during shutdown. EXPECT_CALL(m_client, scheduleComposite()).Times(AnyNumber()); - m_view.setRootLayer(0); m_rootLayer.clear(); - m_view.reset(); - WebKit::WebCompositor::shutdown(); + m_view.clear(); } protected: + WebKitTests::WebCompositorInitializer m_compositorInitializer; MockWebLayerTreeViewClient m_client; OwnPtr<WebLayer> m_rootLayer; - WebLayerTreeView m_view; + OwnPtr<WebLayerTreeView> m_view; }; // Tests that the client gets called to ask for a composite if we change the @@ -156,7 +144,7 @@ TEST_F(WebLayerTest, Client) EXPECT_EQ(point, layer->position()); // Texture layer. - EXPECT_CALL(m_client, scheduleComposite()).Times(AnyNumber()); + EXPECT_CALL(m_client, scheduleComposite()).Times(AtLeast(1)); OwnPtr<WebExternalTextureLayer> textureLayer = adoptPtr(WebExternalTextureLayer::create()); m_rootLayer->addChild(textureLayer->layer()); Mock::VerifyAndClearExpectations(&m_client); @@ -187,6 +175,37 @@ TEST_F(WebLayerTest, Client) contentLayer->layer()->setDrawsContent(false); Mock::VerifyAndClearExpectations(&m_client); EXPECT_FALSE(contentLayer->layer()->drawsContent()); + + // Solid color layer. + EXPECT_CALL(m_client, scheduleComposite()).Times(AtLeast(1)); + OwnPtr<WebSolidColorLayer> solidColorLayer = adoptPtr(WebSolidColorLayer::create()); + m_rootLayer->addChild(solidColorLayer->layer()); + Mock::VerifyAndClearExpectations(&m_client); + +} + +class MockScrollClient : public WebLayerScrollClient { +public: + MOCK_METHOD0(didScroll, void()); +}; + +TEST_F(WebLayerTest, notifyScrollClient) +{ + MockScrollClient scrollClient; + + EXPECT_CALL(scrollClient, didScroll()).Times(0); + m_rootLayer->setScrollClient(&scrollClient); + Mock::VerifyAndClearExpectations(&scrollClient); + + EXPECT_CALL(scrollClient, didScroll()).Times(1); + m_rootLayer->setScrollPosition(WebPoint(14, 19)); + Mock::VerifyAndClearExpectations(&scrollClient); + + EXPECT_CALL(scrollClient, didScroll()).Times(0); + m_rootLayer->setScrollPosition(WebPoint(14, 19)); + Mock::VerifyAndClearExpectations(&scrollClient); + + m_rootLayer->setScrollClient(0); } } diff --git a/Source/WebKit/chromium/tests/WebLayerTreeViewTest.cpp b/Source/WebKit/chromium/tests/WebLayerTreeViewTest.cpp index 1c1602c23..c136e01be 100644 --- a/Source/WebKit/chromium/tests/WebLayerTreeViewTest.cpp +++ b/Source/WebKit/chromium/tests/WebLayerTreeViewTest.cpp @@ -31,10 +31,12 @@ #include "WebLayerTreeViewTestCommon.h" #include <gmock/gmock.h> #include <public/Platform.h> -#include <public/WebCompositor.h> +#include <public/WebCompositorSupport.h> #include <public/WebLayer.h> #include <public/WebLayerTreeViewClient.h> #include <public/WebThread.h> +#include <wtf/RefCounted.h> +#include <wtf/RefPtr.h> using namespace WebKit; using testing::Mock; @@ -61,35 +63,34 @@ public: { initializeCompositor(); m_rootLayer = adoptPtr(WebLayer::create()); - EXPECT_TRUE(m_view.initialize(client(), *m_rootLayer, WebLayerTreeView::Settings())); - m_view.setSurfaceReady(); + ASSERT_TRUE(m_view = adoptPtr(WebLayerTreeView::create(client(), *m_rootLayer, WebLayerTreeView::Settings()))); + m_view->setSurfaceReady(); } virtual void TearDown() { Mock::VerifyAndClearExpectations(client()); - m_view.setRootLayer(0); m_rootLayer.clear(); - m_view.reset(); - WebKit::WebCompositor::shutdown(); + m_view.clear(); + WebKit::Platform::current()->compositorSupport()->shutdown(); } protected: OwnPtr<WebLayer> m_rootLayer; - WebLayerTreeView m_view; + OwnPtr<WebLayerTreeView> m_view; }; class WebLayerTreeViewSingleThreadTest : public WebLayerTreeViewTestBase { protected: void composite() { - m_view.composite(); + m_view->composite(); } virtual void initializeCompositor() OVERRIDE { - WebKit::WebCompositor::initialize(0); + WebKit::Platform::current()->compositorSupport()->initialize(0); } virtual WebLayerTreeViewClient* client() OVERRIDE @@ -157,18 +158,18 @@ protected: void composite() { - m_view.setNeedsRedraw(); + m_view->setNeedsRedraw(); RefPtr<CancelableTaskWrapper> timeoutTask = adoptRef(new CancelableTaskWrapper(adoptPtr(new TimeoutTask()))); WebKit::Platform::current()->currentThread()->postDelayedTask(timeoutTask->createTask(), 5000); WebKit::Platform::current()->currentThread()->enterRunLoop(); timeoutTask->cancel(); - m_view.finishAllRendering(); + m_view->finishAllRendering(); } virtual void initializeCompositor() OVERRIDE { m_webThread = adoptPtr(WebKit::Platform::current()->createThread("WebLayerTreeViewTest")); - WebCompositor::initialize(m_webThread.get()); + WebKit::Platform::current()->compositorSupport()->initialize(m_webThread.get()); } virtual WebLayerTreeViewClient* client() OVERRIDE diff --git a/Source/WebKit/chromium/tests/WebLayerTreeViewTestCommon.h b/Source/WebKit/chromium/tests/WebLayerTreeViewTestCommon.h index e2a62b6a3..48071f951 100644 --- a/Source/WebKit/chromium/tests/WebLayerTreeViewTestCommon.h +++ b/Source/WebKit/chromium/tests/WebLayerTreeViewTestCommon.h @@ -34,7 +34,7 @@ namespace WebKit { class MockWebLayerTreeViewClient : public WebLayerTreeViewClient { public: - virtual void scheduleComposite() OVERRIDE { } + MOCK_METHOD0(scheduleComposite, void()); virtual void updateAnimations(double frameBeginTime) OVERRIDE { } MOCK_METHOD0(willBeginFrame, void()); MOCK_METHOD0(didBeginFrame, void()); diff --git a/Source/WebKit/chromium/tests/WebTransformOperationsTest.cpp b/Source/WebKit/chromium/tests/WebTransformOperationsTest.cpp index deaf7ad74..d54db214d 100644 --- a/Source/WebKit/chromium/tests/WebTransformOperationsTest.cpp +++ b/Source/WebKit/chromium/tests/WebTransformOperationsTest.cpp @@ -26,15 +26,14 @@ #include <public/WebTransformOperations.h> -#include <public/WebTransformationMatrix.h> - -#include "CCLayerTreeTestCommon.h" - +#include "CCGeometryTestUtils.h" #include <gtest/gtest.h> +#include <public/WebTransformationMatrix.h> #include <wtf/OwnPtr.h> #include <wtf/PassOwnPtr.h> #include <wtf/Vector.h> +using namespace std; using namespace WebKit; TEST(WebTransformOperationTest, transformTypesAreUnique) @@ -42,19 +41,19 @@ TEST(WebTransformOperationTest, transformTypesAreUnique) Vector<OwnPtr<WebTransformOperations> > transforms; WebTransformOperations* toAdd = new WebTransformOperations(); - toAdd->appendTranslate(0, 0, 0); + toAdd->appendTranslate(1, 0, 0); transforms.append(adoptPtr(toAdd)); toAdd = new WebTransformOperations(); - toAdd->appendRotate(0, 0, 1, 0); + toAdd->appendRotate(0, 0, 1, 2); transforms.append(adoptPtr(toAdd)); toAdd = new WebTransformOperations(); - toAdd->appendScale(1, 1, 1); + toAdd->appendScale(2, 2, 2); transforms.append(adoptPtr(toAdd)); toAdd = new WebTransformOperations(); - toAdd->appendSkew(0, 0); + toAdd->appendSkew(1, 0); transforms.append(adoptPtr(toAdd)); toAdd = new WebTransformOperations(); @@ -72,19 +71,19 @@ TEST(WebTransformOperationTest, transformTypesAreUnique) TEST(WebTransformOperationTest, matchTypesSameLength) { WebTransformOperations translates; - translates.appendTranslate(0, 0, 0); - translates.appendTranslate(0, 0, 0); - translates.appendTranslate(0, 0, 0); + translates.appendTranslate(1, 0, 0); + translates.appendTranslate(1, 0, 0); + translates.appendTranslate(1, 0, 0); WebTransformOperations skews; - skews.appendSkew(0, 0); - skews.appendSkew(0, 0); - skews.appendSkew(0, 0); + skews.appendSkew(0, 2); + skews.appendSkew(0, 2); + skews.appendSkew(0, 2); WebTransformOperations translates2; - translates2.appendTranslate(0, 0, 0); - translates2.appendTranslate(0, 0, 0); - translates2.appendTranslate(0, 0, 0); + translates2.appendTranslate(0, 2, 0); + translates2.appendTranslate(0, 2, 0); + translates2.appendTranslate(0, 2, 0); WebTransformOperations translates3 = translates2; @@ -96,22 +95,84 @@ TEST(WebTransformOperationTest, matchTypesSameLength) TEST(WebTransformOperationTest, matchTypesDifferentLength) { WebTransformOperations translates; - translates.appendTranslate(0, 0, 0); - translates.appendTranslate(0, 0, 0); - translates.appendTranslate(0, 0, 0); + translates.appendTranslate(1, 0, 0); + translates.appendTranslate(1, 0, 0); + translates.appendTranslate(1, 0, 0); WebTransformOperations skews; - skews.appendSkew(0, 0); - skews.appendSkew(0, 0); + skews.appendSkew(2, 0); + skews.appendSkew(2, 0); WebTransformOperations translates2; - translates2.appendTranslate(0, 0, 0); - translates2.appendTranslate(0, 0, 0); + translates2.appendTranslate(0, 2, 0); + translates2.appendTranslate(0, 2, 0); EXPECT_FALSE(translates.matchesTypes(skews)); EXPECT_FALSE(translates.matchesTypes(translates2)); } +void getIdentityOperations(Vector<OwnPtr<WebTransformOperations> >* operations) +{ + WebTransformOperations* toAdd = new WebTransformOperations(); + operations->append(adoptPtr(toAdd)); + + toAdd = new WebTransformOperations(); + toAdd->appendTranslate(0, 0, 0); + operations->append(adoptPtr(toAdd)); + + toAdd = new WebTransformOperations(); + toAdd->appendTranslate(0, 0, 0); + toAdd->appendTranslate(0, 0, 0); + operations->append(adoptPtr(toAdd)); + + toAdd = new WebTransformOperations(); + toAdd->appendScale(1, 1, 1); + operations->append(adoptPtr(toAdd)); + + toAdd = new WebTransformOperations(); + toAdd->appendScale(1, 1, 1); + toAdd->appendScale(1, 1, 1); + operations->append(adoptPtr(toAdd)); + + toAdd = new WebTransformOperations(); + toAdd->appendSkew(0, 0); + operations->append(adoptPtr(toAdd)); + + toAdd = new WebTransformOperations(); + toAdd->appendSkew(0, 0); + toAdd->appendSkew(0, 0); + operations->append(adoptPtr(toAdd)); + + toAdd = new WebTransformOperations(); + toAdd->appendRotate(0, 0, 1, 0); + operations->append(adoptPtr(toAdd)); + + toAdd = new WebTransformOperations(); + toAdd->appendRotate(0, 0, 1, 0); + toAdd->appendRotate(0, 0, 1, 0); + operations->append(adoptPtr(toAdd)); + + toAdd = new WebTransformOperations(); + toAdd->appendMatrix(WebTransformationMatrix()); + operations->append(adoptPtr(toAdd)); + + toAdd = new WebTransformOperations(); + toAdd->appendMatrix(WebTransformationMatrix()); + toAdd->appendMatrix(WebTransformationMatrix()); + operations->append(adoptPtr(toAdd)); +} + +TEST(WebTransformOperationTest, identityAlwaysMatches) +{ + Vector<OwnPtr<WebTransformOperations> > operations; + getIdentityOperations(&operations); + + for (size_t i = 0; i < operations.size(); ++i) { + for (size_t j = 0; j < operations.size(); ++j) + EXPECT_TRUE(operations[i]->matchesTypes(*operations[j])); + } +} + TEST(WebTransformOperationTest, applyTranslate) { double x = 1; @@ -339,3 +400,238 @@ TEST(WebTransformOperationTest, blendWhenTypesDoNotMatch) EXPECT_TRANSFORMATION_MATRIX_EQ(expected, operationsTo.blend(operationsFrom, progress)); } + +TEST(WebTransformOperationTest, largeRotationsWithSameAxis) +{ + WebTransformOperations operationsFrom; + operationsFrom.appendRotate(0, 0, 1, 0); + + WebTransformOperations operationsTo; + operationsTo.appendRotate(0, 0, 2, 360); + + double progress = 0.5; + + WebTransformationMatrix expected; + expected.rotate3d(0, 0, 1, 180); + + EXPECT_TRANSFORMATION_MATRIX_EQ(expected, operationsTo.blend(operationsFrom, progress)); +} + +TEST(WebTransformOperationTest, largeRotationsWithSameAxisInDifferentDirection) +{ + WebTransformOperations operationsFrom; + operationsFrom.appendRotate(0, 0, 1, 180); + + WebTransformOperations operationsTo; + operationsTo.appendRotate(0, 0, -1, 180); + + double progress = 0.5; + + WebTransformationMatrix expected; + + EXPECT_TRANSFORMATION_MATRIX_EQ(expected, operationsTo.blend(operationsFrom, progress)); +} + +TEST(WebTransformOperationTest, largeRotationsWithDifferentAxes) +{ + WebTransformOperations operationsFrom; + operationsFrom.appendRotate(0, 0, 1, 180); + + WebTransformOperations operationsTo; + operationsTo.appendRotate(0, 1, 0, 180); + + double progress = 0.5; + WebTransformationMatrix matrixFrom; + matrixFrom.rotate3d(0, 0, 1, 180); + + WebTransformationMatrix matrixTo; + matrixTo.rotate3d(0, 1, 0, 180); + + WebTransformationMatrix expected = matrixTo; + expected.blend(matrixFrom, progress); + + EXPECT_TRANSFORMATION_MATRIX_EQ(expected, operationsTo.blend(operationsFrom, progress)); +} + +TEST(WebTransformOperationTest, blendRotationFromIdentity) +{ + Vector<OwnPtr<WebTransformOperations> > identityOperations; + getIdentityOperations(&identityOperations); + + for (size_t i = 0; i < identityOperations.size(); ++i) { + WebTransformOperations operations; + operations.appendRotate(0, 0, 1, 360); + + double progress = 0.5; + + WebTransformationMatrix expected; + expected.rotate3d(0, 0, 1, 180); + + EXPECT_TRANSFORMATION_MATRIX_EQ(expected, operations.blend(*identityOperations[i], progress)); + } +} + +TEST(WebTransformOperationTest, blendTranslationFromIdentity) +{ + Vector<OwnPtr<WebTransformOperations> > identityOperations; + getIdentityOperations(&identityOperations); + + for (size_t i = 0; i < identityOperations.size(); ++i) { + WebTransformOperations operations; + operations.appendTranslate(2, 2, 2); + + double progress = 0.5; + + WebTransformationMatrix expected; + expected.translate3d(1, 1, 1); + + EXPECT_TRANSFORMATION_MATRIX_EQ(expected, operations.blend(*identityOperations[i], progress)); + } +} + +TEST(WebTransformOperationTest, blendScaleFromIdentity) +{ + Vector<OwnPtr<WebTransformOperations> > identityOperations; + getIdentityOperations(&identityOperations); + + for (size_t i = 0; i < identityOperations.size(); ++i) { + WebTransformOperations operations; + operations.appendScale(3, 3, 3); + + double progress = 0.5; + + WebTransformationMatrix expected; + expected.scale3d(2, 2, 2); + + EXPECT_TRANSFORMATION_MATRIX_EQ(expected, operations.blend(*identityOperations[i], progress)); + } +} + +TEST(WebTransformOperationTest, blendSkewFromIdentity) +{ + Vector<OwnPtr<WebTransformOperations> > identityOperations; + getIdentityOperations(&identityOperations); + + for (size_t i = 0; i < identityOperations.size(); ++i) { + WebTransformOperations operations; + operations.appendSkew(2, 2); + + double progress = 0.5; + + WebTransformationMatrix expected; + expected.skewX(1); + expected.skewY(1); + + EXPECT_TRANSFORMATION_MATRIX_EQ(expected, operations.blend(*identityOperations[i], progress)); + } +} + +TEST(WebTransformOperationTest, blendPerspectiveFromIdentity) +{ + Vector<OwnPtr<WebTransformOperations> > identityOperations; + getIdentityOperations(&identityOperations); + + for (size_t i = 0; i < identityOperations.size(); ++i) { + WebTransformOperations operations; + operations.appendPerspective(1000); + + double progress = 0.5; + + WebTransformationMatrix expected; + expected.applyPerspective(500 + 0.5 * numeric_limits<double>::max()); + + EXPECT_TRANSFORMATION_MATRIX_EQ(expected, operations.blend(*identityOperations[i], progress)); + } +} + +TEST(WebTransformOperationTest, blendRotationToIdentity) +{ + Vector<OwnPtr<WebTransformOperations> > identityOperations; + getIdentityOperations(&identityOperations); + + for (size_t i = 0; i < identityOperations.size(); ++i) { + WebTransformOperations operations; + operations.appendRotate(0, 0, 1, 360); + + double progress = 0.5; + + WebTransformationMatrix expected; + expected.rotate3d(0, 0, 1, 180); + + EXPECT_TRANSFORMATION_MATRIX_EQ(expected, identityOperations[i]->blend(operations, progress)); + } +} + +TEST(WebTransformOperationTest, blendTranslationToIdentity) +{ + Vector<OwnPtr<WebTransformOperations> > identityOperations; + getIdentityOperations(&identityOperations); + + for (size_t i = 0; i < identityOperations.size(); ++i) { + WebTransformOperations operations; + operations.appendTranslate(2, 2, 2); + + double progress = 0.5; + + WebTransformationMatrix expected; + expected.translate3d(1, 1, 1); + + EXPECT_TRANSFORMATION_MATRIX_EQ(expected, identityOperations[i]->blend(operations, progress)); + } +} + +TEST(WebTransformOperationTest, blendScaleToIdentity) +{ + Vector<OwnPtr<WebTransformOperations> > identityOperations; + getIdentityOperations(&identityOperations); + + for (size_t i = 0; i < identityOperations.size(); ++i) { + WebTransformOperations operations; + operations.appendScale(3, 3, 3); + + double progress = 0.5; + + WebTransformationMatrix expected; + expected.scale3d(2, 2, 2); + + EXPECT_TRANSFORMATION_MATRIX_EQ(expected, identityOperations[i]->blend(operations, progress)); + } +} + +TEST(WebTransformOperationTest, blendSkewToIdentity) +{ + Vector<OwnPtr<WebTransformOperations> > identityOperations; + getIdentityOperations(&identityOperations); + + for (size_t i = 0; i < identityOperations.size(); ++i) { + WebTransformOperations operations; + operations.appendSkew(2, 2); + + double progress = 0.5; + + WebTransformationMatrix expected; + expected.skewX(1); + expected.skewY(1); + + EXPECT_TRANSFORMATION_MATRIX_EQ(expected, identityOperations[i]->blend(operations, progress)); + } +} + +TEST(WebTransformOperationTest, blendPerspectiveToIdentity) +{ + Vector<OwnPtr<WebTransformOperations> > identityOperations; + getIdentityOperations(&identityOperations); + + for (size_t i = 0; i < identityOperations.size(); ++i) { + WebTransformOperations operations; + operations.appendPerspective(1000); + + double progress = 0.5; + + WebTransformationMatrix expected; + expected.applyPerspective(500 + 0.5 * numeric_limits<double>::max()); + + EXPECT_TRANSFORMATION_MATRIX_EQ(expected, identityOperations[i]->blend(operations, progress)); + } +} + diff --git a/Source/WebKit/chromium/tests/WebTransformationMatrixTest.cpp b/Source/WebKit/chromium/tests/WebTransformationMatrixTest.cpp index eb442f4e3..a587e4a37 100644 --- a/Source/WebKit/chromium/tests/WebTransformationMatrixTest.cpp +++ b/Source/WebKit/chromium/tests/WebTransformationMatrixTest.cpp @@ -26,7 +26,7 @@ #include <public/WebTransformationMatrix.h> -#include "CCLayerTreeTestCommon.h" +#include "CCGeometryTestUtils.h" #include <gtest/gtest.h> #include <wtf/MathExtras.h> diff --git a/Source/WebKit/chromium/tests/WebViewTest.cpp b/Source/WebKit/chromium/tests/WebViewTest.cpp index 46c96310d..4e2553a36 100644 --- a/Source/WebKit/chromium/tests/WebViewTest.cpp +++ b/Source/WebKit/chromium/tests/WebViewTest.cpp @@ -32,14 +32,18 @@ #include "WebView.h" #include "Document.h" +#include "Element.h" #include "FrameTestHelpers.h" #include "FrameView.h" #include "HTMLDocument.h" #include "URLTestHelpers.h" +#include "WebContentDetectionResult.h" #include "WebDocument.h" +#include "WebElement.h" #include "WebFrame.h" #include "WebFrameClient.h" #include "WebFrameImpl.h" +#include "WebInputEvent.h" #include "platform/WebSize.h" #include "WebViewClient.h" #include "WebViewImpl.h" @@ -218,7 +222,7 @@ void WebViewTest::testAutoResize(const WebSize& minAutoResize, const WebSize& ma webView->close(); } -TEST_F(WebViewTest, AutoResizeMinimumSize) +TEST_F(WebViewTest, DISABLED_AutoResizeMinimumSize) { WebSize minAutoResize(91, 56); WebSize maxAutoResize(403, 302); @@ -418,4 +422,132 @@ TEST_F(WebViewTest, SetCompositionFromExistingText) webView->close(); } +class ContentDetectorClient : public WebViewClient { +public: + ContentDetectorClient() { reset(); } + + virtual WebContentDetectionResult detectContentAround(const WebHitTestResult& hitTest) OVERRIDE + { + m_contentDetectionRequested = true; + return m_contentDetectionResult; + } + + virtual void scheduleContentIntent(const WebURL& url) OVERRIDE + { + m_scheduledIntentURL = url; + } + + virtual void cancelScheduledContentIntents() OVERRIDE + { + m_pendingIntentsCancelled = true; + } + + void reset() + { + m_contentDetectionRequested = false; + m_pendingIntentsCancelled = false; + m_scheduledIntentURL = WebURL(); + m_contentDetectionResult = WebContentDetectionResult(); + } + + bool contentDetectionRequested() const { return m_contentDetectionRequested; } + bool pendingIntentsCancelled() const { return m_pendingIntentsCancelled; } + const WebURL& scheduledIntentURL() const { return m_scheduledIntentURL; } + void setContentDetectionResult(const WebContentDetectionResult& result) { m_contentDetectionResult = result; } + +private: + bool m_contentDetectionRequested; + bool m_pendingIntentsCancelled; + WebURL m_scheduledIntentURL; + WebContentDetectionResult m_contentDetectionResult; +}; + +static bool tapElementById(WebView* webView, WebInputEvent::Type type, const WebString& id) +{ + ASSERT(webView); + RefPtr<WebCore::Element> element = static_cast<PassRefPtr<WebCore::Element> >(webView->mainFrame()->document().getElementById(id)); + if (!element) + return false; + + element->scrollIntoViewIfNeeded(); + WebCore::IntPoint center = element->screenRect().center(); + + WebGestureEvent event; + event.type = type; + event.x = center.x(); + event.y = center.y(); + + webView->handleInputEvent(event); + webkit_support::RunAllPendingMessages(); + return true; +} + +TEST_F(WebViewTest, DetectContentAroundPosition) +{ + URLTestHelpers::registerMockedURLFromBaseURL(WebString::fromUTF8(m_baseURL.c_str()), WebString::fromUTF8("content_listeners.html")); + + ContentDetectorClient client; + WebView* webView = FrameTestHelpers::createWebViewAndLoad(m_baseURL + "content_listeners.html", true, 0, &client); + webView->resize(WebSize(500, 300)); + webView->layout(); + webkit_support::RunAllPendingMessages(); + + WebString clickListener = WebString::fromUTF8("clickListener"); + WebString touchstartListener = WebString::fromUTF8("touchstartListener"); + WebString mousedownListener = WebString::fromUTF8("mousedownListener"); + WebString noListener = WebString::fromUTF8("noListener"); + WebString link = WebString::fromUTF8("link"); + + // Ensure content detection is not requested for nodes listening to click, + // mouse or touch events when we do simple taps. + EXPECT_TRUE(tapElementById(webView, WebInputEvent::GestureTap, clickListener)); + EXPECT_FALSE(client.contentDetectionRequested()); + client.reset(); + + EXPECT_TRUE(tapElementById(webView, WebInputEvent::GestureTap, touchstartListener)); + EXPECT_FALSE(client.contentDetectionRequested()); + client.reset(); + + EXPECT_TRUE(tapElementById(webView, WebInputEvent::GestureTap, mousedownListener)); + EXPECT_FALSE(client.contentDetectionRequested()); + client.reset(); + + // Content detection should still work on click, mouse and touch event listeners for long taps + // as long as we're not tapping on links. + EXPECT_TRUE(tapElementById(webView, WebInputEvent::GestureLongPress, clickListener)); + EXPECT_TRUE(client.contentDetectionRequested()); + client.reset(); + + EXPECT_TRUE(tapElementById(webView, WebInputEvent::GestureLongPress, touchstartListener)); + EXPECT_TRUE(client.contentDetectionRequested()); + client.reset(); + + EXPECT_TRUE(tapElementById(webView, WebInputEvent::GestureLongPress, mousedownListener)); + EXPECT_TRUE(client.contentDetectionRequested()); + client.reset(); + + EXPECT_TRUE(tapElementById(webView, WebInputEvent::GestureLongPress, link)); + EXPECT_FALSE(client.contentDetectionRequested()); + client.reset(); + + // Content detection should work normally without these event listeners. + // The click listener in the body should be ignored as a special case. + EXPECT_TRUE(tapElementById(webView, WebInputEvent::GestureTap, noListener)); + EXPECT_TRUE(client.contentDetectionRequested()); + EXPECT_FALSE(client.scheduledIntentURL().isValid()); + + WebURL intentURL = toKURL(m_baseURL); + client.setContentDetectionResult(WebContentDetectionResult(WebRange(), WebString(), intentURL)); + EXPECT_TRUE(tapElementById(webView, WebInputEvent::GestureTap, noListener)); + EXPECT_TRUE(client.scheduledIntentURL() == intentURL); + + // Tapping elsewhere should cancel the scheduled intent. + WebGestureEvent event; + event.type = WebInputEvent::GestureTap; + webView->handleInputEvent(event); + webkit_support::RunAllPendingMessages(); + EXPECT_TRUE(client.pendingIntentsCancelled()); + webView->close(); +} + } diff --git a/Source/WebKit/chromium/tests/data/content_listeners.html b/Source/WebKit/chromium/tests/data/content_listeners.html new file mode 100644 index 000000000..ff924c883 --- /dev/null +++ b/Source/WebKit/chromium/tests/data/content_listeners.html @@ -0,0 +1,31 @@ +<!DOCTYPE html> +<html> +<head> +<style> +span { + font-size: 300%; +} +</style> +<script> +function listener() { +} +</script> +</head> +<body onclick="listener()"> +<span id="clickListener" onclick="listener()"> +This has a click listener. +</span></br> +<span id="touchstartListener" ontouchstart="listener()"> +This has a touchstart listener. +</span></br> +<span id="mousedownListener" onmousedown="listener()"> +This has a mousedown listener. +</span></br> +<span id="noListener"> +This has no specific listener (the body listener should be ignored). +</span></br> +<a href="http://www.test.com/" id="link"> +This has no specific listener, but it's a link. +</a></br> +</body> +</html> diff --git a/Source/WebKit/chromium/tests/data/disambiguation_popup.html b/Source/WebKit/chromium/tests/data/disambiguation_popup.html new file mode 100644 index 000000000..b1af285ce --- /dev/null +++ b/Source/WebKit/chromium/tests/data/disambiguation_popup.html @@ -0,0 +1,30 @@ +<html> +<head> +<title>Disambiguation Popup Test</title> +<style type="text/css"> +.horizontal-link { + display:block; + width:200px; + height:30px; + margin:20px; + background-color:#ccccff; +} +.vertical-link { + display:inline-block; + width:30px; + height:200px; + margin:10px; + background-color:#ccccff; +} +</style> +</head> +<body style="margin:0px;"> +<a href="#" class="horizontal-link" style="margin:100px">Link</a> +<a href="#" class="horizontal-link">Link 1</a> +<a href="#" class="horizontal-link">Link 2</a> +<a href="#" class="horizontal-link">Link 3</a> +<a href="#" class="horizontal-link">Link 4</a> +<a href="#" class="horizontal-link">Link 5</a> +<a href="#" class="vertical-link">Link 1</a><a href="#" class="vertical-link">Link 2</a><a href="#" class="vertical-link">Link 3</a><a href="#" class="vertical-link">Link 4</a><a href="#" class="vertical-link">Link 5</a> +</body> +</html> diff --git a/Source/WebKit/chromium/tests/data/test_touch_link_highlight.html b/Source/WebKit/chromium/tests/data/test_touch_link_highlight.html index 89bd15fb0..2394b2624 100644 --- a/Source/WebKit/chromium/tests/data/test_touch_link_highlight.html +++ b/Source/WebKit/chromium/tests/data/test_touch_link_highlight.html @@ -1,7 +1,7 @@ <!DOCTYPE html> <body> - <a href="http://www.test.com" style="position: absolute; left: 20px; top: 20px; width: 200px; -webkit-transform:translateZ(0)">A link to highlight</a> - <div style="background-color: white; position: absolute; left: 20px; top: 40px; width: 200px; height: 30px"> + <a href="http://www.test.com" style="position: absolute; left: 20px; top: 20px; width: 200px;">A link to highlight</a> + <div style="background-color: white; position: absolute; left: 20px; top: 40px; width: 200px; height: 30px; -webkit-transform:translateZ(0);"> <p id="innerDiv">Not a link to click.</p> </div> <div style="background-color: white; position: absolute; left: 20px; top: 100px; width: 200px; height: 100px; overflow-y: scroll; overflow-x : scroll;"> diff --git a/Source/WebKit/chromium/tests/data/text_selection.html b/Source/WebKit/chromium/tests/data/text_selection.html new file mode 100644 index 000000000..f605e9a54 --- /dev/null +++ b/Source/WebKit/chromium/tests/data/text_selection.html @@ -0,0 +1,31 @@ +<!DOCTYPE html> +<html> +<body> + +<span id="header">[ +<span id="header_1">Header 1.</span> +<span id="header_2">Header 2.</span> +]</span> + +<span id="editable" contenteditable="true">[ +<span id="editable_1">Editable 1.</span> +<span id="editable_2">Editable 2.</span> +]</span> + +<span id="footer">[ +<span id="footer_1">Footer 1.</span> +<span id="footer_2">Footer 2.</span> +]</span> + +<script> +function selectElement(id) { + var element = document.getElementById(id); + var range = document.createRange(); + range.selectNode(document.getElementById(id)); + window.getSelection().removeAllRanges(); + window.getSelection().addRange(range); +} +</script> +</body> +</html> + diff --git a/Source/WebKit/efl/ChangeLog b/Source/WebKit/efl/ChangeLog index cc655735b..cfac6ce12 100644 --- a/Source/WebKit/efl/ChangeLog +++ b/Source/WebKit/efl/ChangeLog @@ -1,3 +1,580 @@ +2012-09-10 Christophe Dumez <christophe.dumez@intel.com> + + [EFL] Create a toggle button for closed captions + https://bugs.webkit.org/show_bug.cgi?id=96259 + + Reviewed by Kenneth Rohde Christiansen. + + Add closed caption toggling button to default WebKitEFL + theme. + + * DefaultTheme/default.edc: + * DefaultTheme/widget/mediacontrol/togglecaptionsbutton/closedcaption.png: Added. + * DefaultTheme/widget/mediacontrol/togglecaptionsbutton/closedcaption_disabled.png: Added. + * DefaultTheme/widget/mediacontrol/togglecaptionsbutton/toggle_captions_button.edc: Added. + +2012-09-09 Emil A Eklund <eae@chromium.org> + + Rename Node::getRect/getPixelSnappedRect and remove ContainerNode::getRect + https://bugs.webkit.org/show_bug.cgi?id=81413 + + Reviewed by David Hyatt. + + Update ewk_frame to call pixelSnappedBoundingBox. + + * ewk/ewk_frame.cpp: + (ewk_frame_focused_element_geometry_get): + +2012-09-07 Benjamin Poulain <bpoulain@apple.com> + + Rename the ustring() accessor to string() + https://bugs.webkit.org/show_bug.cgi?id=95919 + + Reviewed by Geoffrey Garen. + + * WebCoreSupport/DumpRenderTreeSupportEfl.cpp: + (DumpRenderTreeSupportEfl::sendWebIntentResponse): + (DumpRenderTreeSupportEfl::deliverWebIntent): + Aslo update the code from the UString->String conversion through StringImpl. + +2012-09-07 Christophe Dumez <christophe.dumez@intel.com> + + [EFL] Use same default minimum logical font size in DRT and WTR + https://bugs.webkit.org/show_bug.cgi?id=96116 + + Reviewed by Martin Robinson. + + Add DRT helper function to set the minimum logical + font size setting. + + * WebCoreSupport/DumpRenderTreeSupportEfl.cpp: + (DumpRenderTreeSupportEfl::setMinimumLogicalFontSize): + * WebCoreSupport/DumpRenderTreeSupportEfl.h: + +2012-09-07 Allan Sandfeld Jensen <allan.jensen@nokia.com> + + Simplify hitTestResultAtPoint and nodesFromRect APIs + https://bugs.webkit.org/show_bug.cgi?id=95720 + + Reviewed by Antonio Gomes. + + Update calls to new API. + + * ewk/ewk_frame.cpp: + (ewk_frame_hit_test_new): + +2012-09-07 Gyuyoung Kim <gyuyoung.kim@samsung.com> + + Unreviewed, rolling out r127839. + http://trac.webkit.org/changeset/127839 + https://bugs.webkit.org/show_bug.cgi?id=90603 + + This patch was landed with wrong implementation and policy. + + * WebCoreSupport/NotificationPresenterClientEfl.cpp: + (WebCore::NotificationPresenterClientEfl::NotificationPresenterClientEfl): + (WebCore::NotificationPresenterClientEfl::requestPermission): + (WebCore::NotificationPresenterClientEfl::checkPermission): + (WebCore::NotificationPresenterClientEfl::cancelRequestsForPermission): + * WebCoreSupport/NotificationPresenterClientEfl.h: + (NotificationPresenterClientEfl): + * ewk/ewk_view.cpp: + (_ewk_view_priv_new): + * ewk/ewk_view.h: + * ewk/ewk_view_private.h: + +2012-09-07 Kihong Kwon <kihong.kwon@samsung.com> + + [EFL] Support the permission function of the Web Notification. + https://bugs.webkit.org/show_bug.cgi?id=90603 + + Reviewed by Gyuyoung Kim. + + Implement permission related functions of Web Notifications. + checkPermission for Notification.permissionLevel(). + requestPermission for Notification.requestPermission(). + In addition, if the application(like a browser) has permitted domains already, + it can be cached using ewk_view_notification_permissions_store. + + * WebCoreSupport/NotificationPresenterClientEfl.cpp: + (WebCore::NotificationPresenterClientEfl::NotificationPresenterClientEfl): + (WebCore::NotificationPresenterClientEfl::requestPermission): + (WebCore::NotificationPresenterClientEfl::checkPermission): + (WebCore::NotificationPresenterClientEfl::addToPermissionCache): + (WebCore): + (WebCore::NotificationPresenterClientEfl::setPermission): + * WebCoreSupport/NotificationPresenterClientEfl.h: + (WebCore): + (NotificationPresenterClientEfl): + (WebCore::NotificationPresenterClientEfl::requestPermission): + (WebCore::NotificationPresenterClientEfl::cancelRequestsForPermission): + * ewk/ewk_view.cpp: + (_ewk_view_priv_new): + (ewk_view_notification_permission_store): + (ewk_view_notification_permissions_set): + (ewk_view_notification_permission_request): + * ewk/ewk_view.h: + * ewk/ewk_view_private.h: + +2012-09-05 Sam Weinig <sam@webkit.org> + + Part 2 of removing PlatformString.h, remove PlatformString.h + https://bugs.webkit.org/show_bug.cgi?id=95931 + + Reviewed by Adam Barth. + + Remove PlatformString.h + + * WebCoreSupport/ChromeClientEfl.cpp: + * WebCoreSupport/InspectorClientEfl.cpp: + +2012-09-06 Kangil Han <kangil.han@samsung.com> + + [EFL] Remove unnecessary logic in ewk_frame_source_get. + https://bugs.webkit.org/show_bug.cgi?id=95828 + + Reviewed by Kenneth Rohde Christiansen. + + Removed unnecessary logic that checks if <html> tag exists in document. + WebKit automatically fill out <html></html> tags if they are not existed. + + * ewk/ewk_frame.cpp: + (ewk_frame_source_get): + +2012-09-05 Kangil Han <kangil.han@samsung.com> + + [EFL] Remove '+=' usage in String + https://bugs.webkit.org/show_bug.cgi?id=95808 + + Reviewed by Benjamin Poulain. + + Replaced use of String operator '+=' with StringBuilder.append*() in order to adopt efficient String concatenation. + + * ewk/ewk_frame.cpp: + (ewk_frame_source_get): Removed unnecessary strlen usage. + +2012-09-05 Kaustubh Atrawalkar <kaustubh@motorola.com> + + [DRT] LTC:: Move printing related APIs from LayoutTestController to Internals + https://bugs.webkit.org/show_bug.cgi?id=92735 + + Reviewed by Hajime Morita. + + Move numberOfPages, pageProperty & pageSizeAndMarginsInPixels in Internals and remove duplicated code from DumprenderTree & WebkitTestRunner. + + * WebCoreSupport/DumpRenderTreeSupportEfl.cpp: + * WebCoreSupport/DumpRenderTreeSupportEfl.h: + +2012-09-04 Michał Pakuła vel Rutka <m.pakula@samsung.com> + + [EFL] Context menu restore. + https://bugs.webkit.org/show_bug.cgi?id=74179 + + Reviewed by Gyuyoung Kim. + + Adds context menu support for EFL port using non-CROSS_PLATFORM_CONTEXT_MENUS + approach, the same as used in WebKit2. + + * WebCoreSupport/ContextMenuClientEfl.cpp: Added. + (WebCore): + (WebCore::ContextMenuClientEfl::contextMenuDestroyed): + (WebCore::ContextMenuClientEfl::getCustomMenuFromDefaultItems): + (WebCore::ContextMenuClientEfl::contextMenuItemSelected): + (WebCore::ContextMenuClientEfl::downloadURL): + (WebCore::ContextMenuClientEfl::lookUpInDictionary): + (WebCore::ContextMenuClientEfl::speak): + (WebCore::ContextMenuClientEfl::isSpeaking): + (WebCore::ContextMenuClientEfl::stopSpeaking): + (WebCore::ContextMenuClientEfl::searchWithGoogle): + * WebCoreSupport/ContextMenuClientEfl.h: Added. + (WebCore): + (ContextMenuClientEfl): + * ewk/ewk_contextmenu.cpp: Removed ewk_context_menu_customize implementation. + (ewk_context_menu_destroy): Added freeing context menu. + (ewk_context_menu_new): Added filling ewk_contextmenu list. + (ewk_context_menu_item_append): + * ewk/ewk_contextmenu_private.h: Removed ewk_context_menu_customize and changed ewk_context_menu_new definition. + * ewk/ewk_view.cpp: + (_Ewk_View_Private_Data): + (_ewk_view_priv_new): + (_ewk_view_priv_del): + (ewk_view_context_menu_forward_event): + +2012-09-04 Ryuan Choi <ryuan.choi@samsung.com> + + [EFL] Drop default theme concept + https://bugs.webkit.org/show_bug.cgi?id=94778 + + Reviewed by Gyuyoung Kim. + + * ewk/ewk_view.h: + Updated doxygen document not to mention default theme. + +2012-09-03 Jinwoo Song <jinwoo7.song@samsung.com> + + [EFL] Fix e_dbus_shutdown() error when exiting the Minibrowser + https://bugs.webkit.org/show_bug.cgi?id=95636 + + Reviewed by Gyuyoung Kim. + + Invoke stopUpdating() in the destructor of BatteryClinetEfl() + to call e_ukit_shutdown() and e_dbus_shutdown() if and when + stopUpdating() has not been called explicitly. + + * WebCoreSupport/BatteryClientEfl.cpp: + (BatteryClientEfl::~BatteryClientEfl): + * WebCoreSupport/BatteryClientEfl.h: + (BatteryClientEfl): + +2012-09-03 Jinwoo Song <jinwoo7.song@samsung.com> + + [EFL] Use WebKitVersion.h to get version information + https://bugs.webkit.org/show_bug.cgi?id=95669 + + Reviewed by Gyuyoung Kim. + + Use WEBKIT_MAJOR_VERSION and WEBKIT_MINOR_VERSION + in the WebKitVersion.h + + Relocate the StorageTracker.h to keep the sorted order. + + * ewk/ewk_settings.cpp: + (ewk_settings_default_user_agent_get): + +2012-09-01 Jinwoo Song <jinwoo7.song@samsung.com> + + [EFL] Refactoring the DumpRenderTreeSupportEfl + https://bugs.webkit.org/show_bug.cgi?id=95544 + + Reviewed by Gyuyoung Kim. + + There are lots of repeated codes for getting the WebCore::Frame + and WebCore::Page. To reduce these duplications, simple macros + are added. + + No new tests, just refactoring. + + * WebCoreSupport/DumpRenderTreeSupportEfl.cpp: + (DumpRenderTreeSupportEfl::activeAnimationsCount): + (DumpRenderTreeSupportEfl::callShouldCloseOnWebView): + (DumpRenderTreeSupportEfl::clearFrameName): + (DumpRenderTreeSupportEfl::clearOpener): + (DumpRenderTreeSupportEfl::elementDoesAutoCompleteForElementWithId): + (DumpRenderTreeSupportEfl::frameChildren): + (DumpRenderTreeSupportEfl::frameParent): + (DumpRenderTreeSupportEfl::layoutFrame): + (DumpRenderTreeSupportEfl::numberOfPages): + (DumpRenderTreeSupportEfl::pageSizeAndMarginsInPixels): + (DumpRenderTreeSupportEfl::pageProperty): + (DumpRenderTreeSupportEfl::pauseAnimation): + (DumpRenderTreeSupportEfl::pauseTransition): + (DumpRenderTreeSupportEfl::pendingUnloadEventCount): + (DumpRenderTreeSupportEfl::renderTreeDump): + (DumpRenderTreeSupportEfl::responseMimeType): + (DumpRenderTreeSupportEfl::selectionRectangle): + (DumpRenderTreeSupportEfl::suitableDRTFrameName): + (DumpRenderTreeSupportEfl::setDefersLoading): + (DumpRenderTreeSupportEfl::setLoadsSiteIconsIgnoringImageLoadingSetting): + (DumpRenderTreeSupportEfl::addUserScript): + (DumpRenderTreeSupportEfl::clearUserScripts): + (DumpRenderTreeSupportEfl::addUserStyleSheet): + (DumpRenderTreeSupportEfl::clearUserStyleSheets): + (DumpRenderTreeSupportEfl::executeCoreCommandByName): + (DumpRenderTreeSupportEfl::findString): + (DumpRenderTreeSupportEfl::setCSSGridLayoutEnabled): + (DumpRenderTreeSupportEfl::isCommandEnabled): + (DumpRenderTreeSupportEfl::setSmartInsertDeleteEnabled): + (DumpRenderTreeSupportEfl::setSelectTrailingWhitespaceEnabled): + (DumpRenderTreeSupportEfl::evaluateInWebInspector): + (DumpRenderTreeSupportEfl::evaluateScriptInIsolatedWorld): + (DumpRenderTreeSupportEfl::globalContextRefForFrame): + (DumpRenderTreeSupportEfl::setInteractiveFormValidationEnabled): + (DumpRenderTreeSupportEfl::setValidationMessageTimerMagnification): + (DumpRenderTreeSupportEfl::setAuthorAndUserStylesEnabled): + (DumpRenderTreeSupportEfl::setComposition): + (DumpRenderTreeSupportEfl::hasComposition): + (DumpRenderTreeSupportEfl::compositionRange): + (DumpRenderTreeSupportEfl::confirmComposition): + (DumpRenderTreeSupportEfl::firstRectForCharacterRange): + (DumpRenderTreeSupportEfl::selectedRange): + +2012-08-31 Christophe Dumez <christophe.dumez@intel.com> + + [EFL] Add proper support for navigator.onLine and associated events + https://bugs.webkit.org/show_bug.cgi?id=95532 + + Reviewed by Kenneth Rohde Christiansen. + + Remove ewk_network_state_notifier_online_set() API since + the EFL port no longer relies on the client application to + provide it with the online state. + + * ewk/ewk_network.cpp: + * ewk/ewk_network.h: + +2012-08-31 Jinwoo Song <jinwoo7.song@samsung.com> + + [EFL] Simplify FrameLoaderClinetEfl by adding a private method. + https://bugs.webkit.org/show_bug.cgi?id=95444 + + Reviewed by Gyuyoung Kim. + + In the FrameLoaderClientEfl, the codes which checks that + if current frame is main frame are frequently used. + This patch adds a private method and replaces those codes + with the method to simplify. + + * WebCoreSupport/FrameLoaderClientEfl.cpp: + (WebCore::FrameLoaderClientEfl::dispatchDidChangeLocationWithinPage): + (WebCore::FrameLoaderClientEfl::dispatchDidReceiveIcon): + (WebCore::FrameLoaderClientEfl::dispatchDidStartProvisionalLoad): + (WebCore::FrameLoaderClientEfl::dispatchDidReceiveTitle): + (WebCore::FrameLoaderClientEfl::dispatchDidCommitLoad): + (WebCore::FrameLoaderClientEfl::dispatchDidFailProvisionalLoad): + (WebCore::FrameLoaderClientEfl::transitionToCommittedForNewPage): + * WebCoreSupport/FrameLoaderClientEfl.h: + (WebCore::FrameLoaderClientEfl::isLoadingMainFrame): + +2012-08-30 Benjamin Poulain <bpoulain@apple.com> + + Replace JSC::UString by WTF::String + https://bugs.webkit.org/show_bug.cgi?id=95271 + + Reviewed by Geoffrey Garen. + + Replace UString by String. + + * WebCoreSupport/DumpRenderTreeSupportEfl.cpp: + (DumpRenderTreeSupportEfl::sendWebIntentResponse): + * ewk/ewk_frame.cpp: + (ewk_frame_script_execute): + +2012-08-29 Kamil Blank <k.blank@samsung.com> + + [EFL] Add setting API for allow universal/file access from file URLs. + https://bugs.webkit.org/show_bug.cgi?id=83121 + + Reviewed by Eric Seidel. + + Make it possible to enable allow universal/file access from file URLs. + Default value for both settings is true. + + * ewk/ewk_view.cpp: + (_Ewk_View_Private_Data): + (_ewk_view_priv_new): + (ewk_view_setting_allow_universal_access_from_file_urls_set): Function sets if locally loaded documents + are allowed to access remote urls. + (ewk_view_setting_allow_universal_access_from_file_urls_get): + (ewk_view_setting_allow_file_access_from_file_urls_set): Function sets if locally loaded documents + are allowed to access other local urls. + (ewk_view_setting_allow_file_access_from_file_urls_get): + * ewk/ewk_view.h: + +2012-08-29 Ryuan Choi <ryuan.choi@samsung.com> + + [EFL] Add *explicit* keyword to constructors in WebCoreSupport + https://bugs.webkit.org/show_bug.cgi?id=95307 + + Reviewed by Kentaro Hara. + + Added explicit keyword in constructors in order to avoid implicit type conversion. + + * WebCoreSupport/ColorChooserEfl.h: + (ColorChooserEfl): + * WebCoreSupport/PopupMenuEfl.h: + (PopupMenuEfl): + * WebCoreSupport/SearchPopupMenuEfl.h: + (SearchPopupMenuEfl): + +2012-08-29 Ryuan Choi <ryuan.choi@samsung.com> + + [EFL] Move several files to remove webkit1 dependency from WebCore. + https://bugs.webkit.org/show_bug.cgi?id=95264 + + Reviewed by Gyuyoung Kim. + + ColorChooserEfl.cpp, PopupMenuEfl.cpp and SearchPopupMenuEfl.cpp are WebKit1/Efl + specific files and they can not be shared with WebKit2/Efl. + + In order to remove WebKit dependency from WebCore, this patch moves them + to WebKit/efl/WebCoreSupport. + + * WebCoreSupport/ColorChooserEfl.cpp: Renamed from Source/WebCore/platform/efl/ColorChooserEfl.cpp. + (WebCore): + (WebCore::ColorChooserEfl::ColorChooserEfl): + (WebCore::ColorChooserEfl::~ColorChooserEfl): + (WebCore::ColorChooserEfl::setSelectedColor): + (WebCore::ColorChooserEfl::endChooser): + * WebCoreSupport/ColorChooserEfl.h: Renamed from Source/WebCore/platform/efl/ColorChooserEfl.h. + (WebCore): + (ColorChooserEfl): + * WebCoreSupport/PopupMenuEfl.cpp: Renamed from Source/WebCore/platform/efl/PopupMenuEfl.cpp. + (WebCore): + (WebCore::PopupMenuEfl::PopupMenuEfl): + (WebCore::PopupMenuEfl::~PopupMenuEfl): + (WebCore::PopupMenuEfl::show): + (WebCore::PopupMenuEfl::hide): + (WebCore::PopupMenuEfl::updateFromElement): + (WebCore::PopupMenuEfl::disconnectClient): + * WebCoreSupport/PopupMenuEfl.h: Renamed from Source/WebCore/platform/efl/PopupMenuEfl.h. + (WebCore): + (PopupMenuEfl): + (WebCore::PopupMenuEfl::client): + * WebCoreSupport/SearchPopupMenuEfl.cpp: Renamed from Source/WebCore/platform/efl/SearchPopupMenuEfl.cpp. + (WebCore): + (WebCore::SearchPopupMenuEfl::SearchPopupMenuEfl): + (WebCore::SearchPopupMenuEfl::popupMenu): + (WebCore::SearchPopupMenuEfl::saveRecentSearches): + (WebCore::SearchPopupMenuEfl::loadRecentSearches): + (WebCore::SearchPopupMenuEfl::enabled): + * WebCoreSupport/SearchPopupMenuEfl.h: Renamed from Source/WebCore/platform/efl/SearchPopupMenuEfl.h. + (WebCore): + (SearchPopupMenuEfl): + +2012-08-28 Seokju Kwon <seokju.kwon@samsung.com> + + [EFL] Add support for localization to the Web Inspector + https://bugs.webkit.org/show_bug.cgi?id=92961 + + Reviewed by Gyuyoung Kim. + + Implement InspectorFrontendClientEfl::localizedStringsURL() + to return the URL of the localizedStrings.js. + + * WebCoreSupport/InspectorClientEfl.cpp: + (WebCore::InspectorClientEfl::openInspectorFrontend): + (WebCore::InspectorClientEfl::inspectorFilesPath): + (WebCore::InspectorFrontendClientEfl::localizedStringsURL): + +2012-08-28 Sheriff Bot <webkit.review.bot@gmail.com> + + Unreviewed, rolling out r126914. + http://trac.webkit.org/changeset/126914 + https://bugs.webkit.org/show_bug.cgi?id=95239 + + it breaks everything and fixes nothing (Requested by pizlo on + #webkit). + + * WebCoreSupport/DumpRenderTreeSupportEfl.cpp: + (DumpRenderTreeSupportEfl::evaluateScriptInIsolatedWorld): + * WebCoreSupport/PlatformStrategiesEfl.cpp: + (PlatformStrategiesEfl::getPluginInfo): + * ewk/ewk_intent.cpp: + (ewk_intent_extra_get): + +2012-08-28 Caio Marcelo de Oliveira Filho <caio.oliveira@openbossa.org> + + Rename first/second to key/value in HashMap iterators + https://bugs.webkit.org/show_bug.cgi?id=82784 + + Reviewed by Eric Seidel. + + * WebCoreSupport/DumpRenderTreeSupportEfl.cpp: + (DumpRenderTreeSupportEfl::evaluateScriptInIsolatedWorld): + * WebCoreSupport/PlatformStrategiesEfl.cpp: + (PlatformStrategiesEfl::getPluginInfo): + * ewk/ewk_intent.cpp: + (ewk_intent_extra_get): + +2012-08-28 Christophe Dumez <christophe.dumez@intel.com> + + [EFL] WebKit EFL updates view on HTTP 204 response + https://bugs.webkit.org/show_bug.cgi?id=95199 + + Reviewed by Kenneth Rohde Christiansen. + + Ignore HTTP responses which have status code equal + to 204 (No Content). + + * WebCoreSupport/FrameLoaderClientEfl.cpp: + (WebCore::FrameLoaderClientEfl::dispatchDecidePolicyForResponse): + +2012-08-28 Thiago Marcos P. Santos <thiago.santos@intel.com> + + [EFL] Rename knob images to thumb on the default theme + https://bugs.webkit.org/show_bug.cgi?id=95186 + + Reviewed by Kenneth Rohde Christiansen. + + WebKit reefers to these handles as thumb instead of knob. Let's make + it coherent on EFL. + + * DefaultTheme/widget/slider/slider.edc: + * DefaultTheme/widget/slider/slider_thumb_h.png: Renamed from Source/WebKit/efl/DefaultTheme/widget/slider/slider_knob_h.png. + * DefaultTheme/widget/slider/slider_thumb_press_h.png: Renamed from Source/WebKit/efl/DefaultTheme/widget/slider/slider_knob_press_h.png. + * DefaultTheme/widget/slider/slider_thumb_press_v.png: Renamed from Source/WebKit/efl/DefaultTheme/widget/slider/slider_knob_press_v.png. + * DefaultTheme/widget/slider/slider_thumb_v.png: Renamed from Source/WebKit/efl/DefaultTheme/widget/slider/slider_knob_v.png. + +2012-08-28 Thiago Marcos P. Santos <thiago.santos@intel.com> + + [EFL] Range input ignores padding + https://bugs.webkit.org/show_bug.cgi?id=94595 + + Reviewed by Kenneth Rohde Christiansen. + + Updated default theme to paint the slider thumb in a different step. + This was done by splitting the thumb into a separated group. + + * DefaultTheme/widget/slider/slider.edc: + +2012-08-27 Sheriff Bot <webkit.review.bot@gmail.com> + + Unreviewed, rolling out r126836. + http://trac.webkit.org/changeset/126836 + https://bugs.webkit.org/show_bug.cgi?id=95163 + + Broke all Apple ports, EFL, and Qt. (Requested by tkent on + #webkit). + + * WebCoreSupport/DumpRenderTreeSupportEfl.cpp: + (DumpRenderTreeSupportEfl::evaluateScriptInIsolatedWorld): + * WebCoreSupport/PlatformStrategiesEfl.cpp: + (PlatformStrategiesEfl::getPluginInfo): + * ewk/ewk_intent.cpp: + (ewk_intent_extra_get): + +2012-08-27 Caio Marcelo de Oliveira Filho <caio.oliveira@openbossa.org> + + Rename first/second to key/value in HashMap iterators + https://bugs.webkit.org/show_bug.cgi?id=82784 + + Reviewed by Eric Seidel. + + * WebCoreSupport/DumpRenderTreeSupportEfl.cpp: + (DumpRenderTreeSupportEfl::evaluateScriptInIsolatedWorld): + * WebCoreSupport/PlatformStrategiesEfl.cpp: + (PlatformStrategiesEfl::getPluginInfo): + * ewk/ewk_intent.cpp: + (ewk_intent_extra_get): + +2012-08-27 Mikhail Pozdnyakov <mikhail.pozdnyakov@intel.com> + + Rename RegisterProtocolHandler API to NavigatorContentUtils + https://bugs.webkit.org/show_bug.cgi?id=94920 + + Reviewed by Adam Barth. + + Renaming whatever RegisterProtocolHandler-prefixed to NavigatorContentUtils-prefixed. + RegisterProtocolHandlerClientEfl is renamed to NavigatorContentUtilsClientEfl. + + * WebCoreSupport/NavigatorContentUtilsClientEfl.cpp: Renamed from Source/WebKit/efl/WebCoreSupport/RegisterProtocolHandlerClientEfl.cpp. + (WebCore): + (WebCore::customHandlerDataCreate): + (WebCore::customHandlerDataDelete): + (WebCore::NavigatorContentUtilsClientEfl::create): + (WebCore::NavigatorContentUtilsClientEfl::NavigatorContentUtilsClientEfl): + (WebCore::NavigatorContentUtilsClientEfl::registerProtocolHandler): + (WebCore::NavigatorContentUtilsClientEfl::isProtocolHandlerRegistered): + (WebCore::NavigatorContentUtilsClientEfl::unregisterProtocolHandler): + * WebCoreSupport/NavigatorContentUtilsClientEfl.h: Renamed from Source/WebKit/efl/WebCoreSupport/RegisterProtocolHandlerClientEfl.h. + (NavigatorContentUtilsClientEfl): + (WebCore::NavigatorContentUtilsClientEfl::~NavigatorContentUtilsClientEfl): + * ewk/ewk_custom_handler.cpp: + * ewk/ewk_custom_handler_private.h: + * ewk/ewk_view.cpp: + (_Ewk_View_Private_Data): + (_ewk_view_priv_new): + 2012-08-23 Ryuan Choi <ryuan.choi@samsung.com> [EFL] Remove ewk_tile_matrix_tile_update. diff --git a/Source/WebKit/efl/DefaultTheme/default.edc b/Source/WebKit/efl/DefaultTheme/default.edc index 1ecd0442b..e234839d7 100644 --- a/Source/WebKit/efl/DefaultTheme/default.edc +++ b/Source/WebKit/efl/DefaultTheme/default.edc @@ -61,5 +61,6 @@ collections { #include "widget/mediacontrol/mutebutton/mute_button.edc" #include "widget/mediacontrol/seekforwardbutton/seekforward_button.edc" #include "widget/mediacontrol/seekbackwardbutton/seekbackward_button.edc" +#include "widget/mediacontrol/togglecaptionsbutton/toggle_captions_button.edc" #include "widget/mediacontrol/fullscreenbutton/fullscreen_button.edc" } diff --git a/Source/WebKit/efl/DefaultTheme/widget/mediacontrol/togglecaptionsbutton/closedcaption.png b/Source/WebKit/efl/DefaultTheme/widget/mediacontrol/togglecaptionsbutton/closedcaption.png Binary files differnew file mode 100644 index 000000000..2015749e8 --- /dev/null +++ b/Source/WebKit/efl/DefaultTheme/widget/mediacontrol/togglecaptionsbutton/closedcaption.png diff --git a/Source/WebKit/efl/DefaultTheme/widget/mediacontrol/togglecaptionsbutton/closedcaption_disabled.png b/Source/WebKit/efl/DefaultTheme/widget/mediacontrol/togglecaptionsbutton/closedcaption_disabled.png Binary files differnew file mode 100644 index 000000000..a04b29d7e --- /dev/null +++ b/Source/WebKit/efl/DefaultTheme/widget/mediacontrol/togglecaptionsbutton/closedcaption_disabled.png diff --git a/Source/WebKit/efl/DefaultTheme/widget/mediacontrol/togglecaptionsbutton/toggle_captions_button.edc b/Source/WebKit/efl/DefaultTheme/widget/mediacontrol/togglecaptionsbutton/toggle_captions_button.edc new file mode 100644 index 000000000..71cf39d12 --- /dev/null +++ b/Source/WebKit/efl/DefaultTheme/widget/mediacontrol/togglecaptionsbutton/toggle_captions_button.edc @@ -0,0 +1,58 @@ +/* + Copyright (C) 2012 Intel Corporation + + This file is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This file is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + + group { + name: "webkit/widget/mediacontrol/toggle_captions_button"; + + images { + image: "widget/mediacontrol/togglecaptionsbutton/closedcaption.png" COMP; + image: "widget/mediacontrol/togglecaptionsbutton/closedcaption_disabled.png" COMP; + } + + parts { + part { + name: "toggle_captions_button"; + type: IMAGE; + description { state: "default" 0.0; + min: 25 25; + } + description { state: "show_captions" 0.0; + inherit: "default" 0.0; + image.normal: "widget/mediacontrol/togglecaptionsbutton/closedcaption.png"; + } + description { state: "hide_captions" 0.0; + inherit: "default" 0.0; + image.normal: "widget/mediacontrol/togglecaptionsbutton/closedcaption_disabled.png"; + } + } + } + + programs { + program { + signal: "show_captions"; + action: STATE_SET "show_captions" 0.0; + target: "toggle_captions_button"; + } + program { + signal: "hide_captions"; + action: STATE_SET "hide_captions" 0.0; + target: "toggle_captions_button"; + } + } + } diff --git a/Source/WebKit/efl/DefaultTheme/widget/slider/slider.edc b/Source/WebKit/efl/DefaultTheme/widget/slider/slider.edc index 9e339e543..176740bc1 100644 --- a/Source/WebKit/efl/DefaultTheme/widget/slider/slider.edc +++ b/Source/WebKit/efl/DefaultTheme/widget/slider/slider.edc @@ -2,6 +2,7 @@ Copyright (C) 2008,2009 INdT - Instituto Nokia de Tecnologia Copyright (C) 2009,2010 ProFUSION embedded systems Copyright (C) 2009,2010 Samsung Electronics + Copyright (c) 2012 Intel Corporation. All rights reserved. This file is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public @@ -20,472 +21,404 @@ */ group { - name: "webkit/widget/slider/vertical"; - - min: 11 0; /* if > 0, this is the minimum size that will be allocated. - * If wants to draw on top, just overflow usign edje's rel1/rel2 - */ - max: 11 999999; - - images { - image: "widget/slider/slider_v.png" COMP; - image: "widget/slider/slider_knob_v.png" COMP; - image: "widget/slider/slider_knob_press_v.png" COMP; - image: "widget/slider/slider_fill_v.png" COMP; - } - - script { - public isEnabled; - public isPressed; - public isChecked; - public isFocused; - public isHovered; - - public show() { - - if (get_int(isEnabled) == 1) { - set_state(PART:"img.knob", "default", 0.0); - if (get_int(isFocused) == 1) { - set_state(PART:"img.knob", "pressed", 0.0); - if (get_int(isPressed) == 1) - set_state(PART:"img.knob", "pressed", 0.0); - } - else if (get_int(isHovered) == 1) { - set_state(PART:"img.knob", "pressed", 0.0); - if (get_int(isPressed) == 1) - set_state(PART:"img.knob", "pressed", 0.0); - } - } - else - set_state(PART:"img.knob", "default", 0.0); - } - - public message(Msg_Type:type, id, ...) { - if ((id == 0) && (type == MSG_FLOAT_SET)) { - new Float:vy, Float:sy; - - vy = getfarg(2); - sy = getfarg(3); - - if (vy >= 0.0) { - set_drag_size(PART:"img.knob", 1.0, sy); - set_drag(PART:"img.knob", 0.0, vy); - run_program(PROGRAM:"show"); - } else - run_program(PROGRAM:"hide"); - } - } - - public update_drag_pos() { - new Float:x, Float:y; - get_drag(PART:"img.knob", x, y); - send_message(MSG_FLOAT, 1, y); - } - } - - parts { - part { - name: "rect.base"; - type: RECT; - description { - min: 11 29; - max: 11 999999; - state: "default" 0.0; - color: 255 255 255 0; + name: "webkit/widget/slider/thumb_vertical"; + + min: 11 29; + max: 11 29; + + images { + image: "widget/slider/slider_thumb_v.png" COMP; + image: "widget/slider/slider_thumb_press_v.png" COMP; + } + + script { + public isEnabled; + public isPressed; + public isFocused; + public isHovered; + + public show() { + if (get_int(isEnabled) == 1) { + set_state(PART:"img.thumb", "default", 0.0); + if (get_int(isFocused) == 1) { + set_state(PART:"img.thumb", "pressed", 0.0); + if (get_int(isPressed) == 1) + set_state(PART:"img.thumb", "pressed", 0.0); + } else if (get_int(isHovered) == 1) { + set_state(PART:"img.thumb", "pressed", 0.0); + if (get_int(isPressed) == 1) + set_state(PART:"img.thumb", "pressed", 0.0); } - } - part { - name: "rect.clipper"; - type: RECT; - description { - state: "default" 0.0; - color: 255 255 255 255; - } - description { - state: "hidden" 0.0; - color: 255 255 255 128; + } else + set_state(PART:"img.thumb", "default", 0.0); + } + } + + parts { + part { + name: "img.thumb"; + type: IMAGE; + mouse_events: 0; + description { + state: "default" 0.0; + min: 11 29; + image { + normal: "widget/slider/slider_thumb_v.png"; + border: 6 6 0 0; } } - - part { - name: "img.slider"; - type: IMAGE; - mouse_events: 0; - clip_to: "rect.clipper"; - description { - state: "default" 0.0; - min: 5 29; - max: 5 999999; - rel1.to: "rect.base"; - rel2.to: "rect.base"; - image { - normal: "widget/slider/slider_v.png"; - border: 0 0 5 5; - } - } + description { + state: "pressed" 0.0; + inherit: "default" 0.0; + image.normal: "widget/slider/slider_thumb_press_v.png"; } - - part { - name: "img.slider_fill"; - type: IMAGE; - mouse_events: 0; - clip_to: "rect.clipper"; - description { - state: "default" 0.0; - min: 5 29; - max: 5 999999; - rel1.to: "img.knob"; - rel2.to: "rect.base"; - align: 0.5 0.5; - image { - normal: "widget/slider/slider_fill_v.png"; - border: 0 0 5 5; - } - } + } + } + + programs { + program { + name: "enabled"; + signal: "enabled"; + script { + set_int(isEnabled, 1); + show(); + } + } + + program { + name: "pressed"; + signal: "pressed"; + script { + set_int(isPressed, 1); + show(); + } + } + + program { + name: "focused"; + signal: "focused"; + script { + set_int(isFocused, 1); + show(); + } + } + + program { + name: "hovered"; + signal: "hovered"; + script { + set_int(isHovered, 1); + show(); + } + } + + program { + name: "reset"; + signal: "reset"; + script { + set_int(isEnabled, 0); + set_int(isPressed, 0); + set_int(isFocused, 0); + set_int(isHovered, 0); + show(); } + } + } +} - part { - name: "img.knob"; - type: IMAGE; - mouse_events: 1; - clip_to: "rect.clipper"; - dragable { - x: 0 0 0; - y: 1 1 1; - confine: "rect.base"; - } - description { - state: "default" 0.0; - min: 11 29; - align: 0.5 0.5; - image { - normal: "widget/slider/slider_knob_v.png"; - border: 0 0 6 6; - } - } - description { - state: "pressed" 0.0; - inherit: "default" 0.0; - image.normal: "widget/slider/slider_knob_press_v.png"; +group { + name: "webkit/widget/slider/vertical"; + + min: 11 0; /* if > 0, this is the minimum size that will be allocated. + * If wants to draw on top, just overflow usign edje's rel1/rel2 + */ + max: 11 999999; + + script { + public message(Msg_Type:type, id, ...) { + if ((id == 0) && (type == MSG_FLOAT_SET)) { + new Float:y, Float:sy; + y = getfarg(2); + sy = getfarg(3); + + if (sy >= 0.0) { + set_drag(PART:"img.slider_fill", 1.0, y); + set_drag_size(PART:"img.slider_fill", 1.0, sy); } } - } - programs { - program { - name: "load"; - signal: "load"; - action: STATE_SET "hidden" 0.0; - target: "rect.clipper"; - } - program { - name: "hide"; - action: STATE_SET "hidden" 0.0; - transition: ACCELERATE 0.5; - target: "rect.clipper"; - } - - program { - name: "show"; - action: STATE_SET "default" 0.0; - target: "rect.clipper"; - } - - program { - name: "dragged"; - signal: "drag"; - source: "img.knob"; - script { - update_drag_pos(); - } - } - - program { - name: "enabled"; - signal: "enabled"; - script { - set_int(isEnabled, 1); - show(); - } - } - program { - name: "pressed"; - signal: "pressed"; - script { - set_int(isPressed, 1); - show(); - } - } - program { - name: "checked"; - signal: "checked"; - script { - set_int(isChecked, 1); - show(); - } - } - program { - name: "focused"; - signal: "focused"; - script { - set_int(isFocused, 1); - show(); - } - } - program { - name: "hovered"; - signal: "hovered"; - script { - set_int(isHovered, 1); - show(); - } - } - program { - name: "reset"; - signal: "reset"; - script { - set_int(isEnabled, 0); - set_int(isPressed, 0); - set_int(isChecked, 0); - set_int(isFocused, 0); - set_int(isHovered, 0); - show(); + } + } + + images { + image: "widget/slider/slider_v.png" COMP; + image: "widget/slider/slider_fill_v.png" COMP; + } + + parts { + part { + name: "rect.base"; + type: RECT; + description { + min: 11 29; + max: 11 999999; + state: "default" 0.0; + color: 255 255 255 0; + } + } + + part { + name: "rect.clipper"; + type: RECT; + description { + state: "default" 0.0; + color: 255 255 255 255; + } + description { + state: "hidden" 0.0; + color: 255 255 255 128; + } + } + + part { + name: "img.slider"; + type: IMAGE; + mouse_events: 0; + clip_to: "rect.clipper"; + description { + state: "default" 0.0; + min: 5 29; + max: 5 999999; + rel1.to: "rect.base"; + rel2.to: "rect.base"; + image { + normal: "widget/slider/slider_v.png"; + border: 0 0 5 5; } } - } + } + + part { + name: "img.slider_fill"; + type: IMAGE; + mouse_events: 0; + clip_to: "rect.clipper"; + dragable { + x: 0 0 0; + y: 1 1 0; + confine: "rect.base"; + } + description { + state: "default" 0.0; + min: 5 0; + max: 5 999999; + align: 0.5 0.5; + image { + normal: "widget/slider/slider_fill_v.png"; + border: 0 0 5 5; + } + } + } + } } group { - name: "webkit/widget/slider/horizontal"; - - min: 0 11; /* if > 0, this is the minimum size that will be allocated. - * If wants to draw on top, just overflow usign edje's rel1/rel2 - */ - max: 999999 11; - - images { - image: "widget/slider/slider_h.png" COMP; - image: "widget/slider/slider_knob_h.png" COMP; - image: "widget/slider/slider_knob_press_h.png" COMP; - image: "widget/slider/slider_fill_h.png" COMP; - } - - script { - public isEnabled; - public isPressed; - public isChecked; - public isFocused; - public isHovered; - - public show() { - - if (get_int(isEnabled) == 1) { - set_state(PART:"img.knob", "default", 0.0); - if (get_int(isFocused) == 1) { - set_state(PART:"img.knob", "pressed", 0.0); - if (get_int(isPressed) == 1) - set_state(PART:"img.knob", "pressed", 0.0); - } - else if (get_int(isHovered) == 1) { - set_state(PART:"img.knob", "pressed", 0.0); - if (get_int(isPressed) == 1) - set_state(PART:"img.knob", "pressed", 0.0); - } - } - else - set_state(PART:"img.knob", "default", 0.0); - } - - public message(Msg_Type:type, id, ...) { - if ((id == 0) && (type == MSG_FLOAT_SET)) { - new Float:vx, Float:sx; - - vx = getfarg(2); - sx = getfarg(3); - - if (vx >= 0.0) { - set_drag_size(PART:"img.knob", sx, 1.0); - set_drag(PART:"img.knob", vx, 0.0); - run_program(PROGRAM:"show"); - } else - run_program(PROGRAM:"hide"); - } - } - - public update_drag_pos() { - new Float:x, Float:y; - get_drag(PART:"img.knob", x, y); - send_message(MSG_FLOAT, 1, x); - } - } - - parts { - part { - name: "rect.base"; - type: RECT; - description { - state: "default" 0.0; - min: 29 11; - max: 999999 11; - color: 255 255 255 0; + name: "webkit/widget/slider/thumb_horizontal"; + + min: 29 11; + max: 29 11; + + images { + image: "widget/slider/slider_thumb_h.png" COMP; + image: "widget/slider/slider_thumb_press_h.png" COMP; + } + + script { + public isEnabled; + public isPressed; + public isFocused; + public isHovered; + + public show() { + if (get_int(isEnabled) == 1) { + set_state(PART:"img.thumb", "default", 0.0); + if (get_int(isFocused) == 1) { + set_state(PART:"img.thumb", "pressed", 0.0); + if (get_int(isPressed) == 1) + set_state(PART:"img.thumb", "pressed", 0.0); + } else if (get_int(isHovered) == 1) { + set_state(PART:"img.thumb", "pressed", 0.0); + if (get_int(isPressed) == 1) + set_state(PART:"img.thumb", "pressed", 0.0); } - } - part { - name: "rect.clipper"; - type: RECT; - description { - state: "default" 0.0; - color: 255 255 255 255; - } - description { - state: "hidden" 0.0; - color: 255 255 255 128; + } else + set_state(PART:"img.thumb", "default", 0.0); + } + } + + parts { + part { + name: "img.thumb"; + type: IMAGE; + mouse_events: 0; + description { + state: "default" 0.0; + min: 29 11; + image { + normal: "widget/slider/slider_thumb_h.png"; + border: 6 6 0 0; } } - - part { - name: "img.slider"; - type: IMAGE; - mouse_events: 0; - clip_to: "rect.clipper"; - description { - state: "default" 0.0; - min: 29 5; - max: 999999 5; - rel1.to: "rect.base"; - rel2.to: "rect.base"; - align: 0.5 0.5; - image { - normal: "widget/slider/slider_h.png"; - border: 5 5 0 0; - } - } + description { + state: "pressed" 0.0; + inherit: "default" 0.0; + image.normal: "widget/slider/slider_thumb_press_h.png"; } - - part { - name: "img.slider_fill"; - type: IMAGE; - mouse_events: 0; - clip_to: "rect.clipper"; - description { - state: "default" 0.0; - min: 29 5; - max: 999999 5; - rel1.to: "rect.base"; - rel2.to: "img.knob"; - align: 0.5 0.5; - image { - normal: "widget/slider/slider_fill_h.png"; - border: 5 5 0 0; - } - } + } + } + + programs { + program { + name: "enabled"; + signal: "enabled"; + script { + set_int(isEnabled, 1); + show(); + } + } + + program { + name: "pressed"; + signal: "pressed"; + script { + set_int(isPressed, 1); + show(); + } + } + + program { + name: "focused"; + signal: "focused"; + script { + set_int(isFocused, 1); + show(); + } + } + + program { + name: "hovered"; + signal: "hovered"; + script { + set_int(isHovered, 1); + show(); + } + } + + program { + name: "reset"; + signal: "reset"; + script { + set_int(isEnabled, 0); + set_int(isPressed, 0); + set_int(isFocused, 0); + set_int(isHovered, 0); + show(); } + } + } +} - part { - name: "img.knob"; - type: IMAGE; - mouse_events: 1; - clip_to: "rect.clipper"; - dragable { - x: 1 1 0; - y: 0 0 0; - confine: "rect.base"; - } - description { - state: "default" 0.0; - min: 29 11; - align: 0.5 0.5; - image { - normal: "widget/slider/slider_knob_h.png"; - border: 6 6 0 0; - } +group { + name: "webkit/widget/slider/horizontal"; + + min: 0 11; /* if > 0, this is the minimum size that will be allocated. + * If wants to draw on top, just overflow usign edje's rel1/rel2 + */ + max: 999999 11; + + images { + image: "widget/slider/slider_h.png" COMP; + image: "widget/slider/slider_fill_h.png" COMP; + } + + script { + public message(Msg_Type:type, id, ...) { + if ((id == 0) && (type == MSG_FLOAT_SET)) { + new Float:x, Float:sx; + x = getfarg(2); + sx = getfarg(3); + + if (sx >= 0.0) { + set_drag(PART:"img.slider_fill", x, 0.0); + set_drag_size(PART:"img.slider_fill", sx, 1.0); } - description { - state: "pressed" 0.0; - inherit: "default" 0.0; - image.normal: "widget/slider/slider_knob_press_h.png"; + } + } + } + + parts { + part { + name: "rect.base"; + type: RECT; + description { + state: "default" 0.0; + min: 29 11; + max: 999999 11; + color: 255 255 255 0; + } + } + + part { + name: "rect.clipper"; + type: RECT; + description { + state: "default" 0.0; + color: 255 255 255 255; + } + description { + state: "hidden" 0.0; + color: 255 255 255 128; + } + } + + part { + name: "img.slider"; + type: IMAGE; + mouse_events: 0; + clip_to: "rect.clipper"; + description { + state: "default" 0.0; + min: 29 5; + max: 999999 5; + rel1.to: "rect.base"; + rel2.to: "rect.base"; + align: 0.5 0.5; + image { + normal: "widget/slider/slider_h.png"; + border: 5 5 0 0; } } - } - programs { - program { - name: "load"; - signal: "load"; - action: STATE_SET "hidden" 0.0; - target: "rect.clipper"; - } - program { - name: "hide"; - action: STATE_SET "hidden" 0.0; - transition: ACCELERATE 0.5; - target: "rect.clipper"; - } - - program { - name: "show"; - action: STATE_SET "default" 0.0; - target: "rect.clipper"; - } - - program { - name: "dragged"; - signal: "drag"; - source: "img.knob"; - script { - update_drag_pos(); - } - } - - program { - name: "enabled"; - signal: "enabled"; - script { - set_int(isEnabled, 1); - show(); - } - } - program { - name: "pressed"; - signal: "pressed"; - script { - set_int(isPressed, 1); - show(); - } - } - program { - name: "checked"; - signal: "checked"; - script { - set_int(isChecked, 1); - show(); - } - } - program { - name: "focused"; - signal: "focused"; - script { - set_int(isFocused, 1); - show(); - } - } - program { - name: "hovered"; - signal: "hovered"; - script { - set_int(isHovered, 1); - show(); - } - } - program { - name: "reset"; - signal: "reset"; - script { - set_int(isEnabled, 0); - set_int(isPressed, 0); - set_int(isChecked, 0); - set_int(isFocused, 0); - set_int(isHovered, 0); - show(); + } + + part { + name: "img.slider_fill"; + type: IMAGE; + mouse_events: 0; + clip_to: "rect.clipper"; + dragable { + x: 1 1 0; + y: 0 0 0; + confine: "rect.base"; + } + description { + state: "default" 0.0; + min: 0 5; + max: 999999 5; + align: 0.5 0.5; + image { + normal: "widget/slider/slider_fill_h.png"; + border: 5 5 0 0; } - } - } + } + } + } } diff --git a/Source/WebKit/efl/DefaultTheme/widget/slider/slider_knob_h.png b/Source/WebKit/efl/DefaultTheme/widget/slider/slider_thumb_h.png Binary files differindex 22454af72..22454af72 100644 --- a/Source/WebKit/efl/DefaultTheme/widget/slider/slider_knob_h.png +++ b/Source/WebKit/efl/DefaultTheme/widget/slider/slider_thumb_h.png diff --git a/Source/WebKit/efl/DefaultTheme/widget/slider/slider_knob_press_h.png b/Source/WebKit/efl/DefaultTheme/widget/slider/slider_thumb_press_h.png Binary files differindex 1421cd837..1421cd837 100644 --- a/Source/WebKit/efl/DefaultTheme/widget/slider/slider_knob_press_h.png +++ b/Source/WebKit/efl/DefaultTheme/widget/slider/slider_thumb_press_h.png diff --git a/Source/WebKit/efl/DefaultTheme/widget/slider/slider_knob_press_v.png b/Source/WebKit/efl/DefaultTheme/widget/slider/slider_thumb_press_v.png Binary files differindex 293813cea..293813cea 100644 --- a/Source/WebKit/efl/DefaultTheme/widget/slider/slider_knob_press_v.png +++ b/Source/WebKit/efl/DefaultTheme/widget/slider/slider_thumb_press_v.png diff --git a/Source/WebKit/efl/DefaultTheme/widget/slider/slider_knob_v.png b/Source/WebKit/efl/DefaultTheme/widget/slider/slider_thumb_v.png Binary files differindex 051f3c33c..051f3c33c 100644 --- a/Source/WebKit/efl/DefaultTheme/widget/slider/slider_knob_v.png +++ b/Source/WebKit/efl/DefaultTheme/widget/slider/slider_thumb_v.png diff --git a/Source/WebKit/efl/WebCoreSupport/BatteryClientEfl.cpp b/Source/WebKit/efl/WebCoreSupport/BatteryClientEfl.cpp index 9de607af5..ca2025e76 100644 --- a/Source/WebKit/efl/WebCoreSupport/BatteryClientEfl.cpp +++ b/Source/WebKit/efl/WebCoreSupport/BatteryClientEfl.cpp @@ -32,6 +32,11 @@ BatteryClientEfl::BatteryClientEfl(Evas_Object* view) { } +BatteryClientEfl::~BatteryClientEfl() +{ + m_provider.stopUpdating(); +} + void BatteryClientEfl::startUpdating() { m_provider.startUpdating(); diff --git a/Source/WebKit/efl/WebCoreSupport/BatteryClientEfl.h b/Source/WebKit/efl/WebCoreSupport/BatteryClientEfl.h index f633aadf1..d11acc9ca 100644 --- a/Source/WebKit/efl/WebCoreSupport/BatteryClientEfl.h +++ b/Source/WebKit/efl/WebCoreSupport/BatteryClientEfl.h @@ -36,7 +36,7 @@ class BatteryController; class BatteryClientEfl : public WebCore::BatteryClient, public WebCore::BatteryProviderEflClient { public: explicit BatteryClientEfl(Evas_Object* view); - virtual ~BatteryClientEfl() { } + virtual ~BatteryClientEfl(); // BatteryClient interface. virtual void startUpdating(); diff --git a/Source/WebKit/efl/WebCoreSupport/ChromeClientEfl.cpp b/Source/WebKit/efl/WebCoreSupport/ChromeClientEfl.cpp index 3b327ed78..9d5cde5a3 100644 --- a/Source/WebKit/efl/WebCoreSupport/ChromeClientEfl.cpp +++ b/Source/WebKit/efl/WebCoreSupport/ChromeClientEfl.cpp @@ -46,7 +46,6 @@ #include "KURL.h" #include "NavigationAction.h" #include "NotImplemented.h" -#include "PlatformString.h" #include "PopupMenuEfl.h" #include "SearchPopupMenuEfl.h" #include "SecurityOrigin.h" @@ -61,6 +60,7 @@ #include <Ecore_Evas.h> #include <Evas.h> #include <wtf/text/CString.h> +#include <wtf/text/WTFString.h> #if ENABLE(NOTIFICATIONS) || ENABLE(LEGACY_NOTIFICATIONS) #include "NotificationPresenterClientEfl.h" diff --git a/Source/WebKit/efl/WebCoreSupport/ColorChooserEfl.cpp b/Source/WebKit/efl/WebCoreSupport/ColorChooserEfl.cpp new file mode 100644 index 000000000..8003be1e5 --- /dev/null +++ b/Source/WebKit/efl/WebCoreSupport/ColorChooserEfl.cpp @@ -0,0 +1,61 @@ +/* + * Copyright (c) 2012, Intel Corporation + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * * Neither the name of Intel Corporation nor the names of its contributors may + * be used to endorse or promote products derived from this software without + * specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#include "config.h" + +#if ENABLE(INPUT_TYPE_COLOR) + +#include "ColorChooserEfl.h" + +#include "ChromeClientEfl.h" + +namespace WebCore { + +ColorChooserEfl::ColorChooserEfl(ChromeClientEfl* chromeClient) + : m_chromeClient(chromeClient) +{ + ASSERT(m_chromeClient); +} + +ColorChooserEfl::~ColorChooserEfl() +{ +} + +void ColorChooserEfl::setSelectedColor(const Color& color) +{ + m_chromeClient->updateColorChooser(color); +} + +void ColorChooserEfl::endChooser() +{ + m_chromeClient->removeColorChooser(); +} + +} + +#endif // ENABLE(INPUT_TYPE_COLOR) diff --git a/Source/WebKit/efl/WebCoreSupport/ColorChooserEfl.h b/Source/WebKit/efl/WebCoreSupport/ColorChooserEfl.h new file mode 100644 index 000000000..57ee37d5b --- /dev/null +++ b/Source/WebKit/efl/WebCoreSupport/ColorChooserEfl.h @@ -0,0 +1,56 @@ +/* + * Copyright (c) 2012, Intel Corporation + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * * Neither the name of Intel Corporation nor the names of its contributors may + * be used to endorse or promote products derived from this software without + * specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef ColorChooserEfl_h +#define ColorChooserEfl_h + +#include "Color.h" +#include "ColorChooser.h" + +#include <Evas.h> + +namespace WebCore { + +class ChromeClientEfl; + +class ColorChooserEfl : public ColorChooser { +public: + explicit ColorChooserEfl(ChromeClientEfl*); + ~ColorChooserEfl(); + + // ColorChooser implementation. + virtual void setSelectedColor(const Color&); + virtual void endChooser(); + +private: + ChromeClientEfl* m_chromeClient; +}; + +} + +#endif // ColorChooserEfl_h diff --git a/Source/WebKit/efl/WebCoreSupport/ContextMenuClientEfl.cpp b/Source/WebKit/efl/WebCoreSupport/ContextMenuClientEfl.cpp new file mode 100644 index 000000000..5f56e318a --- /dev/null +++ b/Source/WebKit/efl/WebCoreSupport/ContextMenuClientEfl.cpp @@ -0,0 +1,87 @@ +/* + * Copyright (C) 2008 Apple Computer, Inc. All rights reserved. + * Copyright (C) 2009 Igalia S.L. + * Copyright (C) 2010 ProFUSION embedded systems + * Copyright (C) 2012 Samsung Electronics + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY + * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#include "config.h" +#include "ContextMenuClientEfl.h" + +#include "ContextMenu.h" +#include "HitTestResult.h" +#include "KURL.h" +#include "NotImplemented.h" +#include <wtf/RefCounted.h> + +namespace WebCore { + +void ContextMenuClientEfl::contextMenuDestroyed() +{ + delete this; +} + +PlatformMenuDescription ContextMenuClientEfl::getCustomMenuFromDefaultItems(ContextMenu* menu) +{ + // warning: this transfers the ownership to the caller + return menu->releasePlatformDescription(); +} + +void ContextMenuClientEfl::contextMenuItemSelected(ContextMenuItem*, const ContextMenu*) +{ + notImplemented(); +} + +void ContextMenuClientEfl::downloadURL(const KURL&) +{ + notImplemented(); +} + +void ContextMenuClientEfl::lookUpInDictionary(Frame*) +{ + notImplemented(); +} + +void ContextMenuClientEfl::speak(const String&) +{ + notImplemented(); +} + +bool ContextMenuClientEfl::isSpeaking() +{ + notImplemented(); + return false; +} + +void ContextMenuClientEfl::stopSpeaking() +{ + notImplemented(); +} + +void ContextMenuClientEfl::searchWithGoogle(const Frame*) +{ + notImplemented(); +} + +} diff --git a/Source/WebKit/efl/WebCoreSupport/ContextMenuClientEfl.h b/Source/WebKit/efl/WebCoreSupport/ContextMenuClientEfl.h new file mode 100644 index 000000000..39a881d60 --- /dev/null +++ b/Source/WebKit/efl/WebCoreSupport/ContextMenuClientEfl.h @@ -0,0 +1,55 @@ +/* + * Copyright (C) 2008 Apple Computer, Inc. All rights reserved. + * Copyright (C) 2009 Igalia S.L. + * Copyright (C) 2010 ProFUSION embedded systems + * Copyright (C) 2012 Samsung Electronics + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY + * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef ContextMenuClientEfl_h +#define ContextMenuClientEfl_h + +#include "ContextMenuClient.h" + +#include <wtf/RefCounted.h> + +namespace WebCore { +class ContextMenu; + +class ContextMenuClientEfl : public ContextMenuClient { +public: + virtual void contextMenuDestroyed(); + + virtual PlatformMenuDescription getCustomMenuFromDefaultItems(ContextMenu*); + virtual void contextMenuItemSelected(ContextMenuItem*, const ContextMenu*); + + virtual void downloadURL(const KURL&); + virtual void lookUpInDictionary(Frame*); + virtual void speak(const String&); + virtual bool isSpeaking(); + virtual void stopSpeaking(); + virtual void searchWithGoogle(const Frame*); +}; +} + +#endif diff --git a/Source/WebKit/efl/WebCoreSupport/DumpRenderTreeSupportEfl.cpp b/Source/WebKit/efl/WebCoreSupport/DumpRenderTreeSupportEfl.cpp index 96a5791ee..020502327 100644 --- a/Source/WebKit/efl/WebCoreSupport/DumpRenderTreeSupportEfl.cpp +++ b/Source/WebKit/efl/WebCoreSupport/DumpRenderTreeSupportEfl.cpp @@ -61,12 +61,19 @@ #include <workers/WorkerThread.h> #include <wtf/HashMap.h> +#define DRT_SUPPORT_FRAME_GET_OR_RETURN(ewkFrame, frame, ...) \ + WebCore::Frame* frame = EWKPrivate::coreFrame(ewkFrame); \ + if (!frame) \ + return __VA_ARGS__; + +#define DRT_SUPPRT_PAGE_GET_OR_RETURN(ewkView, page, ...) \ + WebCore::Page* page = EWKPrivate::corePage(ewkView); \ + if (!page) \ + return __VA_ARGS__; + unsigned DumpRenderTreeSupportEfl::activeAnimationsCount(const Evas_Object* ewkFrame) { - WebCore::Frame* frame = EWKPrivate::coreFrame(ewkFrame); - - if (!frame) - return 0; + DRT_SUPPORT_FRAME_GET_OR_RETURN(ewkFrame, frame, 0); WebCore::AnimationController* animationController = frame->animation(); @@ -78,32 +85,28 @@ unsigned DumpRenderTreeSupportEfl::activeAnimationsCount(const Evas_Object* ewkF bool DumpRenderTreeSupportEfl::callShouldCloseOnWebView(Evas_Object* ewkFrame) { - WebCore::Frame* frame = EWKPrivate::coreFrame(ewkFrame); - - if (!frame) - return false; + DRT_SUPPORT_FRAME_GET_OR_RETURN(ewkFrame, frame, false); return frame->loader()->shouldClose(); } void DumpRenderTreeSupportEfl::clearFrameName(Evas_Object* ewkFrame) { - if (WebCore::Frame* frame = EWKPrivate::coreFrame(ewkFrame)) - frame->tree()->clearName(); + DRT_SUPPORT_FRAME_GET_OR_RETURN(ewkFrame, frame); + + frame->tree()->clearName(); } void DumpRenderTreeSupportEfl::clearOpener(Evas_Object* ewkFrame) { - if (WebCore::Frame* frame = EWKPrivate::coreFrame(ewkFrame)) - frame->loader()->setOpener(0); + DRT_SUPPORT_FRAME_GET_OR_RETURN(ewkFrame, frame); + + frame->loader()->setOpener(0); } bool DumpRenderTreeSupportEfl::elementDoesAutoCompleteForElementWithId(const Evas_Object* ewkFrame, const String& elementId) { - WebCore::Frame* frame = EWKPrivate::coreFrame(ewkFrame); - - if (!frame) - return false; + DRT_SUPPORT_FRAME_GET_OR_RETURN(ewkFrame, frame, false); WebCore::Document* document = frame->document(); ASSERT(document); @@ -118,10 +121,7 @@ bool DumpRenderTreeSupportEfl::elementDoesAutoCompleteForElementWithId(const Eva Eina_List* DumpRenderTreeSupportEfl::frameChildren(const Evas_Object* ewkFrame) { - WebCore::Frame* frame = EWKPrivate::coreFrame(ewkFrame); - - if (!frame) - return 0; + DRT_SUPPORT_FRAME_GET_OR_RETURN(ewkFrame, frame, 0); Eina_List* childFrames = 0; @@ -140,64 +140,24 @@ Eina_List* DumpRenderTreeSupportEfl::frameChildren(const Evas_Object* ewkFrame) WebCore::Frame* DumpRenderTreeSupportEfl::frameParent(const Evas_Object* ewkFrame) { - WebCore::Frame* frame = EWKPrivate::coreFrame(ewkFrame); - - if (!frame) - return 0; + DRT_SUPPORT_FRAME_GET_OR_RETURN(ewkFrame, frame, 0); return frame->tree()->parent(); } void DumpRenderTreeSupportEfl::layoutFrame(Evas_Object* ewkFrame) { - WebCore::Frame* frame = EWKPrivate::coreFrame(ewkFrame); - - if (!frame) - return; - - WebCore::FrameView* frameView = frame->view(); + DRT_SUPPORT_FRAME_GET_OR_RETURN(ewkFrame, frame); - if (!frameView) + if (!frame->view()) return; - frameView->layout(); -} - -int DumpRenderTreeSupportEfl::numberOfPages(const Evas_Object* ewkFrame, float pageWidth, float pageHeight) -{ - WebCore::Frame* frame = EWKPrivate::coreFrame(ewkFrame); - - if (!frame) - return 0; - - return WebCore::PrintContext::numberOfPages(frame, WebCore::FloatSize(pageWidth, pageHeight)); -} - -String DumpRenderTreeSupportEfl::pageSizeAndMarginsInPixels(const Evas_Object* ewkFrame, int pageNumber, int width, int height, int marginTop, int marginRight, int marginBottom, int marginLeft) -{ - WebCore::Frame* frame = EWKPrivate::coreFrame(ewkFrame); - - if (!frame) - return String(); - - return WebCore::PrintContext::pageSizeAndMarginsInPixels(frame, pageNumber, width, height, marginTop, marginRight, marginBottom, marginLeft); -} - -String DumpRenderTreeSupportEfl::pageProperty(const Evas_Object* ewkFrame, const char* propertyName, int pageNumber) -{ - WebCore::Frame* coreFrame = EWKPrivate::coreFrame(ewkFrame); - if (!coreFrame) - return String(); - - return WebCore::PrintContext::pageProperty(coreFrame, propertyName, pageNumber); + frame->view()->layout(); } bool DumpRenderTreeSupportEfl::pauseAnimation(Evas_Object* ewkFrame, const char* name, const char* elementId, double time) { - WebCore::Frame* frame = EWKPrivate::coreFrame(ewkFrame); - - if (!frame) - return false; + DRT_SUPPORT_FRAME_GET_OR_RETURN(ewkFrame, frame, false); WebCore::Element* element = frame->document()->getElementById(elementId); @@ -209,10 +169,7 @@ bool DumpRenderTreeSupportEfl::pauseAnimation(Evas_Object* ewkFrame, const char* bool DumpRenderTreeSupportEfl::pauseTransition(Evas_Object* ewkFrame, const char* name, const char* elementId, double time) { - WebCore::Frame* frame = EWKPrivate::coreFrame(ewkFrame); - - if (!frame) - return false; + DRT_SUPPORT_FRAME_GET_OR_RETURN(ewkFrame, frame, false); WebCore::Element* element = frame->document()->getElementById(elementId); @@ -224,18 +181,14 @@ bool DumpRenderTreeSupportEfl::pauseTransition(Evas_Object* ewkFrame, const char unsigned DumpRenderTreeSupportEfl::pendingUnloadEventCount(const Evas_Object* ewkFrame) { - if (WebCore::Frame* frame = EWKPrivate::coreFrame(ewkFrame)) - return frame->document()->domWindow()->pendingUnloadEventListeners(); + DRT_SUPPORT_FRAME_GET_OR_RETURN(ewkFrame, frame, 0); - return 0; + return frame->document()->domWindow()->pendingUnloadEventListeners(); } String DumpRenderTreeSupportEfl::renderTreeDump(Evas_Object* ewkFrame) { - WebCore::Frame* frame = EWKPrivate::coreFrame(ewkFrame); - - if (!frame) - return String(); + DRT_SUPPORT_FRAME_GET_OR_RETURN(ewkFrame, frame, String()); WebCore::FrameView *frameView = frame->view(); @@ -247,10 +200,7 @@ String DumpRenderTreeSupportEfl::renderTreeDump(Evas_Object* ewkFrame) String DumpRenderTreeSupportEfl::responseMimeType(const Evas_Object* ewkFrame) { - WebCore::Frame* frame = EWKPrivate::coreFrame(ewkFrame); - - if (!frame) - return String(); + DRT_SUPPORT_FRAME_GET_OR_RETURN(ewkFrame, frame, String()); WebCore::DocumentLoader *documentLoader = frame->loader()->documentLoader(); @@ -262,10 +212,7 @@ String DumpRenderTreeSupportEfl::responseMimeType(const Evas_Object* ewkFrame) WebCore::IntRect DumpRenderTreeSupportEfl::selectionRectangle(const Evas_Object* ewkFrame) { - WebCore::Frame* frame = EWKPrivate::coreFrame(ewkFrame); - - if (!frame) - return WebCore::IntRect(); + DRT_SUPPORT_FRAME_GET_OR_RETURN(ewkFrame, frame, WebCore::IntRect()); return enclosingIntRect(frame->selection()->bounds()); } @@ -273,10 +220,7 @@ WebCore::IntRect DumpRenderTreeSupportEfl::selectionRectangle(const Evas_Object* // Compare with "WebKit/Tools/DumpRenderTree/mac/FrameLoadDelegate.mm String DumpRenderTreeSupportEfl::suitableDRTFrameName(const Evas_Object* ewkFrame) { - WebCore::Frame* frame = EWKPrivate::coreFrame(ewkFrame); - - if (!frame) - return String(); + DRT_SUPPORT_FRAME_GET_OR_RETURN(ewkFrame, frame, String()); const String frameName(ewk_frame_name_get(ewkFrame)); @@ -321,28 +265,28 @@ void DumpRenderTreeSupportEfl::setAutofilled(JSContextRef context, JSValueRef no void DumpRenderTreeSupportEfl::setDefersLoading(Evas_Object* ewkView, bool defers) { - WebCore::Page* page = EWKPrivate::corePage(ewkView); - - if (!page) - return; + DRT_SUPPRT_PAGE_GET_OR_RETURN(ewkView, page); page->setDefersLoading(defers); } void DumpRenderTreeSupportEfl::setLoadsSiteIconsIgnoringImageLoadingSetting(Evas_Object* ewkView, bool loadsSiteIconsIgnoringImageLoadingPreferences) { - WebCore::Page* page = EWKPrivate::corePage(ewkView); - if (!page) - return; + DRT_SUPPRT_PAGE_GET_OR_RETURN(ewkView, page); page->settings()->setLoadsSiteIconsIgnoringImageLoadingSetting(loadsSiteIconsIgnoringImageLoadingPreferences); } +void DumpRenderTreeSupportEfl::setMinimumLogicalFontSize(Evas_Object* ewkView, int size) +{ + DRT_SUPPRT_PAGE_GET_OR_RETURN(ewkView, page); + + page->settings()->setMinimumLogicalFontSize(size); +} + void DumpRenderTreeSupportEfl::addUserScript(const Evas_Object* ewkView, const String& sourceCode, bool runAtStart, bool allFrames) { - WebCore::Page* page = EWKPrivate::corePage(ewkView); - if (!page) - return; + DRT_SUPPRT_PAGE_GET_OR_RETURN(ewkView, page); page->group().addUserScriptToWorld(WebCore::mainThreadNormalWorld(), sourceCode, WebCore::KURL(), nullptr, nullptr, runAtStart ? WebCore::InjectAtDocumentStart : WebCore::InjectAtDocumentEnd, @@ -351,71 +295,56 @@ void DumpRenderTreeSupportEfl::addUserScript(const Evas_Object* ewkView, const S void DumpRenderTreeSupportEfl::clearUserScripts(const Evas_Object* ewkView) { - WebCore::Page* page = EWKPrivate::corePage(ewkView); - if (!page) - return; + DRT_SUPPRT_PAGE_GET_OR_RETURN(ewkView, page); page->group().removeUserScriptsFromWorld(WebCore::mainThreadNormalWorld()); } void DumpRenderTreeSupportEfl::addUserStyleSheet(const Evas_Object* ewkView, const String& sourceCode, bool allFrames) { - WebCore::Page* page = EWKPrivate::corePage(ewkView); - if (!page) - return; + DRT_SUPPRT_PAGE_GET_OR_RETURN(ewkView, page); page->group().addUserStyleSheetToWorld(WebCore::mainThreadNormalWorld(), sourceCode, WebCore::KURL(), nullptr, nullptr, allFrames ? WebCore::InjectInAllFrames : WebCore::InjectInTopFrameOnly); } void DumpRenderTreeSupportEfl::clearUserStyleSheets(const Evas_Object* ewkView) { - WebCore::Page* page = EWKPrivate::corePage(ewkView); - if (!page) - return; + DRT_SUPPRT_PAGE_GET_OR_RETURN(ewkView, page); page->group().removeUserStyleSheetsFromWorld(WebCore::mainThreadNormalWorld()); } void DumpRenderTreeSupportEfl::executeCoreCommandByName(const Evas_Object* ewkView, const char* name, const char* value) { - WebCore::Page* page = EWKPrivate::corePage(ewkView); - if (!page) - return; + DRT_SUPPRT_PAGE_GET_OR_RETURN(ewkView, page); page->focusController()->focusedOrMainFrame()->editor()->command(name).execute(value); } bool DumpRenderTreeSupportEfl::findString(const Evas_Object* ewkView, const String& text, WebCore::FindOptions options) { - WebCore::Page* page = EWKPrivate::corePage(ewkView); - - if (!page) - return false; + DRT_SUPPRT_PAGE_GET_OR_RETURN(ewkView, page, false); return page->findString(text, options); } void DumpRenderTreeSupportEfl::setCSSGridLayoutEnabled(const Evas_Object* ewkView, bool enabled) { - WebCore::Page* corePage = EWKPrivate::corePage(ewkView); - if (corePage) - corePage->settings()->setCSSGridLayoutEnabled(enabled); + DRT_SUPPRT_PAGE_GET_OR_RETURN(ewkView, page); + + page->settings()->setCSSGridLayoutEnabled(enabled); } bool DumpRenderTreeSupportEfl::isCommandEnabled(const Evas_Object* ewkView, const char* name) { - WebCore::Page* page = EWKPrivate::corePage(ewkView); - if (!page) - return false; + DRT_SUPPRT_PAGE_GET_OR_RETURN(ewkView, page, false); return page->focusController()->focusedOrMainFrame()->editor()->command(name).isEnabled(); } void DumpRenderTreeSupportEfl::setSmartInsertDeleteEnabled(Evas_Object* ewkView, bool enabled) { - WebCore::Page* page = EWKPrivate::corePage(ewkView); - if (!page) - return; + DRT_SUPPRT_PAGE_GET_OR_RETURN(ewkView, page); WebCore::EditorClientEfl* editorClient = static_cast<WebCore::EditorClientEfl*>(page->editorClient()); if (!editorClient) @@ -426,9 +355,7 @@ void DumpRenderTreeSupportEfl::setSmartInsertDeleteEnabled(Evas_Object* ewkView, void DumpRenderTreeSupportEfl::setSelectTrailingWhitespaceEnabled(Evas_Object* ewkView, bool enabled) { - WebCore::Page* page = EWKPrivate::corePage(ewkView); - if (!page) - return; + DRT_SUPPRT_PAGE_GET_OR_RETURN(ewkView, page); WebCore::EditorClientEfl* editorClient = static_cast<WebCore::EditorClientEfl*>(page->editorClient()); if (!editorClient) @@ -508,9 +435,7 @@ bool DumpRenderTreeSupportEfl::isTargetItem(const Ewk_History_Item* ewkHistoryIt void DumpRenderTreeSupportEfl::evaluateInWebInspector(const Evas_Object* ewkView, long callId, const String& script) { #if ENABLE(INSPECTOR) - WebCore::Page* page = EWKPrivate::corePage(ewkView); - if (!page) - return; + DRT_SUPPRT_PAGE_GET_OR_RETURN(ewkView, page); if (page->inspectorController()) page->inspectorController()->evaluateForTestInFrontend(callId, script); @@ -519,12 +444,10 @@ void DumpRenderTreeSupportEfl::evaluateInWebInspector(const Evas_Object* ewkView void DumpRenderTreeSupportEfl::evaluateScriptInIsolatedWorld(const Evas_Object* ewkFrame, int worldID, JSObjectRef globalObject, const String& script) { - WebCore::Frame* coreFrame = EWKPrivate::coreFrame(ewkFrame); - if (!coreFrame) - return; + DRT_SUPPORT_FRAME_GET_OR_RETURN(ewkFrame, frame); // Comment from mac: Start off with some guess at a frame and a global object, we'll try to do better...! - WebCore::JSDOMWindow* anyWorldGlobalObject = coreFrame->script()->globalObject(WebCore::mainThreadNormalWorld()); + WebCore::JSDOMWindow* anyWorldGlobalObject = frame->script()->globalObject(WebCore::mainThreadNormalWorld()); // Comment from mac: The global object is probably a shell object? - if so, we know how to use this! JSC::JSObject* globalObjectObj = toJS(globalObject); @@ -562,11 +485,9 @@ void DumpRenderTreeSupportEfl::evaluateScriptInIsolatedWorld(const Evas_Object* JSGlobalContextRef DumpRenderTreeSupportEfl::globalContextRefForFrame(const Evas_Object* ewkFrame) { - WebCore::Frame* coreFrame = EWKPrivate::coreFrame(ewkFrame); - if (!coreFrame) - return 0; + DRT_SUPPORT_FRAME_GET_OR_RETURN(ewkFrame, frame, 0); - return toGlobalRef(coreFrame->script()->globalObject(WebCore::mainThreadNormalWorld())->globalExec()); + return toGlobalRef(frame->script()->globalObject(WebCore::mainThreadNormalWorld())->globalExec()); } void DumpRenderTreeSupportEfl::setMockScrollbarsEnabled(bool enable) @@ -593,16 +514,16 @@ String DumpRenderTreeSupportEfl::markerTextForListItem(JSContextRef context, JSV void DumpRenderTreeSupportEfl::setInteractiveFormValidationEnabled(Evas_Object* ewkView, bool enabled) { - WebCore::Page* corePage = EWKPrivate::corePage(ewkView); - if (corePage) - corePage->settings()->setInteractiveFormValidationEnabled(enabled); + DRT_SUPPRT_PAGE_GET_OR_RETURN(ewkView, page); + + page->settings()->setInteractiveFormValidationEnabled(enabled); } void DumpRenderTreeSupportEfl::setValidationMessageTimerMagnification(Evas_Object* ewkView, int value) { - WebCore::Page* corePage = EWKPrivate::corePage(ewkView); - if (corePage) - corePage->settings()->setValidationMessageTimerMagnification(value); + DRT_SUPPRT_PAGE_GET_OR_RETURN(ewkView, page); + + page->settings()->setValidationMessageTimerMagnification(value); } JSValueRef DumpRenderTreeSupportEfl::computedStyleIncludingVisitedInfo(JSContextRef context, JSValueRef value) @@ -623,11 +544,9 @@ JSValueRef DumpRenderTreeSupportEfl::computedStyleIncludingVisitedInfo(JSContext void DumpRenderTreeSupportEfl::setAuthorAndUserStylesEnabled(Evas_Object* ewkView, bool enabled) { - WebCore::Page* corePage = EWKPrivate::corePage(ewkView); - if (!corePage) - return; + DRT_SUPPRT_PAGE_GET_OR_RETURN(ewkView, page); - corePage->settings()->setAuthorAndUserStylesEnabled(enabled); + page->settings()->setAuthorAndUserStylesEnabled(enabled); } void DumpRenderTreeSupportEfl::setSerializeHTTPLoads(bool enabled) @@ -638,7 +557,7 @@ void DumpRenderTreeSupportEfl::setSerializeHTTPLoads(bool enabled) void DumpRenderTreeSupportEfl::sendWebIntentResponse(Ewk_Intent_Request* request, JSStringRef response) { #if ENABLE(WEB_INTENTS) - JSC::UString responseString = response->ustring(); + String responseString = response->string(); if (responseString.isNull()) ewk_intent_request_failure_post(request, WebCore::SerializedScriptValue::create(String::fromUTF8("ERROR"))); else @@ -659,10 +578,10 @@ WebCore::MessagePortChannelArray* DumpRenderTreeSupportEfl::intentMessagePorts(c void DumpRenderTreeSupportEfl::deliverWebIntent(Evas_Object* ewkFrame, JSStringRef action, JSStringRef type, JSStringRef data) { #if ENABLE(WEB_INTENTS) - RefPtr<WebCore::SerializedScriptValue> serializedData = WebCore::SerializedScriptValue::create(String(data->ustring().impl())); + RefPtr<WebCore::SerializedScriptValue> serializedData = WebCore::SerializedScriptValue::create(data->string()); WebCore::ExceptionCode ec = 0; WebCore::MessagePortArray ports; - RefPtr<WebCore::Intent> coreIntent = WebCore::Intent::create(String(action->ustring().impl()), String(type->ustring().impl()), serializedData.get(), ports, ec); + RefPtr<WebCore::Intent> coreIntent = WebCore::Intent::create(action->string(), type->string(), serializedData.get(), ports, ec); if (ec) return; Ewk_Intent* ewkIntent = ewk_intent_new(coreIntent.get()); @@ -673,8 +592,9 @@ void DumpRenderTreeSupportEfl::deliverWebIntent(Evas_Object* ewkFrame, JSStringR void DumpRenderTreeSupportEfl::setComposition(Evas_Object* ewkView, const char* text, int start, int length) { - WebCore::Page* page = EWKPrivate::corePage(ewkView); - if (!page || !page->focusController() || !page->focusController()->focusedOrMainFrame()) + DRT_SUPPRT_PAGE_GET_OR_RETURN(ewkView, page); + + if (!page->focusController() || !page->focusController()->focusedOrMainFrame()) return; WebCore::Editor* editor = page->focusController()->focusedOrMainFrame()->editor(); @@ -689,8 +609,9 @@ void DumpRenderTreeSupportEfl::setComposition(Evas_Object* ewkView, const char* bool DumpRenderTreeSupportEfl::hasComposition(const Evas_Object* ewkView) { - const WebCore::Page* page = EWKPrivate::corePage(ewkView); - if (!page || !page->focusController() || !page->focusController()->focusedOrMainFrame()) + DRT_SUPPRT_PAGE_GET_OR_RETURN(ewkView, page, false); + + if (!page->focusController() || !page->focusController()->focusedOrMainFrame()) return false; const WebCore::Editor* editor = page->focusController()->focusedOrMainFrame()->editor(); @@ -704,8 +625,9 @@ bool DumpRenderTreeSupportEfl::compositionRange(Evas_Object* ewkView, int* start { *start = *length = 0; - WebCore::Page* page = EWKPrivate::corePage(ewkView); - if (!page || !page->focusController() || !page->focusController()->focusedOrMainFrame()) + DRT_SUPPRT_PAGE_GET_OR_RETURN(ewkView, page, false); + + if (!page->focusController() || !page->focusController()->focusedOrMainFrame()) return false; WebCore::Editor* editor = page->focusController()->focusedOrMainFrame()->editor(); @@ -719,8 +641,9 @@ bool DumpRenderTreeSupportEfl::compositionRange(Evas_Object* ewkView, int* start void DumpRenderTreeSupportEfl::confirmComposition(Evas_Object* ewkView, const char* text) { - WebCore::Page* page = EWKPrivate::corePage(ewkView); - if (!page || !page->focusController() || !page->focusController()->focusedOrMainFrame()) + DRT_SUPPRT_PAGE_GET_OR_RETURN(ewkView, page); + + if (!page->focusController() || !page->focusController()->focusedOrMainFrame()) return; WebCore::Editor* editor = page->focusController()->focusedOrMainFrame()->editor(); @@ -741,8 +664,9 @@ void DumpRenderTreeSupportEfl::confirmComposition(Evas_Object* ewkView, const ch WebCore::IntRect DumpRenderTreeSupportEfl::firstRectForCharacterRange(Evas_Object* ewkView, int location, int length) { - WebCore::Page* page = EWKPrivate::corePage(ewkView); - if (!page || !page->focusController() || !page->focusController()->focusedOrMainFrame() || !page->focusController()->focusedOrMainFrame()->editor()) + DRT_SUPPRT_PAGE_GET_OR_RETURN(ewkView, page, WebCore::IntRect()); + + if (!page->focusController() || !page->focusController()->focusedOrMainFrame() || !page->focusController()->focusedOrMainFrame()->editor()) return WebCore::IntRect(); if ((location + length < location) && (location + length)) @@ -763,8 +687,9 @@ bool DumpRenderTreeSupportEfl::selectedRange(Evas_Object* ewkView, int* start, i if (!(start && length)) return false; - WebCore::Page* page = EWKPrivate::corePage(ewkView); - if (!page || !page->focusController() || !page->focusController()->focusedOrMainFrame()) + DRT_SUPPRT_PAGE_GET_OR_RETURN(ewkView, page, false); + + if (!page->focusController() || !page->focusController()->focusedOrMainFrame()) return false; WebCore::Frame* frame = page->focusController()->focusedOrMainFrame(); diff --git a/Source/WebKit/efl/WebCoreSupport/DumpRenderTreeSupportEfl.h b/Source/WebKit/efl/WebCoreSupport/DumpRenderTreeSupportEfl.h index eaf11d328..6be5fb41d 100644 --- a/Source/WebKit/efl/WebCoreSupport/DumpRenderTreeSupportEfl.h +++ b/Source/WebKit/efl/WebCoreSupport/DumpRenderTreeSupportEfl.h @@ -57,10 +57,6 @@ public: static Eina_List* frameChildren(const Evas_Object* ewkFrame); static WebCore::Frame* frameParent(const Evas_Object* ewkFrame); static void layoutFrame(Evas_Object* ewkFrame); - static int numberOfPages(const Evas_Object* ewkFrame, float pageWidth, float pageHeight); - static int numberOfPagesForElementId(const Evas_Object* ewkFrame, const char* elementId, float pageWidth, float pageHeight); - static String pageProperty(const Evas_Object* ewkFrame, const char* propertyName, int pageNumber); - static String pageSizeAndMarginsInPixels(const Evas_Object* ewkFrame, int pageNumber, int width, int height, int marginTop, int marginRight, int marginBottom, int marginLeft); static bool pauseAnimation(Evas_Object* ewkFrame, const char* name, const char* elementId, double time); static bool pauseTransition(Evas_Object* ewkFrame, const char* name, const char* elementId, double time); static unsigned pendingUnloadEventCount(const Evas_Object* ewkFrame); @@ -72,6 +68,7 @@ public: static void setAutofilled(JSContextRef, JSValueRef nodeObject, bool autofilled); static void setDefersLoading(Evas_Object* ewkView, bool defers); static void setLoadsSiteIconsIgnoringImageLoadingSetting(Evas_Object* ewkView, bool loadsSiteIconsIgnoringImageLoadingPreferences); + static void setMinimumLogicalFontSize(Evas_Object* ewkView, int size); static void addUserScript(const Evas_Object* ewkView, const String& sourceCode, bool runAtStart, bool allFrames); static void clearUserScripts(const Evas_Object* ewkView); diff --git a/Source/WebKit/efl/WebCoreSupport/FrameLoaderClientEfl.cpp b/Source/WebKit/efl/WebCoreSupport/FrameLoaderClientEfl.cpp index c78520127..92aef626f 100644 --- a/Source/WebKit/efl/WebCoreSupport/FrameLoaderClientEfl.cpp +++ b/Source/WebKit/efl/WebCoreSupport/FrameLoaderClientEfl.cpp @@ -45,6 +45,7 @@ #include "FrameTree.h" #include "FrameView.h" #include "HTMLFormElement.h" +#include "HTTPStatusCodes.h" #include "IntentRequest.h" #include "MIMETypeRegistry.h" #include "NotImplemented.h" @@ -297,6 +298,12 @@ void FrameLoaderClientEfl::dispatchDecidePolicyForResponse(FramePolicyFunction f return; } + // Ignore responses with an HTTP status code of 204 (No Content) + if (response.httpStatusCode() == HTTPNoContent) { + callPolicyFunction(function, PolicyIgnore); + return; + } + if (canShowMIMEType(response.mimeType())) callPolicyFunction(function, PolicyUse); else @@ -611,7 +618,7 @@ void FrameLoaderClientEfl::dispatchDidChangeLocationWithinPage() { ewk_frame_uri_changed(m_frame); - if (ewk_view_frame_main_get(m_view) != m_frame) + if (!isLoadingMainFrame()) return; ewk_view_uri_changed(m_view); } @@ -624,7 +631,7 @@ void FrameLoaderClientEfl::dispatchWillClose() void FrameLoaderClientEfl::dispatchDidReceiveIcon() { // IconController loads icons only for the main frame. - ASSERT(ewk_view_frame_main_get(m_view) == m_frame); + ASSERT(isLoadingMainFrame()); ewk_view_frame_main_icon_received(m_view); } @@ -632,7 +639,7 @@ void FrameLoaderClientEfl::dispatchDidReceiveIcon() void FrameLoaderClientEfl::dispatchDidStartProvisionalLoad() { ewk_frame_load_provisional(m_frame); - if (ewk_view_frame_main_get(m_view) == m_frame) + if (isLoadingMainFrame()) ewk_view_load_provisional(m_view); } @@ -644,7 +651,7 @@ void FrameLoaderClientEfl::dispatchDidReceiveTitle(const StringWithDirection& ti ewkTitle.direction = (title.direction() == LTR) ? EWK_TEXT_DIRECTION_LEFT_TO_RIGHT : EWK_TEXT_DIRECTION_RIGHT_TO_LEFT; ewk_frame_title_set(m_frame, &ewkTitle); - if (ewk_view_frame_main_get(m_view) != m_frame) + if (!isLoadingMainFrame()) return; ewk_view_title_set(m_view, &ewkTitle); } @@ -660,7 +667,7 @@ void FrameLoaderClientEfl::dispatchDidCommitLoad() { ewk_frame_uri_changed(m_frame); ewk_frame_load_committed(m_frame); - if (ewk_view_frame_main_get(m_view) != m_frame) + if (!isLoadingMainFrame()) return; ewk_view_title_set(m_view, 0); ewk_view_uri_changed(m_view); @@ -834,7 +841,7 @@ void FrameLoaderClientEfl::dispatchDidFailProvisionalLoad(const ResourceError& e error.frame = m_frame; ewk_frame_load_provisional_failed(m_frame, &error); - if (ewk_view_frame_main_get(m_view) == m_frame) + if (isLoadingMainFrame()) ewk_view_load_provisional_failed(m_view, &error); dispatchDidFailLoad(err); @@ -1000,7 +1007,7 @@ void FrameLoaderClientEfl::transitionToCommittedForNewPage() ewk_frame_view_create_for_view(m_frame, m_view); - if (m_frame == ewk_view_frame_main_get(m_view)) { + if (isLoadingMainFrame()) { ewk_view_frame_view_creation_notify(m_view); ewk_view_frame_main_cleared(m_view); } diff --git a/Source/WebKit/efl/WebCoreSupport/FrameLoaderClientEfl.h b/Source/WebKit/efl/WebCoreSupport/FrameLoaderClientEfl.h index 63d8a4452..8c0966a72 100644 --- a/Source/WebKit/efl/WebCoreSupport/FrameLoaderClientEfl.h +++ b/Source/WebKit/efl/WebCoreSupport/FrameLoaderClientEfl.h @@ -211,6 +211,8 @@ class FrameLoaderClientEfl : public FrameLoaderClient { virtual PassRefPtr<WebCore::FrameNetworkingContext> createNetworkingContext(); private: + bool isLoadingMainFrame() const { return m_frame == ewk_view_frame_main_get(m_view); } + Evas_Object *m_view; Evas_Object *m_frame; diff --git a/Source/WebKit/efl/WebCoreSupport/InspectorClientEfl.cpp b/Source/WebKit/efl/WebCoreSupport/InspectorClientEfl.cpp index b82039756..12afacb19 100644 --- a/Source/WebKit/efl/WebCoreSupport/InspectorClientEfl.cpp +++ b/Source/WebKit/efl/WebCoreSupport/InspectorClientEfl.cpp @@ -24,9 +24,9 @@ #if ENABLE(INSPECTOR) #include "InspectorController.h" #include "NotImplemented.h" -#include "PlatformString.h" #include "ewk_view_private.h" #include <unistd.h> +#include <wtf/text/WTFString.h> namespace WebCore { @@ -93,7 +93,7 @@ InspectorFrontendChannel* InspectorClientEfl::openInspectorFrontend(InspectorCon m_inspectorView = inspectorView; - String inspectorUri = inspectorFilesPath(); + String inspectorUri = inspectorFilesPath() + "/inspector.html"; ewk_view_uri_set(m_inspectorView, inspectorUri.utf8().data()); OwnPtr<InspectorFrontendClientEfl> frontendClient = adoptPtr(new InspectorFrontendClientEfl(m_inspectedView, m_inspectorView, this)); @@ -140,9 +140,9 @@ void InspectorClientEfl::releaseFrontendPage() String InspectorClientEfl::inspectorFilesPath() { - String inspectorFilesPath = makeString("file://", WEB_INSPECTOR_INSTALL_DIR, "/inspector.html"); - if (access(inspectorFilesPath.utf8().data(), R_OK)) // On success, zero is returned - inspectorFilesPath = makeString("file://", WEB_INSPECTOR_DIR, "/inspector.html"); + String inspectorFilesPath = "file://" + String(WEB_INSPECTOR_INSTALL_DIR); + if (access(inspectorFilesPath.utf8().data(), R_OK)) + inspectorFilesPath = "file://" + String(WEB_INSPECTOR_DIR); return inspectorFilesPath; } @@ -168,8 +168,7 @@ InspectorFrontendClientEfl::~InspectorFrontendClientEfl() String InspectorFrontendClientEfl::localizedStringsURL() { - notImplemented(); - return String(); + return m_inspectorClient->inspectorFilesPath() + "/localizedStrings.js"; } String InspectorFrontendClientEfl::hiddenPanels() diff --git a/Source/WebKit/efl/WebCoreSupport/RegisterProtocolHandlerClientEfl.cpp b/Source/WebKit/efl/WebCoreSupport/NavigatorContentUtilsClientEfl.cpp index 5601241a5..a5b612fc0 100644 --- a/Source/WebKit/efl/WebCoreSupport/RegisterProtocolHandlerClientEfl.cpp +++ b/Source/WebKit/efl/WebCoreSupport/NavigatorContentUtilsClientEfl.cpp @@ -26,9 +26,9 @@ */ #include "config.h" -#include "RegisterProtocolHandlerClientEfl.h" +#include "NavigatorContentUtilsClientEfl.h" -#if ENABLE(REGISTER_PROTOCOL_HANDLER) +#if ENABLE(NAVIGATOR_CONTENT_UTILS) #include "ewk_custom_handler_private.h" #include <wtf/text/CString.h> @@ -53,17 +53,17 @@ static void customHandlerDataDelete(Ewk_Custom_Handler_Data* data) delete data; } -PassOwnPtr<RegisterProtocolHandlerClientEfl> RegisterProtocolHandlerClientEfl::create(Evas_Object* view) +PassOwnPtr<NavigatorContentUtilsClientEfl> NavigatorContentUtilsClientEfl::create(Evas_Object* view) { - return adoptPtr(new RegisterProtocolHandlerClientEfl(view)); + return adoptPtr(new NavigatorContentUtilsClientEfl(view)); } -RegisterProtocolHandlerClientEfl::RegisterProtocolHandlerClientEfl(Evas_Object* view) +NavigatorContentUtilsClientEfl::NavigatorContentUtilsClientEfl(Evas_Object* view) : m_view(view) { } -void RegisterProtocolHandlerClientEfl::registerProtocolHandler(const String& scheme, const String& baseURL, const String& url, const String& title) +void NavigatorContentUtilsClientEfl::registerProtocolHandler(const String& scheme, const String& baseURL, const String& url, const String& title) { Ewk_Custom_Handler_Data* data = customHandlerDataCreate(m_view, scheme.utf8().data(), baseURL.utf8().data(), url.utf8().data()); data->title = eina_stringshare_add(title.utf8().data()); @@ -73,16 +73,16 @@ void RegisterProtocolHandlerClientEfl::registerProtocolHandler(const String& sch } #if ENABLE(CUSTOM_SCHEME_HANDLER) -RegisterProtocolHandlerClient::CustomHandlersState RegisterProtocolHandlerClientEfl::isProtocolHandlerRegistered(const String& scheme, const String& baseURL, const String& url) +NavigatorContentUtilsClient::CustomHandlersState NavigatorContentUtilsClientEfl::isProtocolHandlerRegistered(const String& scheme, const String& baseURL, const String& url) { Ewk_Custom_Handler_Data* data = customHandlerDataCreate(m_view, scheme.utf8().data(), baseURL.utf8().data(), url.utf8().data()); - RegisterProtocolHandlerClient::CustomHandlersState result = static_cast<CustomHandlersState>(ewk_custom_handler_register_protocol_handler(data)); + NavigatorContentUtilsClient::CustomHandlersState result = static_cast<CustomHandlersState>(ewk_custom_handler_register_protocol_handler(data)); customHandlerDataDelete(data); return result; } -void RegisterProtocolHandlerClientEfl::unregisterProtocolHandler(const String& scheme, const String& baseURL, const String& url) +void NavigatorContentUtilsClientEfl::unregisterProtocolHandler(const String& scheme, const String& baseURL, const String& url) { Ewk_Custom_Handler_Data* data = customHandlerDataCreate(m_view, scheme.utf8().data(), baseURL.utf8().data(), url.utf8().data()); ewk_custom_handler_register_protocol_handler(data); @@ -92,4 +92,4 @@ void RegisterProtocolHandlerClientEfl::unregisterProtocolHandler(const String& s } -#endif // ENABLE(REGISTER_PROTOCOL_HANDLER) +#endif // ENABLE(NAVIGATOR_CONTENT_UTILS) diff --git a/Source/WebKit/efl/WebCoreSupport/RegisterProtocolHandlerClientEfl.h b/Source/WebKit/efl/WebCoreSupport/NavigatorContentUtilsClientEfl.h index dca3c6cfa..2fe488f47 100644 --- a/Source/WebKit/efl/WebCoreSupport/RegisterProtocolHandlerClientEfl.h +++ b/Source/WebKit/efl/WebCoreSupport/NavigatorContentUtilsClientEfl.h @@ -25,20 +25,20 @@ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -#ifndef RegisterProtocolHandlerClientEfl_h -#define RegisterProtocolHandlerClientEfl_h +#ifndef NavigatorContentUtilsClientEfl_h +#define NavigatorContentUtilsClientEfl_h -#if ENABLE(REGISTER_PROTOCOL_HANDLER) -#include "RegisterProtocolHandlerClient.h" +#if ENABLE(NAVIGATOR_CONTENT_UTILS) +#include "NavigatorContentUtilsClient.h" #include <wtf/PassOwnPtr.h> namespace WebCore { -class RegisterProtocolHandlerClientEfl : public WebCore::RegisterProtocolHandlerClient { +class NavigatorContentUtilsClientEfl : public WebCore::NavigatorContentUtilsClient { public: - static PassOwnPtr<RegisterProtocolHandlerClientEfl> create(Evas_Object* view); + static PassOwnPtr<NavigatorContentUtilsClientEfl> create(Evas_Object* view); - ~RegisterProtocolHandlerClientEfl() { } + ~NavigatorContentUtilsClientEfl() { } virtual void registerProtocolHandler(const String& scheme, const String& baseURL, const String& url, const String& title); #if ENABLE(CUSTOM_SCHEME_HANDLER) @@ -49,9 +49,9 @@ public: private: Evas_Object* m_view; - RegisterProtocolHandlerClientEfl(Evas_Object* view); + NavigatorContentUtilsClientEfl(Evas_Object* view); }; } #endif -#endif // RegisterProtocolHandlerClientEfl_h +#endif // NavigatorContentUtilsClientEfl_h diff --git a/Source/WebKit/efl/WebCoreSupport/PopupMenuEfl.cpp b/Source/WebKit/efl/WebCoreSupport/PopupMenuEfl.cpp new file mode 100644 index 000000000..8195ccc5f --- /dev/null +++ b/Source/WebKit/efl/WebCoreSupport/PopupMenuEfl.cpp @@ -0,0 +1,81 @@ +/* + * Copyright (C) 2006, 2008 Apple Inc. All rights reserved. + * Copyright (C) 2008 INdT - Instituto Nokia de Tecnologia + * Copyright (C) 2009-2010 ProFUSION embedded systems + * Copyright (C) 2009-2010 Samsung Electronics + * Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public License + * along with this library; see the file COPYING.LIB. If not, write to + * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301, USA. + * + */ + +#include "config.h" +#include "PopupMenuEfl.h" + +#include "Chrome.h" +#include "ChromeClientEfl.h" +#include "Frame.h" +#include "FrameView.h" +#include "NotImplemented.h" +#include "Page.h" +#include "PopupMenuClient.h" + +namespace WebCore { + +PopupMenuEfl::PopupMenuEfl(PopupMenuClient* client) + : m_popupClient(client) + , m_view(0) +{ +} + +PopupMenuEfl::~PopupMenuEfl() +{ + // Tell client to destroy data related to this popup since this object is + // going away. + if (m_view) + hide(); +} + +void PopupMenuEfl::show(const IntRect& rect, FrameView* view, int index) +{ + ASSERT(m_popupClient); + ChromeClientEfl* chromeClient = static_cast<ChromeClientEfl*>(view->frame()->page()->chrome()->client()); + ASSERT(chromeClient); + + m_view = view; + chromeClient->createSelectPopup(m_popupClient, index, rect); +} + +void PopupMenuEfl::hide() +{ + ASSERT(m_view); + ChromeClientEfl* chromeClient = static_cast<ChromeClientEfl*>(m_view->frame()->page()->chrome()->client()); + ASSERT(chromeClient); + + chromeClient->destroySelectPopup(); +} + +void PopupMenuEfl::updateFromElement() +{ + client()->setTextFromItem(client()->selectedIndex()); +} + +void PopupMenuEfl::disconnectClient() +{ + m_popupClient = 0; +} + +} diff --git a/Source/WebKit/efl/WebCoreSupport/PopupMenuEfl.h b/Source/WebKit/efl/WebCoreSupport/PopupMenuEfl.h new file mode 100644 index 000000000..aab9d5636 --- /dev/null +++ b/Source/WebKit/efl/WebCoreSupport/PopupMenuEfl.h @@ -0,0 +1,53 @@ +/* + * Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public License + * along with this library; see the file COPYING.LIB. If not, write to + * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301, USA. + */ + +#ifndef PopupMenuEfl_h +#define PopupMenuEfl_h + +#include "IntRect.h" +#include "PopupMenu.h" +#include <wtf/PassRefPtr.h> +#include <wtf/RefCounted.h> + +namespace WebCore { + +class FrameView; +class Scrollbar; +class PopupMenuClient; + +class PopupMenuEfl : public PopupMenu { +public: + explicit PopupMenuEfl(PopupMenuClient*); + ~PopupMenuEfl(); + + virtual void show(const IntRect&, FrameView*, int index); + virtual void hide(); + virtual void updateFromElement(); + virtual void disconnectClient(); + +private: + PopupMenuClient* client() const { return m_popupClient; } + + PopupMenuClient* m_popupClient; + FrameView* m_view; +}; + +} + +#endif // PopupMenuEfl_h diff --git a/Source/WebKit/efl/WebCoreSupport/SearchPopupMenuEfl.cpp b/Source/WebKit/efl/WebCoreSupport/SearchPopupMenuEfl.cpp new file mode 100644 index 000000000..20ecb092d --- /dev/null +++ b/Source/WebKit/efl/WebCoreSupport/SearchPopupMenuEfl.cpp @@ -0,0 +1,56 @@ +/* + * Copyright (C) 2008 INdT - Instituto Nokia de Tecnologia + * Copyright (C) 2009-2010 ProFUSION embedded systems + * Copyright (C) 2009-2010 Samsung Electronics + * Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#include "config.h" +#include "SearchPopupMenuEfl.h" + +#include "NotImplemented.h" + +namespace WebCore { + +SearchPopupMenuEfl::SearchPopupMenuEfl(PopupMenuClient* client) + : m_popup(adoptRef(new PopupMenuEfl(client))) +{ + notImplemented(); +} + +PopupMenu* SearchPopupMenuEfl::popupMenu() +{ + return m_popup.get(); +} + +void SearchPopupMenuEfl::saveRecentSearches(const AtomicString&, const Vector<String>&) +{ + notImplemented(); +} + +void SearchPopupMenuEfl::loadRecentSearches(const AtomicString&, Vector<String>&) +{ + notImplemented(); +} + +bool SearchPopupMenuEfl::enabled() +{ + notImplemented(); + return true; +} + +} diff --git a/Source/WebKit/efl/WebCoreSupport/SearchPopupMenuEfl.h b/Source/WebKit/efl/WebCoreSupport/SearchPopupMenuEfl.h new file mode 100644 index 000000000..7eec84ed2 --- /dev/null +++ b/Source/WebKit/efl/WebCoreSupport/SearchPopupMenuEfl.h @@ -0,0 +1,44 @@ +/* + * Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public License + * along with this library; see the file COPYING.LIB. If not, write to + * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301, USA. + * + */ + +#ifndef SearchPopupMenuEfl_h +#define SearchPopupMenuEfl_h + +#include "PopupMenuEfl.h" +#include "SearchPopupMenu.h" + +namespace WebCore { + +class SearchPopupMenuEfl : public SearchPopupMenu { +public: + explicit SearchPopupMenuEfl(PopupMenuClient*); + + virtual PopupMenu* popupMenu(); + virtual void saveRecentSearches(const AtomicString& name, const Vector<String>& searchItems); + virtual void loadRecentSearches(const AtomicString& name, Vector<String>& searchItems); + virtual bool enabled(); + +private: + RefPtr<PopupMenuEfl> m_popup; +}; + +} + +#endif // SearchPopupMenuEfl_h diff --git a/Source/WebKit/efl/ewk/ewk_contextmenu.cpp b/Source/WebKit/efl/ewk/ewk_contextmenu.cpp index 6dfe909d9..e792c6d03 100644 --- a/Source/WebKit/efl/ewk/ewk_contextmenu.cpp +++ b/Source/WebKit/efl/ewk/ewk_contextmenu.cpp @@ -24,7 +24,7 @@ #include "ContextMenu.h" #include "ContextMenuController.h" #include "ContextMenuItem.h" -#include "ewk_private.h" +#include "ewk_contextmenu_private.h" #include <Eina.h> #include <eina_safety_checks.h> #include <wtf/text/CString.h> @@ -84,6 +84,7 @@ Eina_Bool ewk_context_menu_destroy(Ewk_Context_Menu* menu) EINA_SAFETY_ON_NULL_RETURN_VAL(menu, false); EINA_SAFETY_ON_NULL_RETURN_VAL(menu->controller, false); menu->controller->clearContextMenu(); + ewk_context_menu_free(menu); return true; #else return false; @@ -217,7 +218,7 @@ Eina_Bool ewk_context_menu_item_enabled_set(Ewk_Context_Menu_Item* item, Eina_Bo * * @note emits a signal "contextmenu,new" */ -Ewk_Context_Menu* ewk_context_menu_new(Evas_Object* view, WebCore::ContextMenuController* controller) +Ewk_Context_Menu* ewk_context_menu_new(Evas_Object* view, WebCore::ContextMenuController* controller, WebCore::ContextMenu* coreMenu) { Ewk_Context_Menu* menu; EINA_SAFETY_ON_NULL_RETURN_VAL(view, 0); @@ -231,6 +232,10 @@ Ewk_Context_Menu* ewk_context_menu_new(Evas_Object* view, WebCore::ContextMenuCo menu->items = 0; evas_object_smart_callback_call(menu->view, "contextmenu,new", menu); + const Vector<WebCore::ContextMenuItem>* itemsList = coreMenu->platformDescription(); + for (Vector<WebCore::ContextMenuItem>::const_iterator iter = itemsList->begin(); iter != itemsList->end(); ++iter) + ewk_context_menu_item_append(menu, *iter); + return menu; } @@ -266,7 +271,7 @@ bool ewk_context_menu_free(Ewk_Context_Menu* menu) * * @see ewk_context_menu_item_new */ -void ewk_context_menu_item_append(Ewk_Context_Menu* menu, WebCore::ContextMenuItem& core) +void ewk_context_menu_item_append(Ewk_Context_Menu* menu, const WebCore::ContextMenuItem& core) { Ewk_Context_Menu_Item_Type type = static_cast<Ewk_Context_Menu_Item_Type>(core.type()); Ewk_Context_Menu_Action action = static_cast<Ewk_Context_Menu_Action>(core.action()); @@ -283,26 +288,6 @@ void ewk_context_menu_item_append(Ewk_Context_Menu* menu, WebCore::ContextMenuIt /** * @internal * - * Emits a signal with the items of the context menu. - * - * @param menu the context menu object - * @return the same context menu object that was given through parameter - * - * @note emits a signal "contextmenu,customize" - * - * @see ewk_context_menu_item_list_get - */ -Ewk_Context_Menu* ewk_context_menu_customize(Ewk_Context_Menu* menu) -{ - EINA_SAFETY_ON_NULL_RETURN_VAL(menu, 0); - - evas_object_smart_callback_call(menu->view, "contextmenu,customize", menu->items); - return menu; -} - -/** - * @internal - * * Emits a signal "contextmenu,show" * * @param menu the context menu object diff --git a/Source/WebKit/efl/ewk/ewk_contextmenu_private.h b/Source/WebKit/efl/ewk/ewk_contextmenu_private.h index ce1f3a895..95dcdaa37 100644 --- a/Source/WebKit/efl/ewk/ewk_contextmenu_private.h +++ b/Source/WebKit/efl/ewk/ewk_contextmenu_private.h @@ -21,6 +21,8 @@ #ifndef ewk_contextmenu_private_h #define ewk_contextmenu_private_h +#include "ewk_contextmenu.h" + // forward declarations namespace WebCore { struct ContextMenu; @@ -28,11 +30,10 @@ struct ContextMenuItem; } #if ENABLE(CONTEXT_MENUS) -Ewk_Context_Menu* ewk_context_menu_new(Evas_Object* view, WebCore::ContextMenuController* controller); +Ewk_Context_Menu* ewk_context_menu_new(Evas_Object* view, WebCore::ContextMenuController* controller, WebCore::ContextMenu* coreMenu); bool ewk_context_menu_free(Ewk_Context_Menu* menu); -void ewk_context_menu_item_append(Ewk_Context_Menu* menu, WebCore::ContextMenuItem& core); -Ewk_Context_Menu* ewk_context_menu_customize(Ewk_Context_Menu* menu); +void ewk_context_menu_item_append(Ewk_Context_Menu* menu, const WebCore::ContextMenuItem& core); void ewk_context_menu_show(Ewk_Context_Menu* menu); #endif -#endif // ewk_context_manu_private_h +#endif // ewk_context_menu_private_h diff --git a/Source/WebKit/efl/ewk/ewk_custom_handler.cpp b/Source/WebKit/efl/ewk/ewk_custom_handler.cpp index 3574a1d8a..3c40716bb 100644 --- a/Source/WebKit/efl/ewk/ewk_custom_handler.cpp +++ b/Source/WebKit/efl/ewk/ewk_custom_handler.cpp @@ -20,7 +20,7 @@ #include "config.h" #include "ewk_custom_handler_private.h" -#if ENABLE(REGISTER_PROTOCOL_HANDLER) +#if ENABLE(NAVIGATOR_CONTENT_UTILS) /** * @internal * Register a scheme handler. @@ -69,4 +69,4 @@ bool ewk_custom_handler_unregister_protocol_handler(Ewk_Custom_Handler_Data* dat } #endif // ENABLE(CUSTOM_SCHEME_HANDLER) -#endif // ENABLE(REGISTER_PROTOCOL_HANDLER) +#endif // ENABLE(NAVIGATOR_CONTENT_UTILS) diff --git a/Source/WebKit/efl/ewk/ewk_custom_handler_private.h b/Source/WebKit/efl/ewk/ewk_custom_handler_private.h index bc0e21d54..73f97e0f6 100644 --- a/Source/WebKit/efl/ewk/ewk_custom_handler_private.h +++ b/Source/WebKit/efl/ewk/ewk_custom_handler_private.h @@ -22,7 +22,7 @@ #include "ewk_view.h" -#if ENABLE(REGISTER_PROTOCOL_HANDLER) +#if ENABLE(NAVIGATOR_CONTENT_UTILS) bool ewk_custom_handler_register_protocol_handler(Ewk_Custom_Handler_Data* data); #if ENABLE(CUSTOM_SCHEME_HANDLER) @@ -30,5 +30,5 @@ Ewk_Custom_Handlers_State ewk_custom_handler_is_protocol_handler_registered(Ewk_ bool ewk_custom_handler_unregister_protocol_handler(Ewk_Custom_Handler_Data* data); #endif // ENABLE(CUSTOM_SCHEME_HANDLER) -#endif // ENABLE(REGISTER_PROTOCOL_HANDLER) +#endif // ENABLE(NAVIGATOR_CONTENT_UTILS) #endif // ewk_custom_handler_private_h diff --git a/Source/WebKit/efl/ewk/ewk_frame.cpp b/Source/WebKit/efl/ewk/ewk_frame.cpp index 7231b549d..45259b0a2 100644 --- a/Source/WebKit/efl/ewk/ewk_frame.cpp +++ b/Source/WebKit/efl/ewk/ewk_frame.cpp @@ -38,6 +38,7 @@ #include "HTMLNames.h" #include "HTMLPlugInElement.h" #include "HistoryItem.h" +#include "HitTestRequest.h" #include "HitTestResult.h" #include "IntSize.h" #include "KURL.h" @@ -458,7 +459,7 @@ const char* ewk_frame_script_execute(Evas_Object* ewkFrame, const char* script) JSC::ExecState* exec = smartData->frame->script()->globalObject(WebCore::mainThreadNormalWorld())->globalExec(); JSC::JSLockHolder lock(exec); - resultString = WebCore::ustringToString(result.toString(exec)->value(exec)); + resultString = result.toString(exec)->value(exec); return eina_stringshare_add(resultString.utf8().data()); #else notImplemented(); @@ -693,8 +694,8 @@ Ewk_Hit_Test* ewk_frame_hit_test_new(const Evas_Object* ewkFrame, int x, int y) EINA_SAFETY_ON_NULL_RETURN_VAL(smartData->frame->contentRenderer(), 0); WebCore::HitTestResult result = smartData->frame->eventHandler()->hitTestResultAtPoint - (view->windowToContents(WebCore::IntPoint(x, y)), - /*allowShadowContent*/ false, /*ignoreClipping*/ true); + (view->windowToContents(WebCore::IntPoint(x, y)), + WebCore::HitTestRequest::ReadOnly | WebCore::HitTestRequest::Active | WebCore::HitTestRequest::IgnoreClipping); if (result.scrollbar()) return 0; @@ -897,7 +898,7 @@ Eina_Bool ewk_frame_focused_element_geometry_get(const Evas_Object *ewkFrame, in WebCore::Node* focusedNode = document->focusedNode(); if (!focusedNode) return false; - WebCore::IntRect nodeRect = focusedNode->getPixelSnappedRect(); + WebCore::IntRect nodeRect = focusedNode->pixelSnappedBoundingBox(); if (x) *x = nodeRect.x(); if (y) @@ -1638,7 +1639,7 @@ ssize_t ewk_frame_source_get(const Evas_Object* ewkFrame, char** frameSource) EINA_SAFETY_ON_NULL_RETURN_VAL(smartData->frame->document(), -1); EINA_SAFETY_ON_NULL_RETURN_VAL(frameSource, -1); - WTF::String source; + StringBuilder builder; *frameSource = 0; // Saves 0 to pointer until it's not allocated. if (!smartData->frame->document()->isHTMLDocument()) { @@ -1654,28 +1655,20 @@ ssize_t ewk_frame_source_get(const Evas_Object* ewkFrame, char** frameSource) if (node->hasTagName(WebCore::HTMLNames::htmlTag)) { WebCore::HTMLElement* element = static_cast<WebCore::HTMLElement*>(node); if (element) - source = element->outerHTML(); + builder.append(element->outerHTML()); break; } } - // Try to get <head> and <body> tags if <html> tag was not found. - if (source.isEmpty()) { - if (smartData->frame->document()->head()) - source = smartData->frame->document()->head()->outerHTML(); - - if (smartData->frame->document()->body()) - source += smartData->frame->document()->body()->outerHTML(); - } - - size_t sourceLength = strlen(source.utf8().data()); + CString utf8String = builder.toString().utf8(); + size_t sourceLength = utf8String.length(); *frameSource = static_cast<char*>(malloc(sourceLength + 1)); if (!*frameSource) { CRITICAL("Could not allocate memory."); return -1; } - strncpy(*frameSource, source.utf8().data(), sourceLength); + strncpy(*frameSource, utf8String.data(), sourceLength); (*frameSource)[sourceLength] = '\0'; return sourceLength; diff --git a/Source/WebKit/efl/ewk/ewk_network.cpp b/Source/WebKit/efl/ewk/ewk_network.cpp index 781e945ab..6863aa7eb 100644 --- a/Source/WebKit/efl/ewk/ewk_network.cpp +++ b/Source/WebKit/efl/ewk/ewk_network.cpp @@ -62,11 +62,6 @@ const char* ewk_network_proxy_uri_get(void) return eina_stringshare_add(proxy.utf8().data()); } -void ewk_network_state_notifier_online_set(Eina_Bool online) -{ - WebCore::networkStateNotifier().setOnLine(online); -} - Eina_Bool ewk_network_tls_certificate_check_get() { bool checkCertificates = false; diff --git a/Source/WebKit/efl/ewk/ewk_network.h b/Source/WebKit/efl/ewk/ewk_network.h index d226f23fd..3f1ea39a8 100644 --- a/Source/WebKit/efl/ewk/ewk_network.h +++ b/Source/WebKit/efl/ewk/ewk_network.h @@ -59,13 +59,6 @@ EAPI void ewk_network_proxy_uri_set(const char *proxy); EAPI const char *ewk_network_proxy_uri_get(void); /** - * Sets if network backend is online or not. - * - * @param online @c EINA_FALSE if network is disconnected - */ -EAPI void ewk_network_state_notifier_online_set(Eina_Bool online); - -/** * Returns whether HTTPS connections should check the received certificate and error out if it is invalid. * * By default, HTTPS connections are performed regardless of the validity of the certificate provided. diff --git a/Source/WebKit/efl/ewk/ewk_settings.cpp b/Source/WebKit/efl/ewk/ewk_settings.cpp index e0dcd11ab..f10523dc8 100644 --- a/Source/WebKit/efl/ewk/ewk_settings.cpp +++ b/Source/WebKit/efl/ewk/ewk_settings.cpp @@ -25,7 +25,6 @@ #include "ApplicationCacheStorage.h" #include "CrossOriginPreflightResultCache.h" #include "DatabaseTracker.h" -#include "StorageTracker.h" #include "FontCache.h" #include "FrameView.h" #include "IconDatabase.h" @@ -36,6 +35,8 @@ #include "PageCache.h" #include "RuntimeEnabledFeatures.h" #include "Settings.h" +#include "StorageTracker.h" +#include "WebKitVersion.h" #include "ewk_private.h" #include "ewk_util_private.h" #include <Eina.h> @@ -316,8 +317,8 @@ void ewk_settings_repaint_throttling_set(double deferredRepaintDelay, double ini */ const char* ewk_settings_default_user_agent_get() { - WTF::String uaVersion = makeString(String::number(WEBKIT_USER_AGENT_MAJOR_VERSION), '.', String::number(WEBKIT_USER_AGENT_MINOR_VERSION), '+'); - WTF::String staticUa = makeString("Mozilla/5.0 (", _ewk_settings_webkit_platform_get(), "; ", _ewk_settings_webkit_os_version_get(), ") AppleWebKit/", uaVersion) + makeString(" (KHTML, like Gecko) Version/5.0 Safari/", uaVersion); + WTF::String uaVersion = String::number(WEBKIT_MAJOR_VERSION) + '.' + String::number(WEBKIT_MINOR_VERSION) + '+'; + WTF::String staticUa = "Mozilla/5.0 (" + _ewk_settings_webkit_platform_get() + "; " + _ewk_settings_webkit_os_version_get() + ") AppleWebKit/" + uaVersion + " (KHTML, like Gecko) Version/5.0 Safari/" + uaVersion; return eina_stringshare_add(staticUa.utf8().data()); } diff --git a/Source/WebKit/efl/ewk/ewk_view.cpp b/Source/WebKit/efl/ewk/ewk_view.cpp index 40fbfad6a..4949aac4e 100644 --- a/Source/WebKit/efl/ewk/ewk_view.cpp +++ b/Source/WebKit/efl/ewk/ewk_view.cpp @@ -27,6 +27,7 @@ #include "Bridge.h" #include "Chrome.h" #include "ChromeClientEfl.h" +#include "ContextMenuClientEfl.h" #include "ContextMenuController.h" #include "DocumentLoader.h" #include "DragClientEfl.h" @@ -57,6 +58,7 @@ #include "ResourceHandle.h" #include "Settings.h" #include "c_instance.h" +#include "ewk_contextmenu_private.h" #include "ewk_frame.h" #include "ewk_frame_private.h" #include "ewk_history_private.h" @@ -103,8 +105,8 @@ #include "ColorChooserClient.h" #endif -#if ENABLE(REGISTER_PROTOCOL_HANDLER) -#include "RegisterProtocolHandlerClientEfl.h" +#if ENABLE(NAVIGATOR_CONTENT_UTILS) +#include "NavigatorContentUtilsClientEfl.h" #endif static const float zoomMinimum = 0.05; @@ -254,8 +256,8 @@ struct _Ewk_View_Private_Data { #if ENABLE(INPUT_TYPE_COLOR) WebCore::ColorChooserClient* colorChooserClient; #endif -#if ENABLE(REGISTER_PROTOCOL_HANDLER) || ENABLE(CUSTOM_SCHEME_HANDLER) - OwnPtr<WebCore::RegisterProtocolHandlerClientEfl> registerProtocolHandlerClient; +#if ENABLE(NAVIGATOR_CONTENT_UTILS) || ENABLE(CUSTOM_SCHEME_HANDLER) + OwnPtr<WebCore::NavigatorContentUtilsClientEfl> navigatorContentUtilsClient; #endif struct { Ewk_Menu menu; @@ -332,6 +334,8 @@ struct _Ewk_View_Private_Data { } zoomRange; float devicePixelRatio; double domTimerInterval; + bool allowUniversalAccessFromFileURLs : 1; + bool allowFileAccessFromFileURLs : 1; } settings; struct { struct { @@ -358,6 +362,7 @@ struct _Ewk_View_Private_Data { #ifdef HAVE_ECORE_X bool isUsingEcoreX; #endif + Ewk_Context_Menu* contextMenu; }; #ifndef EWK_TYPE_CHECK @@ -739,6 +744,7 @@ static Ewk_View_Private_Data* _ewk_view_priv_new(Ewk_View_Smart_Data* smartData) WebCore::Page::PageClients pageClients; pageClients.chromeClient = new WebCore::ChromeClientEfl(smartData->self); + pageClients.contextMenuClient = new WebCore::ContextMenuClientEfl; pageClients.editorClient = new WebCore::EditorClientEfl(smartData->self); pageClients.dragClient = new WebCore::DragClientEfl; #if ENABLE(INSPECTOR) @@ -764,9 +770,9 @@ static Ewk_View_Private_Data* _ewk_view_priv_new(Ewk_View_Smart_Data* smartData) WebCore::provideBatteryTo(priv->page.get(), new BatteryClientEfl(smartData->self)); #endif -#if ENABLE(REGISTER_PROTOCOL_HANDLER) - priv->registerProtocolHandlerClient = WebCore::RegisterProtocolHandlerClientEfl::create(smartData->self); - WebCore::provideRegisterProtocolHandlerTo(priv->page.get(), priv->registerProtocolHandlerClient.get()); +#if ENABLE(NAVIGATOR_CONTENT_UTILS) + priv->navigatorContentUtilsClient = WebCore::NavigatorContentUtilsClientEfl::create(smartData->self); + WebCore::provideNavigatorContentUtilsTo(priv->page.get(), priv->navigatorContentUtilsClient.get()); #endif priv->pageSettings = priv->page->settings(); @@ -874,6 +880,9 @@ static Ewk_View_Private_Data* _ewk_view_priv_new(Ewk_View_Smart_Data* smartData) priv->settings.domTimerInterval = priv->pageSettings->defaultMinDOMTimerInterval(); + priv->settings.allowUniversalAccessFromFileURLs = priv->pageSettings->allowUniversalAccessFromFileURLs(); + priv->settings.allowFileAccessFromFileURLs = priv->pageSettings->allowFileAccessFromFileURLs(); + priv->mainFrame = _ewk_view_core_frame_new(smartData, priv, 0).get(); priv->history = ewk_history_new(static_cast<WebCore::BackForwardListImpl*>(priv->page->backForwardList())); @@ -886,6 +895,8 @@ static Ewk_View_Private_Data* _ewk_view_priv_new(Ewk_View_Smart_Data* smartData) priv->isUsingEcoreX = WebCore::isUsingEcoreX(smartData->base.evas); #endif + priv->contextMenu = 0; + return priv; } @@ -919,6 +930,9 @@ static void _ewk_view_priv_del(Ewk_View_Private_Data* priv) if (priv->cursorObject) evas_object_del(priv->cursorObject); + if (priv->contextMenu) + ewk_context_menu_free(priv->contextMenu); + delete priv; } @@ -1619,6 +1633,9 @@ Eina_Bool ewk_view_context_menu_forward_event(Evas_Object* ewkView, const Evas_E Eina_Bool mouse_press_handled = false; priv->page->contextMenuController()->clearContextMenu(); + if (priv->contextMenu) + ewk_context_menu_free(priv->contextMenu); + WebCore::Frame* mainFrame = priv->page->mainFrame(); Evas_Coord x, y; evas_object_geometry_get(smartData->self, &x, &y, 0, 0); @@ -1630,7 +1647,7 @@ Eina_Bool ewk_view_context_menu_forward_event(Evas_Object* ewkView, const Evas_E mainFrame->eventHandler()->handleMousePressEvent(event); } - if (mainFrame->eventHandler()->sendContextMenuEvent(event)) + if (!mainFrame->eventHandler()->sendContextMenuEvent(event)) return false; WebCore::ContextMenu* coreMenu = @@ -1641,6 +1658,12 @@ Eina_Bool ewk_view_context_menu_forward_event(Evas_Object* ewkView, const Evas_E return mouse_press_handled; } + priv->contextMenu = ewk_context_menu_new(ewkView, priv->page->contextMenuController(), coreMenu); + if (!priv->contextMenu) + return false; + + ewk_context_menu_show(priv->contextMenu); + return true; #else return false; @@ -2677,6 +2700,44 @@ Eina_Bool ewk_view_setting_enable_hyperlink_auditing_set(Evas_Object* ewkView, E return true; } +Eina_Bool ewk_view_setting_allow_universal_access_from_file_urls_set(Evas_Object* ewkView, Eina_Bool enable) +{ + EWK_VIEW_SD_GET_OR_RETURN(ewkView, smartData, false); + EWK_VIEW_PRIV_GET_OR_RETURN(smartData, priv, false); + enable = !!enable; + if (priv->settings.allowUniversalAccessFromFileURLs != enable) { + priv->pageSettings->setAllowUniversalAccessFromFileURLs(enable); + priv->settings.allowUniversalAccessFromFileURLs = enable; + } + return true; +} + +Eina_Bool ewk_view_setting_allow_universal_access_from_file_urls_get(const Evas_Object* ewkView) +{ + EWK_VIEW_SD_GET_OR_RETURN(ewkView, smartData, false); + EWK_VIEW_PRIV_GET_OR_RETURN(smartData, priv, false); + return priv->settings.allowUniversalAccessFromFileURLs; +} + +Eina_Bool ewk_view_setting_allow_file_access_from_file_urls_set(Evas_Object* ewkView, Eina_Bool enable) +{ + EWK_VIEW_SD_GET_OR_RETURN(ewkView, smartData, false); + EWK_VIEW_PRIV_GET_OR_RETURN(smartData, priv, false); + enable = !!enable; + if (priv->settings.allowFileAccessFromFileURLs != enable) { + priv->pageSettings->setAllowFileAccessFromFileURLs(enable); + priv->settings.allowFileAccessFromFileURLs = enable; + } + return true; +} + +Eina_Bool ewk_view_setting_allow_file_access_from_file_urls_get(const Evas_Object* ewkView) +{ + EWK_VIEW_SD_GET_OR_RETURN(ewkView, smartData, false); + EWK_VIEW_PRIV_GET_OR_RETURN(smartData, priv, false); + return priv->settings.allowFileAccessFromFileURLs; +} + Ewk_View_Smart_Data* ewk_view_smart_data_get(const Evas_Object* ewkView) { EWK_VIEW_SD_GET_OR_RETURN(ewkView, smartData, 0); diff --git a/Source/WebKit/efl/ewk/ewk_view.h b/Source/WebKit/efl/ewk/ewk_view.h index a570d655e..2a260f1de 100644 --- a/Source/WebKit/efl/ewk/ewk_view.h +++ b/Source/WebKit/efl/ewk/ewk_view.h @@ -735,7 +735,7 @@ EAPI void ewk_view_fixed_layout_size_get(const Evas_Object *o, Evas_Coor * use this one. * * @param o view object to change theme - * @param path theme path, may be @c NULL to reset to the default theme + * @param path theme path */ EAPI void ewk_view_theme_set(Evas_Object *o, const char *path); @@ -2227,6 +2227,58 @@ EAPI Eina_Bool ewk_view_setting_enable_hyperlink_auditing_get(const Evas_Object EAPI Eina_Bool ewk_view_setting_enable_hyperlink_auditing_set(Evas_Object *o, Eina_Bool enable); /** + * Enables/disables allowing universal access from file URLs. + * + * This setting specifies whether locally loaded documents are allowed to access remote urls. + * By default this setting is enabled. + * + * @param o view object to set allowing universal access from file URLs + * @param enable @c EINA_TRUE to enable universal access from file URLs, + * @c EINA_FALSE to disable + * + * @return @c EINA_TRUE on success or @c EINA_FALSE on failure + */ +EAPI Eina_Bool ewk_view_setting_allow_universal_access_from_file_urls_set(Evas_Object *o, Eina_Bool flag); + +/** + * Gets if allowing universal access from file URLs is enabled. + * + * @param o view object to query if allowing universal access from file URLs is enabled. + * + * @return @c EINA_TRUE if allowing universal access from file URLs is enabled, @c EINA_FALSE + * otherwise + * + * @see ewk_view_setting_allow_universal_access_from_file_urls_set() + */ +EAPI Eina_Bool ewk_view_setting_allow_universal_access_from_file_urls_get(const Evas_Object *o); + +/** + * Enables/disables allowing file access from file URLs. + * + * This setting specifies whether locally loaded documents are allowed to access other local urls. + * By default this setting is enabled. + * + * @param o view object to set allowing file access from file URLs + * @param enable @c EINA_TRUE to enable file access from file URLs, + * @c EINA_FALSE to disable + * + * @return @c EINA_TRUE on success or @c EINA_FALSE on failure + */ +EAPI Eina_Bool ewk_view_setting_allow_file_access_from_file_urls_set(Evas_Object *o, Eina_Bool flag); + +/** + * Gets if allowing file access from file URLs is enabled. + * + * @param o view object to query if allowing file access from file URLs is enabled. + * + * @return @c EINA_TRUE if allowing file access from file URLs is enabled, @c EINA_FALSE + * otherwise + * + * @see ewk_view_setting_allow_file_access_from_file_urls_set() + */ +EAPI Eina_Bool ewk_view_setting_allow_file_access_from_file_urls_get(const Evas_Object *o); + +/** * Gets the internal data of @a o. * * This is similar to evas_object_smart_data_get(), but additionally does type checking. diff --git a/Source/WebKit/gtk/ChangeLog b/Source/WebKit/gtk/ChangeLog index 40d71220a..778dabcf3 100644 --- a/Source/WebKit/gtk/ChangeLog +++ b/Source/WebKit/gtk/ChangeLog @@ -1,3 +1,281 @@ +2012-09-09 Emil A Eklund <eae@chromium.org> + + Rename Node::getRect/getPixelSnappedRect and remove ContainerNode::getRect + https://bugs.webkit.org/show_bug.cgi?id=81413 + + Reviewed by David Hyatt. + + Update ChromeClientGtk and webkitwebview to call pixelSnappedBoundingBox. + + * WebCoreSupport/ChromeClientGtk.cpp: + (WebKit::ChromeClient::mouseDidMoveOverElement): + * webkit/webkitwebview.cpp: + (getLocationForKeyboardGeneratedContextMenu): + (webkit_web_view_query_tooltip): + +2012-09-07 Martin Robinson <mrobinson@igalia.com> + + [GTK] Move user agent helpers to WebCore + https://bugs.webkit.org/show_bug.cgi?id=95745 + + Reviewed by Carlos Garcia Campos. + + Move the code for determining the user agent to WebCore and have WebKit1 + use the new shared code. + + * webkit/webkitwebsettings.cpp: Use the WebCore code to determine the user + agent in WebKit1. + +2012-09-05 Sam Weinig <sam@webkit.org> + + Part 2 of removing PlatformString.h, remove PlatformString.h + https://bugs.webkit.org/show_bug.cgi?id=95931 + + Reviewed by Adam Barth. + + Remove PlatformString.h + + * WebCoreSupport/ChromeClientGtk.cpp: + * WebCoreSupport/DumpRenderTreeSupportGtk.cpp: + * WebCoreSupport/InspectorClientGtk.cpp: + * gdom/ConvertToGCharPrivate.h: + * webkit/webkitsecurityorigin.cpp: + * webkit/webkitwebdatasource.cpp: + * webkit/webkitwebhistoryitem.cpp: + * webkit/webkitwebresource.cpp: + +2012-09-06 Carlos Garcia Campos <cgarcia@igalia.com> + + [GTK] Add API to get/set the security policy of a given URI scheme + https://bugs.webkit.org/show_bug.cgi?id=95549 + + Reviewed by Martin Robinson. + + Add WebKitSecurityPolicy enum with flags that represent the + security policy of a URI scheme. Add methods to get and set the + security policy flags for a given URI scheme. + + * docs/webkitgtk-sections.txt: Add new symbols. + * tests/testglobals.c: + (test_globals_security_policy): + (main): + * webkit/webkitglobals.cpp: + (webkit_set_security_policy_for_uri_scheme): + (webkit_get_security_policy_for_uri_scheme): + * webkit/webkitglobals.h: + +2012-09-05 Kaustubh Atrawalkar <kaustubh@motorola.com> + + [DRT] LTC:: Move printing related APIs from LayoutTestController to Internals + https://bugs.webkit.org/show_bug.cgi?id=92735 + + Reviewed by Hajime Morita. + + Move numberOfPages, pageProperty & pageSizeAndMarginsInPixels in Internals and remove duplicated code from DumprenderTree & WebkitTestRunner. + + * WebCoreSupport/DumpRenderTreeSupportGtk.cpp: + * WebCoreSupport/DumpRenderTreeSupportGtk.h: + (DumpRenderTreeSupportGtk): + +2012-09-04 Joanmarie Diggs <jdiggs@igalia.com> + + [GTK] Crash in AccessibilityObject::accessibilityPlatformIncludesObject() + https://bugs.webkit.org/show_bug.cgi?id=95740 + + Reviewed by Martin Robinson. + + Updated unit test. + + * tests/testatk.c: + (testWebkitAtkComboBox): Added checks that the menu popup in a combo box + has 0 links and, more importantly, that checking doesn't result in a crash. + +2012-09-01 Joanmarie Diggs <jdiggs@igalia.com> + + [Gtk] Incorrect/unexpected characters in the text of certain accessibles + https://bugs.webkit.org/show_bug.cgi?id=95180 + + Reviewed by Chris Fleizach. + + Corrected a unit test in which the expected accessible text was wrong as + a result of this bug. In particular, the AtkText inserted into an empty + text field is expected to be the same text atk_text_get_text() returns. + That was not happening -- and presumably not noticed as a result of the + hard to read textual representation of the multibyte password field + bullets. + + * tests/testatk.c: + (testWebkitAtkTextChangedNotifications): Corrected the test and added a + comment so that one knows what the multibyte character is. + +2012-08-31 José Dapena Paz <jdapena@igalia.com> + + [GTK] Assert on ChromeClientGtk::scroll with delta (0, -1). + https://bugs.webkit.org/show_bug.cgi?id=95590 + + Change the assert to avoid hitting when the delta does not have any + value > 0. + + Reviewed by Martin Robinson. + + * WebCoreSupport/ChromeClientGtk.cpp: + (WebKit::ChromeClient::scroll): + +2012-08-30 Benjamin Poulain <bpoulain@apple.com> + + Replace JSC::UString by WTF::String + https://bugs.webkit.org/show_bug.cgi?id=95271 + + Reviewed by Geoffrey Garen. + + Replace UString by String. + + * gdom/ConvertToGCharPrivate.h: + (copyAsGchar): + +2012-08-30 Gyuyoung Kim <gyuyoung.kim@samsung.com> + + Use ASCIILiteral for DEFINE_STATIC_LOCAL string + https://bugs.webkit.org/show_bug.cgi?id=95420 + + Reviewed by Benjamin Poulain. + + As recommended by http://trac.webkit.org/wiki/EfficientStrings, + WebKit needs to use ASCIILiteral for the string of DEFINE_STATIC_LOCAL. + + * webkit/webkitwebsettings.cpp: + (webkitPlatform): + (webkitOSVersion): + +2012-08-29 José Dapena Paz <jdapena@igalia.com> + + [Gtk] Process Gtk 3.4 smooth scroll events properly. + https://bugs.webkit.org/show_bug.cgi?id=88070 + + Gtk 3.3.18 added smooth scroll events, adding a new scroll direction that + provides detailed delta information. + + Added GDK_SMOOTH_SCROLL_MASK to the events listened, and added + code to process properly the new direction GDK_SCROLL_SMOOTH and + its deltas. + + Reviewed by Martin Robinson. + + * webkit/webkitwebview.cpp: + (webkit_web_view_realize): + +2012-08-28 Martin Robinson <mrobinson@igalia.com> + + [GTK] Enable the edge distance anti-aliasing for accelerated compositing layers + https://bugs.webkit.org/show_bug.cgi?id=95272 + + Reviewed by No'am Rosenthal. + + Turn on edge-distance anti-aliasing for GTK+ WebKit1. This + improves the quality of layer rendering. + + * WebCoreSupport/AcceleratedCompositingContextGL.cpp: + (WebKit::AcceleratedCompositingContext::initialize): + +2012-08-28 Sheriff Bot <webkit.review.bot@gmail.com> + + Unreviewed, rolling out r126914. + http://trac.webkit.org/changeset/126914 + https://bugs.webkit.org/show_bug.cgi?id=95239 + + it breaks everything and fixes nothing (Requested by pizlo on + #webkit). + + * WebCoreSupport/PlatformStrategiesGtk.cpp: + (PlatformStrategiesGtk::getPluginInfo): + * webkit/webkitfavicondatabase.cpp: + (webkitFaviconDatabaseImportFinished): + * webkit/webkitwebplugin.cpp: + (webkit_web_plugin_get_mimetypes): + +2012-08-28 Caio Marcelo de Oliveira Filho <caio.oliveira@openbossa.org> + + Rename first/second to key/value in HashMap iterators + https://bugs.webkit.org/show_bug.cgi?id=82784 + + Reviewed by Eric Seidel. + + * WebCoreSupport/PlatformStrategiesGtk.cpp: + (PlatformStrategiesGtk::getPluginInfo): + * webkit/webkitfavicondatabase.cpp: + (webkitFaviconDatabaseImportFinished): + * webkit/webkitwebplugin.cpp: + (webkit_web_plugin_get_mimetypes): + +2012-08-27 Zan Dobersek <zandobersek@gmail.com> + + [GTK] Memory cache should be cleared in between test runs + https://bugs.webkit.org/show_bug.cgi?id=95105 + + Reviewed by Martin Robinson. + + Add a DumpRenderTreeSupportGtk helper method that clears the + memory cache when called. + + * WebCoreSupport/DumpRenderTreeSupportGtk.cpp: + (DumpRenderTreeSupportGtk::clearMemoryCache): + * WebCoreSupport/DumpRenderTreeSupportGtk.h: + (DumpRenderTreeSupportGtk): + +2012-08-27 Sheriff Bot <webkit.review.bot@gmail.com> + + Unreviewed, rolling out r126836. + http://trac.webkit.org/changeset/126836 + https://bugs.webkit.org/show_bug.cgi?id=95163 + + Broke all Apple ports, EFL, and Qt. (Requested by tkent on + #webkit). + + * WebCoreSupport/PlatformStrategiesGtk.cpp: + (PlatformStrategiesGtk::getPluginInfo): + * webkit/webkitfavicondatabase.cpp: + (webkitFaviconDatabaseImportFinished): + * webkit/webkitwebplugin.cpp: + (webkit_web_plugin_get_mimetypes): + +2012-08-27 Caio Marcelo de Oliveira Filho <caio.oliveira@openbossa.org> + + Rename first/second to key/value in HashMap iterators + https://bugs.webkit.org/show_bug.cgi?id=82784 + + Reviewed by Eric Seidel. + + * WebCoreSupport/PlatformStrategiesGtk.cpp: + (PlatformStrategiesGtk::getPluginInfo): + * webkit/webkitfavicondatabase.cpp: + (webkitFaviconDatabaseImportFinished): + * webkit/webkitwebplugin.cpp: + (webkit_web_plugin_get_mimetypes): + +2012-08-27 Mikhail Pozdnyakov <mikhail.pozdnyakov@intel.com> + + Rename RegisterProtocolHandler API to NavigatorContentUtils + https://bugs.webkit.org/show_bug.cgi?id=94920 + + Reviewed by Adam Barth. + + Renaming whatever RegisterProtocolHandler-prefixed to NavigatorContentUtils-prefixed. + RegisterProtocolHandlerClientGtk is renamed to NavigatorContentUtilsClientGtk. + + * GNUmakefile.am: + * WebCoreSupport/NavigatorContentUtilsClientGtk.cpp: Renamed from Source/WebKit/gtk/WebCoreSupport/RegisterProtocolHandlerClientGtk.cpp. + (WebKit): + (WebKit::NavigatorContentUtilsClient::create): + (WebKit::NavigatorContentUtilsClient::NavigatorContentUtilsClient): + (WebKit::NavigatorContentUtilsClient::registerProtocolHandler): + * WebCoreSupport/NavigatorContentUtilsClientGtk.h: Renamed from Source/WebKit/gtk/WebCoreSupport/RegisterProtocolHandlerClientGtk.h. + (WebKit): + (NavigatorContentUtilsClient): + (WebKit::NavigatorContentUtilsClient::~NavigatorContentUtilsClient): + * webkit/webkitwebview.cpp: + (webkit_web_view_init): + * webkit/webkitwebviewprivate.h: + 2012-08-23 Carlos Garcia Campos <cgarcia@igalia.com> REGRESSION(r126306): it broke the plugin process diff --git a/Source/WebKit/gtk/GNUmakefile.am b/Source/WebKit/gtk/GNUmakefile.am index 00473f9d5..db6c9b0bc 100644 --- a/Source/WebKit/gtk/GNUmakefile.am +++ b/Source/WebKit/gtk/GNUmakefile.am @@ -211,11 +211,11 @@ webkitgtk_sources += \ Source/WebKit/gtk/WebCoreSupport/GtkAdjustmentWatcher.h \ Source/WebKit/gtk/WebCoreSupport/InspectorClientGtk.cpp \ Source/WebKit/gtk/WebCoreSupport/InspectorClientGtk.h \ + Source/WebKit/gtk/WebCoreSupport/NavigatorContentUtilsClientGtk.h \ + Source/WebKit/gtk/WebCoreSupport/NavigatorContentUtilsClientGtk.cpp \ Source/WebKit/gtk/WebCoreSupport/PasteboardHelperGtk.h \ Source/WebKit/gtk/WebCoreSupport/PlatformStrategiesGtk.h \ Source/WebKit/gtk/WebCoreSupport/PlatformStrategiesGtk.cpp \ - Source/WebKit/gtk/WebCoreSupport/RegisterProtocolHandlerClientGtk.h \ - Source/WebKit/gtk/WebCoreSupport/RegisterProtocolHandlerClientGtk.cpp \ Source/WebKit/gtk/WebCoreSupport/UserMediaClientGtk.cpp \ Source/WebKit/gtk/WebCoreSupport/UserMediaClientGtk.h \ Source/WebKit/gtk/WebCoreSupport/WebViewInputMethodFilter.cpp \ diff --git a/Source/WebKit/gtk/WebCoreSupport/AcceleratedCompositingContextGL.cpp b/Source/WebKit/gtk/WebCoreSupport/AcceleratedCompositingContextGL.cpp index 9a2cae0ad..95da644e3 100644 --- a/Source/WebKit/gtk/WebCoreSupport/AcceleratedCompositingContextGL.cpp +++ b/Source/WebKit/gtk/WebCoreSupport/AcceleratedCompositingContextGL.cpp @@ -97,8 +97,9 @@ void AcceleratedCompositingContext::initialize() // The creation of the TextureMapper needs an active OpenGL context. GLContext* context = m_redirectedWindow->context(); context->makeContextCurrent(); - m_textureMapper = TextureMapperGL::create(); + m_textureMapper = TextureMapperGL::create(); + static_cast<TextureMapperGL*>(m_textureMapper.get())->setEnableEdgeDistanceAntialiasing(true); toTextureMapperLayer(m_rootLayer.get())->setTextureMapper(m_textureMapper.get()); scheduleLayerFlush(); diff --git a/Source/WebKit/gtk/WebCoreSupport/ChromeClientGtk.cpp b/Source/WebKit/gtk/WebCoreSupport/ChromeClientGtk.cpp index 740e3bbca..3523fa78d 100644 --- a/Source/WebKit/gtk/WebCoreSupport/ChromeClientGtk.cpp +++ b/Source/WebKit/gtk/WebCoreSupport/ChromeClientGtk.cpp @@ -46,7 +46,6 @@ #include "KURL.h" #include "NavigationAction.h" #include "NotImplemented.h" -#include "PlatformString.h" #include "PopupMenuClient.h" #include "PopupMenuGtk.h" #include "RefPtrCairo.h" @@ -72,6 +71,7 @@ #include <gtk/gtk.h> #include <wtf/MathExtras.h> #include <wtf/text/CString.h> +#include <wtf/text/WTFString.h> #if ENABLE(SQL_DATABASE) #include "DatabaseTracker.h" @@ -651,7 +651,7 @@ void ChromeClient::scroll(const IntSize& delta, const IntRect& rectToScroll, con AcceleratedCompositingContext* compositingContext = m_webView->priv->acceleratedCompositingContext.get(); if (compositingContext->enabled()) { ASSERT(!rectToScroll.isEmpty()); - ASSERT(!delta.isEmpty()); + ASSERT(delta.width() || delta.height()); compositingContext->scrollNonCompositedContents(rectToScroll, delta); return; @@ -786,7 +786,7 @@ void ChromeClient::mouseDidMoveOverElement(const HitTestResult& hit, unsigned mo if (Node* node = hit.innerNonSharedNode()) { Frame* frame = node->document()->frame(); FrameView* view = frame ? frame->view() : 0; - m_webView->priv->tooltipArea = view ? view->contentsToWindow(node->getPixelSnappedRect()) : IntRect(); + m_webView->priv->tooltipArea = view ? view->contentsToWindow(node->pixelSnappedBoundingBox()) : IntRect(); } else m_webView->priv->tooltipArea = IntRect(); } diff --git a/Source/WebKit/gtk/WebCoreSupport/DumpRenderTreeSupportGtk.cpp b/Source/WebKit/gtk/WebCoreSupport/DumpRenderTreeSupportGtk.cpp index c76dce9f6..39b9ddc30 100644 --- a/Source/WebKit/gtk/WebCoreSupport/DumpRenderTreeSupportGtk.cpp +++ b/Source/WebKit/gtk/WebCoreSupport/DumpRenderTreeSupportGtk.cpp @@ -50,10 +50,10 @@ #include "JSLock.h" #include "JSNodeList.h" #include "JSValue.h" +#include "MemoryCache.h" #include "MutationObserver.h" #include "NodeList.h" #include "PageGroup.h" -#include "PlatformString.h" #include "PrintContext.h" #include "RenderListItem.h" #include "RenderTreeAsText.h" @@ -72,6 +72,7 @@ #include "webkitwebview.h" #include "webkitwebviewprivate.h" #include <JavaScriptCore/APICast.h> +#include <wtf/text/WTFString.h> using namespace JSC; using namespace WebCore; @@ -189,68 +190,6 @@ CString DumpRenderTreeSupportGtk::dumpRenderTree(WebKitWebFrame* frame) } /** - * numberOfPagesForFrame - * @frame: a #WebKitWebFrame - * @pageWidth: width of a page - * @pageHeight: height of a page - * - * Return value: The number of pages to be printed. - */ -int DumpRenderTreeSupportGtk::numberOfPagesForFrame(WebKitWebFrame* frame, float pageWidth, float pageHeight) -{ - g_return_val_if_fail(WEBKIT_IS_WEB_FRAME(frame), 0); - - Frame* coreFrame = core(frame); - if (!coreFrame) - return -1; - - return PrintContext::numberOfPages(coreFrame, FloatSize(pageWidth, pageHeight)); -} - -/** - * pageProperty - * @frame: a #WebKitWebFrame - * @propertyName: name of a property - * @pageNumber: number of a page - * - * Return value: The value of the given property name. - */ -CString DumpRenderTreeSupportGtk::pageProperty(WebKitWebFrame* frame, const char* propertyName, int pageNumber) -{ - g_return_val_if_fail(WEBKIT_IS_WEB_FRAME(frame), CString()); - - Frame* coreFrame = core(frame); - if (!coreFrame) - return CString(); - - return PrintContext::pageProperty(coreFrame, propertyName, pageNumber).utf8(); -} - -/** - * pageSizeAndMarginsInPixels - * @frame: a #WebKitWebFrame - * @pageNumber: number of a page - * @width: width of a page - * @height: height of a page - * @marginTop: top margin of a page - * @marginRight: right margin of a page - * @marginBottom: bottom margin of a page - * @marginLeft: left margin of a page - * - * Return value: The value of page size and margin. - */ -CString DumpRenderTreeSupportGtk::pageSizeAndMarginsInPixels(WebKitWebFrame* frame, int pageNumber, int width, int height, int marginTop, int marginRight, int marginBottom, int marginLeft) -{ - g_return_val_if_fail(WEBKIT_IS_WEB_FRAME(frame), CString()); - - Frame* coreFrame = core(frame); - if (!coreFrame) - return CString(); - - return PrintContext::pageSizeAndMarginsInPixels(coreFrame, pageNumber, width, height, marginTop, marginRight, marginBottom, marginLeft).utf8(); -} - -/** * addUserStyleSheet * @frame: a #WebKitWebFrame * @sourceCode: code of a user stylesheet @@ -867,3 +806,8 @@ void DumpRenderTreeSupportGtk::resetTrackedRepaints(WebKitWebFrame* frame) if (coreFrame && coreFrame->view()) coreFrame->view()->resetTrackedRepaints(); } + +void DumpRenderTreeSupportGtk::clearMemoryCache() +{ + memoryCache()->evictResources(); +} diff --git a/Source/WebKit/gtk/WebCoreSupport/DumpRenderTreeSupportGtk.h b/Source/WebKit/gtk/WebCoreSupport/DumpRenderTreeSupportGtk.h index ea608d2f5..7e6e1fa9b 100644 --- a/Source/WebKit/gtk/WebCoreSupport/DumpRenderTreeSupportGtk.h +++ b/Source/WebKit/gtk/WebCoreSupport/DumpRenderTreeSupportGtk.h @@ -59,9 +59,6 @@ public: static GSList* getFrameChildren(WebKitWebFrame*); static WTF::CString getInnerText(WebKitWebFrame*); static WTF::CString dumpRenderTree(WebKitWebFrame*); - static int numberOfPagesForFrame(WebKitWebFrame*, float pageWidth, float pageHeight); - static WTF::CString pageProperty(WebKitWebFrame*, const char* propertyName, int pageNumber); - static WTF::CString pageSizeAndMarginsInPixels(WebKitWebFrame*, int pageNumber, int width, int height, int marginTop, int marginRight, int marginBottom, int marginLeft); static void addUserStyleSheet(WebKitWebFrame*, const char* sourceCode, bool allFrames); static guint getPendingUnloadEventCount(WebKitWebFrame*); static bool pauseAnimation(WebKitWebFrame*, const char* name, double time, const char* element); @@ -130,6 +127,8 @@ public: static GSList* trackedRepaintRects(WebKitWebFrame*); static void resetTrackedRepaints(WebKitWebFrame*); + static void clearMemoryCache(); + private: static bool s_drtRun; static bool s_linksIncludedInTabChain; diff --git a/Source/WebKit/gtk/WebCoreSupport/InspectorClientGtk.cpp b/Source/WebKit/gtk/WebCoreSupport/InspectorClientGtk.cpp index ed776b026..b129c6fb4 100644 --- a/Source/WebKit/gtk/WebCoreSupport/InspectorClientGtk.cpp +++ b/Source/WebKit/gtk/WebCoreSupport/InspectorClientGtk.cpp @@ -25,13 +25,13 @@ #include "InspectorController.h" #include "NotImplemented.h" #include "Page.h" -#include "PlatformString.h" #include "webkitversion.h" #include "webkitwebinspector.h" #include "webkitwebinspectorprivate.h" #include "webkitwebview.h" #include "webkitwebviewprivate.h" #include <wtf/text/CString.h> +#include <wtf/text/WTFString.h> using namespace WebCore; diff --git a/Source/WebKit/gtk/WebCoreSupport/RegisterProtocolHandlerClientGtk.cpp b/Source/WebKit/gtk/WebCoreSupport/NavigatorContentUtilsClientGtk.cpp index 9e38851e5..905769c35 100644 --- a/Source/WebKit/gtk/WebCoreSupport/RegisterProtocolHandlerClientGtk.cpp +++ b/Source/WebKit/gtk/WebCoreSupport/NavigatorContentUtilsClientGtk.cpp @@ -17,28 +17,28 @@ */ #include "config.h" -#include "RegisterProtocolHandlerClientGtk.h" +#include "NavigatorContentUtilsClientGtk.h" -#if ENABLE(REGISTER_PROTOCOL_HANDLER) +#if ENABLE(NAVIGATOR_CONTENT_UTILS) #include "NotImplemented.h" #include <wtf/text/CString.h> namespace WebKit { -PassOwnPtr<RegisterProtocolHandlerClient> RegisterProtocolHandlerClient::create() +PassOwnPtr<NavigatorContentUtilsClient> NavigatorContentUtilsClient::create() { - return adoptPtr(new RegisterProtocolHandlerClient); + return adoptPtr(new NavigatorContentUtilsClient); } -RegisterProtocolHandlerClient::RegisterProtocolHandlerClient() +NavigatorContentUtilsClient::NavigatorContentUtilsClient() { } -void RegisterProtocolHandlerClient::registerProtocolHandler(const String& scheme, const String& baseURL, const String& url, const String& title) +void NavigatorContentUtilsClient::registerProtocolHandler(const String& scheme, const String& baseURL, const String& url, const String& title) { notImplemented(); } } -#endif // ENABLE(REGISTER_PROTOCOL_HANDLER) +#endif // ENABLE(NAVIGATOR_CONTENT_UTILS) diff --git a/Source/WebKit/gtk/WebCoreSupport/RegisterProtocolHandlerClientGtk.h b/Source/WebKit/gtk/WebCoreSupport/NavigatorContentUtilsClientGtk.h index f4889f38f..a6f3e2361 100644 --- a/Source/WebKit/gtk/WebCoreSupport/RegisterProtocolHandlerClientGtk.h +++ b/Source/WebKit/gtk/WebCoreSupport/NavigatorContentUtilsClientGtk.h @@ -16,29 +16,29 @@ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ -#ifndef RegisterProtocolHandlerClientGtk_h -#define RegisterProtocolHandlerClientGtk_h +#ifndef NavigatorContentUtilsClientGtk_h +#define NavigatorContentUtilsClientGtk_h -#if ENABLE(REGISTER_PROTOCOL_HANDLER) -#include "RegisterProtocolHandlerClient.h" +#if ENABLE(NAVIGATOR_CONTENT_UTILS) +#include "NavigatorContentUtilsClient.h" #include <wtf/PassOwnPtr.h> namespace WebKit { -class RegisterProtocolHandlerClient : public WebCore::RegisterProtocolHandlerClient { +class NavigatorContentUtilsClient : public WebCore::NavigatorContentUtilsClient { public: - static PassOwnPtr<RegisterProtocolHandlerClient> create(); + static PassOwnPtr<NavigatorContentUtilsClient> create(); - ~RegisterProtocolHandlerClient() { } + ~NavigatorContentUtilsClient() { } virtual void registerProtocolHandler(const String& scheme, const String& baseURL, const String& url, const String& title); private: - RegisterProtocolHandlerClient(); + NavigatorContentUtilsClient(); }; } #endif -#endif // RegisterProtocolHandlerClientGtk_h +#endif // NavigatorContentUtilsClientGtk_h diff --git a/Source/WebKit/gtk/docs/webkitgtk-sections.txt b/Source/WebKit/gtk/docs/webkitgtk-sections.txt index 59970b59c..b707bf83d 100644 --- a/Source/WebKit/gtk/docs/webkitgtk-sections.txt +++ b/Source/WebKit/gtk/docs/webkitgtk-sections.txt @@ -536,6 +536,10 @@ webkit_set_cache_model <SUBSECTION ContextMenuItem> WebKitContextMenuAction webkit_context_menu_item_get_action +<SUBSECTION SecurityPolicy> +WebKitSecurityPolicy +webkit_set_security_policy_for_uri_scheme +webkit_get_security_policy_for_uri_scheme <SUBSECTION Private> WEBKITGTK_API_VERSION </SECTION> diff --git a/Source/WebKit/gtk/gdom/ConvertToGCharPrivate.h b/Source/WebKit/gtk/gdom/ConvertToGCharPrivate.h index afbed4961..2c32f2c9a 100644 --- a/Source/WebKit/gtk/gdom/ConvertToGCharPrivate.h +++ b/Source/WebKit/gtk/gdom/ConvertToGCharPrivate.h @@ -21,9 +21,9 @@ #define ConvertToGCharPrivate_h #include "KURL.h" -#include "PlatformString.h" #include <wtf/text/CString.h> #include <wtf/text/AtomicString.h> +#include <wtf/text/WTFString.h> inline gchar* copyAsGchar(WTF::String const& s) { @@ -35,7 +35,7 @@ inline gchar* copyAsGchar(WebCore::KURL const& s) return copyAsGchar(s.string()); } -inline gchar* copyAsGchar(const JSC::UString& s) +inline gchar* copyAsGchar(const String& s) { return g_strdup(s.UTF8String().c_str()); } diff --git a/Source/WebKit/gtk/tests/testatk.c b/Source/WebKit/gtk/tests/testatk.c index 759da1771..cc90d9472 100644 --- a/Source/WebKit/gtk/tests/testatk.c +++ b/Source/WebKit/gtk/tests/testatk.c @@ -562,6 +562,10 @@ static void testWebkitAtkComboBox() g_assert(selectedItem == item1); g_object_unref(selectedItem); + /* Check that the menu popup has 0 links and doesn't crash from checking. */ + gint nLinks = atk_hypertext_get_n_links(ATK_HYPERTEXT(menuPopup)); + g_assert_cmpint(nLinks, ==, 0); + /* Check the implementations of the AtkAction interface. */ g_assert(ATK_IS_ACTION(comboBox)); AtkAction* atkAction = ATK_ACTION(comboBox); @@ -1867,17 +1871,18 @@ static void testWebkitAtkTextChangedNotifications() GINT_TO_POINTER(TEXT_CHANGE_REMOVE)); pos = 0; + /* A single bullet character is '\342\200\242' */ atk_editable_text_insert_text(ATK_EDITABLE_TEXT(passwordEntry), "foobar", 6, &pos); g_assert_cmpstr(textChangedResult, ==, "|1|0|6|'\342\200\242\342\200\242\342\200\242\342\200\242\342\200\242\342\200\242'|"); text = atk_text_get_text(ATK_TEXT(passwordEntry), 0, -1); - g_assert_cmpstr(text, ==, "\303\242\302\200\302\242\303\242\302\200\302\242"); + g_assert_cmpstr(text, ==, "\342\200\242\342\200\242\342\200\242\342\200\242\342\200\242\342\200\242"); g_free(text); atk_editable_text_delete_text(ATK_EDITABLE_TEXT(passwordEntry), 2, 4); g_assert_cmpstr(textChangedResult, ==, "|2|2|2|'\342\200\242\342\200\242'|"); text = atk_text_get_text(ATK_TEXT(passwordEntry), 0, -1); - g_assert_cmpstr(text, ==, "\303\242\302\200\302\242\303\242"); + g_assert_cmpstr(text, ==, "\342\200\242\342\200\242\342\200\242\342\200\242"); g_free(text); pos = 3; @@ -1885,7 +1890,7 @@ static void testWebkitAtkTextChangedNotifications() g_assert_cmpstr(textChangedResult, ==, "|1|3|3|'\342\200\242\342\200\242\342\200\242'|"); text = atk_text_get_text(ATK_TEXT(passwordEntry), 0, -1); - g_assert_cmpstr(text, ==, "\303\242\302\200\302\242\303\242\302\200\302\242\303\242"); + g_assert_cmpstr(text, ==, "\342\200\242\342\200\242\342\200\242\342\200\242\342\200\242\342\200\242\342\200\242"); g_free(text); g_free(textChangedResult); diff --git a/Source/WebKit/gtk/tests/testglobals.c b/Source/WebKit/gtk/tests/testglobals.c index 509c3bf76..f32605025 100644 --- a/Source/WebKit/gtk/tests/testglobals.c +++ b/Source/WebKit/gtk/tests/testglobals.c @@ -45,6 +45,58 @@ static void test_globals_default_session() g_assert(soup_session_get_feature(session, WEBKIT_TYPE_SOUP_AUTH_DIALOG) == NULL); } +static void test_globals_security_policy() +{ + // Check default policy for well known schemes. + WebKitSecurityPolicy policy = webkit_get_security_policy_for_uri_scheme("http"); + guint mask = WEBKIT_SECURITY_POLICY_CORS_ENABLED; + g_assert_cmpuint(policy & mask, ==, mask); + + policy = webkit_get_security_policy_for_uri_scheme("https"); + mask = WEBKIT_SECURITY_POLICY_SECURE | WEBKIT_SECURITY_POLICY_CORS_ENABLED; + g_assert_cmpuint(policy & mask, ==, mask); + + policy = webkit_get_security_policy_for_uri_scheme("file"); + mask = WEBKIT_SECURITY_POLICY_LOCAL; + g_assert_cmpuint(policy & mask, ==, mask); + + policy = webkit_get_security_policy_for_uri_scheme("data"); + mask = WEBKIT_SECURITY_POLICY_NO_ACCESS_TO_OTHER_SCHEME | WEBKIT_SECURITY_POLICY_SECURE; + g_assert_cmpuint(policy & mask, ==, mask); + + policy = webkit_get_security_policy_for_uri_scheme("about"); + mask = WEBKIT_SECURITY_POLICY_NO_ACCESS_TO_OTHER_SCHEME | WEBKIT_SECURITY_POLICY_SECURE | WEBKIT_SECURITY_POLICY_EMPTY_DOCUMENT; + g_assert_cmpuint(policy & mask, ==, mask); + + // Custom scheme. + policy = webkit_get_security_policy_for_uri_scheme("foo"); + g_assert(!policy); + + policy |= WEBKIT_SECURITY_POLICY_LOCAL; + webkit_set_security_policy_for_uri_scheme("foo", policy); + g_assert_cmpuint(webkit_get_security_policy_for_uri_scheme("foo"), ==, policy); + + policy |= WEBKIT_SECURITY_POLICY_NO_ACCESS_TO_OTHER_SCHEME; + webkit_set_security_policy_for_uri_scheme("foo", policy); + g_assert_cmpuint(webkit_get_security_policy_for_uri_scheme("foo"), ==, policy); + + policy |= WEBKIT_SECURITY_POLICY_DISPLAY_ISOLATED; + webkit_set_security_policy_for_uri_scheme("foo", policy); + g_assert_cmpuint(webkit_get_security_policy_for_uri_scheme("foo"), ==, policy); + + policy |= WEBKIT_SECURITY_POLICY_SECURE; + webkit_set_security_policy_for_uri_scheme("foo", policy); + g_assert_cmpuint(webkit_get_security_policy_for_uri_scheme("foo"), ==, policy); + + policy |= WEBKIT_SECURITY_POLICY_CORS_ENABLED; + webkit_set_security_policy_for_uri_scheme("foo", policy); + g_assert_cmpuint(webkit_get_security_policy_for_uri_scheme("foo"), ==, policy); + + policy |= WEBKIT_SECURITY_POLICY_EMPTY_DOCUMENT; + webkit_set_security_policy_for_uri_scheme("foo", policy); + g_assert_cmpuint(webkit_get_security_policy_for_uri_scheme("foo"), ==, policy); +} + int main(int argc, char** argv) { gtk_test_init(&argc, &argv, NULL); @@ -52,6 +104,8 @@ int main(int argc, char** argv) g_test_bug_base("https://bugs.webkit.org/"); g_test_add_func("/webkit/globals/default_session", test_globals_default_session); + g_test_add_func("/webkit/globals/security-policy", + test_globals_security_policy); return g_test_run(); } diff --git a/Source/WebKit/gtk/webkit/webkitglobals.cpp b/Source/WebKit/gtk/webkit/webkitglobals.cpp index 40356b86b..d2715a6a1 100644 --- a/Source/WebKit/gtk/webkit/webkitglobals.cpp +++ b/Source/WebKit/gtk/webkit/webkitglobals.cpp @@ -40,6 +40,7 @@ #include "ResourceHandleClient.h" #include "ResourceHandleInternal.h" #include "ResourceResponse.h" +#include "SchemeRegistry.h" #include "webkitapplicationcache.h" #include "webkitfavicondatabase.h" #include "webkitglobalsprivate.h" @@ -491,6 +492,71 @@ WebKitContextMenuAction webkit_context_menu_item_get_action(GtkMenuItem* item) #endif } +/** + * webkit_set_security_policy_for_uri_scheme: + * @scheme: a URI scheme + * @policy: a #WebKitSecurityPolicy + * + * Set the security policy for the given URI scheme. + * + * Since: 2.0 + */ +void webkit_set_security_policy_for_uri_scheme(const char *scheme, WebKitSecurityPolicy policy) +{ + g_return_if_fail(scheme); + + if (!policy) + return; + + String urlScheme = String::fromUTF8(scheme); + + if (policy & WEBKIT_SECURITY_POLICY_LOCAL) + SchemeRegistry::registerURLSchemeAsLocal(urlScheme); + if (policy & WEBKIT_SECURITY_POLICY_NO_ACCESS_TO_OTHER_SCHEME) + SchemeRegistry::registerURLSchemeAsNoAccess(urlScheme); + if (policy & WEBKIT_SECURITY_POLICY_DISPLAY_ISOLATED) + SchemeRegistry::registerURLSchemeAsDisplayIsolated(urlScheme); + if (policy & WEBKIT_SECURITY_POLICY_SECURE) + SchemeRegistry::registerURLSchemeAsSecure(urlScheme); + if (policy & WEBKIT_SECURITY_POLICY_CORS_ENABLED) + SchemeRegistry::registerURLSchemeAsCORSEnabled(urlScheme); + if (policy & WEBKIT_SECURITY_POLICY_EMPTY_DOCUMENT) + SchemeRegistry::registerURLSchemeAsEmptyDocument(urlScheme); +} + +/** + * webkit_get_security_policy_for_uri_scheme: + * @scheme: a URI scheme + * + * Get the security policy for the given URI scheme. + * + * Returns: a #WebKitSecurityPolicy + * + * Since: 2.0 + */ +WebKitSecurityPolicy webkit_get_security_policy_for_uri_scheme(const char *scheme) +{ + g_return_val_if_fail(scheme, static_cast<WebKitSecurityPolicy>(0)); + + guint policy = 0; + String urlScheme = String::fromUTF8(scheme); + + if (SchemeRegistry::shouldTreatURLSchemeAsLocal(urlScheme)) + policy |= WEBKIT_SECURITY_POLICY_LOCAL; + if (SchemeRegistry::shouldTreatURLSchemeAsNoAccess(urlScheme)) + policy |= WEBKIT_SECURITY_POLICY_NO_ACCESS_TO_OTHER_SCHEME; + if (SchemeRegistry::shouldTreatURLSchemeAsDisplayIsolated(urlScheme)) + policy |= WEBKIT_SECURITY_POLICY_DISPLAY_ISOLATED; + if (SchemeRegistry::shouldTreatURLSchemeAsSecure(urlScheme)) + policy |= WEBKIT_SECURITY_POLICY_SECURE; + if (SchemeRegistry::shouldTreatURLSchemeAsCORSEnabled(urlScheme)) + policy |= WEBKIT_SECURITY_POLICY_CORS_ENABLED; + if (SchemeRegistry::shouldLoadURLSchemeAsEmptyDocument(urlScheme)) + policy |= WEBKIT_SECURITY_POLICY_EMPTY_DOCUMENT; + + return static_cast<WebKitSecurityPolicy>(policy); +} + void webkitInit() { static bool isInitialized = false; diff --git a/Source/WebKit/gtk/webkit/webkitglobals.h b/Source/WebKit/gtk/webkit/webkitglobals.h index 0bfc083c5..f002d6db8 100644 --- a/Source/WebKit/gtk/webkit/webkitglobals.h +++ b/Source/WebKit/gtk/webkit/webkitglobals.h @@ -142,6 +142,35 @@ typedef enum { WEBKIT_CONTEXT_MENU_ACTION_MEDIA_MUTE } WebKitContextMenuAction; +/** + * WebKitSecurityPolicy: + * @WEBKIT_SECURITY_POLICY_LOCAL: Local URI scheme, other non-local pages + * cannot link to or access URIs of this scheme. + * @WEBKIT_SECURITY_POLICY_NO_ACCESS_TO_OTHER_SCHEME: Pages loaded with this URI scheme + * cannot access pages loaded with any other URI scheme. + * @WEBKIT_SECURITY_POLICY_DISPLAY_ISOLATED: Pages cannot display these URIs + * unless they are from the same scheme. + * @WEBKIT_SECURITY_POLICY_SECURE: Secure URI scheme, doesn't generate mixed + * content warnings when included by an HTTPS page. + * @WEBKIT_SECURITY_POLICY_CORS_ENABLED: URI scheme that can be sent + * CORS (Cross-origin resource sharing) requests. See W3C CORS specification + * http://www.w3.org/TR/cors/. + * @WEBKIT_SECURITY_POLICY_EMPTY_DOCUMENT: Strictly empty documents allowed + * to commit synchronously. + * + * Flags used to represent the security policy of a URI scheme. + * + * Since: 2.0 + */ +typedef enum { + WEBKIT_SECURITY_POLICY_LOCAL = 1 << 1, + WEBKIT_SECURITY_POLICY_NO_ACCESS_TO_OTHER_SCHEME = 1 << 2, + WEBKIT_SECURITY_POLICY_DISPLAY_ISOLATED = 1 << 3, + WEBKIT_SECURITY_POLICY_SECURE = 1 << 4, + WEBKIT_SECURITY_POLICY_CORS_ENABLED = 1 << 5, + WEBKIT_SECURITY_POLICY_EMPTY_DOCUMENT = 1 << 6 +} WebKitSecurityPolicy; + WEBKIT_API SoupSession* webkit_get_default_session (void); @@ -171,6 +200,13 @@ webkit_set_text_checker (GObject* checker); WEBKIT_API WebKitContextMenuAction webkit_context_menu_item_get_action (GtkMenuItem* item); +WEBKIT_API void +webkit_set_security_policy_for_uri_scheme (const gchar *scheme, + WebKitSecurityPolicy policy); + +WEBKIT_API WebKitSecurityPolicy +webkit_get_security_policy_for_uri_scheme (const gchar *scheme); + G_END_DECLS #endif diff --git a/Source/WebKit/gtk/webkit/webkitsecurityorigin.cpp b/Source/WebKit/gtk/webkit/webkitsecurityorigin.cpp index e4a4f64e8..d6782f0f5 100644 --- a/Source/WebKit/gtk/webkit/webkitsecurityorigin.cpp +++ b/Source/WebKit/gtk/webkit/webkitsecurityorigin.cpp @@ -21,11 +21,11 @@ #include "webkitsecurityorigin.h" #include "DatabaseTracker.h" -#include "PlatformString.h" #include "webkitglobalsprivate.h" #include "webkitsecurityoriginprivate.h" #include <glib/gi18n-lib.h> #include <wtf/text/CString.h> +#include <wtf/text/WTFString.h> /** * SECTION:webkitsecurityorigin diff --git a/Source/WebKit/gtk/webkit/webkitwebdatasource.cpp b/Source/WebKit/gtk/webkit/webkitwebdatasource.cpp index 22c35ca0b..f973752ac 100644 --- a/Source/WebKit/gtk/webkit/webkitwebdatasource.cpp +++ b/Source/WebKit/gtk/webkit/webkitwebdatasource.cpp @@ -25,7 +25,6 @@ #include "FrameLoader.h" #include "FrameLoaderClientGtk.h" #include "KURL.h" -#include "PlatformString.h" #include "ResourceRequest.h" #include "SharedBuffer.h" #include "SubstituteData.h" @@ -36,8 +35,9 @@ #include "webkitwebframeprivate.h" #include "webkitwebresource.h" #include "webkitwebviewprivate.h" -#include "wtf/Assertions.h" #include <glib.h> +#include <wtf/Assertions.h> +#include <wtf/text/WTFString.h> /** * SECTION:webkitwebdatasource diff --git a/Source/WebKit/gtk/webkit/webkitwebhistoryitem.cpp b/Source/WebKit/gtk/webkit/webkitwebhistoryitem.cpp index 62d30dc9b..5b7db2223 100644 --- a/Source/WebKit/gtk/webkit/webkitwebhistoryitem.cpp +++ b/Source/WebKit/gtk/webkit/webkitwebhistoryitem.cpp @@ -23,12 +23,12 @@ #include "HistoryItem.h" #include "KURL.h" -#include "PlatformString.h" #include "webkitglobalsprivate.h" #include "webkitwebhistoryitemprivate.h" #include <glib.h> #include <glib/gi18n-lib.h> #include <wtf/text/CString.h> +#include <wtf/text/WTFString.h> /** * SECTION:webkitwebhistoryitem diff --git a/Source/WebKit/gtk/webkit/webkitwebresource.cpp b/Source/WebKit/gtk/webkit/webkitwebresource.cpp index 68d0ffb6e..7c32358f7 100644 --- a/Source/WebKit/gtk/webkit/webkitwebresource.cpp +++ b/Source/WebKit/gtk/webkit/webkitwebresource.cpp @@ -22,7 +22,6 @@ #include "ArchiveResource.h" #include "KURL.h" -#include "PlatformString.h" #include "SharedBuffer.h" #include "webkitenumtypes.h" #include "webkitglobalsprivate.h" @@ -33,6 +32,7 @@ #include <glib/gi18n-lib.h> #include <wtf/Assertions.h> #include <wtf/text/CString.h> +#include <wtf/text/WTFString.h> /** * SECTION:webkitwebresource diff --git a/Source/WebKit/gtk/webkit/webkitwebsettings.cpp b/Source/WebKit/gtk/webkit/webkitwebsettings.cpp index ce877e4f0..b93361105 100644 --- a/Source/WebKit/gtk/webkit/webkitwebsettings.cpp +++ b/Source/WebKit/gtk/webkit/webkitwebsettings.cpp @@ -30,6 +30,7 @@ #include "FileSystem.h" #include "KURL.h" #include "PluginDatabase.h" +#include "UserAgentGtk.h" #include "webkitenumtypes.h" #include "webkitglobalsprivate.h" #include "webkitversion.h" @@ -39,12 +40,6 @@ #include <wtf/text/StringConcatenate.h> #include <glib/gi18n-lib.h> -#if OS(UNIX) -#include <sys/utsname.h> -#elif OS(WINDOWS) -#include "SystemInfo.h" -#endif - /** * SECTION:webkitwebsettings * @short_description: Control the behaviour of a #WebKitWebView @@ -126,71 +121,6 @@ enum { PROP_MEDIA_PLAYBACK_ALLOWS_INLINE }; -// Create a default user agent string -// This is a liberal interpretation of http://www.mozilla.org/build/revised-user-agent-strings.html -// See also http://developer.apple.com/internet/safari/faq.html#anchor2 -static String webkitPlatform() -{ -#if PLATFORM(X11) - DEFINE_STATIC_LOCAL(const String, uaPlatform, (String("X11; "))); -#elif OS(WINDOWS) - DEFINE_STATIC_LOCAL(const String, uaPlatform, (String(""))); -#elif PLATFORM(MAC) - DEFINE_STATIC_LOCAL(const String, uaPlatform, (String("Macintosh; "))); -#elif defined(GDK_WINDOWING_DIRECTFB) - DEFINE_STATIC_LOCAL(const String, uaPlatform, (String("DirectFB; "))); -#else - DEFINE_STATIC_LOCAL(const String, uaPlatform, (String("Unknown; "))); -#endif - - return uaPlatform; -} - -static String webkitOSVersion() -{ - // FIXME: platform/version detection can be shared. -#if OS(DARWIN) - -#if CPU(X86) - DEFINE_STATIC_LOCAL(const String, uaOSVersion, (String("Intel Mac OS X"))); -#else - DEFINE_STATIC_LOCAL(const String, uaOSVersion, (String("PPC Mac OS X"))); -#endif - -#elif OS(UNIX) - DEFINE_STATIC_LOCAL(String, uaOSVersion, (String())); - - if (!uaOSVersion.isEmpty()) - return uaOSVersion; - - struct utsname name; - if (uname(&name) != -1) - uaOSVersion = makeString(name.sysname, ' ', name.machine); - else - uaOSVersion = String("Unknown"); -#elif OS(WINDOWS) - DEFINE_STATIC_LOCAL(const String, uaOSVersion, (windowsVersionForUAString())); -#else - DEFINE_STATIC_LOCAL(const String, uaOSVersion, (String("Unknown"))); -#endif - - return uaOSVersion; -} - -static String chromeUserAgent() -{ - // We mention Safari since many broken sites check for it (OmniWeb does this too) - // We re-use the WebKit version, though it doesn't seem to matter much in practice - // We claim to be Chrome as well, which prevents sites that look for Safari and assume - // that since we are not OS X, that we are the mobile version of Safari. - - DEFINE_STATIC_LOCAL(const String, uaVersion, (makeString(String::number(WEBKIT_USER_AGENT_MAJOR_VERSION), '.', String::number(WEBKIT_USER_AGENT_MINOR_VERSION), '+'))); - DEFINE_STATIC_LOCAL(const String, staticUA, (makeString("Mozilla/5.0 (", webkitPlatform(), webkitOSVersion(), ") AppleWebKit/", uaVersion) + - makeString(" (KHTML, like Gecko) Chromium/17.0.963.56 Chrome/17.0.963.56 Safari/", uaVersion))); - - return staticUA; -} - static void webkit_web_settings_finalize(GObject* object); static void webkit_web_settings_set_property(GObject* object, guint prop_id, const GValue* value, GParamSpec* pspec); @@ -1125,7 +1055,7 @@ static void webkit_web_settings_set_property(GObject* object, guint prop_id, con break; case PROP_USER_AGENT: if (!g_value_get_string(value) || !strlen(g_value_get_string(value))) - priv->userAgent = chromeUserAgent().utf8(); + priv->userAgent = standardUserAgent().utf8(); else priv->userAgent = g_value_get_string(value); break; @@ -1559,7 +1489,7 @@ static String userAgentForURL(const KURL& url) // For Google domains, drop the browser's custom User Agent string, and use the // standard Chrome one, so they don't give us a broken experience. if (isGoogleDomain(url.host())) - return chromeUserAgent(); + return standardUserAgent(); return String(); } diff --git a/Source/WebKit/gtk/webkit/webkitwebview.cpp b/Source/WebKit/gtk/webkit/webkitwebview.cpp index a5368944d..8b992119d 100644 --- a/Source/WebKit/gtk/webkit/webkitwebview.cpp +++ b/Source/WebKit/gtk/webkit/webkitwebview.cpp @@ -427,7 +427,7 @@ static IntPoint getLocationForKeyboardGeneratedContextMenu(Frame* frame) if (!selection->selection().isNonOrphanedCaretOrRange() || (selection->selection().isCaret() && !selection->selection().isContentEditable())) { if (Node* focusedNode = getFocusedNode(frame)) - return focusedNode->getPixelSnappedRect().location(); + return focusedNode->pixelSnappedBoundingBox().location(); // There was no selection and no focused node, so just put the context // menu into the corner of the view, offset slightly. @@ -992,6 +992,9 @@ static void webkit_web_view_realize(GtkWidget* widget) | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK | GDK_SCROLL_MASK +#if GTK_CHECK_VERSION(3, 3, 18) + | GDK_SMOOTH_SCROLL_MASK +#endif | GDK_POINTER_MOTION_MASK | GDK_KEY_PRESS_MASK | GDK_KEY_RELEASE_MASK @@ -1605,7 +1608,7 @@ static gboolean webkit_web_view_query_tooltip(GtkWidget *widget, gint x, gint y, String title = static_cast<Element*>(titleNode)->title(); if (!title.isEmpty()) { if (FrameView* view = coreFrame->view()) { - GdkRectangle area = view->contentsToWindow(node->getPixelSnappedRect()); + GdkRectangle area = view->contentsToWindow(node->pixelSnappedBoundingBox()); gtk_tooltip_set_tip_area(tooltip, &area); } gtk_tooltip_set_text(tooltip, title.utf8().data()); @@ -3629,9 +3632,9 @@ static void webkit_web_view_init(WebKitWebView* webView) WebCore::provideUserMediaTo(priv->corePage, priv->userMediaClient.get()); #endif -#if ENABLE(REGISTER_PROTOCOL_HANDLER) - priv->registerProtocolHandlerClient = WebKit::RegisterProtocolHandlerClient::create(); - WebCore::provideRegisterProtocolHandlerTo(priv->corePage, priv->registerProtocolHandlerClient.get()); +#if ENABLE(NAVIGATOR_CONTENT_UTILS) + priv->navigatorContentUtilsClient = WebKit::NavigatorContentUtilsClient::create(); + WebCore::provideNavigatorContentUtilsTo(priv->corePage, priv->navigatorContentUtilsClient.get()); #endif if (DumpRenderTreeSupportGtk::dumpRenderTreeModeEnabled()) { diff --git a/Source/WebKit/gtk/webkit/webkitwebviewprivate.h b/Source/WebKit/gtk/webkit/webkitwebviewprivate.h index c302696d2..96954c24c 100644 --- a/Source/WebKit/gtk/webkit/webkitwebviewprivate.h +++ b/Source/WebKit/gtk/webkit/webkitwebviewprivate.h @@ -39,8 +39,8 @@ #include "UserMediaClientGtk.h" #endif -#if ENABLE(REGISTER_PROTOCOL_HANDLER) -#include "RegisterProtocolHandlerClientGtk.h" +#if ENABLE(NAVIGATOR_CONTENT_UTILS) +#include "NavigatorContentUtilsClientGtk.h" #endif namespace WebKit { @@ -122,8 +122,8 @@ struct _WebKitWebViewPrivate { OwnPtr<WebCore::GeolocationClientMock> geolocationClientMock; #endif -#if ENABLE(REGISTER_PROTOCOL_HANDLER) - OwnPtr<WebKit::RegisterProtocolHandlerClient> registerProtocolHandlerClient; +#if ENABLE(NAVIGATOR_CONTENT_UTILS) + OwnPtr<WebKit::NavigatorContentUtilsClient> navigatorContentUtilsClient; #endif }; diff --git a/Source/WebKit/mac/ChangeLog b/Source/WebKit/mac/ChangeLog index e156f61d2..ab6273273 100644 --- a/Source/WebKit/mac/ChangeLog +++ b/Source/WebKit/mac/ChangeLog @@ -1,3 +1,490 @@ +2012-09-07 Benjamin Poulain <bpoulain@apple.com> + + Rename the ustring() accessor to string() + https://bugs.webkit.org/show_bug.cgi?id=95919 + + Reviewed by Geoffrey Garen. + + * Plugins/Hosted/NetscapePluginInstanceProxy.mm: + (WebKit::NetscapePluginInstanceProxy::enumerate): + +2012-09-07 Allan Sandfeld Jensen <allan.jensen@nokia.com> + + Simplify hitTestResultAtPoint and nodesFromRect APIs + https://bugs.webkit.org/show_bug.cgi?id=95720 + + Reviewed by Antonio Gomes. + + Update calls to new API. + + * WebCoreSupport/WebFrameLoaderClient.mm: + (WebFrameLoaderClient::actionDictionary): + * WebView/WebHTMLView.mm: + (-[WebHTMLView elementAtPoint:allowShadowContent:]): + +2012-09-05 Sam Weinig <sam@webkit.org> + + Part 2 of removing PlatformString.h, remove PlatformString.h + https://bugs.webkit.org/show_bug.cgi?id=95931 + + Reviewed by Adam Barth. + + Remove PlatformString.h + + * History/WebHistoryItem.mm: + * Misc/WebStringTruncator.mm: + * Plugins/Hosted/NetscapePluginHostManager.h: + (NetscapePluginHostManager): + * Plugins/WebPluginController.mm: + * Storage/WebStorageTrackerClient.mm: + * WebCoreSupport/WebChromeClient.mm: + * WebCoreSupport/WebEditorClient.mm: + * WebCoreSupport/WebFrameLoaderClient.mm: + * WebCoreSupport/WebIconDatabaseClient.mm: + * WebCoreSupport/WebInspectorClient.h: + (WebInspectorClient): + (WebInspectorFrontendClient): + * WebView/WebRenderLayer.mm: + * WebView/WebViewData.h: + +2012-09-05 Benjamin Poulain <bpoulain@apple.com> + + More fixes for String::operator+=() on Mac + https://bugs.webkit.org/show_bug.cgi?id=95880 + + Reviewed by Adam Barth. + + * WebView/WebRenderLayer.mm: + (+[WebRenderLayer nameForLayer:]): Use StringBuilder to concatenate the class names + efficiently. + * WebView/WebView.mm: + (+[WebView _decodeData:]): This is a legitimate use of String::append(), there + is no other concatenation done on that string. + +2012-09-01 Mark Lam <mark.lam@apple.com> + + Added #include <JavaScriptCore/Identifier.h>. + https://bugs.webkit.org/show_bug.cgi?id=95641. + + Reviewed by Dan Bernstein. + + The code references JSC::Indentifier but was previously depending on + someone else to #include it. This results in build problems when + building for the llint C loop configuration. + + * Plugins/Hosted/NetscapePluginInstanceProxy.h: + +2012-08-31 Tony Chang <tony@chromium.org> + + Remove ENABLE_CSS3_FLEXBOX compile time flag + https://bugs.webkit.org/show_bug.cgi?id=95382 + + Reviewed by Ojan Vafai. + + Everyone is already enabling this by default and the spec has stablized. + + * Configurations/FeatureDefines.xcconfig: + +2012-08-31 Pratik Solanki <psolanki@apple.com> + + objc_msgSend and IMP should be cast appropriately before using + https://bugs.webkit.org/show_bug.cgi?id=95242 + + Reviewed by Benjamin Poulain. + + Fix for older compilers. Pass id as the return type to the template + instead of relying on default type. + + * WebView/WebDelegateImplementationCaching.mm: + (CallDelegate): + (CallFormDelegate): + * WebView/WebHTMLView.mm: + (setCursor): + (setNeedsDisplayInRect): + +2012-08-30 Geoffrey Garen <ggaren@apple.com> + + Use one object instead of two for closures, eliminating ScopeChainNode + https://bugs.webkit.org/show_bug.cgi?id=95501 + + Reviewed by Filip Pizlo. + + Mechanical change to update for JSC interface change. + +2012-08-30 Sheriff Bot <webkit.review.bot@gmail.com> + + Unreviewed, rolling out r127171. + http://trac.webkit.org/changeset/127171 + https://bugs.webkit.org/show_bug.cgi?id=95505 + + testRunner does not need dumpWebNotificationCallbacks(). + (Requested by jonlee on #webkit). + + * WebKit.exp: + +2012-08-30 Pratik Solanki <psolanki@apple.com> + + objc_msgSend and IMP should be cast appropriately before using + https://bugs.webkit.org/show_bug.cgi?id=95242 + + Reviewed by Benjamin Poulain. + + Use wtfObjcMsgSend and wtfCallIMP templates which do appropriate casts + to a function pointer with right types when calling objc_msgSend and an + IMP method directly. + + * WebCoreSupport/WebCachedFramePlatformData.h: + (WebCachedFramePlatformData::clear): + * WebCoreSupport/WebDeviceOrientationClient.mm: + (WebDeviceOrientationClient::getProvider): + * WebView/WebDelegateImplementationCaching.mm: + (CallDelegate): + (CallDelegateReturningBoolean): + (CallResourceLoadDelegateReturningBoolean): + (CallFormDelegate): + (CallFormDelegateReturningBoolean): + * WebView/WebHTMLView.mm: + (setCursor): + (setNeedsDisplayInRect): + +2012-08-30 Benjamin Poulain <bpoulain@apple.com> + + Replace JSC::UString by WTF::String + https://bugs.webkit.org/show_bug.cgi?id=95271 + + Reviewed by Geoffrey Garen. + + Get rid of UString, replace it by String, and simplify the code when possible. + + On x86_64, this reduces the binary size by 7kb. + + * Plugins/Hosted/NetscapePluginHostProxy.mm: + (identifierFromIdentifierRep): + * Plugins/Hosted/NetscapePluginInstanceProxy.mm: + (WebKit::NetscapePluginInstanceProxy::addValueToArray): + (WebKit::NetscapePluginInstanceProxy::moveGlobalExceptionToExecState): + * Plugins/Hosted/ProxyInstance.mm: + (WebKit::ProxyRuntimeMethod::create): + (WebKit::ProxyRuntimeMethod::finishCreation): + (WebKit::ProxyInstance::getPropertyNames): + (WebKit::ProxyInstance::methodsNamed): + (WebKit::ProxyInstance::fieldNamed): + * WebView/WebFrame.mm: + (-[WebFrame _stringByEvaluatingJavaScriptFromString:forceUserGesture:]): + (-[WebFrame _stringByEvaluatingJavaScriptFromString:withGlobalObject:inScriptWorld:]): + * WebView/WebScriptDebugDelegate.mm: + (-[WebScriptCallFrame functionName]): + (-[WebScriptCallFrame evaluateWebScript:]): + * WebView/WebScriptDebugger.h: + (WTF): + (JSC): + (WebScriptDebugger): + * WebView/WebScriptDebugger.mm: + (toNSURL): + (WebScriptDebugger::sourceParsed): + * WebView/WebView.mm: + (aeDescFromJSValue): + +2012-08-30 Jon Lee <jonlee@apple.com> + + [Mac] Add testRunner.dumpWebNotificationCallbacks() to DRT + https://bugs.webkit.org/show_bug.cgi?id=95232 + <rdar://problem/12190776> + + Reviewed by Alexey Proskuryakov. + + * WebKit.exp: Export WebNotification class. + +2012-08-30 Jon Lee <jonlee@apple.com> + + [Mac] Registering web views for notifications is unbalanced + https://bugs.webkit.org/show_bug.cgi?id=95465 + <rdar://problem/12206765> + + Reviewed by Darin Adler. + + Setting the notification provider for a WK1 WebView registers that web view to the + provider. When the WebView is closed, WebCore is essentially responsible for + unregistering the web view. This leads to an imbalance on Lion since notifications are + not supported, and the NotificationController responsible for making the unregistration + call doesn't exist. + + Instead, the unregisterWebView method should be called when the web view is closed. + + * WebView/WebViewPrivate.h: Remove _notificationControllerDestroyed, since it is + unneeded. + + * WebCoreSupport/WebNotificationClient.mm: + (WebNotificationClient::notificationControllerDestroyed): + * WebView/WebView.mm: + (-[WebView _close]): Unregister the web view from the assigned provider here. + (-[WebView _setNotificationProvider:]): Only allow setting the provider once, to avoid + registering the web view to multiple providers. + +2012-08-29 Jon Lee <jonlee@apple.com> + + [Mac] Add iconURL to WebNotification + https://bugs.webkit.org/show_bug.cgi?id=95249 + <rdar://problem/12192060> + + Reviewed by Jessie Berlin. + + * WebView/WebNotification.h: Expose iconURL. + * WebView/WebNotification.mm: Remove unnecessary ASSERTs. + (-[WebNotification title]): + (-[WebNotification body]): + (-[WebNotification tag]): + (-[WebNotification iconURL]): Added. + (-[WebNotification origin]): + (-[WebNotification notificationID]): + (-[WebNotification dispatchShowEvent]): + (-[WebNotification dispatchCloseEvent]): + (-[WebNotification dispatchClickEvent]): + (-[WebNotification dispatchErrorEvent]): + +2012-08-28 Geoffrey Garen <ggaren@apple.com> + + Added JSScope::objectInScope(), and refactored callers to use it + https://bugs.webkit.org/show_bug.cgi?id=95281 + + Reviewed by Gavin Barraclough. + + * WebView/WebScriptDebugDelegate.mm: + (-[WebScriptCallFrame scopeChain]): + +2012-08-28 Sheriff Bot <webkit.review.bot@gmail.com> + + Unreviewed, rolling out r126914. + http://trac.webkit.org/changeset/126914 + https://bugs.webkit.org/show_bug.cgi?id=95239 + + it breaks everything and fixes nothing (Requested by pizlo on + #webkit). + + * History/WebHistory.mm: + (-[WebHistoryPrivate removeItemFromDateCaches:]): + (-[WebHistoryPrivate orderedLastVisitedDays]): + (WebHistoryWriter::WebHistoryWriter): + * Misc/WebCoreStatistics.mm: + (+[WebCoreStatistics javaScriptProtectedObjectTypeCounts]): + (+[WebCoreStatistics javaScriptObjectTypeCounts]): + * Plugins/Hosted/NetscapePluginHostManager.mm: + (WebKit::NetscapePluginHostManager::hostForPlugin): + (WebKit::NetscapePluginHostManager::pluginHostDied): + (WebKit::NetscapePluginHostManager::didCreateWindow): + * Plugins/Hosted/NetscapePluginHostProxy.mm: + (WebKit::NetscapePluginHostProxy::pluginHostDied): + * Plugins/Hosted/NetscapePluginInstanceProxy.mm: + (WebKit::NetscapePluginInstanceProxy::LocalObjectMap::idForObject): + (WebKit::NetscapePluginInstanceProxy::LocalObjectMap::retain): + (WebKit::NetscapePluginInstanceProxy::LocalObjectMap::release): + (WebKit::NetscapePluginInstanceProxy::LocalObjectMap::forget): + (WebKit::NetscapePluginInstanceProxy::destroy): + (WebKit::NetscapePluginInstanceProxy::webFrameDidFinishLoadWithReason): + (WebKit::NetscapePluginInstanceProxy::cancelCheckIfAllowedToLoadURL): + * Plugins/Hosted/ProxyInstance.mm: + (WebKit::ProxyInstance::methodsNamed): + (WebKit::ProxyInstance::fieldNamed): + * Plugins/WebNetscapePluginView.mm: + (-[WebNetscapePluginView stopTimers]): + (-[WebNetscapePluginView startTimers]): + * WebCoreSupport/WebNotificationClient.mm: + (WebNotificationClient::show): + (WebNotificationClient::clearNotifications): + (WebNotificationClient::notificationObjectDestroyed): + * WebView/WebHTMLView.mm: + (commandNameForSelector): + +2012-08-28 Jon Lee <jonlee@apple.com> + + Second build fix to r126909. + + Added needed #else clause. + + * WebView/WebView.mm: + (-[WebView _notificationIDForTesting:]): + +2012-08-28 Jon Lee <jonlee@apple.com> + + Build fix to r126909. + + Needed ENABLE(NOTIFICATIONS) guards. + + * WebView/WebView.mm: + (-[WebView _notificationIDForTesting:]): + +2012-08-28 Caio Marcelo de Oliveira Filho <caio.oliveira@openbossa.org> + + Rename first/second to key/value in HashMap iterators + https://bugs.webkit.org/show_bug.cgi?id=82784 + + Reviewed by Eric Seidel. + + * History/WebHistory.mm: + (-[WebHistoryPrivate removeItemFromDateCaches:]): + (-[WebHistoryPrivate orderedLastVisitedDays]): + (WebHistoryWriter::WebHistoryWriter): + * Misc/WebCoreStatistics.mm: + (+[WebCoreStatistics javaScriptProtectedObjectTypeCounts]): + (+[WebCoreStatistics javaScriptObjectTypeCounts]): + * Plugins/Hosted/NetscapePluginHostManager.mm: + (WebKit::NetscapePluginHostManager::hostForPlugin): + (WebKit::NetscapePluginHostManager::pluginHostDied): + (WebKit::NetscapePluginHostManager::didCreateWindow): + * Plugins/Hosted/NetscapePluginHostProxy.mm: + (WebKit::NetscapePluginHostProxy::pluginHostDied): + * Plugins/Hosted/NetscapePluginInstanceProxy.mm: + (WebKit::NetscapePluginInstanceProxy::LocalObjectMap::idForObject): + (WebKit::NetscapePluginInstanceProxy::LocalObjectMap::retain): + (WebKit::NetscapePluginInstanceProxy::LocalObjectMap::release): + (WebKit::NetscapePluginInstanceProxy::LocalObjectMap::forget): + (WebKit::NetscapePluginInstanceProxy::destroy): + (WebKit::NetscapePluginInstanceProxy::webFrameDidFinishLoadWithReason): + (WebKit::NetscapePluginInstanceProxy::cancelCheckIfAllowedToLoadURL): + * Plugins/Hosted/ProxyInstance.mm: + (WebKit::ProxyInstance::methodsNamed): + (WebKit::ProxyInstance::fieldNamed): + * Plugins/WebNetscapePluginView.mm: + (-[WebNetscapePluginView stopTimers]): + (-[WebNetscapePluginView startTimers]): + * WebCoreSupport/WebNotificationClient.mm: + (WebNotificationClient::show): + (WebNotificationClient::clearNotifications): + (WebNotificationClient::notificationObjectDestroyed): + * WebView/WebHTMLView.mm: + (commandNameForSelector): + +2012-08-28 Jon Lee <jonlee@apple.com> + + [Mac] Add SPI to WK1 to retrieve internal IDs for web notifications + https://bugs.webkit.org/show_bug.cgi?id=95099 + <rdar://problem/12180186> + + Reviewed by Jessie Berlin. + + This is work toward providing Mac support for web notifications in DRT and WTR (77969). + + Add function to retrieve the internal ID for a notification. This is needed by layout tests to support simulating + a user click on a notification. + + * WebCoreSupport/WebNotificationClient.h: + (WebNotificationClient): + * WebCoreSupport/WebNotificationClient.mm: + (WebNotificationClient::notificationIDForTesting): Converts the JS notification to a WebCore notification, and passes + that to [WebView _notificationIDForTesting:]. + * WebView/WebView.mm: + (-[WebView _notificationIDForTesting:]): Retrieves the notification ID based on the WebCore notification instance. + * WebView/WebViewPrivate.h: + +2012-08-27 Sheriff Bot <webkit.review.bot@gmail.com> + + Unreviewed, rolling out r126836. + http://trac.webkit.org/changeset/126836 + https://bugs.webkit.org/show_bug.cgi?id=95163 + + Broke all Apple ports, EFL, and Qt. (Requested by tkent on + #webkit). + + * History/WebHistory.mm: + (-[WebHistoryPrivate removeItemFromDateCaches:]): + (-[WebHistoryPrivate orderedLastVisitedDays]): + (WebHistoryWriter::WebHistoryWriter): + * Misc/WebCoreStatistics.mm: + (+[WebCoreStatistics javaScriptProtectedObjectTypeCounts]): + (+[WebCoreStatistics javaScriptObjectTypeCounts]): + * Plugins/Hosted/NetscapePluginHostManager.mm: + (WebKit::NetscapePluginHostManager::hostForPlugin): + (WebKit::NetscapePluginHostManager::pluginHostDied): + (WebKit::NetscapePluginHostManager::didCreateWindow): + * Plugins/Hosted/NetscapePluginHostProxy.mm: + (WebKit::NetscapePluginHostProxy::pluginHostDied): + * Plugins/Hosted/NetscapePluginInstanceProxy.mm: + (WebKit::NetscapePluginInstanceProxy::LocalObjectMap::idForObject): + (WebKit::NetscapePluginInstanceProxy::LocalObjectMap::retain): + (WebKit::NetscapePluginInstanceProxy::LocalObjectMap::release): + (WebKit::NetscapePluginInstanceProxy::LocalObjectMap::forget): + (WebKit::NetscapePluginInstanceProxy::destroy): + (WebKit::NetscapePluginInstanceProxy::webFrameDidFinishLoadWithReason): + (WebKit::NetscapePluginInstanceProxy::cancelCheckIfAllowedToLoadURL): + * Plugins/Hosted/ProxyInstance.mm: + (WebKit::ProxyInstance::methodsNamed): + (WebKit::ProxyInstance::fieldNamed): + * Plugins/WebNetscapePluginView.mm: + (-[WebNetscapePluginView stopTimers]): + (-[WebNetscapePluginView startTimers]): + * WebCoreSupport/WebNotificationClient.mm: + (WebNotificationClient::show): + (WebNotificationClient::clearNotifications): + (WebNotificationClient::notificationObjectDestroyed): + * WebView/WebHTMLView.mm: + (commandNameForSelector): + +2012-08-27 Caio Marcelo de Oliveira Filho <caio.oliveira@openbossa.org> + + Rename first/second to key/value in HashMap iterators + https://bugs.webkit.org/show_bug.cgi?id=82784 + + Reviewed by Eric Seidel. + + * History/WebHistory.mm: + (-[WebHistoryPrivate removeItemFromDateCaches:]): + (-[WebHistoryPrivate orderedLastVisitedDays]): + (WebHistoryWriter::WebHistoryWriter): + * Misc/WebCoreStatistics.mm: + (+[WebCoreStatistics javaScriptProtectedObjectTypeCounts]): + (+[WebCoreStatistics javaScriptObjectTypeCounts]): + * Plugins/Hosted/NetscapePluginHostManager.mm: + (WebKit::NetscapePluginHostManager::hostForPlugin): + (WebKit::NetscapePluginHostManager::pluginHostDied): + (WebKit::NetscapePluginHostManager::didCreateWindow): + * Plugins/Hosted/NetscapePluginHostProxy.mm: + (WebKit::NetscapePluginHostProxy::pluginHostDied): + * Plugins/Hosted/NetscapePluginInstanceProxy.mm: + (WebKit::NetscapePluginInstanceProxy::LocalObjectMap::idForObject): + (WebKit::NetscapePluginInstanceProxy::LocalObjectMap::retain): + (WebKit::NetscapePluginInstanceProxy::LocalObjectMap::release): + (WebKit::NetscapePluginInstanceProxy::LocalObjectMap::forget): + (WebKit::NetscapePluginInstanceProxy::destroy): + (WebKit::NetscapePluginInstanceProxy::webFrameDidFinishLoadWithReason): + (WebKit::NetscapePluginInstanceProxy::cancelCheckIfAllowedToLoadURL): + * Plugins/Hosted/ProxyInstance.mm: + (WebKit::ProxyInstance::methodsNamed): + (WebKit::ProxyInstance::fieldNamed): + * Plugins/WebNetscapePluginView.mm: + (-[WebNetscapePluginView stopTimers]): + (-[WebNetscapePluginView startTimers]): + * WebCoreSupport/WebNotificationClient.mm: + (WebNotificationClient::show): + (WebNotificationClient::clearNotifications): + (WebNotificationClient::notificationObjectDestroyed): + * WebView/WebHTMLView.mm: + (commandNameForSelector): + +2012-08-27 Mikhail Pozdnyakov <mikhail.pozdnyakov@intel.com> + + Rename RegisterProtocolHandler API to NavigatorContentUtils + https://bugs.webkit.org/show_bug.cgi?id=94920 + + Reviewed by Adam Barth. + + ENABLE_REGISTER_PROTOCOL_HANDLER is renamed to ENABLE_NAVIGATOR_CONTENT_UTILS. + + * Configurations/FeatureDefines.xcconfig: + +2012-08-24 Pratik Solanki <psolanki@apple.com> + + Don't create a new ResourceRequest if delegate returns the same NSURLRequest we passed it + https://bugs.webkit.org/show_bug.cgi?id=94962 + + Reviewed by Geoffrey Garen. + + If the NSURLRequest returned from the delegate callback is the same as the one we passed to + it, then avoid creating a new ResourceRequest object. This reduces the number of calls to + ResourceRequest::doUpdateResourceRequest(). + + * WebCoreSupport/WebFrameLoaderClient.mm: + (WebFrameLoaderClient::dispatchWillSendRequest): + 2012-08-23 Mark Hahnenberg <mhahnenberg@apple.com> Change behavior of MasqueradesAsUndefined to better accommodate DFG changes diff --git a/Source/WebKit/mac/Configurations/FeatureDefines.xcconfig b/Source/WebKit/mac/Configurations/FeatureDefines.xcconfig index cedd95d76..6a674085e 100644 --- a/Source/WebKit/mac/Configurations/FeatureDefines.xcconfig +++ b/Source/WebKit/mac/Configurations/FeatureDefines.xcconfig @@ -48,7 +48,6 @@ ENABLE_CSS_SHADERS = ENABLE_CSS_SHADERS; ENABLE_CSS_COMPOSITING = ; ENABLE_CSS_STICKY_POSITION = ENABLE_CSS_STICKY_POSITION; ENABLE_CSS_VARIABLES = ; -ENABLE_CSS3_FLEXBOX = ENABLE_CSS3_FLEXBOX; ENABLE_CSS3_TEXT_DECORATION = ; ENABLE_CUSTOM_SCHEME_HANDLER = ; ENABLE_DASHBOARD_SUPPORT = $(ENABLE_DASHBOARD_SUPPORT_$(REAL_PLATFORM_NAME)); @@ -106,6 +105,7 @@ ENABLE_METER_ELEMENT = ENABLE_METER_ELEMENT; ENABLE_MHTML = ; ENABLE_MICRODATA = ; ENABLE_MUTATION_OBSERVERS = ENABLE_MUTATION_OBSERVERS; +ENABLE_NAVIGATOR_CONTENT_UTILS = ; ENABLE_NOTIFICATIONS = $(ENABLE_NOTIFICATIONS_$(REAL_PLATFORM_NAME)); ENABLE_NOTIFICATIONS_macosx = $(ENABLE_NOTIFICATIONS_macosx_$(TARGET_MAC_OS_X_VERSION_MAJOR)); ENABLE_NOTIFICATIONS_macosx_1070 = ; @@ -114,7 +114,6 @@ ENABLE_NOTIFICATIONS_macosx_1090 = ENABLE_NOTIFICATIONS; ENABLE_PAGE_VISIBILITY_API = ; ENABLE_PROGRESS_ELEMENT = ENABLE_PROGRESS_ELEMENT; ENABLE_QUOTA = ; -ENABLE_REGISTER_PROTOCOL_HANDLER = ; ENABLE_REQUEST_ANIMATION_FRAME = ENABLE_REQUEST_ANIMATION_FRAME; ENABLE_SCRIPTED_SPEECH = ; ENABLE_SHADOW_DOM = ; @@ -141,4 +140,4 @@ ENABLE_WIDGET_REGION_macosx = ENABLE_WIDGET_REGION; ENABLE_WORKERS = ENABLE_WORKERS; ENABLE_XSLT = ENABLE_XSLT; -FEATURE_DEFINES = $(ENABLE_3D_RENDERING) $(ENABLE_ACCELERATED_2D_CANVAS) $(ENABLE_ANIMATION_API) $(ENABLE_BLOB) $(ENABLE_CHANNEL_MESSAGING) $(ENABLE_CSP_NEXT) $(ENABLE_CSS_BOX_DECORATION_BREAK) $(ENABLE_CSS_EXCLUSIONS) $(ENABLE_CSS_FILTERS) $(ENABLE_CSS_HIERARCHIES) $(ENABLE_CSS_IMAGE_ORIENTATION) $(ENABLE_CSS_IMAGE_RESOLUTION) $(ENABLE_CSS_REGIONS) $(ENABLE_CSS_SHADERS) $(ENABLE_CSS_COMPOSITING) $(ENABLE_CSS_STICKY_POSITION) $(ENABLE_CSS_VARIABLES) $(ENABLE_CSS3_FLEXBOX) $(ENABLE_CSS3_TEXT_DECORATION) $(ENABLE_CUSTOM_SCHEME_HANDLER) $(ENABLE_DASHBOARD_SUPPORT) $(ENABLE_DATALIST_ELEMENT) $(ENABLE_DATA_TRANSFER_ITEMS) $(ENABLE_DETAILS_ELEMENT) $(ENABLE_DEVICE_ORIENTATION) $(ENABLE_DIALOG_ELEMENT) $(ENABLE_DIRECTORY_UPLOAD) $(ENABLE_FILE_SYSTEM) $(ENABLE_FILTERS) $(ENABLE_FULLSCREEN_API) $(ENABLE_GAMEPAD) $(ENABLE_GEOLOCATION) $(ENABLE_HIGH_DPI_CANVAS) $(ENABLE_ICONDATABASE) $(ENABLE_IFRAME_SEAMLESS) $(ENABLE_INDEXED_DATABASE) $(ENABLE_INPUT_SPEECH) $(ENABLE_INPUT_TYPE_COLOR) $(ENABLE_INPUT_TYPE_DATE) $(ENABLE_INPUT_TYPE_DATETIME) $(ENABLE_INPUT_TYPE_DATETIMELOCAL) $(ENABLE_INPUT_TYPE_MONTH) $(ENABLE_INPUT_TYPE_TIME) $(ENABLE_INPUT_TYPE_WEEK) $(ENABLE_JAVASCRIPT_DEBUGGER) $(ENABLE_LEGACY_CSS_VENDOR_PREFIXES) $(ENABLE_LEGACY_NOTIFICATIONS) $(ENABLE_LINK_PREFETCH) $(ENABLE_LINK_PRERENDER) $(ENABLE_MATHML) $(ENABLE_MEDIA_SOURCE) $(ENABLE_MEDIA_STATISTICS) $(ENABLE_METER_ELEMENT) $(ENABLE_MHTML) $(ENABLE_MICRODATA) $(ENABLE_MUTATION_OBSERVERS) $(ENABLE_NOTIFICATIONS) $(ENABLE_PAGE_VISIBILITY_API) $(ENABLE_PROGRESS_ELEMENT) $(ENABLE_QUOTA) $(ENABLE_REGISTER_PROTOCOL_HANDLER) $(ENABLE_REQUEST_ANIMATION_FRAME) $(ENABLE_SCRIPTED_SPEECH) $(ENABLE_SHADOW_DOM) $(ENABLE_SHARED_WORKERS) $(ENABLE_SQL_DATABASE) $(ENABLE_STYLE_SCOPED) $(ENABLE_SVG) $(ENABLE_SVG_DOM_OBJC_BINDINGS) $(ENABLE_SVG_FONTS) $(ENABLE_TEXT_AUTOSIZING) $(ENABLE_TEXT_NOTIFICATIONS_ONLY) $(ENABLE_TOUCH_ICON_LOADING) $(ENABLE_UNDO_MANAGER) $(ENABLE_VIDEO) $(ENABLE_VIDEO_TRACK) $(ENABLE_WEBGL) $(ENABLE_WEB_AUDIO) $(ENABLE_WEB_SOCKETS) $(ENABLE_WEB_TIMING) $(ENABLE_WIDGET_REGION) $(ENABLE_WORKERS) $(ENABLE_XSLT); +FEATURE_DEFINES = $(ENABLE_3D_RENDERING) $(ENABLE_ACCELERATED_2D_CANVAS) $(ENABLE_ANIMATION_API) $(ENABLE_BLOB) $(ENABLE_CHANNEL_MESSAGING) $(ENABLE_CSP_NEXT) $(ENABLE_CSS_BOX_DECORATION_BREAK) $(ENABLE_CSS_EXCLUSIONS) $(ENABLE_CSS_FILTERS) $(ENABLE_CSS_HIERARCHIES) $(ENABLE_CSS_IMAGE_ORIENTATION) $(ENABLE_CSS_IMAGE_RESOLUTION) $(ENABLE_CSS_REGIONS) $(ENABLE_CSS_SHADERS) $(ENABLE_CSS_COMPOSITING) $(ENABLE_CSS_STICKY_POSITION) $(ENABLE_CSS_VARIABLES) $(ENABLE_CSS3_TEXT_DECORATION) $(ENABLE_CUSTOM_SCHEME_HANDLER) $(ENABLE_DASHBOARD_SUPPORT) $(ENABLE_DATALIST_ELEMENT) $(ENABLE_DATA_TRANSFER_ITEMS) $(ENABLE_DETAILS_ELEMENT) $(ENABLE_DEVICE_ORIENTATION) $(ENABLE_DIALOG_ELEMENT) $(ENABLE_DIRECTORY_UPLOAD) $(ENABLE_FILE_SYSTEM) $(ENABLE_FILTERS) $(ENABLE_FULLSCREEN_API) $(ENABLE_GAMEPAD) $(ENABLE_GEOLOCATION) $(ENABLE_HIGH_DPI_CANVAS) $(ENABLE_ICONDATABASE) $(ENABLE_IFRAME_SEAMLESS) $(ENABLE_INDEXED_DATABASE) $(ENABLE_INPUT_SPEECH) $(ENABLE_INPUT_TYPE_COLOR) $(ENABLE_INPUT_TYPE_DATE) $(ENABLE_INPUT_TYPE_DATETIME) $(ENABLE_INPUT_TYPE_DATETIMELOCAL) $(ENABLE_INPUT_TYPE_MONTH) $(ENABLE_INPUT_TYPE_TIME) $(ENABLE_INPUT_TYPE_WEEK) $(ENABLE_JAVASCRIPT_DEBUGGER) $(ENABLE_LEGACY_CSS_VENDOR_PREFIXES) $(ENABLE_LEGACY_NOTIFICATIONS) $(ENABLE_LINK_PREFETCH) $(ENABLE_LINK_PRERENDER) $(ENABLE_MATHML) $(ENABLE_MEDIA_SOURCE) $(ENABLE_MEDIA_STATISTICS) $(ENABLE_METER_ELEMENT) $(ENABLE_MHTML) $(ENABLE_MICRODATA) $(ENABLE_MUTATION_OBSERVERS) $(ENABLE_NAVIGATOR_CONTENT_UTILS) $(ENABLE_NOTIFICATIONS) $(ENABLE_PAGE_VISIBILITY_API) $(ENABLE_PROGRESS_ELEMENT) $(ENABLE_QUOTA) $(ENABLE_REQUEST_ANIMATION_FRAME) $(ENABLE_SCRIPTED_SPEECH) $(ENABLE_SHADOW_DOM) $(ENABLE_SHARED_WORKERS) $(ENABLE_SQL_DATABASE) $(ENABLE_STYLE_SCOPED) $(ENABLE_SVG) $(ENABLE_SVG_DOM_OBJC_BINDINGS) $(ENABLE_SVG_FONTS) $(ENABLE_TEXT_AUTOSIZING) $(ENABLE_TEXT_NOTIFICATIONS_ONLY) $(ENABLE_TOUCH_ICON_LOADING) $(ENABLE_UNDO_MANAGER) $(ENABLE_VIDEO) $(ENABLE_VIDEO_TRACK) $(ENABLE_WEBGL) $(ENABLE_WEB_AUDIO) $(ENABLE_WEB_SOCKETS) $(ENABLE_WEB_TIMING) $(ENABLE_WIDGET_REGION) $(ENABLE_WORKERS) $(ENABLE_XSLT); diff --git a/Source/WebKit/mac/Configurations/Version.xcconfig b/Source/WebKit/mac/Configurations/Version.xcconfig index ac1a2c149..d1bed77b3 100644 --- a/Source/WebKit/mac/Configurations/Version.xcconfig +++ b/Source/WebKit/mac/Configurations/Version.xcconfig @@ -22,7 +22,7 @@ // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. MAJOR_VERSION = 537; -MINOR_VERSION = 8; +MINOR_VERSION = 10; TINY_VERSION = 0; FULL_VERSION = $(MAJOR_VERSION).$(MINOR_VERSION); diff --git a/Source/WebKit/mac/History/WebHistoryItem.mm b/Source/WebKit/mac/History/WebHistoryItem.mm index de708c95c..f2374bd3d 100644 --- a/Source/WebKit/mac/History/WebHistoryItem.mm +++ b/Source/WebKit/mac/History/WebHistoryItem.mm @@ -47,7 +47,6 @@ #import <WebCore/Image.h> #import <WebCore/KURL.h> #import <WebCore/PageCache.h> -#import <WebCore/PlatformString.h> #import <WebCore/RunLoop.h> #import <WebCore/ThreadCheck.h> #import <WebCore/WebCoreObjCExtras.h> @@ -55,6 +54,7 @@ #import <wtf/Assertions.h> #import <wtf/MainThread.h> #import <wtf/StdLibExtras.h> +#import <wtf/text/WTFString.h> // Private keys used in the WebHistoryItem's dictionary representation. // see 3245793 for explanation of "lastVisitedDate" diff --git a/Source/WebKit/mac/Misc/WebStringTruncator.mm b/Source/WebKit/mac/Misc/WebStringTruncator.mm index 768da2a53..345a2df71 100644 --- a/Source/WebKit/mac/Misc/WebStringTruncator.mm +++ b/Source/WebKit/mac/Misc/WebStringTruncator.mm @@ -32,9 +32,9 @@ #import <WebCore/Font.h> #import <WebCore/FontCache.h> #import <WebCore/FontPlatformData.h> -#import <WebCore/PlatformString.h> #import <WebCore/StringTruncator.h> #import <wtf/StdLibExtras.h> +#import <wtf/text/WTFString.h> using namespace WebCore; diff --git a/Source/WebKit/mac/Plugins/Hosted/NetscapePluginHostManager.h b/Source/WebKit/mac/Plugins/Hosted/NetscapePluginHostManager.h index 64e37e162..a97712f72 100644 --- a/Source/WebKit/mac/Plugins/Hosted/NetscapePluginHostManager.h +++ b/Source/WebKit/mac/Plugins/Hosted/NetscapePluginHostManager.h @@ -28,10 +28,10 @@ #ifndef NetscapePluginHostManager_h #define NetscapePluginHostManager_h -#import <WebCore/PlatformString.h> #import <wtf/HashMap.h> #import <wtf/PassRefPtr.h> #import <wtf/text/StringHash.h> +#import <wtf/text/WTFString.h> @class WebHostedNetscapePluginView; @@ -44,7 +44,7 @@ class NetscapePluginHostManager { public: static NetscapePluginHostManager& shared(); - PassRefPtr<NetscapePluginInstanceProxy> instantiatePlugin(const WTF::String& pluginPath, cpu_type_t pluginArchitecture, const WTF::String& bundleIdentifier, WebHostedNetscapePluginView *, NSString *mimeType, NSArray *attributeKeys, NSArray *attributeValues, NSString *userAgent, NSURL *sourceURL, bool fullFrame, bool isPrivateBrowsingEnabled, bool isAcceleratedCompositingEnabled); + PassRefPtr<NetscapePluginInstanceProxy> instantiatePlugin(const String& pluginPath, cpu_type_t pluginArchitecture, const String& bundleIdentifier, WebHostedNetscapePluginView *, NSString *mimeType, NSArray *attributeKeys, NSArray *attributeValues, NSString *userAgent, NSURL *sourceURL, bool fullFrame, bool isPrivateBrowsingEnabled, bool isAcceleratedCompositingEnabled); void pluginHostDied(NetscapePluginHostProxy*); @@ -53,19 +53,19 @@ public: void didCreateWindow(); private: - NetscapePluginHostProxy* hostForPlugin(const WTF::String& pluginPath, cpu_type_t pluginArchitecture, const WTF::String& bundleIdentifier); + NetscapePluginHostProxy* hostForPlugin(const String& pluginPath, cpu_type_t pluginArchitecture, const String& bundleIdentifier); NetscapePluginHostManager(); ~NetscapePluginHostManager(); - bool spawnPluginHost(const WTF::String& pluginPath, cpu_type_t pluginArchitecture, mach_port_t clientPort, mach_port_t& pluginHostPort, ProcessSerialNumber& pluginHostPSN); + bool spawnPluginHost(const String& pluginPath, cpu_type_t pluginArchitecture, mach_port_t clientPort, mach_port_t& pluginHostPort, ProcessSerialNumber& pluginHostPSN); bool initializeVendorPort(); mach_port_t m_pluginVendorPort; // FIXME: This should really be a HashMap of RetainPtrs, but that doesn't work right now. - typedef HashMap<WTF::String, NetscapePluginHostProxy*> PluginHostMap; + typedef HashMap<String, NetscapePluginHostProxy*> PluginHostMap; PluginHostMap m_pluginHosts; }; diff --git a/Source/WebKit/mac/Plugins/Hosted/NetscapePluginHostProxy.mm b/Source/WebKit/mac/Plugins/Hosted/NetscapePluginHostProxy.mm index af6f2be99..0f9f07ddb 100644 --- a/Source/WebKit/mac/Plugins/Hosted/NetscapePluginHostProxy.mm +++ b/Source/WebKit/mac/Plugins/Hosted/NetscapePluginHostProxy.mm @@ -607,7 +607,7 @@ static Identifier identifierFromIdentifierRep(IdentifierRep* identifier) ASSERT(identifier->isString()); const char* str = identifier->string(); - return Identifier(JSDOMWindow::commonJSGlobalData(), stringToUString(String::fromUTF8WithLatin1Fallback(str, strlen(str)))); + return Identifier(JSDOMWindow::commonJSGlobalData(), String::fromUTF8WithLatin1Fallback(str, strlen(str))); } kern_return_t WKPCInvoke(mach_port_t clientPort, uint32_t pluginID, uint32_t requestID, uint32_t objectID, uint64_t serverIdentifier, diff --git a/Source/WebKit/mac/Plugins/Hosted/NetscapePluginInstanceProxy.h b/Source/WebKit/mac/Plugins/Hosted/NetscapePluginInstanceProxy.h index bf36fbd5f..79242c6f8 100644 --- a/Source/WebKit/mac/Plugins/Hosted/NetscapePluginInstanceProxy.h +++ b/Source/WebKit/mac/Plugins/Hosted/NetscapePluginInstanceProxy.h @@ -28,6 +28,7 @@ #ifndef NetscapePluginInstanceProxy_h #define NetscapePluginInstanceProxy_h +#include <JavaScriptCore/Identifier.h> #include <JavaScriptCore/JSGlobalData.h> #include <JavaScriptCore/Strong.h> #include <WebCore/Timer.h> diff --git a/Source/WebKit/mac/Plugins/Hosted/NetscapePluginInstanceProxy.mm b/Source/WebKit/mac/Plugins/Hosted/NetscapePluginInstanceProxy.mm index 91044305f..43ad2984d 100644 --- a/Source/WebKit/mac/Plugins/Hosted/NetscapePluginInstanceProxy.mm +++ b/Source/WebKit/mac/Plugins/Hosted/NetscapePluginInstanceProxy.mm @@ -875,7 +875,7 @@ bool NetscapePluginInstanceProxy::evaluate(uint32_t objectID, const String& scri UserGestureIndicator gestureIndicator(allowPopups ? DefinitelyProcessingUserGesture : PossiblyProcessingUserGesture); - JSValue result = JSC::evaluate(exec, globalObject->globalScopeChain(), makeSource(script)); + JSValue result = JSC::evaluate(exec, makeSource(script)); globalObject->globalData().timeoutChecker.stop(); @@ -1224,7 +1224,7 @@ bool NetscapePluginInstanceProxy::enumerate(uint32_t objectID, data_t& resultDat RetainPtr<NSMutableArray*> array(AdoptNS, [[NSMutableArray alloc] init]); for (unsigned i = 0; i < propertyNames.size(); i++) { - uint64_t methodName = reinterpret_cast<uint64_t>(_NPN_GetStringIdentifier(propertyNames[i].ustring().utf8().data())); + uint64_t methodName = reinterpret_cast<uint64_t>(_NPN_GetStringIdentifier(propertyNames[i].string().utf8().data())); [array.get() addObject:[NSNumber numberWithLongLong:methodName]]; } @@ -1265,7 +1265,7 @@ void NetscapePluginInstanceProxy::addValueToArray(NSMutableArray *array, ExecSta if (value.isString()) { [array addObject:[NSNumber numberWithInt:StringValueType]]; - [array addObject:ustringToString(value.toString(exec)->value(exec))]; + [array addObject:value.toWTFString(exec)]; } else if (value.isNumber()) { [array addObject:[NSNumber numberWithInt:DoubleValueType]]; [array addObject:[NSNumber numberWithDouble:value.toNumber(exec)]]; @@ -1672,7 +1672,7 @@ void NetscapePluginInstanceProxy::moveGlobalExceptionToExecState(ExecState* exec { JSLockHolder lock(exec); - throwError(exec, createError(exec, stringToUString(globalExceptionString()))); + throwError(exec, createError(exec, globalExceptionString())); } globalExceptionString() = String(); diff --git a/Source/WebKit/mac/Plugins/Hosted/ProxyInstance.mm b/Source/WebKit/mac/Plugins/Hosted/ProxyInstance.mm index 898c5e214..49e98fe6e 100644 --- a/Source/WebKit/mac/Plugins/Hosted/ProxyInstance.mm +++ b/Source/WebKit/mac/Plugins/Hosted/ProxyInstance.mm @@ -181,7 +181,7 @@ class ProxyRuntimeMethod : public RuntimeMethod { public: typedef RuntimeMethod Base; - static ProxyRuntimeMethod* create(ExecState* exec, JSGlobalObject* globalObject, const UString& name, Bindings::MethodList& list) + static ProxyRuntimeMethod* create(ExecState* exec, JSGlobalObject* globalObject, const String& name, Bindings::MethodList& list) { // FIXME: deprecatedGetDOMStructure uses the prototype off of the wrong global object // exec-globalData() is also likely wrong. @@ -204,7 +204,7 @@ private: { } - void finishCreation(JSGlobalData& globalData, const UString& name) + void finishCreation(JSGlobalData& globalData, const String& name) { Base::finishCreation(globalData, name); ASSERT(inherits(&s_info)); @@ -340,7 +340,7 @@ void ProxyInstance::getPropertyNames(ExecState* exec, PropertyNameArray& nameArr if (identifier->isString()) { const char* str = identifier->string(); - nameArray.add(Identifier(JSDOMWindow::commonJSGlobalData(), stringToUString(String::fromUTF8WithLatin1Fallback(str, strlen(str))))); + nameArray.add(Identifier(JSDOMWindow::commonJSGlobalData(), String::fromUTF8WithLatin1Fallback(str, strlen(str)))); } else nameArray.add(Identifier::from(exec, identifier->number())); } @@ -348,7 +348,7 @@ void ProxyInstance::getPropertyNames(ExecState* exec, PropertyNameArray& nameArr MethodList ProxyInstance::methodsNamed(PropertyName propertyName) { - UString name(propertyName.publicName()); + String name(propertyName.publicName()); if (name.isNull()) return MethodList(); @@ -392,7 +392,7 @@ MethodList ProxyInstance::methodsNamed(PropertyName propertyName) Field* ProxyInstance::fieldNamed(PropertyName propertyName) { - UString name(propertyName.publicName()); + String name(propertyName.publicName()); if (name.isNull()) return 0; diff --git a/Source/WebKit/mac/Plugins/WebPluginController.mm b/Source/WebKit/mac/Plugins/WebPluginController.mm index dd599d6d1..3ff109086 100644 --- a/Source/WebKit/mac/Plugins/WebPluginController.mm +++ b/Source/WebKit/mac/Plugins/WebPluginController.mm @@ -54,12 +54,12 @@ #import <WebCore/HTMLMediaElement.h> #import <WebCore/HTMLNames.h> #import <WebCore/MediaPlayerProxy.h> -#import <WebCore/PlatformString.h> #import <WebCore/ResourceRequest.h> #import <WebCore/ScriptController.h> #import <WebCore/WebCoreURLResponse.h> #import <objc/objc-runtime.h> #import <runtime/JSLock.h> +#import <wtf/text/WTFString.h> using namespace WebCore; using namespace HTMLNames; diff --git a/Source/WebKit/mac/Storage/WebStorageTrackerClient.mm b/Source/WebKit/mac/Storage/WebStorageTrackerClient.mm index 2257b5585..3bc9f107b 100644 --- a/Source/WebKit/mac/Storage/WebStorageTrackerClient.mm +++ b/Source/WebKit/mac/Storage/WebStorageTrackerClient.mm @@ -27,10 +27,10 @@ #import "WebSecurityOriginInternal.h" #import "WebStorageManagerPrivate.h" -#import <WebCore/PlatformString.h> #import <WebCore/SecurityOrigin.h> #import <wtf/MainThread.h> #import <wtf/RetainPtr.h> +#import <wtf/text/WTFString.h> using namespace WebCore; diff --git a/Source/WebKit/mac/WebCoreSupport/WebCachedFramePlatformData.h b/Source/WebKit/mac/WebCoreSupport/WebCachedFramePlatformData.h index 6c3f16603..9bdb51560 100644 --- a/Source/WebKit/mac/WebCoreSupport/WebCachedFramePlatformData.h +++ b/Source/WebKit/mac/WebCoreSupport/WebCachedFramePlatformData.h @@ -28,13 +28,14 @@ #import <objc/objc-runtime.h> #import <WebCore/CachedFramePlatformData.h> +#import <wtf/ObjcRuntimeExtras.h> #import <wtf/RetainPtr.h> class WebCachedFramePlatformData : public WebCore::CachedFramePlatformData { public: WebCachedFramePlatformData(id webDocumentView) : m_webDocumentView(webDocumentView) { } - virtual void clear() { objc_msgSend(m_webDocumentView.get(), @selector(closeIfNotCurrentView)); } + virtual void clear() { wtfObjcMsgSend<void>(m_webDocumentView.get(), @selector(closeIfNotCurrentView)); } id webDocumentView() { return m_webDocumentView.get(); } private: diff --git a/Source/WebKit/mac/WebCoreSupport/WebChromeClient.mm b/Source/WebKit/mac/WebCoreSupport/WebChromeClient.mm index ed6fa573b..c7dcefa97 100644 --- a/Source/WebKit/mac/WebCoreSupport/WebChromeClient.mm +++ b/Source/WebKit/mac/WebCoreSupport/WebChromeClient.mm @@ -52,9 +52,9 @@ #import <Foundation/Foundation.h> #import <WebCore/BlockExceptions.h> #import <WebCore/Console.h> -#import <WebCore/Cursor.h> #import <WebCore/ContextMenu.h> #import <WebCore/ContextMenuController.h> +#import <WebCore/Cursor.h> #import <WebCore/Element.h> #import <WebCore/FileChooser.h> #import <WebCore/FileIconLoader.h> @@ -71,7 +71,6 @@ #import <WebCore/NotImplemented.h> #import <WebCore/Page.h> #import <WebCore/PlatformScreen.h> -#import <WebCore/PlatformString.h> #import <WebCore/PopupMenuMac.h> #import <WebCore/ResourceRequest.h> #import <WebCore/SearchPopupMenuMac.h> @@ -79,6 +78,7 @@ #import <WebCore/WindowFeatures.h> #import <wtf/PassRefPtr.h> #import <wtf/Vector.h> +#import <wtf/text/WTFString.h> #if USE(ACCELERATED_COMPOSITING) #import <WebCore/GraphicsLayer.h> diff --git a/Source/WebKit/mac/WebCoreSupport/WebDeviceOrientationClient.mm b/Source/WebKit/mac/WebCoreSupport/WebDeviceOrientationClient.mm index aaa031a4b..669c0c288 100644 --- a/Source/WebKit/mac/WebCoreSupport/WebDeviceOrientationClient.mm +++ b/Source/WebKit/mac/WebCoreSupport/WebDeviceOrientationClient.mm @@ -29,6 +29,7 @@ #import "WebDeviceOrientationProvider.h" #import "WebViewInternal.h" #import <objc/objc-runtime.h> +#import <wtf/ObjcRuntimeExtras.h> using namespace WebCore; @@ -70,7 +71,7 @@ id<WebDeviceOrientationProvider> WebDeviceOrientationClient::getProvider() const if (!m_provider) { m_provider = [m_webView _deviceOrientationProvider]; if ([m_provider respondsToSelector:@selector(setController:)]) - objc_msgSend(m_provider, @selector(setController:), m_controller); + wtfObjcMsgSend<void>(m_provider, @selector(setController:), m_controller); } return m_provider; } diff --git a/Source/WebKit/mac/WebCoreSupport/WebEditorClient.mm b/Source/WebKit/mac/WebCoreSupport/WebEditorClient.mm index 6497c95ee..615eb51a9 100644 --- a/Source/WebKit/mac/WebCoreSupport/WebEditorClient.mm +++ b/Source/WebKit/mac/WebCoreSupport/WebEditorClient.mm @@ -60,7 +60,6 @@ #import <WebCore/KeyboardEvent.h> #import <WebCore/LegacyWebArchive.h> #import <WebCore/PlatformKeyboardEvent.h> -#import <WebCore/PlatformString.h> #import <WebCore/RunLoop.h> #import <WebCore/SpellChecker.h> #import <WebCore/UndoStep.h> @@ -69,6 +68,7 @@ #import <runtime/InitializeThreading.h> #import <wtf/MainThread.h> #import <wtf/PassRefPtr.h> +#import <wtf/text/WTFString.h> using namespace WebCore; diff --git a/Source/WebKit/mac/WebCoreSupport/WebFrameLoaderClient.mm b/Source/WebKit/mac/WebCoreSupport/WebFrameLoaderClient.mm index fd14bc00a..5b68a1f5f 100644 --- a/Source/WebKit/mac/WebCoreSupport/WebFrameLoaderClient.mm +++ b/Source/WebKit/mac/WebCoreSupport/WebFrameLoaderClient.mm @@ -106,7 +106,6 @@ #import <WebCore/MIMETypeRegistry.h> #import <WebCore/MouseEvent.h> #import <WebCore/Page.h> -#import <WebCore/PlatformString.h> #import <WebCore/PluginViewBase.h> #import <WebCore/ResourceError.h> #import <WebCore/ResourceHandle.h> @@ -123,6 +122,7 @@ #import <runtime/InitializeThreading.h> #import <wtf/MainThread.h> #import <wtf/PassRefPtr.h> +#import <wtf/text/WTFString.h> #if ENABLE(PLUGIN_PROXY_FOR_VIDEO) #import <WebCore/HTMLMediaElement.h> @@ -346,8 +346,13 @@ void WebFrameLoaderClient::dispatchWillSendRequest(DocumentLoader* loader, unsig if (redirectResponse.isNull()) static_cast<WebDocumentLoaderMac*>(loader)->increaseLoadCount(identifier); + NSURLRequest *currentURLRequest = request.nsURLRequest(); + NSURLRequest *newURLRequest = currentURLRequest; if (implementations->willSendRequestFunc) - request = (NSURLRequest *)CallResourceLoadDelegate(implementations->willSendRequestFunc, webView, @selector(webView:resource:willSendRequest:redirectResponse:fromDataSource:), [webView _objectForIdentifier:identifier], request.nsURLRequest(), redirectResponse.nsURLResponse(), dataSource(loader)); + newURLRequest = (NSURLRequest *)CallResourceLoadDelegate(implementations->willSendRequestFunc, webView, @selector(webView:resource:willSendRequest:redirectResponse:fromDataSource:), [webView _objectForIdentifier:identifier], currentURLRequest, redirectResponse.nsURLResponse(), dataSource(loader)); + + if (newURLRequest != currentURLRequest) + request = newURLRequest; } bool WebFrameLoaderClient::shouldUseCredentialStorage(DocumentLoader* loader, unsigned long identifier) @@ -1327,7 +1332,7 @@ NSDictionary *WebFrameLoaderClient::actionDictionary(const NavigationAction& act if (const MouseEvent* mouseEvent = findMouseEvent(event)) { WebElementDictionary *element = [[WebElementDictionary alloc] - initWithHitTestResult:core(m_webFrame.get())->eventHandler()->hitTestResultAtPoint(mouseEvent->absoluteLocation(), false)]; + initWithHitTestResult:core(m_webFrame.get())->eventHandler()->hitTestResultAtPoint(mouseEvent->absoluteLocation())]; [result setObject:element forKey:WebActionElementKey]; [element release]; diff --git a/Source/WebKit/mac/WebCoreSupport/WebIconDatabaseClient.mm b/Source/WebKit/mac/WebCoreSupport/WebIconDatabaseClient.mm index 8214d0298..db0c77ee1 100644 --- a/Source/WebKit/mac/WebCoreSupport/WebIconDatabaseClient.mm +++ b/Source/WebKit/mac/WebCoreSupport/WebIconDatabaseClient.mm @@ -29,7 +29,7 @@ #import "WebIconDatabaseClient.h" #import "WebIconDatabaseInternal.h" -#import <WebCore/PlatformString.h> +#import <wtf/text/WTFString.h> #if ENABLE(ICONDATABASE) diff --git a/Source/WebKit/mac/WebCoreSupport/WebInspectorClient.h b/Source/WebKit/mac/WebCoreSupport/WebInspectorClient.h index 9495958e9..80693343d 100644 --- a/Source/WebKit/mac/WebCoreSupport/WebInspectorClient.h +++ b/Source/WebKit/mac/WebCoreSupport/WebInspectorClient.h @@ -29,12 +29,12 @@ #import <WebCore/InspectorClient.h> #import <WebCore/InspectorFrontendChannel.h> #import <WebCore/InspectorFrontendClientLocal.h> -#import <WebCore/PlatformString.h> #import <wtf/Forward.h> #import <wtf/HashMap.h> #import <wtf/RetainPtr.h> #import <wtf/text/StringHash.h> +#import <wtf/text/WTFString.h> #ifdef __OBJC__ @class WebInspectorWindowController; @@ -69,7 +69,7 @@ public: virtual void highlight() OVERRIDE; virtual void hideHighlight() OVERRIDE; - virtual bool sendMessageToFrontend(const WTF::String&) OVERRIDE; + virtual bool sendMessageToFrontend(const String&) OVERRIDE; bool inspectorStartsAttached(); void setInspectorStartsAttached(bool); @@ -77,7 +77,7 @@ public: void releaseFrontend(); private: - WTF::PassOwnPtr<WebCore::InspectorFrontendClientLocal::Settings> createFrontendSettings(); + PassOwnPtr<WebCore::InspectorFrontendClientLocal::Settings> createFrontendSettings(); WebView *m_webView; RetainPtr<WebNodeHighlighter> m_highlighter; @@ -88,12 +88,12 @@ private: class WebInspectorFrontendClient : public WebCore::InspectorFrontendClientLocal { public: - WebInspectorFrontendClient(WebView*, WebInspectorWindowController*, WebCore::InspectorController*, WebCore::Page*, WTF::PassOwnPtr<Settings>); + WebInspectorFrontendClient(WebView*, WebInspectorWindowController*, WebCore::InspectorController*, WebCore::Page*, PassOwnPtr<Settings>); virtual void frontendLoaded(); - virtual WTF::String localizedStringsURL(); - virtual WTF::String hiddenPanels(); + virtual String localizedStringsURL(); + virtual String hiddenPanels(); virtual void bringToFront(); virtual void closeWindow(); @@ -103,12 +103,12 @@ public: virtual void detachWindow(); virtual void setAttachedWindowHeight(unsigned height); - virtual void inspectedURLChanged(const WTF::String& newURL); + virtual void inspectedURLChanged(const String& newURL); private: void updateWindowTitle() const; WebView* m_inspectedWebView; RetainPtr<WebInspectorWindowController> m_windowController; - WTF::String m_inspectedURL; + String m_inspectedURL; }; diff --git a/Source/WebKit/mac/WebCoreSupport/WebNotificationClient.h b/Source/WebKit/mac/WebCoreSupport/WebNotificationClient.h index 94535d361..d6949ea2d 100644 --- a/Source/WebKit/mac/WebCoreSupport/WebNotificationClient.h +++ b/Source/WebKit/mac/WebCoreSupport/WebNotificationClient.h @@ -48,6 +48,11 @@ public: WebNotificationClient(WebView *); WebView *webView() { return m_webView; } +#if ENABLE(NOTIFICATIONS) || ENABLE(LEGACY_NOTIFICATIONS) + // For testing purposes. + uint64_t notificationIDForTesting(WebCore::Notification*); +#endif + private: virtual bool show(WebCore::Notification*) OVERRIDE; virtual void cancel(WebCore::Notification*) OVERRIDE; diff --git a/Source/WebKit/mac/WebCoreSupport/WebNotificationClient.mm b/Source/WebKit/mac/WebCoreSupport/WebNotificationClient.mm index e2a05c6a8..84a9d6acf 100644 --- a/Source/WebKit/mac/WebCoreSupport/WebNotificationClient.mm +++ b/Source/WebKit/mac/WebCoreSupport/WebNotificationClient.mm @@ -160,9 +160,6 @@ void WebNotificationClient::notificationObjectDestroyed(Notification* notificati void WebNotificationClient::notificationControllerDestroyed() { -#if ENABLE(NOTIFICATIONS) || ENABLE(LEGACY_NOTIFICATIONS) - [m_webView _notificationControllerDestroyed]; -#endif delete this; } @@ -230,6 +227,11 @@ NotificationClient::Permission WebNotificationClient::checkPermission(ScriptExec } #if ENABLE(NOTIFICATIONS) || ENABLE(LEGACY_NOTIFICATIONS) +uint64_t WebNotificationClient::notificationIDForTesting(WebCore::Notification* notification) +{ + return [m_notificationMap.get(notification).get() notificationID]; +} + @implementation WebNotificationPolicyListener #if ENABLE(NOTIFICATIONS) diff --git a/Source/WebKit/mac/WebView/WebDelegateImplementationCaching.mm b/Source/WebKit/mac/WebView/WebDelegateImplementationCaching.mm index 15f6dffa2..8470f5f2b 100644 --- a/Source/WebKit/mac/WebView/WebDelegateImplementationCaching.mm +++ b/Source/WebKit/mac/WebView/WebDelegateImplementationCaching.mm @@ -33,6 +33,7 @@ #import "WebView.h" #import "WebViewData.h" #import <objc/objc-runtime.h> +#import <wtf/ObjcRuntimeExtras.h> @implementation WebView (WebDelegateImplementationCaching) @@ -84,7 +85,7 @@ static inline id CallDelegate(WebView *self, id delegate, SEL selector) if (!delegate || ![delegate respondsToSelector:selector]) return nil; @try { - return objc_msgSend(delegate, selector, self); + return wtfObjcMsgSend<id>(delegate, selector, self); } @catch(id exception) { ReportDiscardedDelegateException(selector, exception); } @@ -96,7 +97,7 @@ static inline id CallDelegate(WebView *self, id delegate, SEL selector, id objec if (!delegate || ![delegate respondsToSelector:selector]) return nil; @try { - return objc_msgSend(delegate, selector, self, object); + return wtfObjcMsgSend<id>(delegate, selector, self, object); } @catch(id exception) { ReportDiscardedDelegateException(selector, exception); } @@ -108,7 +109,7 @@ static inline id CallDelegate(WebView *self, id delegate, SEL selector, NSRect r if (!delegate || ![delegate respondsToSelector:selector]) return nil; @try { - return reinterpret_cast<id (*)(id, SEL, WebView *, NSRect)>(objc_msgSend)(delegate, selector, self, rect); + return wtfObjcMsgSend<id>(delegate, selector, self, rect); } @catch(id exception) { ReportDiscardedDelegateException(selector, exception); } @@ -120,7 +121,7 @@ static inline id CallDelegate(WebView *self, id delegate, SEL selector, id objec if (!delegate || ![delegate respondsToSelector:selector]) return nil; @try { - return objc_msgSend(delegate, selector, self, object1, object2); + return wtfObjcMsgSend<id>(delegate, selector, self, object1, object2); } @catch(id exception) { ReportDiscardedDelegateException(selector, exception); } @@ -132,7 +133,7 @@ static inline id CallDelegate(WebView *self, id delegate, SEL selector, id objec if (!delegate || ![delegate respondsToSelector:selector]) return nil; @try { - return objc_msgSend(delegate, selector, self, object, boolean); + return wtfObjcMsgSend<id>(delegate, selector, self, object, boolean); } @catch(id exception) { ReportDiscardedDelegateException(selector, exception); } @@ -144,7 +145,7 @@ static inline id CallDelegate(WebView *self, id delegate, SEL selector, id objec if (!delegate || ![delegate respondsToSelector:selector]) return nil; @try { - return objc_msgSend(delegate, selector, self, object1, object2, object3); + return wtfObjcMsgSend<id>(delegate, selector, self, object1, object2, object3); } @catch(id exception) { ReportDiscardedDelegateException(selector, exception); } @@ -156,7 +157,7 @@ static inline id CallDelegate(WebView *self, id delegate, SEL selector, id objec if (!delegate || ![delegate respondsToSelector:selector]) return nil; @try { - return objc_msgSend(delegate, selector, self, object, integer); + return wtfObjcMsgSend<id>(delegate, selector, self, object, integer); } @catch(id exception) { ReportDiscardedDelegateException(selector, exception); } @@ -180,7 +181,7 @@ static inline BOOL CallDelegateReturningBoolean(BOOL result, WebView *self, id d if (!delegate || ![delegate respondsToSelector:selector]) return result; @try { - return reinterpret_cast<BOOL (*)(id, SEL, WebView *)>(objc_msgSend)(delegate, selector, self); + return wtfObjcMsgSend<BOOL>(delegate, selector, self); } @catch(id exception) { ReportDiscardedDelegateException(selector, exception); } @@ -192,7 +193,7 @@ static inline BOOL CallDelegateReturningBoolean(BOOL result, WebView *self, id d if (!delegate || ![delegate respondsToSelector:selector]) return result; @try { - return reinterpret_cast<BOOL (*)(id, SEL, WebView *, id)>(objc_msgSend)(delegate, selector, self, object); + return wtfObjcMsgSend<BOOL>(delegate, selector, self, object); } @catch(id exception) { ReportDiscardedDelegateException(selector, exception); } @@ -204,7 +205,7 @@ static inline BOOL CallDelegateReturningBoolean(BOOL result, WebView *self, id d if (!delegate || ![delegate respondsToSelector:selector]) return result; @try { - return reinterpret_cast<BOOL (*)(id, SEL, WebView *, id, BOOL)>(objc_msgSend)(delegate, selector, self, object, boolean); + return wtfObjcMsgSend<BOOL>(delegate, selector, self, object, boolean); } @catch(id exception) { ReportDiscardedDelegateException(selector, exception); } @@ -216,7 +217,7 @@ static inline BOOL CallDelegateReturningBoolean(BOOL result, WebView *self, id d if (!delegate || ![delegate respondsToSelector:selector]) return result; @try { - return reinterpret_cast<BOOL (*)(id, SEL, WebView *, id, BOOL, id)>(objc_msgSend)(delegate, selector, self, object, boolean, object2); + return wtfObjcMsgSend<BOOL>(delegate, selector, self, object, boolean, object2); } @catch(id exception) { ReportDiscardedDelegateException(selector, exception); } @@ -228,7 +229,7 @@ static inline BOOL CallDelegateReturningBoolean(BOOL result, WebView *self, id d if (!delegate || ![delegate respondsToSelector:selector]) return result; @try { - return reinterpret_cast<BOOL (*)(id, SEL, WebView *, id, id)>(objc_msgSend)(delegate, selector, self, object1, object2); + return wtfObjcMsgSend<BOOL>(delegate, selector, self, object1, object2); } @catch(id exception) { ReportDiscardedDelegateException(selector, exception); } @@ -240,7 +241,7 @@ static inline id CallDelegate(IMP implementation, WebView *self, id delegate, SE if (!delegate) return nil; @try { - return implementation(delegate, selector, self); + return wtfCallIMP<id>(implementation, delegate, selector, self); } @catch(id exception) { ReportDiscardedDelegateException(selector, exception); } @@ -252,7 +253,7 @@ static inline id CallDelegate(IMP implementation, WebView *self, id delegate, SE if (!delegate) return nil; @try { - return implementation(delegate, selector, self, object); + return wtfCallIMP<id>(implementation, delegate, selector, self, object); } @catch(id exception) { ReportDiscardedDelegateException(selector, exception); } @@ -264,7 +265,7 @@ static inline id CallDelegate(IMP implementation, WebView *self, id delegate, SE if (!delegate) return nil; @try { - return implementation(delegate, selector, self, object1, object2); + return wtfCallIMP<id>(implementation, delegate, selector, self, object1, object2); } @catch(id exception) { ReportDiscardedDelegateException(selector, exception); } @@ -276,7 +277,7 @@ static inline id CallDelegate(IMP implementation, WebView *self, id delegate, SE if (!delegate) return nil; @try { - return implementation(delegate, selector, self, object1, object2, object3); + return wtfCallIMP<id>(implementation, delegate, selector, self, object1, object2, object3); } @catch(id exception) { ReportDiscardedDelegateException(selector, exception); } @@ -288,7 +289,7 @@ static inline id CallDelegate(IMP implementation, WebView *self, id delegate, SE if (!delegate) return nil; @try { - return implementation(delegate, selector, self, object1, object2, object3, object4); + return wtfCallIMP<id>(implementation, delegate, selector, self, object1, object2, object3, object4); } @catch(id exception) { ReportDiscardedDelegateException(selector, exception); } @@ -300,7 +301,7 @@ static inline id CallDelegate(IMP implementation, WebView *self, id delegate, SE if (!delegate) return nil; @try { - return implementation(delegate, selector, self, object1, integer, object2); + return wtfCallIMP<id>(implementation, delegate, selector, self, object1, integer, object2); } @catch(id exception) { ReportDiscardedDelegateException(selector, exception); } @@ -312,7 +313,7 @@ static inline id CallDelegate(IMP implementation, WebView *self, id delegate, SE if (!delegate) return nil; @try { - return implementation(delegate, selector, self, object1, integer1, integer2, object2); + return wtfCallIMP<id>(implementation, delegate, selector, self, object1, integer1, integer2, object2); } @catch(id exception) { ReportDiscardedDelegateException(selector, exception); } @@ -324,7 +325,7 @@ static inline id CallDelegate(IMP implementation, WebView *self, id delegate, SE if (!delegate) return nil; @try { - return implementation(delegate, selector, self, object1, boolean, integer1, integer2, object2); + return wtfCallIMP<id>(implementation, delegate, selector, self, object1, boolean, integer1, integer2, object2); } @catch(id exception) { ReportDiscardedDelegateException(selector, exception); } @@ -336,7 +337,7 @@ static inline id CallDelegate(IMP implementation, WebView *self, id delegate, SE if (!delegate) return nil; @try { - return implementation(delegate, selector, self, object1, object2, integer, object3); + return wtfCallIMP<id>(implementation, delegate, selector, self, object1, object2, integer, object3); } @catch(id exception) { ReportDiscardedDelegateException(selector, exception); } @@ -348,7 +349,7 @@ static inline id CallDelegate(IMP implementation, WebView *self, id delegate, SE if (!delegate) return nil; @try { - return implementation(delegate, selector, self, object1, integer1, object2, integer2, object3); + return wtfCallIMP<id>(implementation, delegate, selector, self, object1, integer1, object2, integer2, object3); } @catch(id exception) { ReportDiscardedDelegateException(selector, exception); } @@ -360,7 +361,7 @@ static inline id CallDelegate(IMP implementation, WebView *self, id delegate, SE if (!delegate) return nil; @try { - return implementation(delegate, selector, self, object1, integer, object2, object3, object4); + return wtfCallIMP<id>(implementation, delegate, selector, self, object1, integer, object2, object3, object4); } @catch(id exception) { ReportDiscardedDelegateException(selector, exception); } @@ -372,7 +373,7 @@ static inline id CallDelegate(IMP implementation, WebView *self, id delegate, SE if (!delegate) return nil; @try { - return implementation(delegate, selector, self, object1, interval, object2, object3); + return wtfCallIMP<id>(implementation, delegate, selector, self, object1, interval, object2, object3); } @catch(id exception) { ReportDiscardedDelegateException(selector, exception); } @@ -502,7 +503,7 @@ id CallResourceLoadDelegate(IMP implementation, WebView *self, SEL selector, id BOOL CallResourceLoadDelegateReturningBoolean(BOOL result, IMP implementation, WebView *self, SEL selector, id object1) { @try { - return reinterpret_cast<BOOL (*)(id, SEL, WebView *, id)>(objc_msgSend)(self->_private->resourceProgressDelegate, selector, self, object1); + return wtfObjcMsgSend<BOOL>(self->_private->resourceProgressDelegate, selector, self, object1); } @catch(id exception) { ReportDiscardedDelegateException(selector, exception); } @@ -512,7 +513,7 @@ BOOL CallResourceLoadDelegateReturningBoolean(BOOL result, IMP implementation, W BOOL CallResourceLoadDelegateReturningBoolean(BOOL result, IMP implementation, WebView *self, SEL selector, id object1, id object2) { @try { - return reinterpret_cast<BOOL (*)(id, SEL, WebView *, id, id)>(objc_msgSend)(self->_private->resourceProgressDelegate, selector, self, object1, object2); + return wtfObjcMsgSend<BOOL>(self->_private->resourceProgressDelegate, selector, self, object1, object2); } @catch(id exception) { ReportDiscardedDelegateException(selector, exception); } @@ -522,7 +523,7 @@ BOOL CallResourceLoadDelegateReturningBoolean(BOOL result, IMP implementation, W BOOL CallResourceLoadDelegateReturningBoolean(BOOL result, IMP implementation, WebView *self, SEL selector, id object1, id object2, id object3) { @try { - return reinterpret_cast<BOOL (*)(id, SEL, WebView *, id, id, id)>(objc_msgSend)(self->_private->resourceProgressDelegate, selector, self, object1, object2, object3); + return wtfObjcMsgSend<BOOL>(self->_private->resourceProgressDelegate, selector, self, object1, object2, object3); } @catch(id exception) { ReportDiscardedDelegateException(selector, exception); } @@ -577,7 +578,7 @@ id CallFormDelegate(WebView *self, SEL selector, id object1, id object2) if (!delegate || ![delegate respondsToSelector:selector]) return nil; @try { - return objc_msgSend(delegate, selector, object1, object2); + return wtfObjcMsgSend<id>(delegate, selector, object1, object2); } @catch(id exception) { ReportDiscardedDelegateException(selector, exception); } @@ -590,7 +591,7 @@ id CallFormDelegate(WebView *self, SEL selector, id object1, id object2, id obje if (!delegate || ![delegate respondsToSelector:selector]) return nil; @try { - return objc_msgSend(delegate, selector, object1, object2, object3, object4, object5); + return wtfObjcMsgSend<id>(delegate, selector, object1, object2, object3, object4, object5); } @catch(id exception) { ReportDiscardedDelegateException(selector, exception); } @@ -603,7 +604,7 @@ BOOL CallFormDelegateReturningBoolean(BOOL result, WebView *self, SEL selector, if (!delegate || ![delegate respondsToSelector:selector]) return result; @try { - return reinterpret_cast<BOOL (*)(id, SEL, id, SEL, id)>(objc_msgSend)(delegate, selector, object1, selectorArg, object2); + return wtfObjcMsgSend<BOOL>(delegate, selector, object1, selectorArg, object2); } @catch(id exception) { ReportDiscardedDelegateException(selector, exception); } diff --git a/Source/WebKit/mac/WebView/WebFrame.mm b/Source/WebKit/mac/WebView/WebFrame.mm index 92f9e0bb6..f91ffd8e5 100644 --- a/Source/WebKit/mac/WebView/WebFrame.mm +++ b/Source/WebKit/mac/WebView/WebFrame.mm @@ -598,7 +598,7 @@ static inline WebDataSource *dataSource(DocumentLoader* loader) JSC::ExecState* exec = _private->coreFrame->script()->globalObject(mainThreadNormalWorld())->globalExec(); JSC::JSLockHolder lock(exec); - return ustringToString(result.toString(exec)->value(exec)); + return result.toWTFString(exec); } - (NSRect)_caretRectAtPosition:(const Position&)pos affinity:(NSSelectionAffinity)affinity @@ -1124,7 +1124,7 @@ static inline WebDataSource *dataSource(DocumentLoader* loader) JSC::ExecState* exec = anyWorldGlobalObject->globalExec(); JSC::JSLockHolder lock(exec); - return ustringToString(result.toString(exec)->value(exec)); + return result.toWTFString(exec); } - (JSGlobalContextRef)_globalContextForScriptWorld:(WebScriptWorld *)world diff --git a/Source/WebKit/mac/WebView/WebHTMLView.mm b/Source/WebKit/mac/WebView/WebHTMLView.mm index 505db5302..964995f9c 100644 --- a/Source/WebKit/mac/WebView/WebHTMLView.mm +++ b/Source/WebKit/mac/WebView/WebHTMLView.mm @@ -124,8 +124,10 @@ #import <WebKitSystemInterface.h> #import <dlfcn.h> #import <limits> +#import <objc/objc-runtime.h> #import <runtime/InitializeThreading.h> #import <wtf/MainThread.h> +#import <wtf/ObjcRuntimeExtras.h> #if USE(ACCELERATED_COMPOSITING) #import <QuartzCore/QuartzCore.h> @@ -262,7 +264,7 @@ static IMP oldSetCursorForMouseLocationIMP; static void setCursor(NSWindow *self, SEL cmd, NSPoint point) { if (needsCursorRectsSupportAtPoint(self, point)) - oldSetCursorForMouseLocationIMP(self, cmd, point); + wtfCallIMP<id>(oldSetCursorForMouseLocationIMP, self, cmd, point); } @@ -296,7 +298,7 @@ static IMP oldSetNeedsDisplayInRectIMP; static void setNeedsDisplayInRect(NSView *self, SEL cmd, NSRect invalidRect) { if (![self _drawnByAncestor]) { - oldSetNeedsDisplayInRectIMP(self, cmd, invalidRect); + wtfCallIMP<id>(oldSetNeedsDisplayInRectIMP, self, cmd, invalidRect); return; } @@ -306,14 +308,14 @@ static void setNeedsDisplayInRect(NSView *self, SEL cmd, NSRect invalidRect) enclosingWebFrameView = (WebFrameView *)[enclosingWebFrameView superview]; if (!enclosingWebFrameView) { - oldSetNeedsDisplayInRectIMP(self, cmd, invalidRect); + wtfCallIMP<id>(oldSetNeedsDisplayInRectIMP, self, cmd, invalidRect); return; } Frame* coreFrame = core([enclosingWebFrameView webFrame]); FrameView* frameView = coreFrame ? coreFrame->view() : 0; if (!frameView || !frameView->isEnclosedInCompositingLayer()) { - oldSetNeedsDisplayInRectIMP(self, cmd, invalidRect); + wtfCallIMP<id>(oldSetNeedsDisplayInRectIMP, self, cmd, invalidRect); return; } @@ -6204,7 +6206,8 @@ static void extractUnderlines(NSAttributedString *string, Vector<CompositionUnde Frame* coreFrame = core([self _frame]); if (!coreFrame) return nil; - return [[[WebElementDictionary alloc] initWithHitTestResult:coreFrame->eventHandler()->hitTestResultAtPoint(IntPoint(point), allow)] autorelease]; + HitTestRequest::HitTestRequestType hitType = HitTestRequest::ReadOnly | HitTestRequest::Active | (allow ? HitTestRequest::AllowShadowContent : 0); + return [[[WebElementDictionary alloc] initWithHitTestResult:coreFrame->eventHandler()->hitTestResultAtPoint(IntPoint(point), hitType)] autorelease]; } - (NSUInteger)countMatchesForText:(NSString *)string inDOMRange:(DOMRange *)range options:(WebFindOptions)options limit:(NSUInteger)limit markMatches:(BOOL)markMatches diff --git a/Source/WebKit/mac/WebView/WebNotification.h b/Source/WebKit/mac/WebView/WebNotification.h index fb9c50e5d..49255690b 100644 --- a/Source/WebKit/mac/WebView/WebNotification.h +++ b/Source/WebKit/mac/WebView/WebNotification.h @@ -37,6 +37,7 @@ - (NSString *)title; - (NSString *)body; - (NSString *)tag; +- (NSString *)iconURL; - (WebSecurityOrigin *)origin; - (uint64_t)notificationID; diff --git a/Source/WebKit/mac/WebView/WebNotification.mm b/Source/WebKit/mac/WebView/WebNotification.mm index 6a123f6ee..2b60bfe69 100644 --- a/Source/WebKit/mac/WebView/WebNotification.mm +++ b/Source/WebKit/mac/WebView/WebNotification.mm @@ -84,7 +84,6 @@ Notification* core(WebNotification *notification) - (NSString *)title { #if ENABLE(NOTIFICATIONS) || ENABLE(LEGACY_NOTIFICATIONS) - ASSERT(core(self)); return core(self)->title(); #else return nil; @@ -94,7 +93,6 @@ Notification* core(WebNotification *notification) - (NSString *)body { #if ENABLE(NOTIFICATIONS) || ENABLE(LEGACY_NOTIFICATIONS) - ASSERT(core(self)); return core(self)->body(); #else return nil; @@ -104,17 +102,24 @@ Notification* core(WebNotification *notification) - (NSString *)tag { #if ENABLE(NOTIFICATIONS) || ENABLE(LEGACY_NOTIFICATIONS) - ASSERT(core(self)); return core(self)->tag(); #else return nil; #endif } +- (NSString *)iconURL +{ +#if ENABLE(NOTIFICATIONS) || ENABLE(LEGACY_NOTIFICATIONS) + return core(self)->iconURL(); +#else + return nil; +#endif +} + - (WebSecurityOrigin *)origin { #if ENABLE(NOTIFICATIONS) || ENABLE(LEGACY_NOTIFICATIONS) - ASSERT(core(self)); return [[[WebSecurityOrigin alloc] _initWithWebCoreSecurityOrigin:core(self)->scriptExecutionContext()->securityOrigin()] autorelease]; #else return nil; @@ -124,7 +129,6 @@ Notification* core(WebNotification *notification) - (uint64_t)notificationID { #if ENABLE(NOTIFICATIONS) || ENABLE(LEGACY_NOTIFICATIONS) - ASSERT(core(self)); return _private->_notificationID; #else return 0; @@ -134,7 +138,6 @@ Notification* core(WebNotification *notification) - (void)dispatchShowEvent { #if ENABLE(NOTIFICATIONS) || ENABLE(LEGACY_NOTIFICATIONS) - ASSERT(core(self)); core(self)->dispatchShowEvent(); #endif } @@ -142,7 +145,6 @@ Notification* core(WebNotification *notification) - (void)dispatchCloseEvent { #if ENABLE(NOTIFICATIONS) || ENABLE(LEGACY_NOTIFICATIONS) - ASSERT(core(self)); core(self)->dispatchCloseEvent(); #endif } @@ -150,7 +152,6 @@ Notification* core(WebNotification *notification) - (void)dispatchClickEvent { #if ENABLE(NOTIFICATIONS) || ENABLE(LEGACY_NOTIFICATIONS) - ASSERT(core(self)); core(self)->dispatchClickEvent(); #endif } @@ -158,7 +159,6 @@ Notification* core(WebNotification *notification) - (void)dispatchErrorEvent { #if ENABLE(NOTIFICATIONS) || ENABLE(LEGACY_NOTIFICATIONS) - ASSERT(core(self)); core(self)->dispatchErrorEvent(); #endif } diff --git a/Source/WebKit/mac/WebView/WebRenderLayer.mm b/Source/WebKit/mac/WebView/WebRenderLayer.mm index c28264365..646dc1d83 100644 --- a/Source/WebKit/mac/WebView/WebRenderLayer.mm +++ b/Source/WebKit/mac/WebView/WebRenderLayer.mm @@ -28,15 +28,14 @@ #import "WebFrameInternal.h" #import <WebCore/Frame.h> #import <WebCore/FrameLoaderClient.h> -#import <WebCore/PlatformString.h> #import <WebCore/RenderLayer.h> #import <WebCore/RenderLayerBacking.h> #import <WebCore/RenderView.h> #import <WebCore/StyledElement.h> +#import <wtf/text/WTFString.h> using namespace WebCore; - @interface WebRenderLayer(Private) - (id)initWithRenderLayer:(RenderLayer *)layer; @@ -59,13 +58,13 @@ using namespace WebCore; if (node->hasClass()) { StyledElement* styledElement = static_cast<StyledElement*>(node); - String classes; + StringBuilder classes; for (size_t i = 0; i < styledElement->classNames().size(); ++i) { if (i > 0) - classes += " "; - classes += styledElement->classNames()[i]; + classes.append(' '); + classes.append(styledElement->classNames()[i]); } - name = [name stringByAppendingFormat:@" class=\"%@\"", (NSString *)classes]; + name = [name stringByAppendingFormat:@" class=\"%@\"", (NSString *)classes.toString()]; } } diff --git a/Source/WebKit/mac/WebView/WebScriptDebugDelegate.mm b/Source/WebKit/mac/WebView/WebScriptDebugDelegate.mm index 50b84be24..6cea5a984 100644 --- a/Source/WebKit/mac/WebView/WebScriptDebugDelegate.mm +++ b/Source/WebKit/mac/WebView/WebScriptDebugDelegate.mm @@ -175,18 +175,18 @@ NSString * const WebScriptErrorLineNumberKey = @"WebScriptErrorLineNumber"; return [NSArray array]; - ScopeChainNode* scopeChain = _private->debuggerCallFrame->scopeChain(); - JSLockHolder lock(scopeChain->globalData); - if (!scopeChain->next) // global frame + JSScope* scope = _private->debuggerCallFrame->scope(); + JSLockHolder lock(scope->globalData()); + if (!scope->next()) // global frame return [NSArray arrayWithObject:_private->globalObject]; NSMutableArray *scopes = [[NSMutableArray alloc] init]; - ScopeChainIterator end = scopeChain->end(); - for (ScopeChainIterator it = scopeChain->begin(); it != end; ++it) { - JSObject* object = it->get(); + ScopeChainIterator end = scope->end(); + for (ScopeChainIterator it = scope->begin(); it != end; ++it) { + JSObject* object = it.get(); if (object->isActivationObject()) - object = DebuggerActivation::create(*scopeChain->globalData, object); + object = DebuggerActivation::create(*scope->globalData(), object); [scopes addObject:[self _convertValueToObjcValue:object]]; } @@ -203,8 +203,8 @@ NSString * const WebScriptErrorLineNumberKey = @"WebScriptErrorLineNumber"; if (!_private->debuggerCallFrame) return nil; - const UString* functionName = _private->debuggerCallFrame->functionName(); - return functionName ? toNSString(*functionName) : nil; + const String* functionName = _private->debuggerCallFrame->functionName(); + return functionName ? nsStringNilIfEmpty(*functionName) : nil; } // Returns the pending exception for this frame (nil if none). @@ -242,14 +242,14 @@ NSString * const WebScriptErrorLineNumberKey = @"WebScriptErrorLineNumber"; DynamicGlobalObjectScope globalObjectScope(globalObject->globalData(), globalObject); JSValue exception; - JSValue result = evaluateInGlobalCallFrame(stringToUString(script), exception, globalObject); + JSValue result = evaluateInGlobalCallFrame(script, exception, globalObject); if (exception) return [self _convertValueToObjcValue:exception]; return result ? [self _convertValueToObjcValue:result] : nil; } JSValue exception; - JSValue result = _private->debuggerCallFrame->evaluate(stringToUString(script), exception); + JSValue result = _private->debuggerCallFrame->evaluate(script, exception); if (exception) return [self _convertValueToObjcValue:exception]; return result ? [self _convertValueToObjcValue:result] : nil; diff --git a/Source/WebKit/mac/WebView/WebScriptDebugger.h b/Source/WebKit/mac/WebView/WebScriptDebugger.h index b551f7dc8..c7da8fe1f 100644 --- a/Source/WebKit/mac/WebView/WebScriptDebugger.h +++ b/Source/WebKit/mac/WebView/WebScriptDebugger.h @@ -34,26 +34,27 @@ #include <wtf/RetainPtr.h> +namespace WTF { +class String; +} + namespace JSC { class DebuggerCallFrame; class ExecState; class JSGlobalObject; class JSObject; class ArgList; - class UString; } @class WebScriptCallFrame; -NSString *toNSString(const JSC::UString&); - class WebScriptDebugger : public JSC::Debugger { public: WebScriptDebugger(JSC::JSGlobalObject*); void initGlobalCallFrame(const JSC::DebuggerCallFrame&); - virtual void sourceParsed(JSC::ExecState*, JSC::SourceProvider*, int errorLine, const JSC::UString& errorMsg); + virtual void sourceParsed(JSC::ExecState*, JSC::SourceProvider*, int errorLine, const WTF::String& errorMsg); virtual void callEvent(const JSC::DebuggerCallFrame&, intptr_t sourceID, int lineNumber, int columnNumber); virtual void atStatement(const JSC::DebuggerCallFrame&, intptr_t sourceID, int lineNumber, int columnNumber); virtual void returnEvent(const JSC::DebuggerCallFrame&, intptr_t sourceID, int lineNumber, int columnNumber); diff --git a/Source/WebKit/mac/WebView/WebScriptDebugger.mm b/Source/WebKit/mac/WebView/WebScriptDebugger.mm index 4ffe725b8..13c4f7cec 100644 --- a/Source/WebKit/mac/WebView/WebScriptDebugger.mm +++ b/Source/WebKit/mac/WebView/WebScriptDebugger.mm @@ -51,13 +51,6 @@ using namespace WebCore; - (void)_clearDebuggerCallFrame; @end -NSString *toNSString(const UString& s) -{ - if (s.isEmpty()) - return nil; - return [NSString stringWithCharacters:reinterpret_cast<const unichar*>(s.characters()) length:s.length()]; -} - static NSString *toNSString(SourceProvider* s) { if (!s->length()) @@ -65,12 +58,12 @@ static NSString *toNSString(SourceProvider* s) return [NSString stringWithCharacters:s->data()->characters() length:s->length()]; } -// convert UString to NSURL -static NSURL *toNSURL(const UString& s) +// Convert String to NSURL. +static NSURL *toNSURL(const String& s) { if (s.isEmpty()) return nil; - return KURL(ParsedURLString, ustringToString(s)); + return KURL(ParsedURLString, s); } static WebFrame *toWebFrame(JSGlobalObject* globalObject) @@ -105,7 +98,7 @@ void WebScriptDebugger::initGlobalCallFrame(const DebuggerCallFrame& debuggerCal } // callbacks - relay to delegate -void WebScriptDebugger::sourceParsed(ExecState* exec, SourceProvider* sourceProvider, int errorLine, const UString& errorMsg) +void WebScriptDebugger::sourceParsed(ExecState* exec, SourceProvider* sourceProvider, int errorLine, const String& errorMsg) { if (m_callingDelegate) return; @@ -128,7 +121,7 @@ void WebScriptDebugger::sourceParsed(ExecState* exec, SourceProvider* sourceProv CallScriptDebugDelegate(implementations->didParseSourceFunc, webView, @selector(webView:didParseSource:fromURL:sourceId:forWebFrame:), nsSource, [nsURL absoluteString], sourceProvider->asID(), webFrame); } } else { - NSString* nsErrorMessage = toNSString(errorMsg); + NSString* nsErrorMessage = nsStringNilIfEmpty(errorMsg); NSDictionary *info = [[NSDictionary alloc] initWithObjectsAndKeys:nsErrorMessage, WebScriptErrorDescriptionKey, [NSNumber numberWithUnsignedInt:errorLine], WebScriptErrorLineNumberKey, nil]; NSError *error = [[NSError alloc] initWithDomain:WebScriptErrorDomain code:WebScriptGeneralErrorCode userInfo:info]; diff --git a/Source/WebKit/mac/WebView/WebView.mm b/Source/WebKit/mac/WebView/WebView.mm index 2bfaf2481..7b8412cfe 100644 --- a/Source/WebKit/mac/WebView/WebView.mm +++ b/Source/WebKit/mac/WebView/WebView.mm @@ -143,10 +143,13 @@ #import <WebCore/JSDocument.h> #import <WebCore/JSElement.h> #import <WebCore/JSNodeList.h> +#import <WebCore/JSNotification.h> #import <WebCore/Logging.h> #import <WebCore/MemoryPressureHandler.h> #import <WebCore/MIMETypeRegistry.h> #import <WebCore/NodeList.h> +#import <WebCore/Notification.h> +#import <WebCore/NotificationController.h> #import <WebCore/Page.h> #import <WebCore/PageCache.h> #import <WebCore/PageGroup.h> @@ -1137,6 +1140,8 @@ static bool fastDocumentTeardownEnabled() [self _clearGlibLoopObserver]; #endif + [[self _notificationProvider] unregisterWebView:self]; + [[NSDistributedNotificationCenter defaultCenter] removeObserver:self]; [[NSNotificationCenter defaultCenter] removeObserver:self]; @@ -1782,7 +1787,7 @@ static inline IMP getMethod(id o, SEL s) HTMLNames::init(); // this method is used for importing bookmarks at startup, so HTMLNames are likely to be uninitialized yet RefPtr<TextResourceDecoder> decoder = TextResourceDecoder::create("text/html"); // bookmark files are HTML String result = decoder->decode(static_cast<const char*>([data bytes]), [data length]); - result += decoder->flush(); + result.append(decoder->flush()); return result; } @@ -4785,7 +4790,7 @@ static NSAppleEventDescriptor* aeDescFromJSValue(ExecState* exec, JSValue jsValu if (jsValue.isBoolean()) return [NSAppleEventDescriptor descriptorWithBoolean:jsValue.asBoolean()]; if (jsValue.isString()) - return [NSAppleEventDescriptor descriptorWithString:ustringToString(jsValue.getString(exec))]; + return [NSAppleEventDescriptor descriptorWithString:jsValue.getString(exec)]; if (jsValue.isNumber()) { double value = jsValue.asNumber(); int intValue = value; @@ -6514,17 +6519,12 @@ static void glibContextIterationCallback(CFRunLoopObserverRef, CFRunLoopActivity @implementation WebView (WebViewNotification) - (void)_setNotificationProvider:(id<WebNotificationProvider>)notificationProvider { - if (_private) { + if (_private && !_private->_notificationProvider) { _private->_notificationProvider = notificationProvider; [_private->_notificationProvider registerWebView:self]; } } -- (void)_notificationControllerDestroyed -{ - [[self _notificationProvider] unregisterWebView:self]; -} - - (id<WebNotificationProvider>)_notificationProvider { if (_private) @@ -6546,6 +6546,17 @@ static void glibContextIterationCallback(CFRunLoopObserverRef, CFRunLoopActivity { [[self _notificationProvider] webView:self didCloseNotifications:notificationIDs]; } + +- (uint64_t)_notificationIDForTesting:(JSValueRef)jsNotification +{ +#if ENABLE(NOTIFICATIONS) || ENABLE(LEGACY_NOTIFICATIONS) + JSContextRef context = [[self mainFrame] globalContext]; + WebCore::Notification* notification = toNotification(toJS(toJS(context), jsNotification)); + return static_cast<WebNotificationClient*>(NotificationController::clientFrom(_private->page))->notificationIDForTesting(notification); +#else + return 0; +#endif +} @end @implementation WebView (WebViewPrivateStyleInfo) diff --git a/Source/WebKit/mac/WebView/WebViewData.h b/Source/WebKit/mac/WebView/WebViewData.h index 04d7e057a..ade30f1cc 100644 --- a/Source/WebKit/mac/WebView/WebViewData.h +++ b/Source/WebKit/mac/WebView/WebViewData.h @@ -32,11 +32,11 @@ #import <WebCore/AlternativeTextClient.h> #import <WebCore/LayerFlushScheduler.h> #import <WebCore/LayerFlushSchedulerClient.h> -#import <WebCore/PlatformString.h> #import <WebCore/WebCoreKeyboardUIMode.h> #import <wtf/HashMap.h> #import <wtf/PassOwnPtr.h> #import <wtf/RetainPtr.h> +#import <wtf/text/WTFString.h> namespace WebCore { class AlternativeTextUIController; diff --git a/Source/WebKit/mac/WebView/WebViewPrivate.h b/Source/WebKit/mac/WebView/WebViewPrivate.h index c20daabfb..826474e41 100644 --- a/Source/WebKit/mac/WebView/WebViewPrivate.h +++ b/Source/WebKit/mac/WebView/WebViewPrivate.h @@ -734,11 +734,12 @@ Could be worth adding to the API. @interface WebView (WebViewNotification) - (void)_setNotificationProvider:(id<WebNotificationProvider>)notificationProvider; - (id<WebNotificationProvider>)_notificationProvider; -- (void)_notificationControllerDestroyed; - (void)_notificationDidShow:(uint64_t)notificationID; - (void)_notificationDidClick:(uint64_t)notificationID; - (void)_notificationsDidClose:(NSArray *)notificationIDs; + +- (uint64_t)_notificationIDForTesting:(JSValueRef)jsNotification; @end @interface WebView (WebViewPrivateStyleInfo) diff --git a/Source/WebKit/qt/Api/qwebdatabase_p.h b/Source/WebKit/qt/Api/qwebdatabase_p.h index 298470442..80cb804a6 100644 --- a/Source/WebKit/qt/Api/qwebdatabase_p.h +++ b/Source/WebKit/qt/Api/qwebdatabase_p.h @@ -22,9 +22,9 @@ #include <QString> #include <QtCore/qshareddata.h> -#include "PlatformString.h" #include "SecurityOrigin.h" #include <wtf/RefPtr.h> +#include <wtf/text/WTFString.h> class QWebDatabasePrivate : public QSharedData { diff --git a/Source/WebKit/qt/Api/qwebelement.cpp b/Source/WebKit/qt/Api/qwebelement.cpp index a208cbc4e..298f6cdc3 100644 --- a/Source/WebKit/qt/Api/qwebelement.cpp +++ b/Source/WebKit/qt/Api/qwebelement.cpp @@ -20,6 +20,7 @@ #include "config.h" #include "qwebelement.h" +#include "APICast.h" #include "qwebelement_p.h" #include "CSSComputedStyleDeclaration.h" #include "CSSParser.h" @@ -545,7 +546,7 @@ QRect QWebElement::geometry() const { if (!m_element) return QRect(); - return m_element->getPixelSnappedRect(); + return m_element->pixelSnappedBoundingBox(); } /*! @@ -750,16 +751,16 @@ QVariant QWebElement::evaluateJavaScript(const QString& scriptSource) if (!setupScriptContext(m_element, thisValue, state, scriptController)) return QVariant(); - JSC::ScopeChainNode* scopeChain = state->dynamicGlobalObject()->globalScopeChain(); - JSC::UString script(reinterpret_cast_ptr<const UChar*>(scriptSource.data()), scriptSource.length()); + String script(reinterpret_cast_ptr<const UChar*>(scriptSource.data()), scriptSource.length()); JSC::JSValue evaluationException; - JSC::JSValue evaluationResult = JSC::evaluate(state, scopeChain, JSC::makeSource(script), thisValue, &evaluationException); + JSC::JSValue evaluationResult = JSC::evaluate(state, JSC::makeSource(script), thisValue, &evaluationException); if (evaluationException) return QVariant(); int distance = 0; - return JSC::Bindings::convertValueToQVariant(state, evaluationResult, QMetaType::Void, &distance); + JSValueRef* ignoredException = 0; + return JSC::Bindings::convertValueToQVariant(toRef(state), toRef(state, evaluationResult), QMetaType::Void, &distance, ignoredException); } /*! @@ -1453,7 +1454,7 @@ void QWebElement::render(QPainter* painter, const QRect& clip) view->updateLayoutAndStyleIfNeededRecursive(); - IntRect rect = e->getPixelSnappedRect(); + IntRect rect = e->pixelSnappedBoundingBox(); if (rect.size().isEmpty()) return; @@ -2046,7 +2047,7 @@ Element* QtWebElementRuntime::get(const QWebElement& element) return element.m_element; } -static QVariant convertJSValueToWebElementVariant(JSC::JSObject* object, int *distance, HashSet<JSC::JSObject*>* visitedObjects) +static QVariant convertJSValueToWebElementVariant(JSC::JSObject* object, int *distance, HashSet<JSObjectRef>* visitedObjects) { Element* element = 0; QVariant ret; @@ -2055,7 +2056,7 @@ static QVariant convertJSValueToWebElementVariant(JSC::JSObject* object, int *di *distance = 0; // Allow other objects to reach this one. This won't cause our algorithm to // loop since when we find an Element we do not recurse. - visitedObjects->remove(object); + visitedObjects->remove(toRef(object)); } else if (object && object->inherits(&JSDocument::s_info)) { // To support TestRunnerQt::nodesFromRect(), used in DRT, we do an implicit // conversion from 'document' to the QWebElement representing the 'document.documentElement'. diff --git a/Source/WebKit/qt/Api/qwebframe.cpp b/Source/WebKit/qt/Api/qwebframe.cpp index 22e47c55d..8ac18f8e3 100644 --- a/Source/WebKit/qt/Api/qwebframe.cpp +++ b/Source/WebKit/qt/Api/qwebframe.cpp @@ -1406,7 +1406,7 @@ QWebHitTestResult QWebFrame::hitTestContent(const QPoint &pos) const if (!d->frame->view() || !d->frame->contentRenderer()) return QWebHitTestResult(); - HitTestResult result = d->frame->eventHandler()->hitTestResultAtPoint(d->frame->view()->windowToContents(pos), /*allowShadowContent*/ false, /*ignoreClipping*/ true); + HitTestResult result = d->frame->eventHandler()->hitTestResultAtPoint(d->frame->view()->windowToContents(pos), HitTestRequest::ReadOnly | HitTestRequest::Active | HitTestRequest::IgnoreClipping); if (result.scrollbar()) return QWebHitTestResult(); @@ -1534,8 +1534,9 @@ QVariant QWebFrame::evaluateJavaScript(const QString& scriptSource) if (proxy) { int distance = 0; JSC::JSValue v = d->frame->script()->executeScript(ScriptSourceCode(scriptSource)).jsValue(); - - rc = JSC::Bindings::convertValueToQVariant(proxy->globalObject(mainThreadNormalWorld())->globalExec(), v, QMetaType::Void, &distance); + JSC::ExecState* exec = proxy->globalObject(mainThreadNormalWorld())->globalExec(); + JSValueRef* ignoredException = 0; + rc = JSC::Bindings::convertValueToQVariant(toRef(exec), toRef(exec, v), QMetaType::Void, &distance, ignoredException); } return rc; } diff --git a/Source/WebKit/qt/Api/qwebframe_p.h b/Source/WebKit/qt/Api/qwebframe_p.h index 3201aaa57..d6779f2bc 100644 --- a/Source/WebKit/qt/Api/qwebframe_p.h +++ b/Source/WebKit/qt/Api/qwebframe_p.h @@ -27,7 +27,6 @@ #include "EventHandler.h" #include "GraphicsContext.h" #include "KURL.h" -#include "PlatformString.h" #if ENABLE(ORIENTATION_EVENTS) #include "qorientationsensor.h" #endif // ENABLE(ORIENTATION_EVENTS). @@ -35,6 +34,7 @@ #include "wtf/RefPtr.h" #include "Frame.h" #include "ViewportArguments.h" +#include <wtf/text/WTFString.h> #if USE(ACCELERATED_COMPOSITING) #include "texmap/TextureMapper.h" diff --git a/Source/WebKit/qt/Api/qwebhistory.cpp b/Source/WebKit/qt/Api/qwebhistory.cpp index 712c28f88..4bf63583b 100644 --- a/Source/WebKit/qt/Api/qwebhistory.cpp +++ b/Source/WebKit/qt/Api/qwebhistory.cpp @@ -29,7 +29,7 @@ #include "KURL.h" #include "Page.h" #include "PageGroup.h" -#include "PlatformString.h" +#include <wtf/text/WTFString.h> #include <QSharedData> #include <QDebug> diff --git a/Source/WebKit/qt/Api/qwebhistoryinterface.cpp b/Source/WebKit/qt/Api/qwebhistoryinterface.cpp index 40ff5c99b..305ff6781 100644 --- a/Source/WebKit/qt/Api/qwebhistoryinterface.cpp +++ b/Source/WebKit/qt/Api/qwebhistoryinterface.cpp @@ -25,7 +25,7 @@ #include <QCoreApplication> #include "PageGroup.h" -#include "PlatformString.h" +#include <wtf/text/WTFString.h> static QWebHistoryInterface* default_interface; diff --git a/Source/WebKit/qt/Api/qwebpage.cpp b/Source/WebKit/qt/Api/qwebpage.cpp index 08e86183a..e1c06515b 100644 --- a/Source/WebKit/qt/Api/qwebpage.cpp +++ b/Source/WebKit/qt/Api/qwebpage.cpp @@ -757,21 +757,13 @@ void QWebPagePrivate::handleClipboard(QEvent* ev, Qt::MouseButton button) { #ifndef QT_NO_CLIPBOARD if (QApplication::clipboard()->supportsSelection()) { - bool oldSelectionMode = Pasteboard::generalPasteboard()->isSelectionMode(); - Pasteboard::generalPasteboard()->setSelectionMode(true); WebCore::Frame* focusFrame = page->focusController()->focusedOrMainFrame(); - if (button == Qt::LeftButton) { - if (focusFrame && (focusFrame->editor()->canCopy() || focusFrame->editor()->canDHTMLCopy())) { - Pasteboard::generalPasteboard()->writeSelection(focusFrame->editor()->selectedRange().get(), focusFrame->editor()->canSmartCopyOrDelete(), focusFrame); - ev->setAccepted(true); - } - } else if (button == Qt::MidButton) { - if (focusFrame && (focusFrame->editor()->canPaste() || focusFrame->editor()->canDHTMLPaste())) { - focusFrame->editor()->paste(); + if (button == Qt::MidButton) { + if (focusFrame) { + focusFrame->editor()->command(AtomicString("PasteGlobalSelection")).execute(); ev->setAccepted(true); } } - Pasteboard::generalPasteboard()->setSelectionMode(oldSelectionMode); } #endif } @@ -808,7 +800,7 @@ void QWebPagePrivate::handleSoftwareInputPanel(Qt::MouseButton button, const QPo QStyle::RequestSoftwareInputPanel behavior = QStyle::RequestSoftwareInputPanel( client->ownerWidget()->style()->styleHint(QStyle::SH_RequestSoftwareInputPanel)); if (!clickCausedFocus || behavior == QStyle::RSIP_OnMouseClick) { - HitTestResult result = frame->eventHandler()->hitTestResultAtPoint(frame->view()->windowToContents(pos), false); + HitTestResult result = frame->eventHandler()->hitTestResultAtPoint(frame->view()->windowToContents(pos)); if (result.isContentEditable()) { QEvent event(QEvent::RequestSoftwareInputPanel); QApplication::sendEvent(client->ownerWidget(), &event); @@ -1565,7 +1557,7 @@ IntPoint QWebPagePrivate::TouchAdjuster::findCandidatePointForTouch(const IntPoi int x = touchPoint.x(); int y = touchPoint.y(); - RefPtr<NodeList> intersectedNodes = document->nodesFromRect(x, y, m_topPadding, m_rightPadding, m_bottomPadding, m_leftPadding, false /*ignoreClipping*/, false /*allowShadowContent*/); + RefPtr<NodeList> intersectedNodes = document->nodesFromRect(x, y, m_topPadding, m_rightPadding, m_bottomPadding, m_leftPadding); if (!intersectedNodes) return IntPoint(); @@ -1585,7 +1577,7 @@ IntPoint QWebPagePrivate::TouchAdjuster::findCandidatePointForTouch(const IntPoi if (!currentElement || (!isClickableElement(currentElement, 0) && !isValidFrameOwner(currentElement))) continue; - IntRect currentElementBoundingRect = currentElement->getPixelSnappedRect(); + IntRect currentElementBoundingRect = currentElement->pixelSnappedBoundingBox(); currentElementBoundingRect.intersect(touchRect); if (currentElementBoundingRect.isEmpty()) @@ -3371,7 +3363,7 @@ void QWebPage::updatePositionDependentActions(const QPoint &pos) d->createMainFrame(); WebCore::Frame* focusedFrame = d->page->focusController()->focusedOrMainFrame(); - HitTestResult result = focusedFrame->eventHandler()->hitTestResultAtPoint(focusedFrame->view()->windowToContents(pos), /*allowShadowContent*/ false); + HitTestResult result = focusedFrame->eventHandler()->hitTestResultAtPoint(focusedFrame->view()->windowToContents(pos)); if (result.scrollbar()) d->hitTestResult = QWebHitTestResult(); else diff --git a/Source/WebKit/qt/Api/qwebpage_p.h b/Source/WebKit/qt/Api/qwebpage_p.h index ca3aa94ad..a8e373bca 100644 --- a/Source/WebKit/qt/Api/qwebpage_p.h +++ b/Source/WebKit/qt/Api/qwebpage_p.h @@ -34,10 +34,10 @@ #include "IntPoint.h" #include "KURL.h" -#include "PlatformString.h" #include <wtf/OwnPtr.h> #include <wtf/RefPtr.h> +#include <wtf/text/WTFString.h> #include "ViewportArguments.h" diff --git a/Source/WebKit/qt/Api/qwebsettings.cpp b/Source/WebKit/qt/Api/qwebsettings.cpp index 741457f47..0f504f817 100644 --- a/Source/WebKit/qt/Api/qwebsettings.cpp +++ b/Source/WebKit/qt/Api/qwebsettings.cpp @@ -36,7 +36,6 @@ #include "PageCache.h" #include "Settings.h" #include "KURL.h" -#include "PlatformString.h" #include "IconDatabase.h" #include "PluginDatabase.h" #include "Image.h" @@ -44,6 +43,7 @@ #include "ApplicationCacheStorage.h" #include "DatabaseTracker.h" #include "FileSystem.h" +#include <wtf/text/WTFString.h> #include <QApplication> #include <QStandardPaths> diff --git a/Source/WebKit/qt/ChangeLog b/Source/WebKit/qt/ChangeLog index 8c13066b1..1ae43c77a 100644 --- a/Source/WebKit/qt/ChangeLog +++ b/Source/WebKit/qt/ChangeLog @@ -1,3 +1,229 @@ +2012-09-09 Emil A Eklund <eae@chromium.org> + + Rename Node::getRect/getPixelSnappedRect and remove ContainerNode::getRect + https://bugs.webkit.org/show_bug.cgi?id=81413 + + Reviewed by David Hyatt. + + Update qwebelement and qwebpage to call pixelSnappedBoundingBox. + + * Api/qwebelement.cpp: + (QWebElement::geometry): + (QWebElement::render): + * Api/qwebpage.cpp: + (QWebPagePrivate::TouchAdjuster::findCandidatePointForTouch): + +2012-09-07 Allan Sandfeld Jensen <allan.jensen@nokia.com> + + Simplify hitTestResultAtPoint and nodesFromRect APIs + https://bugs.webkit.org/show_bug.cgi?id=95720 + + Reviewed by Antonio Gomes. + + Update calls to new API. + + * Api/qwebframe.cpp: + (QWebFrame::hitTestContent): + * Api/qwebpage.cpp: + (QWebPagePrivate::handleSoftwareInputPanel): + (QWebPagePrivate::TouchAdjuster::findCandidatePointForTouch): + (QWebPage::updatePositionDependentActions): + * WebCoreSupport/FrameLoaderClientQt.cpp: + (WebCore::FrameLoaderClientQt::dispatchDecidePolicyForNavigationAction): + +2012-09-07 Allan Sandfeld Jensen <allan.jensen@nokia.com> + + X11 Global Selection + https://bugs.webkit.org/show_bug.cgi?id=88238 + + Reviewed by Tony Chang. + + Use new editor command for pasting global selection, and update it using + the respondToChangedSelection callback. + + * Api/qwebpage.cpp: + (QWebPagePrivate::handleClipboard): + * WebCoreSupport/EditorClientQt.cpp: + (WebCore::EditorClientQt::respondToChangedSelection): + (WebCore::EditorClientQt::supportsGlobalSelection): + * WebCoreSupport/EditorClientQt.h: + (EditorClientQt): + +2012-09-05 Sam Weinig <sam@webkit.org> + + Part 2 of removing PlatformString.h, remove PlatformString.h + https://bugs.webkit.org/show_bug.cgi?id=95931 + + Reviewed by Adam Barth. + + Remove PlatformString.h + + * Api/qwebdatabase_p.h: + * Api/qwebframe_p.h: + * Api/qwebhistory.cpp: + * Api/qwebhistoryinterface.cpp: + * Api/qwebpage_p.h: + * Api/qwebsettings.cpp: + * WebCoreSupport/ChromeClientQt.h: + * WebCoreSupport/InspectorClientQt.cpp: + +2012-09-05 Kaustubh Atrawalkar <kaustubh@motorola.com> + + [DRT] LTC:: Move printing related APIs from LayoutTestController to Internals + https://bugs.webkit.org/show_bug.cgi?id=92735 + + Reviewed by Hajime Morita. + + Move numberOfPages, pageProperty & pageSizeAndMarginsInPixels in Internals and remove duplicated code from DumprenderTree & WebkitTestRunner. + + * WebCoreSupport/DumpRenderTreeSupportQt.cpp: + (DumpRenderTreeSupportQt::evaluateScriptInIsolatedWorld): + * WebCoreSupport/DumpRenderTreeSupportQt.h: + +2012-09-04 Jon Lee <jonlee@apple.com> + + [Qt] REGRESSION(r127321): It made 3 notification test timeout + https://bugs.webkit.org/show_bug.cgi?id=95638 + + Reviewed by Csaba Osztrogonác. + + Dispatch show event instead of display after r127321. + + * WebCoreSupport/NotificationPresenterClientQt.cpp: + (WebCore::NotificationPresenterClientQt::sendDisplayEvent): + +2012-08-31 Simon Hausmann <simon.hausmann@nokia.com> + + [Qt] Port convertValueToQVariant to use the JSC C API + https://bugs.webkit.org/show_bug.cgi?id=94695 + + Reviewed by Kenneth Rohde Christiansen. + + Minor adaptations are needed here to accomodate the changed signature of + convertValueToQVariant. + + * Api/qwebelement.cpp: + (QWebElement::evaluateJavaScript): + (convertJSValueToWebElementVariant): + * Api/qwebframe.cpp: + (QWebFrame::evaluateJavaScript): + * WebCoreSupport/DumpRenderTreeSupportQt.cpp: + (convertJSValueToNodeVariant): + +2012-08-30 Geoffrey Garen <ggaren@apple.com> + + Use one object instead of two for closures, eliminating ScopeChainNode + https://bugs.webkit.org/show_bug.cgi?id=95501 + + Reviewed by Filip Pizlo. + + Mechanical change to update for JSC interface change. + + * Api/qwebelement.cpp: + (QWebElement::evaluateJavaScript): + +2012-08-30 Benjamin Poulain <bpoulain@apple.com> + + Replace JSC::UString by WTF::String + https://bugs.webkit.org/show_bug.cgi?id=95271 + + Reviewed by Geoffrey Garen. + + Replace UString by String. + + * Api/qwebelement.cpp: + (QWebElement::evaluateJavaScript): + +2012-08-29 Simon Hausmann <simon.hausmann@nokia.com> + + [Qt] Fix doc generation with make docs + https://bugs.webkit.org/show_bug.cgi?id=95340 + + Reviewed by Kenneth Rohde Christiansen. + + Fix doc target, similar to what the other Qt 5 modules are using and comment out the indexes + line, because cross-referencing doesn't work right now and the use of the QTDIR environment + is wrong, too. + + * docs/docs.pri: + * docs/qtwebkit.qdocconf: + +2012-08-22 Simon Hausmann <simon.hausmann@nokia.com> + + [Qt] REGRESSION(r125428): fast/profiler/nested-start-and-stop-profiler.html fails + https://bugs.webkit.org/show_bug.cgi?id=93897 + + Reviewed by Kenneth Rohde Christiansen. + + Fixed some test expectations. + + * tests/qobjectbridge/tst_qobjectbridge.cpp: + (tst_QObjectBridge::objectDeleted): Since runtime methods are real function objects again, we + can go back to testing Function.prototype.call, as it was done before r125428. + (tst_QObjectBridge::introspectQtMethods_data): Removed tests for the length property. + (tst_QObjectBridge::introspectQtMethods): Changed test expectation of the properties of + run-time methods back to being non-configurable, as before r125428. + +2012-08-28 Sheriff Bot <webkit.review.bot@gmail.com> + + Unreviewed, rolling out r126914. + http://trac.webkit.org/changeset/126914 + https://bugs.webkit.org/show_bug.cgi?id=95239 + + it breaks everything and fixes nothing (Requested by pizlo on + #webkit). + + * Api/qwebpage.cpp: + (extractContentTypeFromPluginVector): + * Api/qwebplugindatabase.cpp: + (QWebPluginInfo::mimeTypes): + * WebCoreSupport/PlatformStrategiesQt.cpp: + (PlatformStrategiesQt::getPluginInfo): + +2012-08-28 Caio Marcelo de Oliveira Filho <caio.oliveira@openbossa.org> + + Rename first/second to key/value in HashMap iterators + https://bugs.webkit.org/show_bug.cgi?id=82784 + + Reviewed by Eric Seidel. + + * Api/qwebpage.cpp: + (extractContentTypeFromPluginVector): + * Api/qwebplugindatabase.cpp: + (QWebPluginInfo::mimeTypes): + * WebCoreSupport/PlatformStrategiesQt.cpp: + (PlatformStrategiesQt::getPluginInfo): + +2012-08-27 Sheriff Bot <webkit.review.bot@gmail.com> + + Unreviewed, rolling out r126836. + http://trac.webkit.org/changeset/126836 + https://bugs.webkit.org/show_bug.cgi?id=95163 + + Broke all Apple ports, EFL, and Qt. (Requested by tkent on + #webkit). + + * Api/qwebpage.cpp: + (extractContentTypeFromPluginVector): + * Api/qwebplugindatabase.cpp: + (QWebPluginInfo::mimeTypes): + * WebCoreSupport/PlatformStrategiesQt.cpp: + (PlatformStrategiesQt::getPluginInfo): + +2012-08-27 Caio Marcelo de Oliveira Filho <caio.oliveira@openbossa.org> + + Rename first/second to key/value in HashMap iterators + https://bugs.webkit.org/show_bug.cgi?id=82784 + + Reviewed by Eric Seidel. + + * Api/qwebpage.cpp: + (extractContentTypeFromPluginVector): + * Api/qwebplugindatabase.cpp: + (QWebPluginInfo::mimeTypes): + * WebCoreSupport/PlatformStrategiesQt.cpp: + (PlatformStrategiesQt::getPluginInfo): + 2012-08-22 Sheriff Bot <webkit.review.bot@gmail.com> Unreviewed, rolling out r126287. diff --git a/Source/WebKit/qt/WebCoreSupport/ChromeClientQt.h b/Source/WebKit/qt/WebCoreSupport/ChromeClientQt.h index 79d43b3f7..27368e7f1 100644 --- a/Source/WebKit/qt/WebCoreSupport/ChromeClientQt.h +++ b/Source/WebKit/qt/WebCoreSupport/ChromeClientQt.h @@ -32,10 +32,10 @@ #include "ChromeClient.h" #include "FloatRect.h" #include "KURL.h" -#include "PlatformString.h" #include "QtPlatformPlugin.h" #include <wtf/PassOwnPtr.h> #include <wtf/RefCounted.h> +#include <wtf/text/WTFString.h> QT_BEGIN_NAMESPACE class QEventLoop; diff --git a/Source/WebKit/qt/WebCoreSupport/DumpRenderTreeSupportQt.cpp b/Source/WebKit/qt/WebCoreSupport/DumpRenderTreeSupportQt.cpp index 714f560f0..ac1654ec0 100644 --- a/Source/WebKit/qt/WebCoreSupport/DumpRenderTreeSupportQt.cpp +++ b/Source/WebKit/qt/WebCoreSupport/DumpRenderTreeSupportQt.cpp @@ -166,7 +166,7 @@ WebCore::Node* QtDRTNodeRuntime::get(const QDRTNode& node) return node.m_node; } -static QVariant convertJSValueToNodeVariant(JSC::JSObject* object, int *distance, HashSet<JSC::JSObject*>*) +static QVariant convertJSValueToNodeVariant(JSC::JSObject* object, int *distance, HashSet<JSObjectRef>*) { if (!object || !object->inherits(&JSNode::s_info)) return QVariant(); @@ -386,15 +386,6 @@ void DumpRenderTreeSupportQt::garbageCollectorCollectOnAlternateThread(bool wait gcController().garbageCollectOnAlternateThreadForDebugging(waitUntilDone); } -int DumpRenderTreeSupportQt::numberOfPages(QWebFrame* frame, float width, float height) -{ - Frame* coreFrame = QWebFramePrivate::core(frame); - if (!coreFrame) - return -1; - - return PrintContext::numberOfPages(coreFrame, FloatSize(width, height)); -} - // Suspend active DOM objects in this frame. void DumpRenderTreeSupportQt::suspendActiveDOMObjects(QWebFrame* frame) { @@ -858,19 +849,6 @@ void DumpRenderTreeSupportQt::evaluateScriptInIsolatedWorld(QWebFrame* frame, in proxy->executeScriptInWorld(scriptWorld->world(), script, true); } -QString DumpRenderTreeSupportQt::pageSizeAndMarginsInPixels(QWebFrame* frame, int pageIndex, int width, int height, int marginTop, int marginRight, int marginBottom, int marginLeft) -{ - WebCore::Frame* coreFrame = QWebFramePrivate::core(frame); - return PrintContext::pageSizeAndMarginsInPixels(coreFrame, pageIndex, width, height, - marginTop, marginRight, marginBottom, marginLeft); -} - -QString DumpRenderTreeSupportQt::pageProperty(QWebFrame* frame, const QString& propertyName, int pageNumber) -{ - WebCore::Frame* coreFrame = QWebFramePrivate::core(frame); - return PrintContext::pageProperty(coreFrame, propertyName.toUtf8().constData(), pageNumber); -} - void DumpRenderTreeSupportQt::addUserStyleSheet(QWebPage* page, const QString& sourceCode) { page->handle()->page->group().addUserStyleSheetToWorld(mainThreadNormalWorld(), sourceCode, QUrl(), nullptr, nullptr, WebCore::InjectInAllFrames); diff --git a/Source/WebKit/qt/WebCoreSupport/DumpRenderTreeSupportQt.h b/Source/WebKit/qt/WebCoreSupport/DumpRenderTreeSupportQt.h index 5ed249222..92759acd3 100644 --- a/Source/WebKit/qt/WebCoreSupport/DumpRenderTreeSupportQt.h +++ b/Source/WebKit/qt/WebCoreSupport/DumpRenderTreeSupportQt.h @@ -127,7 +127,6 @@ public: static void clearFrameName(QWebFrame* frame); static void overwritePluginDirectories(); static int numberOfActiveAnimations(QWebFrame*); - static int numberOfPages(QWebFrame* frame, float width, float height); static bool hasDocumentElement(QWebFrame* frame); static bool elementDoesAutoCompleteForElementWithId(QWebFrame* frame, const QString& elementId); static void setWindowsBehaviorAsEditingBehavior(QWebPage*); @@ -179,8 +178,6 @@ public: static void setCustomPolicyDelegate(bool enabled, bool permissive); - static QString pageSizeAndMarginsInPixels(QWebFrame* frame, int pageIndex, int width, int height, int marginTop, int marginRight, int marginBottom, int marginLeft); - static QString pageProperty(QWebFrame* frame, const QString& propertyName, int pageNumber); static void addUserStyleSheet(QWebPage* page, const QString& sourceCode); static void removeUserStyleSheets(QWebPage*); static void simulateDesktopNotificationClick(const QString& title); diff --git a/Source/WebKit/qt/WebCoreSupport/EditorClientQt.cpp b/Source/WebKit/qt/WebCoreSupport/EditorClientQt.cpp index 166e0063f..a5a1d80d9 100644 --- a/Source/WebKit/qt/WebCoreSupport/EditorClientQt.cpp +++ b/Source/WebKit/qt/WebCoreSupport/EditorClientQt.cpp @@ -42,6 +42,7 @@ #include "KeyboardEvent.h" #include "NotImplemented.h" #include "Page.h" +#include "Pasteboard.h" #include "PlatformKeyboardEvent.h" #include "QWebPageClient.h" #include "Range.h" @@ -49,9 +50,11 @@ #include "SpatialNavigation.h" #include "StylePropertySet.h" #include "WindowsKeyboardCodes.h" +#include "qguiapplication.h" #include "qwebpage.h" #include "qwebpage_p.h" +#include <QClipboard> #include <QUndoStack> #include <stdio.h> #include <wtf/OwnPtr.h> @@ -210,6 +213,13 @@ void EditorClientQt::respondToChangedSelection(Frame* frame) // selection.formatForDebugger(buffer, sizeof(buffer)); // printf("%s\n", buffer); + if (supportsGlobalSelection() && frame->selection()->isRange()) { + bool oldSelectionMode = Pasteboard::generalPasteboard()->isSelectionMode(); + Pasteboard::generalPasteboard()->setSelectionMode(true); + Pasteboard::generalPasteboard()->writeSelection(frame->selection()->toNormalizedRange().get(), frame->editor()->canSmartCopyOrDelete(), frame); + Pasteboard::generalPasteboard()->setSelectionMode(oldSelectionMode); + } + m_page->d->updateEditorActions(); emit m_page->selectionChanged(); if (!frame->editor()->ignoreCompositionSelectionChange()) @@ -632,6 +642,11 @@ void EditorClientQt::setInputMethodState(bool active) emit m_page->microFocusChanged(); } +bool EditorClientQt::supportsGlobalSelection() +{ + return qApp->clipboard()->supportsSelection(); +} + } // vim: ts=4 sw=4 et diff --git a/Source/WebKit/qt/WebCoreSupport/EditorClientQt.h b/Source/WebKit/qt/WebCoreSupport/EditorClientQt.h index a25795ea0..863c67b71 100644 --- a/Source/WebKit/qt/WebCoreSupport/EditorClientQt.h +++ b/Source/WebKit/qt/WebCoreSupport/EditorClientQt.h @@ -105,6 +105,8 @@ public: virtual void setInputMethodState(bool enabled); virtual TextCheckerClient* textChecker() { return &m_textCheckerClient; } + virtual bool supportsGlobalSelection() OVERRIDE; + bool isEditing() const; static bool dumpEditingCallbacks; diff --git a/Source/WebKit/qt/WebCoreSupport/FrameLoaderClientQt.cpp b/Source/WebKit/qt/WebCoreSupport/FrameLoaderClientQt.cpp index bcf072d65..72a5e0049 100644 --- a/Source/WebKit/qt/WebCoreSupport/FrameLoaderClientQt.cpp +++ b/Source/WebKit/qt/WebCoreSupport/FrameLoaderClientQt.cpp @@ -1272,7 +1272,7 @@ void FrameLoaderClientQt::dispatchDecidePolicyForNavigationAction(FramePolicyFun if (event->isMouseEvent()) { const MouseEvent* mouseEvent = static_cast<const MouseEvent*>(event); node = QWebFramePrivate::core(m_webFrame)->eventHandler()->hitTestResultAtPoint( - mouseEvent->absoluteLocation(), false).innerNonSharedNode(); + mouseEvent->absoluteLocation()).innerNonSharedNode(); break; } } diff --git a/Source/WebKit/qt/WebCoreSupport/InspectorClientQt.cpp b/Source/WebKit/qt/WebCoreSupport/InspectorClientQt.cpp index 5595cc603..daa593d7e 100644 --- a/Source/WebKit/qt/WebCoreSupport/InspectorClientQt.cpp +++ b/Source/WebKit/qt/WebCoreSupport/InspectorClientQt.cpp @@ -38,7 +38,6 @@ #include "InspectorServerQt.h" #include "NotImplemented.h" #include "Page.h" -#include "PlatformString.h" #include "ScriptDebugServer.h" #include "qwebinspector.h" #include "qwebinspector_p.h" diff --git a/Source/WebKit/qt/WebCoreSupport/NotificationPresenterClientQt.cpp b/Source/WebKit/qt/WebCoreSupport/NotificationPresenterClientQt.cpp index d693c4a95..56ed0b4cb 100644 --- a/Source/WebKit/qt/WebCoreSupport/NotificationPresenterClientQt.cpp +++ b/Source/WebKit/qt/WebCoreSupport/NotificationPresenterClientQt.cpp @@ -384,7 +384,7 @@ void NotificationPresenterClientQt::sendDisplayEvent(NotificationWrapper* wrappe { Notification* notification = notificationForWrapper(wrapper); if (notification) - sendEvent(notification, "display"); + sendEvent(notification, "show"); } diff --git a/Source/WebKit/qt/docs/docs.pri b/Source/WebKit/qt/docs/docs.pri index 2d9a0941e..b95f924f7 100644 --- a/Source/WebKit/qt/docs/docs.pri +++ b/Source/WebKit/qt/docs/docs.pri @@ -1,13 +1,12 @@ -unix { - QDOC = SRCDIR=$$PWD/../../.. OUTPUT_DIR=$${ROOT_BUILD_DIR} $$(QTDIR)/bin/qdoc3 -} else { - QDOC = $$(QTDIR)\\bin\\qdoc3.exe -} +QDOC = $$QT.core.bins/qdoc -unix { - docs.commands = $$QDOC $$PWD/qtwebkit.qdocconf +$$unixstyle { } else { - docs.commands = \"$$QDOC $$PWD/qtwebkit.qdocconf\" + QDOC = $$replace(QDOC, "qdoc", "qdoc3.exe") } +QDOC = SRCDIR=$$PWD/../../.. OUTPUT_DIR=$${ROOT_BUILD_DIR} $$QDOC + +docs.commands = $$QDOC $$PWD/qtwebkit.qdocconf + QMAKE_EXTRA_TARGETS += docs diff --git a/Source/WebKit/qt/docs/qtwebkit.qdocconf b/Source/WebKit/qt/docs/qtwebkit.qdocconf index 1f51ea37e..23d277001 100644 --- a/Source/WebKit/qt/docs/qtwebkit.qdocconf +++ b/Source/WebKit/qt/docs/qtwebkit.qdocconf @@ -11,7 +11,7 @@ sources.fileextensions = "*.cpp *.doc *.qdoc *.h" exampledirs = $SRCDIR/WebKit/qt/docs imagedirs = $SRCDIR/WebKit/qt/docs -indexes = $QTDIR/doc/html/qt.index +#indexes = $QTDIR/doc/html/qt.index # macros.qdocconf diff --git a/Source/WebKit/qt/tests/qobjectbridge/tst_qobjectbridge.cpp b/Source/WebKit/qt/tests/qobjectbridge/tst_qobjectbridge.cpp index 2ce791d89..13d98af93 100644 --- a/Source/WebKit/qt/tests/qobjectbridge/tst_qobjectbridge.cpp +++ b/Source/WebKit/qt/tests/qobjectbridge/tst_qobjectbridge.cpp @@ -1879,7 +1879,7 @@ void tst_QObjectBridge::objectDeleted() evalJS("bar.intProperty = 123;"); QCOMPARE(qobj->intProperty(), 123); qobj->resetQtFunctionInvoked(); - evalJS("bar.myInvokable(bar);"); + evalJS("bar.myInvokable.call(bar);"); QCOMPARE(qobj->qtFunctionInvoked(), 0); // do this, to ensure that we cache that it implements call @@ -2148,15 +2148,15 @@ void tst_QObjectBridge::introspectQtMethods_data() QTest::addColumn<QStringList>("expectedPropertyNames"); QTest::newRow("myObject.mySignal") - << "myObject" << "mySignal" << (QStringList() << "connect" << "disconnect" << "length" << "name"); + << "myObject" << "mySignal" << (QStringList() << "connect" << "disconnect" << "name"); QTest::newRow("myObject.mySlot") - << "myObject" << "mySlot" << (QStringList() << "connect" << "disconnect" << "length" << "name"); + << "myObject" << "mySlot" << (QStringList() << "connect" << "disconnect" << "name"); QTest::newRow("myObject.myInvokable") - << "myObject" << "myInvokable" << (QStringList() << "connect" << "disconnect" << "length" << "name"); + << "myObject" << "myInvokable" << (QStringList() << "connect" << "disconnect" << "name"); QTest::newRow("myObject.mySignal.connect") - << "myObject.mySignal" << "connect" << (QStringList() << "length" << "name"); + << "myObject.mySignal" << "connect" << (QStringList() << "name"); QTest::newRow("myObject.mySignal.disconnect") - << "myObject.mySignal" << "disconnect" << (QStringList() << "length" << "name"); + << "myObject.mySignal" << "disconnect" << (QStringList() << "name"); } void tst_QObjectBridge::introspectQtMethods() @@ -2177,7 +2177,7 @@ void tst_QObjectBridge::introspectQtMethods() QCOMPARE(evalJS("descriptor.set"), sUndefined); QCOMPARE(evalJS(QString::fromLatin1("descriptor.value === %0['%1']").arg(methodLookup).arg(name)), sTrue); QCOMPARE(evalJS(QString::fromLatin1("descriptor.enumerable")), sFalse); - QCOMPARE(evalJS(QString::fromLatin1("descriptor.configurable")), sTrue); + QCOMPARE(evalJS(QString::fromLatin1("descriptor.configurable")), sFalse); } QVERIFY(evalJSV("var props=[]; for (var p in myObject.deleteLater) {props.push(p);}; props.sort()").toStringList().isEmpty()); diff --git a/Source/WebKit/qt/tests/qwebview/.gitignore b/Source/WebKit/qt/tests/qwebview/.gitignore deleted file mode 100644 index 444afe65e..000000000 --- a/Source/WebKit/qt/tests/qwebview/.gitignore +++ /dev/null @@ -1 +0,0 @@ -qwebview diff --git a/Source/WebKit/win/AccessibleBase.cpp b/Source/WebKit/win/AccessibleBase.cpp index e733141f2..bb31adbd5 100644 --- a/Source/WebKit/win/AccessibleBase.cpp +++ b/Source/WebKit/win/AccessibleBase.cpp @@ -362,18 +362,20 @@ HRESULT STDMETHODCALLTYPE AccessibleBase::get_accKeyboardShortcut(VARIANT vChild static String accessKeyModifiers; if (accessKeyModifiers.isNull()) { + StringBuilder accessKeyModifiersBuilder; unsigned modifiers = EventHandler::accessKeyModifiers(); // Follow the same order as Mozilla MSAA implementation: // Ctrl+Alt+Shift+Meta+key. MSDN states that keyboard shortcut strings // should not be localized and defines the separator as "+". if (modifiers & PlatformEvent::CtrlKey) - accessKeyModifiers += "Ctrl+"; + accessKeyModifiersBuilder.appendLiteral("Ctrl+"); if (modifiers & PlatformEvent::AltKey) - accessKeyModifiers += "Alt+"; + accessKeyModifiersBuilder.appendLiteral("Alt+"); if (modifiers & PlatformEvent::ShiftKey) - accessKeyModifiers += "Shift+"; + accessKeyModifiersBuilder.appendLiteral("Shift+"); if (modifiers & PlatformEvent::MetaKey) - accessKeyModifiers += "Win+"; + accessKeyModifiersBuilder.appendLiteral("Win+"); + accessKeyModifiers = accessKeyModifiersBuilder.toString(); } *shortcut = BString(String(accessKeyModifiers + accessKey)).release(); return S_OK; @@ -657,6 +659,7 @@ static long MSAARole(AccessibilityRole role) case WebCore::LinkRole: case WebCore::WebCoreLinkRole: return ROLE_SYSTEM_LINK; + case WebCore::CanvasRole: case WebCore::ImageMapRole: case WebCore::ImageRole: return ROLE_SYSTEM_GRAPHIC; @@ -666,6 +669,36 @@ static long MSAARole(AccessibilityRole role) return ROLE_SYSTEM_LISTITEM; case WebCore::PopUpButtonRole: return ROLE_SYSTEM_COMBOBOX; + case WebCore::DivRole: + case WebCore::FormRole: + case WebCore::LabelRole: + case WebCore::ParagraphRole: + return ROLE_SYSTEM_GROUPING; + case WebCore::HorizontalRuleRole: + return ROLE_SYSTEM_SEPARATOR; + case WebCore::ApplicationAlertRole: + return ROLE_SYSTEM_ALERT; + case WebCore::ComboBoxRole: + return ROLE_SYSTEM_COMBOBOX; + case WebCore::SpinButtonRole: + return ROLE_SYSTEM_SPINBUTTON; + case WebCore::SpinButtonPartRole: + return ROLE_SYSTEM_PUSHBUTTON; + case WebCore::ToggleButtonRole: + return ROLE_SYSTEM_PUSHBUTTON; + case WebCore::ToolbarRole: + return ROLE_SYSTEM_TOOLBAR; + case WebCore::UserInterfaceTooltipRole: + return ROLE_SYSTEM_TOOLTIP; + case WebCore::TreeRole: + case WebCore::TreeGridRole: + return ROLE_SYSTEM_OUTLINE; + case WebCore::TreeItemRole: + return ROLE_SYSTEM_OUTLINEITEM; + case WebCore::TabListRole: + return ROLE_SYSTEM_PAGETABLIST; + case WebCore::TabPanelRole: + return ROLE_SYSTEM_PROPERTYPAGE; default: // This is the default role for MSAA. return ROLE_SYSTEM_CLIENT; diff --git a/Source/WebKit/win/ChangeLog b/Source/WebKit/win/ChangeLog index 319a75ceb..c01990047 100644 --- a/Source/WebKit/win/ChangeLog +++ b/Source/WebKit/win/ChangeLog @@ -1,3 +1,239 @@ +2012-09-10 Dominic Mazzoni <dmazzoni@google.com> + + AX: Update Windows port accessible role mappings to fix some tests + https://bugs.webkit.org/show_bug.cgi?id=96219 + + Reviewed by Chris Fleizach. + + Update a bunch of accessible role mappings to fix tests and improve win + accessibility. + + * AccessibleBase.cpp: + (MSAARole): + +2012-09-07 Allan Sandfeld Jensen <allan.jensen@nokia.com> + + Simplify hitTestResultAtPoint and nodesFromRect APIs + https://bugs.webkit.org/show_bug.cgi?id=95720 + + Reviewed by Antonio Gomes. + + Update calls to new API. + + * WebActionPropertyBag.cpp: + (WebActionPropertyBag::Read): + * WebView.cpp: + (WebView::handleContextMenuEvent): + (WebView::elementAtPoint): + +2012-09-05 Sam Weinig <sam@webkit.org> + + Part 2 of removing PlatformString.h, remove PlatformString.h + https://bugs.webkit.org/show_bug.cgi?id=95931 + + Reviewed by Adam Barth. + + Remove PlatformString.h + + * DOMCSSClasses.cpp: + * DefaultPolicyDelegate.cpp: + * MarshallingHelpers.cpp: + * WebCoreSupport/WebInspectorClient.h: + * WebDownload.h: + * WebFrame.h: + * WebHistoryItem.h: + * WebIconDatabase.cpp: + * WebKitDLL.h: + * WebKitGraphics.cpp: + * WebKitSystemBits.cpp: + * WebLocalizableStrings.cpp: + * WebNotificationCenter.cpp: + * WebResource.h: + +2012-09-06 Patrick Gansterer <paroga@webkit.org> + + Remove String::operator+=() from windows platform code + https://bugs.webkit.org/show_bug.cgi?id=95904 + + Reviewed by Benjamin Poulain. + + Use StringBuilder and operator+() to concatenate strings instead of operator+=(). + + * AccessibleBase.cpp: + (AccessibleBase::get_accKeyboardShortcut): + * WebDownload.cpp: + (WebDownload::bundlePathForTargetPath): + * WebView.cpp: + (imeCompositionArgumentNames): + +2012-09-05 Kaustubh Atrawalkar <kaustubh@motorola.com> + + [DRT] LTC:: Move printing related APIs from LayoutTestController to Internals + https://bugs.webkit.org/show_bug.cgi?id=92735 + + Reviewed by Hajime Morita. + + Move numberOfPages, pageProperty & pageSizeAndMarginsInPixels in Internals and remove duplicated code from DumprenderTree & WebkitTestRunner. + Kept the function defination and declaration to keep binary compatibility for IWebFramePrivate.idl + + * WebFrame.cpp: + (WebFrame::numberOfPages): + +2012-08-30 Benjamin Poulain <bpoulain@apple.com> + + Replace JSC::UString by WTF::String + https://bugs.webkit.org/show_bug.cgi?id=95271 + + Reviewed by Geoffrey Garen. + + Replace UString by String. + + * WebFrame.cpp: + (WebFrame::stringByEvaluatingJavaScriptInScriptWorld): + * WebView.cpp: + (WebView::stringByEvaluatingJavaScriptFromString): + +2012-08-29 Dominic Mazzoni <dmazzoni@google.com> + + AX: Canvas should have a distinct role + https://bugs.webkit.org/show_bug.cgi?id=95248 + + Reviewed by Chris Fleizach. + + Map new CanvasRole to the same as ImageRole. + + * AccessibleBase.cpp: + (MSAARole): + +2012-08-29 Sheriff Bot <webkit.review.bot@gmail.com> + + Unreviewed, rolling out r126972. + http://trac.webkit.org/changeset/126972 + https://bugs.webkit.org/show_bug.cgi?id=95349 + + accessibility/canvas-description-and-role.html has been + failing consistently on several bots and Dominic needs some + time to investigate why (Requested by jchaffraix on #webkit). + + * AccessibleBase.cpp: + (MSAARole): + +2012-08-29 Dominic Mazzoni <dmazzoni@google.com> + + AX: Canvas should have a distinct role + https://bugs.webkit.org/show_bug.cgi?id=95248 + + Reviewed by Chris Fleizach. + + Map new CanvasRole to the same as ImageRole. + + * AccessibleBase.cpp: + (MSAARole): + +2012-08-28 Sheriff Bot <webkit.review.bot@gmail.com> + + Unreviewed, rolling out r126914. + http://trac.webkit.org/changeset/126914 + https://bugs.webkit.org/show_bug.cgi?id=95239 + + it breaks everything and fixes nothing (Requested by pizlo on + #webkit). + + * COMPropertyBag.h: + (::Read): + (::GetPropertyInfo): + * WebCoreStatistics.cpp: + (WebCoreStatistics::javaScriptProtectedObjectTypeCounts): + * WebCoreSupport/WebPlatformStrategies.cpp: + (WebPlatformStrategies::getPluginInfo): + * WebHistory.cpp: + (WebHistory::removeItemFromDateCaches): + * WebKitCOMAPI.cpp: + (classFactory): + * WebKitStatistics.cpp: + (WebKitStatistics::comClassNameCounts): + * WebNotificationCenter.cpp: + (WebNotificationCenter::postNotificationInternal): + (WebNotificationCenter::addObserver): + (WebNotificationCenter::removeObserver): + +2012-08-28 Caio Marcelo de Oliveira Filho <caio.oliveira@openbossa.org> + + Rename first/second to key/value in HashMap iterators + https://bugs.webkit.org/show_bug.cgi?id=82784 + + Reviewed by Eric Seidel. + + * COMPropertyBag.h: + (::Read): + (::GetPropertyInfo): + * WebCoreStatistics.cpp: + (WebCoreStatistics::javaScriptProtectedObjectTypeCounts): + * WebCoreSupport/WebPlatformStrategies.cpp: + (WebPlatformStrategies::getPluginInfo): + * WebHistory.cpp: + (WebHistory::removeItemFromDateCaches): + * WebKitCOMAPI.cpp: + (classFactory): + * WebKitStatistics.cpp: + (WebKitStatistics::comClassNameCounts): + * WebNotificationCenter.cpp: + (WebNotificationCenter::postNotificationInternal): + (WebNotificationCenter::addObserver): + (WebNotificationCenter::removeObserver): + +2012-08-27 Sheriff Bot <webkit.review.bot@gmail.com> + + Unreviewed, rolling out r126836. + http://trac.webkit.org/changeset/126836 + https://bugs.webkit.org/show_bug.cgi?id=95163 + + Broke all Apple ports, EFL, and Qt. (Requested by tkent on + #webkit). + + * COMPropertyBag.h: + (::Read): + (::GetPropertyInfo): + * WebCoreStatistics.cpp: + (WebCoreStatistics::javaScriptProtectedObjectTypeCounts): + * WebCoreSupport/WebPlatformStrategies.cpp: + (WebPlatformStrategies::getPluginInfo): + * WebHistory.cpp: + (WebHistory::removeItemFromDateCaches): + * WebKitCOMAPI.cpp: + (classFactory): + * WebKitStatistics.cpp: + (WebKitStatistics::comClassNameCounts): + * WebNotificationCenter.cpp: + (WebNotificationCenter::postNotificationInternal): + (WebNotificationCenter::addObserver): + (WebNotificationCenter::removeObserver): + +2012-08-27 Caio Marcelo de Oliveira Filho <caio.oliveira@openbossa.org> + + Rename first/second to key/value in HashMap iterators + https://bugs.webkit.org/show_bug.cgi?id=82784 + + Reviewed by Eric Seidel. + + * COMPropertyBag.h: + (::Read): + (::GetPropertyInfo): + * WebCoreStatistics.cpp: + (WebCoreStatistics::javaScriptProtectedObjectTypeCounts): + * WebCoreSupport/WebPlatformStrategies.cpp: + (WebPlatformStrategies::getPluginInfo): + * WebHistory.cpp: + (WebHistory::removeItemFromDateCaches): + * WebKitCOMAPI.cpp: + (classFactory): + * WebKitStatistics.cpp: + (WebKitStatistics::comClassNameCounts): + * WebNotificationCenter.cpp: + (WebNotificationCenter::postNotificationInternal): + (WebNotificationCenter::addObserver): + (WebNotificationCenter::removeObserver): + 2012-08-23 Adrienne Walker <enne@google.com> Convert ScrollableArea ASSERT_NOT_REACHED virtuals diff --git a/Source/WebKit/win/DOMCSSClasses.cpp b/Source/WebKit/win/DOMCSSClasses.cpp index 02200319b..2ceb91654 100644 --- a/Source/WebKit/win/DOMCSSClasses.cpp +++ b/Source/WebKit/win/DOMCSSClasses.cpp @@ -27,7 +27,7 @@ #include "WebKitDLL.h" #include "DOMCSSClasses.h" -#include <WebCore/PlatformString.h> +#include <wtf/text/WTFString.h> // DOMCSSStyleDeclaration - DOMCSSStyleDeclaration ---------------------------- diff --git a/Source/WebKit/win/DefaultPolicyDelegate.cpp b/Source/WebKit/win/DefaultPolicyDelegate.cpp index 02d7bdbc8..e83a8e977 100644 --- a/Source/WebKit/win/DefaultPolicyDelegate.cpp +++ b/Source/WebKit/win/DefaultPolicyDelegate.cpp @@ -28,9 +28,7 @@ #include "DefaultPolicyDelegate.h" #include <WebCore/COMPtr.h> -#include <WebCore/PlatformString.h> - -using namespace WebCore; +#include <wtf/text/WTFString.h> // FIXME: move this enum to a separate header file when other code begins to use it. typedef enum WebExtraNavigationType { diff --git a/Source/WebKit/win/MarshallingHelpers.cpp b/Source/WebKit/win/MarshallingHelpers.cpp index c7719fdb2..138e4b425 100644 --- a/Source/WebKit/win/MarshallingHelpers.cpp +++ b/Source/WebKit/win/MarshallingHelpers.cpp @@ -29,8 +29,8 @@ #include <WebCore/IntRect.h> #include <WebCore/KURL.h> -#include <WebCore/PlatformString.h> #include <wtf/MathExtras.h> +#include <wtf/text/WTFString.h> using namespace WebCore; diff --git a/Source/WebKit/win/WebActionPropertyBag.cpp b/Source/WebKit/win/WebActionPropertyBag.cpp index fca83be0d..d2905091f 100644 --- a/Source/WebKit/win/WebActionPropertyBag.cpp +++ b/Source/WebKit/win/WebActionPropertyBag.cpp @@ -121,7 +121,7 @@ HRESULT STDMETHODCALLTYPE WebActionPropertyBag::Read(LPCOLESTR pszPropName, VARI if (isEqual(pszPropName, WebActionElementKey)) { if (const MouseEvent* mouseEvent = findMouseEvent(m_action.event())) { V_VT(pVar) = VT_UNKNOWN; - V_UNKNOWN(pVar) = WebElementPropertyBag::createInstance(m_frame->eventHandler()->hitTestResultAtPoint(mouseEvent->absoluteLocation(), false)); + V_UNKNOWN(pVar) = WebElementPropertyBag::createInstance(m_frame->eventHandler()->hitTestResultAtPoint(mouseEvent->absoluteLocation())); return S_OK; } } diff --git a/Source/WebKit/win/WebCookieManager.cpp b/Source/WebKit/win/WebCookieManager.cpp index 499d8570a..49bbad634 100644 --- a/Source/WebKit/win/WebCookieManager.cpp +++ b/Source/WebKit/win/WebCookieManager.cpp @@ -27,8 +27,6 @@ #include "WebKitDLL.h" #include "WebCookieManager.h" -using namespace WebCore; - // WebCookieManager ------------------------------------------------------- WebCookieManager* WebCookieManager::createInstance() diff --git a/Source/WebKit/win/WebCoreSupport/WebInspectorClient.h b/Source/WebKit/win/WebCoreSupport/WebInspectorClient.h index e34333d24..b589af7b9 100644 --- a/Source/WebKit/win/WebCoreSupport/WebInspectorClient.h +++ b/Source/WebKit/win/WebCoreSupport/WebInspectorClient.h @@ -33,13 +33,13 @@ #include <WebCore/InspectorClient.h> #include <WebCore/InspectorFrontendChannel.h> #include <WebCore/InspectorFrontendClientLocal.h> -#include <WebCore/PlatformString.h> #include <WebCore/WindowMessageListener.h> +#include <windows.h> #include <wtf/Forward.h> #include <wtf/HashMap.h> #include <wtf/OwnPtr.h> #include <wtf/text/StringHash.h> -#include <windows.h> +#include <wtf/text/WTFString.h> namespace WebCore { diff --git a/Source/WebKit/win/WebDownload.cpp b/Source/WebKit/win/WebDownload.cpp index cb5e2c3db..b8fabe28b 100644 --- a/Source/WebKit/win/WebDownload.cpp +++ b/Source/WebKit/win/WebDownload.cpp @@ -148,7 +148,7 @@ HRESULT STDMETHODCALLTYPE WebDownload::bundlePathForTargetPath( if (bundle[bundle.length()-1] == '/') bundle.truncate(1); - bundle += DownloadBundle::fileExtension(); + bundle.append(DownloadBundle::fileExtension()); *bundlePath = SysAllocStringLen(bundle.characters(), bundle.length()); if (!*bundlePath) return E_FAIL; diff --git a/Source/WebKit/win/WebDownload.h b/Source/WebKit/win/WebDownload.h index 446be46dd..d9ca277ae 100644 --- a/Source/WebKit/win/WebDownload.h +++ b/Source/WebKit/win/WebDownload.h @@ -28,8 +28,8 @@ #include "WebKit.h" #include <WebCore/COMPtr.h> -#include <WebCore/PlatformString.h> #include <wtf/RetainPtr.h> +#include <wtf/text/WTFString.h> #if USE(CFNETWORK) #include <CFNetwork/CFURLDownloadPriv.h> diff --git a/Source/WebKit/win/WebFrame.cpp b/Source/WebKit/win/WebFrame.cpp index d1880cf3f..8a0a82cc5 100644 --- a/Source/WebKit/win/WebFrame.cpp +++ b/Source/WebKit/win/WebFrame.cpp @@ -894,15 +894,10 @@ HRESULT STDMETHODCALLTYPE WebFrame::numberOfPages( /* [in] */ float pageHeightInPixels, /* [retval][out] */ int* result) { - if (!result) - return E_POINTER; - - Frame* coreFrame = core(this); - if (!coreFrame) - return E_FAIL; - - *result = PrintContext::numberOfPages(coreFrame, FloatSize(pageWidthInPixels, pageHeightInPixels)); - return S_OK; + // TODO: Please remove this function if not needed as this is LTC specific function + // and has been moved to Internals. + notImplemented(); + return E_FAIL; } HRESULT STDMETHODCALLTYPE WebFrame::scrollOffset( @@ -2539,7 +2534,7 @@ HRESULT WebFrame::stringByEvaluatingJavaScriptInScriptWorld(IWebScriptWorld* iWo JSC::ExecState* exec = anyWorldGlobalObject->globalExec(); JSC::JSLockHolder lock(exec); - String resultString = ustringToString(result.toString(exec)->value(exec)); + String resultString = result.toWTFString(exec); *evaluationResult = BString(resultString).release(); return S_OK; diff --git a/Source/WebKit/win/WebFrame.h b/Source/WebKit/win/WebFrame.h index d80193dd2..af6d6ead7 100644 --- a/Source/WebKit/win/WebFrame.h +++ b/Source/WebKit/win/WebFrame.h @@ -37,12 +37,12 @@ #include <WebCore/FrameWin.h> #include <WebCore/GraphicsContext.h> #include <WebCore/KURL.h> -#include <WebCore/PlatformString.h> #include <WebCore/ResourceHandleClient.h> #include <WTF/RefPtr.h> #include <WTF/HashMap.h> #include <WTF/OwnPtr.h> +#include <wtf/text/WTFString.h> namespace WebCore { class AuthenticationChallenge; diff --git a/Source/WebKit/win/WebHistoryItem.h b/Source/WebKit/win/WebHistoryItem.h index 7e420397f..aad0fdafc 100644 --- a/Source/WebKit/win/WebHistoryItem.h +++ b/Source/WebKit/win/WebHistoryItem.h @@ -29,9 +29,9 @@ #include "WebKit.h" #include <CoreFoundation/CoreFoundation.h> -#include <WebCore/PlatformString.h> #include <wtf/PassRefPtr.h> #include <wtf/RefPtr.h> +#include <wtf/text/WTFString.h> namespace WebCore { class HistoryItem; diff --git a/Source/WebKit/win/WebIconDatabase.cpp b/Source/WebKit/win/WebIconDatabase.cpp index f428bfc76..329817aa2 100644 --- a/Source/WebKit/win/WebIconDatabase.cpp +++ b/Source/WebKit/win/WebIconDatabase.cpp @@ -28,19 +28,19 @@ #include "WebIconDatabase.h" #include "CFDictionaryPropertyBag.h" -#include "WebPreferences.h" #include "WebNotificationCenter.h" -#include <WebCore/BitmapInfo.h> +#include "WebPreferences.h" +#include "shlobj.h" #include <WebCore/BString.h> +#include <WebCore/BitmapInfo.h> #include <WebCore/COMPtr.h> #include <WebCore/FileSystem.h> #include <WebCore/HWndDC.h> #include <WebCore/IconDatabase.h> #include <WebCore/Image.h> -#include <WebCore/PlatformString.h> #include <WebCore/SharedBuffer.h> #include <wtf/MainThread.h> -#include "shlobj.h" +#include <wtf/text/WTFString.h> using namespace WebCore; using namespace WTF; diff --git a/Source/WebKit/win/WebKit.vcproj/Interfaces.vcproj b/Source/WebKit/win/WebKit.vcproj/Interfaces.vcproj index 39c6eb783..7312ad10a 100644 --- a/Source/WebKit/win/WebKit.vcproj/Interfaces.vcproj +++ b/Source/WebKit/win/WebKit.vcproj/Interfaces.vcproj @@ -1,4630 +1,4630 @@ -<?xml version="1.0" encoding="Windows-1252"?> -<VisualStudioProject - ProjectType="Visual C++" - Version="8.00" - Name="Interfaces" - ProjectGUID="{91762BE2-87EF-4F5A-A480-48B90EB3F406}" - RootNamespace="Interfaces" - Keyword="Win32Proj" - > - <Platforms> - <Platform - Name="Win32" - /> - </Platforms> - <ToolFiles> - </ToolFiles> - <Configurations> - <Configuration - Name="Debug|Win32" - ConfigurationType="4" - InheritedPropertySheets=".\InterfacesDebug.vsprops" - CharacterSet="1" - > - <Tool - Name="VCPreBuildEventTool" - /> - <Tool - Name="VCCustomBuildTool" - /> - <Tool - Name="VCXMLDataGeneratorTool" - /> - <Tool - Name="VCWebServiceProxyGeneratorTool" - /> - <Tool - Name="VCMIDLTool" - /> - <Tool - Name="VCCLCompilerTool" - /> - <Tool - Name="VCManagedResourceCompilerTool" - /> - <Tool - Name="VCResourceCompilerTool" - /> - <Tool - Name="VCPreLinkEventTool" - /> - <Tool - Name="VCLibrarianTool" - /> - <Tool - Name="VCALinkTool" - /> - <Tool - Name="VCXDCMakeTool" - /> - <Tool - Name="VCBscMakeTool" - /> - <Tool - Name="VCFxCopTool" - /> - <Tool - Name="VCPostBuildEventTool" - /> - </Configuration> - <Configuration - Name="Release|Win32" - ConfigurationType="4" - InheritedPropertySheets=".\InterfacesRelease.vsprops" - CharacterSet="1" - > - <Tool - Name="VCPreBuildEventTool" - /> - <Tool - Name="VCCustomBuildTool" - /> - <Tool - Name="VCXMLDataGeneratorTool" - /> - <Tool - Name="VCWebServiceProxyGeneratorTool" - /> - <Tool - Name="VCMIDLTool" - /> - <Tool - Name="VCCLCompilerTool" - /> - <Tool - Name="VCManagedResourceCompilerTool" - /> - <Tool - Name="VCResourceCompilerTool" - /> - <Tool - Name="VCPreLinkEventTool" - /> - <Tool - Name="VCLibrarianTool" - /> - <Tool - Name="VCALinkTool" - /> - <Tool - Name="VCXDCMakeTool" - /> - <Tool - Name="VCBscMakeTool" - /> - <Tool - Name="VCFxCopTool" - /> - <Tool - Name="VCPostBuildEventTool" - /> - </Configuration> - <Configuration - Name="Production|Win32" - ConfigurationType="4" - InheritedPropertySheets=".\InterfacesProduction.vsprops" - CharacterSet="1" - WholeProgramOptimization="1" - > - <Tool - Name="VCPreBuildEventTool" - /> - <Tool - Name="VCCustomBuildTool" - /> - <Tool - Name="VCXMLDataGeneratorTool" - /> - <Tool - Name="VCWebServiceProxyGeneratorTool" - /> - <Tool - Name="VCMIDLTool" - /> - <Tool - Name="VCCLCompilerTool" - /> - <Tool - Name="VCManagedResourceCompilerTool" - /> - <Tool - Name="VCResourceCompilerTool" - /> - <Tool - Name="VCPreLinkEventTool" - /> - <Tool - Name="VCLibrarianTool" - /> - <Tool - Name="VCALinkTool" - /> - <Tool - Name="VCXDCMakeTool" - /> - <Tool - Name="VCBscMakeTool" - /> - <Tool - Name="VCFxCopTool" - /> - <Tool - Name="VCPostBuildEventTool" - /> - </Configuration> - <Configuration - Name="Debug_All|Win32" - ConfigurationType="4" - InheritedPropertySheets=".\InterfacesDebugAll.vsprops" - CharacterSet="1" - > - <Tool - Name="VCPreBuildEventTool" - /> - <Tool - Name="VCCustomBuildTool" - /> - <Tool - Name="VCXMLDataGeneratorTool" - /> - <Tool - Name="VCWebServiceProxyGeneratorTool" - /> - <Tool - Name="VCMIDLTool" - /> - <Tool - Name="VCCLCompilerTool" - /> - <Tool - Name="VCManagedResourceCompilerTool" - /> - <Tool - Name="VCResourceCompilerTool" - /> - <Tool - Name="VCPreLinkEventTool" - /> - <Tool - Name="VCLibrarianTool" - /> - <Tool - Name="VCALinkTool" - /> - <Tool - Name="VCXDCMakeTool" - /> - <Tool - Name="VCBscMakeTool" - /> - <Tool - Name="VCFxCopTool" - /> - <Tool - Name="VCPostBuildEventTool" - /> - </Configuration> - <Configuration - Name="Release_Cairo_CFLite|Win32" - ConfigurationType="4" - InheritedPropertySheets=".\InterfacesReleaseCairoCFLite.vsprops" - CharacterSet="1" - > - <Tool - Name="VCPreBuildEventTool" - /> - <Tool - Name="VCCustomBuildTool" - /> - <Tool - Name="VCXMLDataGeneratorTool" - /> - <Tool - Name="VCWebServiceProxyGeneratorTool" - /> - <Tool - Name="VCMIDLTool" - /> - <Tool - Name="VCCLCompilerTool" - /> - <Tool - Name="VCManagedResourceCompilerTool" - /> - <Tool - Name="VCResourceCompilerTool" - /> - <Tool - Name="VCPreLinkEventTool" - /> - <Tool - Name="VCLibrarianTool" - /> - <Tool - Name="VCALinkTool" - /> - <Tool - Name="VCXDCMakeTool" - /> - <Tool - Name="VCBscMakeTool" - /> - <Tool - Name="VCFxCopTool" - /> - <Tool - Name="VCPostBuildEventTool" - /> - </Configuration> - <Configuration - Name="Debug_Cairo_CFLite|Win32" - ConfigurationType="4" - InheritedPropertySheets=".\InterfacesDebugCairoCFLite.vsprops" - CharacterSet="1" - > - <Tool - Name="VCPreBuildEventTool" - /> - <Tool - Name="VCCustomBuildTool" - /> - <Tool - Name="VCXMLDataGeneratorTool" - /> - <Tool - Name="VCWebServiceProxyGeneratorTool" - /> - <Tool - Name="VCMIDLTool" - /> - <Tool - Name="VCCLCompilerTool" - /> - <Tool - Name="VCManagedResourceCompilerTool" - /> - <Tool - Name="VCResourceCompilerTool" - /> - <Tool - Name="VCPreLinkEventTool" - /> - <Tool - Name="VCLibrarianTool" - /> - <Tool - Name="VCALinkTool" - /> - <Tool - Name="VCXDCMakeTool" - /> - <Tool - Name="VCBscMakeTool" - /> - <Tool - Name="VCFxCopTool" - /> - <Tool - Name="VCPostBuildEventTool" - /> - </Configuration> - </Configurations> - <References> - </References> - <Files> - <File - RelativePath="..\Interfaces\AccessibleComparable.idl" - > - <FileConfiguration - Name="Debug|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Release|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Production|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Debug_All|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Release_Cairo_CFLite|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Debug_Cairo_CFLite|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - </File> - <File - RelativePath="..\Interfaces\DOMCore.idl" - > - <FileConfiguration - Name="Debug|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Release|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Production|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Debug_All|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Release_Cairo_CFLite|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Debug_Cairo_CFLite|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - </File> - <File - RelativePath="..\Interfaces\DOMCSS.idl" - > - <FileConfiguration - Name="Debug|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Release|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Production|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Debug_All|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Release_Cairo_CFLite|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Debug_Cairo_CFLite|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - </File> - <File - RelativePath="..\Interfaces\DOMEvents.idl" - > - <FileConfiguration - Name="Debug|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Release|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Production|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Debug_All|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Release_Cairo_CFLite|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Debug_Cairo_CFLite|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - </File> - <File - RelativePath="..\Interfaces\DOMExtensions.idl" - > - <FileConfiguration - Name="Debug|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Release|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Production|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Debug_All|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Release_Cairo_CFLite|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Debug_Cairo_CFLite|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - </File> - <File - RelativePath="..\Interfaces\DOMHTML.idl" - > - <FileConfiguration - Name="Debug|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Release|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Production|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Debug_All|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Release_Cairo_CFLite|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Debug_Cairo_CFLite|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - </File> - <File - RelativePath="..\Interfaces\DOMPrivate.idl" - > - <FileConfiguration - Name="Debug|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Release|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Production|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Debug_All|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Release_Cairo_CFLite|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Debug_Cairo_CFLite|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - </File> - <File - RelativePath="..\Interfaces\DOMRange.idl" - > - <FileConfiguration - Name="Debug|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Release|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Production|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Debug_All|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Release_Cairo_CFLite|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Debug_Cairo_CFLite|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - </File> - <File - RelativePath="..\Interfaces\DOMWindow.idl" - > - <FileConfiguration - Name="Debug|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Release|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Production|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Debug_All|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Release_Cairo_CFLite|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Debug_Cairo_CFLite|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - </File> - <File - RelativePath="..\Interfaces\IGEN_DOMObject.idl" - > - <FileConfiguration - Name="Debug|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Release|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Production|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Debug_All|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Release_Cairo_CFLite|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Debug_Cairo_CFLite|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - </File> - <File - RelativePath="..\Interfaces\IWebArchive.idl" - > - <FileConfiguration - Name="Debug|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Release|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Production|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Debug_All|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Release_Cairo_CFLite|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Debug_Cairo_CFLite|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - </File> - <File - RelativePath="..\Interfaces\IWebBackForwardList.idl" - > - <FileConfiguration - Name="Debug|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Release|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Production|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Debug_All|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Release_Cairo_CFLite|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Debug_Cairo_CFLite|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - </File> - <File - RelativePath="..\Interfaces\IWebBackForwardListPrivate.idl" - > - <FileConfiguration - Name="Debug|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Release|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Production|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Debug_All|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Release_Cairo_CFLite|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Debug_Cairo_CFLite|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - </File> - <File - RelativePath="..\Interfaces\IWebCache.idl" - > - <FileConfiguration - Name="Debug|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Release|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Production|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Debug_All|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Release_Cairo_CFLite|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Debug_Cairo_CFLite|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - </File> - <File - RelativePath="..\Interfaces\IWebCookieManager.idl" - > - <FileConfiguration - Name="Debug|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Release|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Production|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Debug_All|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Release_Cairo_CFLite|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Debug_Cairo_CFLite|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - </File> - <File - RelativePath="..\Interfaces\IWebCoreStatistics.idl" - > - <FileConfiguration - Name="Debug|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Release|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Production|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Debug_All|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Release_Cairo_CFLite|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Debug_Cairo_CFLite|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - </File> - <File - RelativePath="..\Interfaces\IWebDatabaseManager.idl" - > - <FileConfiguration - Name="Debug|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Release|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Production|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Debug_All|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Release_Cairo_CFLite|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Debug_Cairo_CFLite|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - </File> - <File - RelativePath="..\Interfaces\IWebDataSource.idl" - > - <FileConfiguration - Name="Debug|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Release|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Production|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Debug_All|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Release_Cairo_CFLite|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Debug_Cairo_CFLite|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - </File> - <File - RelativePath="..\Interfaces\IWebDesktopNotificationsDelegate.idl" - > - <FileConfiguration - Name="Debug|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Debug_All|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Debug_Cairo_CFLite|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - </File> - <File - RelativePath="..\Interfaces\IWebDocument.idl" - > - <FileConfiguration - Name="Debug|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Release|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Production|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Debug_All|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Release_Cairo_CFLite|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Debug_Cairo_CFLite|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - </File> - <File - RelativePath="..\Interfaces\IWebDownload.idl" - > - <FileConfiguration - Name="Debug|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Release|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Production|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Debug_All|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Release_Cairo_CFLite|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Debug_Cairo_CFLite|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - </File> - <File - RelativePath="..\Interfaces\IWebEditingDelegate.idl" - > - <FileConfiguration - Name="Debug|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Release|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Production|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Debug_All|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Release_Cairo_CFLite|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Debug_Cairo_CFLite|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - </File> - <File - RelativePath="..\Interfaces\IWebEmbeddedView.idl" - > - <FileConfiguration - Name="Debug|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Release|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Production|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Debug_All|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Release_Cairo_CFLite|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Debug_Cairo_CFLite|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - </File> - <File - RelativePath="..\Interfaces\IWebError.idl" - > - <FileConfiguration - Name="Debug|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Release|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Production|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Debug_All|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Release_Cairo_CFLite|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Debug_Cairo_CFLite|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - </File> - <File - RelativePath="..\Interfaces\IWebErrorPrivate.idl" - > - <FileConfiguration - Name="Debug|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Release|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Production|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Debug_All|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Release_Cairo_CFLite|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Debug_Cairo_CFLite|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - </File> - <File - RelativePath="..\Interfaces\IWebFormDelegate.idl" - > - <FileConfiguration - Name="Debug|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Release|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Production|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Debug_All|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Release_Cairo_CFLite|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Debug_Cairo_CFLite|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - </File> - <File - RelativePath="..\Interfaces\IWebFrame.idl" - > - <FileConfiguration - Name="Debug|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Release|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Production|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Debug_All|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Release_Cairo_CFLite|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Debug_Cairo_CFLite|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - </File> - <File - RelativePath="..\Interfaces\IWebFrameLoadDelegate.idl" - > - <FileConfiguration - Name="Debug|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Release|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Production|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Debug_All|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Release_Cairo_CFLite|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Debug_Cairo_CFLite|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - </File> - <File - RelativePath="..\Interfaces\IWebFrameLoadDelegatePrivate.idl" - > - <FileConfiguration - Name="Debug|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Release|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Production|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Debug_All|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Release_Cairo_CFLite|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Debug_Cairo_CFLite|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - </File> - <File - RelativePath="..\Interfaces\IWebFrameLoadDelegatePrivate2.idl" - > - <FileConfiguration - Name="Debug|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Release|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Production|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Debug_All|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Release_Cairo_CFLite|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Debug_Cairo_CFLite|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - </File> - <File - RelativePath="..\Interfaces\IWebFramePrivate.idl" - > - <FileConfiguration - Name="Debug|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Release|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Production|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Debug_All|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Release_Cairo_CFLite|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Debug_Cairo_CFLite|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - </File> - <File - RelativePath="..\Interfaces\IWebFrameView.idl" - > - <FileConfiguration - Name="Debug|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Release|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Production|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Debug_All|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Release_Cairo_CFLite|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Debug_Cairo_CFLite|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - </File> - <File - RelativePath="..\Interfaces\IWebGeolocationPolicyListener.idl" - > - <FileConfiguration - Name="Debug|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Release|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Production|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Debug_All|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Release_Cairo_CFLite|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Debug_Cairo_CFLite|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - </File> - <File - RelativePath="..\Interfaces\IWebGeolocationPosition.idl" - > - <FileConfiguration - Name="Debug|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Release|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Production|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Debug_All|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Release_Cairo_CFLite|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Debug_Cairo_CFLite|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - </File> - <File - RelativePath="..\Interfaces\IWebGeolocationProvider.idl" - > - <FileConfiguration - Name="Debug|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Release|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Production|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Debug_All|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Release_Cairo_CFLite|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Debug_Cairo_CFLite|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - </File> - <File - RelativePath="..\Interfaces\IWebHistory.idl" - > - <FileConfiguration - Name="Debug|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Release|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Production|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Debug_All|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Release_Cairo_CFLite|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Debug_Cairo_CFLite|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - </File> - <File - RelativePath="..\Interfaces\IWebHistoryDelegate.idl" - > - <FileConfiguration - Name="Debug|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Release|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Production|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Debug_All|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Release_Cairo_CFLite|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Debug_Cairo_CFLite|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - </File> - <File - RelativePath="..\Interfaces\IWebHistoryItem.idl" - > - <FileConfiguration - Name="Debug|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Release|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Production|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Debug_All|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Release_Cairo_CFLite|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Debug_Cairo_CFLite|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - </File> - <File - RelativePath="..\Interfaces\IWebHistoryItemPrivate.idl" - > - <FileConfiguration - Name="Debug|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Release|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Production|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Debug_All|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Release_Cairo_CFLite|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Debug_Cairo_CFLite|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - </File> - <File - RelativePath="..\Interfaces\IWebHistoryPrivate.idl" - > - <FileConfiguration - Name="Debug|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Release|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Production|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Debug_All|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Release_Cairo_CFLite|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Debug_Cairo_CFLite|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - </File> - <File - RelativePath="..\Interfaces\IWebHTMLRepresentation.idl" - > - <FileConfiguration - Name="Debug|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Release|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Production|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Debug_All|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Release_Cairo_CFLite|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Debug_Cairo_CFLite|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - </File> - <File - RelativePath="..\Interfaces\IWebHTTPURLResponse.idl" - > - <FileConfiguration - Name="Debug|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Release|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Production|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Debug_All|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Release_Cairo_CFLite|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Debug_Cairo_CFLite|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - </File> - <File - RelativePath="..\Interfaces\IWebIconDatabase.idl" - > - <FileConfiguration - Name="Debug|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Release|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Production|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Debug_All|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Release_Cairo_CFLite|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Debug_Cairo_CFLite|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - </File> - <File - RelativePath="..\Interfaces\IWebInspector.idl" - > - <FileConfiguration - Name="Debug|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Release|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Production|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Debug_All|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Release_Cairo_CFLite|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Debug_Cairo_CFLite|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - </File> - <File - RelativePath="..\Interfaces\IWebInspectorPrivate.idl" - > - <FileConfiguration - Name="Debug|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Release|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Production|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Debug_All|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Release_Cairo_CFLite|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Debug_Cairo_CFLite|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - </File> - <File - RelativePath="..\Interfaces\IWebJavaScriptCollector.idl" - > - <FileConfiguration - Name="Debug|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Release|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Production|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Debug_All|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Release_Cairo_CFLite|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Debug_Cairo_CFLite|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - </File> - <File - RelativePath="..\Interfaces\IWebKitStatistics.idl" - > - <FileConfiguration - Name="Debug|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Release|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Production|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Debug_All|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Release_Cairo_CFLite|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Debug_Cairo_CFLite|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - </File> - <File - RelativePath="..\Interfaces\IWebMutableURLRequest.idl" - > - <FileConfiguration - Name="Debug|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Release|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Production|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Debug_All|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Release_Cairo_CFLite|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Debug_Cairo_CFLite|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - </File> - <File - RelativePath="..\Interfaces\IWebMutableURLRequestPrivate.idl" - > - <FileConfiguration - Name="Debug|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Release|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Production|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Debug_All|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Release_Cairo_CFLite|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Debug_Cairo_CFLite|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - </File> - <File - RelativePath="..\Interfaces\IWebNavigationData.idl" - > - <FileConfiguration - Name="Debug|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Release|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Production|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Debug_All|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Release_Cairo_CFLite|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Debug_Cairo_CFLite|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - </File> - <File - RelativePath="..\Interfaces\IWebNotification.idl" - > - <FileConfiguration - Name="Debug|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Release|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Production|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Debug_All|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Release_Cairo_CFLite|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Debug_Cairo_CFLite|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - </File> - <File - RelativePath="..\Interfaces\IWebNotificationCenter.idl" - > - <FileConfiguration - Name="Debug|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Release|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Production|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Debug_All|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Release_Cairo_CFLite|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Debug_Cairo_CFLite|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - </File> - <File - RelativePath="..\Interfaces\IWebNotificationObserver.idl" - > - <FileConfiguration - Name="Debug|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Release|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Production|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Debug_All|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Release_Cairo_CFLite|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Debug_Cairo_CFLite|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - </File> - <File - RelativePath="..\Interfaces\IWebPolicyDelegate.idl" - > - <FileConfiguration - Name="Debug|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Release|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Production|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Debug_All|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Release_Cairo_CFLite|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Debug_Cairo_CFLite|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - </File> - <File - RelativePath="..\Interfaces\IWebPolicyDelegatePrivate.idl" - > - <FileConfiguration - Name="Debug|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Release|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Production|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Debug_All|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Release_Cairo_CFLite|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Debug_Cairo_CFLite|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - </File> - <File - RelativePath="..\Interfaces\IWebPreferences.idl" - > - <FileConfiguration - Name="Debug|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Release|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Production|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Debug_All|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Release_Cairo_CFLite|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Debug_Cairo_CFLite|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - </File> - <File - RelativePath="..\Interfaces\IWebPreferencesPrivate.idl" - > - <FileConfiguration - Name="Debug|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Release|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Production|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Debug_All|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Release_Cairo_CFLite|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Debug_Cairo_CFLite|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - </File> - <File - RelativePath="..\Interfaces\IWebResource.idl" - > - <FileConfiguration - Name="Debug|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Release|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Production|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Debug_All|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Release_Cairo_CFLite|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Debug_Cairo_CFLite|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - </File> - <File - RelativePath="..\Interfaces\IWebResourceLoadDelegate.idl" - > - <FileConfiguration - Name="Debug|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Release|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Production|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Debug_All|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Release_Cairo_CFLite|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Debug_Cairo_CFLite|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - </File> - <File - RelativePath="..\Interfaces\IWebResourceLoadDelegatePrivate.idl" - > - <FileConfiguration - Name="Debug|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Release|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Production|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Debug_All|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Release_Cairo_CFLite|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Debug_Cairo_CFLite|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - </File> - <File - RelativePath="..\Interfaces\IWebScriptObject.idl" - > - <FileConfiguration - Name="Debug|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Release|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Production|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Debug_All|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Release_Cairo_CFLite|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Debug_Cairo_CFLite|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - </File> - <File - RelativePath="..\Interfaces\IWebScriptWorld.idl" - > - <FileConfiguration - Name="Debug|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Release|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Production|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Debug_All|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Release_Cairo_CFLite|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Debug_Cairo_CFLite|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - </File> - <File - RelativePath="..\Interfaces\IWebScrollBarDelegatePrivate.idl" - > - <FileConfiguration - Name="Debug|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Release|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Production|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Debug_All|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Release_Cairo_CFLite|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Debug_Cairo_CFLite|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - </File> - <File - RelativePath="..\Interfaces\IWebScrollBarPrivate.idl" - > - <FileConfiguration - Name="Debug|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Release|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Production|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Debug_All|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Release_Cairo_CFLite|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Debug_Cairo_CFLite|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - </File> - <File - RelativePath="..\Interfaces\IWebSecurityOrigin.idl" - > - <FileConfiguration - Name="Debug|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Release|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Production|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Debug_All|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Release_Cairo_CFLite|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Debug_Cairo_CFLite|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - </File> - <File - RelativePath="..\Interfaces\IWebSerializedJSValue.idl" - > - <FileConfiguration - Name="Debug|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Release|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Production|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Debug_All|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Release_Cairo_CFLite|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Debug_Cairo_CFLite|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - </File> - <File - RelativePath="..\Interfaces\IWebSerializedJSValuePrivate.idl" - > - <FileConfiguration - Name="Debug|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Release|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Production|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Debug_All|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Release_Cairo_CFLite|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Debug_Cairo_CFLite|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - </File> - <File - RelativePath="..\Interfaces\IWebTextRenderer.idl" - > - <FileConfiguration - Name="Debug|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Release|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Production|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Debug_All|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Release_Cairo_CFLite|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Debug_Cairo_CFLite|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - </File> - <File - RelativePath="..\Interfaces\IWebUIDelegate.idl" - > - <FileConfiguration - Name="Debug|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Release|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Production|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Debug_All|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Release_Cairo_CFLite|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Debug_Cairo_CFLite|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - </File> - <File - RelativePath="..\Interfaces\IWebUIDelegatePrivate.idl" - > - <FileConfiguration - Name="Debug|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Release|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Production|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Debug_All|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Release_Cairo_CFLite|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Debug_Cairo_CFLite|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - </File> - <File - RelativePath="..\Interfaces\IWebUndoManager.idl" - > - <FileConfiguration - Name="Debug|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Release|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Production|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Debug_All|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Release_Cairo_CFLite|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Debug_Cairo_CFLite|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - </File> - <File - RelativePath="..\Interfaces\IWebUndoTarget.idl" - > - <FileConfiguration - Name="Debug|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Release|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Production|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Debug_All|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Release_Cairo_CFLite|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Debug_Cairo_CFLite|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - </File> - <File - RelativePath="..\Interfaces\IWebURLAuthenticationChallenge.idl" - > - <FileConfiguration - Name="Debug|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Release|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Production|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Debug_All|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Release_Cairo_CFLite|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Debug_Cairo_CFLite|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - </File> - <File - RelativePath="..\Interfaces\IWebURLRequest.idl" - > - <FileConfiguration - Name="Debug|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Release|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Production|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Debug_All|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Release_Cairo_CFLite|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Debug_Cairo_CFLite|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - </File> - <File - RelativePath="..\Interfaces\IWebURLResponse.idl" - > - <FileConfiguration - Name="Debug|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Release|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Production|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Debug_All|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Release_Cairo_CFLite|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Debug_Cairo_CFLite|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - </File> - <File - RelativePath="..\Interfaces\IWebURLResponsePrivate.idl" - > - <FileConfiguration - Name="Debug|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Release|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Production|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Debug_All|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Release_Cairo_CFLite|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Debug_Cairo_CFLite|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - </File> - <File - RelativePath="..\Interfaces\IWebUserContentURLPattern.idl" - > - <FileConfiguration - Name="Debug|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Release|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Production|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Debug_All|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Release_Cairo_CFLite|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Debug_Cairo_CFLite|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - </File> - <File - RelativePath="..\Interfaces\IWebView.idl" - > - <FileConfiguration - Name="Debug|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Release|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Production|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Debug_All|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Release_Cairo_CFLite|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Debug_Cairo_CFLite|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - </File> - <File - RelativePath="..\Interfaces\IWebViewPrivate.idl" - > - <FileConfiguration - Name="Debug|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Release|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Production|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Debug_All|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Release_Cairo_CFLite|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Debug_Cairo_CFLite|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - </File> - <File - RelativePath="..\Interfaces\IWebWorkersPrivate.idl" - > - <FileConfiguration - Name="Debug|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Release|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Production|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Debug_All|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Release_Cairo_CFLite|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Debug_Cairo_CFLite|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - </File> - <File - RelativePath="..\Interfaces\JavaScriptCoreAPITypes.idl" - > - <FileConfiguration - Name="Debug|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Release|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Production|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Debug_All|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Release_Cairo_CFLite|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Debug_Cairo_CFLite|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - </File> - <File - RelativePath="..\Interfaces\WebKit.idl" - > - <FileConfiguration - Name="Debug|Win32" - > - <Tool - Name="VCMIDLTool" - GenerateTypeLibrary="true" - /> - </FileConfiguration> - <FileConfiguration - Name="Release|Win32" - > - <Tool - Name="VCMIDLTool" - GenerateTypeLibrary="true" - /> - </FileConfiguration> - <FileConfiguration - Name="Production|Win32" - > - <Tool - Name="VCMIDLTool" - GenerateTypeLibrary="true" - /> - </FileConfiguration> - <FileConfiguration - Name="Debug_All|Win32" - > - <Tool - Name="VCMIDLTool" - GenerateTypeLibrary="true" - /> - </FileConfiguration> - <FileConfiguration - Name="Release_Cairo_CFLite|Win32" - > - <Tool - Name="VCMIDLTool" - GenerateTypeLibrary="true" - /> - </FileConfiguration> - <FileConfiguration - Name="Debug_Cairo_CFLite|Win32" - > - <Tool - Name="VCMIDLTool" - GenerateTypeLibrary="true" - /> - </FileConfiguration> - </File> - <File - RelativePath="..\Interfaces\WebScrollbarTypes.idl" - > - <FileConfiguration - Name="Debug|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Release|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Production|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Debug_All|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Release_Cairo_CFLite|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Debug_Cairo_CFLite|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCMIDLTool" - /> - </FileConfiguration> - </File> - </Files> - <Globals> - </Globals> -</VisualStudioProject> +<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+ ProjectType="Visual C++"
+ Version="8.00"
+ Name="Interfaces"
+ ProjectGUID="{91762BE2-87EF-4F5A-A480-48B90EB3F406}"
+ RootNamespace="Interfaces"
+ Keyword="Win32Proj"
+ >
+ <Platforms>
+ <Platform
+ Name="Win32"
+ />
+ </Platforms>
+ <ToolFiles>
+ </ToolFiles>
+ <Configurations>
+ <Configuration
+ Name="Debug|Win32"
+ ConfigurationType="4"
+ InheritedPropertySheets=".\InterfacesDebug.vsprops"
+ CharacterSet="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLibrarianTool"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ <Configuration
+ Name="Release|Win32"
+ ConfigurationType="4"
+ InheritedPropertySheets=".\InterfacesRelease.vsprops"
+ CharacterSet="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLibrarianTool"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ <Configuration
+ Name="Production|Win32"
+ ConfigurationType="4"
+ InheritedPropertySheets=".\InterfacesProduction.vsprops"
+ CharacterSet="1"
+ WholeProgramOptimization="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLibrarianTool"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ <Configuration
+ Name="Debug_All|Win32"
+ ConfigurationType="4"
+ InheritedPropertySheets=".\InterfacesDebugAll.vsprops"
+ CharacterSet="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLibrarianTool"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ <Configuration
+ Name="Release_Cairo_CFLite|Win32"
+ ConfigurationType="4"
+ InheritedPropertySheets=".\InterfacesReleaseCairoCFLite.vsprops"
+ CharacterSet="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLibrarianTool"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ <Configuration
+ Name="Debug_Cairo_CFLite|Win32"
+ ConfigurationType="4"
+ InheritedPropertySheets=".\InterfacesDebugCairoCFLite.vsprops"
+ CharacterSet="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLibrarianTool"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ </Configurations>
+ <References>
+ </References>
+ <Files>
+ <File
+ RelativePath="..\Interfaces\AccessibleComparable.idl"
+ >
+ <FileConfiguration
+ Name="Debug|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Production|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug_All|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release_Cairo_CFLite|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug_Cairo_CFLite|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="..\Interfaces\DOMCore.idl"
+ >
+ <FileConfiguration
+ Name="Debug|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Production|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug_All|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release_Cairo_CFLite|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug_Cairo_CFLite|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="..\Interfaces\DOMCSS.idl"
+ >
+ <FileConfiguration
+ Name="Debug|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Production|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug_All|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release_Cairo_CFLite|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug_Cairo_CFLite|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="..\Interfaces\DOMEvents.idl"
+ >
+ <FileConfiguration
+ Name="Debug|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Production|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug_All|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release_Cairo_CFLite|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug_Cairo_CFLite|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="..\Interfaces\DOMExtensions.idl"
+ >
+ <FileConfiguration
+ Name="Debug|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Production|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug_All|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release_Cairo_CFLite|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug_Cairo_CFLite|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="..\Interfaces\DOMHTML.idl"
+ >
+ <FileConfiguration
+ Name="Debug|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Production|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug_All|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release_Cairo_CFLite|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug_Cairo_CFLite|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="..\Interfaces\DOMPrivate.idl"
+ >
+ <FileConfiguration
+ Name="Debug|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Production|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug_All|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release_Cairo_CFLite|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug_Cairo_CFLite|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="..\Interfaces\DOMRange.idl"
+ >
+ <FileConfiguration
+ Name="Debug|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Production|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug_All|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release_Cairo_CFLite|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug_Cairo_CFLite|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="..\Interfaces\DOMWindow.idl"
+ >
+ <FileConfiguration
+ Name="Debug|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Production|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug_All|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release_Cairo_CFLite|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug_Cairo_CFLite|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="..\Interfaces\IGEN_DOMObject.idl"
+ >
+ <FileConfiguration
+ Name="Debug|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Production|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug_All|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release_Cairo_CFLite|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug_Cairo_CFLite|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="..\Interfaces\IWebArchive.idl"
+ >
+ <FileConfiguration
+ Name="Debug|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Production|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug_All|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release_Cairo_CFLite|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug_Cairo_CFLite|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="..\Interfaces\IWebBackForwardList.idl"
+ >
+ <FileConfiguration
+ Name="Debug|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Production|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug_All|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release_Cairo_CFLite|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug_Cairo_CFLite|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="..\Interfaces\IWebBackForwardListPrivate.idl"
+ >
+ <FileConfiguration
+ Name="Debug|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Production|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug_All|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release_Cairo_CFLite|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug_Cairo_CFLite|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="..\Interfaces\IWebCache.idl"
+ >
+ <FileConfiguration
+ Name="Debug|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Production|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug_All|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release_Cairo_CFLite|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug_Cairo_CFLite|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="..\Interfaces\IWebCookieManager.idl"
+ >
+ <FileConfiguration
+ Name="Debug|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Production|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug_All|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release_Cairo_CFLite|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug_Cairo_CFLite|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="..\Interfaces\IWebCoreStatistics.idl"
+ >
+ <FileConfiguration
+ Name="Debug|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Production|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug_All|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release_Cairo_CFLite|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug_Cairo_CFLite|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="..\Interfaces\IWebDatabaseManager.idl"
+ >
+ <FileConfiguration
+ Name="Debug|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Production|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug_All|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release_Cairo_CFLite|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug_Cairo_CFLite|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="..\Interfaces\IWebDataSource.idl"
+ >
+ <FileConfiguration
+ Name="Debug|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Production|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug_All|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release_Cairo_CFLite|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug_Cairo_CFLite|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="..\Interfaces\IWebDesktopNotificationsDelegate.idl"
+ >
+ <FileConfiguration
+ Name="Debug|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug_All|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug_Cairo_CFLite|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="..\Interfaces\IWebDocument.idl"
+ >
+ <FileConfiguration
+ Name="Debug|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Production|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug_All|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release_Cairo_CFLite|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug_Cairo_CFLite|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="..\Interfaces\IWebDownload.idl"
+ >
+ <FileConfiguration
+ Name="Debug|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Production|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug_All|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release_Cairo_CFLite|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug_Cairo_CFLite|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="..\Interfaces\IWebEditingDelegate.idl"
+ >
+ <FileConfiguration
+ Name="Debug|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Production|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug_All|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release_Cairo_CFLite|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug_Cairo_CFLite|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="..\Interfaces\IWebEmbeddedView.idl"
+ >
+ <FileConfiguration
+ Name="Debug|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Production|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug_All|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release_Cairo_CFLite|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug_Cairo_CFLite|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="..\Interfaces\IWebError.idl"
+ >
+ <FileConfiguration
+ Name="Debug|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Production|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug_All|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release_Cairo_CFLite|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug_Cairo_CFLite|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="..\Interfaces\IWebErrorPrivate.idl"
+ >
+ <FileConfiguration
+ Name="Debug|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Production|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug_All|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release_Cairo_CFLite|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug_Cairo_CFLite|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="..\Interfaces\IWebFormDelegate.idl"
+ >
+ <FileConfiguration
+ Name="Debug|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Production|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug_All|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release_Cairo_CFLite|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug_Cairo_CFLite|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="..\Interfaces\IWebFrame.idl"
+ >
+ <FileConfiguration
+ Name="Debug|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Production|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug_All|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release_Cairo_CFLite|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug_Cairo_CFLite|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="..\Interfaces\IWebFrameLoadDelegate.idl"
+ >
+ <FileConfiguration
+ Name="Debug|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Production|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug_All|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release_Cairo_CFLite|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug_Cairo_CFLite|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="..\Interfaces\IWebFrameLoadDelegatePrivate.idl"
+ >
+ <FileConfiguration
+ Name="Debug|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Production|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug_All|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release_Cairo_CFLite|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug_Cairo_CFLite|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="..\Interfaces\IWebFrameLoadDelegatePrivate2.idl"
+ >
+ <FileConfiguration
+ Name="Debug|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Production|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug_All|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release_Cairo_CFLite|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug_Cairo_CFLite|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="..\Interfaces\IWebFramePrivate.idl"
+ >
+ <FileConfiguration
+ Name="Debug|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Production|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug_All|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release_Cairo_CFLite|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug_Cairo_CFLite|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="..\Interfaces\IWebFrameView.idl"
+ >
+ <FileConfiguration
+ Name="Debug|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Production|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug_All|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release_Cairo_CFLite|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug_Cairo_CFLite|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="..\Interfaces\IWebGeolocationPolicyListener.idl"
+ >
+ <FileConfiguration
+ Name="Debug|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Production|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug_All|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release_Cairo_CFLite|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug_Cairo_CFLite|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="..\Interfaces\IWebGeolocationPosition.idl"
+ >
+ <FileConfiguration
+ Name="Debug|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Production|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug_All|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release_Cairo_CFLite|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug_Cairo_CFLite|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="..\Interfaces\IWebGeolocationProvider.idl"
+ >
+ <FileConfiguration
+ Name="Debug|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Production|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug_All|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release_Cairo_CFLite|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug_Cairo_CFLite|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="..\Interfaces\IWebHistory.idl"
+ >
+ <FileConfiguration
+ Name="Debug|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Production|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug_All|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release_Cairo_CFLite|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug_Cairo_CFLite|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="..\Interfaces\IWebHistoryDelegate.idl"
+ >
+ <FileConfiguration
+ Name="Debug|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Production|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug_All|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release_Cairo_CFLite|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug_Cairo_CFLite|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="..\Interfaces\IWebHistoryItem.idl"
+ >
+ <FileConfiguration
+ Name="Debug|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Production|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug_All|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release_Cairo_CFLite|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug_Cairo_CFLite|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="..\Interfaces\IWebHistoryItemPrivate.idl"
+ >
+ <FileConfiguration
+ Name="Debug|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Production|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug_All|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release_Cairo_CFLite|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug_Cairo_CFLite|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="..\Interfaces\IWebHistoryPrivate.idl"
+ >
+ <FileConfiguration
+ Name="Debug|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Production|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug_All|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release_Cairo_CFLite|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug_Cairo_CFLite|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="..\Interfaces\IWebHTMLRepresentation.idl"
+ >
+ <FileConfiguration
+ Name="Debug|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Production|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug_All|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release_Cairo_CFLite|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug_Cairo_CFLite|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="..\Interfaces\IWebHTTPURLResponse.idl"
+ >
+ <FileConfiguration
+ Name="Debug|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Production|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug_All|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release_Cairo_CFLite|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug_Cairo_CFLite|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="..\Interfaces\IWebIconDatabase.idl"
+ >
+ <FileConfiguration
+ Name="Debug|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Production|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug_All|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release_Cairo_CFLite|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug_Cairo_CFLite|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="..\Interfaces\IWebInspector.idl"
+ >
+ <FileConfiguration
+ Name="Debug|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Production|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug_All|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release_Cairo_CFLite|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug_Cairo_CFLite|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="..\Interfaces\IWebInspectorPrivate.idl"
+ >
+ <FileConfiguration
+ Name="Debug|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Production|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug_All|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release_Cairo_CFLite|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug_Cairo_CFLite|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="..\Interfaces\IWebJavaScriptCollector.idl"
+ >
+ <FileConfiguration
+ Name="Debug|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Production|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug_All|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release_Cairo_CFLite|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug_Cairo_CFLite|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="..\Interfaces\IWebKitStatistics.idl"
+ >
+ <FileConfiguration
+ Name="Debug|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Production|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug_All|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release_Cairo_CFLite|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug_Cairo_CFLite|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="..\Interfaces\IWebMutableURLRequest.idl"
+ >
+ <FileConfiguration
+ Name="Debug|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Production|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug_All|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release_Cairo_CFLite|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug_Cairo_CFLite|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="..\Interfaces\IWebMutableURLRequestPrivate.idl"
+ >
+ <FileConfiguration
+ Name="Debug|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Production|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug_All|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release_Cairo_CFLite|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug_Cairo_CFLite|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="..\Interfaces\IWebNavigationData.idl"
+ >
+ <FileConfiguration
+ Name="Debug|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Production|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug_All|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release_Cairo_CFLite|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug_Cairo_CFLite|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="..\Interfaces\IWebNotification.idl"
+ >
+ <FileConfiguration
+ Name="Debug|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Production|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug_All|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release_Cairo_CFLite|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug_Cairo_CFLite|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="..\Interfaces\IWebNotificationCenter.idl"
+ >
+ <FileConfiguration
+ Name="Debug|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Production|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug_All|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release_Cairo_CFLite|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug_Cairo_CFLite|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="..\Interfaces\IWebNotificationObserver.idl"
+ >
+ <FileConfiguration
+ Name="Debug|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Production|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug_All|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release_Cairo_CFLite|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug_Cairo_CFLite|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="..\Interfaces\IWebPolicyDelegate.idl"
+ >
+ <FileConfiguration
+ Name="Debug|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Production|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug_All|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release_Cairo_CFLite|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug_Cairo_CFLite|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="..\Interfaces\IWebPolicyDelegatePrivate.idl"
+ >
+ <FileConfiguration
+ Name="Debug|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Production|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug_All|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release_Cairo_CFLite|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug_Cairo_CFLite|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="..\Interfaces\IWebPreferences.idl"
+ >
+ <FileConfiguration
+ Name="Debug|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Production|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug_All|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release_Cairo_CFLite|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug_Cairo_CFLite|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="..\Interfaces\IWebPreferencesPrivate.idl"
+ >
+ <FileConfiguration
+ Name="Debug|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Production|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug_All|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release_Cairo_CFLite|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug_Cairo_CFLite|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="..\Interfaces\IWebResource.idl"
+ >
+ <FileConfiguration
+ Name="Debug|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Production|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug_All|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release_Cairo_CFLite|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug_Cairo_CFLite|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="..\Interfaces\IWebResourceLoadDelegate.idl"
+ >
+ <FileConfiguration
+ Name="Debug|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Production|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug_All|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release_Cairo_CFLite|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug_Cairo_CFLite|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="..\Interfaces\IWebResourceLoadDelegatePrivate.idl"
+ >
+ <FileConfiguration
+ Name="Debug|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Production|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug_All|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release_Cairo_CFLite|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug_Cairo_CFLite|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="..\Interfaces\IWebScriptObject.idl"
+ >
+ <FileConfiguration
+ Name="Debug|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Production|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug_All|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release_Cairo_CFLite|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug_Cairo_CFLite|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="..\Interfaces\IWebScriptWorld.idl"
+ >
+ <FileConfiguration
+ Name="Debug|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Production|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug_All|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release_Cairo_CFLite|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug_Cairo_CFLite|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="..\Interfaces\IWebScrollBarDelegatePrivate.idl"
+ >
+ <FileConfiguration
+ Name="Debug|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Production|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug_All|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release_Cairo_CFLite|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug_Cairo_CFLite|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="..\Interfaces\IWebScrollBarPrivate.idl"
+ >
+ <FileConfiguration
+ Name="Debug|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Production|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug_All|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release_Cairo_CFLite|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug_Cairo_CFLite|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="..\Interfaces\IWebSecurityOrigin.idl"
+ >
+ <FileConfiguration
+ Name="Debug|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Production|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug_All|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release_Cairo_CFLite|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug_Cairo_CFLite|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="..\Interfaces\IWebSerializedJSValue.idl"
+ >
+ <FileConfiguration
+ Name="Debug|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Production|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug_All|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release_Cairo_CFLite|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug_Cairo_CFLite|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="..\Interfaces\IWebSerializedJSValuePrivate.idl"
+ >
+ <FileConfiguration
+ Name="Debug|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Production|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug_All|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release_Cairo_CFLite|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug_Cairo_CFLite|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="..\Interfaces\IWebTextRenderer.idl"
+ >
+ <FileConfiguration
+ Name="Debug|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Production|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug_All|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release_Cairo_CFLite|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug_Cairo_CFLite|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="..\Interfaces\IWebUIDelegate.idl"
+ >
+ <FileConfiguration
+ Name="Debug|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Production|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug_All|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release_Cairo_CFLite|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug_Cairo_CFLite|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="..\Interfaces\IWebUIDelegatePrivate.idl"
+ >
+ <FileConfiguration
+ Name="Debug|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Production|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug_All|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release_Cairo_CFLite|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug_Cairo_CFLite|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="..\Interfaces\IWebUndoManager.idl"
+ >
+ <FileConfiguration
+ Name="Debug|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Production|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug_All|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release_Cairo_CFLite|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug_Cairo_CFLite|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="..\Interfaces\IWebUndoTarget.idl"
+ >
+ <FileConfiguration
+ Name="Debug|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Production|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug_All|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release_Cairo_CFLite|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug_Cairo_CFLite|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="..\Interfaces\IWebURLAuthenticationChallenge.idl"
+ >
+ <FileConfiguration
+ Name="Debug|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Production|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug_All|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release_Cairo_CFLite|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug_Cairo_CFLite|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="..\Interfaces\IWebURLRequest.idl"
+ >
+ <FileConfiguration
+ Name="Debug|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Production|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug_All|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release_Cairo_CFLite|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug_Cairo_CFLite|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="..\Interfaces\IWebURLResponse.idl"
+ >
+ <FileConfiguration
+ Name="Debug|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Production|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug_All|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release_Cairo_CFLite|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug_Cairo_CFLite|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="..\Interfaces\IWebURLResponsePrivate.idl"
+ >
+ <FileConfiguration
+ Name="Debug|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Production|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug_All|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release_Cairo_CFLite|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug_Cairo_CFLite|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="..\Interfaces\IWebUserContentURLPattern.idl"
+ >
+ <FileConfiguration
+ Name="Debug|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Production|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug_All|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release_Cairo_CFLite|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug_Cairo_CFLite|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="..\Interfaces\IWebView.idl"
+ >
+ <FileConfiguration
+ Name="Debug|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Production|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug_All|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release_Cairo_CFLite|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug_Cairo_CFLite|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="..\Interfaces\IWebViewPrivate.idl"
+ >
+ <FileConfiguration
+ Name="Debug|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Production|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug_All|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release_Cairo_CFLite|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug_Cairo_CFLite|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="..\Interfaces\IWebWorkersPrivate.idl"
+ >
+ <FileConfiguration
+ Name="Debug|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Production|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug_All|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release_Cairo_CFLite|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug_Cairo_CFLite|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="..\Interfaces\JavaScriptCoreAPITypes.idl"
+ >
+ <FileConfiguration
+ Name="Debug|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Production|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug_All|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release_Cairo_CFLite|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug_Cairo_CFLite|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="..\Interfaces\WebKit.idl"
+ >
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ GenerateTypeLibrary="true"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ GenerateTypeLibrary="true"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Production|Win32"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ GenerateTypeLibrary="true"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug_All|Win32"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ GenerateTypeLibrary="true"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release_Cairo_CFLite|Win32"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ GenerateTypeLibrary="true"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug_Cairo_CFLite|Win32"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ GenerateTypeLibrary="true"
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="..\Interfaces\WebScrollbarTypes.idl"
+ >
+ <FileConfiguration
+ Name="Debug|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Production|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug_All|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release_Cairo_CFLite|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug_Cairo_CFLite|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ />
+ </FileConfiguration>
+ </File>
+ </Files>
+ <Globals>
+ </Globals>
+</VisualStudioProject>
diff --git a/Source/WebKit/win/WebKit.vcproj/InterfacesCommon.vsprops b/Source/WebKit/win/WebKit.vcproj/InterfacesCommon.vsprops index 73d55b591..ef6f33c1b 100644 --- a/Source/WebKit/win/WebKit.vcproj/InterfacesCommon.vsprops +++ b/Source/WebKit/win/WebKit.vcproj/InterfacesCommon.vsprops @@ -1,14 +1,14 @@ -<?xml version="1.0" encoding="Windows-1252"?> -<VisualStudioPropertySheet - ProjectType="Visual C++" - Version="8.00" - Name="InterfacesCommon" - OutputDirectory="$(ConfigurationBuildDir)\include\WebKit" - > - <Tool - Name="VCMIDLTool" - AdditionalIncludeDirectories=""$(ConfigurationBuildDir)\obj\WebKit\DerivedSources";..\Interfaces;"$(IntDir)\include"" - TypeLibraryName="$(ConfigurationBuildDir)\lib\WebKit.tlb" - OutputDirectory="$(ConfigurationBuildDir)\obj\WebKit\$(ProjectName)" - /> -</VisualStudioPropertySheet> +<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioPropertySheet
+ ProjectType="Visual C++"
+ Version="8.00"
+ Name="InterfacesCommon"
+ OutputDirectory="$(ConfigurationBuildDir)\include\WebKit"
+ >
+ <Tool
+ Name="VCMIDLTool"
+ AdditionalIncludeDirectories=""$(ConfigurationBuildDir)\obj\WebKit\DerivedSources";..\Interfaces;"$(IntDir)\include""
+ TypeLibraryName="$(ConfigurationBuildDir)\lib\WebKit.tlb"
+ OutputDirectory="$(ConfigurationBuildDir)\obj\WebKit\$(ProjectName)"
+ />
+</VisualStudioPropertySheet>
diff --git a/Source/WebKit/win/WebKit.vcproj/InterfacesDebug.vsprops b/Source/WebKit/win/WebKit.vcproj/InterfacesDebug.vsprops index 13b916143..fd7c92b22 100644 --- a/Source/WebKit/win/WebKit.vcproj/InterfacesDebug.vsprops +++ b/Source/WebKit/win/WebKit.vcproj/InterfacesDebug.vsprops @@ -1,8 +1,8 @@ -<?xml version="1.0" encoding="Windows-1252"?> -<VisualStudioPropertySheet - ProjectType="Visual C++" - Version="8.00" - Name="InterfacesDebug" - InheritedPropertySheets="$(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\FeatureDefines.vsprops;$(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\common.vsprops;$(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\debug.vsprops;.\InterfacesCommon.vsprops" - > -</VisualStudioPropertySheet> +<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioPropertySheet
+ ProjectType="Visual C++"
+ Version="8.00"
+ Name="InterfacesDebug"
+ InheritedPropertySheets="$(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\FeatureDefines.vsprops;$(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\common.vsprops;$(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\debug.vsprops;.\InterfacesCommon.vsprops"
+ >
+</VisualStudioPropertySheet>
diff --git a/Source/WebKit/win/WebKit.vcproj/InterfacesDebugAll.vsprops b/Source/WebKit/win/WebKit.vcproj/InterfacesDebugAll.vsprops index 5d6cc243f..319b418f0 100644 --- a/Source/WebKit/win/WebKit.vcproj/InterfacesDebugAll.vsprops +++ b/Source/WebKit/win/WebKit.vcproj/InterfacesDebugAll.vsprops @@ -1,8 +1,8 @@ -<?xml version="1.0" encoding="Windows-1252"?> -<VisualStudioPropertySheet - ProjectType="Visual C++" - Version="8.00" - Name="InterfacesDebugAll" - InheritedPropertySheets="$(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\FeatureDefines.vsprops;$(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\common.vsprops;$(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\debug.vsprops;.\InterfacesCommon.vsprops" - > -</VisualStudioPropertySheet> +<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioPropertySheet
+ ProjectType="Visual C++"
+ Version="8.00"
+ Name="InterfacesDebugAll"
+ InheritedPropertySheets="$(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\FeatureDefines.vsprops;$(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\common.vsprops;$(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\debug.vsprops;.\InterfacesCommon.vsprops"
+ >
+</VisualStudioPropertySheet>
diff --git a/Source/WebKit/win/WebKit.vcproj/InterfacesDebugCairoCFLite.vsprops b/Source/WebKit/win/WebKit.vcproj/InterfacesDebugCairoCFLite.vsprops index fb7f65e0b..c8bcefc27 100644 --- a/Source/WebKit/win/WebKit.vcproj/InterfacesDebugCairoCFLite.vsprops +++ b/Source/WebKit/win/WebKit.vcproj/InterfacesDebugCairoCFLite.vsprops @@ -1,8 +1,8 @@ -<?xml version="1.0" encoding="Windows-1252"?> -<VisualStudioPropertySheet - ProjectType="Visual C++" - Version="8.00" - Name="InterfacesDebugCairoCFLite" - InheritedPropertySheets="$(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\FeatureDefinesCairo.vsprops;$(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\common.vsprops;$(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\debug.vsprops;$(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\debug_wincairo.vsprops;.\InterfacesCommon.vsprops" - > -</VisualStudioPropertySheet> +<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioPropertySheet
+ ProjectType="Visual C++"
+ Version="8.00"
+ Name="InterfacesDebugCairoCFLite"
+ InheritedPropertySheets="$(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\FeatureDefinesCairo.vsprops;$(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\common.vsprops;$(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\debug.vsprops;$(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\debug_wincairo.vsprops;.\InterfacesCommon.vsprops"
+ >
+</VisualStudioPropertySheet>
diff --git a/Source/WebKit/win/WebKit.vcproj/InterfacesProduction.vsprops b/Source/WebKit/win/WebKit.vcproj/InterfacesProduction.vsprops index e9bafc78a..d60623d5d 100644 --- a/Source/WebKit/win/WebKit.vcproj/InterfacesProduction.vsprops +++ b/Source/WebKit/win/WebKit.vcproj/InterfacesProduction.vsprops @@ -1,8 +1,8 @@ -<?xml version="1.0" encoding="Windows-1252"?> -<VisualStudioPropertySheet - ProjectType="Visual C++" - Version="8.00" - Name="InterfacesProduction" - InheritedPropertySheets="$(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\FeatureDefines.vsprops;$(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\common.vsprops;$(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\releaseproduction.vsprops;$(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\production.vsprops;.\InterfacesCommon.vsprops" - > -</VisualStudioPropertySheet> +<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioPropertySheet
+ ProjectType="Visual C++"
+ Version="8.00"
+ Name="InterfacesProduction"
+ InheritedPropertySheets="$(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\FeatureDefines.vsprops;$(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\common.vsprops;$(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\releaseproduction.vsprops;$(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\production.vsprops;.\InterfacesCommon.vsprops"
+ >
+</VisualStudioPropertySheet>
diff --git a/Source/WebKit/win/WebKit.vcproj/InterfacesRelease.vsprops b/Source/WebKit/win/WebKit.vcproj/InterfacesRelease.vsprops index 94209fa7e..610e0a53f 100644 --- a/Source/WebKit/win/WebKit.vcproj/InterfacesRelease.vsprops +++ b/Source/WebKit/win/WebKit.vcproj/InterfacesRelease.vsprops @@ -1,8 +1,8 @@ -<?xml version="1.0" encoding="Windows-1252"?> -<VisualStudioPropertySheet - ProjectType="Visual C++" - Version="8.00" - Name="InterfacesRelease" - InheritedPropertySheets="$(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\FeatureDefines.vsprops;$(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\common.vsprops;$(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\releaseproduction.vsprops;$(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\release.vsprops;.\InterfacesCommon.vsprops" - > -</VisualStudioPropertySheet> +<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioPropertySheet
+ ProjectType="Visual C++"
+ Version="8.00"
+ Name="InterfacesRelease"
+ InheritedPropertySheets="$(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\FeatureDefines.vsprops;$(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\common.vsprops;$(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\releaseproduction.vsprops;$(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\release.vsprops;.\InterfacesCommon.vsprops"
+ >
+</VisualStudioPropertySheet>
diff --git a/Source/WebKit/win/WebKit.vcproj/InterfacesReleaseCairoCFLite.vsprops b/Source/WebKit/win/WebKit.vcproj/InterfacesReleaseCairoCFLite.vsprops index 06b729ace..bbdcaa362 100644 --- a/Source/WebKit/win/WebKit.vcproj/InterfacesReleaseCairoCFLite.vsprops +++ b/Source/WebKit/win/WebKit.vcproj/InterfacesReleaseCairoCFLite.vsprops @@ -1,8 +1,8 @@ -<?xml version="1.0" encoding="Windows-1252"?> -<VisualStudioPropertySheet - ProjectType="Visual C++" - Version="8.00" - Name="InterfacesReleaseCairoCFLite" - InheritedPropertySheets="$(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\FeatureDefinesCairo.vsprops;$(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\common.vsprops;$(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\releaseproduction.vsprops;$(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\release.vsprops;$(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\WinCairo.vsprops;.\InterfacesCommon.vsprops" - > -</VisualStudioPropertySheet> +<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioPropertySheet
+ ProjectType="Visual C++"
+ Version="8.00"
+ Name="InterfacesReleaseCairoCFLite"
+ InheritedPropertySheets="$(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\FeatureDefinesCairo.vsprops;$(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\common.vsprops;$(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\releaseproduction.vsprops;$(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\release.vsprops;$(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\WinCairo.vsprops;.\InterfacesCommon.vsprops"
+ >
+</VisualStudioPropertySheet>
diff --git a/Source/WebKit/win/WebKit.vcproj/WebKit.sln b/Source/WebKit/win/WebKit.vcproj/WebKit.sln index d9ff7968f..ab47a727f 100644 --- a/Source/WebKit/win/WebKit.vcproj/WebKit.sln +++ b/Source/WebKit/win/WebKit.vcproj/WebKit.sln @@ -1,675 +1,675 @@ - -Microsoft Visual Studio Solution File, Format Version 9.00 -# Visual Studio 2005 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "JavaScriptCore", "..\..\..\JavaScriptCore\JavaScriptCore.vcproj\JavaScriptCore\JavaScriptCore.vcproj", "{011D10F1-B656-4A1B-A0C3-3842F02122C5}" - ProjectSection(ProjectDependencies) = postProject - {4FF5BA11-59EC-4C24-8F52-F235C2E7D43A} = {4FF5BA11-59EC-4C24-8F52-F235C2E7D43A} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "WebCore", "..\..\..\WebCore\WebCore.vcproj\WebCore.vcproj", "{1C16337B-ACF3-4D03-AA90-851C5B5EADA6}" - ProjectSection(ProjectDependencies) = postProject - {E498CA9D-3BD2-4D52-8E37-C8DC76526325} = {E498CA9D-3BD2-4D52-8E37-C8DC76526325} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "WTF", "..\..\..\WTF\WTF.vcproj\WTF.vcproj", "{AA8A5A85-592B-4357-BC60-E0E91E026AF6}" - ProjectSection(ProjectDependencies) = postProject - {5AE5F5E4-782D-4F63-B4D7-3977B52B9950} = {5AE5F5E4-782D-4F63-B4D7-3977B52B9950} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "jsc", "..\..\..\JavaScriptCore\JavaScriptCore.vcproj\jsc\jsc.vcproj", "{C59E5129-B453-49B7-A52B-1E104715F76E}" - ProjectSection(ProjectDependencies) = postProject - {1AFD081F-1AC7-4A97-8EFA-6DF97761A3A2} = {1AFD081F-1AC7-4A97-8EFA-6DF97761A3A2} - EndProjectSection -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "JavaScriptCore Folder", "JavaScriptCore Folder", "{557FA164-0E39-4DEC-B66C-8795C8E52399}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "JavaScriptCoreGenerated", "..\..\..\JavaScriptCore\JavaScriptCore.vcproj\JavaScriptCore\JavaScriptCoreGenerated.vcproj", "{4FF5BA11-59EC-4C24-8F52-F235C2E7D43A}" - ProjectSection(ProjectDependencies) = postProject - {AA8A5A85-592B-4357-BC60-E0E91E026AF6} = {AA8A5A85-592B-4357-BC60-E0E91E026AF6} - EndProjectSection -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "WebCore Folder", "WebCore Folder", "{63FB6F8A-C601-43E3-BD16-A00A465C2CB6}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "WebCoreGenerated", "..\..\..\WebCore\WebCore.vcproj\WebCoreGenerated.vcproj", "{0A324352-B3B6-496C-9E5B-4C7E923E628B}" - ProjectSection(ProjectDependencies) = postProject - {011D10F1-B656-4A1B-A0C3-3842F02122C5} = {011D10F1-B656-4A1B-A0C3-3842F02122C5} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "QTMovieWin", "..\..\..\WebCore\WebCore.vcproj\QTMovieWin.vcproj", "{E498CA9D-3BD2-4D52-8E37-C8DC76526325}" - ProjectSection(ProjectDependencies) = postProject - {0A324352-B3B6-496C-9E5B-4C7E923E628B} = {0A324352-B3B6-496C-9E5B-4C7E923E628B} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "testapi", "..\..\..\JavaScriptCore\JavaScriptCore.vcproj\testapi\testapi.vcproj", "{1AFD081F-1AC7-4A97-8EFA-6DF97761A3A2}" - ProjectSection(ProjectDependencies) = postProject - {AAE88FEF-509E-4D49-870B-7357922C276F} = {AAE88FEF-509E-4D49-870B-7357922C276F} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "WebKit", "..\..\..\WebKit2\win\WebKit2.vcproj", "{2E51ABE8-76CB-485B-A66C-46AEF4DF8ACD}" - ProjectSection(ProjectDependencies) = postProject - {2EDAD637-CBA8-4E55-97ED-7D2BBC336FDB} = {2EDAD637-CBA8-4E55-97ED-7D2BBC336FDB} - EndProjectSection -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "WebKit2 Folder", "WebKit2 Folder", "{9AB9C96C-9039-4FA9-8F83-BBFC8F8B2182}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "WebKit2Generated", "..\..\..\WebKit2\win\WebKit2Generated.vcproj", "{2EDAD637-CBA8-4E55-97ED-7D2BBC336FDB}" - ProjectSection(ProjectDependencies) = postProject - {0662A8A9-82A3-4638-97D8-EC425D8D87C9} = {0662A8A9-82A3-4638-97D8-EC425D8D87C9} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "WebKit2WebProcess", "..\..\..\WebKit2\win\WebKit2WebProcess.vcproj", "{AAE88FEF-509E-4D49-870B-7357922C276F}" - ProjectSection(ProjectDependencies) = postProject - {2E51ABE8-76CB-485B-A66C-46AEF4DF8ACD} = {2E51ABE8-76CB-485B-A66C-46AEF4DF8ACD} - EndProjectSection -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "WebKitCOM Folder", "WebKitCOM Folder", "{1D359ACC-BE10-45D7-938B-BC7E4B7AA6CA}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Interfaces", "Interfaces.vcproj", "{91762BE2-87EF-4F5A-A480-48B90EB3F406}" - ProjectSection(ProjectDependencies) = postProject - {1C16337B-ACF3-4D03-AA90-851C5B5EADA6} = {1C16337B-ACF3-4D03-AA90-851C5B5EADA6} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "WebKitLib", "WebKit.vcproj", "{0662A8A9-82A3-4638-97D8-EC425D8D87C9}" - ProjectSection(ProjectDependencies) = postProject - {B8437A41-67BC-4769-9452-45203827F821} = {B8437A41-67BC-4769-9452-45203827F821} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "WebKitGUID", "WebKitGUID.vcproj", "{B8437A41-67BC-4769-9452-45203827F821}" - ProjectSection(ProjectDependencies) = postProject - {91762BE2-87EF-4F5A-A480-48B90EB3F406} = {91762BE2-87EF-4F5A-A480-48B90EB3F406} - EndProjectSection -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Tools", "Tools", "{62DCDFE4-EAD2-48E1-A2BD-BD54AD3C7459}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "DumpRenderTree", "..\..\..\..\Tools\DumpRenderTree\win\DumpRenderTree.vcproj", "{6567DFD4-D6DE-4CD5-825D-17E353D160E1}" - ProjectSection(ProjectDependencies) = postProject - {83414B15-1C0D-490B-990E-03F4D49170E4} = {83414B15-1C0D-490B-990E-03F4D49170E4} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ImageDiff", "..\..\..\..\Tools\DumpRenderTree\win\ImageDiff.vcproj", "{59CC0547-70AC-499C-9B19-EC01C6F61137}" - ProjectSection(ProjectDependencies) = postProject - {C0737398-3565-439E-A2B8-AB2BE4D5430C} = {C0737398-3565-439E-A2B8-AB2BE4D5430C} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "record-memory-win", "..\..\..\..\Tools\record-memory-win\record-memory-win.vcproj", "{44B9C152-1870-4035-B94D-7B3285AA0C12}" - ProjectSection(ProjectDependencies) = postProject - {D09806DB-E58B-4646-8C9B-61101906C1E2} = {D09806DB-E58B-4646-8C9B-61101906C1E2} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TestNetscapePlugin", "..\..\..\..\Tools\DumpRenderTree\TestNetscapePlugIn\win\TestNetscapePlugin.vcproj", "{C0737398-3565-439E-A2B8-AB2BE4D5430C}" - ProjectSection(ProjectDependencies) = postProject - {767B10FB-76C1-44D0-8005-85ED7F9AA5E4} = {767B10FB-76C1-44D0-8005-85ED7F9AA5E4} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "WebKitLauncherWin", "..\..\..\..\Tools\WebKitLauncherWin\WebKitLauncherWin.vcproj", "{D09806DB-E58B-4646-8C9B-61101906C1E2}" - ProjectSection(ProjectDependencies) = postProject - {2974EA02-840B-4995-8719-8920A61006F1} = {2974EA02-840B-4995-8719-8920A61006F1} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "WinLauncher", "..\..\..\..\Tools\WinLauncher\WinLauncher.vcproj", "{114FCA11-216B-4C8C-957E-30A75AE80443}" - ProjectSection(ProjectDependencies) = postProject - {14C94979-1ED3-4E1D-9B55-A80FCF4677D0} = {14C94979-1ED3-4E1D-9B55-A80FCF4677D0} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "InjectedBundle", "..\..\..\..\Tools\WebKitTestRunner\win\InjectedBundle.vcproj", "{CBC3391C-F060-4BF5-A66E-81404168816B}" - ProjectSection(ProjectDependencies) = postProject - {4343BC0B-A2E0-4B48-8277-F33CFBFA83CD} = {4343BC0B-A2E0-4B48-8277-F33CFBFA83CD} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "InjectedBundleGenerated", "..\..\..\..\Tools\WebKitTestRunner\win\InjectedBundleGenerated.vcproj", "{4343BC0B-A2E0-4B48-8277-F33CFBFA83CD}" - ProjectSection(ProjectDependencies) = postProject - {44B9C152-1870-4035-B94D-7B3285AA0C12} = {44B9C152-1870-4035-B94D-7B3285AA0C12} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "WebKitTestRunner", "..\..\..\..\Tools\WebKitTestRunner\win\WebKitTestRunner.vcproj", "{3B99669B-1817-443B-BCBE-835580146668}" - ProjectSection(ProjectDependencies) = postProject - {CBC3391C-F060-4BF5-A66E-81404168816B} = {CBC3391C-F060-4BF5-A66E-81404168816B} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "MiniBrowser", "..\..\..\..\Tools\MiniBrowser\MiniBrowser.vcproj", "{1480CF5F-4160-47B5-A0E6-96AEC8258FB5}" - ProjectSection(ProjectDependencies) = postProject - {B0101604-B483-4F8C-9C51-90B46A2B1CD3} = {B0101604-B483-4F8C-9C51-90B46A2B1CD3} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TestWebKitAPI", "..\..\..\..\Tools\TestWebKitAPI\win\TestWebKitAPI.vcproj", "{3E48AB23-D249-488F-A1C4-43CDF52FBD28}" - ProjectSection(ProjectDependencies) = postProject - {45C45411-7F0E-404D-919A-4EE9BB60BE86} = {45C45411-7F0E-404D-919A-4EE9BB60BE86} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TestWebKitAPIGenerated", "..\..\..\..\Tools\TestWebKitAPI\win\TestWebKitAPIGenerated.vcproj", "{45C45411-7F0E-404D-919A-4EE9BB60BE86}" - ProjectSection(ProjectDependencies) = postProject - {C8F6C172-56F2-4E76-B5FA-C3B423B31BE8} = {C8F6C172-56F2-4E76-B5FA-C3B423B31BE8} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TestWebKitAPIInjectedBundle", "..\..\..\..\Tools\TestWebKitAPI\win\TestWebKitAPIInjectedBundle.vcproj", "{B0101604-B483-4F8C-9C51-90B46A2B1CD3}" - ProjectSection(ProjectDependencies) = postProject - {3E48AB23-D249-488F-A1C4-43CDF52FBD28} = {3E48AB23-D249-488F-A1C4-43CDF52FBD28} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "gtest-md", "..\..\..\ThirdParty\gtest\msvc\gtest-md.vcproj", "{C8F6C172-56F2-4E76-B5FA-C3B423B31BE8}" - ProjectSection(ProjectDependencies) = postProject - {C13FA6EF-B531-4BAD-9A23-18E2BEB8B040} = {C13FA6EF-B531-4BAD-9A23-18E2BEB8B040} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "WebCoreTestSupport", "..\..\..\WebCore\WebCore.vcproj\WebCoreTestSupport.vcproj", "{83414B15-1C0D-490B-990E-03F4D49170E4}" - ProjectSection(ProjectDependencies) = postProject - {DD7949B6-F2B4-47C2-9C42-E21E84CB1017} = {DD7949B6-F2B4-47C2-9C42-E21E84CB1017} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "testRegExp", "..\..\..\JavaScriptCore\JavaScriptCore.vcproj\testRegExp\testRegExp.vcproj", "{14C94979-1ED3-4E1D-9B55-A80FCF4677D0}" - ProjectSection(ProjectDependencies) = postProject - {C59E5129-B453-49B7-A52B-1E104715F76E} = {C59E5129-B453-49B7-A52B-1E104715F76E} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "WinLauncherLauncher", "..\..\..\..\Tools\WinLauncher\WinLauncherLauncher.vcproj", "{767B10FB-76C1-44D0-8005-85ED7F9AA5E4}" - ProjectSection(ProjectDependencies) = postProject - {114FCA11-216B-4C8C-957E-30A75AE80443} = {114FCA11-216B-4C8C-957E-30A75AE80443} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "MiniBrowserLauncher", "..\..\..\..\Tools\MiniBrowser\MiniBrowserLauncher.vcproj", "{7AF4EBFB-CCBC-448F-A36A-8210E08D6A7D}" - ProjectSection(ProjectDependencies) = postProject - {1480CF5F-4160-47B5-A0E6-96AEC8258FB5} = {1480CF5F-4160-47B5-A0E6-96AEC8258FB5} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ImageDiffLauncher", "..\..\..\..\Tools\DumpRenderTree\win\ImageDiffLauncher.vcproj", "{DD7949B6-F2B4-47C2-9C42-E21E84CB1017}" - ProjectSection(ProjectDependencies) = postProject - {59CC0547-70AC-499C-9B19-EC01C6F61137} = {59CC0547-70AC-499C-9B19-EC01C6F61137} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "DumpRenderTreeLauncher", "..\..\..\..\Tools\DumpRenderTree\win\DumpRenderTreeLauncher.vcproj", "{2974EA02-840B-4995-8719-8920A61006F1}" - ProjectSection(ProjectDependencies) = postProject - {6567DFD4-D6DE-4CD5-825D-17E353D160E1} = {6567DFD4-D6DE-4CD5-825D-17E353D160E1} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "WebKitTestRunnerLauncher", "..\..\..\..\Tools\WebKitTestRunner\win\WebKitTestRunnerLauncher.vcproj", "{C13FA6EF-B531-4BAD-9A23-18E2BEB8B040}" - ProjectSection(ProjectDependencies) = postProject - {3B99669B-1817-443B-BCBE-835580146668} = {3B99669B-1817-443B-BCBE-835580146668} - EndProjectSection -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "WTF", "WTF", "{A671AE22-FBCE-4C41-A723-82939FCA3E92}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "WTFGenerated", "..\..\..\WTF\WTF.vcproj\WTFGenerated.vcproj", "{5AE5F5E4-782D-4F63-B4D7-3977B52B9950}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug_All|Win32 = Debug_All|Win32 - Debug_Cairo_CFLite|Win32 = Debug_Cairo_CFLite|Win32 - Debug|Win32 = Debug|Win32 - Production|Win32 = Production|Win32 - Release_Cairo_CFLite|Win32 = Release_Cairo_CFLite|Win32 - Release|Win32 = Release|Win32 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {011D10F1-B656-4A1B-A0C3-3842F02122C5}.Debug_All|Win32.ActiveCfg = Debug_All|Win32 - {011D10F1-B656-4A1B-A0C3-3842F02122C5}.Debug_All|Win32.Build.0 = Debug_All|Win32 - {011D10F1-B656-4A1B-A0C3-3842F02122C5}.Debug_Cairo_CFLite|Win32.ActiveCfg = Debug_Cairo_CFLite|Win32 - {011D10F1-B656-4A1B-A0C3-3842F02122C5}.Debug_Cairo_CFLite|Win32.Build.0 = Debug_Cairo_CFLite|Win32 - {011D10F1-B656-4A1B-A0C3-3842F02122C5}.Debug|Win32.ActiveCfg = Debug|Win32 - {011D10F1-B656-4A1B-A0C3-3842F02122C5}.Debug|Win32.Build.0 = Debug|Win32 - {011D10F1-B656-4A1B-A0C3-3842F02122C5}.Production|Win32.ActiveCfg = Production|Win32 - {011D10F1-B656-4A1B-A0C3-3842F02122C5}.Production|Win32.Build.0 = Production|Win32 - {011D10F1-B656-4A1B-A0C3-3842F02122C5}.Release_Cairo_CFLite|Win32.ActiveCfg = Release_Cairo_CFLite|Win32 - {011D10F1-B656-4A1B-A0C3-3842F02122C5}.Release_Cairo_CFLite|Win32.Build.0 = Release_Cairo_CFLite|Win32 - {011D10F1-B656-4A1B-A0C3-3842F02122C5}.Release|Win32.ActiveCfg = Release|Win32 - {011D10F1-B656-4A1B-A0C3-3842F02122C5}.Release|Win32.Build.0 = Release|Win32 - {1C16337B-ACF3-4D03-AA90-851C5B5EADA6}.Debug_All|Win32.ActiveCfg = Debug_All|Win32 - {1C16337B-ACF3-4D03-AA90-851C5B5EADA6}.Debug_All|Win32.Build.0 = Debug_All|Win32 - {1C16337B-ACF3-4D03-AA90-851C5B5EADA6}.Debug_Cairo_CFLite|Win32.ActiveCfg = Debug_Cairo_CFLite|Win32 - {1C16337B-ACF3-4D03-AA90-851C5B5EADA6}.Debug_Cairo_CFLite|Win32.Build.0 = Debug_Cairo_CFLite|Win32 - {1C16337B-ACF3-4D03-AA90-851C5B5EADA6}.Debug|Win32.ActiveCfg = Debug|Win32 - {1C16337B-ACF3-4D03-AA90-851C5B5EADA6}.Debug|Win32.Build.0 = Debug|Win32 - {1C16337B-ACF3-4D03-AA90-851C5B5EADA6}.Production|Win32.ActiveCfg = Production|Win32 - {1C16337B-ACF3-4D03-AA90-851C5B5EADA6}.Production|Win32.Build.0 = Production|Win32 - {1C16337B-ACF3-4D03-AA90-851C5B5EADA6}.Release_Cairo_CFLite|Win32.ActiveCfg = Release_Cairo_CFLite|Win32 - {1C16337B-ACF3-4D03-AA90-851C5B5EADA6}.Release_Cairo_CFLite|Win32.Build.0 = Release_Cairo_CFLite|Win32 - {1C16337B-ACF3-4D03-AA90-851C5B5EADA6}.Release|Win32.ActiveCfg = Release|Win32 - {1C16337B-ACF3-4D03-AA90-851C5B5EADA6}.Release|Win32.Build.0 = Release|Win32 - {AA8A5A85-592B-4357-BC60-E0E91E026AF6}.Debug_All|Win32.ActiveCfg = Debug_All|Win32 - {AA8A5A85-592B-4357-BC60-E0E91E026AF6}.Debug_All|Win32.Build.0 = Debug_All|Win32 - {AA8A5A85-592B-4357-BC60-E0E91E026AF6}.Debug_Cairo_CFLite|Win32.ActiveCfg = Debug_Cairo_CFLite|Win32 - {AA8A5A85-592B-4357-BC60-E0E91E026AF6}.Debug_Cairo_CFLite|Win32.Build.0 = Debug_Cairo_CFLite|Win32 - {AA8A5A85-592B-4357-BC60-E0E91E026AF6}.Debug|Win32.ActiveCfg = Debug|Win32 - {AA8A5A85-592B-4357-BC60-E0E91E026AF6}.Debug|Win32.Build.0 = Debug|Win32 - {AA8A5A85-592B-4357-BC60-E0E91E026AF6}.Production|Win32.ActiveCfg = Production|Win32 - {AA8A5A85-592B-4357-BC60-E0E91E026AF6}.Production|Win32.Build.0 = Production|Win32 - {AA8A5A85-592B-4357-BC60-E0E91E026AF6}.Release_Cairo_CFLite|Win32.ActiveCfg = Release_Cairo_CFLite|Win32 - {AA8A5A85-592B-4357-BC60-E0E91E026AF6}.Release_Cairo_CFLite|Win32.Build.0 = Release_Cairo_CFLite|Win32 - {AA8A5A85-592B-4357-BC60-E0E91E026AF6}.Release|Win32.ActiveCfg = Release|Win32 - {AA8A5A85-592B-4357-BC60-E0E91E026AF6}.Release|Win32.Build.0 = Release|Win32 - {C59E5129-B453-49B7-A52B-1E104715F76E}.Debug_All|Win32.ActiveCfg = Debug_All|Win32 - {C59E5129-B453-49B7-A52B-1E104715F76E}.Debug_All|Win32.Build.0 = Debug_All|Win32 - {C59E5129-B453-49B7-A52B-1E104715F76E}.Debug_Cairo_CFLite|Win32.ActiveCfg = Debug_Cairo_CFLite|Win32 - {C59E5129-B453-49B7-A52B-1E104715F76E}.Debug_Cairo_CFLite|Win32.Build.0 = Debug_Cairo_CFLite|Win32 - {C59E5129-B453-49B7-A52B-1E104715F76E}.Debug|Win32.ActiveCfg = Debug|Win32 - {C59E5129-B453-49B7-A52B-1E104715F76E}.Debug|Win32.Build.0 = Debug|Win32 - {C59E5129-B453-49B7-A52B-1E104715F76E}.Production|Win32.ActiveCfg = Production|Win32 - {C59E5129-B453-49B7-A52B-1E104715F76E}.Production|Win32.Build.0 = Production|Win32 - {C59E5129-B453-49B7-A52B-1E104715F76E}.Release_Cairo_CFLite|Win32.ActiveCfg = Release_Cairo_CFLite|Win32 - {C59E5129-B453-49B7-A52B-1E104715F76E}.Release_Cairo_CFLite|Win32.Build.0 = Release_Cairo_CFLite|Win32 - {C59E5129-B453-49B7-A52B-1E104715F76E}.Release|Win32.ActiveCfg = Release|Win32 - {C59E5129-B453-49B7-A52B-1E104715F76E}.Release|Win32.Build.0 = Release|Win32 - {4FF5BA11-59EC-4C24-8F52-F235C2E7D43A}.Debug_All|Win32.ActiveCfg = Debug_All|Win32 - {4FF5BA11-59EC-4C24-8F52-F235C2E7D43A}.Debug_All|Win32.Build.0 = Debug_All|Win32 - {4FF5BA11-59EC-4C24-8F52-F235C2E7D43A}.Debug_Cairo_CFLite|Win32.ActiveCfg = Debug_Cairo_CFLite|Win32 - {4FF5BA11-59EC-4C24-8F52-F235C2E7D43A}.Debug_Cairo_CFLite|Win32.Build.0 = Debug_Cairo_CFLite|Win32 - {4FF5BA11-59EC-4C24-8F52-F235C2E7D43A}.Debug|Win32.ActiveCfg = Debug|Win32 - {4FF5BA11-59EC-4C24-8F52-F235C2E7D43A}.Debug|Win32.Build.0 = Debug|Win32 - {4FF5BA11-59EC-4C24-8F52-F235C2E7D43A}.Production|Win32.ActiveCfg = Production|Win32 - {4FF5BA11-59EC-4C24-8F52-F235C2E7D43A}.Production|Win32.Build.0 = Production|Win32 - {4FF5BA11-59EC-4C24-8F52-F235C2E7D43A}.Release_Cairo_CFLite|Win32.ActiveCfg = Release_Cairo_CFLite|Win32 - {4FF5BA11-59EC-4C24-8F52-F235C2E7D43A}.Release_Cairo_CFLite|Win32.Build.0 = Release_Cairo_CFLite|Win32 - {4FF5BA11-59EC-4C24-8F52-F235C2E7D43A}.Release|Win32.ActiveCfg = Release|Win32 - {4FF5BA11-59EC-4C24-8F52-F235C2E7D43A}.Release|Win32.Build.0 = Release|Win32 - {0A324352-B3B6-496C-9E5B-4C7E923E628B}.Debug_All|Win32.ActiveCfg = Debug_All|Win32 - {0A324352-B3B6-496C-9E5B-4C7E923E628B}.Debug_All|Win32.Build.0 = Debug_All|Win32 - {0A324352-B3B6-496C-9E5B-4C7E923E628B}.Debug_Cairo_CFLite|Win32.ActiveCfg = Debug_Cairo_CFLite|Win32 - {0A324352-B3B6-496C-9E5B-4C7E923E628B}.Debug_Cairo_CFLite|Win32.Build.0 = Debug_Cairo_CFLite|Win32 - {0A324352-B3B6-496C-9E5B-4C7E923E628B}.Debug|Win32.ActiveCfg = Debug|Win32 - {0A324352-B3B6-496C-9E5B-4C7E923E628B}.Debug|Win32.Build.0 = Debug|Win32 - {0A324352-B3B6-496C-9E5B-4C7E923E628B}.Production|Win32.ActiveCfg = Production|Win32 - {0A324352-B3B6-496C-9E5B-4C7E923E628B}.Production|Win32.Build.0 = Production|Win32 - {0A324352-B3B6-496C-9E5B-4C7E923E628B}.Release_Cairo_CFLite|Win32.ActiveCfg = Release_Cairo_CFLite|Win32 - {0A324352-B3B6-496C-9E5B-4C7E923E628B}.Release_Cairo_CFLite|Win32.Build.0 = Release_Cairo_CFLite|Win32 - {0A324352-B3B6-496C-9E5B-4C7E923E628B}.Release|Win32.ActiveCfg = Release|Win32 - {0A324352-B3B6-496C-9E5B-4C7E923E628B}.Release|Win32.Build.0 = Release|Win32 - {E498CA9D-3BD2-4D52-8E37-C8DC76526325}.Debug_All|Win32.ActiveCfg = Debug_All|Win32 - {E498CA9D-3BD2-4D52-8E37-C8DC76526325}.Debug_All|Win32.Build.0 = Debug_All|Win32 - {E498CA9D-3BD2-4D52-8E37-C8DC76526325}.Debug_Cairo_CFLite|Win32.ActiveCfg = Debug_Cairo_CFLite|Win32 - {E498CA9D-3BD2-4D52-8E37-C8DC76526325}.Debug|Win32.ActiveCfg = Debug|Win32 - {E498CA9D-3BD2-4D52-8E37-C8DC76526325}.Debug|Win32.Build.0 = Debug|Win32 - {E498CA9D-3BD2-4D52-8E37-C8DC76526325}.Production|Win32.ActiveCfg = Production|Win32 - {E498CA9D-3BD2-4D52-8E37-C8DC76526325}.Production|Win32.Build.0 = Production|Win32 - {E498CA9D-3BD2-4D52-8E37-C8DC76526325}.Release_Cairo_CFLite|Win32.ActiveCfg = Release_Cairo_CFLite|Win32 - {E498CA9D-3BD2-4D52-8E37-C8DC76526325}.Release|Win32.ActiveCfg = Release|Win32 - {E498CA9D-3BD2-4D52-8E37-C8DC76526325}.Release|Win32.Build.0 = Release|Win32 - {1AFD081F-1AC7-4A97-8EFA-6DF97761A3A2}.Debug_All|Win32.ActiveCfg = Debug_All|Win32 - {1AFD081F-1AC7-4A97-8EFA-6DF97761A3A2}.Debug_All|Win32.Build.0 = Debug_All|Win32 - {1AFD081F-1AC7-4A97-8EFA-6DF97761A3A2}.Debug_Cairo_CFLite|Win32.ActiveCfg = Debug_Cairo_CFLite|Win32 - {1AFD081F-1AC7-4A97-8EFA-6DF97761A3A2}.Debug_Cairo_CFLite|Win32.Build.0 = Debug_Cairo_CFLite|Win32 - {1AFD081F-1AC7-4A97-8EFA-6DF97761A3A2}.Debug|Win32.ActiveCfg = Debug|Win32 - {1AFD081F-1AC7-4A97-8EFA-6DF97761A3A2}.Debug|Win32.Build.0 = Debug|Win32 - {1AFD081F-1AC7-4A97-8EFA-6DF97761A3A2}.Production|Win32.ActiveCfg = Production|Win32 - {1AFD081F-1AC7-4A97-8EFA-6DF97761A3A2}.Production|Win32.Build.0 = Production|Win32 - {1AFD081F-1AC7-4A97-8EFA-6DF97761A3A2}.Release_Cairo_CFLite|Win32.ActiveCfg = Release_Cairo_CFLite|Win32 - {1AFD081F-1AC7-4A97-8EFA-6DF97761A3A2}.Release_Cairo_CFLite|Win32.Build.0 = Release_Cairo_CFLite|Win32 - {1AFD081F-1AC7-4A97-8EFA-6DF97761A3A2}.Release|Win32.ActiveCfg = Release|Win32 - {1AFD081F-1AC7-4A97-8EFA-6DF97761A3A2}.Release|Win32.Build.0 = Release|Win32 - {2E51ABE8-76CB-485B-A66C-46AEF4DF8ACD}.Debug_All|Win32.ActiveCfg = Debug_All|Win32 - {2E51ABE8-76CB-485B-A66C-46AEF4DF8ACD}.Debug_All|Win32.Build.0 = Debug_All|Win32 - {2E51ABE8-76CB-485B-A66C-46AEF4DF8ACD}.Debug_Cairo_CFLite|Win32.ActiveCfg = Debug_Cairo_CFLite|Win32 - {2E51ABE8-76CB-485B-A66C-46AEF4DF8ACD}.Debug_Cairo_CFLite|Win32.Build.0 = Debug_Cairo_CFLite|Win32 - {2E51ABE8-76CB-485B-A66C-46AEF4DF8ACD}.Debug|Win32.ActiveCfg = Debug|Win32 - {2E51ABE8-76CB-485B-A66C-46AEF4DF8ACD}.Debug|Win32.Build.0 = Debug|Win32 - {2E51ABE8-76CB-485B-A66C-46AEF4DF8ACD}.Production|Win32.ActiveCfg = Production|Win32 - {2E51ABE8-76CB-485B-A66C-46AEF4DF8ACD}.Production|Win32.Build.0 = Production|Win32 - {2E51ABE8-76CB-485B-A66C-46AEF4DF8ACD}.Release_Cairo_CFLite|Win32.ActiveCfg = Release_Cairo_CFLite|Win32 - {2E51ABE8-76CB-485B-A66C-46AEF4DF8ACD}.Release_Cairo_CFLite|Win32.Build.0 = Release_Cairo_CFLite|Win32 - {2E51ABE8-76CB-485B-A66C-46AEF4DF8ACD}.Release|Win32.ActiveCfg = Release|Win32 - {2E51ABE8-76CB-485B-A66C-46AEF4DF8ACD}.Release|Win32.Build.0 = Release|Win32 - {2EDAD637-CBA8-4E55-97ED-7D2BBC336FDB}.Debug_All|Win32.ActiveCfg = Debug_All|Win32 - {2EDAD637-CBA8-4E55-97ED-7D2BBC336FDB}.Debug_All|Win32.Build.0 = Debug_All|Win32 - {2EDAD637-CBA8-4E55-97ED-7D2BBC336FDB}.Debug_Cairo_CFLite|Win32.ActiveCfg = Debug_Cairo_CFLite|Win32 - {2EDAD637-CBA8-4E55-97ED-7D2BBC336FDB}.Debug_Cairo_CFLite|Win32.Build.0 = Debug_Cairo_CFLite|Win32 - {2EDAD637-CBA8-4E55-97ED-7D2BBC336FDB}.Debug|Win32.ActiveCfg = Debug|Win32 - {2EDAD637-CBA8-4E55-97ED-7D2BBC336FDB}.Debug|Win32.Build.0 = Debug|Win32 - {2EDAD637-CBA8-4E55-97ED-7D2BBC336FDB}.Production|Win32.ActiveCfg = Production|Win32 - {2EDAD637-CBA8-4E55-97ED-7D2BBC336FDB}.Production|Win32.Build.0 = Production|Win32 - {2EDAD637-CBA8-4E55-97ED-7D2BBC336FDB}.Release_Cairo_CFLite|Win32.ActiveCfg = Release_Cairo_CFLite|Win32 - {2EDAD637-CBA8-4E55-97ED-7D2BBC336FDB}.Release_Cairo_CFLite|Win32.Build.0 = Release_Cairo_CFLite|Win32 - {2EDAD637-CBA8-4E55-97ED-7D2BBC336FDB}.Release|Win32.ActiveCfg = Release|Win32 - {2EDAD637-CBA8-4E55-97ED-7D2BBC336FDB}.Release|Win32.Build.0 = Release|Win32 - {AAE88FEF-509E-4D49-870B-7357922C276F}.Debug_All|Win32.ActiveCfg = Debug_All|Win32 - {AAE88FEF-509E-4D49-870B-7357922C276F}.Debug_All|Win32.Build.0 = Debug_All|Win32 - {AAE88FEF-509E-4D49-870B-7357922C276F}.Debug_Cairo_CFLite|Win32.ActiveCfg = Debug_Cairo_CFLite|Win32 - {AAE88FEF-509E-4D49-870B-7357922C276F}.Debug_Cairo_CFLite|Win32.Build.0 = Debug_Cairo_CFLite|Win32 - {AAE88FEF-509E-4D49-870B-7357922C276F}.Debug|Win32.ActiveCfg = Debug|Win32 - {AAE88FEF-509E-4D49-870B-7357922C276F}.Debug|Win32.Build.0 = Debug|Win32 - {AAE88FEF-509E-4D49-870B-7357922C276F}.Production|Win32.ActiveCfg = Production|Win32 - {AAE88FEF-509E-4D49-870B-7357922C276F}.Production|Win32.Build.0 = Production|Win32 - {AAE88FEF-509E-4D49-870B-7357922C276F}.Release_Cairo_CFLite|Win32.ActiveCfg = Release_Cairo_CFLite|Win32 - {AAE88FEF-509E-4D49-870B-7357922C276F}.Release_Cairo_CFLite|Win32.Build.0 = Release_Cairo_CFLite|Win32 - {AAE88FEF-509E-4D49-870B-7357922C276F}.Release|Win32.ActiveCfg = Release|Win32 - {AAE88FEF-509E-4D49-870B-7357922C276F}.Release|Win32.Build.0 = Release|Win32 - {91762BE2-87EF-4F5A-A480-48B90EB3F406}.Debug_All|Win32.ActiveCfg = Debug_All|Win32 - {91762BE2-87EF-4F5A-A480-48B90EB3F406}.Debug_All|Win32.Build.0 = Debug_All|Win32 - {91762BE2-87EF-4F5A-A480-48B90EB3F406}.Debug_Cairo_CFLite|Win32.ActiveCfg = Debug_Cairo_CFLite|Win32 - {91762BE2-87EF-4F5A-A480-48B90EB3F406}.Debug_Cairo_CFLite|Win32.Build.0 = Debug_Cairo_CFLite|Win32 - {91762BE2-87EF-4F5A-A480-48B90EB3F406}.Debug|Win32.ActiveCfg = Debug|Win32 - {91762BE2-87EF-4F5A-A480-48B90EB3F406}.Debug|Win32.Build.0 = Debug|Win32 - {91762BE2-87EF-4F5A-A480-48B90EB3F406}.Production|Win32.ActiveCfg = Production|Win32 - {91762BE2-87EF-4F5A-A480-48B90EB3F406}.Production|Win32.Build.0 = Production|Win32 - {91762BE2-87EF-4F5A-A480-48B90EB3F406}.Release_Cairo_CFLite|Win32.ActiveCfg = Release_Cairo_CFLite|Win32 - {91762BE2-87EF-4F5A-A480-48B90EB3F406}.Release_Cairo_CFLite|Win32.Build.0 = Release_Cairo_CFLite|Win32 - {91762BE2-87EF-4F5A-A480-48B90EB3F406}.Release|Win32.ActiveCfg = Release|Win32 - {91762BE2-87EF-4F5A-A480-48B90EB3F406}.Release|Win32.Build.0 = Release|Win32 - {0662A8A9-82A3-4638-97D8-EC425D8D87C9}.Debug_All|Win32.ActiveCfg = Debug_All|Win32 - {0662A8A9-82A3-4638-97D8-EC425D8D87C9}.Debug_All|Win32.Build.0 = Debug_All|Win32 - {0662A8A9-82A3-4638-97D8-EC425D8D87C9}.Debug_Cairo_CFLite|Win32.ActiveCfg = Debug_Cairo_CFLite|Win32 - {0662A8A9-82A3-4638-97D8-EC425D8D87C9}.Debug_Cairo_CFLite|Win32.Build.0 = Debug_Cairo_CFLite|Win32 - {0662A8A9-82A3-4638-97D8-EC425D8D87C9}.Debug|Win32.ActiveCfg = Debug|Win32 - {0662A8A9-82A3-4638-97D8-EC425D8D87C9}.Debug|Win32.Build.0 = Debug|Win32 - {0662A8A9-82A3-4638-97D8-EC425D8D87C9}.Production|Win32.ActiveCfg = Production|Win32 - {0662A8A9-82A3-4638-97D8-EC425D8D87C9}.Production|Win32.Build.0 = Production|Win32 - {0662A8A9-82A3-4638-97D8-EC425D8D87C9}.Release_Cairo_CFLite|Win32.ActiveCfg = Release_Cairo_CFLite|Win32 - {0662A8A9-82A3-4638-97D8-EC425D8D87C9}.Release_Cairo_CFLite|Win32.Build.0 = Release_Cairo_CFLite|Win32 - {0662A8A9-82A3-4638-97D8-EC425D8D87C9}.Release|Win32.ActiveCfg = Release|Win32 - {0662A8A9-82A3-4638-97D8-EC425D8D87C9}.Release|Win32.Build.0 = Release|Win32 - {B8437A41-67BC-4769-9452-45203827F821}.Debug_All|Win32.ActiveCfg = Debug_All|Win32 - {B8437A41-67BC-4769-9452-45203827F821}.Debug_All|Win32.Build.0 = Debug_All|Win32 - {B8437A41-67BC-4769-9452-45203827F821}.Debug_Cairo_CFLite|Win32.ActiveCfg = Debug_Cairo_CFLite|Win32 - {B8437A41-67BC-4769-9452-45203827F821}.Debug_Cairo_CFLite|Win32.Build.0 = Debug_Cairo_CFLite|Win32 - {B8437A41-67BC-4769-9452-45203827F821}.Debug|Win32.ActiveCfg = Debug|Win32 - {B8437A41-67BC-4769-9452-45203827F821}.Debug|Win32.Build.0 = Debug|Win32 - {B8437A41-67BC-4769-9452-45203827F821}.Production|Win32.ActiveCfg = Production|Win32 - {B8437A41-67BC-4769-9452-45203827F821}.Production|Win32.Build.0 = Production|Win32 - {B8437A41-67BC-4769-9452-45203827F821}.Release_Cairo_CFLite|Win32.ActiveCfg = Release_Cairo_CFLite|Win32 - {B8437A41-67BC-4769-9452-45203827F821}.Release_Cairo_CFLite|Win32.Build.0 = Release_Cairo_CFLite|Win32 - {B8437A41-67BC-4769-9452-45203827F821}.Release|Win32.ActiveCfg = Release|Win32 - {B8437A41-67BC-4769-9452-45203827F821}.Release|Win32.Build.0 = Release|Win32 - {6567DFD4-D6DE-4CD5-825D-17E353D160E1}.Debug_All|Win32.ActiveCfg = Debug_All|Win32 - {6567DFD4-D6DE-4CD5-825D-17E353D160E1}.Debug_All|Win32.Build.0 = Debug_All|Win32 - {6567DFD4-D6DE-4CD5-825D-17E353D160E1}.Debug_Cairo_CFLite|Win32.ActiveCfg = Debug_Cairo_CFLite|Win32 - {6567DFD4-D6DE-4CD5-825D-17E353D160E1}.Debug_Cairo_CFLite|Win32.Build.0 = Debug_Cairo_CFLite|Win32 - {6567DFD4-D6DE-4CD5-825D-17E353D160E1}.Debug|Win32.ActiveCfg = Debug|Win32 - {6567DFD4-D6DE-4CD5-825D-17E353D160E1}.Debug|Win32.Build.0 = Debug|Win32 - {6567DFD4-D6DE-4CD5-825D-17E353D160E1}.Production|Win32.ActiveCfg = Production|Win32 - {6567DFD4-D6DE-4CD5-825D-17E353D160E1}.Production|Win32.Build.0 = Production|Win32 - {6567DFD4-D6DE-4CD5-825D-17E353D160E1}.Release_Cairo_CFLite|Win32.ActiveCfg = Release_Cairo_CFLite|Win32 - {6567DFD4-D6DE-4CD5-825D-17E353D160E1}.Release_Cairo_CFLite|Win32.Build.0 = Release_Cairo_CFLite|Win32 - {6567DFD4-D6DE-4CD5-825D-17E353D160E1}.Release|Win32.ActiveCfg = Release|Win32 - {6567DFD4-D6DE-4CD5-825D-17E353D160E1}.Release|Win32.Build.0 = Release|Win32 - {59CC0547-70AC-499C-9B19-EC01C6F61137}.Debug_All|Win32.ActiveCfg = Debug_All|Win32 - {59CC0547-70AC-499C-9B19-EC01C6F61137}.Debug_All|Win32.Build.0 = Debug_All|Win32 - {59CC0547-70AC-499C-9B19-EC01C6F61137}.Debug_Cairo_CFLite|Win32.ActiveCfg = Debug_Cairo_CFLite|Win32 - {59CC0547-70AC-499C-9B19-EC01C6F61137}.Debug_Cairo_CFLite|Win32.Build.0 = Debug_Cairo_CFLite|Win32 - {59CC0547-70AC-499C-9B19-EC01C6F61137}.Debug|Win32.ActiveCfg = Debug|Win32 - {59CC0547-70AC-499C-9B19-EC01C6F61137}.Debug|Win32.Build.0 = Debug|Win32 - {59CC0547-70AC-499C-9B19-EC01C6F61137}.Production|Win32.ActiveCfg = Production|Win32 - {59CC0547-70AC-499C-9B19-EC01C6F61137}.Production|Win32.Build.0 = Production|Win32 - {59CC0547-70AC-499C-9B19-EC01C6F61137}.Release_Cairo_CFLite|Win32.ActiveCfg = Release_Cairo_CFLite|Win32 - {59CC0547-70AC-499C-9B19-EC01C6F61137}.Release_Cairo_CFLite|Win32.Build.0 = Release_Cairo_CFLite|Win32 - {59CC0547-70AC-499C-9B19-EC01C6F61137}.Release|Win32.ActiveCfg = Release|Win32 - {59CC0547-70AC-499C-9B19-EC01C6F61137}.Release|Win32.Build.0 = Release|Win32 - {44B9C152-1870-4035-B94D-7B3285AA0C12}.Debug_All|Win32.ActiveCfg = Debug_All|Win32 - {44B9C152-1870-4035-B94D-7B3285AA0C12}.Debug_All|Win32.Build.0 = Debug_All|Win32 - {44B9C152-1870-4035-B94D-7B3285AA0C12}.Debug_Cairo_CFLite|Win32.ActiveCfg = Debug_Cairo_CFLite|Win32 - {44B9C152-1870-4035-B94D-7B3285AA0C12}.Debug_Cairo_CFLite|Win32.Build.0 = Debug_Cairo_CFLite|Win32 - {44B9C152-1870-4035-B94D-7B3285AA0C12}.Debug|Win32.ActiveCfg = Debug|Win32 - {44B9C152-1870-4035-B94D-7B3285AA0C12}.Debug|Win32.Build.0 = Debug|Win32 - {44B9C152-1870-4035-B94D-7B3285AA0C12}.Production|Win32.ActiveCfg = Production|Win32 - {44B9C152-1870-4035-B94D-7B3285AA0C12}.Production|Win32.Build.0 = Production|Win32 - {44B9C152-1870-4035-B94D-7B3285AA0C12}.Release_Cairo_CFLite|Win32.ActiveCfg = Release_Cairo_CFLite|Win32 - {44B9C152-1870-4035-B94D-7B3285AA0C12}.Release_Cairo_CFLite|Win32.Build.0 = Release_Cairo_CFLite|Win32 - {44B9C152-1870-4035-B94D-7B3285AA0C12}.Release|Win32.ActiveCfg = Release|Win32 - {44B9C152-1870-4035-B94D-7B3285AA0C12}.Release|Win32.Build.0 = Release|Win32 - {C0737398-3565-439E-A2B8-AB2BE4D5430C}.Debug_All|Win32.ActiveCfg = Debug_All|Win32 - {C0737398-3565-439E-A2B8-AB2BE4D5430C}.Debug_All|Win32.Build.0 = Debug_All|Win32 - {C0737398-3565-439E-A2B8-AB2BE4D5430C}.Debug_Cairo_CFLite|Win32.ActiveCfg = Debug_Cairo_CFLite|Win32 - {C0737398-3565-439E-A2B8-AB2BE4D5430C}.Debug_Cairo_CFLite|Win32.Build.0 = Debug_Cairo_CFLite|Win32 - {C0737398-3565-439E-A2B8-AB2BE4D5430C}.Debug|Win32.ActiveCfg = Debug|Win32 - {C0737398-3565-439E-A2B8-AB2BE4D5430C}.Debug|Win32.Build.0 = Debug|Win32 - {C0737398-3565-439E-A2B8-AB2BE4D5430C}.Production|Win32.ActiveCfg = Production|Win32 - {C0737398-3565-439E-A2B8-AB2BE4D5430C}.Production|Win32.Build.0 = Production|Win32 - {C0737398-3565-439E-A2B8-AB2BE4D5430C}.Release_Cairo_CFLite|Win32.ActiveCfg = Release_Cairo_CFLite|Win32 - {C0737398-3565-439E-A2B8-AB2BE4D5430C}.Release_Cairo_CFLite|Win32.Build.0 = Release_Cairo_CFLite|Win32 - {C0737398-3565-439E-A2B8-AB2BE4D5430C}.Release|Win32.ActiveCfg = Release|Win32 - {C0737398-3565-439E-A2B8-AB2BE4D5430C}.Release|Win32.Build.0 = Release|Win32 - {D09806DB-E58B-4646-8C9B-61101906C1E2}.Debug_All|Win32.ActiveCfg = Debug_All|Win32 - {D09806DB-E58B-4646-8C9B-61101906C1E2}.Debug_All|Win32.Build.0 = Debug_All|Win32 - {D09806DB-E58B-4646-8C9B-61101906C1E2}.Debug_Cairo_CFLite|Win32.ActiveCfg = Debug_Cairo_CFLite|Win32 - {D09806DB-E58B-4646-8C9B-61101906C1E2}.Debug_Cairo_CFLite|Win32.Build.0 = Debug_Cairo_CFLite|Win32 - {D09806DB-E58B-4646-8C9B-61101906C1E2}.Debug|Win32.ActiveCfg = Debug|Win32 - {D09806DB-E58B-4646-8C9B-61101906C1E2}.Debug|Win32.Build.0 = Debug|Win32 - {D09806DB-E58B-4646-8C9B-61101906C1E2}.Production|Win32.ActiveCfg = Production|Win32 - {D09806DB-E58B-4646-8C9B-61101906C1E2}.Production|Win32.Build.0 = Production|Win32 - {D09806DB-E58B-4646-8C9B-61101906C1E2}.Release_Cairo_CFLite|Win32.ActiveCfg = Release_Cairo_CFLite|Win32 - {D09806DB-E58B-4646-8C9B-61101906C1E2}.Release_Cairo_CFLite|Win32.Build.0 = Release_Cairo_CFLite|Win32 - {D09806DB-E58B-4646-8C9B-61101906C1E2}.Release|Win32.ActiveCfg = Release|Win32 - {D09806DB-E58B-4646-8C9B-61101906C1E2}.Release|Win32.Build.0 = Release|Win32 - {114FCA11-216B-4C8C-957E-30A75AE80443}.Debug_All|Win32.ActiveCfg = Debug_All|Win32 - {114FCA11-216B-4C8C-957E-30A75AE80443}.Debug_All|Win32.Build.0 = Debug_All|Win32 - {114FCA11-216B-4C8C-957E-30A75AE80443}.Debug_Cairo_CFLite|Win32.ActiveCfg = Debug_Cairo_CFLite|Win32 - {114FCA11-216B-4C8C-957E-30A75AE80443}.Debug_Cairo_CFLite|Win32.Build.0 = Debug_Cairo_CFLite|Win32 - {114FCA11-216B-4C8C-957E-30A75AE80443}.Debug|Win32.ActiveCfg = Debug|Win32 - {114FCA11-216B-4C8C-957E-30A75AE80443}.Debug|Win32.Build.0 = Debug|Win32 - {114FCA11-216B-4C8C-957E-30A75AE80443}.Production|Win32.ActiveCfg = Production|Win32 - {114FCA11-216B-4C8C-957E-30A75AE80443}.Production|Win32.Build.0 = Production|Win32 - {114FCA11-216B-4C8C-957E-30A75AE80443}.Release_Cairo_CFLite|Win32.ActiveCfg = Release_Cairo_CFLite|Win32 - {114FCA11-216B-4C8C-957E-30A75AE80443}.Release_Cairo_CFLite|Win32.Build.0 = Release_Cairo_CFLite|Win32 - {114FCA11-216B-4C8C-957E-30A75AE80443}.Release|Win32.ActiveCfg = Release|Win32 - {114FCA11-216B-4C8C-957E-30A75AE80443}.Release|Win32.Build.0 = Release|Win32 - {CBC3391C-F060-4BF5-A66E-81404168816B}.Debug_All|Win32.ActiveCfg = Debug_All|Win32 - {CBC3391C-F060-4BF5-A66E-81404168816B}.Debug_All|Win32.Build.0 = Debug_All|Win32 - {CBC3391C-F060-4BF5-A66E-81404168816B}.Debug_Cairo_CFLite|Win32.ActiveCfg = Debug_Cairo_CFLite|Win32 - {CBC3391C-F060-4BF5-A66E-81404168816B}.Debug_Cairo_CFLite|Win32.Build.0 = Debug_Cairo_CFLite|Win32 - {CBC3391C-F060-4BF5-A66E-81404168816B}.Debug|Win32.ActiveCfg = Debug|Win32 - {CBC3391C-F060-4BF5-A66E-81404168816B}.Debug|Win32.Build.0 = Debug|Win32 - {CBC3391C-F060-4BF5-A66E-81404168816B}.Production|Win32.ActiveCfg = Production|Win32 - {CBC3391C-F060-4BF5-A66E-81404168816B}.Production|Win32.Build.0 = Production|Win32 - {CBC3391C-F060-4BF5-A66E-81404168816B}.Release_Cairo_CFLite|Win32.ActiveCfg = Release_Cairo_CFLite|Win32 - {CBC3391C-F060-4BF5-A66E-81404168816B}.Release_Cairo_CFLite|Win32.Build.0 = Release_Cairo_CFLite|Win32 - {CBC3391C-F060-4BF5-A66E-81404168816B}.Release|Win32.ActiveCfg = Release|Win32 - {CBC3391C-F060-4BF5-A66E-81404168816B}.Release|Win32.Build.0 = Release|Win32 - {4343BC0B-A2E0-4B48-8277-F33CFBFA83CD}.Debug_All|Win32.ActiveCfg = Debug_All|Win32 - {4343BC0B-A2E0-4B48-8277-F33CFBFA83CD}.Debug_All|Win32.Build.0 = Debug_All|Win32 - {4343BC0B-A2E0-4B48-8277-F33CFBFA83CD}.Debug_Cairo_CFLite|Win32.ActiveCfg = Debug_Cairo_CFLite|Win32 - {4343BC0B-A2E0-4B48-8277-F33CFBFA83CD}.Debug_Cairo_CFLite|Win32.Build.0 = Debug_Cairo_CFLite|Win32 - {4343BC0B-A2E0-4B48-8277-F33CFBFA83CD}.Debug|Win32.ActiveCfg = Debug|Win32 - {4343BC0B-A2E0-4B48-8277-F33CFBFA83CD}.Debug|Win32.Build.0 = Debug|Win32 - {4343BC0B-A2E0-4B48-8277-F33CFBFA83CD}.Production|Win32.ActiveCfg = Production|Win32 - {4343BC0B-A2E0-4B48-8277-F33CFBFA83CD}.Production|Win32.Build.0 = Production|Win32 - {4343BC0B-A2E0-4B48-8277-F33CFBFA83CD}.Release_Cairo_CFLite|Win32.ActiveCfg = Release_Cairo_CFLite|Win32 - {4343BC0B-A2E0-4B48-8277-F33CFBFA83CD}.Release_Cairo_CFLite|Win32.Build.0 = Release_Cairo_CFLite|Win32 - {4343BC0B-A2E0-4B48-8277-F33CFBFA83CD}.Release|Win32.ActiveCfg = Release|Win32 - {4343BC0B-A2E0-4B48-8277-F33CFBFA83CD}.Release|Win32.Build.0 = Release|Win32 - {3B99669B-1817-443B-BCBE-835580146668}.Debug_All|Win32.ActiveCfg = Debug_All|Win32 - {3B99669B-1817-443B-BCBE-835580146668}.Debug_All|Win32.Build.0 = Debug_All|Win32 - {3B99669B-1817-443B-BCBE-835580146668}.Debug_Cairo_CFLite|Win32.ActiveCfg = Debug_Cairo_CFLite|Win32 - {3B99669B-1817-443B-BCBE-835580146668}.Debug_Cairo_CFLite|Win32.Build.0 = Debug_Cairo_CFLite|Win32 - {3B99669B-1817-443B-BCBE-835580146668}.Debug|Win32.ActiveCfg = Debug|Win32 - {3B99669B-1817-443B-BCBE-835580146668}.Debug|Win32.Build.0 = Debug|Win32 - {3B99669B-1817-443B-BCBE-835580146668}.Production|Win32.ActiveCfg = Production|Win32 - {3B99669B-1817-443B-BCBE-835580146668}.Production|Win32.Build.0 = Production|Win32 - {3B99669B-1817-443B-BCBE-835580146668}.Release_Cairo_CFLite|Win32.ActiveCfg = Release_Cairo_CFLite|Win32 - {3B99669B-1817-443B-BCBE-835580146668}.Release_Cairo_CFLite|Win32.Build.0 = Release_Cairo_CFLite|Win32 - {3B99669B-1817-443B-BCBE-835580146668}.Release|Win32.ActiveCfg = Release|Win32 - {3B99669B-1817-443B-BCBE-835580146668}.Release|Win32.Build.0 = Release|Win32 - {1480CF5F-4160-47B5-A0E6-96AEC8258FB5}.Debug_All|Win32.ActiveCfg = Debug_All|Win32 - {1480CF5F-4160-47B5-A0E6-96AEC8258FB5}.Debug_All|Win32.Build.0 = Debug_All|Win32 - {1480CF5F-4160-47B5-A0E6-96AEC8258FB5}.Debug_Cairo_CFLite|Win32.ActiveCfg = Debug_Cairo_CFLite|Win32 - {1480CF5F-4160-47B5-A0E6-96AEC8258FB5}.Debug_Cairo_CFLite|Win32.Build.0 = Debug_Cairo_CFLite|Win32 - {1480CF5F-4160-47B5-A0E6-96AEC8258FB5}.Debug|Win32.ActiveCfg = Debug|Win32 - {1480CF5F-4160-47B5-A0E6-96AEC8258FB5}.Debug|Win32.Build.0 = Debug|Win32 - {1480CF5F-4160-47B5-A0E6-96AEC8258FB5}.Production|Win32.ActiveCfg = Production|Win32 - {1480CF5F-4160-47B5-A0E6-96AEC8258FB5}.Production|Win32.Build.0 = Production|Win32 - {1480CF5F-4160-47B5-A0E6-96AEC8258FB5}.Release_Cairo_CFLite|Win32.ActiveCfg = Release_Cairo_CFLite|Win32 - {1480CF5F-4160-47B5-A0E6-96AEC8258FB5}.Release_Cairo_CFLite|Win32.Build.0 = Release_Cairo_CFLite|Win32 - {1480CF5F-4160-47B5-A0E6-96AEC8258FB5}.Release|Win32.ActiveCfg = Release|Win32 - {1480CF5F-4160-47B5-A0E6-96AEC8258FB5}.Release|Win32.Build.0 = Release|Win32 - {3E48AB23-D249-488F-A1C4-43CDF52FBD28}.Debug_All|Win32.ActiveCfg = Debug_All|Win32 - {3E48AB23-D249-488F-A1C4-43CDF52FBD28}.Debug_All|Win32.Build.0 = Debug_All|Win32 - {3E48AB23-D249-488F-A1C4-43CDF52FBD28}.Debug_Cairo_CFLite|Win32.ActiveCfg = Debug_Cairo_CFLite|Win32 - {3E48AB23-D249-488F-A1C4-43CDF52FBD28}.Debug_Cairo_CFLite|Win32.Build.0 = Debug_Cairo_CFLite|Win32 - {3E48AB23-D249-488F-A1C4-43CDF52FBD28}.Debug|Win32.ActiveCfg = Debug|Win32 - {3E48AB23-D249-488F-A1C4-43CDF52FBD28}.Debug|Win32.Build.0 = Debug|Win32 - {3E48AB23-D249-488F-A1C4-43CDF52FBD28}.Production|Win32.ActiveCfg = Production|Win32 - {3E48AB23-D249-488F-A1C4-43CDF52FBD28}.Production|Win32.Build.0 = Production|Win32 - {3E48AB23-D249-488F-A1C4-43CDF52FBD28}.Release_Cairo_CFLite|Win32.ActiveCfg = Release_Cairo_CFLite|Win32 - {3E48AB23-D249-488F-A1C4-43CDF52FBD28}.Release_Cairo_CFLite|Win32.Build.0 = Release_Cairo_CFLite|Win32 - {3E48AB23-D249-488F-A1C4-43CDF52FBD28}.Release|Win32.ActiveCfg = Release|Win32 - {3E48AB23-D249-488F-A1C4-43CDF52FBD28}.Release|Win32.Build.0 = Release|Win32 - {45C45411-7F0E-404D-919A-4EE9BB60BE86}.Debug_All|Win32.ActiveCfg = Debug_All|Win32 - {45C45411-7F0E-404D-919A-4EE9BB60BE86}.Debug_All|Win32.Build.0 = Debug_All|Win32 - {45C45411-7F0E-404D-919A-4EE9BB60BE86}.Debug_Cairo_CFLite|Win32.ActiveCfg = Debug_Cairo_CFLite|Win32 - {45C45411-7F0E-404D-919A-4EE9BB60BE86}.Debug_Cairo_CFLite|Win32.Build.0 = Debug_Cairo_CFLite|Win32 - {45C45411-7F0E-404D-919A-4EE9BB60BE86}.Debug|Win32.ActiveCfg = Debug|Win32 - {45C45411-7F0E-404D-919A-4EE9BB60BE86}.Debug|Win32.Build.0 = Debug|Win32 - {45C45411-7F0E-404D-919A-4EE9BB60BE86}.Production|Win32.ActiveCfg = Production|Win32 - {45C45411-7F0E-404D-919A-4EE9BB60BE86}.Production|Win32.Build.0 = Production|Win32 - {45C45411-7F0E-404D-919A-4EE9BB60BE86}.Release_Cairo_CFLite|Win32.ActiveCfg = Release_Cairo_CFLite|Win32 - {45C45411-7F0E-404D-919A-4EE9BB60BE86}.Release_Cairo_CFLite|Win32.Build.0 = Release_Cairo_CFLite|Win32 - {45C45411-7F0E-404D-919A-4EE9BB60BE86}.Release|Win32.ActiveCfg = Release|Win32 - {45C45411-7F0E-404D-919A-4EE9BB60BE86}.Release|Win32.Build.0 = Release|Win32 - {B0101604-B483-4F8C-9C51-90B46A2B1CD3}.Debug_All|Win32.ActiveCfg = Debug_All|Win32 - {B0101604-B483-4F8C-9C51-90B46A2B1CD3}.Debug_All|Win32.Build.0 = Debug_All|Win32 - {B0101604-B483-4F8C-9C51-90B46A2B1CD3}.Debug_Cairo_CFLite|Win32.ActiveCfg = Debug_Cairo_CFLite|Win32 - {B0101604-B483-4F8C-9C51-90B46A2B1CD3}.Debug_Cairo_CFLite|Win32.Build.0 = Debug_Cairo_CFLite|Win32 - {B0101604-B483-4F8C-9C51-90B46A2B1CD3}.Debug|Win32.ActiveCfg = Debug|Win32 - {B0101604-B483-4F8C-9C51-90B46A2B1CD3}.Debug|Win32.Build.0 = Debug|Win32 - {B0101604-B483-4F8C-9C51-90B46A2B1CD3}.Production|Win32.ActiveCfg = Production|Win32 - {B0101604-B483-4F8C-9C51-90B46A2B1CD3}.Production|Win32.Build.0 = Production|Win32 - {B0101604-B483-4F8C-9C51-90B46A2B1CD3}.Release_Cairo_CFLite|Win32.ActiveCfg = Release_Cairo_CFLite|Win32 - {B0101604-B483-4F8C-9C51-90B46A2B1CD3}.Release_Cairo_CFLite|Win32.Build.0 = Release_Cairo_CFLite|Win32 - {B0101604-B483-4F8C-9C51-90B46A2B1CD3}.Release|Win32.ActiveCfg = Release|Win32 - {B0101604-B483-4F8C-9C51-90B46A2B1CD3}.Release|Win32.Build.0 = Release|Win32 - {C8F6C172-56F2-4E76-B5FA-C3B423B31BE8}.Debug_All|Win32.ActiveCfg = Debug_All|Win32 - {C8F6C172-56F2-4E76-B5FA-C3B423B31BE8}.Debug_All|Win32.Build.0 = Debug_All|Win32 - {C8F6C172-56F2-4E76-B5FA-C3B423B31BE8}.Debug_Cairo_CFLite|Win32.ActiveCfg = Debug_Cairo_CFLite|Win32 - {C8F6C172-56F2-4E76-B5FA-C3B423B31BE8}.Debug_Cairo_CFLite|Win32.Build.0 = Debug_Cairo_CFLite|Win32 - {C8F6C172-56F2-4E76-B5FA-C3B423B31BE8}.Debug|Win32.ActiveCfg = Debug|Win32 - {C8F6C172-56F2-4E76-B5FA-C3B423B31BE8}.Debug|Win32.Build.0 = Debug|Win32 - {C8F6C172-56F2-4E76-B5FA-C3B423B31BE8}.Production|Win32.ActiveCfg = Production|Win32 - {C8F6C172-56F2-4E76-B5FA-C3B423B31BE8}.Production|Win32.Build.0 = Production|Win32 - {C8F6C172-56F2-4E76-B5FA-C3B423B31BE8}.Release_Cairo_CFLite|Win32.ActiveCfg = Release_Cairo_CFLite|Win32 - {C8F6C172-56F2-4E76-B5FA-C3B423B31BE8}.Release_Cairo_CFLite|Win32.Build.0 = Release_Cairo_CFLite|Win32 - {C8F6C172-56F2-4E76-B5FA-C3B423B31BE8}.Release|Win32.ActiveCfg = Release|Win32 - {C8F6C172-56F2-4E76-B5FA-C3B423B31BE8}.Release|Win32.Build.0 = Release|Win32 - {83414B15-1C0D-490B-990E-03F4D49170E4}.Debug_All|Win32.ActiveCfg = Debug_All|Win32 - {83414B15-1C0D-490B-990E-03F4D49170E4}.Debug_All|Win32.Build.0 = Debug_All|Win32 - {83414B15-1C0D-490B-990E-03F4D49170E4}.Debug_Cairo_CFLite|Win32.ActiveCfg = Debug_Cairo_CFLite|Win32 - {83414B15-1C0D-490B-990E-03F4D49170E4}.Debug_Cairo_CFLite|Win32.Build.0 = Debug_Cairo_CFLite|Win32 - {83414B15-1C0D-490B-990E-03F4D49170E4}.Debug|Win32.ActiveCfg = Debug|Win32 - {83414B15-1C0D-490B-990E-03F4D49170E4}.Debug|Win32.Build.0 = Debug|Win32 - {83414B15-1C0D-490B-990E-03F4D49170E4}.Production|Win32.ActiveCfg = Production|Win32 - {83414B15-1C0D-490B-990E-03F4D49170E4}.Production|Win32.Build.0 = Production|Win32 - {83414B15-1C0D-490B-990E-03F4D49170E4}.Release_Cairo_CFLite|Win32.ActiveCfg = Release_Cairo_CFLite|Win32 - {83414B15-1C0D-490B-990E-03F4D49170E4}.Release_Cairo_CFLite|Win32.Build.0 = Release_Cairo_CFLite|Win32 - {83414B15-1C0D-490B-990E-03F4D49170E4}.Release|Win32.ActiveCfg = Release|Win32 - {83414B15-1C0D-490B-990E-03F4D49170E4}.Release|Win32.Build.0 = Release|Win32 - {14C94979-1ED3-4E1D-9B55-A80FCF4677D0}.Debug_All|Win32.ActiveCfg = Debug_All|Win32 - {14C94979-1ED3-4E1D-9B55-A80FCF4677D0}.Debug_All|Win32.Build.0 = Debug_All|Win32 - {14C94979-1ED3-4E1D-9B55-A80FCF4677D0}.Debug_Cairo_CFLite|Win32.ActiveCfg = Debug_Cairo_CFLite|Win32 - {14C94979-1ED3-4E1D-9B55-A80FCF4677D0}.Debug_Cairo_CFLite|Win32.Build.0 = Debug_Cairo_CFLite|Win32 - {14C94979-1ED3-4E1D-9B55-A80FCF4677D0}.Debug|Win32.ActiveCfg = Debug|Win32 - {14C94979-1ED3-4E1D-9B55-A80FCF4677D0}.Debug|Win32.Build.0 = Debug|Win32 - {14C94979-1ED3-4E1D-9B55-A80FCF4677D0}.Production|Win32.ActiveCfg = Production|Win32 - {14C94979-1ED3-4E1D-9B55-A80FCF4677D0}.Production|Win32.Build.0 = Production|Win32 - {14C94979-1ED3-4E1D-9B55-A80FCF4677D0}.Release_Cairo_CFLite|Win32.ActiveCfg = Release_Cairo_CFLite|Win32 - {14C94979-1ED3-4E1D-9B55-A80FCF4677D0}.Release_Cairo_CFLite|Win32.Build.0 = Release_Cairo_CFLite|Win32 - {14C94979-1ED3-4E1D-9B55-A80FCF4677D0}.Release|Win32.ActiveCfg = Release|Win32 - {14C94979-1ED3-4E1D-9B55-A80FCF4677D0}.Release|Win32.Build.0 = Release|Win32 - {767B10FB-76C1-44D0-8005-85ED7F9AA5E4}.Debug_All|Win32.ActiveCfg = Debug_All|Win32 - {767B10FB-76C1-44D0-8005-85ED7F9AA5E4}.Debug_All|Win32.Build.0 = Debug_All|Win32 - {767B10FB-76C1-44D0-8005-85ED7F9AA5E4}.Debug_Cairo_CFLite|Win32.ActiveCfg = Debug_Cairo_CFLite|Win32 - {767B10FB-76C1-44D0-8005-85ED7F9AA5E4}.Debug_Cairo_CFLite|Win32.Build.0 = Debug_Cairo_CFLite|Win32 - {767B10FB-76C1-44D0-8005-85ED7F9AA5E4}.Debug|Win32.ActiveCfg = Debug|Win32 - {767B10FB-76C1-44D0-8005-85ED7F9AA5E4}.Debug|Win32.Build.0 = Debug|Win32 - {767B10FB-76C1-44D0-8005-85ED7F9AA5E4}.Production|Win32.ActiveCfg = Production|Win32 - {767B10FB-76C1-44D0-8005-85ED7F9AA5E4}.Production|Win32.Build.0 = Production|Win32 - {767B10FB-76C1-44D0-8005-85ED7F9AA5E4}.Release_Cairo_CFLite|Win32.ActiveCfg = Release_Cairo_CFLite|Win32 - {767B10FB-76C1-44D0-8005-85ED7F9AA5E4}.Release_Cairo_CFLite|Win32.Build.0 = Release_Cairo_CFLite|Win32 - {767B10FB-76C1-44D0-8005-85ED7F9AA5E4}.Release|Win32.ActiveCfg = Release|Win32 - {767B10FB-76C1-44D0-8005-85ED7F9AA5E4}.Release|Win32.Build.0 = Release|Win32 - {7AF4EBFB-CCBC-448F-A36A-8210E08D6A7D}.Debug_All|Win32.ActiveCfg = Debug_All|Win32 - {7AF4EBFB-CCBC-448F-A36A-8210E08D6A7D}.Debug_All|Win32.Build.0 = Debug_All|Win32 - {7AF4EBFB-CCBC-448F-A36A-8210E08D6A7D}.Debug_Cairo_CFLite|Win32.ActiveCfg = Debug_Cairo_CFLite|Win32 - {7AF4EBFB-CCBC-448F-A36A-8210E08D6A7D}.Debug_Cairo_CFLite|Win32.Build.0 = Debug_Cairo_CFLite|Win32 - {7AF4EBFB-CCBC-448F-A36A-8210E08D6A7D}.Debug|Win32.ActiveCfg = Debug|Win32 - {7AF4EBFB-CCBC-448F-A36A-8210E08D6A7D}.Debug|Win32.Build.0 = Debug|Win32 - {7AF4EBFB-CCBC-448F-A36A-8210E08D6A7D}.Production|Win32.ActiveCfg = Production|Win32 - {7AF4EBFB-CCBC-448F-A36A-8210E08D6A7D}.Production|Win32.Build.0 = Production|Win32 - {7AF4EBFB-CCBC-448F-A36A-8210E08D6A7D}.Release_Cairo_CFLite|Win32.ActiveCfg = Release_Cairo_CFLite|Win32 - {7AF4EBFB-CCBC-448F-A36A-8210E08D6A7D}.Release_Cairo_CFLite|Win32.Build.0 = Release_Cairo_CFLite|Win32 - {7AF4EBFB-CCBC-448F-A36A-8210E08D6A7D}.Release|Win32.ActiveCfg = Release|Win32 - {7AF4EBFB-CCBC-448F-A36A-8210E08D6A7D}.Release|Win32.Build.0 = Release|Win32 - {DD7949B6-F2B4-47C2-9C42-E21E84CB1017}.Debug_All|Win32.ActiveCfg = Debug_All|Win32 - {DD7949B6-F2B4-47C2-9C42-E21E84CB1017}.Debug_All|Win32.Build.0 = Debug_All|Win32 - {DD7949B6-F2B4-47C2-9C42-E21E84CB1017}.Debug_Cairo_CFLite|Win32.ActiveCfg = Debug_Cairo_CFLite|Win32 - {DD7949B6-F2B4-47C2-9C42-E21E84CB1017}.Debug_Cairo_CFLite|Win32.Build.0 = Debug_Cairo_CFLite|Win32 - {DD7949B6-F2B4-47C2-9C42-E21E84CB1017}.Debug|Win32.ActiveCfg = Debug|Win32 - {DD7949B6-F2B4-47C2-9C42-E21E84CB1017}.Debug|Win32.Build.0 = Debug|Win32 - {DD7949B6-F2B4-47C2-9C42-E21E84CB1017}.Production|Win32.ActiveCfg = Production|Win32 - {DD7949B6-F2B4-47C2-9C42-E21E84CB1017}.Production|Win32.Build.0 = Production|Win32 - {DD7949B6-F2B4-47C2-9C42-E21E84CB1017}.Release_Cairo_CFLite|Win32.ActiveCfg = Release_Cairo_CFLite|Win32 - {DD7949B6-F2B4-47C2-9C42-E21E84CB1017}.Release_Cairo_CFLite|Win32.Build.0 = Release_Cairo_CFLite|Win32 - {DD7949B6-F2B4-47C2-9C42-E21E84CB1017}.Release|Win32.ActiveCfg = Release|Win32 - {DD7949B6-F2B4-47C2-9C42-E21E84CB1017}.Release|Win32.Build.0 = Release|Win32 - {2974EA02-840B-4995-8719-8920A61006F1}.Debug_All|Win32.ActiveCfg = Debug_All|Win32 - {2974EA02-840B-4995-8719-8920A61006F1}.Debug_All|Win32.Build.0 = Debug_All|Win32 - {2974EA02-840B-4995-8719-8920A61006F1}.Debug_Cairo_CFLite|Win32.ActiveCfg = Debug_Cairo_CFLite|Win32 - {2974EA02-840B-4995-8719-8920A61006F1}.Debug_Cairo_CFLite|Win32.Build.0 = Debug_Cairo_CFLite|Win32 - {2974EA02-840B-4995-8719-8920A61006F1}.Debug|Win32.ActiveCfg = Debug|Win32 - {2974EA02-840B-4995-8719-8920A61006F1}.Debug|Win32.Build.0 = Debug|Win32 - {2974EA02-840B-4995-8719-8920A61006F1}.Production|Win32.ActiveCfg = Production|Win32 - {2974EA02-840B-4995-8719-8920A61006F1}.Production|Win32.Build.0 = Production|Win32 - {2974EA02-840B-4995-8719-8920A61006F1}.Release_Cairo_CFLite|Win32.ActiveCfg = Release_Cairo_CFLite|Win32 - {2974EA02-840B-4995-8719-8920A61006F1}.Release_Cairo_CFLite|Win32.Build.0 = Release_Cairo_CFLite|Win32 - {2974EA02-840B-4995-8719-8920A61006F1}.Release|Win32.ActiveCfg = Release|Win32 - {2974EA02-840B-4995-8719-8920A61006F1}.Release|Win32.Build.0 = Release|Win32 - {C13FA6EF-B531-4BAD-9A23-18E2BEB8B040}.Debug_All|Win32.ActiveCfg = Debug_All|Win32 - {C13FA6EF-B531-4BAD-9A23-18E2BEB8B040}.Debug_All|Win32.Build.0 = Debug_All|Win32 - {C13FA6EF-B531-4BAD-9A23-18E2BEB8B040}.Debug_Cairo_CFLite|Win32.ActiveCfg = Debug_Cairo_CFLite|Win32 - {C13FA6EF-B531-4BAD-9A23-18E2BEB8B040}.Debug_Cairo_CFLite|Win32.Build.0 = Debug_Cairo_CFLite|Win32 - {C13FA6EF-B531-4BAD-9A23-18E2BEB8B040}.Debug|Win32.ActiveCfg = Debug|Win32 - {C13FA6EF-B531-4BAD-9A23-18E2BEB8B040}.Debug|Win32.Build.0 = Debug|Win32 - {C13FA6EF-B531-4BAD-9A23-18E2BEB8B040}.Production|Win32.ActiveCfg = Production|Win32 - {C13FA6EF-B531-4BAD-9A23-18E2BEB8B040}.Production|Win32.Build.0 = Production|Win32 - {C13FA6EF-B531-4BAD-9A23-18E2BEB8B040}.Release_Cairo_CFLite|Win32.ActiveCfg = Release_Cairo_CFLite|Win32 - {C13FA6EF-B531-4BAD-9A23-18E2BEB8B040}.Release_Cairo_CFLite|Win32.Build.0 = Release_Cairo_CFLite|Win32 - {C13FA6EF-B531-4BAD-9A23-18E2BEB8B040}.Release|Win32.ActiveCfg = Release|Win32 - {C13FA6EF-B531-4BAD-9A23-18E2BEB8B040}.Release|Win32.Build.0 = Release|Win32 - {5AE5F5E4-782D-4F63-B4D7-3977B52B9950}.Debug_All|Win32.ActiveCfg = Debug_All|Win32 - {5AE5F5E4-782D-4F63-B4D7-3977B52B9950}.Debug_All|Win32.Build.0 = Debug_All|Win32 - {5AE5F5E4-782D-4F63-B4D7-3977B52B9950}.Debug_Cairo_CFLite|Win32.ActiveCfg = Debug_Cairo_CFLite|Win32 - {5AE5F5E4-782D-4F63-B4D7-3977B52B9950}.Debug_Cairo_CFLite|Win32.Build.0 = Debug_Cairo_CFLite|Win32 - {5AE5F5E4-782D-4F63-B4D7-3977B52B9950}.Debug|Win32.ActiveCfg = Debug|Win32 - {5AE5F5E4-782D-4F63-B4D7-3977B52B9950}.Debug|Win32.Build.0 = Debug|Win32 - {5AE5F5E4-782D-4F63-B4D7-3977B52B9950}.Production|Win32.ActiveCfg = Production|Win32 - {5AE5F5E4-782D-4F63-B4D7-3977B52B9950}.Production|Win32.Build.0 = Production|Win32 - {5AE5F5E4-782D-4F63-B4D7-3977B52B9950}.Release_Cairo_CFLite|Win32.ActiveCfg = Release_Cairo_CFLite|Win32 - {5AE5F5E4-782D-4F63-B4D7-3977B52B9950}.Release_Cairo_CFLite|Win32.Build.0 = Release_Cairo_CFLite|Win32 - {5AE5F5E4-782D-4F63-B4D7-3977B52B9950}.Release|Win32.ActiveCfg = Release|Win32 - {5AE5F5E4-782D-4F63-B4D7-3977B52B9950}.Release|Win32.Build.0 = Release|Win32 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection - GlobalSection(NestedProjects) = preSolution - {C59E5129-B453-49B7-A52B-1E104715F76E} = {557FA164-0E39-4DEC-B66C-8795C8E52399} - {011D10F1-B656-4A1B-A0C3-3842F02122C5} = {557FA164-0E39-4DEC-B66C-8795C8E52399} - {4FF5BA11-59EC-4C24-8F52-F235C2E7D43A} = {557FA164-0E39-4DEC-B66C-8795C8E52399} - {1AFD081F-1AC7-4A97-8EFA-6DF97761A3A2} = {557FA164-0E39-4DEC-B66C-8795C8E52399} - {14C94979-1ED3-4E1D-9B55-A80FCF4677D0} = {557FA164-0E39-4DEC-B66C-8795C8E52399} - {1C16337B-ACF3-4D03-AA90-851C5B5EADA6} = {63FB6F8A-C601-43E3-BD16-A00A465C2CB6} - {0A324352-B3B6-496C-9E5B-4C7E923E628B} = {63FB6F8A-C601-43E3-BD16-A00A465C2CB6} - {E498CA9D-3BD2-4D52-8E37-C8DC76526325} = {63FB6F8A-C601-43E3-BD16-A00A465C2CB6} - {83414B15-1C0D-490B-990E-03F4D49170E4} = {63FB6F8A-C601-43E3-BD16-A00A465C2CB6} - {2E51ABE8-76CB-485B-A66C-46AEF4DF8ACD} = {9AB9C96C-9039-4FA9-8F83-BBFC8F8B2182} - {2EDAD637-CBA8-4E55-97ED-7D2BBC336FDB} = {9AB9C96C-9039-4FA9-8F83-BBFC8F8B2182} - {AAE88FEF-509E-4D49-870B-7357922C276F} = {9AB9C96C-9039-4FA9-8F83-BBFC8F8B2182} - {91762BE2-87EF-4F5A-A480-48B90EB3F406} = {1D359ACC-BE10-45D7-938B-BC7E4B7AA6CA} - {0662A8A9-82A3-4638-97D8-EC425D8D87C9} = {1D359ACC-BE10-45D7-938B-BC7E4B7AA6CA} - {B8437A41-67BC-4769-9452-45203827F821} = {1D359ACC-BE10-45D7-938B-BC7E4B7AA6CA} - {6567DFD4-D6DE-4CD5-825D-17E353D160E1} = {62DCDFE4-EAD2-48E1-A2BD-BD54AD3C7459} - {59CC0547-70AC-499C-9B19-EC01C6F61137} = {62DCDFE4-EAD2-48E1-A2BD-BD54AD3C7459} - {44B9C152-1870-4035-B94D-7B3285AA0C12} = {62DCDFE4-EAD2-48E1-A2BD-BD54AD3C7459} - {C0737398-3565-439E-A2B8-AB2BE4D5430C} = {62DCDFE4-EAD2-48E1-A2BD-BD54AD3C7459} - {D09806DB-E58B-4646-8C9B-61101906C1E2} = {62DCDFE4-EAD2-48E1-A2BD-BD54AD3C7459} - {114FCA11-216B-4C8C-957E-30A75AE80443} = {62DCDFE4-EAD2-48E1-A2BD-BD54AD3C7459} - {CBC3391C-F060-4BF5-A66E-81404168816B} = {62DCDFE4-EAD2-48E1-A2BD-BD54AD3C7459} - {4343BC0B-A2E0-4B48-8277-F33CFBFA83CD} = {62DCDFE4-EAD2-48E1-A2BD-BD54AD3C7459} - {3B99669B-1817-443B-BCBE-835580146668} = {62DCDFE4-EAD2-48E1-A2BD-BD54AD3C7459} - {1480CF5F-4160-47B5-A0E6-96AEC8258FB5} = {62DCDFE4-EAD2-48E1-A2BD-BD54AD3C7459} - {3E48AB23-D249-488F-A1C4-43CDF52FBD28} = {62DCDFE4-EAD2-48E1-A2BD-BD54AD3C7459} - {45C45411-7F0E-404D-919A-4EE9BB60BE86} = {62DCDFE4-EAD2-48E1-A2BD-BD54AD3C7459} - {B0101604-B483-4F8C-9C51-90B46A2B1CD3} = {62DCDFE4-EAD2-48E1-A2BD-BD54AD3C7459} - {C8F6C172-56F2-4E76-B5FA-C3B423B31BE8} = {62DCDFE4-EAD2-48E1-A2BD-BD54AD3C7459} - {767B10FB-76C1-44D0-8005-85ED7F9AA5E4} = {62DCDFE4-EAD2-48E1-A2BD-BD54AD3C7459} - {7AF4EBFB-CCBC-448F-A36A-8210E08D6A7D} = {62DCDFE4-EAD2-48E1-A2BD-BD54AD3C7459} - {DD7949B6-F2B4-47C2-9C42-E21E84CB1017} = {62DCDFE4-EAD2-48E1-A2BD-BD54AD3C7459} - {2974EA02-840B-4995-8719-8920A61006F1} = {62DCDFE4-EAD2-48E1-A2BD-BD54AD3C7459} - {C13FA6EF-B531-4BAD-9A23-18E2BEB8B040} = {62DCDFE4-EAD2-48E1-A2BD-BD54AD3C7459} - {AA8A5A85-592B-4357-BC60-E0E91E026AF6} = {A671AE22-FBCE-4C41-A723-82939FCA3E92} - {5AE5F5E4-782D-4F63-B4D7-3977B52B9950} = {A671AE22-FBCE-4C41-A723-82939FCA3E92} - EndGlobalSection -EndGlobal +
+Microsoft Visual Studio Solution File, Format Version 9.00
+# Visual Studio 2005
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "JavaScriptCore", "..\..\..\JavaScriptCore\JavaScriptCore.vcproj\JavaScriptCore\JavaScriptCore.vcproj", "{011D10F1-B656-4A1B-A0C3-3842F02122C5}"
+ ProjectSection(ProjectDependencies) = postProject
+ {4FF5BA11-59EC-4C24-8F52-F235C2E7D43A} = {4FF5BA11-59EC-4C24-8F52-F235C2E7D43A}
+ EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "WebCore", "..\..\..\WebCore\WebCore.vcproj\WebCore.vcproj", "{1C16337B-ACF3-4D03-AA90-851C5B5EADA6}"
+ ProjectSection(ProjectDependencies) = postProject
+ {E498CA9D-3BD2-4D52-8E37-C8DC76526325} = {E498CA9D-3BD2-4D52-8E37-C8DC76526325}
+ EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "WTF", "..\..\..\WTF\WTF.vcproj\WTF.vcproj", "{AA8A5A85-592B-4357-BC60-E0E91E026AF6}"
+ ProjectSection(ProjectDependencies) = postProject
+ {5AE5F5E4-782D-4F63-B4D7-3977B52B9950} = {5AE5F5E4-782D-4F63-B4D7-3977B52B9950}
+ EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "jsc", "..\..\..\JavaScriptCore\JavaScriptCore.vcproj\jsc\jsc.vcproj", "{C59E5129-B453-49B7-A52B-1E104715F76E}"
+ ProjectSection(ProjectDependencies) = postProject
+ {1AFD081F-1AC7-4A97-8EFA-6DF97761A3A2} = {1AFD081F-1AC7-4A97-8EFA-6DF97761A3A2}
+ EndProjectSection
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "JavaScriptCore Folder", "JavaScriptCore Folder", "{557FA164-0E39-4DEC-B66C-8795C8E52399}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "JavaScriptCoreGenerated", "..\..\..\JavaScriptCore\JavaScriptCore.vcproj\JavaScriptCore\JavaScriptCoreGenerated.vcproj", "{4FF5BA11-59EC-4C24-8F52-F235C2E7D43A}"
+ ProjectSection(ProjectDependencies) = postProject
+ {AA8A5A85-592B-4357-BC60-E0E91E026AF6} = {AA8A5A85-592B-4357-BC60-E0E91E026AF6}
+ EndProjectSection
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "WebCore Folder", "WebCore Folder", "{63FB6F8A-C601-43E3-BD16-A00A465C2CB6}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "WebCoreGenerated", "..\..\..\WebCore\WebCore.vcproj\WebCoreGenerated.vcproj", "{0A324352-B3B6-496C-9E5B-4C7E923E628B}"
+ ProjectSection(ProjectDependencies) = postProject
+ {011D10F1-B656-4A1B-A0C3-3842F02122C5} = {011D10F1-B656-4A1B-A0C3-3842F02122C5}
+ EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "QTMovieWin", "..\..\..\WebCore\WebCore.vcproj\QTMovieWin.vcproj", "{E498CA9D-3BD2-4D52-8E37-C8DC76526325}"
+ ProjectSection(ProjectDependencies) = postProject
+ {0A324352-B3B6-496C-9E5B-4C7E923E628B} = {0A324352-B3B6-496C-9E5B-4C7E923E628B}
+ EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "testapi", "..\..\..\JavaScriptCore\JavaScriptCore.vcproj\testapi\testapi.vcproj", "{1AFD081F-1AC7-4A97-8EFA-6DF97761A3A2}"
+ ProjectSection(ProjectDependencies) = postProject
+ {AAE88FEF-509E-4D49-870B-7357922C276F} = {AAE88FEF-509E-4D49-870B-7357922C276F}
+ EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "WebKit", "..\..\..\WebKit2\win\WebKit2.vcproj", "{2E51ABE8-76CB-485B-A66C-46AEF4DF8ACD}"
+ ProjectSection(ProjectDependencies) = postProject
+ {2EDAD637-CBA8-4E55-97ED-7D2BBC336FDB} = {2EDAD637-CBA8-4E55-97ED-7D2BBC336FDB}
+ EndProjectSection
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "WebKit2 Folder", "WebKit2 Folder", "{9AB9C96C-9039-4FA9-8F83-BBFC8F8B2182}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "WebKit2Generated", "..\..\..\WebKit2\win\WebKit2Generated.vcproj", "{2EDAD637-CBA8-4E55-97ED-7D2BBC336FDB}"
+ ProjectSection(ProjectDependencies) = postProject
+ {0662A8A9-82A3-4638-97D8-EC425D8D87C9} = {0662A8A9-82A3-4638-97D8-EC425D8D87C9}
+ EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "WebKit2WebProcess", "..\..\..\WebKit2\win\WebKit2WebProcess.vcproj", "{AAE88FEF-509E-4D49-870B-7357922C276F}"
+ ProjectSection(ProjectDependencies) = postProject
+ {2E51ABE8-76CB-485B-A66C-46AEF4DF8ACD} = {2E51ABE8-76CB-485B-A66C-46AEF4DF8ACD}
+ EndProjectSection
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "WebKitCOM Folder", "WebKitCOM Folder", "{1D359ACC-BE10-45D7-938B-BC7E4B7AA6CA}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Interfaces", "Interfaces.vcproj", "{91762BE2-87EF-4F5A-A480-48B90EB3F406}"
+ ProjectSection(ProjectDependencies) = postProject
+ {1C16337B-ACF3-4D03-AA90-851C5B5EADA6} = {1C16337B-ACF3-4D03-AA90-851C5B5EADA6}
+ EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "WebKitLib", "WebKit.vcproj", "{0662A8A9-82A3-4638-97D8-EC425D8D87C9}"
+ ProjectSection(ProjectDependencies) = postProject
+ {B8437A41-67BC-4769-9452-45203827F821} = {B8437A41-67BC-4769-9452-45203827F821}
+ EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "WebKitGUID", "WebKitGUID.vcproj", "{B8437A41-67BC-4769-9452-45203827F821}"
+ ProjectSection(ProjectDependencies) = postProject
+ {91762BE2-87EF-4F5A-A480-48B90EB3F406} = {91762BE2-87EF-4F5A-A480-48B90EB3F406}
+ EndProjectSection
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Tools", "Tools", "{62DCDFE4-EAD2-48E1-A2BD-BD54AD3C7459}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "DumpRenderTree", "..\..\..\..\Tools\DumpRenderTree\win\DumpRenderTree.vcproj", "{6567DFD4-D6DE-4CD5-825D-17E353D160E1}"
+ ProjectSection(ProjectDependencies) = postProject
+ {83414B15-1C0D-490B-990E-03F4D49170E4} = {83414B15-1C0D-490B-990E-03F4D49170E4}
+ EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ImageDiff", "..\..\..\..\Tools\DumpRenderTree\win\ImageDiff.vcproj", "{59CC0547-70AC-499C-9B19-EC01C6F61137}"
+ ProjectSection(ProjectDependencies) = postProject
+ {C0737398-3565-439E-A2B8-AB2BE4D5430C} = {C0737398-3565-439E-A2B8-AB2BE4D5430C}
+ EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "record-memory-win", "..\..\..\..\Tools\record-memory-win\record-memory-win.vcproj", "{44B9C152-1870-4035-B94D-7B3285AA0C12}"
+ ProjectSection(ProjectDependencies) = postProject
+ {D09806DB-E58B-4646-8C9B-61101906C1E2} = {D09806DB-E58B-4646-8C9B-61101906C1E2}
+ EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TestNetscapePlugin", "..\..\..\..\Tools\DumpRenderTree\TestNetscapePlugIn\win\TestNetscapePlugin.vcproj", "{C0737398-3565-439E-A2B8-AB2BE4D5430C}"
+ ProjectSection(ProjectDependencies) = postProject
+ {767B10FB-76C1-44D0-8005-85ED7F9AA5E4} = {767B10FB-76C1-44D0-8005-85ED7F9AA5E4}
+ EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "WebKitLauncherWin", "..\..\..\..\Tools\WebKitLauncherWin\WebKitLauncherWin.vcproj", "{D09806DB-E58B-4646-8C9B-61101906C1E2}"
+ ProjectSection(ProjectDependencies) = postProject
+ {2974EA02-840B-4995-8719-8920A61006F1} = {2974EA02-840B-4995-8719-8920A61006F1}
+ EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "WinLauncher", "..\..\..\..\Tools\WinLauncher\WinLauncher.vcproj", "{114FCA11-216B-4C8C-957E-30A75AE80443}"
+ ProjectSection(ProjectDependencies) = postProject
+ {14C94979-1ED3-4E1D-9B55-A80FCF4677D0} = {14C94979-1ED3-4E1D-9B55-A80FCF4677D0}
+ EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "InjectedBundle", "..\..\..\..\Tools\WebKitTestRunner\win\InjectedBundle.vcproj", "{CBC3391C-F060-4BF5-A66E-81404168816B}"
+ ProjectSection(ProjectDependencies) = postProject
+ {4343BC0B-A2E0-4B48-8277-F33CFBFA83CD} = {4343BC0B-A2E0-4B48-8277-F33CFBFA83CD}
+ EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "InjectedBundleGenerated", "..\..\..\..\Tools\WebKitTestRunner\win\InjectedBundleGenerated.vcproj", "{4343BC0B-A2E0-4B48-8277-F33CFBFA83CD}"
+ ProjectSection(ProjectDependencies) = postProject
+ {44B9C152-1870-4035-B94D-7B3285AA0C12} = {44B9C152-1870-4035-B94D-7B3285AA0C12}
+ EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "WebKitTestRunner", "..\..\..\..\Tools\WebKitTestRunner\win\WebKitTestRunner.vcproj", "{3B99669B-1817-443B-BCBE-835580146668}"
+ ProjectSection(ProjectDependencies) = postProject
+ {CBC3391C-F060-4BF5-A66E-81404168816B} = {CBC3391C-F060-4BF5-A66E-81404168816B}
+ EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "MiniBrowser", "..\..\..\..\Tools\MiniBrowser\MiniBrowser.vcproj", "{1480CF5F-4160-47B5-A0E6-96AEC8258FB5}"
+ ProjectSection(ProjectDependencies) = postProject
+ {B0101604-B483-4F8C-9C51-90B46A2B1CD3} = {B0101604-B483-4F8C-9C51-90B46A2B1CD3}
+ EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TestWebKitAPI", "..\..\..\..\Tools\TestWebKitAPI\win\TestWebKitAPI.vcproj", "{3E48AB23-D249-488F-A1C4-43CDF52FBD28}"
+ ProjectSection(ProjectDependencies) = postProject
+ {45C45411-7F0E-404D-919A-4EE9BB60BE86} = {45C45411-7F0E-404D-919A-4EE9BB60BE86}
+ EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TestWebKitAPIGenerated", "..\..\..\..\Tools\TestWebKitAPI\win\TestWebKitAPIGenerated.vcproj", "{45C45411-7F0E-404D-919A-4EE9BB60BE86}"
+ ProjectSection(ProjectDependencies) = postProject
+ {C8F6C172-56F2-4E76-B5FA-C3B423B31BE8} = {C8F6C172-56F2-4E76-B5FA-C3B423B31BE8}
+ EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TestWebKitAPIInjectedBundle", "..\..\..\..\Tools\TestWebKitAPI\win\TestWebKitAPIInjectedBundle.vcproj", "{B0101604-B483-4F8C-9C51-90B46A2B1CD3}"
+ ProjectSection(ProjectDependencies) = postProject
+ {3E48AB23-D249-488F-A1C4-43CDF52FBD28} = {3E48AB23-D249-488F-A1C4-43CDF52FBD28}
+ EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "gtest-md", "..\..\..\ThirdParty\gtest\msvc\gtest-md.vcproj", "{C8F6C172-56F2-4E76-B5FA-C3B423B31BE8}"
+ ProjectSection(ProjectDependencies) = postProject
+ {C13FA6EF-B531-4BAD-9A23-18E2BEB8B040} = {C13FA6EF-B531-4BAD-9A23-18E2BEB8B040}
+ EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "WebCoreTestSupport", "..\..\..\WebCore\WebCore.vcproj\WebCoreTestSupport.vcproj", "{83414B15-1C0D-490B-990E-03F4D49170E4}"
+ ProjectSection(ProjectDependencies) = postProject
+ {DD7949B6-F2B4-47C2-9C42-E21E84CB1017} = {DD7949B6-F2B4-47C2-9C42-E21E84CB1017}
+ EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "testRegExp", "..\..\..\JavaScriptCore\JavaScriptCore.vcproj\testRegExp\testRegExp.vcproj", "{14C94979-1ED3-4E1D-9B55-A80FCF4677D0}"
+ ProjectSection(ProjectDependencies) = postProject
+ {C59E5129-B453-49B7-A52B-1E104715F76E} = {C59E5129-B453-49B7-A52B-1E104715F76E}
+ EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "WinLauncherLauncher", "..\..\..\..\Tools\WinLauncher\WinLauncherLauncher.vcproj", "{767B10FB-76C1-44D0-8005-85ED7F9AA5E4}"
+ ProjectSection(ProjectDependencies) = postProject
+ {114FCA11-216B-4C8C-957E-30A75AE80443} = {114FCA11-216B-4C8C-957E-30A75AE80443}
+ EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "MiniBrowserLauncher", "..\..\..\..\Tools\MiniBrowser\MiniBrowserLauncher.vcproj", "{7AF4EBFB-CCBC-448F-A36A-8210E08D6A7D}"
+ ProjectSection(ProjectDependencies) = postProject
+ {1480CF5F-4160-47B5-A0E6-96AEC8258FB5} = {1480CF5F-4160-47B5-A0E6-96AEC8258FB5}
+ EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ImageDiffLauncher", "..\..\..\..\Tools\DumpRenderTree\win\ImageDiffLauncher.vcproj", "{DD7949B6-F2B4-47C2-9C42-E21E84CB1017}"
+ ProjectSection(ProjectDependencies) = postProject
+ {59CC0547-70AC-499C-9B19-EC01C6F61137} = {59CC0547-70AC-499C-9B19-EC01C6F61137}
+ EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "DumpRenderTreeLauncher", "..\..\..\..\Tools\DumpRenderTree\win\DumpRenderTreeLauncher.vcproj", "{2974EA02-840B-4995-8719-8920A61006F1}"
+ ProjectSection(ProjectDependencies) = postProject
+ {6567DFD4-D6DE-4CD5-825D-17E353D160E1} = {6567DFD4-D6DE-4CD5-825D-17E353D160E1}
+ EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "WebKitTestRunnerLauncher", "..\..\..\..\Tools\WebKitTestRunner\win\WebKitTestRunnerLauncher.vcproj", "{C13FA6EF-B531-4BAD-9A23-18E2BEB8B040}"
+ ProjectSection(ProjectDependencies) = postProject
+ {3B99669B-1817-443B-BCBE-835580146668} = {3B99669B-1817-443B-BCBE-835580146668}
+ EndProjectSection
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "WTF", "WTF", "{A671AE22-FBCE-4C41-A723-82939FCA3E92}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "WTFGenerated", "..\..\..\WTF\WTF.vcproj\WTFGenerated.vcproj", "{5AE5F5E4-782D-4F63-B4D7-3977B52B9950}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug_All|Win32 = Debug_All|Win32
+ Debug_Cairo_CFLite|Win32 = Debug_Cairo_CFLite|Win32
+ Debug|Win32 = Debug|Win32
+ Production|Win32 = Production|Win32
+ Release_Cairo_CFLite|Win32 = Release_Cairo_CFLite|Win32
+ Release|Win32 = Release|Win32
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {011D10F1-B656-4A1B-A0C3-3842F02122C5}.Debug_All|Win32.ActiveCfg = Debug_All|Win32
+ {011D10F1-B656-4A1B-A0C3-3842F02122C5}.Debug_All|Win32.Build.0 = Debug_All|Win32
+ {011D10F1-B656-4A1B-A0C3-3842F02122C5}.Debug_Cairo_CFLite|Win32.ActiveCfg = Debug_Cairo_CFLite|Win32
+ {011D10F1-B656-4A1B-A0C3-3842F02122C5}.Debug_Cairo_CFLite|Win32.Build.0 = Debug_Cairo_CFLite|Win32
+ {011D10F1-B656-4A1B-A0C3-3842F02122C5}.Debug|Win32.ActiveCfg = Debug|Win32
+ {011D10F1-B656-4A1B-A0C3-3842F02122C5}.Debug|Win32.Build.0 = Debug|Win32
+ {011D10F1-B656-4A1B-A0C3-3842F02122C5}.Production|Win32.ActiveCfg = Production|Win32
+ {011D10F1-B656-4A1B-A0C3-3842F02122C5}.Production|Win32.Build.0 = Production|Win32
+ {011D10F1-B656-4A1B-A0C3-3842F02122C5}.Release_Cairo_CFLite|Win32.ActiveCfg = Release_Cairo_CFLite|Win32
+ {011D10F1-B656-4A1B-A0C3-3842F02122C5}.Release_Cairo_CFLite|Win32.Build.0 = Release_Cairo_CFLite|Win32
+ {011D10F1-B656-4A1B-A0C3-3842F02122C5}.Release|Win32.ActiveCfg = Release|Win32
+ {011D10F1-B656-4A1B-A0C3-3842F02122C5}.Release|Win32.Build.0 = Release|Win32
+ {1C16337B-ACF3-4D03-AA90-851C5B5EADA6}.Debug_All|Win32.ActiveCfg = Debug_All|Win32
+ {1C16337B-ACF3-4D03-AA90-851C5B5EADA6}.Debug_All|Win32.Build.0 = Debug_All|Win32
+ {1C16337B-ACF3-4D03-AA90-851C5B5EADA6}.Debug_Cairo_CFLite|Win32.ActiveCfg = Debug_Cairo_CFLite|Win32
+ {1C16337B-ACF3-4D03-AA90-851C5B5EADA6}.Debug_Cairo_CFLite|Win32.Build.0 = Debug_Cairo_CFLite|Win32
+ {1C16337B-ACF3-4D03-AA90-851C5B5EADA6}.Debug|Win32.ActiveCfg = Debug|Win32
+ {1C16337B-ACF3-4D03-AA90-851C5B5EADA6}.Debug|Win32.Build.0 = Debug|Win32
+ {1C16337B-ACF3-4D03-AA90-851C5B5EADA6}.Production|Win32.ActiveCfg = Production|Win32
+ {1C16337B-ACF3-4D03-AA90-851C5B5EADA6}.Production|Win32.Build.0 = Production|Win32
+ {1C16337B-ACF3-4D03-AA90-851C5B5EADA6}.Release_Cairo_CFLite|Win32.ActiveCfg = Release_Cairo_CFLite|Win32
+ {1C16337B-ACF3-4D03-AA90-851C5B5EADA6}.Release_Cairo_CFLite|Win32.Build.0 = Release_Cairo_CFLite|Win32
+ {1C16337B-ACF3-4D03-AA90-851C5B5EADA6}.Release|Win32.ActiveCfg = Release|Win32
+ {1C16337B-ACF3-4D03-AA90-851C5B5EADA6}.Release|Win32.Build.0 = Release|Win32
+ {AA8A5A85-592B-4357-BC60-E0E91E026AF6}.Debug_All|Win32.ActiveCfg = Debug_All|Win32
+ {AA8A5A85-592B-4357-BC60-E0E91E026AF6}.Debug_All|Win32.Build.0 = Debug_All|Win32
+ {AA8A5A85-592B-4357-BC60-E0E91E026AF6}.Debug_Cairo_CFLite|Win32.ActiveCfg = Debug_Cairo_CFLite|Win32
+ {AA8A5A85-592B-4357-BC60-E0E91E026AF6}.Debug_Cairo_CFLite|Win32.Build.0 = Debug_Cairo_CFLite|Win32
+ {AA8A5A85-592B-4357-BC60-E0E91E026AF6}.Debug|Win32.ActiveCfg = Debug|Win32
+ {AA8A5A85-592B-4357-BC60-E0E91E026AF6}.Debug|Win32.Build.0 = Debug|Win32
+ {AA8A5A85-592B-4357-BC60-E0E91E026AF6}.Production|Win32.ActiveCfg = Production|Win32
+ {AA8A5A85-592B-4357-BC60-E0E91E026AF6}.Production|Win32.Build.0 = Production|Win32
+ {AA8A5A85-592B-4357-BC60-E0E91E026AF6}.Release_Cairo_CFLite|Win32.ActiveCfg = Release_Cairo_CFLite|Win32
+ {AA8A5A85-592B-4357-BC60-E0E91E026AF6}.Release_Cairo_CFLite|Win32.Build.0 = Release_Cairo_CFLite|Win32
+ {AA8A5A85-592B-4357-BC60-E0E91E026AF6}.Release|Win32.ActiveCfg = Release|Win32
+ {AA8A5A85-592B-4357-BC60-E0E91E026AF6}.Release|Win32.Build.0 = Release|Win32
+ {C59E5129-B453-49B7-A52B-1E104715F76E}.Debug_All|Win32.ActiveCfg = Debug_All|Win32
+ {C59E5129-B453-49B7-A52B-1E104715F76E}.Debug_All|Win32.Build.0 = Debug_All|Win32
+ {C59E5129-B453-49B7-A52B-1E104715F76E}.Debug_Cairo_CFLite|Win32.ActiveCfg = Debug_Cairo_CFLite|Win32
+ {C59E5129-B453-49B7-A52B-1E104715F76E}.Debug_Cairo_CFLite|Win32.Build.0 = Debug_Cairo_CFLite|Win32
+ {C59E5129-B453-49B7-A52B-1E104715F76E}.Debug|Win32.ActiveCfg = Debug|Win32
+ {C59E5129-B453-49B7-A52B-1E104715F76E}.Debug|Win32.Build.0 = Debug|Win32
+ {C59E5129-B453-49B7-A52B-1E104715F76E}.Production|Win32.ActiveCfg = Production|Win32
+ {C59E5129-B453-49B7-A52B-1E104715F76E}.Production|Win32.Build.0 = Production|Win32
+ {C59E5129-B453-49B7-A52B-1E104715F76E}.Release_Cairo_CFLite|Win32.ActiveCfg = Release_Cairo_CFLite|Win32
+ {C59E5129-B453-49B7-A52B-1E104715F76E}.Release_Cairo_CFLite|Win32.Build.0 = Release_Cairo_CFLite|Win32
+ {C59E5129-B453-49B7-A52B-1E104715F76E}.Release|Win32.ActiveCfg = Release|Win32
+ {C59E5129-B453-49B7-A52B-1E104715F76E}.Release|Win32.Build.0 = Release|Win32
+ {4FF5BA11-59EC-4C24-8F52-F235C2E7D43A}.Debug_All|Win32.ActiveCfg = Debug_All|Win32
+ {4FF5BA11-59EC-4C24-8F52-F235C2E7D43A}.Debug_All|Win32.Build.0 = Debug_All|Win32
+ {4FF5BA11-59EC-4C24-8F52-F235C2E7D43A}.Debug_Cairo_CFLite|Win32.ActiveCfg = Debug_Cairo_CFLite|Win32
+ {4FF5BA11-59EC-4C24-8F52-F235C2E7D43A}.Debug_Cairo_CFLite|Win32.Build.0 = Debug_Cairo_CFLite|Win32
+ {4FF5BA11-59EC-4C24-8F52-F235C2E7D43A}.Debug|Win32.ActiveCfg = Debug|Win32
+ {4FF5BA11-59EC-4C24-8F52-F235C2E7D43A}.Debug|Win32.Build.0 = Debug|Win32
+ {4FF5BA11-59EC-4C24-8F52-F235C2E7D43A}.Production|Win32.ActiveCfg = Production|Win32
+ {4FF5BA11-59EC-4C24-8F52-F235C2E7D43A}.Production|Win32.Build.0 = Production|Win32
+ {4FF5BA11-59EC-4C24-8F52-F235C2E7D43A}.Release_Cairo_CFLite|Win32.ActiveCfg = Release_Cairo_CFLite|Win32
+ {4FF5BA11-59EC-4C24-8F52-F235C2E7D43A}.Release_Cairo_CFLite|Win32.Build.0 = Release_Cairo_CFLite|Win32
+ {4FF5BA11-59EC-4C24-8F52-F235C2E7D43A}.Release|Win32.ActiveCfg = Release|Win32
+ {4FF5BA11-59EC-4C24-8F52-F235C2E7D43A}.Release|Win32.Build.0 = Release|Win32
+ {0A324352-B3B6-496C-9E5B-4C7E923E628B}.Debug_All|Win32.ActiveCfg = Debug_All|Win32
+ {0A324352-B3B6-496C-9E5B-4C7E923E628B}.Debug_All|Win32.Build.0 = Debug_All|Win32
+ {0A324352-B3B6-496C-9E5B-4C7E923E628B}.Debug_Cairo_CFLite|Win32.ActiveCfg = Debug_Cairo_CFLite|Win32
+ {0A324352-B3B6-496C-9E5B-4C7E923E628B}.Debug_Cairo_CFLite|Win32.Build.0 = Debug_Cairo_CFLite|Win32
+ {0A324352-B3B6-496C-9E5B-4C7E923E628B}.Debug|Win32.ActiveCfg = Debug|Win32
+ {0A324352-B3B6-496C-9E5B-4C7E923E628B}.Debug|Win32.Build.0 = Debug|Win32
+ {0A324352-B3B6-496C-9E5B-4C7E923E628B}.Production|Win32.ActiveCfg = Production|Win32
+ {0A324352-B3B6-496C-9E5B-4C7E923E628B}.Production|Win32.Build.0 = Production|Win32
+ {0A324352-B3B6-496C-9E5B-4C7E923E628B}.Release_Cairo_CFLite|Win32.ActiveCfg = Release_Cairo_CFLite|Win32
+ {0A324352-B3B6-496C-9E5B-4C7E923E628B}.Release_Cairo_CFLite|Win32.Build.0 = Release_Cairo_CFLite|Win32
+ {0A324352-B3B6-496C-9E5B-4C7E923E628B}.Release|Win32.ActiveCfg = Release|Win32
+ {0A324352-B3B6-496C-9E5B-4C7E923E628B}.Release|Win32.Build.0 = Release|Win32
+ {E498CA9D-3BD2-4D52-8E37-C8DC76526325}.Debug_All|Win32.ActiveCfg = Debug_All|Win32
+ {E498CA9D-3BD2-4D52-8E37-C8DC76526325}.Debug_All|Win32.Build.0 = Debug_All|Win32
+ {E498CA9D-3BD2-4D52-8E37-C8DC76526325}.Debug_Cairo_CFLite|Win32.ActiveCfg = Debug_Cairo_CFLite|Win32
+ {E498CA9D-3BD2-4D52-8E37-C8DC76526325}.Debug|Win32.ActiveCfg = Debug|Win32
+ {E498CA9D-3BD2-4D52-8E37-C8DC76526325}.Debug|Win32.Build.0 = Debug|Win32
+ {E498CA9D-3BD2-4D52-8E37-C8DC76526325}.Production|Win32.ActiveCfg = Production|Win32
+ {E498CA9D-3BD2-4D52-8E37-C8DC76526325}.Production|Win32.Build.0 = Production|Win32
+ {E498CA9D-3BD2-4D52-8E37-C8DC76526325}.Release_Cairo_CFLite|Win32.ActiveCfg = Release_Cairo_CFLite|Win32
+ {E498CA9D-3BD2-4D52-8E37-C8DC76526325}.Release|Win32.ActiveCfg = Release|Win32
+ {E498CA9D-3BD2-4D52-8E37-C8DC76526325}.Release|Win32.Build.0 = Release|Win32
+ {1AFD081F-1AC7-4A97-8EFA-6DF97761A3A2}.Debug_All|Win32.ActiveCfg = Debug_All|Win32
+ {1AFD081F-1AC7-4A97-8EFA-6DF97761A3A2}.Debug_All|Win32.Build.0 = Debug_All|Win32
+ {1AFD081F-1AC7-4A97-8EFA-6DF97761A3A2}.Debug_Cairo_CFLite|Win32.ActiveCfg = Debug_Cairo_CFLite|Win32
+ {1AFD081F-1AC7-4A97-8EFA-6DF97761A3A2}.Debug_Cairo_CFLite|Win32.Build.0 = Debug_Cairo_CFLite|Win32
+ {1AFD081F-1AC7-4A97-8EFA-6DF97761A3A2}.Debug|Win32.ActiveCfg = Debug|Win32
+ {1AFD081F-1AC7-4A97-8EFA-6DF97761A3A2}.Debug|Win32.Build.0 = Debug|Win32
+ {1AFD081F-1AC7-4A97-8EFA-6DF97761A3A2}.Production|Win32.ActiveCfg = Production|Win32
+ {1AFD081F-1AC7-4A97-8EFA-6DF97761A3A2}.Production|Win32.Build.0 = Production|Win32
+ {1AFD081F-1AC7-4A97-8EFA-6DF97761A3A2}.Release_Cairo_CFLite|Win32.ActiveCfg = Release_Cairo_CFLite|Win32
+ {1AFD081F-1AC7-4A97-8EFA-6DF97761A3A2}.Release_Cairo_CFLite|Win32.Build.0 = Release_Cairo_CFLite|Win32
+ {1AFD081F-1AC7-4A97-8EFA-6DF97761A3A2}.Release|Win32.ActiveCfg = Release|Win32
+ {1AFD081F-1AC7-4A97-8EFA-6DF97761A3A2}.Release|Win32.Build.0 = Release|Win32
+ {2E51ABE8-76CB-485B-A66C-46AEF4DF8ACD}.Debug_All|Win32.ActiveCfg = Debug_All|Win32
+ {2E51ABE8-76CB-485B-A66C-46AEF4DF8ACD}.Debug_All|Win32.Build.0 = Debug_All|Win32
+ {2E51ABE8-76CB-485B-A66C-46AEF4DF8ACD}.Debug_Cairo_CFLite|Win32.ActiveCfg = Debug_Cairo_CFLite|Win32
+ {2E51ABE8-76CB-485B-A66C-46AEF4DF8ACD}.Debug_Cairo_CFLite|Win32.Build.0 = Debug_Cairo_CFLite|Win32
+ {2E51ABE8-76CB-485B-A66C-46AEF4DF8ACD}.Debug|Win32.ActiveCfg = Debug|Win32
+ {2E51ABE8-76CB-485B-A66C-46AEF4DF8ACD}.Debug|Win32.Build.0 = Debug|Win32
+ {2E51ABE8-76CB-485B-A66C-46AEF4DF8ACD}.Production|Win32.ActiveCfg = Production|Win32
+ {2E51ABE8-76CB-485B-A66C-46AEF4DF8ACD}.Production|Win32.Build.0 = Production|Win32
+ {2E51ABE8-76CB-485B-A66C-46AEF4DF8ACD}.Release_Cairo_CFLite|Win32.ActiveCfg = Release_Cairo_CFLite|Win32
+ {2E51ABE8-76CB-485B-A66C-46AEF4DF8ACD}.Release_Cairo_CFLite|Win32.Build.0 = Release_Cairo_CFLite|Win32
+ {2E51ABE8-76CB-485B-A66C-46AEF4DF8ACD}.Release|Win32.ActiveCfg = Release|Win32
+ {2E51ABE8-76CB-485B-A66C-46AEF4DF8ACD}.Release|Win32.Build.0 = Release|Win32
+ {2EDAD637-CBA8-4E55-97ED-7D2BBC336FDB}.Debug_All|Win32.ActiveCfg = Debug_All|Win32
+ {2EDAD637-CBA8-4E55-97ED-7D2BBC336FDB}.Debug_All|Win32.Build.0 = Debug_All|Win32
+ {2EDAD637-CBA8-4E55-97ED-7D2BBC336FDB}.Debug_Cairo_CFLite|Win32.ActiveCfg = Debug_Cairo_CFLite|Win32
+ {2EDAD637-CBA8-4E55-97ED-7D2BBC336FDB}.Debug_Cairo_CFLite|Win32.Build.0 = Debug_Cairo_CFLite|Win32
+ {2EDAD637-CBA8-4E55-97ED-7D2BBC336FDB}.Debug|Win32.ActiveCfg = Debug|Win32
+ {2EDAD637-CBA8-4E55-97ED-7D2BBC336FDB}.Debug|Win32.Build.0 = Debug|Win32
+ {2EDAD637-CBA8-4E55-97ED-7D2BBC336FDB}.Production|Win32.ActiveCfg = Production|Win32
+ {2EDAD637-CBA8-4E55-97ED-7D2BBC336FDB}.Production|Win32.Build.0 = Production|Win32
+ {2EDAD637-CBA8-4E55-97ED-7D2BBC336FDB}.Release_Cairo_CFLite|Win32.ActiveCfg = Release_Cairo_CFLite|Win32
+ {2EDAD637-CBA8-4E55-97ED-7D2BBC336FDB}.Release_Cairo_CFLite|Win32.Build.0 = Release_Cairo_CFLite|Win32
+ {2EDAD637-CBA8-4E55-97ED-7D2BBC336FDB}.Release|Win32.ActiveCfg = Release|Win32
+ {2EDAD637-CBA8-4E55-97ED-7D2BBC336FDB}.Release|Win32.Build.0 = Release|Win32
+ {AAE88FEF-509E-4D49-870B-7357922C276F}.Debug_All|Win32.ActiveCfg = Debug_All|Win32
+ {AAE88FEF-509E-4D49-870B-7357922C276F}.Debug_All|Win32.Build.0 = Debug_All|Win32
+ {AAE88FEF-509E-4D49-870B-7357922C276F}.Debug_Cairo_CFLite|Win32.ActiveCfg = Debug_Cairo_CFLite|Win32
+ {AAE88FEF-509E-4D49-870B-7357922C276F}.Debug_Cairo_CFLite|Win32.Build.0 = Debug_Cairo_CFLite|Win32
+ {AAE88FEF-509E-4D49-870B-7357922C276F}.Debug|Win32.ActiveCfg = Debug|Win32
+ {AAE88FEF-509E-4D49-870B-7357922C276F}.Debug|Win32.Build.0 = Debug|Win32
+ {AAE88FEF-509E-4D49-870B-7357922C276F}.Production|Win32.ActiveCfg = Production|Win32
+ {AAE88FEF-509E-4D49-870B-7357922C276F}.Production|Win32.Build.0 = Production|Win32
+ {AAE88FEF-509E-4D49-870B-7357922C276F}.Release_Cairo_CFLite|Win32.ActiveCfg = Release_Cairo_CFLite|Win32
+ {AAE88FEF-509E-4D49-870B-7357922C276F}.Release_Cairo_CFLite|Win32.Build.0 = Release_Cairo_CFLite|Win32
+ {AAE88FEF-509E-4D49-870B-7357922C276F}.Release|Win32.ActiveCfg = Release|Win32
+ {AAE88FEF-509E-4D49-870B-7357922C276F}.Release|Win32.Build.0 = Release|Win32
+ {91762BE2-87EF-4F5A-A480-48B90EB3F406}.Debug_All|Win32.ActiveCfg = Debug_All|Win32
+ {91762BE2-87EF-4F5A-A480-48B90EB3F406}.Debug_All|Win32.Build.0 = Debug_All|Win32
+ {91762BE2-87EF-4F5A-A480-48B90EB3F406}.Debug_Cairo_CFLite|Win32.ActiveCfg = Debug_Cairo_CFLite|Win32
+ {91762BE2-87EF-4F5A-A480-48B90EB3F406}.Debug_Cairo_CFLite|Win32.Build.0 = Debug_Cairo_CFLite|Win32
+ {91762BE2-87EF-4F5A-A480-48B90EB3F406}.Debug|Win32.ActiveCfg = Debug|Win32
+ {91762BE2-87EF-4F5A-A480-48B90EB3F406}.Debug|Win32.Build.0 = Debug|Win32
+ {91762BE2-87EF-4F5A-A480-48B90EB3F406}.Production|Win32.ActiveCfg = Production|Win32
+ {91762BE2-87EF-4F5A-A480-48B90EB3F406}.Production|Win32.Build.0 = Production|Win32
+ {91762BE2-87EF-4F5A-A480-48B90EB3F406}.Release_Cairo_CFLite|Win32.ActiveCfg = Release_Cairo_CFLite|Win32
+ {91762BE2-87EF-4F5A-A480-48B90EB3F406}.Release_Cairo_CFLite|Win32.Build.0 = Release_Cairo_CFLite|Win32
+ {91762BE2-87EF-4F5A-A480-48B90EB3F406}.Release|Win32.ActiveCfg = Release|Win32
+ {91762BE2-87EF-4F5A-A480-48B90EB3F406}.Release|Win32.Build.0 = Release|Win32
+ {0662A8A9-82A3-4638-97D8-EC425D8D87C9}.Debug_All|Win32.ActiveCfg = Debug_All|Win32
+ {0662A8A9-82A3-4638-97D8-EC425D8D87C9}.Debug_All|Win32.Build.0 = Debug_All|Win32
+ {0662A8A9-82A3-4638-97D8-EC425D8D87C9}.Debug_Cairo_CFLite|Win32.ActiveCfg = Debug_Cairo_CFLite|Win32
+ {0662A8A9-82A3-4638-97D8-EC425D8D87C9}.Debug_Cairo_CFLite|Win32.Build.0 = Debug_Cairo_CFLite|Win32
+ {0662A8A9-82A3-4638-97D8-EC425D8D87C9}.Debug|Win32.ActiveCfg = Debug|Win32
+ {0662A8A9-82A3-4638-97D8-EC425D8D87C9}.Debug|Win32.Build.0 = Debug|Win32
+ {0662A8A9-82A3-4638-97D8-EC425D8D87C9}.Production|Win32.ActiveCfg = Production|Win32
+ {0662A8A9-82A3-4638-97D8-EC425D8D87C9}.Production|Win32.Build.0 = Production|Win32
+ {0662A8A9-82A3-4638-97D8-EC425D8D87C9}.Release_Cairo_CFLite|Win32.ActiveCfg = Release_Cairo_CFLite|Win32
+ {0662A8A9-82A3-4638-97D8-EC425D8D87C9}.Release_Cairo_CFLite|Win32.Build.0 = Release_Cairo_CFLite|Win32
+ {0662A8A9-82A3-4638-97D8-EC425D8D87C9}.Release|Win32.ActiveCfg = Release|Win32
+ {0662A8A9-82A3-4638-97D8-EC425D8D87C9}.Release|Win32.Build.0 = Release|Win32
+ {B8437A41-67BC-4769-9452-45203827F821}.Debug_All|Win32.ActiveCfg = Debug_All|Win32
+ {B8437A41-67BC-4769-9452-45203827F821}.Debug_All|Win32.Build.0 = Debug_All|Win32
+ {B8437A41-67BC-4769-9452-45203827F821}.Debug_Cairo_CFLite|Win32.ActiveCfg = Debug_Cairo_CFLite|Win32
+ {B8437A41-67BC-4769-9452-45203827F821}.Debug_Cairo_CFLite|Win32.Build.0 = Debug_Cairo_CFLite|Win32
+ {B8437A41-67BC-4769-9452-45203827F821}.Debug|Win32.ActiveCfg = Debug|Win32
+ {B8437A41-67BC-4769-9452-45203827F821}.Debug|Win32.Build.0 = Debug|Win32
+ {B8437A41-67BC-4769-9452-45203827F821}.Production|Win32.ActiveCfg = Production|Win32
+ {B8437A41-67BC-4769-9452-45203827F821}.Production|Win32.Build.0 = Production|Win32
+ {B8437A41-67BC-4769-9452-45203827F821}.Release_Cairo_CFLite|Win32.ActiveCfg = Release_Cairo_CFLite|Win32
+ {B8437A41-67BC-4769-9452-45203827F821}.Release_Cairo_CFLite|Win32.Build.0 = Release_Cairo_CFLite|Win32
+ {B8437A41-67BC-4769-9452-45203827F821}.Release|Win32.ActiveCfg = Release|Win32
+ {B8437A41-67BC-4769-9452-45203827F821}.Release|Win32.Build.0 = Release|Win32
+ {6567DFD4-D6DE-4CD5-825D-17E353D160E1}.Debug_All|Win32.ActiveCfg = Debug_All|Win32
+ {6567DFD4-D6DE-4CD5-825D-17E353D160E1}.Debug_All|Win32.Build.0 = Debug_All|Win32
+ {6567DFD4-D6DE-4CD5-825D-17E353D160E1}.Debug_Cairo_CFLite|Win32.ActiveCfg = Debug_Cairo_CFLite|Win32
+ {6567DFD4-D6DE-4CD5-825D-17E353D160E1}.Debug_Cairo_CFLite|Win32.Build.0 = Debug_Cairo_CFLite|Win32
+ {6567DFD4-D6DE-4CD5-825D-17E353D160E1}.Debug|Win32.ActiveCfg = Debug|Win32
+ {6567DFD4-D6DE-4CD5-825D-17E353D160E1}.Debug|Win32.Build.0 = Debug|Win32
+ {6567DFD4-D6DE-4CD5-825D-17E353D160E1}.Production|Win32.ActiveCfg = Production|Win32
+ {6567DFD4-D6DE-4CD5-825D-17E353D160E1}.Production|Win32.Build.0 = Production|Win32
+ {6567DFD4-D6DE-4CD5-825D-17E353D160E1}.Release_Cairo_CFLite|Win32.ActiveCfg = Release_Cairo_CFLite|Win32
+ {6567DFD4-D6DE-4CD5-825D-17E353D160E1}.Release_Cairo_CFLite|Win32.Build.0 = Release_Cairo_CFLite|Win32
+ {6567DFD4-D6DE-4CD5-825D-17E353D160E1}.Release|Win32.ActiveCfg = Release|Win32
+ {6567DFD4-D6DE-4CD5-825D-17E353D160E1}.Release|Win32.Build.0 = Release|Win32
+ {59CC0547-70AC-499C-9B19-EC01C6F61137}.Debug_All|Win32.ActiveCfg = Debug_All|Win32
+ {59CC0547-70AC-499C-9B19-EC01C6F61137}.Debug_All|Win32.Build.0 = Debug_All|Win32
+ {59CC0547-70AC-499C-9B19-EC01C6F61137}.Debug_Cairo_CFLite|Win32.ActiveCfg = Debug_Cairo_CFLite|Win32
+ {59CC0547-70AC-499C-9B19-EC01C6F61137}.Debug_Cairo_CFLite|Win32.Build.0 = Debug_Cairo_CFLite|Win32
+ {59CC0547-70AC-499C-9B19-EC01C6F61137}.Debug|Win32.ActiveCfg = Debug|Win32
+ {59CC0547-70AC-499C-9B19-EC01C6F61137}.Debug|Win32.Build.0 = Debug|Win32
+ {59CC0547-70AC-499C-9B19-EC01C6F61137}.Production|Win32.ActiveCfg = Production|Win32
+ {59CC0547-70AC-499C-9B19-EC01C6F61137}.Production|Win32.Build.0 = Production|Win32
+ {59CC0547-70AC-499C-9B19-EC01C6F61137}.Release_Cairo_CFLite|Win32.ActiveCfg = Release_Cairo_CFLite|Win32
+ {59CC0547-70AC-499C-9B19-EC01C6F61137}.Release_Cairo_CFLite|Win32.Build.0 = Release_Cairo_CFLite|Win32
+ {59CC0547-70AC-499C-9B19-EC01C6F61137}.Release|Win32.ActiveCfg = Release|Win32
+ {59CC0547-70AC-499C-9B19-EC01C6F61137}.Release|Win32.Build.0 = Release|Win32
+ {44B9C152-1870-4035-B94D-7B3285AA0C12}.Debug_All|Win32.ActiveCfg = Debug_All|Win32
+ {44B9C152-1870-4035-B94D-7B3285AA0C12}.Debug_All|Win32.Build.0 = Debug_All|Win32
+ {44B9C152-1870-4035-B94D-7B3285AA0C12}.Debug_Cairo_CFLite|Win32.ActiveCfg = Debug_Cairo_CFLite|Win32
+ {44B9C152-1870-4035-B94D-7B3285AA0C12}.Debug_Cairo_CFLite|Win32.Build.0 = Debug_Cairo_CFLite|Win32
+ {44B9C152-1870-4035-B94D-7B3285AA0C12}.Debug|Win32.ActiveCfg = Debug|Win32
+ {44B9C152-1870-4035-B94D-7B3285AA0C12}.Debug|Win32.Build.0 = Debug|Win32
+ {44B9C152-1870-4035-B94D-7B3285AA0C12}.Production|Win32.ActiveCfg = Production|Win32
+ {44B9C152-1870-4035-B94D-7B3285AA0C12}.Production|Win32.Build.0 = Production|Win32
+ {44B9C152-1870-4035-B94D-7B3285AA0C12}.Release_Cairo_CFLite|Win32.ActiveCfg = Release_Cairo_CFLite|Win32
+ {44B9C152-1870-4035-B94D-7B3285AA0C12}.Release_Cairo_CFLite|Win32.Build.0 = Release_Cairo_CFLite|Win32
+ {44B9C152-1870-4035-B94D-7B3285AA0C12}.Release|Win32.ActiveCfg = Release|Win32
+ {44B9C152-1870-4035-B94D-7B3285AA0C12}.Release|Win32.Build.0 = Release|Win32
+ {C0737398-3565-439E-A2B8-AB2BE4D5430C}.Debug_All|Win32.ActiveCfg = Debug_All|Win32
+ {C0737398-3565-439E-A2B8-AB2BE4D5430C}.Debug_All|Win32.Build.0 = Debug_All|Win32
+ {C0737398-3565-439E-A2B8-AB2BE4D5430C}.Debug_Cairo_CFLite|Win32.ActiveCfg = Debug_Cairo_CFLite|Win32
+ {C0737398-3565-439E-A2B8-AB2BE4D5430C}.Debug_Cairo_CFLite|Win32.Build.0 = Debug_Cairo_CFLite|Win32
+ {C0737398-3565-439E-A2B8-AB2BE4D5430C}.Debug|Win32.ActiveCfg = Debug|Win32
+ {C0737398-3565-439E-A2B8-AB2BE4D5430C}.Debug|Win32.Build.0 = Debug|Win32
+ {C0737398-3565-439E-A2B8-AB2BE4D5430C}.Production|Win32.ActiveCfg = Production|Win32
+ {C0737398-3565-439E-A2B8-AB2BE4D5430C}.Production|Win32.Build.0 = Production|Win32
+ {C0737398-3565-439E-A2B8-AB2BE4D5430C}.Release_Cairo_CFLite|Win32.ActiveCfg = Release_Cairo_CFLite|Win32
+ {C0737398-3565-439E-A2B8-AB2BE4D5430C}.Release_Cairo_CFLite|Win32.Build.0 = Release_Cairo_CFLite|Win32
+ {C0737398-3565-439E-A2B8-AB2BE4D5430C}.Release|Win32.ActiveCfg = Release|Win32
+ {C0737398-3565-439E-A2B8-AB2BE4D5430C}.Release|Win32.Build.0 = Release|Win32
+ {D09806DB-E58B-4646-8C9B-61101906C1E2}.Debug_All|Win32.ActiveCfg = Debug_All|Win32
+ {D09806DB-E58B-4646-8C9B-61101906C1E2}.Debug_All|Win32.Build.0 = Debug_All|Win32
+ {D09806DB-E58B-4646-8C9B-61101906C1E2}.Debug_Cairo_CFLite|Win32.ActiveCfg = Debug_Cairo_CFLite|Win32
+ {D09806DB-E58B-4646-8C9B-61101906C1E2}.Debug_Cairo_CFLite|Win32.Build.0 = Debug_Cairo_CFLite|Win32
+ {D09806DB-E58B-4646-8C9B-61101906C1E2}.Debug|Win32.ActiveCfg = Debug|Win32
+ {D09806DB-E58B-4646-8C9B-61101906C1E2}.Debug|Win32.Build.0 = Debug|Win32
+ {D09806DB-E58B-4646-8C9B-61101906C1E2}.Production|Win32.ActiveCfg = Production|Win32
+ {D09806DB-E58B-4646-8C9B-61101906C1E2}.Production|Win32.Build.0 = Production|Win32
+ {D09806DB-E58B-4646-8C9B-61101906C1E2}.Release_Cairo_CFLite|Win32.ActiveCfg = Release_Cairo_CFLite|Win32
+ {D09806DB-E58B-4646-8C9B-61101906C1E2}.Release_Cairo_CFLite|Win32.Build.0 = Release_Cairo_CFLite|Win32
+ {D09806DB-E58B-4646-8C9B-61101906C1E2}.Release|Win32.ActiveCfg = Release|Win32
+ {D09806DB-E58B-4646-8C9B-61101906C1E2}.Release|Win32.Build.0 = Release|Win32
+ {114FCA11-216B-4C8C-957E-30A75AE80443}.Debug_All|Win32.ActiveCfg = Debug_All|Win32
+ {114FCA11-216B-4C8C-957E-30A75AE80443}.Debug_All|Win32.Build.0 = Debug_All|Win32
+ {114FCA11-216B-4C8C-957E-30A75AE80443}.Debug_Cairo_CFLite|Win32.ActiveCfg = Debug_Cairo_CFLite|Win32
+ {114FCA11-216B-4C8C-957E-30A75AE80443}.Debug_Cairo_CFLite|Win32.Build.0 = Debug_Cairo_CFLite|Win32
+ {114FCA11-216B-4C8C-957E-30A75AE80443}.Debug|Win32.ActiveCfg = Debug|Win32
+ {114FCA11-216B-4C8C-957E-30A75AE80443}.Debug|Win32.Build.0 = Debug|Win32
+ {114FCA11-216B-4C8C-957E-30A75AE80443}.Production|Win32.ActiveCfg = Production|Win32
+ {114FCA11-216B-4C8C-957E-30A75AE80443}.Production|Win32.Build.0 = Production|Win32
+ {114FCA11-216B-4C8C-957E-30A75AE80443}.Release_Cairo_CFLite|Win32.ActiveCfg = Release_Cairo_CFLite|Win32
+ {114FCA11-216B-4C8C-957E-30A75AE80443}.Release_Cairo_CFLite|Win32.Build.0 = Release_Cairo_CFLite|Win32
+ {114FCA11-216B-4C8C-957E-30A75AE80443}.Release|Win32.ActiveCfg = Release|Win32
+ {114FCA11-216B-4C8C-957E-30A75AE80443}.Release|Win32.Build.0 = Release|Win32
+ {CBC3391C-F060-4BF5-A66E-81404168816B}.Debug_All|Win32.ActiveCfg = Debug_All|Win32
+ {CBC3391C-F060-4BF5-A66E-81404168816B}.Debug_All|Win32.Build.0 = Debug_All|Win32
+ {CBC3391C-F060-4BF5-A66E-81404168816B}.Debug_Cairo_CFLite|Win32.ActiveCfg = Debug_Cairo_CFLite|Win32
+ {CBC3391C-F060-4BF5-A66E-81404168816B}.Debug_Cairo_CFLite|Win32.Build.0 = Debug_Cairo_CFLite|Win32
+ {CBC3391C-F060-4BF5-A66E-81404168816B}.Debug|Win32.ActiveCfg = Debug|Win32
+ {CBC3391C-F060-4BF5-A66E-81404168816B}.Debug|Win32.Build.0 = Debug|Win32
+ {CBC3391C-F060-4BF5-A66E-81404168816B}.Production|Win32.ActiveCfg = Production|Win32
+ {CBC3391C-F060-4BF5-A66E-81404168816B}.Production|Win32.Build.0 = Production|Win32
+ {CBC3391C-F060-4BF5-A66E-81404168816B}.Release_Cairo_CFLite|Win32.ActiveCfg = Release_Cairo_CFLite|Win32
+ {CBC3391C-F060-4BF5-A66E-81404168816B}.Release_Cairo_CFLite|Win32.Build.0 = Release_Cairo_CFLite|Win32
+ {CBC3391C-F060-4BF5-A66E-81404168816B}.Release|Win32.ActiveCfg = Release|Win32
+ {CBC3391C-F060-4BF5-A66E-81404168816B}.Release|Win32.Build.0 = Release|Win32
+ {4343BC0B-A2E0-4B48-8277-F33CFBFA83CD}.Debug_All|Win32.ActiveCfg = Debug_All|Win32
+ {4343BC0B-A2E0-4B48-8277-F33CFBFA83CD}.Debug_All|Win32.Build.0 = Debug_All|Win32
+ {4343BC0B-A2E0-4B48-8277-F33CFBFA83CD}.Debug_Cairo_CFLite|Win32.ActiveCfg = Debug_Cairo_CFLite|Win32
+ {4343BC0B-A2E0-4B48-8277-F33CFBFA83CD}.Debug_Cairo_CFLite|Win32.Build.0 = Debug_Cairo_CFLite|Win32
+ {4343BC0B-A2E0-4B48-8277-F33CFBFA83CD}.Debug|Win32.ActiveCfg = Debug|Win32
+ {4343BC0B-A2E0-4B48-8277-F33CFBFA83CD}.Debug|Win32.Build.0 = Debug|Win32
+ {4343BC0B-A2E0-4B48-8277-F33CFBFA83CD}.Production|Win32.ActiveCfg = Production|Win32
+ {4343BC0B-A2E0-4B48-8277-F33CFBFA83CD}.Production|Win32.Build.0 = Production|Win32
+ {4343BC0B-A2E0-4B48-8277-F33CFBFA83CD}.Release_Cairo_CFLite|Win32.ActiveCfg = Release_Cairo_CFLite|Win32
+ {4343BC0B-A2E0-4B48-8277-F33CFBFA83CD}.Release_Cairo_CFLite|Win32.Build.0 = Release_Cairo_CFLite|Win32
+ {4343BC0B-A2E0-4B48-8277-F33CFBFA83CD}.Release|Win32.ActiveCfg = Release|Win32
+ {4343BC0B-A2E0-4B48-8277-F33CFBFA83CD}.Release|Win32.Build.0 = Release|Win32
+ {3B99669B-1817-443B-BCBE-835580146668}.Debug_All|Win32.ActiveCfg = Debug_All|Win32
+ {3B99669B-1817-443B-BCBE-835580146668}.Debug_All|Win32.Build.0 = Debug_All|Win32
+ {3B99669B-1817-443B-BCBE-835580146668}.Debug_Cairo_CFLite|Win32.ActiveCfg = Debug_Cairo_CFLite|Win32
+ {3B99669B-1817-443B-BCBE-835580146668}.Debug_Cairo_CFLite|Win32.Build.0 = Debug_Cairo_CFLite|Win32
+ {3B99669B-1817-443B-BCBE-835580146668}.Debug|Win32.ActiveCfg = Debug|Win32
+ {3B99669B-1817-443B-BCBE-835580146668}.Debug|Win32.Build.0 = Debug|Win32
+ {3B99669B-1817-443B-BCBE-835580146668}.Production|Win32.ActiveCfg = Production|Win32
+ {3B99669B-1817-443B-BCBE-835580146668}.Production|Win32.Build.0 = Production|Win32
+ {3B99669B-1817-443B-BCBE-835580146668}.Release_Cairo_CFLite|Win32.ActiveCfg = Release_Cairo_CFLite|Win32
+ {3B99669B-1817-443B-BCBE-835580146668}.Release_Cairo_CFLite|Win32.Build.0 = Release_Cairo_CFLite|Win32
+ {3B99669B-1817-443B-BCBE-835580146668}.Release|Win32.ActiveCfg = Release|Win32
+ {3B99669B-1817-443B-BCBE-835580146668}.Release|Win32.Build.0 = Release|Win32
+ {1480CF5F-4160-47B5-A0E6-96AEC8258FB5}.Debug_All|Win32.ActiveCfg = Debug_All|Win32
+ {1480CF5F-4160-47B5-A0E6-96AEC8258FB5}.Debug_All|Win32.Build.0 = Debug_All|Win32
+ {1480CF5F-4160-47B5-A0E6-96AEC8258FB5}.Debug_Cairo_CFLite|Win32.ActiveCfg = Debug_Cairo_CFLite|Win32
+ {1480CF5F-4160-47B5-A0E6-96AEC8258FB5}.Debug_Cairo_CFLite|Win32.Build.0 = Debug_Cairo_CFLite|Win32
+ {1480CF5F-4160-47B5-A0E6-96AEC8258FB5}.Debug|Win32.ActiveCfg = Debug|Win32
+ {1480CF5F-4160-47B5-A0E6-96AEC8258FB5}.Debug|Win32.Build.0 = Debug|Win32
+ {1480CF5F-4160-47B5-A0E6-96AEC8258FB5}.Production|Win32.ActiveCfg = Production|Win32
+ {1480CF5F-4160-47B5-A0E6-96AEC8258FB5}.Production|Win32.Build.0 = Production|Win32
+ {1480CF5F-4160-47B5-A0E6-96AEC8258FB5}.Release_Cairo_CFLite|Win32.ActiveCfg = Release_Cairo_CFLite|Win32
+ {1480CF5F-4160-47B5-A0E6-96AEC8258FB5}.Release_Cairo_CFLite|Win32.Build.0 = Release_Cairo_CFLite|Win32
+ {1480CF5F-4160-47B5-A0E6-96AEC8258FB5}.Release|Win32.ActiveCfg = Release|Win32
+ {1480CF5F-4160-47B5-A0E6-96AEC8258FB5}.Release|Win32.Build.0 = Release|Win32
+ {3E48AB23-D249-488F-A1C4-43CDF52FBD28}.Debug_All|Win32.ActiveCfg = Debug_All|Win32
+ {3E48AB23-D249-488F-A1C4-43CDF52FBD28}.Debug_All|Win32.Build.0 = Debug_All|Win32
+ {3E48AB23-D249-488F-A1C4-43CDF52FBD28}.Debug_Cairo_CFLite|Win32.ActiveCfg = Debug_Cairo_CFLite|Win32
+ {3E48AB23-D249-488F-A1C4-43CDF52FBD28}.Debug_Cairo_CFLite|Win32.Build.0 = Debug_Cairo_CFLite|Win32
+ {3E48AB23-D249-488F-A1C4-43CDF52FBD28}.Debug|Win32.ActiveCfg = Debug|Win32
+ {3E48AB23-D249-488F-A1C4-43CDF52FBD28}.Debug|Win32.Build.0 = Debug|Win32
+ {3E48AB23-D249-488F-A1C4-43CDF52FBD28}.Production|Win32.ActiveCfg = Production|Win32
+ {3E48AB23-D249-488F-A1C4-43CDF52FBD28}.Production|Win32.Build.0 = Production|Win32
+ {3E48AB23-D249-488F-A1C4-43CDF52FBD28}.Release_Cairo_CFLite|Win32.ActiveCfg = Release_Cairo_CFLite|Win32
+ {3E48AB23-D249-488F-A1C4-43CDF52FBD28}.Release_Cairo_CFLite|Win32.Build.0 = Release_Cairo_CFLite|Win32
+ {3E48AB23-D249-488F-A1C4-43CDF52FBD28}.Release|Win32.ActiveCfg = Release|Win32
+ {3E48AB23-D249-488F-A1C4-43CDF52FBD28}.Release|Win32.Build.0 = Release|Win32
+ {45C45411-7F0E-404D-919A-4EE9BB60BE86}.Debug_All|Win32.ActiveCfg = Debug_All|Win32
+ {45C45411-7F0E-404D-919A-4EE9BB60BE86}.Debug_All|Win32.Build.0 = Debug_All|Win32
+ {45C45411-7F0E-404D-919A-4EE9BB60BE86}.Debug_Cairo_CFLite|Win32.ActiveCfg = Debug_Cairo_CFLite|Win32
+ {45C45411-7F0E-404D-919A-4EE9BB60BE86}.Debug_Cairo_CFLite|Win32.Build.0 = Debug_Cairo_CFLite|Win32
+ {45C45411-7F0E-404D-919A-4EE9BB60BE86}.Debug|Win32.ActiveCfg = Debug|Win32
+ {45C45411-7F0E-404D-919A-4EE9BB60BE86}.Debug|Win32.Build.0 = Debug|Win32
+ {45C45411-7F0E-404D-919A-4EE9BB60BE86}.Production|Win32.ActiveCfg = Production|Win32
+ {45C45411-7F0E-404D-919A-4EE9BB60BE86}.Production|Win32.Build.0 = Production|Win32
+ {45C45411-7F0E-404D-919A-4EE9BB60BE86}.Release_Cairo_CFLite|Win32.ActiveCfg = Release_Cairo_CFLite|Win32
+ {45C45411-7F0E-404D-919A-4EE9BB60BE86}.Release_Cairo_CFLite|Win32.Build.0 = Release_Cairo_CFLite|Win32
+ {45C45411-7F0E-404D-919A-4EE9BB60BE86}.Release|Win32.ActiveCfg = Release|Win32
+ {45C45411-7F0E-404D-919A-4EE9BB60BE86}.Release|Win32.Build.0 = Release|Win32
+ {B0101604-B483-4F8C-9C51-90B46A2B1CD3}.Debug_All|Win32.ActiveCfg = Debug_All|Win32
+ {B0101604-B483-4F8C-9C51-90B46A2B1CD3}.Debug_All|Win32.Build.0 = Debug_All|Win32
+ {B0101604-B483-4F8C-9C51-90B46A2B1CD3}.Debug_Cairo_CFLite|Win32.ActiveCfg = Debug_Cairo_CFLite|Win32
+ {B0101604-B483-4F8C-9C51-90B46A2B1CD3}.Debug_Cairo_CFLite|Win32.Build.0 = Debug_Cairo_CFLite|Win32
+ {B0101604-B483-4F8C-9C51-90B46A2B1CD3}.Debug|Win32.ActiveCfg = Debug|Win32
+ {B0101604-B483-4F8C-9C51-90B46A2B1CD3}.Debug|Win32.Build.0 = Debug|Win32
+ {B0101604-B483-4F8C-9C51-90B46A2B1CD3}.Production|Win32.ActiveCfg = Production|Win32
+ {B0101604-B483-4F8C-9C51-90B46A2B1CD3}.Production|Win32.Build.0 = Production|Win32
+ {B0101604-B483-4F8C-9C51-90B46A2B1CD3}.Release_Cairo_CFLite|Win32.ActiveCfg = Release_Cairo_CFLite|Win32
+ {B0101604-B483-4F8C-9C51-90B46A2B1CD3}.Release_Cairo_CFLite|Win32.Build.0 = Release_Cairo_CFLite|Win32
+ {B0101604-B483-4F8C-9C51-90B46A2B1CD3}.Release|Win32.ActiveCfg = Release|Win32
+ {B0101604-B483-4F8C-9C51-90B46A2B1CD3}.Release|Win32.Build.0 = Release|Win32
+ {C8F6C172-56F2-4E76-B5FA-C3B423B31BE8}.Debug_All|Win32.ActiveCfg = Debug_All|Win32
+ {C8F6C172-56F2-4E76-B5FA-C3B423B31BE8}.Debug_All|Win32.Build.0 = Debug_All|Win32
+ {C8F6C172-56F2-4E76-B5FA-C3B423B31BE8}.Debug_Cairo_CFLite|Win32.ActiveCfg = Debug_Cairo_CFLite|Win32
+ {C8F6C172-56F2-4E76-B5FA-C3B423B31BE8}.Debug_Cairo_CFLite|Win32.Build.0 = Debug_Cairo_CFLite|Win32
+ {C8F6C172-56F2-4E76-B5FA-C3B423B31BE8}.Debug|Win32.ActiveCfg = Debug|Win32
+ {C8F6C172-56F2-4E76-B5FA-C3B423B31BE8}.Debug|Win32.Build.0 = Debug|Win32
+ {C8F6C172-56F2-4E76-B5FA-C3B423B31BE8}.Production|Win32.ActiveCfg = Production|Win32
+ {C8F6C172-56F2-4E76-B5FA-C3B423B31BE8}.Production|Win32.Build.0 = Production|Win32
+ {C8F6C172-56F2-4E76-B5FA-C3B423B31BE8}.Release_Cairo_CFLite|Win32.ActiveCfg = Release_Cairo_CFLite|Win32
+ {C8F6C172-56F2-4E76-B5FA-C3B423B31BE8}.Release_Cairo_CFLite|Win32.Build.0 = Release_Cairo_CFLite|Win32
+ {C8F6C172-56F2-4E76-B5FA-C3B423B31BE8}.Release|Win32.ActiveCfg = Release|Win32
+ {C8F6C172-56F2-4E76-B5FA-C3B423B31BE8}.Release|Win32.Build.0 = Release|Win32
+ {83414B15-1C0D-490B-990E-03F4D49170E4}.Debug_All|Win32.ActiveCfg = Debug_All|Win32
+ {83414B15-1C0D-490B-990E-03F4D49170E4}.Debug_All|Win32.Build.0 = Debug_All|Win32
+ {83414B15-1C0D-490B-990E-03F4D49170E4}.Debug_Cairo_CFLite|Win32.ActiveCfg = Debug_Cairo_CFLite|Win32
+ {83414B15-1C0D-490B-990E-03F4D49170E4}.Debug_Cairo_CFLite|Win32.Build.0 = Debug_Cairo_CFLite|Win32
+ {83414B15-1C0D-490B-990E-03F4D49170E4}.Debug|Win32.ActiveCfg = Debug|Win32
+ {83414B15-1C0D-490B-990E-03F4D49170E4}.Debug|Win32.Build.0 = Debug|Win32
+ {83414B15-1C0D-490B-990E-03F4D49170E4}.Production|Win32.ActiveCfg = Production|Win32
+ {83414B15-1C0D-490B-990E-03F4D49170E4}.Production|Win32.Build.0 = Production|Win32
+ {83414B15-1C0D-490B-990E-03F4D49170E4}.Release_Cairo_CFLite|Win32.ActiveCfg = Release_Cairo_CFLite|Win32
+ {83414B15-1C0D-490B-990E-03F4D49170E4}.Release_Cairo_CFLite|Win32.Build.0 = Release_Cairo_CFLite|Win32
+ {83414B15-1C0D-490B-990E-03F4D49170E4}.Release|Win32.ActiveCfg = Release|Win32
+ {83414B15-1C0D-490B-990E-03F4D49170E4}.Release|Win32.Build.0 = Release|Win32
+ {14C94979-1ED3-4E1D-9B55-A80FCF4677D0}.Debug_All|Win32.ActiveCfg = Debug_All|Win32
+ {14C94979-1ED3-4E1D-9B55-A80FCF4677D0}.Debug_All|Win32.Build.0 = Debug_All|Win32
+ {14C94979-1ED3-4E1D-9B55-A80FCF4677D0}.Debug_Cairo_CFLite|Win32.ActiveCfg = Debug_Cairo_CFLite|Win32
+ {14C94979-1ED3-4E1D-9B55-A80FCF4677D0}.Debug_Cairo_CFLite|Win32.Build.0 = Debug_Cairo_CFLite|Win32
+ {14C94979-1ED3-4E1D-9B55-A80FCF4677D0}.Debug|Win32.ActiveCfg = Debug|Win32
+ {14C94979-1ED3-4E1D-9B55-A80FCF4677D0}.Debug|Win32.Build.0 = Debug|Win32
+ {14C94979-1ED3-4E1D-9B55-A80FCF4677D0}.Production|Win32.ActiveCfg = Production|Win32
+ {14C94979-1ED3-4E1D-9B55-A80FCF4677D0}.Production|Win32.Build.0 = Production|Win32
+ {14C94979-1ED3-4E1D-9B55-A80FCF4677D0}.Release_Cairo_CFLite|Win32.ActiveCfg = Release_Cairo_CFLite|Win32
+ {14C94979-1ED3-4E1D-9B55-A80FCF4677D0}.Release_Cairo_CFLite|Win32.Build.0 = Release_Cairo_CFLite|Win32
+ {14C94979-1ED3-4E1D-9B55-A80FCF4677D0}.Release|Win32.ActiveCfg = Release|Win32
+ {14C94979-1ED3-4E1D-9B55-A80FCF4677D0}.Release|Win32.Build.0 = Release|Win32
+ {767B10FB-76C1-44D0-8005-85ED7F9AA5E4}.Debug_All|Win32.ActiveCfg = Debug_All|Win32
+ {767B10FB-76C1-44D0-8005-85ED7F9AA5E4}.Debug_All|Win32.Build.0 = Debug_All|Win32
+ {767B10FB-76C1-44D0-8005-85ED7F9AA5E4}.Debug_Cairo_CFLite|Win32.ActiveCfg = Debug_Cairo_CFLite|Win32
+ {767B10FB-76C1-44D0-8005-85ED7F9AA5E4}.Debug_Cairo_CFLite|Win32.Build.0 = Debug_Cairo_CFLite|Win32
+ {767B10FB-76C1-44D0-8005-85ED7F9AA5E4}.Debug|Win32.ActiveCfg = Debug|Win32
+ {767B10FB-76C1-44D0-8005-85ED7F9AA5E4}.Debug|Win32.Build.0 = Debug|Win32
+ {767B10FB-76C1-44D0-8005-85ED7F9AA5E4}.Production|Win32.ActiveCfg = Production|Win32
+ {767B10FB-76C1-44D0-8005-85ED7F9AA5E4}.Production|Win32.Build.0 = Production|Win32
+ {767B10FB-76C1-44D0-8005-85ED7F9AA5E4}.Release_Cairo_CFLite|Win32.ActiveCfg = Release_Cairo_CFLite|Win32
+ {767B10FB-76C1-44D0-8005-85ED7F9AA5E4}.Release_Cairo_CFLite|Win32.Build.0 = Release_Cairo_CFLite|Win32
+ {767B10FB-76C1-44D0-8005-85ED7F9AA5E4}.Release|Win32.ActiveCfg = Release|Win32
+ {767B10FB-76C1-44D0-8005-85ED7F9AA5E4}.Release|Win32.Build.0 = Release|Win32
+ {7AF4EBFB-CCBC-448F-A36A-8210E08D6A7D}.Debug_All|Win32.ActiveCfg = Debug_All|Win32
+ {7AF4EBFB-CCBC-448F-A36A-8210E08D6A7D}.Debug_All|Win32.Build.0 = Debug_All|Win32
+ {7AF4EBFB-CCBC-448F-A36A-8210E08D6A7D}.Debug_Cairo_CFLite|Win32.ActiveCfg = Debug_Cairo_CFLite|Win32
+ {7AF4EBFB-CCBC-448F-A36A-8210E08D6A7D}.Debug_Cairo_CFLite|Win32.Build.0 = Debug_Cairo_CFLite|Win32
+ {7AF4EBFB-CCBC-448F-A36A-8210E08D6A7D}.Debug|Win32.ActiveCfg = Debug|Win32
+ {7AF4EBFB-CCBC-448F-A36A-8210E08D6A7D}.Debug|Win32.Build.0 = Debug|Win32
+ {7AF4EBFB-CCBC-448F-A36A-8210E08D6A7D}.Production|Win32.ActiveCfg = Production|Win32
+ {7AF4EBFB-CCBC-448F-A36A-8210E08D6A7D}.Production|Win32.Build.0 = Production|Win32
+ {7AF4EBFB-CCBC-448F-A36A-8210E08D6A7D}.Release_Cairo_CFLite|Win32.ActiveCfg = Release_Cairo_CFLite|Win32
+ {7AF4EBFB-CCBC-448F-A36A-8210E08D6A7D}.Release_Cairo_CFLite|Win32.Build.0 = Release_Cairo_CFLite|Win32
+ {7AF4EBFB-CCBC-448F-A36A-8210E08D6A7D}.Release|Win32.ActiveCfg = Release|Win32
+ {7AF4EBFB-CCBC-448F-A36A-8210E08D6A7D}.Release|Win32.Build.0 = Release|Win32
+ {DD7949B6-F2B4-47C2-9C42-E21E84CB1017}.Debug_All|Win32.ActiveCfg = Debug_All|Win32
+ {DD7949B6-F2B4-47C2-9C42-E21E84CB1017}.Debug_All|Win32.Build.0 = Debug_All|Win32
+ {DD7949B6-F2B4-47C2-9C42-E21E84CB1017}.Debug_Cairo_CFLite|Win32.ActiveCfg = Debug_Cairo_CFLite|Win32
+ {DD7949B6-F2B4-47C2-9C42-E21E84CB1017}.Debug_Cairo_CFLite|Win32.Build.0 = Debug_Cairo_CFLite|Win32
+ {DD7949B6-F2B4-47C2-9C42-E21E84CB1017}.Debug|Win32.ActiveCfg = Debug|Win32
+ {DD7949B6-F2B4-47C2-9C42-E21E84CB1017}.Debug|Win32.Build.0 = Debug|Win32
+ {DD7949B6-F2B4-47C2-9C42-E21E84CB1017}.Production|Win32.ActiveCfg = Production|Win32
+ {DD7949B6-F2B4-47C2-9C42-E21E84CB1017}.Production|Win32.Build.0 = Production|Win32
+ {DD7949B6-F2B4-47C2-9C42-E21E84CB1017}.Release_Cairo_CFLite|Win32.ActiveCfg = Release_Cairo_CFLite|Win32
+ {DD7949B6-F2B4-47C2-9C42-E21E84CB1017}.Release_Cairo_CFLite|Win32.Build.0 = Release_Cairo_CFLite|Win32
+ {DD7949B6-F2B4-47C2-9C42-E21E84CB1017}.Release|Win32.ActiveCfg = Release|Win32
+ {DD7949B6-F2B4-47C2-9C42-E21E84CB1017}.Release|Win32.Build.0 = Release|Win32
+ {2974EA02-840B-4995-8719-8920A61006F1}.Debug_All|Win32.ActiveCfg = Debug_All|Win32
+ {2974EA02-840B-4995-8719-8920A61006F1}.Debug_All|Win32.Build.0 = Debug_All|Win32
+ {2974EA02-840B-4995-8719-8920A61006F1}.Debug_Cairo_CFLite|Win32.ActiveCfg = Debug_Cairo_CFLite|Win32
+ {2974EA02-840B-4995-8719-8920A61006F1}.Debug_Cairo_CFLite|Win32.Build.0 = Debug_Cairo_CFLite|Win32
+ {2974EA02-840B-4995-8719-8920A61006F1}.Debug|Win32.ActiveCfg = Debug|Win32
+ {2974EA02-840B-4995-8719-8920A61006F1}.Debug|Win32.Build.0 = Debug|Win32
+ {2974EA02-840B-4995-8719-8920A61006F1}.Production|Win32.ActiveCfg = Production|Win32
+ {2974EA02-840B-4995-8719-8920A61006F1}.Production|Win32.Build.0 = Production|Win32
+ {2974EA02-840B-4995-8719-8920A61006F1}.Release_Cairo_CFLite|Win32.ActiveCfg = Release_Cairo_CFLite|Win32
+ {2974EA02-840B-4995-8719-8920A61006F1}.Release_Cairo_CFLite|Win32.Build.0 = Release_Cairo_CFLite|Win32
+ {2974EA02-840B-4995-8719-8920A61006F1}.Release|Win32.ActiveCfg = Release|Win32
+ {2974EA02-840B-4995-8719-8920A61006F1}.Release|Win32.Build.0 = Release|Win32
+ {C13FA6EF-B531-4BAD-9A23-18E2BEB8B040}.Debug_All|Win32.ActiveCfg = Debug_All|Win32
+ {C13FA6EF-B531-4BAD-9A23-18E2BEB8B040}.Debug_All|Win32.Build.0 = Debug_All|Win32
+ {C13FA6EF-B531-4BAD-9A23-18E2BEB8B040}.Debug_Cairo_CFLite|Win32.ActiveCfg = Debug_Cairo_CFLite|Win32
+ {C13FA6EF-B531-4BAD-9A23-18E2BEB8B040}.Debug_Cairo_CFLite|Win32.Build.0 = Debug_Cairo_CFLite|Win32
+ {C13FA6EF-B531-4BAD-9A23-18E2BEB8B040}.Debug|Win32.ActiveCfg = Debug|Win32
+ {C13FA6EF-B531-4BAD-9A23-18E2BEB8B040}.Debug|Win32.Build.0 = Debug|Win32
+ {C13FA6EF-B531-4BAD-9A23-18E2BEB8B040}.Production|Win32.ActiveCfg = Production|Win32
+ {C13FA6EF-B531-4BAD-9A23-18E2BEB8B040}.Production|Win32.Build.0 = Production|Win32
+ {C13FA6EF-B531-4BAD-9A23-18E2BEB8B040}.Release_Cairo_CFLite|Win32.ActiveCfg = Release_Cairo_CFLite|Win32
+ {C13FA6EF-B531-4BAD-9A23-18E2BEB8B040}.Release_Cairo_CFLite|Win32.Build.0 = Release_Cairo_CFLite|Win32
+ {C13FA6EF-B531-4BAD-9A23-18E2BEB8B040}.Release|Win32.ActiveCfg = Release|Win32
+ {C13FA6EF-B531-4BAD-9A23-18E2BEB8B040}.Release|Win32.Build.0 = Release|Win32
+ {5AE5F5E4-782D-4F63-B4D7-3977B52B9950}.Debug_All|Win32.ActiveCfg = Debug_All|Win32
+ {5AE5F5E4-782D-4F63-B4D7-3977B52B9950}.Debug_All|Win32.Build.0 = Debug_All|Win32
+ {5AE5F5E4-782D-4F63-B4D7-3977B52B9950}.Debug_Cairo_CFLite|Win32.ActiveCfg = Debug_Cairo_CFLite|Win32
+ {5AE5F5E4-782D-4F63-B4D7-3977B52B9950}.Debug_Cairo_CFLite|Win32.Build.0 = Debug_Cairo_CFLite|Win32
+ {5AE5F5E4-782D-4F63-B4D7-3977B52B9950}.Debug|Win32.ActiveCfg = Debug|Win32
+ {5AE5F5E4-782D-4F63-B4D7-3977B52B9950}.Debug|Win32.Build.0 = Debug|Win32
+ {5AE5F5E4-782D-4F63-B4D7-3977B52B9950}.Production|Win32.ActiveCfg = Production|Win32
+ {5AE5F5E4-782D-4F63-B4D7-3977B52B9950}.Production|Win32.Build.0 = Production|Win32
+ {5AE5F5E4-782D-4F63-B4D7-3977B52B9950}.Release_Cairo_CFLite|Win32.ActiveCfg = Release_Cairo_CFLite|Win32
+ {5AE5F5E4-782D-4F63-B4D7-3977B52B9950}.Release_Cairo_CFLite|Win32.Build.0 = Release_Cairo_CFLite|Win32
+ {5AE5F5E4-782D-4F63-B4D7-3977B52B9950}.Release|Win32.ActiveCfg = Release|Win32
+ {5AE5F5E4-782D-4F63-B4D7-3977B52B9950}.Release|Win32.Build.0 = Release|Win32
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+ GlobalSection(NestedProjects) = preSolution
+ {C59E5129-B453-49B7-A52B-1E104715F76E} = {557FA164-0E39-4DEC-B66C-8795C8E52399}
+ {011D10F1-B656-4A1B-A0C3-3842F02122C5} = {557FA164-0E39-4DEC-B66C-8795C8E52399}
+ {4FF5BA11-59EC-4C24-8F52-F235C2E7D43A} = {557FA164-0E39-4DEC-B66C-8795C8E52399}
+ {1AFD081F-1AC7-4A97-8EFA-6DF97761A3A2} = {557FA164-0E39-4DEC-B66C-8795C8E52399}
+ {14C94979-1ED3-4E1D-9B55-A80FCF4677D0} = {557FA164-0E39-4DEC-B66C-8795C8E52399}
+ {1C16337B-ACF3-4D03-AA90-851C5B5EADA6} = {63FB6F8A-C601-43E3-BD16-A00A465C2CB6}
+ {0A324352-B3B6-496C-9E5B-4C7E923E628B} = {63FB6F8A-C601-43E3-BD16-A00A465C2CB6}
+ {E498CA9D-3BD2-4D52-8E37-C8DC76526325} = {63FB6F8A-C601-43E3-BD16-A00A465C2CB6}
+ {83414B15-1C0D-490B-990E-03F4D49170E4} = {63FB6F8A-C601-43E3-BD16-A00A465C2CB6}
+ {2E51ABE8-76CB-485B-A66C-46AEF4DF8ACD} = {9AB9C96C-9039-4FA9-8F83-BBFC8F8B2182}
+ {2EDAD637-CBA8-4E55-97ED-7D2BBC336FDB} = {9AB9C96C-9039-4FA9-8F83-BBFC8F8B2182}
+ {AAE88FEF-509E-4D49-870B-7357922C276F} = {9AB9C96C-9039-4FA9-8F83-BBFC8F8B2182}
+ {91762BE2-87EF-4F5A-A480-48B90EB3F406} = {1D359ACC-BE10-45D7-938B-BC7E4B7AA6CA}
+ {0662A8A9-82A3-4638-97D8-EC425D8D87C9} = {1D359ACC-BE10-45D7-938B-BC7E4B7AA6CA}
+ {B8437A41-67BC-4769-9452-45203827F821} = {1D359ACC-BE10-45D7-938B-BC7E4B7AA6CA}
+ {6567DFD4-D6DE-4CD5-825D-17E353D160E1} = {62DCDFE4-EAD2-48E1-A2BD-BD54AD3C7459}
+ {59CC0547-70AC-499C-9B19-EC01C6F61137} = {62DCDFE4-EAD2-48E1-A2BD-BD54AD3C7459}
+ {44B9C152-1870-4035-B94D-7B3285AA0C12} = {62DCDFE4-EAD2-48E1-A2BD-BD54AD3C7459}
+ {C0737398-3565-439E-A2B8-AB2BE4D5430C} = {62DCDFE4-EAD2-48E1-A2BD-BD54AD3C7459}
+ {D09806DB-E58B-4646-8C9B-61101906C1E2} = {62DCDFE4-EAD2-48E1-A2BD-BD54AD3C7459}
+ {114FCA11-216B-4C8C-957E-30A75AE80443} = {62DCDFE4-EAD2-48E1-A2BD-BD54AD3C7459}
+ {CBC3391C-F060-4BF5-A66E-81404168816B} = {62DCDFE4-EAD2-48E1-A2BD-BD54AD3C7459}
+ {4343BC0B-A2E0-4B48-8277-F33CFBFA83CD} = {62DCDFE4-EAD2-48E1-A2BD-BD54AD3C7459}
+ {3B99669B-1817-443B-BCBE-835580146668} = {62DCDFE4-EAD2-48E1-A2BD-BD54AD3C7459}
+ {1480CF5F-4160-47B5-A0E6-96AEC8258FB5} = {62DCDFE4-EAD2-48E1-A2BD-BD54AD3C7459}
+ {3E48AB23-D249-488F-A1C4-43CDF52FBD28} = {62DCDFE4-EAD2-48E1-A2BD-BD54AD3C7459}
+ {45C45411-7F0E-404D-919A-4EE9BB60BE86} = {62DCDFE4-EAD2-48E1-A2BD-BD54AD3C7459}
+ {B0101604-B483-4F8C-9C51-90B46A2B1CD3} = {62DCDFE4-EAD2-48E1-A2BD-BD54AD3C7459}
+ {C8F6C172-56F2-4E76-B5FA-C3B423B31BE8} = {62DCDFE4-EAD2-48E1-A2BD-BD54AD3C7459}
+ {767B10FB-76C1-44D0-8005-85ED7F9AA5E4} = {62DCDFE4-EAD2-48E1-A2BD-BD54AD3C7459}
+ {7AF4EBFB-CCBC-448F-A36A-8210E08D6A7D} = {62DCDFE4-EAD2-48E1-A2BD-BD54AD3C7459}
+ {DD7949B6-F2B4-47C2-9C42-E21E84CB1017} = {62DCDFE4-EAD2-48E1-A2BD-BD54AD3C7459}
+ {2974EA02-840B-4995-8719-8920A61006F1} = {62DCDFE4-EAD2-48E1-A2BD-BD54AD3C7459}
+ {C13FA6EF-B531-4BAD-9A23-18E2BEB8B040} = {62DCDFE4-EAD2-48E1-A2BD-BD54AD3C7459}
+ {AA8A5A85-592B-4357-BC60-E0E91E026AF6} = {A671AE22-FBCE-4C41-A723-82939FCA3E92}
+ {5AE5F5E4-782D-4F63-B4D7-3977B52B9950} = {A671AE22-FBCE-4C41-A723-82939FCA3E92}
+ EndGlobalSection
+EndGlobal
diff --git a/Source/WebKit/win/WebKit.vcproj/WebKit.submit.sln b/Source/WebKit/win/WebKit.vcproj/WebKit.submit.sln index e873b11d6..8865ae7e9 100644 --- a/Source/WebKit/win/WebKit.vcproj/WebKit.submit.sln +++ b/Source/WebKit/win/WebKit.vcproj/WebKit.submit.sln @@ -1,53 +1,53 @@ - -Microsoft Visual Studio Solution File, Format Version 9.00 -# Visual Studio 2005 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "WebKitLib", "WebKit.vcproj", "{0662A8A9-82A3-4638-97D8-EC425D8D87C9}" - ProjectSection(ProjectDependencies) = postProject - {91762BE2-87EF-4F5A-A480-48B90EB3F406} = {91762BE2-87EF-4F5A-A480-48B90EB3F406} - {B8437A41-67BC-4769-9452-45203827F821} = {B8437A41-67BC-4769-9452-45203827F821} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "WebKitGUID", "WebKitGUID.vcproj", "{B8437A41-67BC-4769-9452-45203827F821}" - ProjectSection(ProjectDependencies) = postProject - {91762BE2-87EF-4F5A-A480-48B90EB3F406} = {91762BE2-87EF-4F5A-A480-48B90EB3F406} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Interfaces", "Interfaces.vcproj", "{91762BE2-87EF-4F5A-A480-48B90EB3F406}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug_All|Win32 = Debug_All|Win32 - Debug|Win32 = Debug|Win32 - Production|Win32 = Production|Win32 - Release|Win32 = Release|Win32 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {0662A8A9-82A3-4638-97D8-EC425D8D87C9}.Debug_All|Win32.ActiveCfg = Debug_All|Win32 - {0662A8A9-82A3-4638-97D8-EC425D8D87C9}.Debug_All|Win32.Build.0 = Debug_All|Win32 - {0662A8A9-82A3-4638-97D8-EC425D8D87C9}.Debug|Win32.ActiveCfg = Debug|Win32 - {0662A8A9-82A3-4638-97D8-EC425D8D87C9}.Debug|Win32.Build.0 = Debug|Win32 - {0662A8A9-82A3-4638-97D8-EC425D8D87C9}.Production|Win32.ActiveCfg = Production|Win32 - {0662A8A9-82A3-4638-97D8-EC425D8D87C9}.Production|Win32.Build.0 = Production|Win32 - {0662A8A9-82A3-4638-97D8-EC425D8D87C9}.Release|Win32.ActiveCfg = Release|Win32 - {0662A8A9-82A3-4638-97D8-EC425D8D87C9}.Release|Win32.Build.0 = Release|Win32 - {B8437A41-67BC-4769-9452-45203827F821}.Debug_All|Win32.ActiveCfg = Debug_All|Win32 - {B8437A41-67BC-4769-9452-45203827F821}.Debug_All|Win32.Build.0 = Debug_All|Win32 - {B8437A41-67BC-4769-9452-45203827F821}.Debug|Win32.ActiveCfg = Debug|Win32 - {B8437A41-67BC-4769-9452-45203827F821}.Debug|Win32.Build.0 = Debug|Win32 - {B8437A41-67BC-4769-9452-45203827F821}.Production|Win32.ActiveCfg = Production|Win32 - {B8437A41-67BC-4769-9452-45203827F821}.Production|Win32.Build.0 = Production|Win32 - {B8437A41-67BC-4769-9452-45203827F821}.Release|Win32.ActiveCfg = Release|Win32 - {B8437A41-67BC-4769-9452-45203827F821}.Release|Win32.Build.0 = Release|Win32 - {91762BE2-87EF-4F5A-A480-48B90EB3F406}.Debug_All|Win32.ActiveCfg = Debug_All|Win32 - {91762BE2-87EF-4F5A-A480-48B90EB3F406}.Debug_All|Win32.Build.0 = Debug_All|Win32 - {91762BE2-87EF-4F5A-A480-48B90EB3F406}.Debug|Win32.ActiveCfg = Debug|Win32 - {91762BE2-87EF-4F5A-A480-48B90EB3F406}.Debug|Win32.Build.0 = Debug|Win32 - {91762BE2-87EF-4F5A-A480-48B90EB3F406}.Production|Win32.ActiveCfg = Production|Win32 - {91762BE2-87EF-4F5A-A480-48B90EB3F406}.Production|Win32.Build.0 = Production|Win32 - {91762BE2-87EF-4F5A-A480-48B90EB3F406}.Release|Win32.ActiveCfg = Release|Win32 - {91762BE2-87EF-4F5A-A480-48B90EB3F406}.Release|Win32.Build.0 = Release|Win32 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal +
+Microsoft Visual Studio Solution File, Format Version 9.00
+# Visual Studio 2005
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "WebKitLib", "WebKit.vcproj", "{0662A8A9-82A3-4638-97D8-EC425D8D87C9}"
+ ProjectSection(ProjectDependencies) = postProject
+ {91762BE2-87EF-4F5A-A480-48B90EB3F406} = {91762BE2-87EF-4F5A-A480-48B90EB3F406}
+ {B8437A41-67BC-4769-9452-45203827F821} = {B8437A41-67BC-4769-9452-45203827F821}
+ EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "WebKitGUID", "WebKitGUID.vcproj", "{B8437A41-67BC-4769-9452-45203827F821}"
+ ProjectSection(ProjectDependencies) = postProject
+ {91762BE2-87EF-4F5A-A480-48B90EB3F406} = {91762BE2-87EF-4F5A-A480-48B90EB3F406}
+ EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Interfaces", "Interfaces.vcproj", "{91762BE2-87EF-4F5A-A480-48B90EB3F406}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug_All|Win32 = Debug_All|Win32
+ Debug|Win32 = Debug|Win32
+ Production|Win32 = Production|Win32
+ Release|Win32 = Release|Win32
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {0662A8A9-82A3-4638-97D8-EC425D8D87C9}.Debug_All|Win32.ActiveCfg = Debug_All|Win32
+ {0662A8A9-82A3-4638-97D8-EC425D8D87C9}.Debug_All|Win32.Build.0 = Debug_All|Win32
+ {0662A8A9-82A3-4638-97D8-EC425D8D87C9}.Debug|Win32.ActiveCfg = Debug|Win32
+ {0662A8A9-82A3-4638-97D8-EC425D8D87C9}.Debug|Win32.Build.0 = Debug|Win32
+ {0662A8A9-82A3-4638-97D8-EC425D8D87C9}.Production|Win32.ActiveCfg = Production|Win32
+ {0662A8A9-82A3-4638-97D8-EC425D8D87C9}.Production|Win32.Build.0 = Production|Win32
+ {0662A8A9-82A3-4638-97D8-EC425D8D87C9}.Release|Win32.ActiveCfg = Release|Win32
+ {0662A8A9-82A3-4638-97D8-EC425D8D87C9}.Release|Win32.Build.0 = Release|Win32
+ {B8437A41-67BC-4769-9452-45203827F821}.Debug_All|Win32.ActiveCfg = Debug_All|Win32
+ {B8437A41-67BC-4769-9452-45203827F821}.Debug_All|Win32.Build.0 = Debug_All|Win32
+ {B8437A41-67BC-4769-9452-45203827F821}.Debug|Win32.ActiveCfg = Debug|Win32
+ {B8437A41-67BC-4769-9452-45203827F821}.Debug|Win32.Build.0 = Debug|Win32
+ {B8437A41-67BC-4769-9452-45203827F821}.Production|Win32.ActiveCfg = Production|Win32
+ {B8437A41-67BC-4769-9452-45203827F821}.Production|Win32.Build.0 = Production|Win32
+ {B8437A41-67BC-4769-9452-45203827F821}.Release|Win32.ActiveCfg = Release|Win32
+ {B8437A41-67BC-4769-9452-45203827F821}.Release|Win32.Build.0 = Release|Win32
+ {91762BE2-87EF-4F5A-A480-48B90EB3F406}.Debug_All|Win32.ActiveCfg = Debug_All|Win32
+ {91762BE2-87EF-4F5A-A480-48B90EB3F406}.Debug_All|Win32.Build.0 = Debug_All|Win32
+ {91762BE2-87EF-4F5A-A480-48B90EB3F406}.Debug|Win32.ActiveCfg = Debug|Win32
+ {91762BE2-87EF-4F5A-A480-48B90EB3F406}.Debug|Win32.Build.0 = Debug|Win32
+ {91762BE2-87EF-4F5A-A480-48B90EB3F406}.Production|Win32.ActiveCfg = Production|Win32
+ {91762BE2-87EF-4F5A-A480-48B90EB3F406}.Production|Win32.Build.0 = Production|Win32
+ {91762BE2-87EF-4F5A-A480-48B90EB3F406}.Release|Win32.ActiveCfg = Release|Win32
+ {91762BE2-87EF-4F5A-A480-48B90EB3F406}.Release|Win32.Build.0 = Release|Win32
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+EndGlobal
diff --git a/Source/WebKit/win/WebKit.vcproj/WebKit.vcproj b/Source/WebKit/win/WebKit.vcproj/WebKit.vcproj index 3287a1678..12b327853 100644 --- a/Source/WebKit/win/WebKit.vcproj/WebKit.vcproj +++ b/Source/WebKit/win/WebKit.vcproj/WebKit.vcproj @@ -1,1307 +1,1307 @@ -<?xml version="1.0" encoding="Windows-1252"?> -<VisualStudioProject - ProjectType="Visual C++" - Version="8.00" - Name="WebKitLib" - ProjectGUID="{0662A8A9-82A3-4638-97D8-EC425D8D87C9}" - RootNamespace="WebKit" - Keyword="Win32Proj" - > - <Platforms> - <Platform - Name="Win32" - /> - </Platforms> - <ToolFiles> - </ToolFiles> - <Configurations> - <Configuration - Name="Debug|Win32" - ConfigurationType="4" - InheritedPropertySheets=".\WebKitLibDebug.vsprops" - CharacterSet="1" - > - <Tool - Name="VCPreBuildEventTool" - /> - <Tool - Name="VCCustomBuildTool" - /> - <Tool - Name="VCXMLDataGeneratorTool" - /> - <Tool - Name="VCWebServiceProxyGeneratorTool" - /> - <Tool - Name="VCMIDLTool" - /> - <Tool - Name="VCCLCompilerTool" - /> - <Tool - Name="VCManagedResourceCompilerTool" - /> - <Tool - Name="VCResourceCompilerTool" - /> - <Tool - Name="VCPreLinkEventTool" - /> - <Tool - Name="VCLibrarianTool" - /> - <Tool - Name="VCALinkTool" - /> - <Tool - Name="VCXDCMakeTool" - /> - <Tool - Name="VCBscMakeTool" - /> - <Tool - Name="VCFxCopTool" - /> - <Tool - Name="VCPostBuildEventTool" - /> - </Configuration> - <Configuration - Name="Release|Win32" - ConfigurationType="4" - InheritedPropertySheets=".\WebKitLibRelease.vsprops" - CharacterSet="1" - > - <Tool - Name="VCPreBuildEventTool" - /> - <Tool - Name="VCCustomBuildTool" - /> - <Tool - Name="VCXMLDataGeneratorTool" - /> - <Tool - Name="VCWebServiceProxyGeneratorTool" - /> - <Tool - Name="VCMIDLTool" - /> - <Tool - Name="VCCLCompilerTool" - /> - <Tool - Name="VCManagedResourceCompilerTool" - /> - <Tool - Name="VCResourceCompilerTool" - /> - <Tool - Name="VCPreLinkEventTool" - /> - <Tool - Name="VCLibrarianTool" - /> - <Tool - Name="VCALinkTool" - /> - <Tool - Name="VCXDCMakeTool" - /> - <Tool - Name="VCBscMakeTool" - /> - <Tool - Name="VCFxCopTool" - /> - <Tool - Name="VCPostBuildEventTool" - /> - </Configuration> - <Configuration - Name="Debug_Cairo_CFLite|Win32" - ConfigurationType="4" - InheritedPropertySheets=".\WebKitLibDebugCairoCFLite.vsprops" - CharacterSet="1" - > - <Tool - Name="VCPreBuildEventTool" - /> - <Tool - Name="VCCustomBuildTool" - /> - <Tool - Name="VCXMLDataGeneratorTool" - /> - <Tool - Name="VCWebServiceProxyGeneratorTool" - /> - <Tool - Name="VCMIDLTool" - /> - <Tool - Name="VCCLCompilerTool" - /> - <Tool - Name="VCManagedResourceCompilerTool" - /> - <Tool - Name="VCResourceCompilerTool" - /> - <Tool - Name="VCPreLinkEventTool" - /> - <Tool - Name="VCLibrarianTool" - /> - <Tool - Name="VCALinkTool" - /> - <Tool - Name="VCXDCMakeTool" - /> - <Tool - Name="VCBscMakeTool" - /> - <Tool - Name="VCFxCopTool" - /> - <Tool - Name="VCPostBuildEventTool" - /> - </Configuration> - <Configuration - Name="Release_Cairo_CFLite|Win32" - ConfigurationType="4" - InheritedPropertySheets=".\WebKitLibReleaseCairoCFLite.vsprops" - CharacterSet="1" - > - <Tool - Name="VCPreBuildEventTool" - /> - <Tool - Name="VCCustomBuildTool" - /> - <Tool - Name="VCXMLDataGeneratorTool" - /> - <Tool - Name="VCWebServiceProxyGeneratorTool" - /> - <Tool - Name="VCMIDLTool" - /> - <Tool - Name="VCCLCompilerTool" - /> - <Tool - Name="VCManagedResourceCompilerTool" - /> - <Tool - Name="VCResourceCompilerTool" - /> - <Tool - Name="VCPreLinkEventTool" - /> - <Tool - Name="VCLibrarianTool" - /> - <Tool - Name="VCALinkTool" - /> - <Tool - Name="VCXDCMakeTool" - /> - <Tool - Name="VCBscMakeTool" - /> - <Tool - Name="VCFxCopTool" - /> - <Tool - Name="VCPostBuildEventTool" - /> - </Configuration> - <Configuration - Name="Debug_All|Win32" - ConfigurationType="4" - InheritedPropertySheets=".\WebKitLibDebugAll.vsprops" - CharacterSet="1" - > - <Tool - Name="VCPreBuildEventTool" - /> - <Tool - Name="VCCustomBuildTool" - /> - <Tool - Name="VCXMLDataGeneratorTool" - /> - <Tool - Name="VCWebServiceProxyGeneratorTool" - /> - <Tool - Name="VCMIDLTool" - /> - <Tool - Name="VCCLCompilerTool" - /> - <Tool - Name="VCManagedResourceCompilerTool" - /> - <Tool - Name="VCResourceCompilerTool" - /> - <Tool - Name="VCPreLinkEventTool" - /> - <Tool - Name="VCLibrarianTool" - /> - <Tool - Name="VCALinkTool" - /> - <Tool - Name="VCXDCMakeTool" - /> - <Tool - Name="VCBscMakeTool" - /> - <Tool - Name="VCFxCopTool" - /> - <Tool - Name="VCPostBuildEventTool" - /> - </Configuration> - <Configuration - Name="Production|Win32" - ConfigurationType="4" - InheritedPropertySheets=".\WebKitLibProduction.vsprops" - CharacterSet="1" - WholeProgramOptimization="1" - > - <Tool - Name="VCPreBuildEventTool" - /> - <Tool - Name="VCCustomBuildTool" - /> - <Tool - Name="VCXMLDataGeneratorTool" - /> - <Tool - Name="VCWebServiceProxyGeneratorTool" - /> - <Tool - Name="VCMIDLTool" - /> - <Tool - Name="VCCLCompilerTool" - /> - <Tool - Name="VCManagedResourceCompilerTool" - /> - <Tool - Name="VCResourceCompilerTool" - /> - <Tool - Name="VCPreLinkEventTool" - /> - <Tool - Name="VCLibrarianTool" - /> - <Tool - Name="VCALinkTool" - /> - <Tool - Name="VCXDCMakeTool" - /> - <Tool - Name="VCBscMakeTool" - /> - <Tool - Name="VCFxCopTool" - /> - <Tool - Name="VCPostBuildEventTool" - /> - </Configuration> - </Configurations> - <References> - </References> - <Files> - <Filter - Name="Source Files" - Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx" - UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}" - > - <File - RelativePath="..\MarshallingHelpers.cpp" - > - </File> - <File - RelativePath="..\WebKitClassFactory.cpp" - > - </File> - <File - RelativePath="..\WebKitDLL.cpp" - > - </File> - <File - RelativePath="..\WebKitSystemBits.cpp" - > - </File> - <File - RelativePath="..\WebNodeHighlight.cpp" - > - </File> - </Filter> - <Filter - Name="Header Files" - Filter="h;hpp;hxx;hm;inl;inc;xsd" - UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}" - > - <File - RelativePath="..\AccessibleBase.h" - > - </File> - <File - RelativePath="..\AccessibleDocument.h" - > - </File> - <File - RelativePath="..\AccessibleImage.h" - > - </File> - <File - RelativePath=".\autoversion.h" - > - </File> - <File - RelativePath="..\CFDictionaryPropertyBag.h" - > - </File> - <File - RelativePath="..\CodeAnalysisConfig.h" - > - </File> - <File - RelativePath="..\COMEnumVariant.h" - > - </File> - <File - RelativePath="..\COMPropertyBag.h" - > - </File> - <File - RelativePath="..\COMVariantSetter.h" - > - </File> - <File - RelativePath="..\DefaultDownloadDelegate.h" - > - </File> - <File - RelativePath="..\DefaultPolicyDelegate.h" - > - </File> - <File - RelativePath="..\DOMCoreClasses.h" - > - </File> - <File - RelativePath="..\DOMCSSClasses.h" - > - </File> - <File - RelativePath="..\DOMEventsClasses.h" - > - </File> - <File - RelativePath="..\DOMHTMLClasses.h" - > - </File> - <File - RelativePath="..\ForEachCoClass.h" - > - </File> - <File - RelativePath="..\FullscreenVideoController.h" - > - </File> - <File - RelativePath="..\MarshallingHelpers.h" - > - </File> - <File - RelativePath="..\MemoryStream.h" - > - </File> - <File - RelativePath="..\ProgIDMacros.h" - > - </File> - <File - RelativePath=".\resource.h" - > - </File> - <File - RelativePath="..\WebActionPropertyBag.h" - > - </File> - <File - RelativePath="..\WebArchive.h" - > - </File> - <File - RelativePath="..\WebBackForwardList.h" - > - </File> - <File - RelativePath="..\WebCache.h" - > - </File> - <File - RelativePath="..\WebCachedFramePlatformData.h" - > - </File> - <File - RelativePath="..\WebCookieManager.h" - > - </File> - <File - RelativePath="..\WebCoreStatistics.h" - > - </File> - <File - RelativePath="..\WebDatabaseManager.h" - > - </File> - <File - RelativePath="..\WebDataSource.h" - > - </File> - <File - RelativePath="..\WebDocumentLoader.h" - > - </File> - <File - RelativePath="..\WebDownload.h" - > - </File> - <File - RelativePath="..\WebDropSource.h" - > - </File> - <File - RelativePath="..\WebElementPropertyBag.h" - > - </File> - <File - RelativePath="..\WebError.h" - > - </File> - <File - RelativePath="..\WebFrame.h" - > - </File> - <File - RelativePath="..\WebFramePolicyListener.h" - > - </File> - <File - RelativePath="..\WebGeolocationPolicyListener.h" - > - </File> - <File - RelativePath="..\WebGeolocationPosition.h" - > - </File> - <File - RelativePath="..\WebHistory.h" - > - </File> - <File - RelativePath="..\WebHistoryItem.h" - > - </File> - <File - RelativePath="..\WebHTMLRepresentation.h" - > - </File> - <File - RelativePath="..\WebIconDatabase.h" - > - </File> - <File - RelativePath="..\WebInspector.h" - > - </File> - <File - RelativePath="..\WebJavaScriptCollector.h" - > - </File> - <File - RelativePath="..\WebKitClassFactory.h" - > - </File> - <File - RelativePath="..\WebKitDLL.h" - > - </File> - <File - RelativePath="..\WebKitGraphics.h" - > - <FileConfiguration - Name="Debug_Cairo_CFLite|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCCustomBuildTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Release_Cairo_CFLite|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCCustomBuildTool" - /> - </FileConfiguration> - </File> - <File - RelativePath="..\WebKitLogging.h" - > - </File> - <File - RelativePath="..\WebKitStatistics.h" - > - </File> - <File - RelativePath="..\WebKitStatisticsPrivate.h" - > - </File> - <File - RelativePath="..\WebKitSystemBits.h" - > - </File> - <File - RelativePath="..\WebLocalizableStrings.h" - > - <FileConfiguration - Name="Debug_Cairo_CFLite|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCCustomBuildTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Release_Cairo_CFLite|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCCustomBuildTool" - /> - </FileConfiguration> - </File> - <File - RelativePath="..\WebMutableURLRequest.h" - > - </File> - <File - RelativePath="..\WebNavigationData.h" - > - </File> - <File - RelativePath="..\WebNodeHighlight.h" - > - </File> - <File - RelativePath="..\WebNotification.h" - > - </File> - <File - RelativePath="..\WebNotificationCenter.h" - > - </File> - <File - RelativePath="..\WebPreferenceKeysPrivate.h" - > - </File> - <File - RelativePath="..\WebPreferences.h" - > - </File> - <File - RelativePath="..\WebResource.h" - > - </File> - <File - RelativePath="..\WebScriptObject.h" - > - </File> - <File - RelativePath="..\WebScriptWorld.h" - > - </File> - <File - RelativePath="..\WebScriptWorld.h" - > - </File> - <File - RelativePath="..\WebScrollBar.h" - > - </File> - <File - RelativePath="..\WebSecurityOrigin.h" - > - </File> - <File - RelativePath="..\WebSerializedJSValue.h" - > - </File> - <File - RelativePath="..\WebTextRenderer.h" - > - </File> - <File - RelativePath="..\WebURLAuthenticationChallenge.h" - > - </File> - <File - RelativePath="..\WebURLAuthenticationChallengeSender.h" - > - </File> - <File - RelativePath="..\WebURLCredential.h" - > - </File> - <File - RelativePath="..\WebURLProtectionSpace.h" - > - </File> - <File - RelativePath="..\WebURLResponse.h" - > - </File> - <File - RelativePath="..\WebUserContentURLPattern.h" - > - </File> - <File - RelativePath="..\WebView.h" - > - </File> - <File - RelativePath="..\WebWorkersPrivate.h" - > - </File> - </Filter> - <Filter - Name="Classes" - > - <File - RelativePath="..\AccessibleBase.cpp" - > - </File> - <File - RelativePath="..\AccessibleDocument.cpp" - > - </File> - <File - RelativePath="..\AccessibleImage.cpp" - > - </File> - <File - RelativePath="..\CFDictionaryPropertyBag.cpp" - > - </File> - <File - RelativePath="..\DefaultDownloadDelegate.cpp" - > - </File> - <File - RelativePath="..\DefaultPolicyDelegate.cpp" - > - </File> - <File - RelativePath="..\DOMCoreClasses.cpp" - > - </File> - <File - RelativePath="..\DOMCSSClasses.cpp" - > - </File> - <File - RelativePath="..\DOMEventsClasses.cpp" - > - </File> - <File - RelativePath="..\DOMHTMLClasses.cpp" - > - </File> - <File - RelativePath="..\ForEachCoClass.cpp" - > - </File> - <File - RelativePath="..\FullscreenVideoController.cpp" - > - </File> - <File - RelativePath="..\MemoryStream.cpp" - > - </File> - <File - RelativePath="..\WebActionPropertyBag.cpp" - > - </File> - <File - RelativePath="..\WebArchive.cpp" - > - </File> - <File - RelativePath="..\WebBackForwardList.cpp" - > - </File> - <File - RelativePath="..\WebCache.cpp" - > - </File> - <File - RelativePath="..\WebCookieManager.cpp" - > - </File> - <File - RelativePath="..\WebCookieManagerCFNet.cpp" - > - <FileConfiguration - Name="Debug_Cairo_CFLite|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCCLCompilerTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Release_Cairo_CFLite|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCCLCompilerTool" - /> - </FileConfiguration> - </File> - <File - RelativePath="..\WebCookieManagerCurl.cpp" - > - <FileConfiguration - Name="Debug|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCCLCompilerTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Release|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCCLCompilerTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Debug_All|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCCLCompilerTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Production|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCCLCompilerTool" - /> - </FileConfiguration> - </File> - <File - RelativePath="..\WebCoreStatistics.cpp" - > - </File> - <File - RelativePath="..\WebDatabaseManager.cpp" - > - </File> - <File - RelativePath="..\WebDataSource.cpp" - > - </File> - <File - RelativePath="..\WebDocumentLoader.cpp" - > - </File> - <File - RelativePath="..\WebDownload.cpp" - > - </File> - <File - RelativePath="..\WebDownloadCFNet.cpp" - > - <FileConfiguration - Name="Debug_Cairo_CFLite|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCCLCompilerTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Release_Cairo_CFLite|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCCLCompilerTool" - /> - </FileConfiguration> - </File> - <File - RelativePath="..\WebDownloadCurl.cpp" - > - <FileConfiguration - Name="Debug|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCCLCompilerTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Release|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCCLCompilerTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Debug_All|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCCLCompilerTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Production|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCCLCompilerTool" - /> - </FileConfiguration> - </File> - <File - RelativePath="..\WebDropSource.cpp" - > - </File> - <File - RelativePath="..\WebElementPropertyBag.cpp" - > - </File> - <File - RelativePath="..\WebError.cpp" - > - </File> - <File - RelativePath="..\WebFrame.cpp" - > - </File> - <File - RelativePath="..\WebFramePolicyListener.cpp" - > - </File> - <File - RelativePath="..\WebGeolocationPolicyListener.cpp" - > - </File> - <File - RelativePath="..\WebGeolocationPosition.cpp" - > - </File> - <File - RelativePath="..\WebHistory.cpp" - > - </File> - <File - RelativePath="..\WebHistoryItem.cpp" - > - </File> - <File - RelativePath="..\WebHTMLRepresentation.cpp" - > - </File> - <File - RelativePath="..\WebIconDatabase.cpp" - > - </File> - <File - RelativePath="..\WebInspector.cpp" - > - </File> - <File - RelativePath="..\WebJavaScriptCollector.cpp" - > - </File> - <File - RelativePath="..\WebKitLogging.cpp" - > - </File> - <File - RelativePath="..\WebKitStatistics.cpp" - > - </File> - <File - RelativePath="..\WebMutableURLRequest.cpp" - > - </File> - <File - RelativePath="..\WebNavigationData.cpp" - > - </File> - <File - RelativePath="..\WebNotification.cpp" - > - </File> - <File - RelativePath="..\WebNotificationCenter.cpp" - > - </File> - <File - RelativePath="..\WebPreferences.cpp" - > - </File> - <File - RelativePath="..\WebResource.cpp" - > - </File> - <File - RelativePath="..\WebScriptObject.cpp" - > - </File> - <File - RelativePath="..\WebScriptWorld.cpp" - > - </File> - <File - RelativePath="..\WebScriptWorld.cpp" - > - </File> - <File - RelativePath="..\WebScrollBar.cpp" - > - </File> - <File - RelativePath="..\WebSecurityOrigin.cpp" - > - </File> - <File - RelativePath="..\WebSerializedJSValue.cpp" - > - </File> - <File - RelativePath="..\WebTextRenderer.cpp" - > - </File> - <File - RelativePath="..\WebURLAuthenticationChallenge.cpp" - > - </File> - <File - RelativePath="..\WebURLAuthenticationChallengeSender.cpp" - > - </File> - <File - RelativePath="..\WebURLAuthenticationChallengeSenderCFNet.cpp" - > - <FileConfiguration - Name="Debug_Cairo_CFLite|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCCLCompilerTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Release_Cairo_CFLite|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCCLCompilerTool" - /> - </FileConfiguration> - </File> - <File - RelativePath="..\WebURLAuthenticationChallengeSenderCurl.cpp" - > - <FileConfiguration - Name="Debug|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCCLCompilerTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Release|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCCLCompilerTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Debug_All|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCCLCompilerTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Production|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCCLCompilerTool" - /> - </FileConfiguration> - </File> - <File - RelativePath="..\WebURLCredential.cpp" - > - </File> - <File - RelativePath="..\WebURLProtectionSpace.cpp" - > - </File> - <File - RelativePath="..\WebURLResponse.cpp" - > - </File> - <File - RelativePath="..\WebUserContentURLPattern.cpp" - > - </File> - <File - RelativePath="..\WebView.cpp" - > - </File> - <File - RelativePath="..\WebWorkersPrivate.cpp" - > - </File> - </Filter> - <Filter - Name="API" - > - <File - RelativePath="..\WebKitCOMAPI.cpp" - > - </File> - <File - RelativePath="..\WebKitGraphics.cpp" - > - <FileConfiguration - Name="Debug_Cairo_CFLite|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCCLCompilerTool" - /> - </FileConfiguration> - <FileConfiguration - Name="Release_Cairo_CFLite|Win32" - ExcludedFromBuild="true" - > - <Tool - Name="VCCLCompilerTool" - /> - </FileConfiguration> - </File> - <File - RelativePath="..\WebLocalizableStrings.cpp" - > - </File> - </Filter> - <Filter - Name="WebCoreSupport" - > - <File - RelativePath="..\WebCoreSupport\EmbeddedWidget.cpp" - > - </File> - <File - RelativePath="..\WebCoreSupport\EmbeddedWidget.h" - > - </File> - <File - RelativePath="..\WebCoreSupport\WebChromeClient.cpp" - > - </File> - <File - RelativePath="..\WebCoreSupport\WebChromeClient.h" - > - </File> - <File - RelativePath="..\WebCoreSupport\WebContextMenuClient.cpp" - > - </File> - <File - RelativePath="..\WebCoreSupport\WebContextMenuClient.h" - > - </File> - <File - RelativePath="..\WebCoreSupport\WebDesktopNotificationsDelegate.cpp" - > - </File> - <File - RelativePath="..\WebCoreSupport\WebDesktopNotificationsDelegate.h" - > - </File> - <File - RelativePath="..\WebCoreSupport\WebDragClient.cpp" - > - </File> - <File - RelativePath="..\WebCoreSupport\WebDragClient.h" - > - </File> - <File - RelativePath="..\WebCoreSupport\WebEditorClient.cpp" - > - </File> - <File - RelativePath="..\WebCoreSupport\WebEditorClient.h" - > - </File> - <File - RelativePath="..\WebCoreSupport\WebFrameLoaderClient.cpp" - > - </File> - <File - RelativePath="..\WebCoreSupport\WebFrameLoaderClient.h" - > - </File> - <File - RelativePath="..\WebCoreSupport\WebFrameNetworkingContext.cpp" - > - </File> - <File - RelativePath="..\WebCoreSupport\WebFrameNetworkingContext.h" - > - </File> - <File - RelativePath="..\WebCoreSupport\WebGeolocationClient.cpp" - > - </File> - <File - RelativePath="..\WebCoreSupport\WebGeolocationClient.h" - > - </File> - <File - RelativePath="..\WebCoreSupport\WebInspectorClient.cpp" - > - </File> - <File - RelativePath="..\WebCoreSupport\WebInspectorClient.h" - > - </File> - <File - RelativePath="..\..\cf\WebCoreSupport\WebInspectorClientCF.cpp" - > - </File> - <File - RelativePath="..\WebCoreSupport\WebInspectorDelegate.cpp" - > - </File> - <File - RelativePath="..\WebCoreSupport\WebInspectorDelegate.h" - > - </File> - <File - RelativePath="..\WebCoreSupport\WebPlatformStrategies.cpp" - > - </File> - <File - RelativePath="..\WebCoreSupport\WebPlatformStrategies.h" - > - </File> - </Filter> - <File - RelativePath="..\WebKitPrefix.cpp" - > - <FileConfiguration - Name="Debug|Win32" - > - <Tool - Name="VCCLCompilerTool" - UsePrecompiledHeader="1" - /> - </FileConfiguration> - <FileConfiguration - Name="Release|Win32" - > - <Tool - Name="VCCLCompilerTool" - UsePrecompiledHeader="1" - /> - </FileConfiguration> - <FileConfiguration - Name="Debug_Cairo_CFLite|Win32" - > - <Tool - Name="VCCLCompilerTool" - UsePrecompiledHeader="1" - /> - </FileConfiguration> - <FileConfiguration - Name="Release_Cairo_CFLite|Win32" - > - <Tool - Name="VCCLCompilerTool" - UsePrecompiledHeader="1" - /> - </FileConfiguration> - <FileConfiguration - Name="Debug_All|Win32" - > - <Tool - Name="VCCLCompilerTool" - UsePrecompiledHeader="1" - PrecompiledHeaderThrough="WebKitPrefix.h" - /> - </FileConfiguration> - <FileConfiguration - Name="Production|Win32" - > - <Tool - Name="VCCLCompilerTool" - UsePrecompiledHeader="1" - /> - </FileConfiguration> - </File> - <File - RelativePath="..\WebKitPrefix.h" - > - </File> - </Files> - <Globals> - </Globals> -</VisualStudioProject> +<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+ ProjectType="Visual C++"
+ Version="8.00"
+ Name="WebKitLib"
+ ProjectGUID="{0662A8A9-82A3-4638-97D8-EC425D8D87C9}"
+ RootNamespace="WebKit"
+ Keyword="Win32Proj"
+ >
+ <Platforms>
+ <Platform
+ Name="Win32"
+ />
+ </Platforms>
+ <ToolFiles>
+ </ToolFiles>
+ <Configurations>
+ <Configuration
+ Name="Debug|Win32"
+ ConfigurationType="4"
+ InheritedPropertySheets=".\WebKitLibDebug.vsprops"
+ CharacterSet="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLibrarianTool"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ <Configuration
+ Name="Release|Win32"
+ ConfigurationType="4"
+ InheritedPropertySheets=".\WebKitLibRelease.vsprops"
+ CharacterSet="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLibrarianTool"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ <Configuration
+ Name="Debug_Cairo_CFLite|Win32"
+ ConfigurationType="4"
+ InheritedPropertySheets=".\WebKitLibDebugCairoCFLite.vsprops"
+ CharacterSet="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLibrarianTool"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ <Configuration
+ Name="Release_Cairo_CFLite|Win32"
+ ConfigurationType="4"
+ InheritedPropertySheets=".\WebKitLibReleaseCairoCFLite.vsprops"
+ CharacterSet="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLibrarianTool"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ <Configuration
+ Name="Debug_All|Win32"
+ ConfigurationType="4"
+ InheritedPropertySheets=".\WebKitLibDebugAll.vsprops"
+ CharacterSet="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLibrarianTool"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ <Configuration
+ Name="Production|Win32"
+ ConfigurationType="4"
+ InheritedPropertySheets=".\WebKitLibProduction.vsprops"
+ CharacterSet="1"
+ WholeProgramOptimization="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLibrarianTool"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ </Configurations>
+ <References>
+ </References>
+ <Files>
+ <Filter
+ Name="Source Files"
+ Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
+ UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
+ >
+ <File
+ RelativePath="..\MarshallingHelpers.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\WebKitClassFactory.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\WebKitDLL.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\WebKitSystemBits.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\WebNodeHighlight.cpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Header Files"
+ Filter="h;hpp;hxx;hm;inl;inc;xsd"
+ UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
+ >
+ <File
+ RelativePath="..\AccessibleBase.h"
+ >
+ </File>
+ <File
+ RelativePath="..\AccessibleDocument.h"
+ >
+ </File>
+ <File
+ RelativePath="..\AccessibleImage.h"
+ >
+ </File>
+ <File
+ RelativePath=".\autoversion.h"
+ >
+ </File>
+ <File
+ RelativePath="..\CFDictionaryPropertyBag.h"
+ >
+ </File>
+ <File
+ RelativePath="..\CodeAnalysisConfig.h"
+ >
+ </File>
+ <File
+ RelativePath="..\COMEnumVariant.h"
+ >
+ </File>
+ <File
+ RelativePath="..\COMPropertyBag.h"
+ >
+ </File>
+ <File
+ RelativePath="..\COMVariantSetter.h"
+ >
+ </File>
+ <File
+ RelativePath="..\DefaultDownloadDelegate.h"
+ >
+ </File>
+ <File
+ RelativePath="..\DefaultPolicyDelegate.h"
+ >
+ </File>
+ <File
+ RelativePath="..\DOMCoreClasses.h"
+ >
+ </File>
+ <File
+ RelativePath="..\DOMCSSClasses.h"
+ >
+ </File>
+ <File
+ RelativePath="..\DOMEventsClasses.h"
+ >
+ </File>
+ <File
+ RelativePath="..\DOMHTMLClasses.h"
+ >
+ </File>
+ <File
+ RelativePath="..\ForEachCoClass.h"
+ >
+ </File>
+ <File
+ RelativePath="..\FullscreenVideoController.h"
+ >
+ </File>
+ <File
+ RelativePath="..\MarshallingHelpers.h"
+ >
+ </File>
+ <File
+ RelativePath="..\MemoryStream.h"
+ >
+ </File>
+ <File
+ RelativePath="..\ProgIDMacros.h"
+ >
+ </File>
+ <File
+ RelativePath=".\resource.h"
+ >
+ </File>
+ <File
+ RelativePath="..\WebActionPropertyBag.h"
+ >
+ </File>
+ <File
+ RelativePath="..\WebArchive.h"
+ >
+ </File>
+ <File
+ RelativePath="..\WebBackForwardList.h"
+ >
+ </File>
+ <File
+ RelativePath="..\WebCache.h"
+ >
+ </File>
+ <File
+ RelativePath="..\WebCachedFramePlatformData.h"
+ >
+ </File>
+ <File
+ RelativePath="..\WebCookieManager.h"
+ >
+ </File>
+ <File
+ RelativePath="..\WebCoreStatistics.h"
+ >
+ </File>
+ <File
+ RelativePath="..\WebDatabaseManager.h"
+ >
+ </File>
+ <File
+ RelativePath="..\WebDataSource.h"
+ >
+ </File>
+ <File
+ RelativePath="..\WebDocumentLoader.h"
+ >
+ </File>
+ <File
+ RelativePath="..\WebDownload.h"
+ >
+ </File>
+ <File
+ RelativePath="..\WebDropSource.h"
+ >
+ </File>
+ <File
+ RelativePath="..\WebElementPropertyBag.h"
+ >
+ </File>
+ <File
+ RelativePath="..\WebError.h"
+ >
+ </File>
+ <File
+ RelativePath="..\WebFrame.h"
+ >
+ </File>
+ <File
+ RelativePath="..\WebFramePolicyListener.h"
+ >
+ </File>
+ <File
+ RelativePath="..\WebGeolocationPolicyListener.h"
+ >
+ </File>
+ <File
+ RelativePath="..\WebGeolocationPosition.h"
+ >
+ </File>
+ <File
+ RelativePath="..\WebHistory.h"
+ >
+ </File>
+ <File
+ RelativePath="..\WebHistoryItem.h"
+ >
+ </File>
+ <File
+ RelativePath="..\WebHTMLRepresentation.h"
+ >
+ </File>
+ <File
+ RelativePath="..\WebIconDatabase.h"
+ >
+ </File>
+ <File
+ RelativePath="..\WebInspector.h"
+ >
+ </File>
+ <File
+ RelativePath="..\WebJavaScriptCollector.h"
+ >
+ </File>
+ <File
+ RelativePath="..\WebKitClassFactory.h"
+ >
+ </File>
+ <File
+ RelativePath="..\WebKitDLL.h"
+ >
+ </File>
+ <File
+ RelativePath="..\WebKitGraphics.h"
+ >
+ <FileConfiguration
+ Name="Debug_Cairo_CFLite|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release_Cairo_CFLite|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="..\WebKitLogging.h"
+ >
+ </File>
+ <File
+ RelativePath="..\WebKitStatistics.h"
+ >
+ </File>
+ <File
+ RelativePath="..\WebKitStatisticsPrivate.h"
+ >
+ </File>
+ <File
+ RelativePath="..\WebKitSystemBits.h"
+ >
+ </File>
+ <File
+ RelativePath="..\WebLocalizableStrings.h"
+ >
+ <FileConfiguration
+ Name="Debug_Cairo_CFLite|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release_Cairo_CFLite|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="..\WebMutableURLRequest.h"
+ >
+ </File>
+ <File
+ RelativePath="..\WebNavigationData.h"
+ >
+ </File>
+ <File
+ RelativePath="..\WebNodeHighlight.h"
+ >
+ </File>
+ <File
+ RelativePath="..\WebNotification.h"
+ >
+ </File>
+ <File
+ RelativePath="..\WebNotificationCenter.h"
+ >
+ </File>
+ <File
+ RelativePath="..\WebPreferenceKeysPrivate.h"
+ >
+ </File>
+ <File
+ RelativePath="..\WebPreferences.h"
+ >
+ </File>
+ <File
+ RelativePath="..\WebResource.h"
+ >
+ </File>
+ <File
+ RelativePath="..\WebScriptObject.h"
+ >
+ </File>
+ <File
+ RelativePath="..\WebScriptWorld.h"
+ >
+ </File>
+ <File
+ RelativePath="..\WebScriptWorld.h"
+ >
+ </File>
+ <File
+ RelativePath="..\WebScrollBar.h"
+ >
+ </File>
+ <File
+ RelativePath="..\WebSecurityOrigin.h"
+ >
+ </File>
+ <File
+ RelativePath="..\WebSerializedJSValue.h"
+ >
+ </File>
+ <File
+ RelativePath="..\WebTextRenderer.h"
+ >
+ </File>
+ <File
+ RelativePath="..\WebURLAuthenticationChallenge.h"
+ >
+ </File>
+ <File
+ RelativePath="..\WebURLAuthenticationChallengeSender.h"
+ >
+ </File>
+ <File
+ RelativePath="..\WebURLCredential.h"
+ >
+ </File>
+ <File
+ RelativePath="..\WebURLProtectionSpace.h"
+ >
+ </File>
+ <File
+ RelativePath="..\WebURLResponse.h"
+ >
+ </File>
+ <File
+ RelativePath="..\WebUserContentURLPattern.h"
+ >
+ </File>
+ <File
+ RelativePath="..\WebView.h"
+ >
+ </File>
+ <File
+ RelativePath="..\WebWorkersPrivate.h"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Classes"
+ >
+ <File
+ RelativePath="..\AccessibleBase.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\AccessibleDocument.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\AccessibleImage.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\CFDictionaryPropertyBag.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\DefaultDownloadDelegate.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\DefaultPolicyDelegate.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\DOMCoreClasses.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\DOMCSSClasses.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\DOMEventsClasses.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\DOMHTMLClasses.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\ForEachCoClass.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\FullscreenVideoController.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\MemoryStream.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\WebActionPropertyBag.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\WebArchive.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\WebBackForwardList.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\WebCache.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\WebCookieManager.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\WebCookieManagerCFNet.cpp"
+ >
+ <FileConfiguration
+ Name="Debug_Cairo_CFLite|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release_Cairo_CFLite|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="..\WebCookieManagerCurl.cpp"
+ >
+ <FileConfiguration
+ Name="Debug|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug_All|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Production|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="..\WebCoreStatistics.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\WebDatabaseManager.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\WebDataSource.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\WebDocumentLoader.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\WebDownload.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\WebDownloadCFNet.cpp"
+ >
+ <FileConfiguration
+ Name="Debug_Cairo_CFLite|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release_Cairo_CFLite|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="..\WebDownloadCurl.cpp"
+ >
+ <FileConfiguration
+ Name="Debug|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug_All|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Production|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="..\WebDropSource.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\WebElementPropertyBag.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\WebError.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\WebFrame.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\WebFramePolicyListener.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\WebGeolocationPolicyListener.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\WebGeolocationPosition.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\WebHistory.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\WebHistoryItem.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\WebHTMLRepresentation.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\WebIconDatabase.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\WebInspector.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\WebJavaScriptCollector.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\WebKitLogging.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\WebKitStatistics.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\WebMutableURLRequest.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\WebNavigationData.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\WebNotification.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\WebNotificationCenter.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\WebPreferences.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\WebResource.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\WebScriptObject.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\WebScriptWorld.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\WebScriptWorld.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\WebScrollBar.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\WebSecurityOrigin.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\WebSerializedJSValue.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\WebTextRenderer.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\WebURLAuthenticationChallenge.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\WebURLAuthenticationChallengeSender.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\WebURLAuthenticationChallengeSenderCFNet.cpp"
+ >
+ <FileConfiguration
+ Name="Debug_Cairo_CFLite|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release_Cairo_CFLite|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="..\WebURLAuthenticationChallengeSenderCurl.cpp"
+ >
+ <FileConfiguration
+ Name="Debug|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug_All|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Production|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="..\WebURLCredential.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\WebURLProtectionSpace.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\WebURLResponse.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\WebUserContentURLPattern.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\WebView.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\WebWorkersPrivate.cpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="API"
+ >
+ <File
+ RelativePath="..\WebKitCOMAPI.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\WebKitGraphics.cpp"
+ >
+ <FileConfiguration
+ Name="Debug_Cairo_CFLite|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release_Cairo_CFLite|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="..\WebLocalizableStrings.cpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="WebCoreSupport"
+ >
+ <File
+ RelativePath="..\WebCoreSupport\EmbeddedWidget.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\WebCoreSupport\EmbeddedWidget.h"
+ >
+ </File>
+ <File
+ RelativePath="..\WebCoreSupport\WebChromeClient.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\WebCoreSupport\WebChromeClient.h"
+ >
+ </File>
+ <File
+ RelativePath="..\WebCoreSupport\WebContextMenuClient.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\WebCoreSupport\WebContextMenuClient.h"
+ >
+ </File>
+ <File
+ RelativePath="..\WebCoreSupport\WebDesktopNotificationsDelegate.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\WebCoreSupport\WebDesktopNotificationsDelegate.h"
+ >
+ </File>
+ <File
+ RelativePath="..\WebCoreSupport\WebDragClient.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\WebCoreSupport\WebDragClient.h"
+ >
+ </File>
+ <File
+ RelativePath="..\WebCoreSupport\WebEditorClient.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\WebCoreSupport\WebEditorClient.h"
+ >
+ </File>
+ <File
+ RelativePath="..\WebCoreSupport\WebFrameLoaderClient.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\WebCoreSupport\WebFrameLoaderClient.h"
+ >
+ </File>
+ <File
+ RelativePath="..\WebCoreSupport\WebFrameNetworkingContext.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\WebCoreSupport\WebFrameNetworkingContext.h"
+ >
+ </File>
+ <File
+ RelativePath="..\WebCoreSupport\WebGeolocationClient.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\WebCoreSupport\WebGeolocationClient.h"
+ >
+ </File>
+ <File
+ RelativePath="..\WebCoreSupport\WebInspectorClient.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\WebCoreSupport\WebInspectorClient.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\cf\WebCoreSupport\WebInspectorClientCF.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\WebCoreSupport\WebInspectorDelegate.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\WebCoreSupport\WebInspectorDelegate.h"
+ >
+ </File>
+ <File
+ RelativePath="..\WebCoreSupport\WebPlatformStrategies.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\WebCoreSupport\WebPlatformStrategies.h"
+ >
+ </File>
+ </Filter>
+ <File
+ RelativePath="..\WebKitPrefix.cpp"
+ >
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ UsePrecompiledHeader="1"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ UsePrecompiledHeader="1"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug_Cairo_CFLite|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ UsePrecompiledHeader="1"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release_Cairo_CFLite|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ UsePrecompiledHeader="1"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug_All|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ UsePrecompiledHeader="1"
+ PrecompiledHeaderThrough="WebKitPrefix.h"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Production|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ UsePrecompiledHeader="1"
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="..\WebKitPrefix.h"
+ >
+ </File>
+ </Files>
+ <Globals>
+ </Globals>
+</VisualStudioProject>
diff --git a/Source/WebKit/win/WebKit.vcproj/WebKitGUID.vcproj b/Source/WebKit/win/WebKit.vcproj/WebKitGUID.vcproj index f087413be..3c0977954 100644 --- a/Source/WebKit/win/WebKit.vcproj/WebKitGUID.vcproj +++ b/Source/WebKit/win/WebKit.vcproj/WebKitGUID.vcproj @@ -1,348 +1,348 @@ -<?xml version="1.0" encoding="Windows-1252"?> -<VisualStudioProject - ProjectType="Visual C++" - Version="8.00" - Name="WebKitGUID" - ProjectGUID="{B8437A41-67BC-4769-9452-45203827F821}" - RootNamespace="WebKitGUID" - Keyword="Win32Proj" - > - <Platforms> - <Platform - Name="Win32" - /> - </Platforms> - <ToolFiles> - </ToolFiles> - <Configurations> - <Configuration - Name="Debug|Win32" - ConfigurationType="4" - InheritedPropertySheets=".\WebKitGUIDDebug.vsprops" - CharacterSet="1" - > - <Tool - Name="VCPreBuildEventTool" - /> - <Tool - Name="VCCustomBuildTool" - /> - <Tool - Name="VCXMLDataGeneratorTool" - /> - <Tool - Name="VCWebServiceProxyGeneratorTool" - /> - <Tool - Name="VCMIDLTool" - OutputDirectory="Debug" - /> - <Tool - Name="VCCLCompilerTool" - /> - <Tool - Name="VCManagedResourceCompilerTool" - /> - <Tool - Name="VCResourceCompilerTool" - /> - <Tool - Name="VCPreLinkEventTool" - /> - <Tool - Name="VCLibrarianTool" - /> - <Tool - Name="VCALinkTool" - /> - <Tool - Name="VCXDCMakeTool" - /> - <Tool - Name="VCBscMakeTool" - /> - <Tool - Name="VCFxCopTool" - /> - <Tool - Name="VCPostBuildEventTool" - /> - </Configuration> - <Configuration - Name="Release|Win32" - ConfigurationType="4" - InheritedPropertySheets=".\WebKitGUIDRelease.vsprops" - CharacterSet="1" - > - <Tool - Name="VCPreBuildEventTool" - /> - <Tool - Name="VCCustomBuildTool" - /> - <Tool - Name="VCXMLDataGeneratorTool" - /> - <Tool - Name="VCWebServiceProxyGeneratorTool" - /> - <Tool - Name="VCMIDLTool" - OutputDirectory="Release" - /> - <Tool - Name="VCCLCompilerTool" - /> - <Tool - Name="VCManagedResourceCompilerTool" - /> - <Tool - Name="VCResourceCompilerTool" - /> - <Tool - Name="VCPreLinkEventTool" - /> - <Tool - Name="VCLibrarianTool" - /> - <Tool - Name="VCALinkTool" - /> - <Tool - Name="VCXDCMakeTool" - /> - <Tool - Name="VCBscMakeTool" - /> - <Tool - Name="VCFxCopTool" - /> - <Tool - Name="VCPostBuildEventTool" - /> - </Configuration> - <Configuration - Name="Debug_All|Win32" - ConfigurationType="4" - InheritedPropertySheets=".\WebKitGUIDDebugAll.vsprops" - CharacterSet="1" - > - <Tool - Name="VCPreBuildEventTool" - /> - <Tool - Name="VCCustomBuildTool" - /> - <Tool - Name="VCXMLDataGeneratorTool" - /> - <Tool - Name="VCWebServiceProxyGeneratorTool" - /> - <Tool - Name="VCMIDLTool" - OutputDirectory="Debug" - /> - <Tool - Name="VCCLCompilerTool" - /> - <Tool - Name="VCManagedResourceCompilerTool" - /> - <Tool - Name="VCResourceCompilerTool" - /> - <Tool - Name="VCPreLinkEventTool" - /> - <Tool - Name="VCLibrarianTool" - /> - <Tool - Name="VCALinkTool" - /> - <Tool - Name="VCXDCMakeTool" - /> - <Tool - Name="VCBscMakeTool" - /> - <Tool - Name="VCFxCopTool" - /> - <Tool - Name="VCPostBuildEventTool" - /> - </Configuration> - <Configuration - Name="Production|Win32" - ConfigurationType="4" - InheritedPropertySheets=".\WebKitGUIDProduction.vsprops" - CharacterSet="1" - WholeProgramOptimization="1" - > - <Tool - Name="VCPreBuildEventTool" - /> - <Tool - Name="VCCustomBuildTool" - /> - <Tool - Name="VCXMLDataGeneratorTool" - /> - <Tool - Name="VCWebServiceProxyGeneratorTool" - /> - <Tool - Name="VCMIDLTool" - OutputDirectory="Release" - /> - <Tool - Name="VCCLCompilerTool" - /> - <Tool - Name="VCManagedResourceCompilerTool" - /> - <Tool - Name="VCResourceCompilerTool" - /> - <Tool - Name="VCPreLinkEventTool" - /> - <Tool - Name="VCLibrarianTool" - /> - <Tool - Name="VCALinkTool" - /> - <Tool - Name="VCXDCMakeTool" - /> - <Tool - Name="VCBscMakeTool" - /> - <Tool - Name="VCFxCopTool" - /> - <Tool - Name="VCPostBuildEventTool" - /> - </Configuration> - <Configuration - Name="Release_Cairo_CFLite|Win32" - ConfigurationType="4" - InheritedPropertySheets=".\WebKitGUIDReleaseCairoCFLite.vsprops" - CharacterSet="1" - > - <Tool - Name="VCPreBuildEventTool" - /> - <Tool - Name="VCCustomBuildTool" - /> - <Tool - Name="VCXMLDataGeneratorTool" - /> - <Tool - Name="VCWebServiceProxyGeneratorTool" - /> - <Tool - Name="VCMIDLTool" - OutputDirectory="Release" - /> - <Tool - Name="VCCLCompilerTool" - /> - <Tool - Name="VCManagedResourceCompilerTool" - /> - <Tool - Name="VCResourceCompilerTool" - /> - <Tool - Name="VCPreLinkEventTool" - /> - <Tool - Name="VCLibrarianTool" - /> - <Tool - Name="VCALinkTool" - /> - <Tool - Name="VCXDCMakeTool" - /> - <Tool - Name="VCBscMakeTool" - /> - <Tool - Name="VCFxCopTool" - /> - <Tool - Name="VCPostBuildEventTool" - /> - </Configuration> - <Configuration - Name="Debug_Cairo_CFLite|Win32" - ConfigurationType="4" - InheritedPropertySheets=".\WebKitGUIDDebugCairoCFLite.vsprops" - CharacterSet="1" - > - <Tool - Name="VCPreBuildEventTool" - /> - <Tool - Name="VCCustomBuildTool" - /> - <Tool - Name="VCXMLDataGeneratorTool" - /> - <Tool - Name="VCWebServiceProxyGeneratorTool" - /> - <Tool - Name="VCMIDLTool" - OutputDirectory="Debug" - /> - <Tool - Name="VCCLCompilerTool" - /> - <Tool - Name="VCManagedResourceCompilerTool" - /> - <Tool - Name="VCResourceCompilerTool" - /> - <Tool - Name="VCPreLinkEventTool" - /> - <Tool - Name="VCLibrarianTool" - /> - <Tool - Name="VCALinkTool" - /> - <Tool - Name="VCXDCMakeTool" - /> - <Tool - Name="VCBscMakeTool" - /> - <Tool - Name="VCFxCopTool" - /> - <Tool - Name="VCPostBuildEventTool" - /> - </Configuration> - </Configurations> - <References> - </References> - <Files> - <File - RelativePath="$(ConfigurationBuildDir)\obj\WebKit\Interfaces\WebKit_i.c" - > - </File> - </Files> - <Globals> - </Globals> -</VisualStudioProject> +<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+ ProjectType="Visual C++"
+ Version="8.00"
+ Name="WebKitGUID"
+ ProjectGUID="{B8437A41-67BC-4769-9452-45203827F821}"
+ RootNamespace="WebKitGUID"
+ Keyword="Win32Proj"
+ >
+ <Platforms>
+ <Platform
+ Name="Win32"
+ />
+ </Platforms>
+ <ToolFiles>
+ </ToolFiles>
+ <Configurations>
+ <Configuration
+ Name="Debug|Win32"
+ ConfigurationType="4"
+ InheritedPropertySheets=".\WebKitGUIDDebug.vsprops"
+ CharacterSet="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ OutputDirectory="Debug"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLibrarianTool"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ <Configuration
+ Name="Release|Win32"
+ ConfigurationType="4"
+ InheritedPropertySheets=".\WebKitGUIDRelease.vsprops"
+ CharacterSet="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ OutputDirectory="Release"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLibrarianTool"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ <Configuration
+ Name="Debug_All|Win32"
+ ConfigurationType="4"
+ InheritedPropertySheets=".\WebKitGUIDDebugAll.vsprops"
+ CharacterSet="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ OutputDirectory="Debug"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLibrarianTool"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ <Configuration
+ Name="Production|Win32"
+ ConfigurationType="4"
+ InheritedPropertySheets=".\WebKitGUIDProduction.vsprops"
+ CharacterSet="1"
+ WholeProgramOptimization="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ OutputDirectory="Release"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLibrarianTool"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ <Configuration
+ Name="Release_Cairo_CFLite|Win32"
+ ConfigurationType="4"
+ InheritedPropertySheets=".\WebKitGUIDReleaseCairoCFLite.vsprops"
+ CharacterSet="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ OutputDirectory="Release"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLibrarianTool"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ <Configuration
+ Name="Debug_Cairo_CFLite|Win32"
+ ConfigurationType="4"
+ InheritedPropertySheets=".\WebKitGUIDDebugCairoCFLite.vsprops"
+ CharacterSet="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ OutputDirectory="Debug"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLibrarianTool"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ </Configurations>
+ <References>
+ </References>
+ <Files>
+ <File
+ RelativePath="$(ConfigurationBuildDir)\obj\WebKit\Interfaces\WebKit_i.c"
+ >
+ </File>
+ </Files>
+ <Globals>
+ </Globals>
+</VisualStudioProject>
diff --git a/Source/WebKit/win/WebKit.vcproj/WebKitGUIDCommon.vsprops b/Source/WebKit/win/WebKit.vcproj/WebKitGUIDCommon.vsprops index 1621ea6cb..be1978da4 100644 --- a/Source/WebKit/win/WebKit.vcproj/WebKitGUIDCommon.vsprops +++ b/Source/WebKit/win/WebKit.vcproj/WebKitGUIDCommon.vsprops @@ -1,19 +1,19 @@ -<?xml version="1.0" encoding="Windows-1252"?> -<VisualStudioPropertySheet - ProjectType="Visual C++" - Version="8.00" - Name="WebKitGUIDCommon" - OutputDirectory="$(ConfigurationBuildDir)\lib" - > - <Tool - Name="VCCLCompilerTool" - AdditionalIncludeDirectories="$(ConfigurationBuildDir)\WebKit" - PreprocessorDefinitions="_USRDLL;WEBKITGUID_EXPORTS" - /> - <Tool - Name="VCMIDLTool" - AdditionalIncludeDirectories="Interfaces" - HeaderFileName="$(InputName).h" - /> - -</VisualStudioPropertySheet> +<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioPropertySheet
+ ProjectType="Visual C++"
+ Version="8.00"
+ Name="WebKitGUIDCommon"
+ OutputDirectory="$(ConfigurationBuildDir)\lib"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories="$(ConfigurationBuildDir)\WebKit"
+ PreprocessorDefinitions="_USRDLL;WEBKITGUID_EXPORTS"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ AdditionalIncludeDirectories="Interfaces"
+ HeaderFileName="$(InputName).h"
+ />
+
+</VisualStudioPropertySheet>
diff --git a/Source/WebKit/win/WebKit.vcproj/WebKitGUIDDebug.vsprops b/Source/WebKit/win/WebKit.vcproj/WebKitGUIDDebug.vsprops index af39c12cb..2bb7b0bff 100644 --- a/Source/WebKit/win/WebKit.vcproj/WebKitGUIDDebug.vsprops +++ b/Source/WebKit/win/WebKit.vcproj/WebKitGUIDDebug.vsprops @@ -1,8 +1,8 @@ -<?xml version="1.0" encoding="Windows-1252"?> -<VisualStudioPropertySheet - ProjectType="Visual C++" - Version="8.00" - Name="WebKitGUIDDebug" - InheritedPropertySheets="$(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\FeatureDefines.vsprops;$(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\common.vsprops;$(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\debug.vsprops;.\WebKitGUIDCommon.vsprops" - > -</VisualStudioPropertySheet> +<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioPropertySheet
+ ProjectType="Visual C++"
+ Version="8.00"
+ Name="WebKitGUIDDebug"
+ InheritedPropertySheets="$(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\FeatureDefines.vsprops;$(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\common.vsprops;$(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\debug.vsprops;.\WebKitGUIDCommon.vsprops"
+ >
+</VisualStudioPropertySheet>
diff --git a/Source/WebKit/win/WebKit.vcproj/WebKitGUIDDebugAll.vsprops b/Source/WebKit/win/WebKit.vcproj/WebKitGUIDDebugAll.vsprops index b5b37cec0..16333c88c 100644 --- a/Source/WebKit/win/WebKit.vcproj/WebKitGUIDDebugAll.vsprops +++ b/Source/WebKit/win/WebKit.vcproj/WebKitGUIDDebugAll.vsprops @@ -1,8 +1,8 @@ -<?xml version="1.0" encoding="Windows-1252"?> -<VisualStudioPropertySheet - ProjectType="Visual C++" - Version="8.00" - Name="WebKitGUIDDebugAll" - InheritedPropertySheets="$(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\FeatureDefines.vsprops;$(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\common.vsprops;$(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\debug.vsprops;$(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\debug_all.vsprops;.\WebKitGUIDCommon.vsprops" - > -</VisualStudioPropertySheet> +<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioPropertySheet
+ ProjectType="Visual C++"
+ Version="8.00"
+ Name="WebKitGUIDDebugAll"
+ InheritedPropertySheets="$(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\FeatureDefines.vsprops;$(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\common.vsprops;$(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\debug.vsprops;$(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\debug_all.vsprops;.\WebKitGUIDCommon.vsprops"
+ >
+</VisualStudioPropertySheet>
diff --git a/Source/WebKit/win/WebKit.vcproj/WebKitGUIDDebugCairoCFLite.vsprops b/Source/WebKit/win/WebKit.vcproj/WebKitGUIDDebugCairoCFLite.vsprops index c257899d4..074e68d9f 100644 --- a/Source/WebKit/win/WebKit.vcproj/WebKitGUIDDebugCairoCFLite.vsprops +++ b/Source/WebKit/win/WebKit.vcproj/WebKitGUIDDebugCairoCFLite.vsprops @@ -1,8 +1,8 @@ -<?xml version="1.0" encoding="Windows-1252"?> -<VisualStudioPropertySheet - ProjectType="Visual C++" - Version="8.00" - Name="WebKitGUIDDebugCairoCFLite" - InheritedPropertySheets="$(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\FeatureDefinesCairo.vsprops;$(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\common.vsprops;$(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\debug.vsprops;$(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\debug_wincairo.vsprops;.\WebKitGUIDCommon.vsprops" - > -</VisualStudioPropertySheet> +<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioPropertySheet
+ ProjectType="Visual C++"
+ Version="8.00"
+ Name="WebKitGUIDDebugCairoCFLite"
+ InheritedPropertySheets="$(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\FeatureDefinesCairo.vsprops;$(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\common.vsprops;$(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\debug.vsprops;$(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\debug_wincairo.vsprops;.\WebKitGUIDCommon.vsprops"
+ >
+</VisualStudioPropertySheet>
diff --git a/Source/WebKit/win/WebKit.vcproj/WebKitGUIDProduction.vsprops b/Source/WebKit/win/WebKit.vcproj/WebKitGUIDProduction.vsprops index 31407c88f..72cce98f7 100644 --- a/Source/WebKit/win/WebKit.vcproj/WebKitGUIDProduction.vsprops +++ b/Source/WebKit/win/WebKit.vcproj/WebKitGUIDProduction.vsprops @@ -1,8 +1,8 @@ -<?xml version="1.0" encoding="Windows-1252"?> -<VisualStudioPropertySheet - ProjectType="Visual C++" - Version="8.00" - Name="WebKitGUIDProduction" - InheritedPropertySheets="$(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\FeatureDefines.vsprops;$(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\common.vsprops;$(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\releaseproduction.vsprops;$(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\production.vsprops;.\WebKitGUIDCommon.vsprops" - > -</VisualStudioPropertySheet> +<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioPropertySheet
+ ProjectType="Visual C++"
+ Version="8.00"
+ Name="WebKitGUIDProduction"
+ InheritedPropertySheets="$(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\FeatureDefines.vsprops;$(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\common.vsprops;$(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\releaseproduction.vsprops;$(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\production.vsprops;.\WebKitGUIDCommon.vsprops"
+ >
+</VisualStudioPropertySheet>
diff --git a/Source/WebKit/win/WebKit.vcproj/WebKitGUIDRelease.vsprops b/Source/WebKit/win/WebKit.vcproj/WebKitGUIDRelease.vsprops index fefb330d9..907a46810 100644 --- a/Source/WebKit/win/WebKit.vcproj/WebKitGUIDRelease.vsprops +++ b/Source/WebKit/win/WebKit.vcproj/WebKitGUIDRelease.vsprops @@ -1,8 +1,8 @@ -<?xml version="1.0" encoding="Windows-1252"?> -<VisualStudioPropertySheet - ProjectType="Visual C++" - Version="8.00" - Name="WebKitGUIDRelease" - InheritedPropertySheets="$(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\FeatureDefines.vsprops;$(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\common.vsprops;$(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\releaseproduction.vsprops;$(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\release.vsprops;.\WebKitGUIDCommon.vsprops" - > -</VisualStudioPropertySheet> +<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioPropertySheet
+ ProjectType="Visual C++"
+ Version="8.00"
+ Name="WebKitGUIDRelease"
+ InheritedPropertySheets="$(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\FeatureDefines.vsprops;$(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\common.vsprops;$(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\releaseproduction.vsprops;$(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\release.vsprops;.\WebKitGUIDCommon.vsprops"
+ >
+</VisualStudioPropertySheet>
diff --git a/Source/WebKit/win/WebKit.vcproj/WebKitGUIDReleaseCairoCFLite.vsprops b/Source/WebKit/win/WebKit.vcproj/WebKitGUIDReleaseCairoCFLite.vsprops index 03c34165d..02ac0ef3e 100644 --- a/Source/WebKit/win/WebKit.vcproj/WebKitGUIDReleaseCairoCFLite.vsprops +++ b/Source/WebKit/win/WebKit.vcproj/WebKitGUIDReleaseCairoCFLite.vsprops @@ -1,8 +1,8 @@ -<?xml version="1.0" encoding="Windows-1252"?> -<VisualStudioPropertySheet - ProjectType="Visual C++" - Version="8.00" - Name="WebKitGUIDReleaseCairoCFLite" - InheritedPropertySheets="$(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\FeatureDefinesCairo.vsprops;$(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\common.vsprops;$(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\releaseproduction.vsprops;$(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\release.vsprops;$(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\WinCairo.vsprops;.\WebKitGUIDCommon.vsprops" - > -</VisualStudioPropertySheet> +<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioPropertySheet
+ ProjectType="Visual C++"
+ Version="8.00"
+ Name="WebKitGUIDReleaseCairoCFLite"
+ InheritedPropertySheets="$(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\FeatureDefinesCairo.vsprops;$(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\common.vsprops;$(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\releaseproduction.vsprops;$(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\release.vsprops;$(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\WinCairo.vsprops;.\WebKitGUIDCommon.vsprops"
+ >
+</VisualStudioPropertySheet>
diff --git a/Source/WebKit/win/WebKit.vcproj/WebKitLibCommon.vsprops b/Source/WebKit/win/WebKit.vcproj/WebKitLibCommon.vsprops index 32c5b2051..bc4d70c7a 100644 --- a/Source/WebKit/win/WebKit.vcproj/WebKitLibCommon.vsprops +++ b/Source/WebKit/win/WebKit.vcproj/WebKitLibCommon.vsprops @@ -1,18 +1,18 @@ -<?xml version="1.0" encoding="Windows-1252"?> -<VisualStudioPropertySheet - ProjectType="Visual C++" - Version="8.00" - Name="WebKitLibCommon" - OutputDirectory="$(ConfigurationBuildDir)\lib" - > - <Tool - Name="VCCLCompilerTool" - AdditionalIncludeDirectories=""$(ConfigurationBuildDir)\include\WebKit";"$(ConfigurationBuildDir)\Include";"$(ConfigurationBuildDir)\Include\private";"$(WebKitLibrariesDir)\Include";"$(WebKitLibrariesDir)\Include\private";"$(ConfigurationBuildDir)\Include\WebCore";"$(WebKitLibrariesDir)\Include\WebCore";"$(ConfigurationBuildDir)\Include\WebCore\ForwardingHeaders";"$(WebKitLibrariesDir)\Include\WebCore\ForwardingHeaders";"$(ConfigurationBuildDir)\Include\JavaScriptCore";"$(ConfigurationBuildDir)\Include\private\JavaScriptCore";"$(WebKitLibrariesDir)\Include\JavaScriptCore";"$(WebKitLibrariesDir)\Include\private\JavaScriptCore";"$(WebKitLibrariesDir)\include\pthreads";"$(ProjectDir)\..";"$(ProjectDir)";"$(ProjectDir)\..\WebCoreSupport";"$(IntDir)\include";"$(ConfigurationBuildDir)\obj\WebKit\DerivedSources"" - PreprocessorDefinitions="_USRDLL;WEBKIT_EXPORTS;FRAMEWORK_NAME=WebKit" - UsePrecompiledHeader="2" - PrecompiledHeaderThrough="WebKitPrefix.h" - ProgramDataBaseFileName="$(OutDir)\$(TargetName).vc80.pdb" - DisableSpecificWarnings="4819" - ForcedIncludeFiles="WebKitPrefix.h;ICUVersion.h" - /> -</VisualStudioPropertySheet> +<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioPropertySheet
+ ProjectType="Visual C++"
+ Version="8.00"
+ Name="WebKitLibCommon"
+ OutputDirectory="$(ConfigurationBuildDir)\lib"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""$(ConfigurationBuildDir)\include\WebKit";"$(ConfigurationBuildDir)\Include";"$(ConfigurationBuildDir)\Include\private";"$(WebKitLibrariesDir)\Include";"$(WebKitLibrariesDir)\Include\private";"$(ConfigurationBuildDir)\Include\WebCore";"$(WebKitLibrariesDir)\Include\WebCore";"$(ConfigurationBuildDir)\Include\WebCore\ForwardingHeaders";"$(WebKitLibrariesDir)\Include\WebCore\ForwardingHeaders";"$(ConfigurationBuildDir)\Include\JavaScriptCore";"$(ConfigurationBuildDir)\Include\private\JavaScriptCore";"$(WebKitLibrariesDir)\Include\JavaScriptCore";"$(WebKitLibrariesDir)\Include\private\JavaScriptCore";"$(WebKitLibrariesDir)\include\pthreads";"$(ProjectDir)\..";"$(ProjectDir)";"$(ProjectDir)\..\WebCoreSupport";"$(IntDir)\include";"$(ConfigurationBuildDir)\obj\WebKit\DerivedSources""
+ PreprocessorDefinitions="_USRDLL;WEBKIT_EXPORTS;FRAMEWORK_NAME=WebKit"
+ UsePrecompiledHeader="2"
+ PrecompiledHeaderThrough="WebKitPrefix.h"
+ ProgramDataBaseFileName="$(OutDir)\$(TargetName).vc80.pdb"
+ DisableSpecificWarnings="4819"
+ ForcedIncludeFiles="WebKitPrefix.h;ICUVersion.h"
+ />
+</VisualStudioPropertySheet>
diff --git a/Source/WebKit/win/WebKit.vcproj/WebKitLibDebug.vsprops b/Source/WebKit/win/WebKit.vcproj/WebKitLibDebug.vsprops index 0830b8057..3721bb5d2 100644 --- a/Source/WebKit/win/WebKit.vcproj/WebKitLibDebug.vsprops +++ b/Source/WebKit/win/WebKit.vcproj/WebKitLibDebug.vsprops @@ -1,8 +1,8 @@ -<?xml version="1.0" encoding="Windows-1252"?> -<VisualStudioPropertySheet - ProjectType="Visual C++" - Version="8.00" - Name="WebKitLibDebug" - InheritedPropertySheets="$(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\FeatureDefines.vsprops;$(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\common.vsprops;$(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\debug.vsprops;.\WebKitLibCommon.vsprops" - > -</VisualStudioPropertySheet> +<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioPropertySheet
+ ProjectType="Visual C++"
+ Version="8.00"
+ Name="WebKitLibDebug"
+ InheritedPropertySheets="$(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\FeatureDefines.vsprops;$(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\common.vsprops;$(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\debug.vsprops;.\WebKitLibCommon.vsprops"
+ >
+</VisualStudioPropertySheet>
diff --git a/Source/WebKit/win/WebKit.vcproj/WebKitLibDebugAll.vsprops b/Source/WebKit/win/WebKit.vcproj/WebKitLibDebugAll.vsprops index dc0a596fc..36ad6da0a 100644 --- a/Source/WebKit/win/WebKit.vcproj/WebKitLibDebugAll.vsprops +++ b/Source/WebKit/win/WebKit.vcproj/WebKitLibDebugAll.vsprops @@ -1,8 +1,8 @@ -<?xml version="1.0" encoding="Windows-1252"?> -<VisualStudioPropertySheet - ProjectType="Visual C++" - Version="8.00" - Name="WebKitLibDebugAll" - InheritedPropertySheets="$(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\FeatureDefines.vsprops;$(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\common.vsprops;$(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\debug.vsprops;$(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\debug_all.vsprops;.\WebKitLibCommon.vsprops" - > -</VisualStudioPropertySheet> +<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioPropertySheet
+ ProjectType="Visual C++"
+ Version="8.00"
+ Name="WebKitLibDebugAll"
+ InheritedPropertySheets="$(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\FeatureDefines.vsprops;$(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\common.vsprops;$(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\debug.vsprops;$(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\debug_all.vsprops;.\WebKitLibCommon.vsprops"
+ >
+</VisualStudioPropertySheet>
diff --git a/Source/WebKit/win/WebKit.vcproj/WebKitLibDebugCairoCFLite.vsprops b/Source/WebKit/win/WebKit.vcproj/WebKitLibDebugCairoCFLite.vsprops index 8fb5e93b1..42e56bec0 100644 --- a/Source/WebKit/win/WebKit.vcproj/WebKitLibDebugCairoCFLite.vsprops +++ b/Source/WebKit/win/WebKit.vcproj/WebKitLibDebugCairoCFLite.vsprops @@ -1,8 +1,8 @@ -<?xml version="1.0" encoding="Windows-1252"?> -<VisualStudioPropertySheet - ProjectType="Visual C++" - Version="8.00" - Name="WebKitLibDebugCairoCFLite" - InheritedPropertySheets="$(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\FeatureDefinesCairo.vsprops;$(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\WinCairo.vsprops;$(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\common.vsprops;$(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\debug.vsprops;$(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\debug_wincairo.vsprops;$(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\cURL.vsprops;.\WebKitLibCommon.vsprops" - > -</VisualStudioPropertySheet> +<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioPropertySheet
+ ProjectType="Visual C++"
+ Version="8.00"
+ Name="WebKitLibDebugCairoCFLite"
+ InheritedPropertySheets="$(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\FeatureDefinesCairo.vsprops;$(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\WinCairo.vsprops;$(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\common.vsprops;$(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\debug.vsprops;$(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\debug_wincairo.vsprops;$(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\cURL.vsprops;.\WebKitLibCommon.vsprops"
+ >
+</VisualStudioPropertySheet>
diff --git a/Source/WebKit/win/WebKit.vcproj/WebKitLibProduction.vsprops b/Source/WebKit/win/WebKit.vcproj/WebKitLibProduction.vsprops index 67636de41..206dad5a1 100644 --- a/Source/WebKit/win/WebKit.vcproj/WebKitLibProduction.vsprops +++ b/Source/WebKit/win/WebKit.vcproj/WebKitLibProduction.vsprops @@ -1,8 +1,8 @@ -<?xml version="1.0" encoding="Windows-1252"?> -<VisualStudioPropertySheet - ProjectType="Visual C++" - Version="8.00" - Name="WebKitProduction" - InheritedPropertySheets="$(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\FeatureDefines.vsprops;$(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\common.vsprops;$(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\releaseproduction.vsprops;$(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\production.vsprops;.\WebKitLibCommon.vsprops" - > -</VisualStudioPropertySheet> +<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioPropertySheet
+ ProjectType="Visual C++"
+ Version="8.00"
+ Name="WebKitProduction"
+ InheritedPropertySheets="$(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\FeatureDefines.vsprops;$(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\common.vsprops;$(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\releaseproduction.vsprops;$(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\production.vsprops;.\WebKitLibCommon.vsprops"
+ >
+</VisualStudioPropertySheet>
diff --git a/Source/WebKit/win/WebKit.vcproj/WebKitLibRelease.vsprops b/Source/WebKit/win/WebKit.vcproj/WebKitLibRelease.vsprops index 019c1ee0a..99b5c8a9d 100644 --- a/Source/WebKit/win/WebKit.vcproj/WebKitLibRelease.vsprops +++ b/Source/WebKit/win/WebKit.vcproj/WebKitLibRelease.vsprops @@ -1,8 +1,8 @@ -<?xml version="1.0" encoding="Windows-1252"?> -<VisualStudioPropertySheet - ProjectType="Visual C++" - Version="8.00" - Name="WebKitLibRelease" - InheritedPropertySheets="$(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\FeatureDefines.vsprops;$(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\common.vsprops;$(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\releaseproduction.vsprops;$(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\release.vsprops;.\WebKitLibCommon.vsprops" - > -</VisualStudioPropertySheet> +<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioPropertySheet
+ ProjectType="Visual C++"
+ Version="8.00"
+ Name="WebKitLibRelease"
+ InheritedPropertySheets="$(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\FeatureDefines.vsprops;$(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\common.vsprops;$(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\releaseproduction.vsprops;$(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\release.vsprops;.\WebKitLibCommon.vsprops"
+ >
+</VisualStudioPropertySheet>
diff --git a/Source/WebKit/win/WebKit.vcproj/WebKitLibReleaseCairoCFLite.vsprops b/Source/WebKit/win/WebKit.vcproj/WebKitLibReleaseCairoCFLite.vsprops index 85c4fc55c..abe0317fb 100644 --- a/Source/WebKit/win/WebKit.vcproj/WebKitLibReleaseCairoCFLite.vsprops +++ b/Source/WebKit/win/WebKit.vcproj/WebKitLibReleaseCairoCFLite.vsprops @@ -1,8 +1,8 @@ -<?xml version="1.0" encoding="Windows-1252"?> -<VisualStudioPropertySheet - ProjectType="Visual C++" - Version="8.00" - Name="WebKitLibReleaseCairoCFLite" - InheritedPropertySheets="$(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\FeatureDefinesCairo.vsprops;$(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\WinCairo.vsprops;$(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\common.vsprops;$(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\releaseproduction.vsprops;$(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\release.vsprops;$(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\WinCairo.vsprops;$(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\cURL.vsprops;.\WebKitLibCommon.vsprops" - > -</VisualStudioPropertySheet> +<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioPropertySheet
+ ProjectType="Visual C++"
+ Version="8.00"
+ Name="WebKitLibReleaseCairoCFLite"
+ InheritedPropertySheets="$(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\FeatureDefinesCairo.vsprops;$(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\WinCairo.vsprops;$(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\common.vsprops;$(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\releaseproduction.vsprops;$(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\release.vsprops;$(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\WinCairo.vsprops;$(WebKitVSPropsRedirectionDir)..\..\..\..\WebKitLibraries\win\tools\vsprops\cURL.vsprops;.\WebKitLibCommon.vsprops"
+ >
+</VisualStudioPropertySheet>
diff --git a/Source/WebKit/win/WebKitDLL.h b/Source/WebKit/win/WebKitDLL.h index 8ba5b8e0d..a4494cf19 100644 --- a/Source/WebKit/win/WebKitDLL.h +++ b/Source/WebKit/win/WebKitDLL.h @@ -34,7 +34,7 @@ #include <windows.h> #include <wtf/HashCountedSet.h> #include <wtf/text/StringHash.h> -#include <WebCore/PlatformString.h> +#include <wtf/text/WTFString.h> #ifdef WEBKIT_EXPORTS #define WEBKIT_API __declspec(dllexport) diff --git a/Source/WebKit/win/WebKitGraphics.cpp b/Source/WebKit/win/WebKitGraphics.cpp index 7423ad362..85eae16da 100644 --- a/Source/WebKit/win/WebKitGraphics.cpp +++ b/Source/WebKit/win/WebKitGraphics.cpp @@ -36,9 +36,9 @@ #include <WebCore/FontDescription.h> #include <WebCore/FontSelector.h> #include <WebCore/GraphicsContext.h> -#include <WebCore/PlatformString.h> #include <WebCore/StringTruncator.h> #include <WebCore/WebCoreTextRenderer.h> +#include <wtf/text/WTFString.h> #include <wtf/unicode/CharacterNames.h> #include <CoreGraphics/CoreGraphics.h> diff --git a/Source/WebKit/win/WebKitSystemBits.cpp b/Source/WebKit/win/WebKitSystemBits.cpp index c77a78ba8..32e505c57 100644 --- a/Source/WebKit/win/WebKitSystemBits.cpp +++ b/Source/WebKit/win/WebKitSystemBits.cpp @@ -30,8 +30,8 @@ #include "WebKitSystemBits.h" #include <CoreFoundation/CoreFoundation.h> -#include <WebCore/PlatformString.h> #include <windows.h> +#include <wtf/text/WTFString.h> unsigned long long WebMemorySize() { diff --git a/Source/WebKit/win/WebLocalizableStrings.cpp b/Source/WebKit/win/WebLocalizableStrings.cpp index b05c55eb2..fd61a01fb 100644 --- a/Source/WebKit/win/WebLocalizableStrings.cpp +++ b/Source/WebKit/win/WebLocalizableStrings.cpp @@ -28,9 +28,9 @@ #include "WebLocalizableStrings.h" -#include <WebCore/PlatformString.h> #include <wtf/text/CString.h> #include <wtf/text/StringHash.h> +#include <wtf/text/WTFString.h> #include <wtf/Assertions.h> #include <wtf/HashMap.h> @@ -40,8 +40,6 @@ class LocalizedString; -using namespace WebCore; - WebLocalizableStringsBundle WebKitLocalizableStringsBundle = { "com.apple.WebKit", 0 }; typedef HashMap<String, LocalizedString*> LocalizedStringMap; diff --git a/Source/WebKit/win/WebNotificationCenter.cpp b/Source/WebKit/win/WebNotificationCenter.cpp index c7192d8d3..23de1c1c9 100644 --- a/Source/WebKit/win/WebNotificationCenter.cpp +++ b/Source/WebKit/win/WebNotificationCenter.cpp @@ -29,16 +29,14 @@ #include "WebNotification.h" #include <WebCore/COMPtr.h> -#include <WebCore/PlatformString.h> +#include <utility> +#include <wchar.h> #include <wtf/HashMap.h> #include <wtf/HashTraits.h> #include <wtf/PassOwnPtr.h> #include <wtf/Vector.h> #include <wtf/text/StringHash.h> -#include <utility> -#include <wchar.h> - -using namespace WebCore; +#include <wtf/text/WTFString.h> typedef std::pair<COMPtr<IUnknown>, COMPtr<IWebNotificationObserver> > ObjectObserverPair; typedef Vector<ObjectObserverPair> ObjectObserverList; diff --git a/Source/WebKit/win/WebResource.h b/Source/WebKit/win/WebResource.h index d5a01acb9..d8fb433e1 100644 --- a/Source/WebKit/win/WebResource.h +++ b/Source/WebKit/win/WebResource.h @@ -29,10 +29,10 @@ #include "WebKit.h" #include <WebCore/COMPtr.h> #include <WebCore/KURL.h> -#include <WebCore/PlatformString.h> #include <WebCore/ResourceResponse.h> #include <WebCore/SharedBuffer.h> #include <wtf/PassRefPtr.h> +#include <wtf/text/WTFString.h> class WebResource : public IWebResource { public: diff --git a/Source/WebKit/win/WebView.cpp b/Source/WebKit/win/WebView.cpp index 70d491edb..9ea9332ec 100644 --- a/Source/WebKit/win/WebView.cpp +++ b/Source/WebKit/win/WebView.cpp @@ -1322,7 +1322,7 @@ bool WebView::handleContextMenuEvent(WPARAM wParam, LPARAM lParam) m_page->contextMenuController()->clearContextMenu(); IntPoint documentPoint(m_page->mainFrame()->view()->windowToContents(coords)); - HitTestResult result = m_page->mainFrame()->eventHandler()->hitTestResultAtPoint(documentPoint, false); + HitTestResult result = m_page->mainFrame()->eventHandler()->hitTestResultAtPoint(documentPoint); Frame* targetFrame = result.innerNonSharedNode() ? result.innerNonSharedNode()->document()->frame() : m_page->focusController()->focusedOrMainFrame(); targetFrame->view()->setCursor(pointerCursor()); @@ -3198,7 +3198,7 @@ HRESULT STDMETHODCALLTYPE WebView::stringByEvaluatingJavaScriptFromString( else if (scriptExecutionResult.isString()) { JSC::ExecState* exec = coreFrame->script()->globalObject(mainThreadNormalWorld())->globalExec(); JSC::JSLockHolder lock(exec); - *result = BString(ustringToString(scriptExecutionResult.getString(exec))); + *result = BString(scriptExecutionResult.getString(exec)); } return S_OK; @@ -3597,7 +3597,7 @@ HRESULT STDMETHODCALLTYPE WebView::elementAtPoint( IntPoint webCorePoint = IntPoint(point->x, point->y); HitTestResult result = HitTestResult(webCorePoint); if (frame->contentRenderer()) - result = frame->eventHandler()->hitTestResultAtPoint(webCorePoint, false); + result = frame->eventHandler()->hitTestResultAtPoint(webCorePoint); *elementDictionary = WebElementPropertyBag::createInstance(result); return S_OK; } @@ -5546,19 +5546,17 @@ static void compositionToUnderlines(const Vector<DWORD>& clauses, const Vector<B #define APPEND_ARGUMENT_NAME(name) \ if (lparam & name) { \ if (needsComma) \ - result += ", "; \ - result += #name; \ + result.appendLiteral(", "); \ + result.appendLiteral(#name); \ needsComma = true; \ } static String imeCompositionArgumentNames(LPARAM lparam) { - String result; + StringBuilder result; bool needsComma = false; - if (lparam & GCS_COMPATTR) { - result = "GCS_COMPATTR"; - needsComma = true; - } + + APPEND_ARGUMENT_NAME(GCS_COMPATTR); APPEND_ARGUMENT_NAME(GCS_COMPCLAUSE); APPEND_ARGUMENT_NAME(GCS_COMPREADSTR); APPEND_ARGUMENT_NAME(GCS_COMPREADATTR); @@ -5573,7 +5571,7 @@ static String imeCompositionArgumentNames(LPARAM lparam) APPEND_ARGUMENT_NAME(CS_INSERTCHAR); APPEND_ARGUMENT_NAME(CS_NOMOVECARET); - return result; + return result.toString(); } static String imeNotificationName(WPARAM wparam) diff --git a/Source/WebKit/wince/ChangeLog b/Source/WebKit/wince/ChangeLog index 31f521746..d66fa5923 100644 --- a/Source/WebKit/wince/ChangeLog +++ b/Source/WebKit/wince/ChangeLog @@ -1,3 +1,47 @@ +2012-08-28 Sheriff Bot <webkit.review.bot@gmail.com> + + Unreviewed, rolling out r126914. + http://trac.webkit.org/changeset/126914 + https://bugs.webkit.org/show_bug.cgi?id=95239 + + it breaks everything and fixes nothing (Requested by pizlo on + #webkit). + + * WebCoreSupport/PlatformStrategiesWinCE.cpp: + (PlatformStrategiesWinCE::getPluginInfo): + +2012-08-28 Caio Marcelo de Oliveira Filho <caio.oliveira@openbossa.org> + + Rename first/second to key/value in HashMap iterators + https://bugs.webkit.org/show_bug.cgi?id=82784 + + Reviewed by Eric Seidel. + + * WebCoreSupport/PlatformStrategiesWinCE.cpp: + (PlatformStrategiesWinCE::getPluginInfo): + +2012-08-27 Sheriff Bot <webkit.review.bot@gmail.com> + + Unreviewed, rolling out r126836. + http://trac.webkit.org/changeset/126836 + https://bugs.webkit.org/show_bug.cgi?id=95163 + + Broke all Apple ports, EFL, and Qt. (Requested by tkent on + #webkit). + + * WebCoreSupport/PlatformStrategiesWinCE.cpp: + (PlatformStrategiesWinCE::getPluginInfo): + +2012-08-27 Caio Marcelo de Oliveira Filho <caio.oliveira@openbossa.org> + + Rename first/second to key/value in HashMap iterators + https://bugs.webkit.org/show_bug.cgi?id=82784 + + Reviewed by Eric Seidel. + + * WebCoreSupport/PlatformStrategiesWinCE.cpp: + (PlatformStrategiesWinCE::getPluginInfo): + 2012-08-13 Tom Sepez <tsepez@chromium.org> [chromium] release FrameLoaderClientImpl::m_pluginWidget refptr upon Plugin Document detach. diff --git a/Source/WebKit/wx/ChangeLog b/Source/WebKit/wx/ChangeLog index 1952bbbf0..4f3bdab15 100644 --- a/Source/WebKit/wx/ChangeLog +++ b/Source/WebKit/wx/ChangeLog @@ -1,3 +1,44 @@ +2012-09-07 Allan Sandfeld Jensen <allan.jensen@nokia.com> + + Simplify hitTestResultAtPoint and nodesFromRect APIs + https://bugs.webkit.org/show_bug.cgi?id=95720 + + Reviewed by Antonio Gomes. + + Update calls to new API. + + * WebFrame.cpp: + (WebKit::WebFrame::HitTest): + +2012-09-05 Sam Weinig <sam@webkit.org> + + Part 2 of removing PlatformString.h, remove PlatformString.h + https://bugs.webkit.org/show_bug.cgi?id=95931 + + Reviewed by Adam Barth. + + Remove PlatformString.h + + * WebFrame.cpp: + * WebKitSupport/ChromeClientWx.cpp: + * WebKitSupport/EditorClientWx.cpp: + * WebKitSupport/FrameLoaderClientWx.cpp: + * WebKitSupport/InspectorClientWx.cpp: + * WebSettings.cpp: + * WebView.cpp: + +2012-08-30 Benjamin Poulain <bpoulain@apple.com> + + Replace JSC::UString by WTF::String + https://bugs.webkit.org/show_bug.cgi?id=95271 + + Reviewed by Geoffrey Garen. + + Update the #includes to use the correct types. + + * WebFrame.cpp: + * WebView.cpp: + 2012-08-13 Tom Sepez <tsepez@chromium.org> [chromium] release FrameLoaderClientImpl::m_pluginWidget refptr upon Plugin Document detach. diff --git a/Source/WebKit/wx/WebFrame.cpp b/Source/WebKit/wx/WebFrame.cpp index 942c4beaa..470165db4 100644 --- a/Source/WebKit/wx/WebFrame.cpp +++ b/Source/WebKit/wx/WebFrame.cpp @@ -42,7 +42,6 @@ #include "HTMLFrameOwnerElement.h" #include "markup.h" #include "Page.h" -#include "PlatformString.h" #include "PrintContext.h" #include "RenderTreeAsText.h" #include "RenderObject.h" @@ -54,8 +53,8 @@ #include "JSDOMBinding.h" #include <runtime/JSValue.h> -#include <runtime/UString.h> #include <wtf/text/CString.h> +#include <wtf/text/WTFString.h> #include "EditorClientWx.h" #include "FrameLoaderClientWx.h" @@ -690,7 +689,7 @@ WebViewDOMElementInfo WebFrame::HitTest(const wxPoint& pos) const WebViewDOMElementInfo domInfo; if (m_impl->frame->view()) { - WebCore::HitTestResult result = m_impl->frame->eventHandler()->hitTestResultAtPoint(m_impl->frame->view()->windowToContents(pos), false); + WebCore::HitTestResult result = m_impl->frame->eventHandler()->hitTestResultAtPoint(m_impl->frame->view()->windowToContents(pos)); if (result.innerNode()) { domInfo.SetLink(result.absoluteLinkURL().string()); domInfo.SetText(result.textContent()); diff --git a/Source/WebKit/wx/WebKitSupport/ChromeClientWx.cpp b/Source/WebKit/wx/WebKitSupport/ChromeClientWx.cpp index 757bb0682..5f1167b54 100644 --- a/Source/WebKit/wx/WebKitSupport/ChromeClientWx.cpp +++ b/Source/WebKit/wx/WebKitSupport/ChromeClientWx.cpp @@ -40,7 +40,6 @@ #include "Icon.h" #include "NavigationAction.h" #include "NotImplemented.h" -#include "PlatformString.h" #include "SecurityOrigin.h" #include "PopupMenuWx.h" #include "SearchPopupMenuWx.h" @@ -58,6 +57,7 @@ #include "WebBrowserShell.h" #include "WebView.h" #include "WebViewPrivate.h" +#include <wtf/text/WTFString.h> namespace WebCore { diff --git a/Source/WebKit/wx/WebKitSupport/EditorClientWx.cpp b/Source/WebKit/wx/WebKitSupport/EditorClientWx.cpp index 7ce6bd5ae..d700a967a 100644 --- a/Source/WebKit/wx/WebKitSupport/EditorClientWx.cpp +++ b/Source/WebKit/wx/WebKitSupport/EditorClientWx.cpp @@ -38,12 +38,12 @@ #include "NotImplemented.h" #include "Page.h" #include "PlatformKeyboardEvent.h" -#include "PlatformString.h" #include "WebFrame.h" #include "WebFramePrivate.h" #include "WebView.h" #include "WebViewPrivate.h" #include "WindowsKeyboardCodes.h" +#include <wtf/text/WTFString.h> #include <stdio.h> diff --git a/Source/WebKit/wx/WebKitSupport/FrameLoaderClientWx.cpp b/Source/WebKit/wx/WebKitSupport/FrameLoaderClientWx.cpp index 18b6730da..8ac269675 100644 --- a/Source/WebKit/wx/WebKitSupport/FrameLoaderClientWx.cpp +++ b/Source/WebKit/wx/WebKitSupport/FrameLoaderClientWx.cpp @@ -43,7 +43,6 @@ #include "HTMLFrameOwnerElement.h" #include "NotImplemented.h" #include "Page.h" -#include "PlatformString.h" #include "PluginView.h" #include "ProgressTracker.h" #include "RenderPart.h" @@ -56,6 +55,7 @@ #include <wtf/PassRefPtr.h> #include <wtf/RefPtr.h> +#include <wtf/text/WTFString.h> #include <stdio.h> #if OS(UNIX) diff --git a/Source/WebKit/wx/WebKitSupport/InspectorClientWx.cpp b/Source/WebKit/wx/WebKitSupport/InspectorClientWx.cpp index a7a5de7ca..276b13e06 100644 --- a/Source/WebKit/wx/WebKitSupport/InspectorClientWx.cpp +++ b/Source/WebKit/wx/WebKitSupport/InspectorClientWx.cpp @@ -28,7 +28,7 @@ #include "NotImplemented.h" #include "Page.h" -#include "PlatformString.h" +#include <wtf/text/WTFString.h> namespace WebCore { diff --git a/Source/WebKit/wx/WebSettings.cpp b/Source/WebKit/wx/WebSettings.cpp index 4f8a5bcb8..d89db3000 100644 --- a/Source/WebKit/wx/WebSettings.cpp +++ b/Source/WebKit/wx/WebSettings.cpp @@ -29,8 +29,8 @@ #include "config.h" #include "WebSettings.h" -#include "PlatformString.h" #include "Settings.h" +#include <wtf/text/WTFString.h> namespace WebKit { diff --git a/Source/WebKit/wx/WebView.cpp b/Source/WebKit/wx/WebView.cpp index acb60f643..99f7b3939 100644 --- a/Source/WebKit/wx/WebView.cpp +++ b/Source/WebKit/wx/WebView.cpp @@ -47,7 +47,6 @@ #include "Page.h" #include "PlatformKeyboardEvent.h" #include "PlatformMouseEvent.h" -#include "PlatformString.h" #include "PlatformWheelEvent.h" #include "RenderObject.h" #include "RenderView.h" @@ -72,9 +71,9 @@ #include "JSDOMBinding.h" #include <runtime/InitializeThreading.h> #include <runtime/JSValue.h> -#include <runtime/UString.h> #include <wtf/MainThread.h> #include <wtf/text/CString.h> +#include <wtf/text/WTFString.h> #if ENABLE(SQL_DATABASE) #include "AbstractDatabase.h" |