Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(252)

Side by Side Diff: content/renderer/render_frame_impl.cc

Issue 1191293002: Don't create ServiceWorkerProviderHost for sandboxed frames without allow-same-origin flag. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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 2442 matching lines...) Expand 10 before | Expand all | Expand 10 after
2453 default: 2453 default:
2454 NOTREACHED(); 2454 NOTREACHED();
2455 } 2455 }
2456 } 2456 }
2457 2457
2458 // Create the serviceworker's per-document network observing object if it 2458 // Create the serviceworker's per-document network observing object if it
2459 // does not exist (When navigation happens within a page, the provider already 2459 // does not exist (When navigation happens within a page, the provider already
2460 // exists). 2460 // exists).
2461 if (!ServiceWorkerNetworkProvider::FromDocumentState( 2461 if (!ServiceWorkerNetworkProvider::FromDocumentState(
2462 DocumentState::FromDataSource(datasource))) { 2462 DocumentState::FromDataSource(datasource))) {
2463 ServiceWorkerProviderType provider_type =
2464 SERVICE_WORKER_PROVIDER_FOR_WINDOW;
2465 if ((frame->effectiveSandboxFlags() & blink::WebSandboxFlags::Origin) ==
2466 blink::WebSandboxFlags::Origin) {
2467 provider_type = SERVICE_WORKER_PROVIDER_FOR_SANDBOXED_FRAME;
2468 }
2463 scoped_ptr<ServiceWorkerNetworkProvider> network_provider( 2469 scoped_ptr<ServiceWorkerNetworkProvider> network_provider(
2464 new ServiceWorkerNetworkProvider(routing_id_, 2470 new ServiceWorkerNetworkProvider(routing_id_, provider_type));
2465 SERVICE_WORKER_PROVIDER_FOR_WINDOW));
2466 ServiceWorkerNetworkProvider::AttachToDocumentState( 2471 ServiceWorkerNetworkProvider::AttachToDocumentState(
2467 DocumentState::FromDataSource(datasource), 2472 DocumentState::FromDataSource(datasource),
2468 network_provider.Pass()); 2473 network_provider.Pass());
2469 } 2474 }
2470 } 2475 }
2471 2476
2472 void RenderFrameImpl::didStartProvisionalLoad(blink::WebLocalFrame* frame, 2477 void RenderFrameImpl::didStartProvisionalLoad(blink::WebLocalFrame* frame,
2473 double triggering_event_time) { 2478 double triggering_event_time) {
2474 DCHECK(!frame_ || frame_ == frame); 2479 DCHECK(!frame_ || frame_ == frame);
2475 WebDataSource* ds = frame->provisionalDataSource(); 2480 WebDataSource* ds = frame->provisionalDataSource();
(...skipping 1186 matching lines...) Expand 10 before | Expand all | Expand 10 after
3662 RenderFrameImpl::webScreenOrientationClient() { 3667 RenderFrameImpl::webScreenOrientationClient() {
3663 if (!screen_orientation_dispatcher_) 3668 if (!screen_orientation_dispatcher_)
3664 screen_orientation_dispatcher_ = new ScreenOrientationDispatcher(this); 3669 screen_orientation_dispatcher_ = new ScreenOrientationDispatcher(this);
3665 return screen_orientation_dispatcher_; 3670 return screen_orientation_dispatcher_;
3666 } 3671 }
3667 3672
3668 bool RenderFrameImpl::isControlledByServiceWorker(WebDataSource& data_source) { 3673 bool RenderFrameImpl::isControlledByServiceWorker(WebDataSource& data_source) {
3669 ServiceWorkerNetworkProvider* provider = 3674 ServiceWorkerNetworkProvider* provider =
3670 ServiceWorkerNetworkProvider::FromDocumentState( 3675 ServiceWorkerNetworkProvider::FromDocumentState(
3671 DocumentState::FromDataSource(&data_source)); 3676 DocumentState::FromDataSource(&data_source));
3677 if (!provider->context())
3678 return false;
3672 return provider->context()->controller_handle_id() != 3679 return provider->context()->controller_handle_id() !=
3673 kInvalidServiceWorkerHandleId; 3680 kInvalidServiceWorkerHandleId;
3674 } 3681 }
3675 3682
3676 int64_t RenderFrameImpl::serviceWorkerID(WebDataSource& data_source) { 3683 int64_t RenderFrameImpl::serviceWorkerID(WebDataSource& data_source) {
3677 ServiceWorkerNetworkProvider* provider = 3684 ServiceWorkerNetworkProvider* provider =
3678 ServiceWorkerNetworkProvider::FromDocumentState( 3685 ServiceWorkerNetworkProvider::FromDocumentState(
3679 DocumentState::FromDataSource(&data_source)); 3686 DocumentState::FromDataSource(&data_source));
3680 3687 if (provider->context() && provider->context()->controller())
3681 if (provider->context()->controller())
3682 return provider->context()->controller()->version_id(); 3688 return provider->context()->controller()->version_id();
3683 return kInvalidServiceWorkerVersionId; 3689 return kInvalidServiceWorkerVersionId;
3684 } 3690 }
3685 3691
3686 void RenderFrameImpl::postAccessibilityEvent(const blink::WebAXObject& obj, 3692 void RenderFrameImpl::postAccessibilityEvent(const blink::WebAXObject& obj,
3687 blink::WebAXEvent event) { 3693 blink::WebAXEvent event) {
3688 HandleWebAccessibilityEvent(obj, event); 3694 HandleWebAccessibilityEvent(obj, event);
3689 } 3695 }
3690 3696
3691 void RenderFrameImpl::handleAccessibilityFindInPageResult( 3697 void RenderFrameImpl::handleAccessibilityFindInPageResult(
(...skipping 1269 matching lines...) Expand 10 before | Expand all | Expand 10 after
4961 #elif defined(ENABLE_BROWSER_CDMS) 4967 #elif defined(ENABLE_BROWSER_CDMS)
4962 cdm_manager_, 4968 cdm_manager_,
4963 #endif 4969 #endif
4964 this); 4970 this);
4965 } 4971 }
4966 4972
4967 return cdm_factory_; 4973 return cdm_factory_;
4968 } 4974 }
4969 4975
4970 } // namespace content 4976 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698