OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "extensions/browser/api/app_window/app_window_api.h" | 5 #include "extensions/browser/api/app_window/app_window_api.h" |
6 | 6 |
7 #include <memory> | 7 #include <memory> |
8 #include <utility> | 8 #include <utility> |
9 | 9 |
10 #include "base/command_line.h" | 10 #include "base/command_line.h" |
(...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
68 const char kImeOptionIsNotSupported[] = | 68 const char kImeOptionIsNotSupported[] = |
69 "The \"ime\" option is not supported for platform app."; | 69 "The \"ime\" option is not supported for platform app."; |
70 #if !defined(OS_CHROMEOS) | 70 #if !defined(OS_CHROMEOS) |
71 const char kImeWindowUnsupportedPlatform[] = | 71 const char kImeWindowUnsupportedPlatform[] = |
72 "The \"ime\" option can only be used on ChromeOS."; | 72 "The \"ime\" option can only be used on ChromeOS."; |
73 #else | 73 #else |
74 const char kImeWindowMustBeImeWindowOrPanel[] = | 74 const char kImeWindowMustBeImeWindowOrPanel[] = |
75 "IME extensions must create ime window ( with \"ime: true\" and " | 75 "IME extensions must create ime window ( with \"ime: true\" and " |
76 "\"frame: 'none'\") or panel window (with \"type: panel\")."; | 76 "\"frame: 'none'\") or panel window (with \"type: panel\")."; |
77 #endif | 77 #endif |
| 78 const char kShowInShelfWindowKeyNotSet[] = |
| 79 "The \"showInShelf\" option requires the \"id\" option to be set."; |
78 } // namespace app_window_constants | 80 } // namespace app_window_constants |
79 | 81 |
80 const char kNoneFrameOption[] = "none"; | 82 const char kNoneFrameOption[] = "none"; |
81 | 83 |
82 namespace { | 84 namespace { |
83 | 85 |
84 // If the same property is specified for the inner and outer bounds, raise an | 86 // If the same property is specified for the inner and outer bounds, raise an |
85 // error. | 87 // error. |
86 bool CheckBoundsConflict(const std::unique_ptr<int>& inner_property, | 88 bool CheckBoundsConflict(const std::unique_ptr<int>& inner_property, |
87 const std::unique_ptr<int>& outer_property, | 89 const std::unique_ptr<int>& outer_property, |
(...skipping 226 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
314 } | 316 } |
315 | 317 |
316 if (options->focused.get()) | 318 if (options->focused.get()) |
317 create_params.focused = *options->focused; | 319 create_params.focused = *options->focused; |
318 | 320 |
319 if (options->visible_on_all_workspaces.get()) { | 321 if (options->visible_on_all_workspaces.get()) { |
320 create_params.visible_on_all_workspaces = | 322 create_params.visible_on_all_workspaces = |
321 *options->visible_on_all_workspaces; | 323 *options->visible_on_all_workspaces; |
322 } | 324 } |
323 | 325 |
| 326 if (options->show_in_shelf.get()) { |
| 327 create_params.show_in_shelf = *options->show_in_shelf.get(); |
| 328 |
| 329 if (create_params.show_in_shelf && create_params.window_key.empty()) { |
| 330 error_ = app_window_constants::kShowInShelfWindowKeyNotSet; |
| 331 return false; |
| 332 } |
| 333 } |
| 334 |
324 if (options->type != app_window::WINDOW_TYPE_PANEL) { | 335 if (options->type != app_window::WINDOW_TYPE_PANEL) { |
325 switch (options->state) { | 336 switch (options->state) { |
326 case app_window::STATE_NONE: | 337 case app_window::STATE_NONE: |
327 case app_window::STATE_NORMAL: | 338 case app_window::STATE_NORMAL: |
328 break; | 339 break; |
329 case app_window::STATE_FULLSCREEN: | 340 case app_window::STATE_FULLSCREEN: |
330 create_params.state = ui::SHOW_STATE_FULLSCREEN; | 341 create_params.state = ui::SHOW_STATE_FULLSCREEN; |
331 break; | 342 break; |
332 case app_window::STATE_MAXIMIZED: | 343 case app_window::STATE_MAXIMIZED: |
333 create_params.state = ui::SHOW_STATE_MAXIMIZED; | 344 create_params.state = ui::SHOW_STATE_MAXIMIZED; |
(...skipping 219 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
553 | 564 |
554 if (options.frame->as_frame_options->inactive_color.get()) { | 565 if (options.frame->as_frame_options->inactive_color.get()) { |
555 error_ = app_window_constants::kInactiveColorWithoutColor; | 566 error_ = app_window_constants::kInactiveColorWithoutColor; |
556 return false; | 567 return false; |
557 } | 568 } |
558 | 569 |
559 return true; | 570 return true; |
560 } | 571 } |
561 | 572 |
562 } // namespace extensions | 573 } // namespace extensions |
OLD | NEW |