Changeset 215778 in webkit
- Timestamp:
- Apr 25, 2017 5:52:44 PM (7 years ago)
- Location:
- trunk/Source/WebKit2
- Files:
-
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebKit2/ChangeLog
r215772 r215778 1 2017-04-25 Brady Eidson <beidson@apple.com> 2 3 Update WebProcess(Pool) to assume there's always a WebsiteDataStore 4 https://bugs.webkit.org/show_bug.cgi?id=171299 5 6 Reviewed by Alex Christensen. 7 8 * UIProcess/WebPageProxy.cpp: 9 (WebKit::WebPageProxy::reattachToWebProcess): 10 * UIProcess/WebProcessPool.cpp: 11 (WebKit::WebProcessPool::createNewWebProcess): 12 (WebKit::WebProcessPool::warmInitialProcess): 13 (WebKit::WebProcessPool::createNewWebProcessRespectingProcessCountLimit): 14 (WebKit::WebProcessPool::createWebPage): 15 * UIProcess/WebProcessPool.h: 16 * UIProcess/WebProcessProxy.cpp: 17 (WebKit::WebProcessProxy::create): 18 (WebKit::WebProcessProxy::WebProcessProxy): 19 (WebKit::m_userMediaCaptureManagerProxy): 20 * UIProcess/WebProcessProxy.h: 21 (WebKit::WebProcessProxy::websiteDataStore): 22 1 23 2017-04-25 Ryan Haddad <ryanhaddad@apple.com> 2 24 -
trunk/Source/WebKit2/UIProcess/WebPageProxy.cpp
r215771 r215778 716 716 m_process->removeMessageReceiver(Messages::WebPageProxy::messageReceiverName(), m_pageID); 717 717 718 m_process = m_process->processPool().createNewWebProcessRespectingProcessCountLimit(m_websiteDataStore. ptr());718 m_process = m_process->processPool().createNewWebProcessRespectingProcessCountLimit(m_websiteDataStore.get()); 719 719 720 720 ASSERT(m_process->state() != ChildProcessProxy::State::Terminated); -
trunk/Source/WebKit2/UIProcess/WebProcessPool.cpp
r215707 r215778 622 622 } 623 623 624 WebProcessProxy& WebProcessPool::createNewWebProcess(WebsiteDataStore *websiteDataStore)624 WebProcessProxy& WebProcessPool::createNewWebProcess(WebsiteDataStore& websiteDataStore) 625 625 { 626 626 ensureNetworkProcess(); … … 630 630 WebProcessCreationParameters parameters; 631 631 632 if (websiteDataStore) 633 websiteDataStore->resolveDirectoriesIfNecessary(); 632 websiteDataStore.resolveDirectoriesIfNecessary(); 634 633 635 634 parameters.injectedBundlePath = m_resolvedPaths.injectedBundlePath; … … 641 640 SandboxExtension::createHandleWithoutResolvingPath(m_resolvedPaths.additionalWebProcessSandboxExtensionPaths[i], SandboxExtension::ReadOnly, parameters.additionalSandboxExtensionHandles[i]); 642 641 643 parameters.applicationCacheDirectory = websiteDataStore ? websiteDataStore->resolvedApplicationCacheDirectory() : m_resolvedPaths.applicationCacheDirectory;642 parameters.applicationCacheDirectory = websiteDataStore.resolvedApplicationCacheDirectory(); 644 643 if (parameters.applicationCacheDirectory.isEmpty()) 645 644 parameters.applicationCacheDirectory = m_resolvedPaths.applicationCacheDirectory; … … 649 648 parameters.applicationCacheFlatFileSubdirectoryName = m_configuration->applicationCacheFlatFileSubdirectoryName(); 650 649 651 parameters.webSQLDatabaseDirectory = websiteDataStore ? websiteDataStore->resolvedDatabaseDirectory() : m_resolvedPaths.webSQLDatabaseDirectory;650 parameters.webSQLDatabaseDirectory = websiteDataStore.resolvedDatabaseDirectory(); 652 651 if (parameters.webSQLDatabaseDirectory.isEmpty()) 653 652 parameters.webSQLDatabaseDirectory = m_resolvedPaths.webSQLDatabaseDirectory; … … 655 654 SandboxExtension::createHandleWithoutResolvingPath(parameters.webSQLDatabaseDirectory, SandboxExtension::ReadWrite, parameters.webSQLDatabaseDirectoryExtensionHandle); 656 655 657 parameters.mediaCacheDirectory = websiteDataStore ? websiteDataStore->resolvedMediaCacheDirectory() : m_resolvedPaths.mediaCacheDirectory;656 parameters.mediaCacheDirectory = websiteDataStore.resolvedMediaCacheDirectory(); 658 657 if (parameters.mediaCacheDirectory.isEmpty()) 659 658 parameters.mediaCacheDirectory = m_resolvedPaths.mediaCacheDirectory; … … 661 660 SandboxExtension::createHandleWithoutResolvingPath(parameters.mediaCacheDirectory, SandboxExtension::ReadWrite, parameters.mediaCacheDirectoryExtensionHandle); 662 661 663 parameters.mediaKeyStorageDirectory = websiteDataStore ? websiteDataStore->resolvedMediaKeysDirectory() : m_resolvedPaths.mediaKeyStorageDirectory;662 parameters.mediaKeyStorageDirectory = websiteDataStore.resolvedMediaKeysDirectory(); 664 663 if (parameters.mediaKeyStorageDirectory.isEmpty()) 665 664 parameters.mediaKeyStorageDirectory = m_resolvedPaths.mediaKeyStorageDirectory; … … 672 671 673 672 if (javaScriptConfigurationFileEnabled()) { 674 parameters.javaScriptConfigurationDirectory = websiteDataStore ? websiteDataStore->resolvedJavaScriptConfigurationDirectory() : String();673 parameters.javaScriptConfigurationDirectory = websiteDataStore.resolvedJavaScriptConfigurationDirectory(); 675 674 if (!parameters.javaScriptConfigurationDirectory.isEmpty()) 676 675 SandboxExtension::createHandleWithoutResolvingPath(parameters.javaScriptConfigurationDirectory, SandboxExtension::ReadWrite, parameters.javaScriptConfigurationDirectoryExtensionHandle); … … 786 785 return; 787 786 788 createNewWebProcess( nullptr);787 createNewWebProcess(m_websiteDataStore->websiteDataStore()); 789 788 m_haveInitialEmptyProcess = true; 790 789 } … … 862 861 } 863 862 864 WebProcessProxy& WebProcessPool::createNewWebProcessRespectingProcessCountLimit(WebsiteDataStore *websiteDataStore)863 WebProcessProxy& WebProcessPool::createNewWebProcessRespectingProcessCountLimit(WebsiteDataStore& websiteDataStore) 865 864 { 866 865 // FIXME: https://bugs.webkit.org/show_bug.cgi?id=168676 867 // Once WebsiteDataStores are notper-process, remove this nonsense.866 // Once WebsiteDataStores are truly per-view instead of per-process, remove this nonsense. 868 867 869 868 #if PLATFORM(COCOA) 870 bool mustMatchDataStore = websiteDataStore &&websiteDataStore != &API::WebsiteDataStore::defaultDataStore()->websiteDataStore();869 bool mustMatchDataStore = &websiteDataStore != &API::WebsiteDataStore::defaultDataStore()->websiteDataStore(); 871 870 #else 872 871 bool mustMatchDataStore = false; … … 879 878 if (mustMatchDataStore) { 880 879 for (auto& process : m_processes) { 881 if ( process->websiteDataStore() ==websiteDataStore)880 if (&process->websiteDataStore() == &websiteDataStore) 882 881 processesMatchingDataStore.append(process); 883 882 } … … 922 921 process = &pageConfiguration->relatedPage()->process(); 923 922 } else 924 process = &createNewWebProcessRespectingProcessCountLimit( &pageConfiguration->websiteDataStore()->websiteDataStore());923 process = &createNewWebProcessRespectingProcessCountLimit(pageConfiguration->websiteDataStore()->websiteDataStore()); 925 924 926 925 return process->createWebPage(pageClient, WTFMove(pageConfiguration)); -
trunk/Source/WebKit2/UIProcess/WebProcessPool.h
r215707 r215778 266 266 void allowSpecificHTTPSCertificateForHost(const WebCertificateInfo*, const String& host); 267 267 268 WebProcessProxy& createNewWebProcessRespectingProcessCountLimit(WebsiteDataStore *); // Will return an existing one if limit is met.268 WebProcessProxy& createNewWebProcessRespectingProcessCountLimit(WebsiteDataStore&); // Will return an existing one if limit is met. 269 269 void warmInitialProcess(); 270 270 … … 415 415 void platformInvalidateContext(); 416 416 417 WebProcessProxy& createNewWebProcess(WebsiteDataStore *);417 WebProcessProxy& createNewWebProcess(WebsiteDataStore&); 418 418 419 419 void requestWebContentStatistics(StatisticsRequest*); -
trunk/Source/WebKit2/UIProcess/WebProcessProxy.cpp
r215699 r215778 91 91 } 92 92 93 Ref<WebProcessProxy> WebProcessProxy::create(WebProcessPool& processPool, WebsiteDataStore *websiteDataStore)93 Ref<WebProcessProxy> WebProcessProxy::create(WebProcessPool& processPool, WebsiteDataStore& websiteDataStore) 94 94 { 95 95 return adoptRef(*new WebProcessProxy(processPool, websiteDataStore)); 96 96 } 97 97 98 WebProcessProxy::WebProcessProxy(WebProcessPool& processPool, WebsiteDataStore *websiteDataStore)98 WebProcessProxy::WebProcessProxy(WebProcessPool& processPool, WebsiteDataStore& websiteDataStore) 99 99 : ChildProcessProxy(processPool.alwaysRunsAtBackgroundPriority()) 100 100 , m_responsivenessTimer(*this) … … 112 112 { 113 113 WebPasteboardProxy::singleton().addWebProcessProxy(*this); 114 115 116 114 117 115 connect(); -
trunk/Source/WebKit2/UIProcess/WebProcessProxy.h
r215491 r215778 79 79 typedef HashMap<uint64_t, RefPtr<API::UserInitiatedAction>> UserInitiatedActionMap; 80 80 81 static Ref<WebProcessProxy> create(WebProcessPool&, WebsiteDataStore *);81 static Ref<WebProcessProxy> create(WebProcessPool&, WebsiteDataStore&); 82 82 ~WebProcessProxy(); 83 83 … … 87 87 88 88 // FIXME: WebsiteDataStores should be made per-WebPageProxy throughout WebKit2 89 WebsiteDataStore *websiteDataStore() const { return m_websiteDataStore.get(); }89 WebsiteDataStore& websiteDataStore() const { return m_websiteDataStore.get(); } 90 90 91 91 static WebPageProxy* webPage(uint64_t pageID); … … 178 178 179 179 private: 180 explicit WebProcessProxy(WebProcessPool&, WebsiteDataStore *);180 explicit WebProcessProxy(WebProcessPool&, WebsiteDataStore&); 181 181 182 182 // From ChildProcessProxy … … 283 283 284 284 // FIXME: WebsiteDataStores should be made per-WebPageProxy throughout WebKit2. Get rid of this member. 285 Ref Ptr<WebsiteDataStore> m_websiteDataStore;285 Ref<WebsiteDataStore> m_websiteDataStore; 286 286 287 287 bool m_isUnderMemoryPressure { false };
Note: See TracChangeset
for help on using the changeset viewer.