Index: components/copyless_paste/renderer/copyless_paste_agent.cc |
diff --git a/components/copyless_paste/renderer/copyless_paste_agent.cc b/components/copyless_paste/renderer/copyless_paste_agent.cc |
new file mode 100644 |
index 0000000000000000000000000000000000000000..c79daa94be107a278eb5658e98b49663a9cb6ccb |
--- /dev/null |
+++ b/components/copyless_paste/renderer/copyless_paste_agent.cc |
@@ -0,0 +1,42 @@ |
+// Copyright 2017 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 "components/copyless_paste/renderer/copyless_paste_agent.h" |
+ |
+#include "content/public/renderer/render_frame.h" |
+#include "third_party/WebKit/public/web/WebDocument.h" |
+#include "third_party/WebKit/public/web/WebElement.h" |
+#include "third_party/WebKit/public/web/WebLocalFrame.h" |
+ |
+namespace copyless_paste { |
+ |
+using namespace blink; |
dcheng
2017/04/02 05:50:34
Nit: forbidden by the Google C++ style guide
|
+ |
+CopylessPasteAgent::CopylessPasteAgent(content::RenderFrame* render_frame) |
+ : RenderFrameObserver(render_frame) {} |
+ |
+void CopylessPasteAgent::DidMeaningfulLayout(WebMeaningfulLayout layout_type) { |
+ if (layout_type != WebMeaningfulLayout::FinishedParsing) { |
+ return; |
+ } |
+ DCHECK(render_frame()); |
+ if (!render_frame()->IsMainFrame()) |
dcheng
2017/04/02 05:50:34
Nit: we should just not install a RFO for a non-ma
|
+ return; |
+ DCHECK(render_frame()->GetWebFrame()); |
+ WebDocument doc = render_frame()->GetWebFrame()->document(); |
+ if (doc.isNull() || doc.body().isNull()) |
dcheng
2017/04/02 05:50:34
If we're attached, WebDocument should never be nul
|
+ return; |
+ if (!GURL(doc.url()).SchemeIsHTTPOrHTTPS()) |
+ return; |
+ |
+ doc.extractMetadata(); |
+} |
+ |
+CopylessPasteAgent::~CopylessPasteAgent() {} |
+ |
+void CopylessPasteAgent::OnDestruct() { |
+ delete this; |
+} |
+ |
+} // namespace copyless_paste |