Title: [257693] trunk/Source/WebKit
Revision
257693
Author
[email protected]
Date
2020-03-01 15:13:46 -0800 (Sun, 01 Mar 2020)

Log Message

Many tests in canvas and fast/canvas are asserting after r257677
https://bugs.webkit.org/show_bug.cgi?id=208431
<rdar://problem/59911910>

Reviewed by Tim Horton.

RemoteRenderingBackend asserts that it should never be created with a RenderingMode that isn't either
RemoteAccelerated or RemoteUnaccelerated. This was previously the case before r257677, because
ImageBuffer::create() would only call into the host window (i.e. the chrome and, in turn, chrome client) to
create the remote image buffer if the rendering mode is RemoteAccelerated or RemoteUnaccelerated. However, since
we want to move away from any references to RemoteAccelerated or RemoteUnaccelerated rendering modes in WebCore,
we should instead fix this by adding a similar check in the client (WebKit) layer.

* WebProcess/WebCoreSupport/WebChromeClient.cpp:
(WebKit::WebChromeClient::createImageBuffer const):

Don't bother creating a RemoteRenderingBackend and telling it to create an image buffer, if the given
RenderingMode isn't one of RemoteAccelerated or RemoteUnaccelerated.

Modified Paths

Diff

Modified: trunk/Source/WebKit/ChangeLog (257692 => 257693)


--- trunk/Source/WebKit/ChangeLog	2020-03-01 20:46:49 UTC (rev 257692)
+++ trunk/Source/WebKit/ChangeLog	2020-03-01 23:13:46 UTC (rev 257693)
@@ -1,3 +1,24 @@
+2020-03-01  Wenson Hsieh  <[email protected]>
+
+        Many tests in canvas and fast/canvas are asserting after r257677
+        https://bugs.webkit.org/show_bug.cgi?id=208431
+        <rdar://problem/59911910>
+
+        Reviewed by Tim Horton.
+
+        RemoteRenderingBackend asserts that it should never be created with a RenderingMode that isn't either
+        RemoteAccelerated or RemoteUnaccelerated. This was previously the case before r257677, because
+        ImageBuffer::create() would only call into the host window (i.e. the chrome and, in turn, chrome client) to
+        create the remote image buffer if the rendering mode is RemoteAccelerated or RemoteUnaccelerated. However, since
+        we want to move away from any references to RemoteAccelerated or RemoteUnaccelerated rendering modes in WebCore,
+        we should instead fix this by adding a similar check in the client (WebKit) layer.
+
+        * WebProcess/WebCoreSupport/WebChromeClient.cpp:
+        (WebKit::WebChromeClient::createImageBuffer const):
+
+        Don't bother creating a RemoteRenderingBackend and telling it to create an image buffer, if the given
+        RenderingMode isn't one of RemoteAccelerated or RemoteUnaccelerated.
+
 2020-02-29  Yusuke Suzuki  <[email protected]>
 
         Remove std::lock_guard

Modified: trunk/Source/WebKit/WebProcess/WebCoreSupport/WebChromeClient.cpp (257692 => 257693)


--- trunk/Source/WebKit/WebProcess/WebCoreSupport/WebChromeClient.cpp	2020-03-01 20:46:49 UTC (rev 257692)
+++ trunk/Source/WebKit/WebProcess/WebCoreSupport/WebChromeClient.cpp	2020-03-01 23:13:46 UTC (rev 257693)
@@ -893,6 +893,9 @@
 
 std::unique_ptr<ImageBuffer> WebChromeClient::createImageBuffer(const FloatSize& size, RenderingMode renderingMode, float resolutionScale, ColorSpace colorSpace) const
 {
+    if (renderingMode != RenderingMode::RemoteAccelerated && renderingMode != RenderingMode::RemoteUnaccelerated)
+        return nullptr;
+
     if (!m_remoteRenderingBackend)
         m_remoteRenderingBackend = RemoteRenderingBackend::create();
     return m_remoteRenderingBackend->createImageBuffer(size, renderingMode, resolutionScale, colorSpace);
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to