Chromium Code Reviews| Index: content/renderer/render_frame_blame_context.cc |
| diff --git a/content/renderer/render_frame_blame_context.cc b/content/renderer/render_frame_blame_context.cc |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..fe8594f3a9d4c399d75bd3efb915102d5dd0c8ea |
| --- /dev/null |
| +++ b/content/renderer/render_frame_blame_context.cc |
| @@ -0,0 +1,55 @@ |
| +// Copyright 2016 The Chromium Authors. All rights reserved. |
| +// Use of this source code is governed by a BSD-style license that can be |
| +// found in the LICENSE file. |
| + |
| +#include "content/renderer/render_frame_blame_context.h" |
| + |
| +#include "base/trace_event/trace_event_argument.h" |
| +#include "content/renderer/render_frame_impl.h" |
| +#include "content/renderer/render_thread_blame_context.h" |
| +#include "content/renderer/render_thread_impl.h" |
| +#include "third_party/WebKit/public/web/WebLocalFrame.h" |
| + |
| +namespace content { |
| +namespace { |
| + |
| +base::trace_event::BlameContext* GetParentBlameContext( |
| + RenderFrame* render_frame) { |
| + blink::WebLocalFrame* web_frame = render_frame->GetWebFrame(); |
| + if (web_frame->parent()) { |
| + return RenderFrameImpl::FromWebFrame(web_frame->parent()) |
| + ->frameBlameContext(); |
| + } |
| + return RenderThreadImpl::current()->blame_context(); |
| +} |
| + |
| +} // namespace |
| + |
| +const char kRenderFrameBlameContextCategory[] = "blink"; |
| +const char kRenderFrameBlameContextName[] = "FrameBlameContext"; |
| +const char kRenderFrameBlameContextType[] = "RenderFrame"; |
| +const char kRenderFrameBlameContextScope[] = "RenderFrame"; |
| + |
| +RenderFrameBlameContext::RenderFrameBlameContext(RenderFrameImpl* render_frame) |
| + : base::trace_event::BlameContext(kRenderFrameBlameContextCategory, |
| + kRenderFrameBlameContextName, |
| + kRenderFrameBlameContextType, |
| + kRenderFrameBlameContextScope, |
| + render_frame->GetRoutingID(), |
| + GetParentBlameContext(render_frame)), |
| + RenderFrameObserver(render_frame) {} |
| + |
| +RenderFrameBlameContext::~RenderFrameBlameContext() {} |
| + |
| +void RenderFrameBlameContext::DidCreateNewDocument() { |
| + url_ = render_frame()->GetWebFrame()->getSecurityOrigin().toString().utf8(); |
|
esprehn
2016/03/25 03:33:22
ouch, this is putting even more code in content. I
|
| + TakeSnapshot(); |
| +} |
| + |
| +void RenderFrameBlameContext::AsValueInto( |
| + base::trace_event::TracedValue* state) { |
| + base::trace_event::BlameContext::AsValueInto(state); |
| + state->SetString("url", url_); |
|
esprehn
2016/03/25 03:33:22
yeah this doesn't belong in content.
|
| +} |
| + |
| +} // namespace content |