Chromium Code Reviews| 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 |