Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(142)

Unified Diff: components/copyless_paste/renderer/copyless_paste_agent.cc

Issue 2709893002: Add render frame observer for CopylessPaste (Closed)
Patch Set: Created 3 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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

Powered by Google App Engine
This is Rietveld 408576698