Changeset 204222 in webkit
- Timestamp:
- Aug 6, 2016 1:00:20 AM (8 years ago)
- Location:
- trunk/Source/WebKit2
- Files:
-
- 10 added
- 7 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebKit2/CMakeLists.txt
r204208 r204222 35 35 "${WEBKIT2_DIR}/UIProcess/Databases" 36 36 "${WEBKIT2_DIR}/UIProcess/Downloads" 37 "${WEBKIT2_DIR}/UIProcess/Gamepad" 37 38 "${WEBKIT2_DIR}/UIProcess/InspectorServer" 38 39 "${WEBKIT2_DIR}/UIProcess/Launcher" … … 54 55 "${WEBKIT2_DIR}/WebProcess/FileAPI" 55 56 "${WEBKIT2_DIR}/WebProcess/FullScreen" 57 "${WEBKIT2_DIR}/WebProcess/Gamepad" 56 58 "${WEBKIT2_DIR}/WebProcess/Geolocation" 57 59 "${WEBKIT2_DIR}/WebProcess/IconDatabase" … … 479 481 UIProcess/Downloads/DownloadProxyMap.cpp 480 482 483 UIProcess/Gamepad/UIGamepadProvider.cpp 484 481 485 UIProcess/InspectorServer/HTTPRequest.cpp 482 486 UIProcess/InspectorServer/WebInspectorServer.cpp … … 525 529 526 530 WebProcess/FullScreen/WebFullScreenManager.cpp 531 532 WebProcess/Gamepad/WebGamepad.cpp 533 WebProcess/Gamepad/WebGamepadProvider.cpp 527 534 528 535 WebProcess/Geolocation/GeolocationPermissionRequestManager.cpp -
trunk/Source/WebKit2/ChangeLog
r204208 r204222 1 2016-08-06 Brady Eidson <beidson@apple.com> 2 3 Lay WebProcess/UIProcess groundwork for an IPC GamepadProvider. 4 https://bugs.webkit.org/show_bug.cgi?id=160605 5 6 Reviewed by Alex Christensen. 7 8 This patch: 9 - Introduces the GamepadProvider that the WebProcess will use (WebGamepadProvider) 10 - Has that provider message to the UIProcess notifying interest in gamepad state 11 - Introduces a GamepadProviderClient in the UIProcess (UIGamepadProvider) that will use 12 one of the existing GamepadProviders to pass gamepad state along to WebProcesses. 13 - Adds an empty skeleton for the soon-to-be-used WebGamepad, which will be the 14 "PlatformGamepad" for WebProcesses. 15 16 * CMakeLists.txt: 17 * WebKit2.xcodeproj/project.pbxproj: 18 19 * UIProcess/Gamepads/UIGamepadProvider.cpp: Added. 20 (WebKit::UIGamepadProvider::singleton): 21 (WebKit::UIGamepadProvider::UIGamepadProvider): 22 (WebKit::UIGamepadProvider::~UIGamepadProvider): 23 (WebKit::UIGamepadProvider::platformGamepadConnected): 24 (WebKit::UIGamepadProvider::platformGamepadDisconnected): 25 (WebKit::UIGamepadProvider::platformGamepadInputActivity): 26 (WebKit::UIGamepadProvider::processPoolStartedUsingGamepads): 27 (WebKit::UIGamepadProvider::processPoolStoppedUsingGamepads): 28 (WebKit::UIGamepadProvider::platformStartMonitoringGamepads): 29 (WebKit::UIGamepadProvider::platformStopMonitoringGamepads): 30 * UIProcess/Gamepads/UIGamepadProvider.h: Added. 31 32 * UIProcess/Gamepads/mac/UIGamepadProviderHID.cpp: Added. 33 (WebKit::UIGamepadProvider::platformStartMonitoringGamepads): 34 (WebKit::UIGamepadProvider::platformStopMonitoringGamepads): 35 36 * UIProcess/WebProcessPool.cpp: 37 (WebKit::WebProcessPool::~WebProcessPool): 38 (WebKit::WebProcessPool::disconnectProcess): 39 (WebKit::WebProcessPool::startedUsingGamepads): 40 (WebKit::WebProcessPool::stoppedUsingGamepads): 41 (WebKit::WebProcessPool::processStoppedUsingGamepads): 42 * UIProcess/WebProcessPool.h: 43 * UIProcess/WebProcessPool.messages.in: 44 45 * WebProcess/Gamepad/WebGamepad.cpp: Added. 46 * WebProcess/Gamepad/WebGamepad.h: Added. 47 48 * WebProcess/Gamepad/WebGamepadProvider.cpp: Added. 49 (WebKit::WebGamepadProvider::singleton): 50 (WebKit::WebGamepadProvider::WebGamepadProvider): 51 (WebKit::WebGamepadProvider::~WebGamepadProvider): 52 (WebKit::WebGamepadProvider::startMonitoringGamepads): 53 (WebKit::WebGamepadProvider::stopMonitoringGamepads): 54 (WebKit::WebGamepadProvider::platformGamepads): 55 * WebProcess/Gamepad/WebGamepadProvider.h: Added. 56 * WebProcess/WebProcess.cpp: 57 (WebKit::WebProcess::initializeWebProcess): 58 1 59 2016-08-05 Commit Queue <commit-queue@webkit.org> 2 60 -
trunk/Source/WebKit2/UIProcess/WebProcessPool.cpp
r204208 r204222 43 43 #include "StatisticsData.h" 44 44 #include "TextChecker.h" 45 #include "UIGamepadProvider.h" 45 46 #include "WKContextPrivate.h" 46 47 #include "WebAutomationSession.h" … … 260 261 if (m_networkProcess) 261 262 m_networkProcess->shutDownProcess(); 263 264 #if ENABLE(GAMEPAD) 265 if (!m_processesUsingGamepads.isEmpty()) 266 UIGamepadProvider::singleton().processPoolStoppedUsingGamepads(*this); 267 #endif 262 268 } 263 269 … … 753 759 754 760 m_processes.removeFirst(process); 761 762 #if ENABLE(GAMEPAD) 763 if (m_processesUsingGamepads.contains(process)) 764 processStoppedUsingGamepads(process); 765 #endif 755 766 } 756 767 … … 1232 1243 } 1233 1244 1245 #if ENABLE(GAMEPAD) 1246 1247 void WebProcessPool::startedUsingGamepads(IPC::Connection& connection) 1248 { 1249 auto* webProcessProxy = WebProcessProxy::fromConnection(&connection); 1250 if (!webProcessProxy) 1251 return; 1252 1253 ASSERT(!m_processesUsingGamepads.contains(webProcessProxy)); 1254 m_processesUsingGamepads.add(webProcessProxy); 1255 1256 if (m_processesUsingGamepads.size() == 1) 1257 UIGamepadProvider::singleton().processPoolStartedUsingGamepads(*this); 1258 } 1259 1260 void WebProcessPool::stoppedUsingGamepads(IPC::Connection& connection) 1261 { 1262 auto* webProcessProxy = WebProcessProxy::fromConnection(&connection); 1263 if (!webProcessProxy) 1264 return; 1265 1266 ASSERT(m_processesUsingGamepads.contains(webProcessProxy)); 1267 processStoppedUsingGamepads(webProcessProxy); 1268 } 1269 1270 void WebProcessPool::processStoppedUsingGamepads(WebProcessProxy* webProcessProxy) 1271 { 1272 ASSERT(m_processesUsingGamepads.contains(webProcessProxy)); 1273 m_processesUsingGamepads.remove(webProcessProxy); 1274 1275 if (m_processesUsingGamepads.isEmpty()) 1276 UIGamepadProvider::singleton().processPoolStoppedUsingGamepads(*this); 1277 } 1278 1279 #endif // ENABLE(GAMEPAD) 1280 1234 1281 void WebProcessPool::garbageCollectJavaScriptObjects() 1235 1282 { -
trunk/Source/WebKit2/UIProcess/WebProcessPool.h
r204208 r204222 388 388 void didGetStatistics(const StatisticsData&, uint64_t callbackID); 389 389 390 #if ENABLE(GAMEPAD) 391 void startedUsingGamepads(IPC::Connection&); 392 void stoppedUsingGamepads(IPC::Connection&); 393 394 void processStoppedUsingGamepads(WebProcessProxy*); 395 396 HashSet<WebProcessProxy*> m_processesUsingGamepads; 397 #endif 398 390 399 // IPC::MessageReceiver. 391 400 // Implemented in generated WebProcessPoolMessageReceiver.cpp -
trunk/Source/WebKit2/UIProcess/WebProcessPool.messages.in
r204208 r204222 27 27 DidGetStatistics(struct WebKit::StatisticsData statisticsData, uint64_t callbackID) 28 28 29 #if ENABLE(GAMEPAD) 30 StartedUsingGamepads() WantsConnection 31 StoppedUsingGamepads() WantsConnection 32 #endif 33 29 34 # Plug-in messages. 30 35 void AddPlugInAutoStartOriginHash(String pageOrigin, uint32_t hash, WebCore::SessionID sessionID) -
trunk/Source/WebKit2/WebKit2.xcodeproj/project.pbxproj
r204208 r204222 937 937 514D9F5819119D35000063A7 /* ServicesController.mm in Sources */ = {isa = PBXBuildFile; fileRef = 514D9F5619119D35000063A7 /* ServicesController.mm */; }; 938 938 51578B831209ECEF00A37C4A /* APIData.h in Headers */ = {isa = PBXBuildFile; fileRef = 51578B821209ECEF00A37C4A /* APIData.h */; }; 939 515BE1771D53FE8700DD7C68 /* WebGamepadProvider.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 515BE1731D53FDDC00DD7C68 /* WebGamepadProvider.cpp */; }; 940 515BE1791D53FE8F00DD7C68 /* WebGamepadProvider.h in Headers */ = {isa = PBXBuildFile; fileRef = 515BE1741D53FDDC00DD7C68 /* WebGamepadProvider.h */; }; 941 515BE1A71D55293400DD7C68 /* UIGamepadProviderHID.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 515BE1A61D55293000DD7C68 /* UIGamepadProviderHID.cpp */; }; 942 515BE1A81D55293400DD7C68 /* UIGamepadProvider.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 515BE1A41D55292800DD7C68 /* UIGamepadProvider.cpp */; }; 943 515BE1A91D55293400DD7C68 /* UIGamepadProvider.h in Headers */ = {isa = PBXBuildFile; fileRef = 515BE1A51D55292800DD7C68 /* UIGamepadProvider.h */; }; 939 944 515E7727183DD6F60007203F /* AsyncRequest.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 515E7725183DD6F60007203F /* AsyncRequest.cpp */; }; 940 945 515E7728183DD6F60007203F /* AsyncRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = 515E7726183DD6F60007203F /* AsyncRequest.h */; }; … … 2976 2981 514D9F5619119D35000063A7 /* ServicesController.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = ServicesController.mm; sourceTree = "<group>"; }; 2977 2982 51578B821209ECEF00A37C4A /* APIData.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = APIData.h; sourceTree = "<group>"; }; 2983 515BE1731D53FDDC00DD7C68 /* WebGamepadProvider.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = WebGamepadProvider.cpp; sourceTree = "<group>"; }; 2984 515BE1741D53FDDC00DD7C68 /* WebGamepadProvider.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WebGamepadProvider.h; sourceTree = "<group>"; }; 2985 515BE19F1D550AB000DD7C68 /* WebGamepad.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = WebGamepad.cpp; sourceTree = "<group>"; }; 2986 515BE1A01D550AB000DD7C68 /* WebGamepad.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WebGamepad.h; sourceTree = "<group>"; }; 2987 515BE1A41D55292800DD7C68 /* UIGamepadProvider.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = UIGamepadProvider.cpp; sourceTree = "<group>"; }; 2988 515BE1A51D55292800DD7C68 /* UIGamepadProvider.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = UIGamepadProvider.h; sourceTree = "<group>"; }; 2989 515BE1A61D55293000DD7C68 /* UIGamepadProviderHID.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = UIGamepadProviderHID.cpp; path = UIProcess/Gamepad/mac/UIGamepadProviderHID.cpp; sourceTree = SOURCE_ROOT; }; 2978 2990 515E7725183DD6F60007203F /* AsyncRequest.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AsyncRequest.cpp; sourceTree = "<group>"; }; 2979 2991 515E7726183DD6F60007203F /* AsyncRequest.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AsyncRequest.h; sourceTree = "<group>"; }; … … 5470 5482 sourceTree = "<group>"; 5471 5483 }; 5484 515BE1721D53FDB900DD7C68 /* Gamepad */ = { 5485 isa = PBXGroup; 5486 children = ( 5487 515BE19F1D550AB000DD7C68 /* WebGamepad.cpp */, 5488 515BE1A01D550AB000DD7C68 /* WebGamepad.h */, 5489 515BE1731D53FDDC00DD7C68 /* WebGamepadProvider.cpp */, 5490 515BE1741D53FDDC00DD7C68 /* WebGamepadProvider.h */, 5491 ); 5492 path = Gamepad; 5493 sourceTree = "<group>"; 5494 }; 5495 515BE17B1D54EF5A00DD7C68 /* Gamepad */ = { 5496 isa = PBXGroup; 5497 children = ( 5498 515BE1A11D5523B300DD7C68 /* mac */, 5499 515BE1A41D55292800DD7C68 /* UIGamepadProvider.cpp */, 5500 515BE1A51D55292800DD7C68 /* UIGamepadProvider.h */, 5501 ); 5502 path = Gamepad; 5503 sourceTree = "<group>"; 5504 }; 5505 515BE1A11D5523B300DD7C68 /* mac */ = { 5506 isa = PBXGroup; 5507 children = ( 5508 515BE1A61D55293000DD7C68 /* UIGamepadProviderHID.cpp */, 5509 ); 5510 name = mac; 5511 path = UIProcess/Gamepad/mac; 5512 sourceTree = "<group>"; 5513 }; 5472 5514 516319931628980E00E22F00 /* mac */ = { 5473 5515 isa = PBXGroup; … … 5814 5856 E170876D16D6CA7200F99226 /* FileAPI */, 5815 5857 CD73BA3D131A2A2100EEDED2 /* FullScreen */, 5858 515BE1721D53FDB900DD7C68 /* Gamepad */, 5816 5859 BC0E5FCB12D696DD0012A72A /* Geolocation */, 5817 5860 51FBB9C1132E079200F327B4 /* IconDatabase */, … … 5951 5994 1ABC3DF21899E415004F0626 /* Cocoa */, 5952 5995 1AB7D4C71288AA9A00CFD08C /* Downloads */, 5996 515BE17B1D54EF5A00DD7C68 /* Gamepad */, 5953 5997 2DA944A81884E9AB00ED86DB /* ios */, 5954 5998 BC111B18112F5FB400337BAB /* Launcher */, … … 7519 7563 2DA049B8180CCD0A00AAFA9E /* GraphicsLayerCARemote.h in Headers */, 7520 7564 C0CE72AD1247E78D00BC0EC4 /* HandleMessage.h in Headers */, 7565 515BE1A91D55293400DD7C68 /* UIGamepadProvider.h in Headers */, 7521 7566 1AC75A1B1B3368270056745B /* HangDetectionDisabler.h in Headers */, 7522 7567 37F90DE31376560E0051CF68 /* HTTPCookieAcceptPolicy.h in Headers */, … … 8026 8071 1AF4592F19464B2000F9D4A2 /* WKError.h in Headers */, 8027 8072 BCFD548C132D82680055D816 /* WKErrorCF.h in Headers */, 8073 515BE1791D53FE8F00DD7C68 /* WebGamepadProvider.h in Headers */, 8028 8074 37B5045219EEF31300CE2CF8 /* WKErrorPrivate.h in Headers */, 8029 8075 BC4075FC124FF0270068F20A /* WKErrorRef.h in Headers */, … … 9177 9223 E1790890169BAA7F006904C7 /* SecItemShimMessageReceiver.cpp in Sources */, 9178 9224 E18E690B169B563F009B6670 /* SecItemShimProxy.cpp in Sources */, 9225 515BE1A71D55293400DD7C68 /* UIGamepadProviderHID.cpp in Sources */, 9179 9226 E18E6917169B667B009B6670 /* SecItemShimProxyMessageReceiver.cpp in Sources */, 9180 9227 514D9F5819119D35000063A7 /* ServicesController.mm in Sources */, … … 9197 9244 1AB31A9616BC688100F6DBC9 /* StorageManagerMessageReceiver.cpp in Sources */, 9198 9245 1A44B95716B737AA00B7BBD8 /* StorageNamespaceImpl.cpp in Sources */, 9246 515BE1771D53FE8700DD7C68 /* WebGamepadProvider.cpp in Sources */, 9199 9247 1AE00D6B18327C1200087DD7 /* StringReference.cpp in Sources */, 9200 9248 296BD85E15019BC30071F424 /* StringUtilities.mm in Sources */, … … 9245 9293 7C4ABED41AA8FCB80088AA37 /* WebCompiledContentExtensionData.cpp in Sources */, 9246 9294 BC4A628F147312BE006C681A /* WebConnection.cpp in Sources */, 9295 515BE1A81D55293400DD7C68 /* UIGamepadProvider.cpp in Sources */, 9247 9296 BC4A6291147312BE006C681A /* WebConnectionClient.cpp in Sources */, 9248 9297 1A1FEC1C1627B45700700F6D /* WebConnectionMessageReceiver.cpp in Sources */, -
trunk/Source/WebKit2/WebProcess/WebProcess.cpp
r204208 r204222 48 48 #include "WebFrame.h" 49 49 #include "WebFrameNetworkingContext.h" 50 #include "WebGamepadProvider.h" 50 51 #include "WebGeolocationManager.h" 51 52 #include "WebIconDatabaseProxy.h" … … 401 402 } 402 403 #endif 404 405 #if ENABLE(GAMEPAD) 406 GamepadProvider::singleton().setSharedProvider(WebGamepadProvider::singleton()); 407 #endif 403 408 } 404 409
Note: See TracChangeset
for help on using the changeset viewer.