| OLD | NEW |
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 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 | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #ifndef EXTENSIONS_BROWSER_APP_WINDOW_APP_WINDOW_H_ | 5 #ifndef EXTENSIONS_BROWSER_APP_WINDOW_APP_WINDOW_H_ |
| 6 #define EXTENSIONS_BROWSER_APP_WINDOW_APP_WINDOW_H_ | 6 #define EXTENSIONS_BROWSER_APP_WINDOW_APP_WINDOW_H_ |
| 7 | 7 |
| 8 #include <string> | 8 #include <string> |
| 9 #include <vector> | 9 #include <vector> |
| 10 | 10 |
| 11 #include "base/memory/scoped_ptr.h" | 11 #include "base/memory/scoped_ptr.h" |
| 12 #include "base/memory/weak_ptr.h" | 12 #include "base/memory/weak_ptr.h" |
| 13 #include "components/native_app_window/app_window_create_params.h" |
| 14 #include "components/native_app_window/native_app_window_delegate.h" |
| 13 #include "components/sessions/session_id.h" | 15 #include "components/sessions/session_id.h" |
| 14 #include "components/web_modal/popup_manager.h" | 16 #include "components/web_modal/popup_manager.h" |
| 15 #include "components/web_modal/web_contents_modal_dialog_manager_delegate.h" | 17 #include "components/web_modal/web_contents_modal_dialog_manager_delegate.h" |
| 16 #include "content/public/browser/web_contents_delegate.h" | 18 #include "content/public/browser/web_contents_delegate.h" |
| 17 #include "content/public/browser/web_contents_observer.h" | 19 #include "content/public/browser/web_contents_observer.h" |
| 18 #include "extensions/browser/extension_icon_image.h" | 20 #include "extensions/browser/extension_icon_image.h" |
| 19 #include "extensions/browser/extension_registry_observer.h" | 21 #include "extensions/browser/extension_registry_observer.h" |
| 20 #include "ui/base/ui_base_types.h" // WindowShowState | 22 #include "ui/base/ui_base_types.h" // WindowShowState |
| 21 #include "ui/gfx/image/image.h" | 23 #include "ui/gfx/image/image.h" |
| 22 #include "ui/gfx/rect.h" | 24 #include "ui/gfx/rect.h" |
| 23 | 25 |
| 24 class GURL; | 26 class GURL; |
| 25 class SkRegion; | 27 class SkRegion; |
| 26 | 28 |
| 27 namespace base { | 29 namespace base { |
| 28 class DictionaryValue; | 30 class DictionaryValue; |
| 29 } | 31 } |
| 30 | 32 |
| 31 namespace content { | 33 namespace content { |
| 32 class BrowserContext; | 34 class BrowserContext; |
| 33 class WebContents; | 35 class WebContents; |
| 34 } | 36 } |
| 35 | 37 |
| 38 namespace native_app_window { |
| 39 struct DraggableRegion; |
| 40 class NativeAppWindow; |
| 41 } |
| 42 |
| 36 namespace ui { | 43 namespace ui { |
| 37 class BaseWindow; | 44 class BaseWindow; |
| 38 } | 45 } |
| 39 | 46 |
| 40 namespace extensions { | 47 namespace extensions { |
| 41 | 48 |
| 42 class AppDelegate; | 49 class AppDelegate; |
| 43 class AppWebContentsHelper; | 50 class AppWebContentsHelper; |
| 44 class Extension; | 51 class Extension; |
| 45 class ExtensionRegistry; | 52 class ExtensionRegistry; |
| 46 class NativeAppWindow; | |
| 47 class PlatformAppBrowserTest; | 53 class PlatformAppBrowserTest; |
| 48 class WindowController; | 54 class WindowController; |
| 49 | 55 |
| 50 struct DraggableRegion; | |
| 51 | |
| 52 // Manages the web contents for app windows. The implementation for this | 56 // Manages the web contents for app windows. The implementation for this |
| 53 // class should create and maintain the WebContents for the window, and handle | 57 // class should create and maintain the WebContents for the window, and handle |
| 54 // any message passing between the web contents and the extension system or | 58 // any message passing between the web contents and the extension system or |
| 55 // native window. | 59 // native window. |
| 56 class AppWindowContents { | 60 class AppWindowContents { |
| 57 public: | 61 public: |
| 58 AppWindowContents() {} | 62 AppWindowContents() {} |
| 59 virtual ~AppWindowContents() {} | 63 virtual ~AppWindowContents() {} |
| 60 | 64 |
| 61 // Called to initialize the WebContents, before the app window is created. | 65 // Called to initialize the WebContents, before the app window is created. |
| 62 virtual void Initialize(content::BrowserContext* context, | 66 virtual void Initialize(content::BrowserContext* context, |
| 63 const GURL& url) = 0; | 67 const GURL& url) = 0; |
| 64 | 68 |
| 65 // Called to load the contents, after the app window is created. | 69 // Called to load the contents, after the app window is created. |
| 66 virtual void LoadContents(int32 creator_process_id) = 0; | 70 virtual void LoadContents(int32 creator_process_id) = 0; |
| 67 | 71 |
| 68 // Called when the native window changes. | 72 // Called when the native window changes. |
| 69 virtual void NativeWindowChanged(NativeAppWindow* native_app_window) = 0; | 73 virtual void NativeWindowChanged( |
| 74 native_app_window::NativeAppWindow* native_app_window) = 0; |
| 70 | 75 |
| 71 // Called when the native window closes. | 76 // Called when the native window closes. |
| 72 virtual void NativeWindowClosed() = 0; | 77 virtual void NativeWindowClosed() = 0; |
| 73 | 78 |
| 74 // Called in tests when the window is shown | 79 // Called in tests when the window is shown |
| 75 virtual void DispatchWindowShownForTests() const = 0; | 80 virtual void DispatchWindowShownForTests() const = 0; |
| 76 | 81 |
| 77 virtual content::WebContents* GetWebContents() const = 0; | 82 virtual content::WebContents* GetWebContents() const = 0; |
| 78 | 83 |
| 79 private: | 84 private: |
| 80 DISALLOW_COPY_AND_ASSIGN(AppWindowContents); | 85 DISALLOW_COPY_AND_ASSIGN(AppWindowContents); |
| 81 }; | 86 }; |
| 82 | 87 |
| 83 // AppWindow is the type of window used by platform apps. App windows | 88 // AppWindow is the type of window used by platform apps. App windows |
| 84 // have a WebContents but none of the chrome of normal browser windows. | 89 // have a WebContents but none of the chrome of normal browser windows. |
| 85 class AppWindow : public content::WebContentsDelegate, | 90 class AppWindow : public content::WebContentsDelegate, |
| 86 public content::WebContentsObserver, | 91 public content::WebContentsObserver, |
| 87 public web_modal::WebContentsModalDialogManagerDelegate, | 92 public web_modal::WebContentsModalDialogManagerDelegate, |
| 88 public IconImage::Observer, | 93 public IconImage::Observer, |
| 89 public ExtensionRegistryObserver { | 94 public ExtensionRegistryObserver, |
| 95 public native_app_window::NativeAppWindowDelegate { |
| 90 public: | 96 public: |
| 91 enum WindowType { | 97 // TODO(tapted): Delete these forwarding declarations. |
| 92 WINDOW_TYPE_DEFAULT = 1 << 0, // Default app window. | 98 typedef native_app_window::AppWindowCreateParams CreateParams; |
| 93 WINDOW_TYPE_PANEL = 1 << 1, // OS controlled panel window (Ash only). | 99 typedef native_app_window::BoundsSpecification BoundsSpecification; |
| 94 WINDOW_TYPE_V1_PANEL = 1 << 2, // For apps v1 support in Ash; deprecate | |
| 95 // with v1 apps. | |
| 96 }; | |
| 97 | |
| 98 enum Frame { | |
| 99 FRAME_CHROME, // Chrome-style window frame. | |
| 100 FRAME_NONE, // Frameless window. | |
| 101 }; | |
| 102 | |
| 103 enum FullscreenType { | |
| 104 // Not fullscreen. | |
| 105 FULLSCREEN_TYPE_NONE = 0, | |
| 106 | |
| 107 // Fullscreen entered by the app.window api. | |
| 108 FULLSCREEN_TYPE_WINDOW_API = 1 << 0, | |
| 109 | |
| 110 // Fullscreen entered by HTML requestFullscreen(). | |
| 111 FULLSCREEN_TYPE_HTML_API = 1 << 1, | |
| 112 | |
| 113 // Fullscreen entered by the OS. ChromeOS uses this type of fullscreen to | |
| 114 // enter immersive fullscreen when the user hits the <F4> key. | |
| 115 FULLSCREEN_TYPE_OS = 1 << 2, | |
| 116 | |
| 117 // Fullscreen mode that could not be exited by the user. ChromeOS uses | |
| 118 // this type of fullscreen to run an app in kiosk mode. | |
| 119 FULLSCREEN_TYPE_FORCED = 1 << 3, | |
| 120 }; | |
| 121 | |
| 122 struct BoundsSpecification { | |
| 123 // INT_MIN represents an unspecified position component. | |
| 124 static const int kUnspecifiedPosition; | |
| 125 | |
| 126 BoundsSpecification(); | |
| 127 ~BoundsSpecification(); | |
| 128 | |
| 129 // INT_MIN designates 'unspecified' for the position components, and 0 | |
| 130 // designates 'unspecified' for the size components. When unspecified, | |
| 131 // they should be replaced with a default value. | |
| 132 gfx::Rect bounds; | |
| 133 | |
| 134 gfx::Size minimum_size; | |
| 135 gfx::Size maximum_size; | |
| 136 | |
| 137 // Reset the bounds fields to their 'unspecified' values. The minimum and | |
| 138 // maximum size constraints remain unchanged. | |
| 139 void ResetBounds(); | |
| 140 }; | |
| 141 | |
| 142 struct CreateParams { | |
| 143 CreateParams(); | |
| 144 ~CreateParams(); | |
| 145 | |
| 146 WindowType window_type; | |
| 147 Frame frame; | |
| 148 | |
| 149 bool has_frame_color; | |
| 150 SkColor active_frame_color; | |
| 151 SkColor inactive_frame_color; | |
| 152 bool alpha_enabled; | |
| 153 bool is_ime_window; | |
| 154 | |
| 155 // The initial content/inner bounds specification (excluding any window | |
| 156 // decorations). | |
| 157 BoundsSpecification content_spec; | |
| 158 | |
| 159 // The initial window/outer bounds specification (including window | |
| 160 // decorations). | |
| 161 BoundsSpecification window_spec; | |
| 162 | |
| 163 std::string window_key; | |
| 164 | |
| 165 // The process ID of the process that requested the create. | |
| 166 int32 creator_process_id; | |
| 167 | |
| 168 // Initial state of the window. | |
| 169 ui::WindowShowState state; | |
| 170 | |
| 171 // If true, don't show the window after creation. | |
| 172 bool hidden; | |
| 173 | |
| 174 // If true, the window will be resizable by the user. Defaults to true. | |
| 175 bool resizable; | |
| 176 | |
| 177 // If true, the window will be focused on creation. Defaults to true. | |
| 178 bool focused; | |
| 179 | |
| 180 // If true, the window will stay on top of other windows that are not | |
| 181 // configured to be always on top. Defaults to false. | |
| 182 bool always_on_top; | |
| 183 | |
| 184 // If true, the window will be visible on all workspaces. Defaults to false. | |
| 185 bool visible_on_all_workspaces; | |
| 186 | |
| 187 // The API enables developers to specify content or window bounds. This | |
| 188 // function combines them into a single, constrained window size. | |
| 189 gfx::Rect GetInitialWindowBounds(const gfx::Insets& frame_insets) const; | |
| 190 | |
| 191 // The API enables developers to specify content or window size constraints. | |
| 192 // These functions combine them so that we can work with one set of | |
| 193 // constraints. | |
| 194 gfx::Size GetContentMinimumSize(const gfx::Insets& frame_insets) const; | |
| 195 gfx::Size GetContentMaximumSize(const gfx::Insets& frame_insets) const; | |
| 196 gfx::Size GetWindowMinimumSize(const gfx::Insets& frame_insets) const; | |
| 197 gfx::Size GetWindowMaximumSize(const gfx::Insets& frame_insets) const; | |
| 198 }; | |
| 199 | |
| 200 // Convert draggable regions in raw format to SkRegion format. Caller is | |
| 201 // responsible for deleting the returned SkRegion instance. | |
| 202 static SkRegion* RawDraggableRegionsToSkRegion( | |
| 203 const std::vector<DraggableRegion>& regions); | |
| 204 | 100 |
| 205 // The constructor and Init methods are public for constructing a AppWindow | 101 // The constructor and Init methods are public for constructing a AppWindow |
| 206 // with a non-standard render interface (e.g. v1 apps using Ash Panels). | 102 // with a non-standard render interface (e.g. v1 apps using Ash Panels). |
| 207 // Normally AppWindow::Create should be used. | 103 // Normally AppWindow::Create should be used. |
| 208 // Takes ownership of |app_delegate| and |delegate|. | 104 // Takes ownership of |app_delegate| and |delegate|. |
| 209 AppWindow(content::BrowserContext* context, | 105 AppWindow(content::BrowserContext* context, |
| 210 AppDelegate* app_delegate, | 106 AppDelegate* app_delegate, |
| 211 const Extension* extension); | 107 const Extension* extension); |
| 212 | 108 |
| 213 // Initializes the render interface, web contents, and native window. | 109 // Initializes the render interface, web contents, and native window. |
| 214 // |app_window_contents| will become owned by AppWindow. | 110 // |app_window_contents| will become owned by AppWindow. |
| 215 void Init(const GURL& url, | 111 void Init(const GURL& url, |
| 216 AppWindowContents* app_window_contents, | 112 AppWindowContents* app_window_contents, |
| 217 const CreateParams& params); | 113 const CreateParams& params); |
| 218 | 114 |
| 219 const std::string& window_key() const { return window_key_; } | 115 const std::string& window_key() const { return window_key_; } |
| 220 const SessionID& session_id() const { return session_id_; } | 116 const SessionID& session_id() const { return session_id_; } |
| 221 const std::string& extension_id() const { return extension_id_; } | 117 const std::string& extension_id() const { return extension_id_; } |
| 222 content::WebContents* web_contents() const; | 118 content::WebContents* web_contents() const; |
| 223 WindowType window_type() const { return window_type_; } | 119 native_app_window::WindowType window_type() const { return window_type_; } |
| 224 bool window_type_is_panel() const { | 120 bool window_type_is_panel() const { |
| 225 return (window_type_ == WINDOW_TYPE_PANEL || | 121 return (window_type_ == native_app_window::WINDOW_TYPE_PANEL || |
| 226 window_type_ == WINDOW_TYPE_V1_PANEL); | 122 window_type_ == native_app_window::WINDOW_TYPE_V1_PANEL); |
| 227 } | 123 } |
| 228 content::BrowserContext* browser_context() const { return browser_context_; } | 124 content::BrowserContext* browser_context() const { return browser_context_; } |
| 229 const gfx::Image& app_icon() const { return app_icon_; } | 125 const gfx::Image& app_icon() const { return app_icon_; } |
| 230 const GURL& app_icon_url() const { return app_icon_url_; } | 126 const GURL& app_icon_url() const { return app_icon_url_; } |
| 231 const gfx::Image& badge_icon() const { return badge_icon_; } | 127 const gfx::Image& badge_icon() const { return badge_icon_; } |
| 232 const GURL& badge_icon_url() const { return badge_icon_url_; } | 128 const GURL& badge_icon_url() const { return badge_icon_url_; } |
| 233 bool is_hidden() const { return is_hidden_; } | 129 bool is_hidden() const { return is_hidden_; } |
| 234 | 130 |
| 235 const Extension* GetExtension() const; | 131 const Extension* GetExtension() const; |
| 236 NativeAppWindow* GetBaseWindow(); | 132 native_app_window::NativeAppWindow* GetBaseWindow(); |
| 237 gfx::NativeWindow GetNativeWindow(); | 133 gfx::NativeWindow GetNativeWindow(); |
| 238 | 134 |
| 239 // Returns the bounds that should be reported to the renderer. | 135 // Returns the bounds that should be reported to the renderer. |
| 240 gfx::Rect GetClientBounds() const; | 136 gfx::Rect GetClientBounds() const; |
| 241 | 137 |
| 242 // NativeAppWindows should call this to determine what the window's title | |
| 243 // is on startup and from within UpdateWindowTitle(). | |
| 244 base::string16 GetTitle() const; | |
| 245 | |
| 246 // Call to notify ShellRegistry and delete the window. Subclasses should | |
| 247 // invoke this method instead of using "delete this". | |
| 248 void OnNativeClose(); | |
| 249 | |
| 250 // Should be called by native implementations when the window size, position, | |
| 251 // or minimized/maximized state has changed. | |
| 252 void OnNativeWindowChanged(); | |
| 253 | |
| 254 // Should be called by native implementations when the window is activated. | |
| 255 void OnNativeWindowActivated(); | |
| 256 | |
| 257 // Specifies a url for the launcher icon. | 138 // Specifies a url for the launcher icon. |
| 258 void SetAppIconUrl(const GURL& icon_url); | 139 void SetAppIconUrl(const GURL& icon_url); |
| 259 | 140 |
| 260 // Specifies a url for the window badge. | 141 // Specifies a url for the window badge. |
| 261 void SetBadgeIconUrl(const GURL& icon_url); | 142 void SetBadgeIconUrl(const GURL& icon_url); |
| 262 | 143 |
| 263 // Clear the current badge. | 144 // Clear the current badge. |
| 264 void ClearBadge(); | 145 void ClearBadge(); |
| 265 | 146 |
| 266 // Set the window shape. Passing a NULL |region| sets the default shape. | 147 // Set the window shape. Passing a NULL |region| sets the default shape. |
| 267 void UpdateShape(scoped_ptr<SkRegion> region); | 148 void UpdateShape(scoped_ptr<SkRegion> region); |
| 268 | 149 |
| 269 // Called from the render interface to modify the draggable regions. | 150 // Called from the render interface to modify the draggable regions. |
| 270 void UpdateDraggableRegions(const std::vector<DraggableRegion>& regions); | 151 void UpdateDraggableRegions( |
| 152 const std::vector<native_app_window::DraggableRegion>& regions); |
| 271 | 153 |
| 272 // Updates the app image to |image|. Called internally from the image loader | 154 // Updates the app image to |image|. Called internally from the image loader |
| 273 // callback. Also called externally for v1 apps using Ash Panels. | 155 // callback. Also called externally for v1 apps using Ash Panels. |
| 274 void UpdateAppIcon(const gfx::Image& image); | 156 void UpdateAppIcon(const gfx::Image& image); |
| 275 | 157 |
| 276 // Enable or disable fullscreen mode. |type| specifies which type of | 158 // Enable or disable fullscreen mode. |type| specifies which type of |
| 277 // fullscreen mode to change (note that disabling one type of fullscreen may | 159 // fullscreen mode to change (note that disabling one type of fullscreen may |
| 278 // not exit fullscreen mode because a window may have a different type of | 160 // not exit fullscreen mode because a window may have a different type of |
| 279 // fullscreen enabled). If |type| is not FORCED, checks that the extension has | 161 // fullscreen enabled). If |type| is not FORCED, checks that the extension has |
| 280 // the required permission. | 162 // the required permission. |
| 281 void SetFullscreen(FullscreenType type, bool enable); | 163 void SetFullscreen(native_app_window::FullscreenType type, bool enable); |
| 282 | 164 |
| 283 // Returns true if the app window is in a fullscreen state. | 165 // Returns true if the app window is in a fullscreen state. |
| 284 bool IsFullscreen() const; | 166 bool IsFullscreen() const; |
| 285 | 167 |
| 286 // Returns true if the app window is in a forced fullscreen state (one that | 168 // Returns true if the app window is in a forced fullscreen state (one that |
| 287 // cannot be exited by the user). | 169 // cannot be exited by the user). |
| 288 bool IsForcedFullscreen() const; | 170 bool IsForcedFullscreen() const; |
| 289 | 171 |
| 290 // Returns true if the app window is in a fullscreen state entered from an | 172 // Returns true if the app window is in a fullscreen state entered from an |
| 291 // HTML API request. | 173 // HTML API request. |
| (...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 344 // app. | 226 // app. |
| 345 void WindowEventsReady(); | 227 void WindowEventsReady(); |
| 346 | 228 |
| 347 // Whether the app window wants to be alpha enabled. | 229 // Whether the app window wants to be alpha enabled. |
| 348 bool requested_alpha_enabled() const { return requested_alpha_enabled_; } | 230 bool requested_alpha_enabled() const { return requested_alpha_enabled_; } |
| 349 | 231 |
| 350 void SetAppWindowContentsForTesting(scoped_ptr<AppWindowContents> contents) { | 232 void SetAppWindowContentsForTesting(scoped_ptr<AppWindowContents> contents) { |
| 351 app_window_contents_ = contents.Pass(); | 233 app_window_contents_ = contents.Pass(); |
| 352 } | 234 } |
| 353 | 235 |
| 236 // native_app_window::NativeAppWindowDelegate implementation. |
| 237 virtual content::WebContents* GetWebContents() OVERRIDE; |
| 238 virtual content::BrowserContext* GetBrowserContext() OVERRIDE; |
| 239 virtual void OnNativeClose() OVERRIDE; |
| 240 virtual void OnNativeWindowChanged() OVERRIDE; |
| 241 virtual void OnNativeWindowActivated() OVERRIDE; |
| 242 virtual bool RequestedAlphaEnabled() const OVERRIDE; |
| 243 virtual base::string16 GetTitle() const OVERRIDE; |
| 244 virtual native_app_window::WindowType GetWindowType() const OVERRIDE; |
| 245 virtual bool WindowTypeIsPanel() const OVERRIDE; |
| 246 |
| 354 protected: | 247 protected: |
| 355 virtual ~AppWindow(); | 248 virtual ~AppWindow(); |
| 356 | 249 |
| 357 private: | 250 private: |
| 358 // PlatformAppBrowserTest needs access to web_contents() | 251 // PlatformAppBrowserTest needs access to web_contents() |
| 359 friend class PlatformAppBrowserTest; | 252 friend class PlatformAppBrowserTest; |
| 360 | 253 |
| 361 // content::WebContentsDelegate implementation. | 254 // content::WebContentsDelegate implementation. |
| 362 virtual void CloseContents(content::WebContents* contents) OVERRIDE; | 255 virtual void CloseContents(content::WebContents* contents) OVERRIDE; |
| 363 virtual bool ShouldSuppressDialogs() OVERRIDE; | 256 virtual bool ShouldSuppressDialogs() OVERRIDE; |
| (...skipping 121 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 485 // not own this object. | 378 // not own this object. |
| 486 content::BrowserContext* browser_context_; | 379 content::BrowserContext* browser_context_; |
| 487 | 380 |
| 488 const std::string extension_id_; | 381 const std::string extension_id_; |
| 489 | 382 |
| 490 // Identifier that is used when saving and restoring geometry for this | 383 // Identifier that is used when saving and restoring geometry for this |
| 491 // window. | 384 // window. |
| 492 std::string window_key_; | 385 std::string window_key_; |
| 493 | 386 |
| 494 const SessionID session_id_; | 387 const SessionID session_id_; |
| 495 WindowType window_type_; | 388 native_app_window::WindowType window_type_; |
| 496 | 389 |
| 497 // Icon shown in the task bar. | 390 // Icon shown in the task bar. |
| 498 gfx::Image app_icon_; | 391 gfx::Image app_icon_; |
| 499 | 392 |
| 500 // Icon URL to be used for setting the app icon. If not empty, app_icon_ will | 393 // Icon URL to be used for setting the app icon. If not empty, app_icon_ will |
| 501 // be fetched and set using this URL. | 394 // be fetched and set using this URL. |
| 502 GURL app_icon_url_; | 395 GURL app_icon_url_; |
| 503 | 396 |
| 504 // An object to load the app's icon as an extension resource. | 397 // An object to load the app's icon as an extension resource. |
| 505 scoped_ptr<IconImage> app_icon_image_; | 398 scoped_ptr<IconImage> app_icon_image_; |
| 506 | 399 |
| 507 // Badge for icon shown in the task bar. | 400 // Badge for icon shown in the task bar. |
| 508 gfx::Image badge_icon_; | 401 gfx::Image badge_icon_; |
| 509 | 402 |
| 510 // URL to be used for setting the badge on the app icon. | 403 // URL to be used for setting the badge on the app icon. |
| 511 GURL badge_icon_url_; | 404 GURL badge_icon_url_; |
| 512 | 405 |
| 513 // An object to load the badge as an extension resource. | 406 // An object to load the badge as an extension resource. |
| 514 scoped_ptr<IconImage> badge_icon_image_; | 407 scoped_ptr<IconImage> badge_icon_image_; |
| 515 | 408 |
| 516 scoped_ptr<NativeAppWindow> native_app_window_; | 409 scoped_ptr<native_app_window::NativeAppWindow> native_app_window_; |
| 517 scoped_ptr<AppWindowContents> app_window_contents_; | 410 scoped_ptr<AppWindowContents> app_window_contents_; |
| 518 scoped_ptr<AppDelegate> app_delegate_; | 411 scoped_ptr<AppDelegate> app_delegate_; |
| 519 scoped_ptr<AppWebContentsHelper> helper_; | 412 scoped_ptr<AppWebContentsHelper> helper_; |
| 520 | 413 |
| 521 // Manages popup windows (bubbles, tab-modals) visible overlapping the | 414 // Manages popup windows (bubbles, tab-modals) visible overlapping the |
| 522 // app window. | 415 // app window. |
| 523 scoped_ptr<web_modal::PopupManager> popup_manager_; | 416 scoped_ptr<web_modal::PopupManager> popup_manager_; |
| 524 | 417 |
| 525 base::WeakPtrFactory<AppWindow> image_loader_ptr_factory_; | 418 base::WeakPtrFactory<AppWindow> image_loader_ptr_factory_; |
| 526 | 419 |
| (...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 560 | 453 |
| 561 // Whether |alpha_enabled| was set in the CreateParams. | 454 // Whether |alpha_enabled| was set in the CreateParams. |
| 562 bool requested_alpha_enabled_; | 455 bool requested_alpha_enabled_; |
| 563 | 456 |
| 564 DISALLOW_COPY_AND_ASSIGN(AppWindow); | 457 DISALLOW_COPY_AND_ASSIGN(AppWindow); |
| 565 }; | 458 }; |
| 566 | 459 |
| 567 } // namespace extensions | 460 } // namespace extensions |
| 568 | 461 |
| 569 #endif // EXTENSIONS_BROWSER_APP_WINDOW_APP_WINDOW_H_ | 462 #endif // EXTENSIONS_BROWSER_APP_WINDOW_APP_WINDOW_H_ |
| OLD | NEW |