| 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 495 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 506 return media::Context3D(provider->ContextGL(), provider->GrContext()); | 506 return media::Context3D(provider->ContextGL(), provider->GrContext()); |
| 507 } | 507 } |
| 508 #endif | 508 #endif |
| 509 | 509 |
| 510 bool IsReload(FrameMsg_Navigate_Type::Value navigation_type) { | 510 bool IsReload(FrameMsg_Navigate_Type::Value navigation_type) { |
| 511 return navigation_type == FrameMsg_Navigate_Type::RELOAD || | 511 return navigation_type == FrameMsg_Navigate_Type::RELOAD || |
| 512 navigation_type == FrameMsg_Navigate_Type::RELOAD_IGNORING_CACHE || | 512 navigation_type == FrameMsg_Navigate_Type::RELOAD_IGNORING_CACHE || |
| 513 navigation_type == FrameMsg_Navigate_Type::RELOAD_ORIGINAL_REQUEST_URL; | 513 navigation_type == FrameMsg_Navigate_Type::RELOAD_ORIGINAL_REQUEST_URL; |
| 514 } | 514 } |
| 515 | 515 |
| 516 // Returns the routing ID of the RenderFrameImpl or RenderFrameProxy |
| 517 // associated with |web_frame|. |
| 518 int GetRoutingIdForFrameOrProxy(WebFrame* web_frame) { |
| 519 if (!web_frame) |
| 520 return MSG_ROUTING_NONE; |
| 521 if (web_frame->isWebRemoteFrame()) |
| 522 return RenderFrameProxy::FromWebFrame(web_frame)->routing_id(); |
| 523 return RenderFrameImpl::FromWebFrame(web_frame)->GetRoutingID(); |
| 524 } |
| 525 |
| 516 RenderFrameImpl::CreateRenderFrameImplFunction g_create_render_frame_impl = | 526 RenderFrameImpl::CreateRenderFrameImplFunction g_create_render_frame_impl = |
| 517 nullptr; | 527 nullptr; |
| 518 | 528 |
| 519 void OnGotContentHandlerID(uint32_t content_handler_id) {} | 529 void OnGotContentHandlerID(uint32_t content_handler_id) {} |
| 520 | 530 |
| 521 } // namespace | 531 } // namespace |
| 522 | 532 |
| 523 // static | 533 // static |
| 524 RenderFrameImpl* RenderFrameImpl::Create(RenderViewImpl* render_view, | 534 RenderFrameImpl* RenderFrameImpl::Create(RenderViewImpl* render_view, |
| 525 int32 routing_id) { | 535 int32 routing_id) { |
| (...skipping 265 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 791 frame_ = web_frame; | 801 frame_ = web_frame; |
| 792 } | 802 } |
| 793 | 803 |
| 794 void RenderFrameImpl::Initialize() { | 804 void RenderFrameImpl::Initialize() { |
| 795 is_main_frame_ = !frame_->parent(); | 805 is_main_frame_ = !frame_->parent(); |
| 796 is_local_root_ = is_main_frame_ || frame_->parent()->isWebRemoteFrame(); | 806 is_local_root_ = is_main_frame_ || frame_->parent()->isWebRemoteFrame(); |
| 797 | 807 |
| 798 bool is_tracing = false; | 808 bool is_tracing = false; |
| 799 TRACE_EVENT_CATEGORY_GROUP_ENABLED("navigation", &is_tracing); | 809 TRACE_EVENT_CATEGORY_GROUP_ENABLED("navigation", &is_tracing); |
| 800 if (is_tracing) { | 810 if (is_tracing) { |
| 801 int parent_id = MSG_ROUTING_NONE; | 811 int parent_id = GetRoutingIdForFrameOrProxy(frame_->parent()); |
| 802 if (!is_main_frame_) { | |
| 803 if (frame_->parent()->isWebRemoteFrame()) { | |
| 804 RenderFrameProxy* parent_proxy = RenderFrameProxy::FromWebFrame( | |
| 805 frame_->parent()); | |
| 806 if (parent_proxy) | |
| 807 parent_id = parent_proxy->routing_id(); | |
| 808 } else { | |
| 809 RenderFrameImpl* parent_frame = RenderFrameImpl::FromWebFrame( | |
| 810 frame_->parent()); | |
| 811 if (parent_frame) | |
| 812 parent_id = parent_frame->GetRoutingID(); | |
| 813 } | |
| 814 } | |
| 815 TRACE_EVENT2("navigation", "RenderFrameImpl::Initialize", | 812 TRACE_EVENT2("navigation", "RenderFrameImpl::Initialize", |
| 816 "id", routing_id_, | 813 "id", routing_id_, |
| 817 "parent", parent_id); | 814 "parent", parent_id); |
| 818 } | 815 } |
| 819 | 816 |
| 820 #if defined(ENABLE_PLUGINS) | 817 #if defined(ENABLE_PLUGINS) |
| 821 new PepperBrowserConnection(this); | 818 new PepperBrowserConnection(this); |
| 822 #endif | 819 #endif |
| 823 new SharedWorkerRepository(this); | 820 new SharedWorkerRepository(this); |
| 824 | 821 |
| (...skipping 1516 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2341 // updates are happening too frequently. | 2338 // updates are happening too frequently. |
| 2342 if (SiteIsolationPolicy::AreCrossProcessFramesPossible() || | 2339 if (SiteIsolationPolicy::AreCrossProcessFramesPossible() || |
| 2343 render_view_->renderer_preferences_.report_frame_name_changes) { | 2340 render_view_->renderer_preferences_.report_frame_name_changes) { |
| 2344 Send(new FrameHostMsg_DidChangeName( | 2341 Send(new FrameHostMsg_DidChangeName( |
| 2345 routing_id_, base::UTF16ToUTF8(base::StringPiece16(name)))); | 2342 routing_id_, base::UTF16ToUTF8(base::StringPiece16(name)))); |
| 2346 } | 2343 } |
| 2347 } | 2344 } |
| 2348 | 2345 |
| 2349 void RenderFrameImpl::didChangeSandboxFlags(blink::WebFrame* child_frame, | 2346 void RenderFrameImpl::didChangeSandboxFlags(blink::WebFrame* child_frame, |
| 2350 blink::WebSandboxFlags flags) { | 2347 blink::WebSandboxFlags flags) { |
| 2351 int frame_routing_id = MSG_ROUTING_NONE; | 2348 Send(new FrameHostMsg_DidChangeSandboxFlags( |
| 2352 if (child_frame->isWebRemoteFrame()) { | 2349 routing_id_, GetRoutingIdForFrameOrProxy(child_frame), flags)); |
| 2353 frame_routing_id = | |
| 2354 RenderFrameProxy::FromWebFrame(child_frame)->routing_id(); | |
| 2355 } else { | |
| 2356 frame_routing_id = | |
| 2357 RenderFrameImpl::FromWebFrame(child_frame)->GetRoutingID(); | |
| 2358 } | |
| 2359 | |
| 2360 Send(new FrameHostMsg_DidChangeSandboxFlags(routing_id_, frame_routing_id, | |
| 2361 flags)); | |
| 2362 } | 2350 } |
| 2363 | 2351 |
| 2364 void RenderFrameImpl::didMatchCSS( | 2352 void RenderFrameImpl::didMatchCSS( |
| 2365 blink::WebLocalFrame* frame, | 2353 blink::WebLocalFrame* frame, |
| 2366 const blink::WebVector<blink::WebString>& newly_matching_selectors, | 2354 const blink::WebVector<blink::WebString>& newly_matching_selectors, |
| 2367 const blink::WebVector<blink::WebString>& stopped_matching_selectors) { | 2355 const blink::WebVector<blink::WebString>& stopped_matching_selectors) { |
| 2368 DCHECK(!frame_ || frame_ == frame); | 2356 DCHECK(!frame_ || frame_ == frame); |
| 2369 | 2357 |
| 2370 FOR_EACH_OBSERVER(RenderFrameObserver, observers_, | 2358 FOR_EACH_OBSERVER(RenderFrameObserver, observers_, |
| 2371 DidMatchCSS(newly_matching_selectors, | 2359 DidMatchCSS(newly_matching_selectors, |
| (...skipping 967 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3339 ServiceWorkerNetworkProvider::FromDocumentState( | 3327 ServiceWorkerNetworkProvider::FromDocumentState( |
| 3340 DocumentState::FromDataSource(frame->dataSource())); | 3328 DocumentState::FromDataSource(frame->dataSource())); |
| 3341 provider_id = provider->provider_id(); | 3329 provider_id = provider->provider_id(); |
| 3342 // Explicitly set the SkipServiceWorker flag here if the renderer process | 3330 // Explicitly set the SkipServiceWorker flag here if the renderer process |
| 3343 // hasn't received SetControllerServiceWorker message. | 3331 // hasn't received SetControllerServiceWorker message. |
| 3344 if (!provider->IsControlledByServiceWorker()) | 3332 if (!provider->IsControlledByServiceWorker()) |
| 3345 request.setSkipServiceWorker(true); | 3333 request.setSkipServiceWorker(true); |
| 3346 } | 3334 } |
| 3347 | 3335 |
| 3348 WebFrame* parent = frame->parent(); | 3336 WebFrame* parent = frame->parent(); |
| 3349 int parent_routing_id = MSG_ROUTING_NONE; | 3337 int parent_routing_id = parent ? GetRoutingIdForFrameOrProxy(parent) : -1; |
| 3350 if (!parent) { | |
| 3351 parent_routing_id = -1; | |
| 3352 } else if (parent->isWebLocalFrame()) { | |
| 3353 parent_routing_id = FromWebFrame(parent)->GetRoutingID(); | |
| 3354 } else { | |
| 3355 parent_routing_id = RenderFrameProxy::FromWebFrame(parent)->routing_id(); | |
| 3356 } | |
| 3357 | 3338 |
| 3358 RequestExtraData* extra_data = new RequestExtraData(); | 3339 RequestExtraData* extra_data = new RequestExtraData(); |
| 3359 extra_data->set_visibility_state(render_view_->visibilityState()); | 3340 extra_data->set_visibility_state(render_view_->visibilityState()); |
| 3360 extra_data->set_custom_user_agent(custom_user_agent); | 3341 extra_data->set_custom_user_agent(custom_user_agent); |
| 3361 extra_data->set_requested_with(requested_with); | 3342 extra_data->set_requested_with(requested_with); |
| 3362 extra_data->set_render_frame_id(routing_id_); | 3343 extra_data->set_render_frame_id(routing_id_); |
| 3363 extra_data->set_is_main_frame(!parent); | 3344 extra_data->set_is_main_frame(!parent); |
| 3364 extra_data->set_frame_origin( | 3345 extra_data->set_frame_origin( |
| 3365 GURL(frame->document().securityOrigin().toString())); | 3346 GURL(frame->document().securityOrigin().toString())); |
| 3366 extra_data->set_parent_is_main_frame(parent && !parent->parent()); | 3347 extra_data->set_parent_is_main_frame(parent && !parent->parent()); |
| (...skipping 1807 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 5174 mojo::ServiceProviderPtr service_provider; | 5155 mojo::ServiceProviderPtr service_provider; |
| 5175 mojo::URLRequestPtr request(mojo::URLRequest::New()); | 5156 mojo::URLRequestPtr request(mojo::URLRequest::New()); |
| 5176 request->url = mojo::String::From(url); | 5157 request->url = mojo::String::From(url); |
| 5177 mojo_shell_->ConnectToApplication(request.Pass(), GetProxy(&service_provider), | 5158 mojo_shell_->ConnectToApplication(request.Pass(), GetProxy(&service_provider), |
| 5178 nullptr, nullptr, | 5159 nullptr, nullptr, |
| 5179 base::Bind(&OnGotContentHandlerID)); | 5160 base::Bind(&OnGotContentHandlerID)); |
| 5180 return service_provider.Pass(); | 5161 return service_provider.Pass(); |
| 5181 } | 5162 } |
| 5182 | 5163 |
| 5183 } // namespace content | 5164 } // namespace content |
| OLD | NEW |