[GPUP] Implement Legacy EME API in the GPU Process
Created attachment 392036 [details] Part 1: WebCore
Created attachment 392038 [details] Part 2: WebKit
Created attachment 392087 [details] Part 1: WebCore
Created attachment 392088 [details] Part 2: WebKit
Created attachment 392683 [details] Part 1: WebCore
Created attachment 392684 [details] Part 2: WebKit
Created attachment 392800 [details] Part 1: WebCore
<rdar://problem/60178488>
Comment on attachment 392800 [details] Part 1: WebCore Clearing flags on attachment: 392800 Committed r258100: <https://trac.webkit.org/changeset/258100>
Comment on attachment 392684 [details] Part 2: WebKit View in context: https://bugs.webkit.org/attachment.cgi?id=392684&action=review > Source/WebKit/WebProcess/GPU/media/RemoteLegacyCDMFactory.cpp:82 > + gpuProcessConnection().connection().sendSync(Messages::RemoteLegacyCDMFactoryProxy::SupportsKeySystem(keySystem, WTF::nullopt), Messages::RemoteLegacyCDMFactoryProxy::SupportsKeySystem::Reply(supported), { }); It would be good to cache results so we only need to make one sync IPC per key system > Source/WebKit/WebProcess/GPU/media/RemoteLegacyCDMFactory.cpp:89 > + gpuProcessConnection().connection().sendSync(Messages::RemoteLegacyCDMFactoryProxy::SupportsKeySystem(keySystem, mimeType), Messages::RemoteLegacyCDMFactoryProxy::SupportsKeySystem::Reply(supported), { }); Ditto for key system + MIME type > Source/WebKit/WebProcess/GPU/media/RemoteLegacyCDMFactory.cpp:141 > + > + Nit: two blanks > Source/WebKit/WebProcess/GPU/media/RemoteLegacyCDMSession.cpp:72 > + return { SharedBuffer::create((const char*)array->data(), array->byteLength()) }; Is the cast necessary (you don't have one in convertToOptionalDataReference)? > Source/WebKit/WebProcess/GPU/media/RemoteLegacyCDMSession.cpp:131 > + m_factory->gpuProcessConnection().connection().sendSync(Messages::RemoteLegacyCDMSessionProxy::CachedKeyForKeyID(keyId), Messages::RemoteLegacyCDMSessionProxy::CachedKeyForKeyID::Reply(ipcKey), m_identifier); Can these be cached here so we only need to make one sync IPC per cached key ID?
(In reply to Eric Carlson from comment #10) > Comment on attachment 392684 [details] > Part 2: WebKit > > View in context: > https://bugs.webkit.org/attachment.cgi?id=392684&action=review > > > Source/WebKit/WebProcess/GPU/media/RemoteLegacyCDMFactory.cpp:82 > > + gpuProcessConnection().connection().sendSync(Messages::RemoteLegacyCDMFactoryProxy::SupportsKeySystem(keySystem, WTF::nullopt), Messages::RemoteLegacyCDMFactoryProxy::SupportsKeySystem::Reply(supported), { }); > > It would be good to cache results so we only need to make one sync IPC per > key system > > > Source/WebKit/WebProcess/GPU/media/RemoteLegacyCDMFactory.cpp:89 > > + gpuProcessConnection().connection().sendSync(Messages::RemoteLegacyCDMFactoryProxy::SupportsKeySystem(keySystem, mimeType), Messages::RemoteLegacyCDMFactoryProxy::SupportsKeySystem::Reply(supported), { }); > > Ditto for key system + MIME type Okay, will do for both. > > Source/WebKit/WebProcess/GPU/media/RemoteLegacyCDMFactory.cpp:141 > > + > > + > > Nit: two blanks Removed. > > Source/WebKit/WebProcess/GPU/media/RemoteLegacyCDMSession.cpp:72 > > + return { SharedBuffer::create((const char*)array->data(), array->byteLength()) }; > > Is the cast necessary (you don't have one in convertToOptionalDataReference)? Looks like it's not necessary. Removed. > > Source/WebKit/WebProcess/GPU/media/RemoteLegacyCDMSession.cpp:131 > > + m_factory->gpuProcessConnection().connection().sendSync(Messages::RemoteLegacyCDMSessionProxy::CachedKeyForKeyID(keyId), Messages::RemoteLegacyCDMSessionProxy::CachedKeyForKeyID::Reply(ipcKey), m_identifier); > > Can these be cached here so we only need to make one sync IPC per cached key > ID? This one is harder than the other two, since it's expected that the cached key will change. We'd need to add invalidation messages when the cached key changes, but I guess we could. Let me try.
Created attachment 392967 [details] Patch for landing
Created attachment 392970 [details] Patch for landing
Created attachment 392971 [details] Patch for landing
Created attachment 392974 [details] Patch for landing
Committed r258122: <https://trac.webkit.org/changeset/258122>
The commit-queue encountered the following flaky tests while processing attachment 392974 [details]: editing/spelling/spellcheck-async-remove-frame.html bug 160571 (authors: morrita@google.com, rniwa@webkit.org, and tony@chromium.org) The commit-queue is continuing to process your patch.
Reopening to attach new patch.
Created attachment 393057 [details] Follow up fix
Comment on attachment 392974 [details] Patch for landing Rejecting attachment 392974 [details] from commit-queue. Failed to run "['/Volumes/Data/EWS/WebKit/Tools/Scripts/webkit-patch', '--status-host=webkit-queues.webkit.org', '--bot-id=webkit-cq-03', 'apply-attachment', '--no-update', '--non-interactive', 392974, '--port=mac']" exit_code: 2 cwd: /Volumes/Data/EWS/WebKit Last 5000 characters of output: hing file Source/WebKit/GPUProcess/media/RemoteLegacyCDMSessionProxy.cpp patching file Source/WebKit/GPUProcess/media/RemoteLegacyCDMSessionProxy.h patching file Source/WebKit/GPUProcess/media/RemoteLegacyCDMSessionProxy.messages.in patching file Source/WebKit/GPUProcess/media/RemoteMediaPlayerManagerProxy.cpp Hunk #1 succeeded at 212 with fuzz 1 (offset 8 lines). patching file Source/WebKit/GPUProcess/media/RemoteMediaPlayerManagerProxy.h Hunk #1 succeeded at 70 with fuzz 2 (offset 2 lines). patching file Source/WebKit/GPUProcess/media/RemoteMediaPlayerProxy.cpp Hunk #1 FAILED at 33. Hunk #2 FAILED at 525. Hunk #3 FAILED at 729. 3 out of 3 hunks FAILED -- saving rejects to file Source/WebKit/GPUProcess/media/RemoteMediaPlayerProxy.cpp.rej patching file Source/WebKit/GPUProcess/media/RemoteMediaPlayerProxy.h Hunk #1 FAILED at 30. Hunk #2 FAILED at 145. Hunk #3 succeeded at 181 with fuzz 2 (offset 4 lines). Hunk #4 FAILED at 301. 3 out of 4 hunks FAILED -- saving rejects to file Source/WebKit/GPUProcess/media/RemoteMediaPlayerProxy.h.rej patching file Source/WebKit/GPUProcess/media/RemoteMediaPlayerProxy.messages.in Hunk #1 FAILED at 80. 1 out of 1 hunk FAILED -- saving rejects to file Source/WebKit/GPUProcess/media/RemoteMediaPlayerProxy.messages.in.rej patching file Source/WebKit/GPUProcess/media/RemoteTextTrackProxy.cpp Hunk #1 FAILED at 29. 1 out of 1 hunk FAILED -- saving rejects to file Source/WebKit/GPUProcess/media/RemoteTextTrackProxy.cpp.rej patching file Source/WebKit/GPUProcess/media/RemoteTextTrackProxy.h Hunk #1 FAILED at 32. Hunk #2 FAILED at 57. Hunk #3 FAILED at 74. Hunk #4 FAILED at 88. 4 out of 4 hunks FAILED -- saving rejects to file Source/WebKit/GPUProcess/media/RemoteTextTrackProxy.h.rej patching file Source/WebKit/Scripts/webkit/messages.py Hunk #1 FAILED at 238. Hunk #2 FAILED at 586. 2 out of 2 hunks FAILED -- saving rejects to file Source/WebKit/Scripts/webkit/messages.py.rej patching file Source/WebKit/Sources.txt Hunk #1 FAILED at 33. Hunk #2 FAILED at 558. 2 out of 2 hunks FAILED -- saving rejects to file Source/WebKit/Sources.txt.rej patching file Source/WebKit/WebKit.xcodeproj/project.pbxproj Hunk #1 FAILED at 1747. Hunk #2 FAILED at 5144. Hunk #3 FAILED at 5476. Hunk #4 FAILED at 5534. Hunk #5 FAILED at 9987. Hunk #6 FAILED at 12665. 6 out of 6 hunks FAILED -- saving rejects to file Source/WebKit/WebKit.xcodeproj/project.pbxproj.rej patching file Source/WebKit/WebProcess/GPU/GPUProcessConnection.cpp Hunk #1 FAILED at 35. Hunk #2 succeeded at 89 with fuzz 2 (offset 6 lines). Hunk #3 succeeded at 108 (offset 13 lines). 1 out of 3 hunks FAILED -- saving rejects to file Source/WebKit/WebProcess/GPU/GPUProcessConnection.cpp.rej patching file Source/WebKit/WebProcess/GPU/GPUProcessConnection.h Hunk #1 FAILED at 41. Hunk #2 FAILED at 63. 2 out of 2 hunks FAILED -- saving rejects to file Source/WebKit/WebProcess/GPU/GPUProcessConnection.h.rej patching file Source/WebKit/WebProcess/GPU/media/MediaPlayerPrivateRemote.cpp Hunk #1 FAILED at 30. Hunk #2 FAILED at 41. Hunk #3 succeeded at 67 with fuzz 1 (offset 9 lines). Hunk #4 FAILED at 928. 3 out of 4 hunks FAILED -- saving rejects to file Source/WebKit/WebProcess/GPU/media/MediaPlayerPrivateRemote.cpp.rej patching file Source/WebKit/WebProcess/GPU/media/MediaPlayerPrivateRemote.h Hunk #1 FAILED at 305. 1 out of 1 hunk FAILED -- saving rejects to file Source/WebKit/WebProcess/GPU/media/MediaPlayerPrivateRemote.h.rej patching file Source/WebKit/WebProcess/GPU/media/MediaPlayerPrivateRemote.messages.in Hunk #1 succeeded at 82 with fuzz 1 (offset 4 lines). patching file Source/WebKit/WebProcess/GPU/media/RemoteLegacyCDM.cpp patching file Source/WebKit/WebProcess/GPU/media/RemoteLegacyCDM.h patching file Source/WebKit/WebProcess/GPU/media/RemoteLegacyCDMFactory.cpp patching file Source/WebKit/WebProcess/GPU/media/RemoteLegacyCDMFactory.h patching file Source/WebKit/WebProcess/GPU/media/RemoteLegacyCDMIdentifier.h patching file Source/WebKit/WebProcess/GPU/media/RemoteLegacyCDMSession.cpp patching file Source/WebKit/WebProcess/GPU/media/RemoteLegacyCDMSession.h patching file Source/WebKit/WebProcess/GPU/media/RemoteLegacyCDMSession.messages.in patching file Source/WebKit/WebProcess/GPU/media/RemoteLegacyCDMSessionIdentifier.h patching file Source/WebKit/WebProcess/GPU/media/RemoteMediaPlayerManager.cpp Hunk #1 succeeded at 194 with fuzz 2 (offset 11 lines). patching file Source/WebKit/WebProcess/GPU/media/RemoteMediaPlayerManager.h Hunk #1 succeeded at 71 with fuzz 2 (offset 2 lines). patching file Source/WebKit/WebProcess/WebPage/WebPage.cpp Hunk #1 succeeded at 330 with fuzz 2 (offset 4 lines). patching file Source/WebKit/WebProcess/WebProcess.cpp Hunk #1 FAILED at 43. Hunk #2 succeeded at 2034 with fuzz 2 (offset 8 lines). 1 out of 2 hunks FAILED -- saving rejects to file Source/WebKit/WebProcess/WebProcess.cpp.rej Failed to run "[u'/Volumes/Data/EWS/WebKit/Tools/Scripts/svn-apply', '--force']" exit_code: 1 cwd: /Volumes/Data/EWS/WebKit Full output: https://webkit-queues.webkit.org/results/13337172
Comment on attachment 393057 [details] Follow up fix Clearing flags on attachment: 393057 Committed r258160: <https://trac.webkit.org/changeset/258160>