| Index: ui/views/controls/webview/webview.h
|
| diff --git a/ui/views/controls/webview/webview.h b/ui/views/controls/webview/webview.h
|
| index 05c447db8a944b98697f1dfac3bff85c6b5af40c..7e50914131c28fd7a3cef8d1c4cfe609eac9b3fd 100644
|
| --- a/ui/views/controls/webview/webview.h
|
| +++ b/ui/views/controls/webview/webview.h
|
| @@ -10,6 +10,7 @@
|
| #include "content/public/browser/notification_observer.h"
|
| #include "content/public/browser/notification_registrar.h"
|
| #include "content/public/browser/web_contents_delegate.h"
|
| +#include "content/public/browser/web_contents_observer.h"
|
| #include "ui/views/accessibility/native_view_accessibility.h"
|
| #include "ui/views/controls/webview/webview_export.h"
|
| #include "ui/views/view.h"
|
| @@ -24,7 +25,8 @@ class NativeViewHost;
|
|
|
| class WEBVIEW_EXPORT WebView : public View,
|
| public content::NotificationObserver,
|
| - public content::WebContentsDelegate {
|
| + public content::WebContentsDelegate,
|
| + public content::WebContentsObserver {
|
| public:
|
| static const char kViewClassName[];
|
|
|
| @@ -43,6 +45,12 @@ class WEBVIEW_EXPORT WebView : public View,
|
| // those it implicitly creates via GetWebContents() above.
|
| void SetWebContents(content::WebContents* web_contents);
|
|
|
| + // If |mode| is true, WebView will register itself with WebContents as a
|
| + // WebContentsObserver, monitor for the showing/destruction of fullscreen
|
| + // render widgets, and alter its child view hierarchy to embed the fullscreen
|
| + // widget or restore the normal WebContentsView.
|
| + void SetEmbedFullscreenWidgetMode(bool mode);
|
| +
|
| content::WebContents* web_contents() { return web_contents_; }
|
|
|
| content::BrowserContext* browser_context() { return browser_context_; }
|
| @@ -103,13 +111,19 @@ class WEBVIEW_EXPORT WebView : public View,
|
|
|
| // Overridden from content::WebContentsDelegate:
|
| virtual void WebContentsFocused(content::WebContents* web_contents) OVERRIDE;
|
| + virtual bool EmbedsFullscreenWidget() const OVERRIDE;
|
| +
|
| + // Overridden from content::WebContentsObserver:
|
| + virtual void DidShowFullscreenWidget(int routing_id) OVERRIDE;
|
| + virtual void DidDestroyFullscreenWidget(int routing_id) OVERRIDE;
|
| + // Workaround for MSVC++ linker bug/feature that requires
|
| + // instantiation of the inline IPC::Listener methods in all translation units.
|
| + virtual void OnChannelConnected(int32 peer_id) OVERRIDE {}
|
| + virtual void OnChannelError() OVERRIDE {}
|
|
|
| void AttachWebContents();
|
| void DetachWebContents();
|
| -
|
| - void RenderViewHostChanged(content::RenderViewHost* old_host,
|
| - content::RenderViewHost* new_host);
|
| - void WebContentsDestroyed(content::WebContents* web_contents);
|
| + void ReattachForFullscreenChange(bool enter_fullscreen);
|
|
|
| // Create a regular or test web contents (based on whether we're running
|
| // in a unit test or not).
|
| @@ -120,6 +134,12 @@ class WEBVIEW_EXPORT WebView : public View,
|
| NativeViewHost* wcv_holder_;
|
| scoped_ptr<content::WebContents> wc_owner_;
|
| content::WebContents* web_contents_;
|
| + // When true, WebView observes WebContents and auto-embeds fullscreen widgets
|
| + // as a child view.
|
| + bool embed_fullscreen_widget_mode_enabled_;
|
| + // Set to true while WebView is embedding a fullscreen widget view as a child
|
| + // view instead of the normal WebContentsView render view.
|
| + bool is_embedding_fullscreen_widget_;
|
| content::BrowserContext* browser_context_;
|
| content::NotificationRegistrar registrar_;
|
| bool allow_accelerators_;
|
|
|