1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 #include "components/dom_distiller/content/web_contents_main_frame_observer.h"
7 #include "content/public/browser/navigation_details.h"
8 #include "content/public/browser/render_frame_host.h"
9 #include "content/public/browser/web_contents.h"
10 #include "content/public/browser/web_contents_observer.h"
11 #include "content/public/browser/web_contents_user_data.h"
13 DEFINE_WEB_CONTENTS_USER_DATA_KEY(dom_distiller::WebContentsMainFrameObserver
);
15 namespace dom_distiller
{
17 WebContentsMainFrameObserver::WebContentsMainFrameObserver(
18 content::WebContents
* web_contents
)
19 : is_document_loaded_in_main_frame_(false),
20 is_initialized_(false),
21 web_contents_(web_contents
) {
22 content::WebContentsObserver::Observe(web_contents
);
25 WebContentsMainFrameObserver::~WebContentsMainFrameObserver() {
29 void WebContentsMainFrameObserver::DocumentLoadedInFrame(
31 content::RenderViewHost
* render_view_host
) {
33 frame_id
== web_contents_
->GetMainFrame()->GetRoutingID()) {
34 is_document_loaded_in_main_frame_
= true;
38 void WebContentsMainFrameObserver::DidNavigateMainFrame(
39 const content::LoadCommittedDetails
& details
,
40 const content::FrameNavigateParams
& params
) {
41 if (details
.is_main_frame
) {
42 is_document_loaded_in_main_frame_
= false;
43 is_initialized_
= true;
47 void WebContentsMainFrameObserver::RenderProcessGone(
48 base::TerminationStatus status
) {
52 void WebContentsMainFrameObserver::WebContentsDestroyed() {
56 void WebContentsMainFrameObserver::CleanUp() {
57 content::WebContentsObserver::Observe(NULL
);
61 } // namespace dom_distiller