Index: apps/custom_launcher_page_contents.h |
diff --git a/apps/custom_launcher_page_contents.h b/apps/custom_launcher_page_contents.h |
index 964a44dadf98a583d34608840e4ab44b45a2db69..1aea860e89aa9084ff588d8ab9d067835a9371ea 100644 |
--- a/apps/custom_launcher_page_contents.h |
+++ b/apps/custom_launcher_page_contents.h |
@@ -6,6 +6,7 @@ |
#define APPS_CUSTOM_LAUNCHER_PAGE_CONTENTS_H_ |
#include "base/memory/scoped_ptr.h" |
+#include "content/public/browser/web_contents_delegate.h" |
#include "content/public/browser/web_contents_observer.h" |
#include "extensions/browser/extension_function_dispatcher.h" |
@@ -17,15 +18,21 @@ class BrowserContext; |
namespace apps { |
+class AppDelegate; |
+class AppWebContentsHelper; |
+ |
// Manages the web contents for extension-hosted launcher pages. The |
// implementation for this class should create and maintain the WebContents for |
// the page, and handle any message passing between the web contents and the |
// extension system. |
class CustomLauncherPageContents |
- : public content::WebContentsObserver, |
+ : public content::WebContentsDelegate, |
+ public content::WebContentsObserver, |
public extensions::ExtensionFunctionDispatcher::Delegate { |
public: |
- CustomLauncherPageContents(); |
+ // Takes ownership of |app_delegate|. |
+ CustomLauncherPageContents(AppDelegate* app_delegate, |
benwells
2014/08/04 02:35:20
If you make this a scoped_ptr<AppDelegate> it will
Matt Giuca
2014/08/04 06:25:58
Done.
(After discussing with Sam about how to do
benwells
2014/08/04 06:53:16
Yes was what I meant. I'm not sure if you've got t
|
+ const std::string& extension_id); |
virtual ~CustomLauncherPageContents(); |
// Called to initialize and load the WebContents. |
@@ -33,6 +40,37 @@ class CustomLauncherPageContents |
content::WebContents* web_contents() const { return web_contents_.get(); } |
+ // content::WebContentsDelegate overrides: |
+ virtual content::WebContents* OpenURLFromTab( |
+ content::WebContents* source, |
+ const content::OpenURLParams& params) OVERRIDE; |
+ virtual void AddNewContents(content::WebContents* source, |
+ content::WebContents* new_contents, |
+ WindowOpenDisposition disposition, |
+ const gfx::Rect& initial_pos, |
+ bool user_gesture, |
+ bool* was_blocked) OVERRIDE; |
+ virtual bool IsPopupOrPanel( |
+ const content::WebContents* source) const OVERRIDE; |
+ virtual bool ShouldSuppressDialogs() OVERRIDE; |
+ virtual bool PreHandleGestureEvent( |
+ content::WebContents* source, |
+ const blink::WebGestureEvent& event) OVERRIDE; |
+ virtual content::ColorChooser* OpenColorChooser( |
+ content::WebContents* web_contents, |
+ SkColor color, |
+ const std::vector<content::ColorSuggestion>& suggestions) OVERRIDE; |
+ virtual void RunFileChooser( |
+ content::WebContents* tab, |
+ const content::FileChooserParams& params) OVERRIDE; |
+ virtual void RequestToLockMouse(content::WebContents* web_contents, |
+ bool user_gesture, |
+ bool last_unlocked_by_target) OVERRIDE; |
+ virtual void RequestMediaAccessPermission( |
+ content::WebContents* web_contents, |
+ const content::MediaStreamRequest& request, |
+ const content::MediaResponseCallback& callback) OVERRIDE; |
+ |
private: |
// content::WebContentsObserver overrides: |
virtual bool OnMessageReceived(const IPC::Message& message) OVERRIDE; |
@@ -47,6 +85,10 @@ class CustomLauncherPageContents |
scoped_ptr<content::WebContents> web_contents_; |
scoped_ptr<extensions::ExtensionFunctionDispatcher> |
extension_function_dispatcher_; |
+ scoped_ptr<AppDelegate> app_delegate_; |
+ scoped_ptr<AppWebContentsHelper> helper_; |
+ |
+ std::string extension_id_; |
DISALLOW_COPY_AND_ASSIGN(CustomLauncherPageContents); |
}; |