| Index: content/renderer/render_frame_impl.cc
|
| diff --git a/content/renderer/render_frame_impl.cc b/content/renderer/render_frame_impl.cc
|
| index be10cdabedb523475f8ceb2fa2712d21fb2cadc2..5347e4df3f9c1b7cf3b3d07d283500f5d8ea7c25 100644
|
| --- a/content/renderer/render_frame_impl.cc
|
| +++ b/content/renderer/render_frame_impl.cc
|
| @@ -666,6 +666,7 @@ RenderFrameImpl::RenderFrameImpl(RenderViewImpl* render_view, int routing_id)
|
| #if defined(VIDEO_HOLE)
|
| contains_media_player_(false),
|
| #endif
|
| + devtools_agent_(nullptr),
|
| geolocation_dispatcher_(NULL),
|
| push_messaging_dispatcher_(NULL),
|
| presentation_dispatcher_(NULL),
|
| @@ -731,6 +732,12 @@ void RenderFrameImpl::Initialize() {
|
| if (!frame_->parent())
|
| new ImageLoadingHelper(this);
|
|
|
| + if (IsLocalRoot()) {
|
| + // DevToolsAgent is a RenderFrameObserver, and will destruct itself
|
| + // when |this| is deleted.
|
| + devtools_agent_ = new DevToolsAgent(this);
|
| + }
|
| +
|
| // We delay calling this until we have the WebFrame so that any observer or
|
| // embedder can call GetWebFrame on any RenderFrame.
|
| GetContentClient()->renderer()->RenderFrameCreated(this);
|
| @@ -3219,10 +3226,9 @@ void RenderFrameImpl::didFinishResourceLoad(blink::WebLocalFrame* frame,
|
| return;
|
|
|
| // Do not show error page when DevTools is attached.
|
| - if (render_view_->devtools_agent_ &&
|
| - render_view_->devtools_agent_->IsAttached()) {
|
| + // TODO(dgozman): we should check DevToolsAgent of the local frame root.
|
| + if (devtools_agent_ && devtools_agent_->IsAttached())
|
| return;
|
| - }
|
|
|
| // Display error page, if appropriate.
|
| std::string error_domain = "http";
|
| @@ -3651,6 +3657,13 @@ void RenderFrameImpl::RemoveObserver(RenderFrameObserver* observer) {
|
| observers_.RemoveObserver(observer);
|
| }
|
|
|
| +bool RenderFrameImpl::IsLocalRoot() {
|
| + DCHECK(frame_);
|
| + if (!frame_->parent())
|
| + return true;
|
| + return frame_->parent()->isWebRemoteFrame();
|
| +}
|
| +
|
| void RenderFrameImpl::OnStop() {
|
| DCHECK(frame_);
|
| frame_->stopLoading();
|
|
|