OLD | NEW |
1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "content/renderer/render_frame_impl.h" | 5 #include "content/renderer/render_frame_impl.h" |
6 | 6 |
7 #include <map> | 7 #include <map> |
8 #include <string> | 8 #include <string> |
9 | 9 |
10 #include "base/auto_reset.h" | 10 #include "base/auto_reset.h" |
(...skipping 2627 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2638 document_state->set_load_type(DocumentState::LINK_LOAD_CACHE_ONLY); | 2638 document_state->set_load_type(DocumentState::LINK_LOAD_CACHE_ONLY); |
2639 break; | 2639 break; |
2640 default: | 2640 default: |
2641 NOTREACHED(); | 2641 NOTREACHED(); |
2642 } | 2642 } |
2643 } | 2643 } |
2644 | 2644 |
2645 // Create the serviceworker's per-document network observing object if it | 2645 // Create the serviceworker's per-document network observing object if it |
2646 // does not exist (When navigation happens within a page, the provider already | 2646 // does not exist (When navigation happens within a page, the provider already |
2647 // exists). | 2647 // exists). |
2648 if (!ServiceWorkerNetworkProvider::FromDocumentState( | 2648 if (ServiceWorkerNetworkProvider::FromDocumentState( |
2649 DocumentState::FromDataSource(datasource))) { | 2649 DocumentState::FromDataSource(datasource))) |
2650 ServiceWorkerProviderType provider_type = | 2650 return; |
2651 SERVICE_WORKER_PROVIDER_FOR_WINDOW; | 2651 |
2652 if ((frame->effectiveSandboxFlags() & blink::WebSandboxFlags::Origin) == | 2652 NavigationStateImpl* navigation_state = static_cast<NavigationStateImpl*>( |
2653 blink::WebSandboxFlags::Origin) { | 2653 DocumentState::FromDataSource(datasource)->navigation_state()); |
2654 provider_type = SERVICE_WORKER_PROVIDER_FOR_SANDBOXED_FRAME; | 2654 |
2655 } | 2655 ServiceWorkerNetworkProvider::AttachToDocumentState( |
2656 scoped_ptr<ServiceWorkerNetworkProvider> network_provider( | 2656 DocumentState::FromDataSource(datasource), |
2657 new ServiceWorkerNetworkProvider(routing_id_, provider_type)); | 2657 ServiceWorkerNetworkProvider::CreateForNavigation( |
2658 ServiceWorkerNetworkProvider::AttachToDocumentState( | 2658 routing_id_, navigation_state->request_params(), |
2659 DocumentState::FromDataSource(datasource), | 2659 frame->effectiveSandboxFlags(), content_initiated)); |
2660 network_provider.Pass()); | |
2661 } | |
2662 } | 2660 } |
2663 | 2661 |
2664 void RenderFrameImpl::didStartProvisionalLoad(blink::WebLocalFrame* frame, | 2662 void RenderFrameImpl::didStartProvisionalLoad(blink::WebLocalFrame* frame, |
2665 double triggering_event_time) { | 2663 double triggering_event_time) { |
2666 DCHECK(!frame_ || frame_ == frame); | 2664 DCHECK(!frame_ || frame_ == frame); |
2667 WebDataSource* ds = frame->provisionalDataSource(); | 2665 WebDataSource* ds = frame->provisionalDataSource(); |
2668 | 2666 |
2669 // In fast/loader/stop-provisional-loads.html, we abort the load before this | 2667 // In fast/loader/stop-provisional-loads.html, we abort the load before this |
2670 // callback is invoked. | 2668 // callback is invoked. |
2671 if (!ds) | 2669 if (!ds) |
(...skipping 738 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3410 | 3408 |
3411 int provider_id = kInvalidServiceWorkerProviderId; | 3409 int provider_id = kInvalidServiceWorkerProviderId; |
3412 if (request.frameType() == blink::WebURLRequest::FrameTypeTopLevel || | 3410 if (request.frameType() == blink::WebURLRequest::FrameTypeTopLevel || |
3413 request.frameType() == blink::WebURLRequest::FrameTypeNested) { | 3411 request.frameType() == blink::WebURLRequest::FrameTypeNested) { |
3414 // |provisionalDataSource| may be null in some content::ResourceFetcher | 3412 // |provisionalDataSource| may be null in some content::ResourceFetcher |
3415 // use cases, we don't hook those requests. | 3413 // use cases, we don't hook those requests. |
3416 if (frame->provisionalDataSource()) { | 3414 if (frame->provisionalDataSource()) { |
3417 ServiceWorkerNetworkProvider* provider = | 3415 ServiceWorkerNetworkProvider* provider = |
3418 ServiceWorkerNetworkProvider::FromDocumentState( | 3416 ServiceWorkerNetworkProvider::FromDocumentState( |
3419 DocumentState::FromDataSource(frame->provisionalDataSource())); | 3417 DocumentState::FromDataSource(frame->provisionalDataSource())); |
| 3418 DCHECK(provider); |
3420 provider_id = provider->provider_id(); | 3419 provider_id = provider->provider_id(); |
3421 } | 3420 } |
3422 } else if (frame->dataSource()) { | 3421 } else if (frame->dataSource()) { |
3423 ServiceWorkerNetworkProvider* provider = | 3422 ServiceWorkerNetworkProvider* provider = |
3424 ServiceWorkerNetworkProvider::FromDocumentState( | 3423 ServiceWorkerNetworkProvider::FromDocumentState( |
3425 DocumentState::FromDataSource(frame->dataSource())); | 3424 DocumentState::FromDataSource(frame->dataSource())); |
| 3425 DCHECK(provider); |
3426 provider_id = provider->provider_id(); | 3426 provider_id = provider->provider_id(); |
3427 // Explicitly set the SkipServiceWorker flag here if the renderer process | 3427 // Explicitly set the SkipServiceWorker flag here if the renderer process |
3428 // hasn't received SetControllerServiceWorker message. | 3428 // hasn't received SetControllerServiceWorker message. |
3429 if (!provider->IsControlledByServiceWorker()) | 3429 if (!provider->IsControlledByServiceWorker()) |
3430 request.setSkipServiceWorker(true); | 3430 request.setSkipServiceWorker(true); |
3431 } | 3431 } |
3432 | 3432 |
3433 WebFrame* parent = frame->parent(); | 3433 WebFrame* parent = frame->parent(); |
3434 int parent_routing_id = parent ? GetRoutingIdForFrameOrProxy(parent) : -1; | 3434 int parent_routing_id = parent ? GetRoutingIdForFrameOrProxy(parent) : -1; |
3435 | 3435 |
(...skipping 1848 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
5284 mojo::ServiceProviderPtr service_provider; | 5284 mojo::ServiceProviderPtr service_provider; |
5285 mojo::URLRequestPtr request(mojo::URLRequest::New()); | 5285 mojo::URLRequestPtr request(mojo::URLRequest::New()); |
5286 request->url = mojo::String::From(url); | 5286 request->url = mojo::String::From(url); |
5287 mojo_shell_->ConnectToApplication(request.Pass(), GetProxy(&service_provider), | 5287 mojo_shell_->ConnectToApplication(request.Pass(), GetProxy(&service_provider), |
5288 nullptr, nullptr, | 5288 nullptr, nullptr, |
5289 base::Bind(&OnGotContentHandlerID)); | 5289 base::Bind(&OnGotContentHandlerID)); |
5290 return service_provider.Pass(); | 5290 return service_provider.Pass(); |
5291 } | 5291 } |
5292 | 5292 |
5293 } // namespace content | 5293 } // namespace content |
OLD | NEW |