Chromium Code Reviews| 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 |