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 63c40c0cee24d7d4849f528d714615b3ddd6b3c6..cba35a267eaa680dc13001bebeb3f8924d9c6655 100644 |
--- a/chrome/browser/extensions/api/app_window/app_window_api.cc |
+++ b/chrome/browser/extensions/api/app_window/app_window_api.cc |
@@ -48,6 +48,8 @@ const char kInactiveColorWithoutColor[] = |
"frame.inactiveColor must be used with frame.color."; |
const char kConflictingBoundsOptions[] = |
"The $1 property cannot be specified for both inner and outer bounds."; |
+const char kAlwaysOnTopPermission[] = |
+ "The \"app.window.alwaysOnTop\" permission is required."; |
} // namespace app_window_constants |
const char kNoneFrameOption[] = "none"; |
@@ -234,10 +236,16 @@ bool AppWindowCreateFunction::RunAsync() { |
if (options->resizable.get()) |
create_params.resizable = *options->resizable.get(); |
- if (options->always_on_top.get() && |
- GetExtension()->HasAPIPermission(APIPermission::kAlwaysOnTopWindows)) |
+ if (options->always_on_top.get()) { |
create_params.always_on_top = *options->always_on_top.get(); |
+ if (create_params.always_on_top && !GetExtension()->HasAPIPermission( |
+ APIPermission::kAlwaysOnTopWindows)) { |
+ error_ = app_window_constants::kAlwaysOnTopPermission; |
+ return false; |
+ } |
+ } |
+ |
if (options->focused.get()) |
create_params.focused = *options->focused.get(); |