Bug 207134

Summary: Make HostWindow be the creator of the remote ImageBuffer
Product: WebKit Reporter: Said Abou-Hallawa <sabouhallawa>
Component: CanvasAssignee: Said Abou-Hallawa <sabouhallawa>
Status: RESOLVED FIXED    
Severity: Normal CC: alecflett, annulen, beidson, cdumez, commit-queue, darin, dino, eric.carlson, esprehn+autocc, ews-watchlist, fmalita, glenn, graouts, gyuyoung.kim, hta, jer.noble, jsbell, kondapallykalyan, noam, pdr, philipj, ryuan.choi, sam, schenney, sergio, tommyw, webkit-bug-importer
Priority: P2 Keywords: InRadar
Version: WebKit Nightly Build   
Hardware: Unspecified   
OS: Unspecified   
Bug Depends on: 207109    
Bug Blocks: 204955, 207198    
Attachments:
Description Flags
Patch
none
Patch
none
Patch
none
Patch for review
none
Patch
none
Patch
none
Patch
none
Patch
none
Patch
none
Patch
none
Patch none

Said Abou-Hallawa
Reported 2020-02-03 11:01:47 PST
RenderingBackend will be responsible for creating the ImageBuffer. The plan is to have RemoteRenderingBackend which inherits RenderingBackend and lives in WebKit be responsible for creating the RemoteImageBuffer. The goal for RenderingBackend and RemoteRenderingBackend is to interact with RemoteImageBuffer seamlessly in the caller side.
Attachments
Patch (386.66 KB, patch)
2020-02-03 11:06 PST, Said Abou-Hallawa
no flags
Patch (386.96 KB, patch)
2020-02-03 14:29 PST, Said Abou-Hallawa
no flags
Patch (387.02 KB, patch)
2020-02-03 15:17 PST, Said Abou-Hallawa
no flags
Patch for review (19.63 KB, patch)
2020-02-03 15:47 PST, Said Abou-Hallawa
no flags
Patch (19.32 KB, patch)
2020-02-21 17:14 PST, Said Abou-Hallawa
no flags
Patch (19.57 KB, patch)
2020-02-21 17:35 PST, Said Abou-Hallawa
no flags
Patch (10.10 KB, patch)
2020-02-24 16:11 PST, Said Abou-Hallawa
no flags
Patch (10.11 KB, patch)
2020-02-24 17:32 PST, Said Abou-Hallawa
no flags
Patch (10.13 KB, patch)
2020-02-24 17:59 PST, Said Abou-Hallawa
no flags
Patch (10.14 KB, patch)
2020-02-25 08:56 PST, Said Abou-Hallawa
no flags
Patch (10.15 KB, patch)
2020-02-25 09:30 PST, Said Abou-Hallawa
no flags
Said Abou-Hallawa
Comment 1 2020-02-03 11:06:40 PST
Said Abou-Hallawa
Comment 2 2020-02-03 14:29:03 PST
Said Abou-Hallawa
Comment 3 2020-02-03 15:17:51 PST
Said Abou-Hallawa
Comment 4 2020-02-03 15:47:11 PST
Created attachment 389584 [details] Patch for review
Said Abou-Hallawa
Comment 5 2020-02-21 17:14:49 PST
Said Abou-Hallawa
Comment 6 2020-02-21 17:35:36 PST
Sam Weinig
Comment 7 2020-02-21 18:02:03 PST
Comment on attachment 391438 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=391438&action=review > Source/WebCore/ChangeLog:12 > + > + RenderingBackend will be responsible for creating the ImageBuffer. In a > + following patch RemoteRenderingBackend will be introduced. It'll inherit > + RenderingBackend and live in WebKit. It will be responsible for creating > + the RemoteImageBuffer. The goal for RenderingBackend and RemoteRenderingBackend > + is to interact with RemoteImageBuffer seamlessly in the caller side. What is the added value of this additional interface over doing this via HostWindow?
Sam Weinig
Comment 8 2020-02-21 18:05:11 PST
(In reply to Sam Weinig from comment #7) > Comment on attachment 391438 [details] > Patch > > View in context: > https://bugs.webkit.org/attachment.cgi?id=391438&action=review > > > Source/WebCore/ChangeLog:12 > > + > > + RenderingBackend will be responsible for creating the ImageBuffer. In a > > + following patch RemoteRenderingBackend will be introduced. It'll inherit > > + RenderingBackend and live in WebKit. It will be responsible for creating > > + the RemoteImageBuffer. The goal for RenderingBackend and RemoteRenderingBackend > > + is to interact with RemoteImageBuffer seamlessly in the caller side. > > What is the added value of this additional interface over doing this via > HostWindow? To be more specific, the alternative I imagine is adding the createImageBuffer() virtual functions to HostWindow, and having Chrome forward those to createImageBuffer() virtual functions on the ChromeClient.
Said Abou-Hallawa
Comment 9 2020-02-24 16:11:11 PST
Said Abou-Hallawa
Comment 10 2020-02-24 17:32:43 PST
Said Abou-Hallawa
Comment 11 2020-02-24 17:59:36 PST
Darin Adler
Comment 12 2020-02-24 22:08:16 PST
Comment on attachment 391616 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=391616&action=review > Source/WebCore/platform/HostWindow.h:28 > +#include "ColorSpace.h" Typically we can get away with a forward declaration of an enum, if it’s an enum class. > Source/WebCore/platform/HostWindow.h:29 > +#include "RenderingMode.h" Ditto.
Said Abou-Hallawa
Comment 13 2020-02-25 08:56:23 PST
Said Abou-Hallawa
Comment 14 2020-02-25 09:30:40 PST
WebKit Commit Bot
Comment 15 2020-02-25 10:49:07 PST
Comment on attachment 391662 [details] Patch Clearing flags on attachment: 391662 Committed r257363: <https://trac.webkit.org/changeset/257363>
WebKit Commit Bot
Comment 16 2020-02-25 10:49:09 PST
All reviewed patches have been landed. Closing bug.
Radar WebKit Bug Importer
Comment 17 2020-02-25 10:50:17 PST
Said Abou-Hallawa
Comment 18 2020-02-25 17:47:44 PST
*** Bug 204955 has been marked as a duplicate of this bug. ***
Said Abou-Hallawa
Comment 19 2020-02-25 17:51:29 PST
*** Bug 207198 has been marked as a duplicate of this bug. ***
Said Abou-Hallawa
Comment 20 2020-02-26 17:22:56 PST
Comment on attachment 391438 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=391438&action=review >>> Source/WebCore/ChangeLog:12 >>> + is to interact with RemoteImageBuffer seamlessly in the caller side. >> >> What is the added value of this additional interface over doing this via HostWindow? > > To be more specific, the alternative I imagine is adding the createImageBuffer() virtual functions to HostWindow, and having Chrome forward those to createImageBuffer() virtual functions on the ChromeClient. Why adding createImageBuffer() to HostWindow and not adding the RenderingBackend to PlatformStrategies?
Sam Weinig
Comment 21 2020-02-27 12:13:19 PST
(In reply to Said Abou-Hallawa from comment #20) > Comment on attachment 391438 [details] > Patch > > View in context: > https://bugs.webkit.org/attachment.cgi?id=391438&action=review > > >>> Source/WebCore/ChangeLog:12 > >>> + is to interact with RemoteImageBuffer seamlessly in the caller side. > >> > >> What is the added value of this additional interface over doing this via HostWindow? > > > > To be more specific, the alternative I imagine is adding the createImageBuffer() virtual functions to HostWindow, and having Chrome forward those to createImageBuffer() virtual functions on the ChromeClient. > > Why adding createImageBuffer() to HostWindow and not adding the > RenderingBackend to PlatformStrategies? PlatformStrategies have not been a good approach due their creation of a singleton and reliance on processes not wanting multiple strategies at once. Use of the per-page HostWindow avoids that problem.
Note You need to log in before you can comment on or make changes to this bug.