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 585 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
596 widget_params.routing_id, widget_params.surface_id, | 596 widget_params.routing_id, widget_params.surface_id, |
597 widget_params.hidden, render_frame->render_view_->screen_info(), | 597 widget_params.hidden, render_frame->render_view_->screen_info(), |
598 compositor_deps, web_frame); | 598 compositor_deps, web_frame); |
599 // TODO(kenrb): Observing shouldn't be necessary when we sort out | 599 // TODO(kenrb): Observing shouldn't be necessary when we sort out |
600 // WasShown and WasHidden, separating page-level visibility from | 600 // WasShown and WasHidden, separating page-level visibility from |
601 // frame-level visibility. | 601 // frame-level visibility. |
602 render_frame->render_widget_->RegisterRenderFrame(render_frame); | 602 render_frame->render_widget_->RegisterRenderFrame(render_frame); |
603 } | 603 } |
604 | 604 |
605 render_frame->Initialize(); | 605 render_frame->Initialize(); |
606 // TODO(dgozman): this should actually be in RenderFrameImpl::Initialize, | |
607 // but we have to somehow differentiate local frame root there. | |
608 if (proxy_routing_id == MSG_ROUTING_NONE) | |
nasko
2015/03/24 16:17:07
While this might work, it is a very fragile way to
Charlie Reis
2015/03/24 17:25:13
+1
For comparison, we have a IsCrossProcessSubfra
| |
609 render_frame->CreateDevToolsAgent(); | |
606 } | 610 } |
607 | 611 |
608 // static | 612 // static |
609 RenderFrame* RenderFrame::FromWebFrame(blink::WebFrame* web_frame) { | 613 RenderFrame* RenderFrame::FromWebFrame(blink::WebFrame* web_frame) { |
610 return RenderFrameImpl::FromWebFrame(web_frame); | 614 return RenderFrameImpl::FromWebFrame(web_frame); |
611 } | 615 } |
612 | 616 |
613 // static | 617 // static |
614 RenderFrameImpl* RenderFrameImpl::FromWebFrame(blink::WebFrame* web_frame) { | 618 RenderFrameImpl* RenderFrameImpl::FromWebFrame(blink::WebFrame* web_frame) { |
615 FrameMap::iterator iter = g_frame_map.Get().find(web_frame); | 619 FrameMap::iterator iter = g_frame_map.Get().find(web_frame); |
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
659 midi_dispatcher_(NULL), | 663 midi_dispatcher_(NULL), |
660 #if defined(OS_ANDROID) | 664 #if defined(OS_ANDROID) |
661 media_player_manager_(NULL), | 665 media_player_manager_(NULL), |
662 #endif | 666 #endif |
663 #if defined(ENABLE_BROWSER_CDMS) | 667 #if defined(ENABLE_BROWSER_CDMS) |
664 cdm_manager_(NULL), | 668 cdm_manager_(NULL), |
665 #endif | 669 #endif |
666 #if defined(VIDEO_HOLE) | 670 #if defined(VIDEO_HOLE) |
667 contains_media_player_(false), | 671 contains_media_player_(false), |
668 #endif | 672 #endif |
673 devtools_agent_(nullptr), | |
669 geolocation_dispatcher_(NULL), | 674 geolocation_dispatcher_(NULL), |
670 push_messaging_dispatcher_(NULL), | 675 push_messaging_dispatcher_(NULL), |
671 presentation_dispatcher_(NULL), | 676 presentation_dispatcher_(NULL), |
672 screen_orientation_dispatcher_(NULL), | 677 screen_orientation_dispatcher_(NULL), |
673 manifest_manager_(NULL), | 678 manifest_manager_(NULL), |
674 accessibility_mode_(AccessibilityModeOff), | 679 accessibility_mode_(AccessibilityModeOff), |
675 renderer_accessibility_(NULL), | 680 renderer_accessibility_(NULL), |
676 weak_factory_(this) { | 681 weak_factory_(this) { |
677 std::pair<RoutingIDFrameMap::iterator, bool> result = | 682 std::pair<RoutingIDFrameMap::iterator, bool> result = |
678 g_routing_id_frame_map.Get().insert(std::make_pair(routing_id_, this)); | 683 g_routing_id_frame_map.Get().insert(std::make_pair(routing_id_, this)); |
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
729 new SharedWorkerRepository(this); | 734 new SharedWorkerRepository(this); |
730 | 735 |
731 if (!frame_->parent()) | 736 if (!frame_->parent()) |
732 new ImageLoadingHelper(this); | 737 new ImageLoadingHelper(this); |
733 | 738 |
734 // We delay calling this until we have the WebFrame so that any observer or | 739 // We delay calling this until we have the WebFrame so that any observer or |
735 // embedder can call GetWebFrame on any RenderFrame. | 740 // embedder can call GetWebFrame on any RenderFrame. |
736 GetContentClient()->renderer()->RenderFrameCreated(this); | 741 GetContentClient()->renderer()->RenderFrameCreated(this); |
737 } | 742 } |
738 | 743 |
744 void RenderFrameImpl::CreateDevToolsAgent() { | |
745 // We should only create DevToolsAgent for local frame roots. | |
746 devtools_agent_ = new DevToolsAgent(this); | |
747 } | |
748 | |
739 RenderWidget* RenderFrameImpl::GetRenderWidget() { | 749 RenderWidget* RenderFrameImpl::GetRenderWidget() { |
740 return render_view_.get(); | 750 return render_view_.get(); |
741 } | 751 } |
742 | 752 |
743 #if defined(ENABLE_PLUGINS) | 753 #if defined(ENABLE_PLUGINS) |
744 void RenderFrameImpl::PepperPluginCreated(RendererPpapiHost* host) { | 754 void RenderFrameImpl::PepperPluginCreated(RendererPpapiHost* host) { |
745 FOR_EACH_OBSERVER(RenderFrameObserver, observers_, | 755 FOR_EACH_OBSERVER(RenderFrameObserver, observers_, |
746 DidCreatePepperPlugin(host)); | 756 DidCreatePepperPlugin(host)); |
747 if (host->GetPluginName() == kFlashPluginName) { | 757 if (host->GetPluginName() == kFlashPluginName) { |
748 RenderThread::Get()->RecordAction( | 758 RenderThread::Get()->RecordAction( |
(...skipping 2465 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
3214 | 3224 |
3215 void RenderFrameImpl::didFinishResourceLoad(blink::WebLocalFrame* frame, | 3225 void RenderFrameImpl::didFinishResourceLoad(blink::WebLocalFrame* frame, |
3216 unsigned identifier) { | 3226 unsigned identifier) { |
3217 DCHECK(!frame_ || frame_ == frame); | 3227 DCHECK(!frame_ || frame_ == frame); |
3218 InternalDocumentStateData* internal_data = | 3228 InternalDocumentStateData* internal_data = |
3219 InternalDocumentStateData::FromDataSource(frame->dataSource()); | 3229 InternalDocumentStateData::FromDataSource(frame->dataSource()); |
3220 if (!internal_data->use_error_page()) | 3230 if (!internal_data->use_error_page()) |
3221 return; | 3231 return; |
3222 | 3232 |
3223 // Do not show error page when DevTools is attached. | 3233 // Do not show error page when DevTools is attached. |
3224 if (render_view_->devtools_agent_ && | 3234 // TODO(dgozman): here we should really check DevToolsAgent of local frame |
3225 render_view_->devtools_agent_->IsAttached()) { | 3235 // root. How? |
3236 if (devtools_agent_ && devtools_agent_->IsAttached()) | |
3226 return; | 3237 return; |
3227 } | |
3228 | 3238 |
3229 // Display error page, if appropriate. | 3239 // Display error page, if appropriate. |
3230 std::string error_domain = "http"; | 3240 std::string error_domain = "http"; |
3231 int http_status_code = internal_data->http_status_code(); | 3241 int http_status_code = internal_data->http_status_code(); |
3232 if (GetContentClient()->renderer()->HasErrorPage( | 3242 if (GetContentClient()->renderer()->HasErrorPage( |
3233 http_status_code, &error_domain)) { | 3243 http_status_code, &error_domain)) { |
3234 WebURLError error; | 3244 WebURLError error; |
3235 error.unreachableURL = frame->document().url(); | 3245 error.unreachableURL = frame->document().url(); |
3236 error.domain = WebString::fromUTF8(error_domain); | 3246 error.domain = WebString::fromUTF8(error_domain); |
3237 error.reason = http_status_code; | 3247 error.reason = http_status_code; |
(...skipping 1303 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
4541 | 4551 |
4542 #if defined(ENABLE_BROWSER_CDMS) | 4552 #if defined(ENABLE_BROWSER_CDMS) |
4543 RendererCdmManager* RenderFrameImpl::GetCdmManager() { | 4553 RendererCdmManager* RenderFrameImpl::GetCdmManager() { |
4544 if (!cdm_manager_) | 4554 if (!cdm_manager_) |
4545 cdm_manager_ = new RendererCdmManager(this); | 4555 cdm_manager_ = new RendererCdmManager(this); |
4546 return cdm_manager_; | 4556 return cdm_manager_; |
4547 } | 4557 } |
4548 #endif // defined(ENABLE_BROWSER_CDMS) | 4558 #endif // defined(ENABLE_BROWSER_CDMS) |
4549 | 4559 |
4550 } // namespace content | 4560 } // namespace content |
OLD | NEW |