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" | |
121 #include "third_party/WebKit/public/web/WebGlyphCache.h" | 120 #include "third_party/WebKit/public/web/WebGlyphCache.h" |
122 #include "third_party/WebKit/public/web/WebLocalFrame.h" | 121 #include "third_party/WebKit/public/web/WebLocalFrame.h" |
123 #include "third_party/WebKit/public/web/WebMediaStreamRegistry.h" | 122 #include "third_party/WebKit/public/web/WebMediaStreamRegistry.h" |
124 #include "third_party/WebKit/public/web/WebNavigationPolicy.h" | 123 #include "third_party/WebKit/public/web/WebNavigationPolicy.h" |
125 #include "third_party/WebKit/public/web/WebPlugin.h" | 124 #include "third_party/WebKit/public/web/WebPlugin.h" |
126 #include "third_party/WebKit/public/web/WebPluginParams.h" | 125 #include "third_party/WebKit/public/web/WebPluginParams.h" |
127 #include "third_party/WebKit/public/web/WebPluginPlaceholder.h" | 126 #include "third_party/WebKit/public/web/WebPluginPlaceholder.h" |
128 #include "third_party/WebKit/public/web/WebRange.h" | 127 #include "third_party/WebKit/public/web/WebRange.h" |
129 #include "third_party/WebKit/public/web/WebScriptSource.h" | 128 #include "third_party/WebKit/public/web/WebScriptSource.h" |
130 #include "third_party/WebKit/public/web/WebSearchableFormData.h" | 129 #include "third_party/WebKit/public/web/WebSearchableFormData.h" |
(...skipping 414 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
545 if (iter != g_routing_id_frame_map.Get().end()) | 544 if (iter != g_routing_id_frame_map.Get().end()) |
546 return iter->second; | 545 return iter->second; |
547 return NULL; | 546 return NULL; |
548 } | 547 } |
549 | 548 |
550 // static | 549 // static |
551 void RenderFrameImpl::CreateFrame( | 550 void RenderFrameImpl::CreateFrame( |
552 int routing_id, | 551 int routing_id, |
553 int parent_routing_id, | 552 int parent_routing_id, |
554 int proxy_routing_id, | 553 int proxy_routing_id, |
555 const FrameReplicationState& replicated_state, | 554 const FrameReplicationState& replicated_state) { |
556 CompositorDependencies* compositor_deps, | |
557 const FrameMsg_NewFrame_WidgetParams& widget_params) { | |
558 // TODO(nasko): For now, this message is only sent for subframes, as the | 555 // TODO(nasko): For now, this message is only sent for subframes, as the |
559 // top level frame is created when the RenderView is created through the | 556 // top level frame is created when the RenderView is created through the |
560 // ViewMsg_New IPC. | 557 // ViewMsg_New IPC. |
561 CHECK_NE(MSG_ROUTING_NONE, parent_routing_id); | 558 CHECK_NE(MSG_ROUTING_NONE, parent_routing_id); |
562 | 559 |
563 blink::WebLocalFrame* web_frame; | 560 blink::WebLocalFrame* web_frame; |
564 RenderFrameImpl* render_frame; | 561 RenderFrameImpl* render_frame; |
565 if (proxy_routing_id == MSG_ROUTING_NONE) { | 562 if (proxy_routing_id == MSG_ROUTING_NONE) { |
566 RenderFrameProxy* parent_proxy = | 563 RenderFrameProxy* parent_proxy = |
567 RenderFrameProxy::FromRoutingID(parent_routing_id); | 564 RenderFrameProxy::FromRoutingID(parent_routing_id); |
(...skipping 11 matching lines...) Expand all Loading... |
579 } else { | 576 } else { |
580 RenderFrameProxy* proxy = | 577 RenderFrameProxy* proxy = |
581 RenderFrameProxy::FromRoutingID(proxy_routing_id); | 578 RenderFrameProxy::FromRoutingID(proxy_routing_id); |
582 CHECK(proxy); | 579 CHECK(proxy); |
583 render_frame = RenderFrameImpl::Create(proxy->render_view(), routing_id); | 580 render_frame = RenderFrameImpl::Create(proxy->render_view(), routing_id); |
584 web_frame = blink::WebLocalFrame::create(render_frame); | 581 web_frame = blink::WebLocalFrame::create(render_frame); |
585 render_frame->proxy_routing_id_ = proxy_routing_id; | 582 render_frame->proxy_routing_id_ = proxy_routing_id; |
586 web_frame->initializeToReplaceRemoteFrame(proxy->web_frame()); | 583 web_frame->initializeToReplaceRemoteFrame(proxy->web_frame()); |
587 } | 584 } |
588 render_frame->SetWebFrame(web_frame); | 585 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 | |
603 render_frame->Initialize(); | 586 render_frame->Initialize(); |
604 } | 587 } |
605 | 588 |
606 // static | 589 // static |
607 RenderFrame* RenderFrame::FromWebFrame(blink::WebFrame* web_frame) { | 590 RenderFrame* RenderFrame::FromWebFrame(blink::WebFrame* web_frame) { |
608 return RenderFrameImpl::FromWebFrame(web_frame); | 591 return RenderFrameImpl::FromWebFrame(web_frame); |
609 } | 592 } |
610 | 593 |
611 // static | 594 // static |
612 RenderFrameImpl* RenderFrameImpl::FromWebFrame(blink::WebFrame* web_frame) { | 595 RenderFrameImpl* RenderFrameImpl::FromWebFrame(blink::WebFrame* web_frame) { |
(...skipping 2963 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3576 FOR_EACH_OBSERVER(RenderViewObserver, render_view_->observers_, OnStop()); | 3559 FOR_EACH_OBSERVER(RenderViewObserver, render_view_->observers_, OnStop()); |
3577 | 3560 |
3578 FOR_EACH_OBSERVER(RenderFrameObserver, observers_, OnStop()); | 3561 FOR_EACH_OBSERVER(RenderFrameObserver, observers_, OnStop()); |
3579 } | 3562 } |
3580 | 3563 |
3581 void RenderFrameImpl::WasHidden() { | 3564 void RenderFrameImpl::WasHidden() { |
3582 FOR_EACH_OBSERVER(RenderFrameObserver, observers_, WasHidden()); | 3565 FOR_EACH_OBSERVER(RenderFrameObserver, observers_, WasHidden()); |
3583 } | 3566 } |
3584 | 3567 |
3585 void RenderFrameImpl::WasShown() { | 3568 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 } | |
3593 FOR_EACH_OBSERVER(RenderFrameObserver, observers_, WasShown()); | 3569 FOR_EACH_OBSERVER(RenderFrameObserver, observers_, WasShown()); |
3594 } | 3570 } |
3595 | 3571 |
3596 bool RenderFrameImpl::IsHidden() { | 3572 bool RenderFrameImpl::IsHidden() { |
3597 return GetRenderWidget()->is_hidden(); | 3573 return GetRenderWidget()->is_hidden(); |
3598 } | 3574 } |
3599 | 3575 |
3600 // Tell the embedding application that the URL of the active page has changed. | 3576 // Tell the embedding application that the URL of the active page has changed. |
3601 void RenderFrameImpl::SendDidCommitProvisionalLoad(blink::WebFrame* frame) { | 3577 void RenderFrameImpl::SendDidCommitProvisionalLoad(blink::WebFrame* frame) { |
3602 DCHECK(!frame_ || frame_ == frame); | 3578 DCHECK(!frame_ || frame_ == frame); |
(...skipping 812 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4415 | 4391 |
4416 #if defined(ENABLE_BROWSER_CDMS) | 4392 #if defined(ENABLE_BROWSER_CDMS) |
4417 RendererCdmManager* RenderFrameImpl::GetCdmManager() { | 4393 RendererCdmManager* RenderFrameImpl::GetCdmManager() { |
4418 if (!cdm_manager_) | 4394 if (!cdm_manager_) |
4419 cdm_manager_ = new RendererCdmManager(this); | 4395 cdm_manager_ = new RendererCdmManager(this); |
4420 return cdm_manager_; | 4396 return cdm_manager_; |
4421 } | 4397 } |
4422 #endif // defined(ENABLE_BROWSER_CDMS) | 4398 #endif // defined(ENABLE_BROWSER_CDMS) |
4423 | 4399 |
4424 } // namespace content | 4400 } // namespace content |
OLD | NEW |