diff options
Diffstat (limited to 'chromium/content/renderer/render_frame_impl.cc')
-rw-r--r-- | chromium/content/renderer/render_frame_impl.cc | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/chromium/content/renderer/render_frame_impl.cc b/chromium/content/renderer/render_frame_impl.cc index 75822901685..9fe59dfdadd 100644 --- a/chromium/content/renderer/render_frame_impl.cc +++ b/chromium/content/renderer/render_frame_impl.cc @@ -2184,11 +2184,15 @@ blink::WebServiceWorkerProvider* RenderFrameImpl::createServiceWorkerProvider( // At this point we should have non-null data source. DCHECK(frame->dataSource()); if (!ChildThreadImpl::current()) - return NULL; // May be null in some tests. + return nullptr; // May be null in some tests. ServiceWorkerNetworkProvider* provider = ServiceWorkerNetworkProvider::FromDocumentState( DocumentState::FromDataSource(frame->dataSource())); DCHECK(provider); + if (!provider->context()) { + // The context can be null when the frame is sandboxed. + return nullptr; + } return new WebServiceWorkerProviderImpl( ChildThreadImpl::current()->thread_safe_sender(), provider->context()); @@ -4714,9 +4718,9 @@ void RenderFrameImpl::NavigateInternal( base::TimeTicks renderer_navigation_start = base::TimeTicks::Now(); // Perform a navigation to a data url if needed. - if (!common_params.base_url_for_data_url.is_empty() || - (browser_side_navigation && - common_params.url.SchemeIs(url::kDataScheme))) { + if ((!common_params.base_url_for_data_url.is_empty() || + browser_side_navigation) && + common_params.url.SchemeIs(url::kDataScheme)) { LoadDataURL(common_params, frame_); } else { // Load the request. |