Changeset 245936 in webkit
- Timestamp:
- May 30, 2019, 5:33:38 PM (7 years ago)
- Location:
- branches/safari-607-branch
- Files:
-
- 8 edited
-
Source/WebKit/Shared/API/Cocoa/RemoteObjectRegistry.h (modified) (4 diffs)
-
Source/WebKit/Shared/API/Cocoa/RemoteObjectRegistry.mm (modified) (3 diffs)
-
Source/WebKit/Shared/API/Cocoa/_WKRemoteObjectRegistry.mm (modified) (1 diff)
-
Source/WebKit/WebProcess/InjectedBundle/API/mac/WKWebProcessPlugInBrowserContextController.mm (modified) (2 diffs)
-
Source/WebKit/WebProcess/WebPage/Cocoa/WebPageCocoa.mm (modified) (2 diffs)
-
Source/WebKit/WebProcess/WebPage/WebPage.cpp (modified) (2 diffs)
-
Source/WebKit/WebProcess/WebPage/WebPage.h (modified) (3 diffs)
-
Tools/TestWebKitAPI/Tests/WebKitCocoa/BundleRetainPagePlugIn.mm (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
branches/safari-607-branch/Source/WebKit/Shared/API/Cocoa/RemoteObjectRegistry.h
r233713 r245936 24 24 */ 25 25 26 #ifndef RemoteObjectRegistry_h 27 #define RemoteObjectRegistry_h 26 #pragma once 28 27 29 28 #include "MessageReceiver.h" 30 29 #include "ProcessThrottler.h" 31 30 #include <wtf/Function.h> 31 #include <wtf/WeakObjCPtr.h> 32 #include <wtf/WeakPtr.h> 32 33 33 34 OBJC_CLASS _WKRemoteObjectRegistry; … … 44 45 class WebPageProxy; 45 46 46 class RemoteObjectRegistry final : public IPC::MessageReceiver {47 class RemoteObjectRegistry final : public CanMakeWeakPtr<RemoteObjectRegistry>, public IPC::MessageReceiver { 47 48 public: 48 49 RemoteObjectRegistry(_WKRemoteObjectRegistry *, WebPage&); … … 55 56 void sendUnusedReply(uint64_t replyID); 56 57 58 void close(); 59 57 60 private: 58 61 // IPC::MessageReceiver … … 64 67 void releaseUnusedReplyBlock(uint64_t replyID); 65 68 66 _WKRemoteObjectRegistry *m_remoteObjectRegistry;69 WeakObjCPtr<_WKRemoteObjectRegistry> m_remoteObjectRegistry; 67 70 IPC::MessageSender& m_messageSender; 68 WTF::Function<ProcessThrottler::BackgroundActivityToken()> m_takeBackgroundActivityToken;71 Function<ProcessThrottler::BackgroundActivityToken()> m_takeBackgroundActivityToken; 69 72 HashMap<uint64_t, ProcessThrottler::BackgroundActivityToken> m_pendingReplies; 73 bool m_isRegisteredAsMessageReceiver { false }; 74 uint64_t m_messageReceiverID { 0 }; 70 75 }; 71 76 72 77 } // namespace WebKit 73 74 #endif // RemoteObjectRegistry_h -
branches/safari-607-branch/Source/WebKit/Shared/API/Cocoa/RemoteObjectRegistry.mm
r233713 r245936 33 33 #import "UserData.h" 34 34 #import "WebPage.h" 35 #import "WebProcess.h" 35 36 #import "WebPageProxy.h" 36 37 #import "WebProcessProxy.h" … … 43 44 , m_messageSender(page) 44 45 , m_takeBackgroundActivityToken([] { return ProcessThrottler::BackgroundActivityToken(); }) 46 , m_isRegisteredAsMessageReceiver(true) 47 , m_messageReceiverID(page.pageID()) 45 48 { 49 WebProcess::singleton().addMessageReceiver(Messages::RemoteObjectRegistry::messageReceiverName(), m_messageReceiverID, *this); 50 page.setRemoteObjectRegistry(*this); 46 51 } 47 52 … … 56 61 RemoteObjectRegistry::~RemoteObjectRegistry() 57 62 { 63 close(); 58 64 } 59 65 66 void RemoteObjectRegistry::close() 67 { 68 if (m_isRegisteredAsMessageReceiver) { 69 WebProcess::singleton().removeMessageReceiver(Messages::RemoteObjectRegistry::messageReceiverName(), m_messageReceiverID); 70 m_isRegisteredAsMessageReceiver = false; 71 } 72 } 73 60 74 void RemoteObjectRegistry::sendInvocation(const RemoteObjectInvocation& invocation) 61 75 { -
branches/safari-607-branch/Source/WebKit/Shared/API/Cocoa/_WKRemoteObjectRegistry.mm
r235828 r245936 39 39 #import "WKRemoteObjectCoder.h" 40 40 #import "WKSharedAPICast.h" 41 #import "WebPage.h" 41 42 #import "_WKRemoteObjectInterface.h" 42 43 #import <objc/runtime.h> -
branches/safari-607-branch/Source/WebKit/WebProcess/InjectedBundle/API/mac/WKWebProcessPlugInBrowserContextController.mm
r242021 r245936 361 361 - (void)dealloc 362 362 { 363 if (_remoteObjectRegistry) { 364 WebKit::WebProcess::singleton().removeMessageReceiver(Messages::RemoteObjectRegistry::messageReceiverName(), _page->pageID()); 363 if (_remoteObjectRegistry) 365 364 [_remoteObjectRegistry _invalidate]; 366 }367 365 368 366 _page->~WebPage(); … … 427 425 - (_WKRemoteObjectRegistry *)_remoteObjectRegistry 428 426 { 429 if (!_remoteObjectRegistry) {427 if (!_remoteObjectRegistry) 430 428 _remoteObjectRegistry = adoptNS([[_WKRemoteObjectRegistry alloc] _initWithWebPage:*_page]); 431 WebKit::WebProcess::singleton().addMessageReceiver(Messages::RemoteObjectRegistry::messageReceiverName(), _page->pageID(), [_remoteObjectRegistry remoteObjectRegistry]);432 }433 429 434 430 return _remoteObjectRegistry.get(); -
branches/safari-607-branch/Source/WebKit/WebProcess/WebPage/Cocoa/WebPageCocoa.mm
r241888 r245936 30 30 #import "LoadParameters.h" 31 31 #import "PluginView.h" 32 #import "RemoteObjectRegistry.h" 32 33 #import "WebPageProxyMessages.h" 33 34 #import <WebCore/DictionaryLookup.h> … … 186 187 } 187 188 189 void WebPage::setRemoteObjectRegistry(RemoteObjectRegistry& registry) 190 { 191 m_remoteObjectRegistry = makeWeakPtr(registry); 192 } 193 188 194 } // namespace WebKit 189 195 -
branches/safari-607-branch/Source/WebKit/WebProcess/WebPage/WebPage.cpp
r245355 r245936 245 245 #include "PlaybackSessionManager.h" 246 246 #include "RemoteLayerTreeTransaction.h" 247 #include "RemoteObjectRegistry.h" 248 #include "RemoteObjectRegistryMessages.h" 247 249 #include "TouchBarMenuData.h" 248 250 #include "TouchBarMenuItemData.h" … … 1295 1297 1296 1298 auto& webProcess = WebProcess::singleton(); 1299 if (m_remoteObjectRegistry) 1300 m_remoteObjectRegistry->close(); 1297 1301 #if ENABLE(ASYNC_SCROLLING) 1298 1302 if (m_useAsyncScrolling) -
branches/safari-607-branch/Source/WebKit/WebProcess/WebPage/WebPage.h
r242858 r245936 205 205 class PageBanner; 206 206 class PluginView; 207 class RemoteObjectRegistry; 207 208 class RemoteWebInspectorUI; 208 209 class UserMediaPermissionRequestManager; … … 1136 1137 void didReceiveWebPageMessage(IPC::Connection&, IPC::Decoder&); 1137 1138 1139 void setRemoteObjectRegistry(RemoteObjectRegistry&); 1138 1140 private: 1139 1141 WebPage(uint64_t pageID, WebPageCreationParameters&&); … … 1805 1807 bool m_isSuspended { false }; 1806 1808 bool m_needsFontAttributes { false }; 1809 #if PLATFORM(COCOA) 1810 WeakPtr<RemoteObjectRegistry> m_remoteObjectRegistry; 1811 #endif 1807 1812 }; 1808 1813 -
branches/safari-607-branch/Tools/TestWebKitAPI/Tests/WebKitCocoa/BundleRetainPagePlugIn.mm
r241313 r245936 29 29 30 30 #import <WebKit/WKWebProcessPlugIn.h> 31 #import <WebKit/WKWebProcessPluginBrowserContextControllerPrivate.h> 31 32 #import <wtf/RetainPtr.h> 32 33 … … 39 40 { 40 41 dispatch_after(dispatch_time(DISPATCH_TIME_NOW, 0.5*NSEC_PER_SEC), dispatch_get_main_queue(), [retainedPage = retainPtr(browserContextController)] { }); 42 43 // Instantiate a _WKRemoteObjectRegistry to test that its existence does not conflict with the existence 44 // of the _WKRemoteObjectRegistry from the other WebPage that will be in this process. 45 [browserContextController _remoteObjectRegistry]; 41 46 } 42 47
Note:
See TracChangeset
for help on using the changeset viewer.