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 |