Index: components/html_viewer/html_document.h |
diff --git a/components/html_viewer/html_document.h b/components/html_viewer/html_document.h |
index 926e503cfcbdad67da868f85cb1c7d4ff084e2a3..ce5825454a7098f63a295d81a0eb556831bb917e 100644 |
--- a/components/html_viewer/html_document.h |
+++ b/components/html_viewer/html_document.h |
@@ -9,6 +9,7 @@ |
#include "base/callback.h" |
#include "base/macros.h" |
+#include "base/observer_list.h" |
#include "components/html_viewer/ax_provider_impl.h" |
#include "components/html_viewer/touch_handler.h" |
#include "components/view_manager/public/cpp/view_manager_client_factory.h" |
@@ -41,6 +42,7 @@ class AxProviderImpl; |
class DevToolsAgentImpl; |
class GeolocationClientImpl; |
class GlobalState; |
+class StatsCollectionController; |
class WebLayerTreeViewImpl; |
// A view for a single HTML document. |
@@ -71,6 +73,18 @@ class HTMLDocument : public blink::WebViewClient, |
DeleteCallback delete_callback; |
}; |
+ class Observer { |
sky
2015/08/12 23:54:36
I'm hoping to nuke HTMLDocument soon. Can you move
msw
2015/08/14 23:20:34
Nothing actually uses StatsCollectionController::G
|
+ public: |
+ explicit Observer(HTMLDocument* html_document); |
+ virtual ~Observer(); |
+ virtual void DidStartLoading() {} |
+ virtual void DidStopLoading() {} |
+ HTMLDocument* html_document() const { return html_document_; } |
+ private: |
+ HTMLDocument* html_document_; |
+ DISALLOW_COPY_AND_ASSIGN(Observer); |
+ }; |
+ |
// Load a new HTMLDocument with |response|. |
// |html_document_app| is the application this app was created in, and |
// |connection| the specific connection triggering this new instance. |
@@ -80,6 +94,9 @@ class HTMLDocument : public blink::WebViewClient, |
// Deletes this object. |
void Destroy(); |
+ void AddObserver(HTMLDocument::Observer* observer); |
sky
2015/08/12 23:54:36
Can these two be private since Observer takes care
msw
2015/08/14 23:20:34
Removed.
|
+ void RemoveObserver(HTMLDocument::Observer* observer); |
+ |
blink::WebView* web_view() const { return web_view_; } |
protected: |
@@ -114,10 +131,14 @@ class HTMLDocument : public blink::WebViewClient, |
const blink::WebString& source_name, |
unsigned source_line, |
const blink::WebString& stack_trace); |
+ virtual void didStartLoading(bool toDifferentDocument); |
yzshen1
2015/08/13 15:59:11
naming style: to_different_document, so it is cons
msw
2015/08/14 23:20:34
Removed.
|
+ virtual void didStopLoading(); |
+ virtual void didHandleOnloadEvents(blink::WebLocalFrame* frame); |
virtual void didFinishLoad(blink::WebLocalFrame* frame); |
virtual void didNavigateWithinPage(blink::WebLocalFrame* frame, |
const blink::WebHistoryItem& history_item, |
blink::WebHistoryCommitType commit_type); |
+ virtual void didFirstVisuallyNonEmptyLayout(blink::WebLocalFrame* frame); |
virtual blink::WebEncryptedMediaClient* encryptedMediaClient(); |
private: |
@@ -189,6 +210,9 @@ class HTMLDocument : public blink::WebViewClient, |
DeleteCallback delete_callback_; |
+ StatsCollectionController* stats_collection_controller_; |
yzshen1
2015/08/13 15:59:11
Please comment about ownership and when it is null
msw
2015/08/14 23:20:34
Hmm, holding gin::Wrappable objects on the heap is
|
+ base::ObserverList<HTMLDocument::Observer> observers_; |
+ |
DISALLOW_COPY_AND_ASSIGN(HTMLDocument); |
}; |