Index: content/browser/service_worker/service_worker_context_wrapper.cc |
diff --git a/content/browser/service_worker/service_worker_context_wrapper.cc b/content/browser/service_worker/service_worker_context_wrapper.cc |
index eddab03b89532ee169e5ca3d30d2099f5705a2dc..1c6f549f75cbab6b3a6b6309138c0685ceeb2505 100644 |
--- a/content/browser/service_worker/service_worker_context_wrapper.cc |
+++ b/content/browser/service_worker/service_worker_context_wrapper.cc |
@@ -604,6 +604,24 @@ void ServiceWorkerContextWrapper::HasMainFrameProviderHost( |
context_core_->HasMainFrameProviderHost(origin, callback); |
} |
+std::unique_ptr<std::vector<std::pair<int, int>>> |
+ServiceWorkerContextWrapper::GetProviderHostIds(const GURL& origin) const { |
+ DCHECK_CURRENTLY_ON(BrowserThread::IO); |
+ |
+ std::unique_ptr<std::vector<std::pair<int, int>>> provider_host_ids( |
+ new std::vector<std::pair<int, int>>()); |
+ |
+ for (std::unique_ptr<ServiceWorkerContextCore::ProviderHostIterator> it = |
+ context_core_->GetClientProviderHostIterator(origin); |
+ !it->IsAtEnd(); it->Advance()) { |
+ ServiceWorkerProviderHost* provider_host = it->GetProviderHost(); |
+ provider_host_ids->push_back( |
+ std::make_pair(provider_host->process_id(), provider_host->frame_id())); |
+ } |
+ |
+ return provider_host_ids; |
+} |
+ |
void ServiceWorkerContextWrapper::FindReadyRegistrationForDocument( |
const GURL& document_url, |
const FindRegistrationCallback& callback) { |