Index: content/renderer/render_frame_impl.cc |
diff --git a/content/renderer/render_frame_impl.cc b/content/renderer/render_frame_impl.cc |
index 789a49aa3e88a854b084251b405452daf84d4879..b5b1a8252d018033546fa50064642a741f3cdf65 100644 |
--- a/content/renderer/render_frame_impl.cc |
+++ b/content/renderer/render_frame_impl.cc |
@@ -1009,10 +1009,17 @@ blink::WebCookieJar* RenderFrameImpl::cookieJar(blink::WebFrame* frame) { |
blink::WebServiceWorkerProvider* RenderFrameImpl::createServiceWorkerProvider( |
blink::WebFrame* frame) { |
DCHECK(!frame_ || frame_ == frame); |
- // TODO(kinuko): Get the provider_id for the frame (via dataSource) and |
- // pass it to the WebServiceWorkerProviderImpl constructor. |
+ // At this point we should have non-null data source. |
+ DCHECK(frame->dataSource()); |
+ ServiceWorkerNetworkProvider* provider = |
+ ServiceWorkerNetworkProvider::FromDocumentState( |
+ DocumentState::FromDataSource(frame->dataSource())); |
+ int provider_id = provider |
+ ? provider->provider_id() |
+ : kInvalidServiceWorkerProviderId; |
+ LOG(ERROR) << "WebServiceWorkerProviderImpl created"; |
return new WebServiceWorkerProviderImpl( |
- ChildThread::current()->thread_safe_sender()); |
+ ChildThread::current()->thread_safe_sender(), provider_id); |
} |
void RenderFrameImpl::didAccessInitialDocument(blink::WebFrame* frame) { |