Index: chromecast/renderer/cast_content_renderer_client.cc |
diff --git a/chromecast/renderer/cast_content_renderer_client.cc b/chromecast/renderer/cast_content_renderer_client.cc |
index 6974d16ad46da3840cab8eac771f808822541149..0e8e504f2e614d1c4dc574d35a237f28ff24e919 100644 |
--- a/chromecast/renderer/cast_content_renderer_client.cc |
+++ b/chromecast/renderer/cast_content_renderer_client.cc |
@@ -17,6 +17,7 @@ |
#include "content/public/common/content_switches.h" |
#include "content/public/renderer/render_frame.h" |
#include "content/public/renderer/render_view.h" |
+#include "content/public/renderer/render_view_observer.h" |
#include "crypto/nss_util.h" |
#include "third_party/WebKit/public/platform/WebColor.h" |
#include "third_party/WebKit/public/web/WebSettings.h" |
@@ -71,6 +72,22 @@ void PlatformPollFreemem(void) { |
// though the comment of WebColor says it is in RGBA. |
const blink::WebColor kColorBlack = 0xFF000000; |
+class CastRenderViewObserver : content::RenderViewObserver { |
+ public: |
+ explicit CastRenderViewObserver(content::RenderView* render_view); |
+ ~CastRenderViewObserver() override {} |
+ |
+ void DidClearWindowObject(blink::WebLocalFrame* frame) override; |
+}; |
+ |
+CastRenderViewObserver::CastRenderViewObserver(content::RenderView* render_view) |
+ : content::RenderViewObserver(render_view) { |
+} |
+ |
+void CastRenderViewObserver::DidClearWindowObject(blink::WebLocalFrame* frame) { |
+ // Native bindings go here. |
+} |
+ |
} // namespace |
CastContentRendererClient::CastContentRendererClient() { |
@@ -116,6 +133,9 @@ void CastContentRendererClient::RenderViewCreated( |
// application running. |
webview->settings()->setOfflineWebApplicationCacheEnabled(false); |
} |
+ |
+ // Note: RenderView will own the lifetime of its observer. |
+ new CastRenderViewObserver(render_view); |
} |
void CastContentRendererClient::AddKeySystems( |