Changeset 249647 in webkit
- Timestamp:
- Sep 9, 2019 10:02:14 AM (5 years ago)
- Location:
- trunk/Source/WebKit
- Files:
-
- 2 deleted
- 11 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebKit/ChangeLog
r249640 r249647 1 2019-09-09 Youenn Fablet <youenn@apple.com> 2 3 Remove ServiceWorkerProcessProxy 4 https://bugs.webkit.org/show_bug.cgi?id=201506 5 6 Reviewed by Chris Dumez. 7 8 Instead of using a specific ServiceWorkerProcessProxy, move the logic directly in WebProcessProxy. 9 This will allow us in the future to run a service worker in a process that already runs a web page, 10 thus saving the need to spin off a new process. 11 12 This patch adds a new WebProcessProxy::createForServiceWorkers method instead of creating a 13 ServiceWorkerProcessProxy. The behavior is then similar: a process running a service worker cannot run a page. 14 15 * Sources.txt: 16 * UIProcess/API/Cocoa/WKWebsiteDataStore.mm: 17 (-[WKWebsiteDataStore _hasRegisteredServiceWorker]): 18 * UIProcess/BackgroundProcessResponsivenessTimer.cpp: 19 (WebKit::BackgroundProcessResponsivenessTimer::shouldBeActive const): 20 * UIProcess/Network/NetworkProcessProxy.cpp: 21 (WebKit::NetworkProcessProxy::openNetworkProcessConnection): 22 * UIProcess/ServiceWorkerProcessProxy.cpp: Removed. 23 * UIProcess/ServiceWorkerProcessProxy.h: Removed. 24 * UIProcess/WebProcessPool.cpp: 25 (WebKit::WebProcessPool::establishWorkerContextConnectionToNetworkProcess): 26 (WebKit::WebProcessPool::disconnectProcess): 27 (WebKit::WebProcessPool::processForRegistrableDomain): 28 (WebKit::WebProcessPool::createWebPage): 29 (WebKit::WebProcessPool::updateServiceWorkerUserAgent): 30 (WebKit::WebProcessPool::mayHaveRegisteredServiceWorkers): 31 (WebKit::WebProcessPool::updateProcessAssertions): 32 (WebKit::WebProcessPool::isServiceWorkerPageID const): 33 * UIProcess/WebProcessPool.h: 34 * UIProcess/WebProcessProxy.cpp: 35 (WebKit::WebProcessProxy::createForServiceWorkers): 36 (WebKit::WebProcessProxy::getLaunchOptions): 37 (WebKit::WebProcessProxy::didBecomeUnresponsive): 38 (WebKit::WebProcessProxy::canBeAddedToWebProcessCache const): 39 (WebKit::WebProcessProxy::didSetAssertionState): 40 (WebKit::WebProcessProxy::didExceedCPULimit): 41 (WebKit::WebProcessProxy::establishServiceWorkerContext): 42 (WebKit::WebProcessProxy::setServiceWorkerUserAgent): 43 (WebKit::WebProcessProxy::updateServiceWorkerPreferencesStore): 44 * UIProcess/WebProcessProxy.h: 45 (WebKit::WebProcessProxy::isRunningServiceWorkers const): 46 (WebKit::WebProcessProxy::hasServiceWorkerPageProxy): 47 * UIProcess/glib/WebProcessPoolGLib.cpp: 48 (WebKit::WebProcessPool::platformInitializeWebProcess): 49 * WebKit.xcodeproj/project.pbxproj: 50 1 51 2019-09-09 Youenn Fablet <youenn@apple.com> 2 52 -
trunk/Source/WebKit/Sources.txt
r249637 r249647 251 251 UIProcess/RemoteWebInspectorProxy.cpp 252 252 UIProcess/ResponsivenessTimer.cpp 253 UIProcess/ServiceWorkerProcessProxy.cpp254 253 UIProcess/StatisticsRequest.cpp 255 254 UIProcess/SuspendedPageProxy.cpp -
trunk/Source/WebKit/UIProcess/API/Cocoa/WKWebsiteDataStore.mm
r249275 r249647 42 42 #import "_WKWebsiteDataStoreDelegate.h" 43 43 #import <WebCore/Credential.h> 44 #import <Web Kit/ServiceWorkerProcessProxy.h>44 #import <WebCore/RegistrationDatabase.h> 45 45 #import <wtf/BlockPtr.h> 46 46 #import <wtf/URL.h> … … 579 579 - (bool)_hasRegisteredServiceWorker 580 580 { 581 return WebKit::ServiceWorkerProcessProxy::hasRegisteredServiceWorkers(_websiteDataStore->websiteDataStore().serviceWorkerRegistrationDirectory());581 return FileSystem::fileExists(WebCore::serviceWorkerRegistrationDatabaseFilename(_websiteDataStore->websiteDataStore().serviceWorkerRegistrationDirectory())); 582 582 } 583 583 -
trunk/Source/WebKit/UIProcess/BackgroundProcessResponsivenessTimer.cpp
r248121 r249647 136 136 #if !PLATFORM(IOS_FAMILY) 137 137 // Service worker process are always in the background. 138 if (m_webProcessProxy.is ServiceWorkerProcess())138 if (m_webProcessProxy.isRunningServiceWorkers()) 139 139 return true; 140 140 return !m_webProcessProxy.visiblePageCount() && m_webProcessProxy.pageCount(); -
trunk/Source/WebKit/UIProcess/Network/NetworkProcessProxy.cpp
r249501 r249647 146 146 RegistrableDomain registrableDomain; 147 147 #if ENABLE(SERVICE_WORKER) 148 if ( is<ServiceWorkerProcessProxy>(webProcessProxy)) {148 if (webProcessProxy.isRunningServiceWorkers()) { 149 149 isServiceWorkerProcess = true; 150 registrableDomain = downcast<ServiceWorkerProcessProxy>(webProcessProxy).registrableDomain();150 registrableDomain = webProcessProxy.registrableDomain(); 151 151 } 152 152 #endif -
trunk/Source/WebKit/UIProcess/WebProcessPool.cpp
r249622 r249647 50 50 #include "PluginProcessManager.h" 51 51 #include "SandboxExtension.h" 52 #include "ServiceWorkerProcessProxy.h"53 52 #include "StatisticsData.h" 54 53 #include "TextChecker.h" … … 87 86 #include <WebCore/ProcessIdentifier.h> 88 87 #include <WebCore/ProcessWarming.h> 88 #include <WebCore/RegistrationDatabase.h> 89 89 #include <WebCore/ResourceRequest.h> 90 90 #include <WebCore/RuntimeApplicationChecks.h> … … 710 710 sendToAllProcesses(Messages::WebProcess::RegisterServiceWorkerClients { }); 711 711 712 auto serviceWorkerProcessProxy = ServiceWorkerProcessProxy::create(*this, registrableDomain, *websiteDataStore);713 m_serviceWorkerProcesses.add( WTFMove(registrableDomain), serviceWorkerProcessProxy.ptr());712 auto serviceWorkerProcessProxy = WebProcessProxy::createForServiceWorkers(*this, WTFMove(registrableDomain), *websiteDataStore); 713 m_serviceWorkerProcesses.add(serviceWorkerProcessProxy->registrableDomain(), serviceWorkerProcessProxy.ptr()); 714 714 715 715 updateProcessAssertions(); … … 719 719 m_processes.append(WTFMove(serviceWorkerProcessProxy)); 720 720 721 serviceWorkerProcessProxyPtr-> start(m_serviceWorkerPreferences ? m_serviceWorkerPreferences.value() : m_defaultPageGroup->preferences().store(), sessionID);721 serviceWorkerProcessProxyPtr->establishServiceWorkerContext(m_serviceWorkerPreferences ? m_serviceWorkerPreferences.value() : m_defaultPageGroup->preferences().store(), sessionID.valueOr(PAL::SessionID::defaultSessionID())); 722 722 if (!m_serviceWorkerUserAgent.isNull()) 723 serviceWorkerProcessProxyPtr->set UserAgent(m_serviceWorkerUserAgent);723 serviceWorkerProcessProxyPtr->setServiceWorkerUserAgent(m_serviceWorkerUserAgent); 724 724 } 725 725 #endif … … 1127 1127 1128 1128 #if ENABLE(SERVICE_WORKER) 1129 if ( is<ServiceWorkerProcessProxy>(*process)) {1130 auto* removedProcess = m_serviceWorkerProcesses.take( downcast<ServiceWorkerProcessProxy>(*process).registrableDomain());1129 if (process->isRunningServiceWorkers()) { 1130 auto* removedProcess = m_serviceWorkerProcesses.take(process->registrableDomain()); 1131 1131 ASSERT_UNUSED(removedProcess, removedProcess == process); 1132 1132 updateProcessAssertions(); … … 1188 1188 continue; 1189 1189 #if ENABLE(SERVICE_WORKER) 1190 if ( is<ServiceWorkerProcessProxy>(*process))1190 if (process->isRunningServiceWorkers()) 1191 1191 continue; 1192 1192 #endif … … 1242 1242 1243 1243 #if ENABLE(SERVICE_WORKER) 1244 ASSERT(! is<ServiceWorkerProcessProxy>(*process));1244 ASSERT(!process->isRunningServiceWorkers()); 1245 1245 1246 1246 if (!m_serviceWorkerPreferences) { 1247 1247 m_serviceWorkerPreferences = page->preferencesStore(); 1248 1248 for (auto* serviceWorkerProcess : m_serviceWorkerProcesses.values()) 1249 serviceWorkerProcess->update PreferencesStore(*m_serviceWorkerPreferences);1249 serviceWorkerProcess->updateServiceWorkerPreferencesStore(*m_serviceWorkerPreferences); 1250 1250 } 1251 1251 #endif … … 1275 1275 m_serviceWorkerUserAgent = userAgent; 1276 1276 for (auto* serviceWorkerProcess : m_serviceWorkerProcesses.values()) 1277 serviceWorkerProcess->set UserAgent(m_serviceWorkerUserAgent);1277 serviceWorkerProcess->setServiceWorkerUserAgent(m_serviceWorkerUserAgent); 1278 1278 } 1279 1279 … … 1289 1289 return m_mayHaveRegisteredServiceWorkers.ensure(serviceWorkerRegistrationDirectory, [&] { 1290 1290 // FIXME: Make this computation on a background thread. 1291 return ServiceWorkerProcessProxy::hasRegisteredServiceWorkers(serviceWorkerRegistrationDirectory);1291 return FileSystem::fileExists(WebCore::serviceWorkerRegistrationDatabaseFilename(serviceWorkerRegistrationDirectory)); 1292 1292 }).iterator->value; 1293 1293 } … … 2133 2133 // FIXME: We can do better than this once we have process per origin. 2134 2134 for (auto* serviceWorkerProcess : m_serviceWorkerProcesses.values()) { 2135 auto ®istrableDomain = serviceWorkerProcess->registrableDomain();2135 auto registrableDomain = serviceWorkerProcess->registrableDomain(); 2136 2136 if (!m_foregroundTokensForServiceWorkerProcesses.contains(registrableDomain)) 2137 m_foregroundTokensForServiceWorkerProcesses.add( registrableDomain, serviceWorkerProcess->throttler().foregroundActivityToken());2137 m_foregroundTokensForServiceWorkerProcesses.add(WTFMove(registrableDomain), serviceWorkerProcess->throttler().foregroundActivityToken()); 2138 2138 } 2139 2139 m_backgroundTokensForServiceWorkerProcesses.clear(); … … 2143 2143 // FIXME: We can do better than this once we have process per origin. 2144 2144 for (auto* serviceWorkerProcess : m_serviceWorkerProcesses.values()) { 2145 auto ®istrableDomain = serviceWorkerProcess->registrableDomain();2145 auto registrableDomain = serviceWorkerProcess->registrableDomain(); 2146 2146 if (!m_backgroundTokensForServiceWorkerProcesses.contains(registrableDomain)) 2147 m_backgroundTokensForServiceWorkerProcesses.add( registrableDomain, serviceWorkerProcess->throttler().backgroundActivityToken());2147 m_backgroundTokensForServiceWorkerProcesses.add(WTFMove(registrableDomain), serviceWorkerProcess->throttler().backgroundActivityToken()); 2148 2148 } 2149 2149 m_foregroundTokensForServiceWorkerProcesses.clear(); … … 2199 2199 #if ENABLE(SERVICE_WORKER) 2200 2200 // FIXME: This is inefficient. 2201 for (auto* serviceWorkerProcess : m_serviceWorkerProcesses.values()) { 2202 if (serviceWorkerProcess->webPageProxyID() == pageID) 2203 return true; 2204 } 2201 return WTF::anyOf(m_serviceWorkerProcesses.values(), [pageID](auto* process) { 2202 return process->hasServiceWorkerPageProxy(pageID); 2203 }); 2205 2204 #endif 2206 2205 return false; -
trunk/Source/WebKit/UIProcess/WebProcessPool.h
r249589 r249647 39 39 #include "PluginInfoStore.h" 40 40 #include "ProcessThrottler.h" 41 #include "ServiceWorkerProcessProxy.h"42 41 #include "StatisticsRequest.h" 43 42 #include "VisitedLinkStore.h" … … 101 100 class UIGamepad; 102 101 class PerActivityStateCPUUsageSampler; 103 class ServiceWorkerProcessProxy;104 102 class SuspendedPageProxy; 105 103 class WebAutomationSession; … … 383 381 #if ENABLE(SERVICE_WORKER) 384 382 void establishWorkerContextConnectionToNetworkProcess(NetworkProcessProxy&, WebCore::RegistrableDomain&&, Optional<PAL::SessionID>); 385 const HashMap<WebCore::RegistrableDomain, ServiceWorkerProcessProxy*>& serviceWorkerProxies() const { return m_serviceWorkerProcesses; }383 const HashMap<WebCore::RegistrableDomain, WebProcessProxy*>& serviceWorkerProxies() const { return m_serviceWorkerProcesses; } 386 384 void setAllowsAnySSLCertificateForServiceWorker(bool allows) { m_allowsAnySSLCertificateForServiceWorker = allows; } 387 385 bool allowsAnySSLCertificateForServiceWorker() const { return m_allowsAnySSLCertificateForServiceWorker; } … … 621 619 WebProcessProxy* m_processWithPageCache { nullptr }; 622 620 #if ENABLE(SERVICE_WORKER) 623 HashMap<WebCore::RegistrableDomain, ServiceWorkerProcessProxy*> m_serviceWorkerProcesses;621 HashMap<WebCore::RegistrableDomain, WebProcessProxy*> m_serviceWorkerProcesses; 624 622 bool m_waitingForWorkerContextProcessConnection { false }; 625 623 bool m_allowsAnySSLCertificateForServiceWorker { false }; -
trunk/Source/WebKit/UIProcess/WebProcessProxy.cpp
r249501 r249647 50 50 #include "WebProcessPool.h" 51 51 #include "WebProcessProxyMessages.h" 52 #include "WebSWContextManagerConnectionMessages.h" 52 53 #include "WebUserContentControllerProxy.h" 53 54 #include "WebsiteData.h" … … 134 135 } 135 136 137 Ref<WebProcessProxy> WebProcessProxy::createForServiceWorkers(WebProcessPool& processPool, RegistrableDomain&& registrableDomain, WebsiteDataStore& websiteDataStore) 138 { 139 auto proxy = adoptRef(*new WebProcessProxy(processPool, &websiteDataStore, IsPrewarmed::No)); 140 proxy->m_registrableDomain = WTFMove(registrableDomain); 141 proxy->m_serviceWorkerInformation = ServiceWorkerInformation { WebPageProxyIdentifier::generate(), PageIdentifier::generate() }; 142 proxy->connect(); 143 return proxy; 144 } 145 136 146 WebProcessProxy::WebProcessProxy(WebProcessPool& processPool, WebsiteDataStore* websiteDataStore, IsPrewarmed isPrewarmed) 137 147 : AuxiliaryProcessProxy(processPool.alwaysRunsAtBackgroundPriority()) … … 278 288 launchOptions.shouldMakeProcessLaunchFailForTesting = true; 279 289 } 290 291 if (m_serviceWorkerInformation) { 292 launchOptions.extraInitializationData.add("service-worker-process"_s, "1"_s); 293 launchOptions.extraInitializationData.add("registrable-domain"_s, m_registrableDomain->string()); 294 } 280 295 } 281 296 … … 752 767 callback(isWebProcessResponsive); 753 768 754 // If the service worker process becomes unresponsive, kill it ourselves since there are no native clients to do it.755 if (is ServiceWorkerProcess()) {756 RELEASE_LOG_ERROR(PerformanceLogging, "%p - WebProcessProxy::didBecomeUnresponsive() Terminating Service Workerprocess with pid %d because it is unresponsive", this, processIdentifier());769 // If the web process becomes unresponsive and only runs service workers, kill it ourselves since there are no native clients to do it. 770 if (isRunningServiceWorkers() && m_pageMap.isEmpty()) { 771 RELEASE_LOG_ERROR(PerformanceLogging, "%p - WebProcessProxy::didBecomeUnresponsive() Terminating service worker-only web process with pid %d because it is unresponsive", this, processIdentifier()); 757 772 terminate(); 758 773 } … … 887 902 bool WebProcessProxy::canBeAddedToWebProcessCache() const 888 903 { 889 if (is ServiceWorkerProcess())904 if (isRunningServiceWorkers()) 890 905 return false; 891 906 … … 1203 1218 { 1204 1219 #if PLATFORM(IOS_FAMILY) 1205 if (is ServiceWorkerProcess())1220 if (isRunningServiceWorkers()) 1206 1221 return; 1207 1222 … … 1379 1394 return; 1380 1395 1381 if (isServiceWorkerProcess()) 1382 RELEASE_LOG_ERROR(PerformanceLogging, "%p - WebProcessProxy::didExceedCPULimit() Terminating Service Worker process with pid %d that has exceeded the background CPU limit", this, processIdentifier()); 1383 else 1384 RELEASE_LOG_ERROR(PerformanceLogging, "%p - WebProcessProxy::didExceedCPULimit() Terminating background WebProcess with pid %d that has exceeded the background CPU limit", this, processIdentifier()); 1396 RELEASE_LOG_ERROR(PerformanceLogging, "%p - WebProcessProxy::didExceedCPULimit() Terminating background WebProcess with pid %d that has exceeded the background CPU limit", this, processIdentifier()); 1385 1397 logDiagnosticMessageForResourceLimitTermination(DiagnosticLoggingKeys::exceededBackgroundCPULimitKey()); 1386 1398 requestTermination(ProcessTerminationReason::ExceededCPULimit); … … 1481 1493 #endif 1482 1494 1495 #if ENABLE(SERVICE_WORKER) 1496 void WebProcessProxy::establishServiceWorkerContext(const WebPreferencesStore& store, PAL::SessionID sessionID) 1497 { 1498 send(Messages::WebProcess::EstablishWorkerContextConnectionToNetworkProcess { processPool().defaultPageGroup().pageGroupID(), m_serviceWorkerInformation->serviceWorkerPageProxyID, m_serviceWorkerInformation->serviceWorkerPageID, store, sessionID }, 0); 1499 } 1500 1501 void WebProcessProxy::setServiceWorkerUserAgent(const String& userAgent) 1502 { 1503 ASSERT(m_serviceWorkerInformation); 1504 send(Messages::WebSWContextManagerConnection::SetUserAgent { userAgent }, 0); 1505 } 1506 1507 void WebProcessProxy::updateServiceWorkerPreferencesStore(const WebPreferencesStore& store) 1508 { 1509 ASSERT(m_serviceWorkerInformation); 1510 send(Messages::WebSWContextManagerConnection::UpdatePreferencesStore { store }, 0); 1511 } 1512 #endif 1513 1483 1514 } // namespace WebKit 1484 1515 -
trunk/Source/WebKit/UIProcess/WebProcessProxy.h
r249501 r249647 83 83 struct WebNavigationDataStore; 84 84 struct WebPageCreationParameters; 85 struct WebPreferencesStore; 85 86 struct WebsiteData; 86 87 … … 110 111 111 112 static Ref<WebProcessProxy> create(WebProcessPool&, WebsiteDataStore*, IsPrewarmed, ShouldLaunchProcess = ShouldLaunchProcess::Yes); 113 static Ref<WebProcessProxy> createForServiceWorkers(WebProcessPool&, WebCore::RegistrableDomain&&, WebsiteDataStore&); 114 112 115 ~WebProcessProxy(); 113 116 … … 150 153 void activePagesDomainsForTesting(CompletionHandler<void(Vector<String>&&)>&&); // This is what is reported to ActivityMonitor. 151 154 152 virtual bool isServiceWorkerProcess() const { return false; }155 bool isRunningServiceWorkers() const { return !!m_serviceWorkerInformation; } 153 156 154 157 void didCreateWebPageInProcess(WebCore::PageIdentifier); … … 309 312 void ref() final { ThreadSafeRefCounted::ref(); } 310 313 void deref() final { ThreadSafeRefCounted::deref(); } 314 315 #if ENABLE(SERVICE_WORKER) 316 void establishServiceWorkerContext(const WebPreferencesStore&, PAL::SessionID); 317 void startForServiceWorkers(const WebPreferencesStore&, PAL::SessionID); 318 void setServiceWorkerUserAgent(const String&); 319 void updateServiceWorkerPreferencesStore(const WebPreferencesStore&); 320 bool hasServiceWorkerPageProxy(WebPageProxyIdentifier pageProxyID) { return m_serviceWorkerInformation && m_serviceWorkerInformation->serviceWorkerPageProxyID == pageProxyID; } 321 #endif 311 322 312 323 protected: … … 477 488 MediaCaptureSandboxExtensions m_mediaCaptureSandboxExtensions { SandboxExtensionType::None }; 478 489 #endif 490 491 struct ServiceWorkerInformation { 492 WebPageProxyIdentifier serviceWorkerPageProxyID; 493 WebCore::PageIdentifier serviceWorkerPageID; 494 }; 495 Optional<ServiceWorkerInformation> m_serviceWorkerInformation; 479 496 }; 480 497 -
trunk/Source/WebKit/UIProcess/glib/WebProcessPoolGLib.cpp
r246955 r249647 104 104 { 105 105 #if PLATFORM(WPE) 106 parameters.isServiceWorkerProcess = process.is ServiceWorkerProcess();106 parameters.isServiceWorkerProcess = process.isRunningServiceWorkers(); 107 107 108 108 if (!parameters.isServiceWorkerProcess) { -
trunk/Source/WebKit/WebKit.xcodeproj/project.pbxproj
r249637 r249647 880 880 414DD37920BF43F5006959FB /* com.cisco.webex.plugin.gpc64.sb in Resources */ = {isa = PBXBuildFile; fileRef = 414DD37820BF43EA006959FB /* com.cisco.webex.plugin.gpc64.sb */; }; 881 881 414DD37A20BF49A5006959FB /* com.cisco.webex.plugin.gpc64.sb in Copy Plug-in Sandbox Profiles */ = {isa = PBXBuildFile; fileRef = 414DD37820BF43EA006959FB /* com.cisco.webex.plugin.gpc64.sb */; }; 882 414DEDD71F9EDDE50047C40D /* ServiceWorkerProcessProxy.h in Headers */ = {isa = PBXBuildFile; fileRef = 414DEDD51F9EDDDF0047C40D /* ServiceWorkerProcessProxy.h */; };883 882 4157E4B020E2ECDF00A6C0D7 /* com.google.o1dbrowserplugin.sb in Copy Plug-in Sandbox Profiles */ = {isa = PBXBuildFile; fileRef = 4157E4AF20E2EC9800A6C0D7 /* com.google.o1dbrowserplugin.sb */; }; 884 883 4176901422FDD41B00B1576D /* NetworkRTCProvider.mm in Sources */ = {isa = PBXBuildFile; fileRef = 4176901322FDD41B00B1576D /* NetworkRTCProvider.mm */; }; … … 3138 3137 4143751B20EAEA1E00FAD06C /* cn.microdone.cmb.safari.sb */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = cn.microdone.cmb.safari.sb; sourceTree = "<group>"; }; 3139 3138 414DD37820BF43EA006959FB /* com.cisco.webex.plugin.gpc64.sb */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = com.cisco.webex.plugin.gpc64.sb; sourceTree = "<group>"; }; 3140 414DEDD51F9EDDDF0047C40D /* ServiceWorkerProcessProxy.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ServiceWorkerProcessProxy.h; sourceTree = "<group>"; };3141 414DEDD61F9EDDE00047C40D /* ServiceWorkerProcessProxy.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ServiceWorkerProcessProxy.cpp; sourceTree = "<group>"; };3142 3139 41518535222704F5005430C6 /* ServiceWorkerFetchTask.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ServiceWorkerFetchTask.h; sourceTree = "<group>"; }; 3143 3140 41518536222704F6005430C6 /* ServiceWorkerFetchTask.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ServiceWorkerFetchTask.cpp; sourceTree = "<group>"; }; … … 7778 7775 1A30066C1110F4F70031937C /* ResponsivenessTimer.h */, 7779 7776 5CA98549210BEB5A0057EB6B /* SafeBrowsingWarning.h */, 7780 414DEDD61F9EDDE00047C40D /* ServiceWorkerProcessProxy.cpp */,7781 414DEDD51F9EDDDF0047C40D /* ServiceWorkerProcessProxy.h */,7782 7777 51A4D5A816CAC4FF000E615E /* StatisticsRequest.cpp */, 7783 7778 514BDED216C98EDD00E4E25E /* StatisticsRequest.h */, … … 9747 9742 570AB8F320AE3BD700B8BE87 /* SecKeyProxyStore.h in Headers */, 9748 9743 514D9F5719119D35000063A7 /* ServicesController.h in Headers */, 9749 414DEDD71F9EDDE50047C40D /* ServiceWorkerProcessProxy.h in Headers */,9750 9744 1AFDE65A1954A42B00C48FFA /* SessionState.h in Headers */, 9751 9745 1A002D49196B345D00B9AD44 /* SessionStateCoding.h in Headers */,
Note: See TracChangeset
for help on using the changeset viewer.