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 199fbf4b9afcf5c70f65f9c120e15ee1d71df112..4ad6d10e962c96a30bdefa557a1a22389c7186df 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,15 @@ 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 kAlphaEnabledMissingPermission[] = |
| + "The alphaEnabled option requires app.window.alpha permission."; |
| +#if !defined(USE_AURA) |
|
jackhou1
2014/07/22 05:35:35
It might be better to just allow apps to set this
garykac
2014/07/25 22:50:31
Done. Actually, that matches the current doc for
jackhou1
2014/07/29 23:39:10
Oops, I should have been clearer. We should probab
garykac
2014/08/04 23:11:53
Done.
|
| +const char kAlphaEnabledNotSupported[] = |
| + "Alpha-blended windows are not supported on this platform."; |
| +#endif |
| +const char kAlphaEnabledWrongChannel[] = |
| + "The alphaEnabled option requires beta channel or newer."; |
| } // namespace app_window_constants |
| const char kNoneFrameOption[] = "none"; |
| @@ -232,12 +241,22 @@ bool AppWindowCreateFunction::RunAsync() { |
| if (!GetFrameOptions(*options, &create_params)) |
| return false; |
| - if (options->transparent_background.get() && |
| - (GetExtension()->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 (!GetExtension()->permissions_data()->HasAPIPermission( |
| + APIPermission::kAlphaEnabled)) { |
| + error_ = app_window_constants::kAlphaEnabledMissingPermission; |
| + return false; |
| + } |
| +#if !defined(USE_AURA) |
| + error_ = app_window_constants::kAlphaEnabledNotSupported; |
| + return false; |
| +#else |
| + create_params.alpha_enabled = *options->alpha_enabled; |
| +#endif |
| } |
| if (options->hidden.get()) |