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 99 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
110 #include "net/base/registry_controlled_domains/registry_controlled_domain.h" | 110 #include "net/base/registry_controlled_domains/registry_controlled_domain.h" |
111 #include "net/http/http_util.h" | 111 #include "net/http/http_util.h" |
112 #include "third_party/WebKit/public/platform/WebStorageQuotaCallbacks.h" | 112 #include "third_party/WebKit/public/platform/WebStorageQuotaCallbacks.h" |
113 #include "third_party/WebKit/public/platform/WebString.h" | 113 #include "third_party/WebKit/public/platform/WebString.h" |
114 #include "third_party/WebKit/public/platform/WebURL.h" | 114 #include "third_party/WebKit/public/platform/WebURL.h" |
115 #include "third_party/WebKit/public/platform/WebURLError.h" | 115 #include "third_party/WebKit/public/platform/WebURLError.h" |
116 #include "third_party/WebKit/public/platform/WebURLResponse.h" | 116 #include "third_party/WebKit/public/platform/WebURLResponse.h" |
117 #include "third_party/WebKit/public/platform/WebVector.h" | 117 #include "third_party/WebKit/public/platform/WebVector.h" |
118 #include "third_party/WebKit/public/web/WebColorSuggestion.h" | 118 #include "third_party/WebKit/public/web/WebColorSuggestion.h" |
119 #include "third_party/WebKit/public/web/WebDocument.h" | 119 #include "third_party/WebKit/public/web/WebDocument.h" |
| 120 #include "third_party/WebKit/public/web/WebFrameWidget.h" |
120 #include "third_party/WebKit/public/web/WebGlyphCache.h" | 121 #include "third_party/WebKit/public/web/WebGlyphCache.h" |
121 #include "third_party/WebKit/public/web/WebLocalFrame.h" | 122 #include "third_party/WebKit/public/web/WebLocalFrame.h" |
122 #include "third_party/WebKit/public/web/WebMediaStreamRegistry.h" | 123 #include "third_party/WebKit/public/web/WebMediaStreamRegistry.h" |
123 #include "third_party/WebKit/public/web/WebNavigationPolicy.h" | 124 #include "third_party/WebKit/public/web/WebNavigationPolicy.h" |
124 #include "third_party/WebKit/public/web/WebPlugin.h" | 125 #include "third_party/WebKit/public/web/WebPlugin.h" |
125 #include "third_party/WebKit/public/web/WebPluginParams.h" | 126 #include "third_party/WebKit/public/web/WebPluginParams.h" |
126 #include "third_party/WebKit/public/web/WebPluginPlaceholder.h" | 127 #include "third_party/WebKit/public/web/WebPluginPlaceholder.h" |
127 #include "third_party/WebKit/public/web/WebRange.h" | 128 #include "third_party/WebKit/public/web/WebRange.h" |
128 #include "third_party/WebKit/public/web/WebScriptSource.h" | 129 #include "third_party/WebKit/public/web/WebScriptSource.h" |
129 #include "third_party/WebKit/public/web/WebSearchableFormData.h" | 130 #include "third_party/WebKit/public/web/WebSearchableFormData.h" |
(...skipping 414 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
544 if (iter != g_routing_id_frame_map.Get().end()) | 545 if (iter != g_routing_id_frame_map.Get().end()) |
545 return iter->second; | 546 return iter->second; |
546 return NULL; | 547 return NULL; |
547 } | 548 } |
548 | 549 |
549 // static | 550 // static |
550 void RenderFrameImpl::CreateFrame( | 551 void RenderFrameImpl::CreateFrame( |
551 int routing_id, | 552 int routing_id, |
552 int parent_routing_id, | 553 int parent_routing_id, |
553 int proxy_routing_id, | 554 int proxy_routing_id, |
554 const FrameReplicationState& replicated_state) { | 555 const FrameReplicationState& replicated_state, |
| 556 CompositorDependencies* compositor_deps, |
| 557 const FrameMsg_NewFrame_WidgetParams& widget_params) { |
555 // TODO(nasko): For now, this message is only sent for subframes, as the | 558 // TODO(nasko): For now, this message is only sent for subframes, as the |
556 // top level frame is created when the RenderView is created through the | 559 // top level frame is created when the RenderView is created through the |
557 // ViewMsg_New IPC. | 560 // ViewMsg_New IPC. |
558 CHECK_NE(MSG_ROUTING_NONE, parent_routing_id); | 561 CHECK_NE(MSG_ROUTING_NONE, parent_routing_id); |
559 | 562 |
560 blink::WebLocalFrame* web_frame; | 563 blink::WebLocalFrame* web_frame; |
561 RenderFrameImpl* render_frame; | 564 RenderFrameImpl* render_frame; |
562 if (proxy_routing_id == MSG_ROUTING_NONE) { | 565 if (proxy_routing_id == MSG_ROUTING_NONE) { |
563 RenderFrameProxy* parent_proxy = | 566 RenderFrameProxy* parent_proxy = |
564 RenderFrameProxy::FromRoutingID(parent_routing_id); | 567 RenderFrameProxy::FromRoutingID(parent_routing_id); |
(...skipping 11 matching lines...) Expand all Loading... |
576 } else { | 579 } else { |
577 RenderFrameProxy* proxy = | 580 RenderFrameProxy* proxy = |
578 RenderFrameProxy::FromRoutingID(proxy_routing_id); | 581 RenderFrameProxy::FromRoutingID(proxy_routing_id); |
579 CHECK(proxy); | 582 CHECK(proxy); |
580 render_frame = RenderFrameImpl::Create(proxy->render_view(), routing_id); | 583 render_frame = RenderFrameImpl::Create(proxy->render_view(), routing_id); |
581 web_frame = blink::WebLocalFrame::create(render_frame); | 584 web_frame = blink::WebLocalFrame::create(render_frame); |
582 render_frame->proxy_routing_id_ = proxy_routing_id; | 585 render_frame->proxy_routing_id_ = proxy_routing_id; |
583 web_frame->initializeToReplaceRemoteFrame(proxy->web_frame()); | 586 web_frame->initializeToReplaceRemoteFrame(proxy->web_frame()); |
584 } | 587 } |
585 render_frame->SetWebFrame(web_frame); | 588 render_frame->SetWebFrame(web_frame); |
| 589 |
| 590 if (widget_params.routing_id != MSG_ROUTING_NONE) { |
| 591 CHECK(base::CommandLine::ForCurrentProcess()->HasSwitch( |
| 592 switches::kSitePerProcess)); |
| 593 render_frame->render_widget_ = RenderWidget::CreateForFrame( |
| 594 widget_params.routing_id, widget_params.surface_id, |
| 595 widget_params.hidden, render_frame->render_view_->screen_info(), |
| 596 compositor_deps, web_frame); |
| 597 // TODO(kenrb): Observing shouldn't be necessary when we sort out |
| 598 // WasShown and WasHidden, separating page-level visibility from |
| 599 // frame-level visibility. |
| 600 render_frame->render_widget_->RegisterRenderFrame(render_frame); |
| 601 } |
| 602 |
586 render_frame->Initialize(); | 603 render_frame->Initialize(); |
587 } | 604 } |
588 | 605 |
589 // static | 606 // static |
590 RenderFrame* RenderFrame::FromWebFrame(blink::WebFrame* web_frame) { | 607 RenderFrame* RenderFrame::FromWebFrame(blink::WebFrame* web_frame) { |
591 return RenderFrameImpl::FromWebFrame(web_frame); | 608 return RenderFrameImpl::FromWebFrame(web_frame); |
592 } | 609 } |
593 | 610 |
594 // static | 611 // static |
595 RenderFrameImpl* RenderFrameImpl::FromWebFrame(blink::WebFrame* web_frame) { | 612 RenderFrameImpl* RenderFrameImpl::FromWebFrame(blink::WebFrame* web_frame) { |
(...skipping 2963 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3559 FOR_EACH_OBSERVER(RenderViewObserver, render_view_->observers_, OnStop()); | 3576 FOR_EACH_OBSERVER(RenderViewObserver, render_view_->observers_, OnStop()); |
3560 | 3577 |
3561 FOR_EACH_OBSERVER(RenderFrameObserver, observers_, OnStop()); | 3578 FOR_EACH_OBSERVER(RenderFrameObserver, observers_, OnStop()); |
3562 } | 3579 } |
3563 | 3580 |
3564 void RenderFrameImpl::WasHidden() { | 3581 void RenderFrameImpl::WasHidden() { |
3565 FOR_EACH_OBSERVER(RenderFrameObserver, observers_, WasHidden()); | 3582 FOR_EACH_OBSERVER(RenderFrameObserver, observers_, WasHidden()); |
3566 } | 3583 } |
3567 | 3584 |
3568 void RenderFrameImpl::WasShown() { | 3585 void RenderFrameImpl::WasShown() { |
| 3586 // TODO(kenrb): Need to figure out how to do this better. Should |
| 3587 // VisibilityState remain a page-level concept or move to frames? |
| 3588 // The semantics of 'Show' might have to change here. |
| 3589 if (render_widget_) { |
| 3590 render_view()->webview()->setVisibilityState( |
| 3591 blink::WebPageVisibilityStateVisible, false); |
| 3592 } |
3569 FOR_EACH_OBSERVER(RenderFrameObserver, observers_, WasShown()); | 3593 FOR_EACH_OBSERVER(RenderFrameObserver, observers_, WasShown()); |
3570 } | 3594 } |
3571 | 3595 |
3572 bool RenderFrameImpl::IsHidden() { | 3596 bool RenderFrameImpl::IsHidden() { |
3573 return GetRenderWidget()->is_hidden(); | 3597 return GetRenderWidget()->is_hidden(); |
3574 } | 3598 } |
3575 | 3599 |
3576 // Tell the embedding application that the URL of the active page has changed. | 3600 // Tell the embedding application that the URL of the active page has changed. |
3577 void RenderFrameImpl::SendDidCommitProvisionalLoad(blink::WebFrame* frame) { | 3601 void RenderFrameImpl::SendDidCommitProvisionalLoad(blink::WebFrame* frame) { |
3578 DCHECK(!frame_ || frame_ == frame); | 3602 DCHECK(!frame_ || frame_ == frame); |
(...skipping 812 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4391 | 4415 |
4392 #if defined(ENABLE_BROWSER_CDMS) | 4416 #if defined(ENABLE_BROWSER_CDMS) |
4393 RendererCdmManager* RenderFrameImpl::GetCdmManager() { | 4417 RendererCdmManager* RenderFrameImpl::GetCdmManager() { |
4394 if (!cdm_manager_) | 4418 if (!cdm_manager_) |
4395 cdm_manager_ = new RendererCdmManager(this); | 4419 cdm_manager_ = new RendererCdmManager(this); |
4396 return cdm_manager_; | 4420 return cdm_manager_; |
4397 } | 4421 } |
4398 #endif // defined(ENABLE_BROWSER_CDMS) | 4422 #endif // defined(ENABLE_BROWSER_CDMS) |
4399 | 4423 |
4400 } // namespace content | 4424 } // namespace content |
OLD | NEW |