12019-12-19 Peng Liu <peng.liu6@apple.com>
2
3 Add remote media resource loader for the GPU process
4 https://bugs.webkit.org/show_bug.cgi?id=205379
5
6 Reviewed by NOBODY (OOPS!).
7
8 Add RemoteMediaResourceLoader, RemoteMediaResource, and RemoteMediaResourceManager in the GPU process for media,
9 and RemoteMediaResourceProxy in the Web process.
10 Disable unified build of all the cpp files for media in GPU because of a strange issue related to duplicated "Fixed" keyword definition.
11 This patch uses XPC messages to transfer media data, which is not efficient.
12
13 Covered by existing tests.
14
15 * DerivedSources-input.xcfilelist:
16 * DerivedSources-output.xcfilelist:
17 * DerivedSources.make:
18 * GPUProcess/GPUConnectionToWebProcess.cpp:
19 (WebKit::GPUConnectionToWebProcess::remoteMediaResourceManager):
20 (WebKit::GPUConnectionToWebProcess::remoteMediaPlayerManagerProxy):
21 (WebKit::GPUConnectionToWebProcess::didReceiveMessage):
22 * GPUProcess/GPUConnectionToWebProcess.h:
23 * GPUProcess/media/RemoteMediaPlayerManagerProxy.cpp:
24 (WebKit::RemoteMediaPlayerManagerProxy::RemoteMediaPlayerManagerProxy):
25 (WebKit::RemoteMediaPlayerManagerProxy::createMediaPlayer):
26 (WebKit::RemoteMediaPlayerManagerProxy::logChannel const):
27 * GPUProcess/media/RemoteMediaPlayerManagerProxy.h:
28 * GPUProcess/media/RemoteMediaPlayerProxy.cpp:
29 (WebKit::RemoteMediaPlayerProxy::RemoteMediaPlayerProxy):
30 (WebKit::RemoteMediaPlayerProxy::mediaPlayerCreateResourceLoader):
31 * GPUProcess/media/RemoteMediaPlayerProxy.h:
32 (WebKit::RemoteMediaPlayerProxy::WebProcessConnection):
33 * GPUProcess/media/RemoteMediaResource.cpp: Added.
34 (WebKit::RemoteMediaResource::create):
35 (WebKit::RemoteMediaResource::RemoteMediaResource):
36 (WebKit::RemoteMediaResource::~RemoteMediaResource):
37 (WebKit::RemoteMediaResource::stop):
38 (WebKit::RemoteMediaResource::didPassAccessControlCheck const):
39 (WebKit::RemoteMediaResource::responseReceived):
40 (WebKit::RemoteMediaResource::redirectReceived):
41 (WebKit::RemoteMediaResource::shouldCacheResponse):
42 (WebKit::RemoteMediaResource::dataSent):
43 (WebKit::RemoteMediaResource::dataReceived):
44 (WebKit::RemoteMediaResource::accessControlCheckFailed):
45 (WebKit::RemoteMediaResource::loadFailed):
46 (WebKit::RemoteMediaResource::loadFinished):
47 * GPUProcess/media/RemoteMediaResource.h: Added.
48 (WebKit::RemoteMediaResource::ready):
49 (WebKit::RemoteMediaResource::setReady):
50 * GPUProcess/media/RemoteMediaResourceIdentifier.h: Added.
51 * GPUProcess/media/RemoteMediaResourceLoader.cpp: Added.
52 (WebKit::RemoteMediaResourceLoader::RemoteMediaResourceLoader):
53 (WebKit::RemoteMediaResourceLoader::~RemoteMediaResourceLoader):
54 (WebKit::RemoteMediaResourceLoader::requestResource):
55 * GPUProcess/media/RemoteMediaResourceLoader.h: Added.
56 * GPUProcess/media/RemoteMediaResourceManager.cpp: Added.
57 (WebKit::RemoteMediaResourceManager::RemoteMediaResourceManager):
58 (WebKit::RemoteMediaResourceManager::~RemoteMediaResourceManager):
59 (WebKit::RemoteMediaResourceManager::addMediaResource):
60 (WebKit::RemoteMediaResourceManager::removeMediaResource):
61 (WebKit::RemoteMediaResourceManager::responseReceived):
62 (WebKit::RemoteMediaResourceManager::redirectReceived):
63 (WebKit::RemoteMediaResourceManager::dataSent):
64 (WebKit::RemoteMediaResourceManager::dataReceived):
65 (WebKit::RemoteMediaResourceManager::accessControlCheckFailed):
66 (WebKit::RemoteMediaResourceManager::loadFailed):
67 (WebKit::RemoteMediaResourceManager::loadFinished):
68 * GPUProcess/media/RemoteMediaResourceManager.h: Added.
69 * GPUProcess/media/RemoteMediaResourceManager.messages.in: Added.
70 * Platform/Logging.h:
71 * Scripts/webkit/messages.py:
72 * Sources.txt:
73 * SourcesCocoa.txt:
74 * WebKit.xcodeproj/project.pbxproj:
75 * WebProcess/GPU/GPUProcessConnection.cpp:
76 (WebKit::GPUProcessConnection::didReceiveMessage):
77 * WebProcess/GPU/GPUProcessConnection.h:
78 * WebProcess/GPU/media/MediaPlayerPrivateRemote.cpp:
79 (WebKit::MediaPlayerPrivateRemote::MediaPlayerPrivateRemote):
80 (WebKit::MediaPlayerPrivateRemote::requestResource):
81 * WebProcess/GPU/media/MediaPlayerPrivateRemote.h:
82 * WebProcess/GPU/media/MediaPlayerPrivateRemoteIdentifier.h:
83 * WebProcess/GPU/media/RemoteMediaPlayerManager.cpp:
84 (WebKit::RemoteMediaPlayerManager::volumeChanged):
85 (WebKit::RemoteMediaPlayerManager::muteChanged):
86 (WebKit::RemoteMediaPlayerManager::timeChanged):
87 (WebKit::RemoteMediaPlayerManager::durationChanged):
88 (WebKit::RemoteMediaPlayerManager::rateChanged):
89 (WebKit::RemoteMediaPlayerManager::playbackStateChanged):
90 (WebKit::RemoteMediaPlayerManager::requestResource):
91 * WebProcess/GPU/media/RemoteMediaPlayerManager.h:
92 (WebKit::RemoteMediaPlayerManager::didReceiveMessageFromGPUProcess):
93 (WebKit::RemoteMediaPlayerManager::didReceiveMessageFromWebProcess): Deleted.
94 * WebProcess/GPU/media/RemoteMediaPlayerManager.messages.in:
95 * WebProcess/GPU/media/RemoteMediaResourceProxy.cpp: Added.
96 (WebKit::RemoteMediaResourceProxy::RemoteMediaResourceProxy):
97 (WebKit::RemoteMediaResourceProxy::~RemoteMediaResourceProxy):
98 (WebKit::RemoteMediaResourceProxy::responseReceived):
99 (WebKit::RemoteMediaResourceProxy::redirectReceived):
100 (WebKit::RemoteMediaResourceProxy::shouldCacheResponse):
101 (WebKit::RemoteMediaResourceProxy::dataSent):
102 (WebKit::RemoteMediaResourceProxy::dataReceived):
103 (WebKit::RemoteMediaResourceProxy::accessControlCheckFailed):
104 (WebKit::RemoteMediaResourceProxy::loadFailed):
105 (WebKit::RemoteMediaResourceProxy::loadFinished):
106 * WebProcess/GPU/media/RemoteMediaResourceProxy.h: Added.
107