Title: [121310] trunk/Source
Revision
121310
Author
commit-qu...@webkit.org
Date
2012-06-26 18:49:20 -0700 (Tue, 26 Jun 2012)

Log Message

[chromium] Remove WebView::graphicsContext3D getter
https://bugs.webkit.org/show_bug.cgi?id=89916

Patch by James Robinson <jam...@chromium.org> on 2012-06-26
Reviewed by Adrienne Walker.

Source/Platform:

Remove unused getter.

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

Source/WebCore:

Deletes code supporting compositor context getter.

* platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
* platform/graphics/chromium/cc/CCLayerTreeHost.h:
(CCLayerTreeHost):
* platform/graphics/chromium/cc/CCProxy.h:
(CCProxy):
* platform/graphics/chromium/cc/CCSingleThreadProxy.cpp:
* platform/graphics/chromium/cc/CCSingleThreadProxy.h:
(CCSingleThreadProxy):
* platform/graphics/chromium/cc/CCThreadProxy.cpp:
* platform/graphics/chromium/cc/CCThreadProxy.h:
(CCThreadProxy):

Source/WebKit/chromium:

Removes WebView::graphicsContext3D getter. This getter was used to access the compositor's context, which is an
inherently dangerous operation since the compositor context may not be safe to use on the main thread and has
somewhat complicated creation / recreation semantics. A shared context is exposed
(WebView::sharedGraphicsContext3D) for callers who may want access to a context in a share group with the
compositor.

* public/WebView.h:
(WebView):
* src/WebLayerTreeView.cpp:
* src/WebViewImpl.cpp:
* src/WebViewImpl.h:
(WebViewImpl):

Modified Paths

Diff

Modified: trunk/Source/Platform/ChangeLog (121309 => 121310)


--- trunk/Source/Platform/ChangeLog	2012-06-27 01:41:06 UTC (rev 121309)
+++ trunk/Source/Platform/ChangeLog	2012-06-27 01:49:20 UTC (rev 121310)
@@ -1,3 +1,15 @@
+2012-06-26  James Robinson  <jam...@chromium.org>
+
+        [chromium] Remove WebView::graphicsContext3D getter
+        https://bugs.webkit.org/show_bug.cgi?id=89916
+
+        Reviewed by Adrienne Walker.
+
+        Remove unused getter.
+
+        * chromium/public/WebLayerTreeView.h:
+        (WebLayerTreeView):
+
 2012-06-26  Dave Tu  <d...@chromium.org>
 
         [chromium] Expose rendering statistics to WebWidget.

Modified: trunk/Source/Platform/chromium/public/WebLayerTreeView.h (121309 => 121310)


--- trunk/Source/Platform/chromium/public/WebLayerTreeView.h	2012-06-27 01:41:06 UTC (rev 121309)
+++ trunk/Source/Platform/chromium/public/WebLayerTreeView.h	2012-06-27 01:49:20 UTC (rev 121310)
@@ -167,11 +167,6 @@
     // This can have a significant performance impact and should be used with care.
     WEBKIT_EXPORT void finishAllRendering();
 
-    // Returns the context being used for rendering this view. In threaded compositing mode, it is
-    // not safe to use this context for anything on the main thread, other than passing the pointer to
-    // the compositor thread.
-    WEBKIT_EXPORT WebGraphicsContext3D* context();
-
     // Debugging / dangerous ---------------------------------------------
 
     // Fills in a WebRenderingStats struct containing information about the state of the compositor.

Modified: trunk/Source/WebCore/ChangeLog (121309 => 121310)


--- trunk/Source/WebCore/ChangeLog	2012-06-27 01:41:06 UTC (rev 121309)
+++ trunk/Source/WebCore/ChangeLog	2012-06-27 01:49:20 UTC (rev 121310)
@@ -1,3 +1,24 @@
+2012-06-26  James Robinson  <jam...@chromium.org>
+
+        [chromium] Remove WebView::graphicsContext3D getter
+        https://bugs.webkit.org/show_bug.cgi?id=89916
+
+        Reviewed by Adrienne Walker.
+
+        Deletes code supporting compositor context getter.
+
+        * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
+        * platform/graphics/chromium/cc/CCLayerTreeHost.h:
+        (CCLayerTreeHost):
+        * platform/graphics/chromium/cc/CCProxy.h:
+        (CCProxy):
+        * platform/graphics/chromium/cc/CCSingleThreadProxy.cpp:
+        * platform/graphics/chromium/cc/CCSingleThreadProxy.h:
+        (CCSingleThreadProxy):
+        * platform/graphics/chromium/cc/CCThreadProxy.cpp:
+        * platform/graphics/chromium/cc/CCThreadProxy.h:
+        (CCThreadProxy):
+
 2012-06-26  Kulanthaivel Palanichamy  <kulanthai...@codeaurora.org>
 
         Unexpected element sizes when mixing inline-table with box-sizing

Modified: trunk/Source/WebCore/platform/graphics/chromium/cc/CCLayerTreeHost.cpp (121309 => 121310)


--- trunk/Source/WebCore/platform/graphics/chromium/cc/CCLayerTreeHost.cpp	2012-06-27 01:41:06 UTC (rev 121309)
+++ trunk/Source/WebCore/platform/graphics/chromium/cc/CCLayerTreeHost.cpp	2012-06-27 01:49:20 UTC (rev 121310)
@@ -285,12 +285,6 @@
     setNeedsCommit();
 }
 
-// Temporary hack until WebViewImpl context creation gets simplified
-CCGraphicsContext* CCLayerTreeHost::context()
-{
-    return m_proxy->context();
-}
-
 bool CCLayerTreeHost::compositeAndReadback(void *pixels, const IntRect& rect)
 {
     m_triggerIdlePaints = false;

Modified: trunk/Source/WebCore/platform/graphics/chromium/cc/CCLayerTreeHost.h (121309 => 121310)


--- trunk/Source/WebCore/platform/graphics/chromium/cc/CCLayerTreeHost.h	2012-06-27 01:41:06 UTC (rev 121309)
+++ trunk/Source/WebCore/platform/graphics/chromium/cc/CCLayerTreeHost.h	2012-06-27 01:49:20 UTC (rev 121310)
@@ -185,10 +185,6 @@
     void composite();
     void scheduleComposite();
 
-    // NOTE: The returned value can only be used to make GL calls or make the
-    // context current on the thread the compositor is running on!
-    CCGraphicsContext* context();
-
     // Composites and attempts to read back the result into the provided
     // buffer. If it wasn't possible, e.g. due to context lost, will return
     // false.

Modified: trunk/Source/WebCore/platform/graphics/chromium/cc/CCProxy.h (121309 => 121310)


--- trunk/Source/WebCore/platform/graphics/chromium/cc/CCProxy.h	2012-06-27 01:41:06 UTC (rev 121309)
+++ trunk/Source/WebCore/platform/graphics/chromium/cc/CCProxy.h	2012-06-27 01:49:20 UTC (rev 121310)
@@ -116,9 +116,6 @@
     static void setMainThreadBlocked(bool);
 #endif
 
-    // Temporary hack while render_widget still does scheduling for CCLayerTreeHostMainThreadI
-    virtual CCGraphicsContext* context() = 0;
-
     // Testing hooks
     virtual void loseContext() = 0;
 

Modified: trunk/Source/WebCore/platform/graphics/chromium/cc/CCSingleThreadProxy.cpp (121309 => 121310)


--- trunk/Source/WebCore/platform/graphics/chromium/cc/CCSingleThreadProxy.cpp	2012-06-27 01:41:06 UTC (rev 121309)
+++ trunk/Source/WebCore/platform/graphics/chromium/cc/CCSingleThreadProxy.cpp	2012-06-27 01:49:20 UTC (rev 121310)
@@ -93,15 +93,6 @@
     m_layerTreeHostImpl->startPageScaleAnimation(targetPosition, useAnchor, scale, monotonicallyIncreasingTime(), duration);
 }
 
-CCGraphicsContext* CCSingleThreadProxy::context()
-{
-    ASSERT(CCProxy::isMainThread());
-    if (m_contextBeforeInitialization)
-        return m_contextBeforeInitialization.get();
-    DebugScopedSetImplThread impl;
-    return m_layerTreeHostImpl->context();
-}
-
 void CCSingleThreadProxy::finishAllRendering()
 {
     ASSERT(CCProxy::isMainThread());

Modified: trunk/Source/WebCore/platform/graphics/chromium/cc/CCSingleThreadProxy.h (121309 => 121310)


--- trunk/Source/WebCore/platform/graphics/chromium/cc/CCSingleThreadProxy.h	2012-06-27 01:41:06 UTC (rev 121309)
+++ trunk/Source/WebCore/platform/graphics/chromium/cc/CCSingleThreadProxy.h	2012-06-27 01:49:20 UTC (rev 121310)
@@ -43,7 +43,6 @@
     // CCProxy implementation
     virtual bool compositeAndReadback(void *pixels, const IntRect&) OVERRIDE;
     virtual void startPageScaleAnimation(const IntSize& targetPosition, bool useAnchor, float scale, double duration) OVERRIDE;
-    virtual CCGraphicsContext* context() OVERRIDE;
     virtual void finishAllRendering() OVERRIDE;
     virtual bool isStarted() const OVERRIDE;
     virtual bool initializeContext() OVERRIDE;

Modified: trunk/Source/WebCore/platform/graphics/chromium/cc/CCThreadProxy.cpp (121309 => 121310)


--- trunk/Source/WebCore/platform/graphics/chromium/cc/CCThreadProxy.cpp	2012-06-27 01:41:06 UTC (rev 121309)
+++ trunk/Source/WebCore/platform/graphics/chromium/cc/CCThreadProxy.cpp	2012-06-27 01:49:20 UTC (rev 121310)
@@ -157,11 +157,6 @@
         m_layerTreeHostImpl->startPageScaleAnimation(targetPosition, useAnchor, scale, monotonicallyIncreasingTime(), duration);
 }
 
-CCGraphicsContext* CCThreadProxy::context()
-{
-    return 0;
-}
-
 void CCThreadProxy::finishAllRendering()
 {
     ASSERT(CCProxy::isMainThread());

Modified: trunk/Source/WebCore/platform/graphics/chromium/cc/CCThreadProxy.h (121309 => 121310)


--- trunk/Source/WebCore/platform/graphics/chromium/cc/CCThreadProxy.h	2012-06-27 01:41:06 UTC (rev 121309)
+++ trunk/Source/WebCore/platform/graphics/chromium/cc/CCThreadProxy.h	2012-06-27 01:49:20 UTC (rev 121310)
@@ -51,7 +51,6 @@
     // CCProxy implementation
     virtual bool compositeAndReadback(void *pixels, const IntRect&) OVERRIDE;
     virtual void startPageScaleAnimation(const IntSize& targetPosition, bool useAnchor, float scale, double duration) OVERRIDE;
-    virtual CCGraphicsContext* context() OVERRIDE;
     virtual void finishAllRendering() OVERRIDE;
     virtual bool isStarted() const OVERRIDE;
     virtual bool initializeContext() OVERRIDE;

Modified: trunk/Source/WebKit/chromium/ChangeLog (121309 => 121310)


--- trunk/Source/WebKit/chromium/ChangeLog	2012-06-27 01:41:06 UTC (rev 121309)
+++ trunk/Source/WebKit/chromium/ChangeLog	2012-06-27 01:49:20 UTC (rev 121310)
@@ -1,3 +1,23 @@
+2012-06-26  James Robinson  <jam...@chromium.org>
+
+        [chromium] Remove WebView::graphicsContext3D getter
+        https://bugs.webkit.org/show_bug.cgi?id=89916
+
+        Reviewed by Adrienne Walker.
+
+        Removes WebView::graphicsContext3D getter. This getter was used to access the compositor's context, which is an
+        inherently dangerous operation since the compositor context may not be safe to use on the main thread and has
+        somewhat complicated creation / recreation semantics. A shared context is exposed
+        (WebView::sharedGraphicsContext3D) for callers who may want access to a context in a share group with the
+        compositor.
+
+        * public/WebView.h:
+        (WebView):
+        * src/WebLayerTreeView.cpp:
+        * src/WebViewImpl.cpp:
+        * src/WebViewImpl.h:
+        (WebViewImpl):
+
 2012-06-26  Peter Beverloo  <pe...@chromium.org>
 
         [Chromium] Decrease the number of conditional blocks in features.gypi

Modified: trunk/Source/WebKit/chromium/public/WebView.h (121309 => 121310)


--- trunk/Source/WebKit/chromium/public/WebView.h	2012-06-27 01:41:06 UTC (rev 121309)
+++ trunk/Source/WebKit/chromium/public/WebView.h	2012-06-27 01:49:20 UTC (rev 121310)
@@ -448,13 +448,6 @@
 
     // GPU acceleration support --------------------------------------------
 
-    // Returns the (on-screen) WebGraphicsContext3D associated with
-    // this WebView. One will be created if it doesn't already exist.
-    // This is used to set up sharing between this context (which is
-    // that used by the compositor) and contexts for WebGL and other
-    // APIs.
-    virtual WebGraphicsContext3D* graphicsContext3D() = 0;
-
     // Context that's in the compositor's share group, but is not the compositor context itself.
     // Can be used for allocating resources that the compositor will later access.
     virtual WebGraphicsContext3D* sharedGraphicsContext3D() = 0;

Modified: trunk/Source/WebKit/chromium/src/WebLayerTreeView.cpp (121309 => 121310)


--- trunk/Source/WebKit/chromium/src/WebLayerTreeView.cpp	2012-06-27 01:41:06 UTC (rev 121309)
+++ trunk/Source/WebKit/chromium/src/WebLayerTreeView.cpp	2012-06-27 01:49:20 UTC (rev 121310)
@@ -175,11 +175,6 @@
     m_private->layerTreeHost()->finishAllRendering();
 }
 
-WebGraphicsContext3D* WebLayerTreeView::context()
-{
-    return m_private->layerTreeHost()->context()->context3D();
-}
-
 void WebLayerTreeView::renderingStats(WebRenderingStats& stats) const
 {
     CCRenderingStats ccStats;

Modified: trunk/Source/WebKit/chromium/src/WebViewImpl.cpp (121309 => 121310)


--- trunk/Source/WebKit/chromium/src/WebViewImpl.cpp	2012-06-27 01:41:06 UTC (rev 121309)
+++ trunk/Source/WebKit/chromium/src/WebViewImpl.cpp	2012-06-27 01:49:20 UTC (rev 121310)
@@ -3716,30 +3716,6 @@
     m_layerTreeView.setPageScaleFactorAndLimits(pageScaleFactor(), m_minimumPageScaleFactor, m_maximumPageScaleFactor);
 }
 
-WebGraphicsContext3D* WebViewImpl::graphicsContext3D()
-{
-#if USE(ACCELERATED_COMPOSITING)
-    if (m_page->settings()->acceleratedCompositingEnabled() && allowsAcceleratedCompositing()) {
-        if (!m_layerTreeView.isNull()) {
-            WebGraphicsContext3D* context = m_layerTreeView.context();
-            if (context && !context->isContextLost())
-                return context;
-        }
-        // If we get here it means that some system needs access to the context the compositor will use but the compositor itself
-        // hasn't requested a context or it was unable to successfully instantiate a context.
-        // We need to return the context that the compositor will later use so we allocate a new context (if needed) and stash it
-        // until the compositor requests and takes ownership of the context via createLayerTreeHost3D().
-        if (!m_temporaryOnscreenGraphicsContext3D)
-            m_temporaryOnscreenGraphicsContext3D = createCompositorGraphicsContext3D();
-
-        WebGraphicsContext3D* webContext = m_temporaryOnscreenGraphicsContext3D.get();
-        if (webContext && !webContext->isContextLost())
-            return webContext;
-    }
-#endif
-    return 0;
-}
-
 WebGraphicsContext3D* WebViewImpl::sharedGraphicsContext3D()
 {
     if (!m_page->settings()->acceleratedCompositingEnabled() || !allowsAcceleratedCompositing())

Modified: trunk/Source/WebKit/chromium/src/WebViewImpl.h (121309 => 121310)


--- trunk/Source/WebKit/chromium/src/WebViewImpl.h	2012-06-27 01:41:06 UTC (rev 121309)
+++ trunk/Source/WebKit/chromium/src/WebViewImpl.h	2012-06-27 01:49:20 UTC (rev 121310)
@@ -520,13 +520,6 @@
     void scheduleAnimation();
 #endif
 
-    // Returns the onscreen 3D context used by the compositor. This is
-    // used by the renderer's code to set up resource sharing between
-    // the compositor's context and subordinate contexts for APIs like
-    // WebGL. Returns 0 if compositing support is not compiled in or
-    // we could not successfully instantiate a context.
-    virtual WebGraphicsContext3D* graphicsContext3D();
-
     virtual WebGraphicsContext3D* sharedGraphicsContext3D();
 
     PassOwnPtr<WebGraphicsContext3D> createCompositorGraphicsContext3D();
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes

Reply via email to