diff options
author | hashimoto@chromium.org <hashimoto@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-08-20 07:48:29 +0000 |
---|---|---|
committer | hashimoto@chromium.org <hashimoto@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-08-20 07:49:42 +0000 |
commit | 2accabecaa9144edef9a7495eb1783feee255021 (patch) | |
tree | 95e3b30a082589ab0422696ca0dbd9950ce4d0c3 /apps | |
parent | 6e3ef091c0e18f7a55b9a8520498910ffbd2bd87 (diff) | |
download | chromium_src-2accabecaa9144edef9a7495eb1783feee255021.zip chromium_src-2accabecaa9144edef9a7495eb1783feee255021.tar.gz chromium_src-2accabecaa9144edef9a7495eb1783feee255021.tar.bz2 |
Move NativeAppWindow to extensions
Move native_app_window.h from apps/ui to extensions/browser/app_window.
Change the namespace from apps to extensions.
Add dependency on components/web_modal to extensions/browser.
BUG=403726
TBR=sky@chromium.org for include fix under chrome/browser
Review URL: https://codereview.chromium.org/479933003
Cr-Commit-Position: refs/heads/master@{#290786}
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@290786 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'apps')
-rw-r--r-- | apps/app_shim/app_shim_interactive_uitest_mac.mm | 2 | ||||
-rw-r--r-- | apps/app_shim/extension_app_shim_handler_mac.cc | 2 | ||||
-rw-r--r-- | apps/app_window.cc | 3 | ||||
-rw-r--r-- | apps/app_window.h | 9 | ||||
-rw-r--r-- | apps/app_window_browsertest.cc | 3 | ||||
-rw-r--r-- | apps/app_window_contents.cc | 6 | ||||
-rw-r--r-- | apps/app_window_contents.h | 3 | ||||
-rw-r--r-- | apps/app_window_interactive_uitest.cc | 2 | ||||
-rw-r--r-- | apps/app_window_registry.cc | 2 | ||||
-rw-r--r-- | apps/apps.gypi | 1 | ||||
-rw-r--r-- | apps/ui/apps_client.h | 7 | ||||
-rw-r--r-- | apps/ui/native_app_window.h | 96 | ||||
-rw-r--r-- | apps/ui/views/app_window_frame_view.cc | 4 | ||||
-rw-r--r-- | apps/ui/views/app_window_frame_view.h | 10 | ||||
-rw-r--r-- | apps/ui/views/native_app_window_views.h | 5 |
15 files changed, 32 insertions, 123 deletions
diff --git a/apps/app_shim/app_shim_interactive_uitest_mac.mm b/apps/app_shim/app_shim_interactive_uitest_mac.mm index a51cc9b..f019c8e 100644 --- a/apps/app_shim/app_shim_interactive_uitest_mac.mm +++ b/apps/app_shim/app_shim_interactive_uitest_mac.mm @@ -9,7 +9,6 @@ #include "apps/app_shim/app_shim_host_manager_mac.h" #include "apps/app_shim/extension_app_shim_handler_mac.h" #include "apps/switches.h" -#include "apps/ui/native_app_window.h" #include "base/auto_reset.h" #include "base/callback.h" #include "base/files/file_path_watcher.h" @@ -30,6 +29,7 @@ #include "chrome/common/chrome_switches.h" #include "chrome/common/mac/app_mode_common.h" #include "content/public/test/test_utils.h" +#include "extensions/browser/app_window/native_app_window.h" #include "extensions/browser/extension_registry.h" #import "ui/events/test/cocoa_test_event_utils.h" diff --git a/apps/app_shim/extension_app_shim_handler_mac.cc b/apps/app_shim/extension_app_shim_handler_mac.cc index b33585c..2fa33a1 100644 --- a/apps/app_shim/extension_app_shim_handler_mac.cc +++ b/apps/app_shim/extension_app_shim_handler_mac.cc @@ -10,7 +10,6 @@ #include "apps/app_window.h" #include "apps/app_window_registry.h" #include "apps/launcher.h" -#include "apps/ui/native_app_window.h" #include "base/files/file_path.h" #include "base/logging.h" #include "chrome/browser/browser_process.h" @@ -25,6 +24,7 @@ #include "content/public/browser/notification_details.h" #include "content/public/browser/notification_service.h" #include "content/public/browser/notification_source.h" +#include "extensions/browser/app_window/native_app_window.h" #include "extensions/browser/extension_host.h" #include "extensions/browser/extension_registry.h" #include "ui/base/cocoa/focus_window_set.h" diff --git a/apps/app_window.cc b/apps/app_window.cc index 2366ca8..1fa8139 100644 --- a/apps/app_window.cc +++ b/apps/app_window.cc @@ -13,7 +13,6 @@ #include "apps/app_window_geometry_cache.h" #include "apps/app_window_registry.h" #include "apps/ui/apps_client.h" -#include "apps/ui/native_app_window.h" #include "apps/ui/web_contents_sizer.h" #include "base/command_line.h" #include "base/strings/string_util.h" @@ -33,6 +32,7 @@ #include "content/public/browser/web_contents.h" #include "content/public/common/content_switches.h" #include "content/public/common/media_stream_request.h" +#include "extensions/browser/app_window/native_app_window.h" #include "extensions/browser/app_window/size_constraints.h" #include "extensions/browser/extension_registry.h" #include "extensions/browser/extension_system.h" @@ -58,6 +58,7 @@ using content::BrowserContext; using content::ConsoleMessageLevel; using content::WebContents; using extensions::APIPermission; +using extensions::NativeAppWindow; using web_modal::WebContentsModalDialogHost; using web_modal::WebContentsModalDialogManager; diff --git a/apps/app_window.h b/apps/app_window.h index 4239d01..87c3c45 100644 --- a/apps/app_window.h +++ b/apps/app_window.h @@ -36,6 +36,7 @@ class WebContents; namespace extensions { class Extension; +class NativeAppWindow; class PlatformAppBrowserTest; class WindowController; @@ -50,7 +51,6 @@ namespace apps { class AppDelegate; class AppWebContentsHelper; -class NativeAppWindow; // Manages the web contents for app windows. The implementation for this // class should create and maintain the WebContents for the window, and handle @@ -69,7 +69,8 @@ class AppWindowContents { virtual void LoadContents(int32 creator_process_id) = 0; // Called when the native window changes. - virtual void NativeWindowChanged(NativeAppWindow* native_app_window) = 0; + virtual void NativeWindowChanged( + extensions::NativeAppWindow* native_app_window) = 0; // Called when the native window closes. virtual void NativeWindowClosed() = 0; @@ -232,7 +233,7 @@ class AppWindow : public content::NotificationObserver, bool is_hidden() const { return is_hidden_; } const extensions::Extension* GetExtension() const; - NativeAppWindow* GetBaseWindow(); + extensions::NativeAppWindow* GetBaseWindow(); gfx::NativeWindow GetNativeWindow(); // Returns the bounds that should be reported to the renderer. @@ -500,7 +501,7 @@ class AppWindow : public content::NotificationObserver, // An object to load the badge as an extension resource. scoped_ptr<extensions::IconImage> badge_icon_image_; - scoped_ptr<NativeAppWindow> native_app_window_; + scoped_ptr<extensions::NativeAppWindow> native_app_window_; scoped_ptr<AppWindowContents> app_window_contents_; scoped_ptr<AppDelegate> app_delegate_; scoped_ptr<AppWebContentsHelper> helper_; diff --git a/apps/app_window_browsertest.cc b/apps/app_window_browsertest.cc index 22446a3..a132a1b 100644 --- a/apps/app_window_browsertest.cc +++ b/apps/app_window_browsertest.cc @@ -2,10 +2,11 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#include "apps/ui/native_app_window.h" #include "chrome/browser/apps/app_browsertest_util.h" +#include "extensions/browser/app_window/native_app_window.h" using extensions::Extension; +using extensions::NativeAppWindow; namespace apps { diff --git a/apps/app_window_contents.cc b/apps/app_window_contents.cc index 84cf13d..783564a 100644 --- a/apps/app_window_contents.cc +++ b/apps/app_window_contents.cc @@ -4,10 +4,9 @@ #include "apps/app_window_contents.h" -#include <utility> #include <string> +#include <utility> -#include "apps/ui/native_app_window.h" #include "chrome/browser/chrome_notification_types.h" #include "chrome/common/extensions/api/app_window.h" #include "content/public/browser/browser_context.h" @@ -18,6 +17,7 @@ #include "content/public/browser/site_instance.h" #include "content/public/browser/web_contents.h" #include "content/public/common/renderer_preferences.h" +#include "extensions/browser/app_window/native_app_window.h" #include "extensions/common/extension_messages.h" namespace app_window = extensions::api::app_window; @@ -65,7 +65,7 @@ void AppWindowContentsImpl::LoadContents(int32 creator_process_id) { } void AppWindowContentsImpl::NativeWindowChanged( - NativeAppWindow* native_app_window) { + extensions::NativeAppWindow* native_app_window) { base::ListValue args; base::DictionaryValue* dictionary = new base::DictionaryValue(); args.Append(dictionary); diff --git a/apps/app_window_contents.h b/apps/app_window_contents.h index 47d082b..8762913 100644 --- a/apps/app_window_contents.h +++ b/apps/app_window_contents.h @@ -38,7 +38,8 @@ class AppWindowContentsImpl virtual void Initialize(content::BrowserContext* context, const GURL& url) OVERRIDE; virtual void LoadContents(int32 creator_process_id) OVERRIDE; - virtual void NativeWindowChanged(NativeAppWindow* native_app_window) OVERRIDE; + virtual void NativeWindowChanged( + extensions::NativeAppWindow* native_app_window) OVERRIDE; virtual void NativeWindowClosed() OVERRIDE; virtual void DispatchWindowShownForTests() const OVERRIDE; virtual content::WebContents* GetWebContents() const OVERRIDE; diff --git a/apps/app_window_interactive_uitest.cc b/apps/app_window_interactive_uitest.cc index 4433ca9..665d4656 100644 --- a/apps/app_window_interactive_uitest.cc +++ b/apps/app_window_interactive_uitest.cc @@ -2,8 +2,8 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#include "apps/ui/native_app_window.h" #include "chrome/browser/apps/app_browsertest_util.h" +#include "extensions/browser/app_window/native_app_window.h" using extensions::PlatformAppBrowserTest; using extensions::Extension; diff --git a/apps/app_window_registry.cc b/apps/app_window_registry.cc index 79a3373..0874a5e 100644 --- a/apps/app_window_registry.cc +++ b/apps/app_window_registry.cc @@ -9,7 +9,6 @@ #include "apps/app_window.h" #include "apps/ui/apps_client.h" -#include "apps/ui/native_app_window.h" #include "components/keyed_service/content/browser_context_dependency_manager.h" #include "content/public/browser/browser_context.h" #include "content/public/browser/devtools_agent_host.h" @@ -17,6 +16,7 @@ #include "content/public/browser/render_view_host.h" #include "content/public/browser/site_instance.h" #include "content/public/browser/web_contents.h" +#include "extensions/browser/app_window/native_app_window.h" #include "extensions/browser/extensions_browser_client.h" #include "extensions/common/extension.h" diff --git a/apps/apps.gypi b/apps/apps.gypi index 2f7f9e9..e6580c5 100644 --- a/apps/apps.gypi +++ b/apps/apps.gypi @@ -65,7 +65,6 @@ 'switches.h', 'ui/apps_client.cc', 'ui/apps_client.h', - 'ui/native_app_window.h', 'ui/views/app_window_frame_view.cc', 'ui/views/app_window_frame_view.h', 'ui/views/native_app_window_views.cc', diff --git a/apps/ui/apps_client.h b/apps/ui/apps_client.h index 2f26dbc..da4b2bf 100644 --- a/apps/ui/apps_client.h +++ b/apps/ui/apps_client.h @@ -15,12 +15,11 @@ class BrowserContext; namespace extensions { class Extension; +class NativeAppWindow; } namespace apps { -class NativeAppWindow; - // Sets up global state for the apps system. Should be Set() once in each // process. This should be implemented by the client of the apps system. class AppsClient { @@ -34,8 +33,8 @@ class AppsClient { content::BrowserContext* context, const extensions::Extension* extension) = 0; - // Creates a new apps::NativeAppWindow for |window|. - virtual NativeAppWindow* CreateNativeAppWindow( + // Creates a new extensions::NativeAppWindow for |window|. + virtual extensions::NativeAppWindow* CreateNativeAppWindow( AppWindow* window, const AppWindow::CreateParams& params) = 0; diff --git a/apps/ui/native_app_window.h b/apps/ui/native_app_window.h deleted file mode 100644 index 3ad531d..0000000 --- a/apps/ui/native_app_window.h +++ /dev/null @@ -1,96 +0,0 @@ -// Copyright 2013 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#ifndef APPS_UI_NATIVE_APP_WINDOW_H_ -#define APPS_UI_NATIVE_APP_WINDOW_H_ - -#include "apps/app_window.h" -#include "components/web_modal/web_contents_modal_dialog_host.h" -#include "third_party/skia/include/core/SkColor.h" -#include "ui/base/base_window.h" -#include "ui/gfx/insets.h" - -namespace apps { - -// This is an interface to a native implementation of a app window, used for -// new-style packaged apps. App windows contain a web contents, but no tabs -// or URL bar. -class NativeAppWindow : public ui::BaseWindow, - public web_modal::WebContentsModalDialogHost { - public: - // Sets whether the window is fullscreen and the type of fullscreen. - // |fullscreen_types| is a bit field of AppWindow::FullscreenType. - virtual void SetFullscreen(int fullscreen_types) = 0; - - // Returns whether the window is fullscreen or about to enter fullscreen. - virtual bool IsFullscreenOrPending() const = 0; - - // Called when the icon of the window changes. - virtual void UpdateWindowIcon() = 0; - - // Called when the title of the window changes. - virtual void UpdateWindowTitle() = 0; - - // Called to update the badge icon. - virtual void UpdateBadgeIcon() = 0; - - // Called when the draggable regions are changed. - virtual void UpdateDraggableRegions( - const std::vector<extensions::DraggableRegion>& regions) = 0; - - // Returns the region used by frameless windows for dragging. May return NULL. - virtual SkRegion* GetDraggableRegion() = 0; - - // Called when the window shape is changed. If |region| is NULL then the - // window is restored to the default shape. - virtual void UpdateShape(scoped_ptr<SkRegion> region) = 0; - - // Allows the window to handle unhandled keyboard messages coming back from - // the renderer. - virtual void HandleKeyboardEvent( - const content::NativeWebKeyboardEvent& event) = 0; - - // Returns true if the window has no frame, as for a window opened by - // chrome.app.window.create with the option 'frame' set to 'none'. - virtual bool IsFrameless() const = 0; - - // Returns information about the window's frame. - virtual bool HasFrameColor() const = 0; - virtual SkColor ActiveFrameColor() const = 0; - virtual SkColor InactiveFrameColor() const = 0; - - // Returns the difference between the window bounds (including titlebar and - // borders) and the content bounds, if any. - virtual gfx::Insets GetFrameInsets() const = 0; - - // Hide or show this window as part of hiding or showing the app. - // This may have different logic to Hide, Show, and ShowInactive as those are - // called via the AppWindow javascript API. - virtual void ShowWithApp() = 0; - virtual void HideWithApp() = 0; - - // Updates custom entries for the context menu of the app's taskbar/dock/shelf - // icon. - virtual void UpdateShelfMenu() = 0; - - // Returns the minimum size constraints of the content. - virtual gfx::Size GetContentMinimumSize() const = 0; - - // Returns the maximum size constraints of the content. - virtual gfx::Size GetContentMaximumSize() const = 0; - - // Updates the minimum and maximum size constraints of the content. - virtual void SetContentSizeConstraints(const gfx::Size& min_size, - const gfx::Size& max_size) = 0; - - // Returns false if the underlying native window ignores alpha transparency - // when compositing. - virtual bool CanHaveAlphaEnabled() const = 0; - - virtual ~NativeAppWindow() {} -}; - -} // namespace apps - -#endif // APPS_UI_NATIVE_APP_WINDOW_H_ diff --git a/apps/ui/views/app_window_frame_view.cc b/apps/ui/views/app_window_frame_view.cc index 4fd0955..7ca0180 100644 --- a/apps/ui/views/app_window_frame_view.cc +++ b/apps/ui/views/app_window_frame_view.cc @@ -4,8 +4,8 @@ #include "apps/ui/views/app_window_frame_view.h" -#include "apps/ui/native_app_window.h" #include "base/strings/utf_string_conversions.h" +#include "extensions/browser/app_window/native_app_window.h" #include "extensions/common/draggable_region.h" #include "grit/theme_resources.h" #include "grit/ui_strings.h" // Accessibility names @@ -38,7 +38,7 @@ const char AppWindowFrameView::kViewClassName[] = "browser/ui/views/extensions/AppWindowFrameView"; AppWindowFrameView::AppWindowFrameView(views::Widget* widget, - NativeAppWindow* window, + extensions::NativeAppWindow* window, bool draw_frame, const SkColor& active_frame_color, const SkColor& inactive_frame_color) diff --git a/apps/ui/views/app_window_frame_view.h b/apps/ui/views/app_window_frame_view.h index d7cbf9f..19a982c 100644 --- a/apps/ui/views/app_window_frame_view.h +++ b/apps/ui/views/app_window_frame_view.h @@ -16,6 +16,10 @@ class SkRegion; +namespace extensions { +class NativeAppWindow; +} + namespace gfx { class Canvas; class Point; @@ -32,8 +36,6 @@ class Widget; namespace apps { -class NativeAppWindow; - // A frameless or non-Ash, non-panel NonClientFrameView for app windows. class AppWindowFrameView : public views::NonClientFrameView, public views::ButtonListener { @@ -49,7 +51,7 @@ class AppWindowFrameView : public views::NonClientFrameView, // TODO(benwells): Refactor this to split out frameless and colored frame // views. See http://crbug.com/359432. AppWindowFrameView(views::Widget* widget, - NativeAppWindow* window, + extensions::NativeAppWindow* window, bool draw_frame, const SkColor& active_frame_color, const SkColor& inactive_frame_color); @@ -96,7 +98,7 @@ class AppWindowFrameView : public views::NonClientFrameView, SkColor CurrentFrameColor(); views::Widget* widget_; - NativeAppWindow* window_; + extensions::NativeAppWindow* window_; bool draw_frame_; SkColor active_frame_color_; SkColor inactive_frame_color_; diff --git a/apps/ui/views/native_app_window_views.h b/apps/ui/views/native_app_window_views.h index 666d1a9..94bc960 100644 --- a/apps/ui/views/native_app_window_views.h +++ b/apps/ui/views/native_app_window_views.h @@ -5,9 +5,10 @@ #ifndef APPS_UI_VIEWS_NATIVE_APP_WINDOW_VIEWS_H_ #define APPS_UI_VIEWS_NATIVE_APP_WINDOW_VIEWS_H_ -#include "apps/ui/native_app_window.h" +#include "apps/app_window.h" #include "base/observer_list.h" #include "content/public/browser/web_contents_observer.h" +#include "extensions/browser/app_window/native_app_window.h" #include "extensions/browser/app_window/size_constraints.h" #include "ui/gfx/rect.h" #include "ui/views/controls/webview/unhandled_keyboard_event_handler.h" @@ -42,7 +43,7 @@ class AppWindowFrameView; // A NativeAppWindow backed by a views::Widget. This class may be used alone // as a stub or subclassed (for example, ChromeNativeAppWindowViews). -class NativeAppWindowViews : public NativeAppWindow, +class NativeAppWindowViews : public extensions::NativeAppWindow, public content::WebContentsObserver, public views::WidgetDelegateView, public views::WidgetObserver { |