Chromium Code Reviews| Index: chrome/browser/extensions/api/app_window/app_window_api.cc |
| diff --git a/chrome/browser/extensions/api/app_window/app_window_api.cc b/chrome/browser/extensions/api/app_window/app_window_api.cc |
| index a0c95af7b37d3c6d158eac198eb42757dafc5fa0..cc0bd36ab2f2d58147b20c29e47051cd8704e208 100644 |
| --- a/chrome/browser/extensions/api/app_window/app_window_api.cc |
| +++ b/chrome/browser/extensions/api/app_window/app_window_api.cc |
| @@ -54,6 +54,10 @@ const char kAlwaysOnTopPermission[] = |
| "The \"app.window.alwaysOnTop\" permission is required."; |
| const char kInvalidUrlParameter[] = |
| "The URL used for window creation must be local for security reasons."; |
| +const char kAlphaEnabledWrongChannel[] = |
| + "The alphaEnabled option requires beta channel or newer."; |
|
benwells
2014/08/05 23:37:05
Normally we restrict to dev, not beta. Any reason
garykac
2014/08/07 03:54:00
I was matching the Shape permissions, but that's n
|
| +const char kAlphaEnabledMissingPermission[] = |
| + "The alphaEnabled option requires app.window.alpha permission."; |
| } // namespace app_window_constants |
| const char kNoneFrameOption[] = "none"; |
| @@ -234,12 +238,22 @@ bool AppWindowCreateFunction::RunAsync() { |
| if (!GetFrameOptions(*options, &create_params)) |
| return false; |
| - if (options->transparent_background.get() && |
| - (extension()->permissions_data()->HasAPIPermission( |
| - APIPermission::kExperimental) || |
| - CommandLine::ForCurrentProcess()->HasSwitch( |
| - switches::kEnableExperimentalExtensionApis))) { |
| - create_params.transparent_background = *options->transparent_background; |
| + if (options->alpha_enabled.get()) { |
| + if (GetCurrentChannel() > chrome::VersionInfo::CHANNEL_BETA) { |
| + error_ = app_window_constants::kAlphaEnabledWrongChannel; |
| + return false; |
| + } |
| + if (!extension()->permissions_data()->HasAPIPermission( |
| + APIPermission::kAlphaEnabled)) { |
| + error_ = app_window_constants::kAlphaEnabledMissingPermission; |
| + return false; |
| + } |
| +#if defined(USE_AURA) |
| + create_params.alpha_enabled = *options->alpha_enabled; |
| +#else |
| + // Transparency is only supported on Aura. |
| + // Fallback to creating an opaque window (by ignoring alphaEnabled). |
| +#endif |
| } |
| if (options->hidden.get()) |