summaryrefslogtreecommitdiffstats
path: root/apps
diff options
context:
space:
mode:
authorgarykac@chromium.org <garykac@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-08-12 15:36:30 +0000
committergarykac@chromium.org <garykac@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-08-12 15:37:46 +0000
commit6b6e01ba9b54db624d6104b801d2e54b8dcf506f (patch)
tree40c115362e27546dd268ebca1ae8ab9817fdb369 /apps
parent7e75117e3e21c9fb1cc04f6eae534fa7da724cb2 (diff)
downloadchromium_src-6b6e01ba9b54db624d6104b801d2e54b8dcf506f.zip
chromium_src-6b6e01ba9b54db624d6104b801d2e54b8dcf506f.tar.gz
chromium_src-6b6e01ba9b54db624d6104b801d2e54b8dcf506f.tar.bz2
Update support for alphaEnabled (transparent windows) API
Rename transparentBackground -> alphaEnabled (per the spec). Add app.window.alphaEnabled permission to control which apps are allowed to use alphaEnabled when creating windows. Add browsertests to verify that the API is only available when permission had been granted and Beta channel or newer. Add a whitelist (only used in Stable) for this API that defaults to the same set of apps as for app.window.shape. BUG=260810 Review URL: https://codereview.chromium.org/190533006 Cr-Commit-Position: refs/heads/master@{#288983} git-svn-id: svn://svn.chromium.org/chrome/trunk/src@288983 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'apps')
-rw-r--r--apps/app_window.cc15
-rw-r--r--apps/app_window.h12
-rw-r--r--apps/ui/views/native_app_window_views.cc3
3 files changed, 14 insertions, 16 deletions
diff --git a/apps/app_window.cc b/apps/app_window.cc
index 718476a..eb4f81a 100644
--- a/apps/app_window.cc
+++ b/apps/app_window.cc
@@ -160,13 +160,14 @@ AppWindow::CreateParams::CreateParams()
has_frame_color(false),
active_frame_color(SK_ColorBLACK),
inactive_frame_color(SK_ColorBLACK),
- transparent_background(false),
+ alpha_enabled(false),
creator_process_id(0),
state(ui::SHOW_STATE_DEFAULT),
hidden(false),
resizable(true),
focused(true),
- always_on_top(false) {}
+ always_on_top(false) {
+}
AppWindow::CreateParams::~CreateParams() {}
@@ -243,7 +244,7 @@ AppWindow::AppWindow(BrowserContext* context,
can_send_events_(false),
is_hidden_(false),
cached_always_on_top_(false),
- requested_transparent_background_(false) {
+ requested_alpha_enabled_(false) {
extensions::ExtensionsBrowserClient* client =
extensions::ExtensionsBrowserClient::Get();
CHECK(!client->IsGuestSession(context) || context->IsOffTheRecord())
@@ -283,7 +284,7 @@ void AppWindow::Init(const GURL& url,
if (new_params.state == ui::SHOW_STATE_FULLSCREEN)
new_params.always_on_top = false;
- requested_transparent_background_ = new_params.transparent_background;
+ requested_alpha_enabled_ = new_params.alpha_enabled;
AppsClient* apps_client = AppsClient::Get();
native_app_window_.reset(
@@ -731,9 +732,9 @@ void AppWindow::GetSerializedState(base::DictionaryValue* properties) const {
properties->SetBoolean("maximized", native_app_window_->IsMaximized());
properties->SetBoolean("alwaysOnTop", IsAlwaysOnTop());
properties->SetBoolean("hasFrameColor", native_app_window_->HasFrameColor());
- properties->SetBoolean("alphaEnabled",
- requested_transparent_background_ &&
- native_app_window_->CanHaveAlphaEnabled());
+ properties->SetBoolean(
+ "alphaEnabled",
+ requested_alpha_enabled_ && native_app_window_->CanHaveAlphaEnabled());
// These properties are undocumented and are to enable testing. Alpha is
// removed to
diff --git a/apps/app_window.h b/apps/app_window.h
index c226265..7e35b81 100644
--- a/apps/app_window.h
+++ b/apps/app_window.h
@@ -152,7 +152,7 @@ class AppWindow : public content::NotificationObserver,
bool has_frame_color;
SkColor active_frame_color;
SkColor inactive_frame_color;
- bool transparent_background; // Only supported on ash.
+ bool alpha_enabled;
// The initial content/inner bounds specification (excluding any window
// decorations).
@@ -344,10 +344,8 @@ class AppWindow : public content::NotificationObserver,
// app.
void WindowEventsReady();
- // Whether the app window wants a transparent background.
- bool requested_transparent_background() const {
- return requested_transparent_background_;
- }
+ // Whether the app window wants to be alpha enabled.
+ bool requested_alpha_enabled() const { return requested_alpha_enabled_; }
protected:
virtual ~AppWindow();
@@ -547,8 +545,8 @@ class AppWindow : public content::NotificationObserver,
// taskbar.
bool cached_always_on_top_;
- // Whether |transparent_background| was set in the CreateParams.
- bool requested_transparent_background_;
+ // Whether |alpha_enabled| was set in the CreateParams.
+ bool requested_alpha_enabled_;
DISALLOW_COPY_AND_ASSIGN(AppWindow);
};
diff --git a/apps/ui/views/native_app_window_views.cc b/apps/ui/views/native_app_window_views.cc
index da84d8a..b2135fc 100644
--- a/apps/ui/views/native_app_window_views.cc
+++ b/apps/ui/views/native_app_window_views.cc
@@ -262,8 +262,7 @@ void NativeAppWindowViews::OnWidgetActivationChanged(views::Widget* widget,
void NativeAppWindowViews::RenderViewCreated(
content::RenderViewHost* render_view_host) {
- if (app_window_->requested_transparent_background() &&
- CanHaveAlphaEnabled()) {
+ if (app_window_->requested_alpha_enabled() && CanHaveAlphaEnabled()) {
content::RenderWidgetHostView* view = render_view_host->GetView();
DCHECK(view);
view->SetBackgroundOpaque(false);