Changeset 223713 in webkit
- Timestamp:
- Oct 19, 2017 2:31:17 PM (7 years ago)
- Location:
- trunk/Source/WebKit
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebKit/ChangeLog
r223710 r223713 1 2017-10-19 Youenn Fablet <youenn@apple.com> 2 3 Service Worker process should not be selected to open WebView on it 4 https://bugs.webkit.org/show_bug.cgi?id=178527 5 6 Reviewed by Chris Dumez. 7 8 Selection of process to open a page will no longer use an existing web process if it is the service worker process. 9 10 * UIProcess/WebProcessPool.cpp: 11 (WebKit::WebProcessPool::createNewWebProcessRespectingProcessCountLimit): 12 1 13 2017-10-19 Tim Horton <timothy_horton@apple.com> 2 14 -
trunk/Source/WebKit/UIProcess/WebProcessPool.cpp
r223242 r223713 938 938 return createNewWebProcess(websiteDataStore); 939 939 940 Vector<RefPtr<WebProcessProxy>> processesMatchingDataStore; 941 if (mustMatchDataStore) { 942 for (auto& process : m_processes) { 943 if (&process->websiteDataStore() == &websiteDataStore) 944 processesMatchingDataStore.append(process); 945 } 946 947 if (processesMatchingDataStore.isEmpty()) 948 return createNewWebProcess(websiteDataStore); 949 } 950 951 // Choose the process with fewest pages. 952 auto* processes = mustMatchDataStore ? &processesMatchingDataStore : &m_processes; 953 ASSERT(!processes->isEmpty()); 954 auto& process = *std::min_element(processes->begin(), processes->end(), [](const RefPtr<WebProcessProxy>& a, const RefPtr<WebProcessProxy>& b) { 955 return a->pageCount() < b->pageCount(); 956 }); 957 958 return *process; 940 WebProcessProxy* processToReuse = nullptr; 941 for (auto& process : m_processes) { 942 if (mustMatchDataStore && &process->websiteDataStore() != &websiteDataStore) 943 continue; 944 #if ENABLE(SERVICE_WORKER) 945 if (process.get() == m_workerContextProcess) 946 continue; 947 #endif 948 // Choose the process with fewest pages. 949 if (!processToReuse || processToReuse->pageCount() > process->pageCount()) 950 processToReuse = process.get(); 951 } 952 return processToReuse ? *processToReuse : createNewWebProcess(websiteDataStore); 959 953 } 960 954
Note: See TracChangeset
for help on using the changeset viewer.