Title: [281059] branches/safari-612.1.27.0-branch/Source
- Revision
- 281059
- Author
- [email protected]
- Date
- 2021-08-14 22:25:10 -0700 (Sat, 14 Aug 2021)
Log Message
Cherry-pick r281058. rdar://problem/81947517
[GPU Process] REGRESSION: WebContent often crashes when opening a Google spreadsheet with charts
https://bugs.webkit.org/show_bug.cgi?id=229106
<rdar://81806877>
Reviewed by Wenson Hsieh.
Source/WebCore:
Add a method to return the backend of the ImageBuffer.
* platform/graphics/ConcreteImageBuffer.h:
* platform/graphics/ImageBuffer.h:
Source/WebKit:
Don't resume processing the DisplayList of an ImageBuffer until its
backend is created.
* WebProcess/GPU/graphics/RemoteRenderingBackendProxy.cpp:
(WebKit::RemoteRenderingBackendProxy::didAppendData):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@281058 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Modified Paths
Diff
Modified: branches/safari-612.1.27.0-branch/Source/WebCore/ChangeLog (281058 => 281059)
--- branches/safari-612.1.27.0-branch/Source/WebCore/ChangeLog 2021-08-14 23:22:58 UTC (rev 281058)
+++ branches/safari-612.1.27.0-branch/Source/WebCore/ChangeLog 2021-08-15 05:25:10 UTC (rev 281059)
@@ -1,3 +1,44 @@
+2021-08-14 Alan Coon <[email protected]>
+
+ Cherry-pick r281058. rdar://problem/81947517
+
+ [GPU Process] REGRESSION: WebContent often crashes when opening a Google spreadsheet with charts
+ https://bugs.webkit.org/show_bug.cgi?id=229106
+ <rdar://81806877>
+
+ Reviewed by Wenson Hsieh.
+
+ Source/WebCore:
+
+ Add a method to return the backend of the ImageBuffer.
+
+ * platform/graphics/ConcreteImageBuffer.h:
+ * platform/graphics/ImageBuffer.h:
+
+ Source/WebKit:
+
+ Don't resume processing the DisplayList of an ImageBuffer until its
+ backend is created.
+
+ * WebProcess/GPU/graphics/RemoteRenderingBackendProxy.cpp:
+ (WebKit::RemoteRenderingBackendProxy::didAppendData):
+
+
+ git-svn-id: https://svn.webkit.org/repository/webkit/trunk@281058 268f45cc-cd09-0410-ab3c-d52691b4dbfc
+
+ 2021-08-14 Said Abou-Hallawa <[email protected]>
+
+ [GPU Process] REGRESSION: WebContent often crashes when opening a Google spreadsheet with charts
+ https://bugs.webkit.org/show_bug.cgi?id=229106
+ <rdar://81806877>
+
+ Reviewed by Wenson Hsieh.
+
+ Add a method to return the backend of the ImageBuffer.
+
+ * platform/graphics/ConcreteImageBuffer.h:
+ * platform/graphics/ImageBuffer.h:
+
2021-08-12 Alan Coon <[email protected]>
Cherry-pick r280776. rdar://problem/81861548
Modified: branches/safari-612.1.27.0-branch/Source/WebCore/platform/graphics/ConcreteImageBuffer.h (281058 => 281059)
--- branches/safari-612.1.27.0-branch/Source/WebCore/platform/graphics/ConcreteImageBuffer.h 2021-08-14 23:22:58 UTC (rev 281058)
+++ branches/safari-612.1.27.0-branch/Source/WebCore/platform/graphics/ConcreteImageBuffer.h 2021-08-15 05:25:10 UTC (rev 281059)
@@ -71,6 +71,7 @@
}
void clearBackend() override { m_backend = nullptr; }
+ ImageBufferBackend* backend() const override { return m_backend.get(); }
ImageBufferBackend* ensureBackendCreated() const override { return m_backend.get(); }
RenderingResourceIdentifier renderingResourceIdentifier() const override { return m_renderingResourceIdentifier; }
Modified: branches/safari-612.1.27.0-branch/Source/WebCore/platform/graphics/ImageBuffer.h (281058 => 281059)
--- branches/safari-612.1.27.0-branch/Source/WebCore/platform/graphics/ImageBuffer.h 2021-08-14 23:22:58 UTC (rev 281058)
+++ branches/safari-612.1.27.0-branch/Source/WebCore/platform/graphics/ImageBuffer.h 2021-08-15 05:25:10 UTC (rev 281059)
@@ -66,6 +66,7 @@
virtual void setBackend(std::unique_ptr<ImageBufferBackend>&&) = 0;
virtual void clearBackend() = 0;
+ virtual ImageBufferBackend* backend() const = 0;
virtual ImageBufferBackend* ensureBackendCreated() const = 0;
virtual RenderingMode renderingMode() const = 0;
Modified: branches/safari-612.1.27.0-branch/Source/WebKit/ChangeLog (281058 => 281059)
--- branches/safari-612.1.27.0-branch/Source/WebKit/ChangeLog 2021-08-14 23:22:58 UTC (rev 281058)
+++ branches/safari-612.1.27.0-branch/Source/WebKit/ChangeLog 2021-08-15 05:25:10 UTC (rev 281059)
@@ -1,3 +1,45 @@
+2021-08-14 Alan Coon <[email protected]>
+
+ Cherry-pick r281058. rdar://problem/81947517
+
+ [GPU Process] REGRESSION: WebContent often crashes when opening a Google spreadsheet with charts
+ https://bugs.webkit.org/show_bug.cgi?id=229106
+ <rdar://81806877>
+
+ Reviewed by Wenson Hsieh.
+
+ Source/WebCore:
+
+ Add a method to return the backend of the ImageBuffer.
+
+ * platform/graphics/ConcreteImageBuffer.h:
+ * platform/graphics/ImageBuffer.h:
+
+ Source/WebKit:
+
+ Don't resume processing the DisplayList of an ImageBuffer until its
+ backend is created.
+
+ * WebProcess/GPU/graphics/RemoteRenderingBackendProxy.cpp:
+ (WebKit::RemoteRenderingBackendProxy::didAppendData):
+
+
+ git-svn-id: https://svn.webkit.org/repository/webkit/trunk@281058 268f45cc-cd09-0410-ab3c-d52691b4dbfc
+
+ 2021-08-14 Said Abou-Hallawa <[email protected]>
+
+ [GPU Process] REGRESSION: WebContent often crashes when opening a Google spreadsheet with charts
+ https://bugs.webkit.org/show_bug.cgi?id=229106
+ <rdar://81806877>
+
+ Reviewed by Wenson Hsieh.
+
+ Don't resume processing the DisplayList of an ImageBuffer until its
+ backend is created.
+
+ * WebProcess/GPU/graphics/RemoteRenderingBackendProxy.cpp:
+ (WebKit::RemoteRenderingBackendProxy::didAppendData):
+
2021-08-13 Alan Coon <[email protected]>
Cherry-pick r281044. rdar://problem/81918718
Modified: branches/safari-612.1.27.0-branch/Source/WebKit/WebProcess/GPU/graphics/RemoteRenderingBackendProxy.cpp (281058 => 281059)
--- branches/safari-612.1.27.0-branch/Source/WebKit/WebProcess/GPU/graphics/RemoteRenderingBackendProxy.cpp 2021-08-14 23:22:58 UTC (rev 281058)
+++ branches/safari-612.1.27.0-branch/Source/WebKit/WebProcess/GPU/graphics/RemoteRenderingBackendProxy.cpp 2021-08-15 05:25:10 UTC (rev 281059)
@@ -344,7 +344,8 @@
bool wasEmpty = sharedHandle->advance(numberOfBytes) == numberOfBytes;
if (!wasEmpty || didChangeItemBuffer == DisplayList::DidChangeItemBuffer::Yes) {
if (m_deferredWakeupMessageArguments) {
- if (sharedHandle->tryToResume({ m_deferredWakeupMessageArguments->offset, m_deferredWakeupMessageArguments->destinationImageBufferIdentifier.toUInt64() })) {
+ auto imageBuffer = m_remoteResourceCacheProxy.cachedImageBuffer(m_deferredWakeupMessageArguments->destinationImageBufferIdentifier);
+ if (imageBuffer && imageBuffer->backend() && sharedHandle->tryToResume({ m_deferredWakeupMessageArguments->offset, m_deferredWakeupMessageArguments->destinationImageBufferIdentifier.toUInt64() })) {
m_parameters.resumeDisplayListSemaphore.signal();
m_deferredWakeupMessageArguments = std::nullopt;
m_remainingItemsToAppendBeforeSendingWakeup = 0;
@@ -358,8 +359,9 @@
sendDeferredWakeupMessageIfNeeded();
+ auto imageBuffer = m_remoteResourceCacheProxy.cachedImageBuffer(destinationImageBuffer);
auto offsetToRead = sharedHandle->writableOffset() - numberOfBytes;
- if (sharedHandle->tryToResume({ offsetToRead, destinationImageBuffer.toUInt64() })) {
+ if (imageBuffer && imageBuffer->backend() && sharedHandle->tryToResume({ offsetToRead, destinationImageBuffer.toUInt64() })) {
m_parameters.resumeDisplayListSemaphore.signal();
return;
}
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes