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

Unified Diff: components/dom_distiller/content/dom_distiller_viewer_source.cc

Issue 373623002: Convert remaining WebContentsObservers loading callbacks to use RFH. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fix CrOS test Created 6 years, 5 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/dom_distiller/content/dom_distiller_viewer_source.cc
diff --git a/components/dom_distiller/content/dom_distiller_viewer_source.cc b/components/dom_distiller/content/dom_distiller_viewer_source.cc
index 26c650266d3d6f5e0bde7c13e774c7cef8c9cf95..8f475cc52a951d3006b57e9faa9fa4da5cc9d7a2 100644
--- a/components/dom_distiller/content/dom_distiller_viewer_source.cc
+++ b/components/dom_distiller/content/dom_distiller_viewer_source.cc
@@ -55,11 +55,8 @@ class DomDistillerViewerSource::RequestViewerHandle
const content::FrameNavigateParams& params) OVERRIDE;
virtual void RenderProcessGone(base::TerminationStatus status) OVERRIDE;
virtual void WebContentsDestroyed() OVERRIDE;
- virtual void DidFinishLoad(
- int64 frame_id,
- const GURL& validated_url,
- bool is_main_frame,
- content::RenderViewHost* render_view_host) OVERRIDE;
+ virtual void DidFinishLoad(content::RenderFrameHost* render_frame_host,
+ const GURL& validated_url) OVERRIDE;
private:
// Sends JavaScript to the attached Viewer, buffering data if the viewer isn't
@@ -75,9 +72,6 @@ class DomDistillerViewerSource::RequestViewerHandle
// needs to be kept around to ensure the distillation request finishes.
scoped_ptr<ViewerHandle> viewer_handle_;
- // WebContents associated with the Viewer's render process.
- content::WebContents* web_contents_;
-
// The scheme hosting the current view request;
std::string expected_scheme_;
@@ -105,18 +99,15 @@ DomDistillerViewerSource::RequestViewerHandle::RequestViewerHandle(
const std::string& expected_scheme,
const std::string& expected_request_path,
const content::URLDataSource::GotDataCallback& callback)
- : web_contents_(web_contents),
- expected_scheme_(expected_scheme),
+ : expected_scheme_(expected_scheme),
expected_request_path_(expected_request_path),
callback_(callback),
page_count_(0),
waiting_for_page_ready_(true) {
- content::WebContentsObserver::Observe(web_contents_);
+ content::WebContentsObserver::Observe(web_contents);
}
DomDistillerViewerSource::RequestViewerHandle::~RequestViewerHandle() {
- // Balanced with constructor although can be a no-op if frame navigated away.
nyquist 2014/07/07 22:03:34 I wasn't aware that this was unnecessary. Thanks.
- content::WebContentsObserver::Observe(NULL);
}
void DomDistillerViewerSource::RequestViewerHandle::SendJavaScript(
@@ -124,8 +115,8 @@ void DomDistillerViewerSource::RequestViewerHandle::SendJavaScript(
if (waiting_for_page_ready_) {
buffer_ += buffer;
} else {
- if (web_contents_) {
- web_contents_->GetMainFrame()->ExecuteJavaScript(
+ if (web_contents()) {
+ web_contents()->GetMainFrame()->ExecuteJavaScript(
base::UTF8ToUTF16(buffer));
}
}
@@ -156,9 +147,6 @@ void DomDistillerViewerSource::RequestViewerHandle::WebContentsDestroyed() {
}
void DomDistillerViewerSource::RequestViewerHandle::Cancel() {
- // Ensure we don't send any incremental updates to the Viewer.
- web_contents_ = NULL;
-
// No need to listen for notifications.
content::WebContentsObserver::Observe(NULL);
@@ -168,21 +156,16 @@ void DomDistillerViewerSource::RequestViewerHandle::Cancel() {
}
void DomDistillerViewerSource::RequestViewerHandle::DidFinishLoad(
- int64 frame_id,
- const GURL& validated_url,
- bool is_main_frame,
- content::RenderViewHost* render_view_host) {
- if (!is_main_frame || web_contents_ == NULL) {
+ content::RenderFrameHost* render_frame_host,
+ const GURL& validated_url) {
+ if (render_frame_host->GetParent()) {
return;
}
waiting_for_page_ready_ = false;
if (buffer_.empty()) {
return;
}
- if (web_contents_) {
- web_contents_->GetMainFrame()->ExecuteJavaScript(
- base::UTF8ToUTF16(buffer_));
- }
+ web_contents()->GetMainFrame()->ExecuteJavaScript(base::UTF8ToUTF16(buffer_));
buffer_.clear();
}

Powered by Google App Engine
This is Rietveld 408576698