OLD | NEW |
1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 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 "chrome/browser/extensions/api/tabs/windows_util.h" | 5 #include "chrome/browser/extensions/api/tabs/windows_util.h" |
6 | 6 |
7 #include "base/strings/string_number_conversions.h" | 7 #include "base/strings/string_number_conversions.h" |
8 #include "chrome/browser/extensions/api/tabs/tabs_constants.h" | 8 #include "chrome/browser/extensions/api/tabs/tabs_constants.h" |
9 #include "chrome/browser/extensions/chrome_extension_function.h" | 9 #include "chrome/browser/extensions/chrome_extension_function.h" |
10 #include "chrome/browser/extensions/chrome_extension_function_details.h" | 10 #include "chrome/browser/extensions/chrome_extension_function_details.h" |
11 #include "chrome/browser/extensions/window_controller.h" | 11 #include "chrome/browser/extensions/window_controller.h" |
12 #include "chrome/browser/extensions/window_controller_list.h" | 12 #include "chrome/browser/extensions/window_controller_list.h" |
13 #include "extensions/browser/extension_function_dispatcher.h" | 13 #include "extensions/browser/extension_function_dispatcher.h" |
14 #include "extensions/common/constants.h" | 14 #include "extensions/common/constants.h" |
15 #include "extensions/common/error_utils.h" | 15 #include "extensions/common/error_utils.h" |
16 | 16 |
17 namespace windows_util { | 17 namespace windows_util { |
18 | 18 |
19 bool GetWindowFromWindowID(ChromeUIThreadExtensionFunction* function, | 19 bool GetWindowFromWindowID(ChromeUIThreadExtensionFunction* function, |
20 int window_id, | 20 int window_id, |
21 extensions::WindowController** controller) { | 21 extensions::WindowController** controller) { |
22 ChromeExtensionFunctionDetails function_details(function); | 22 ChromeExtensionFunctionDetails function_details(function); |
23 if (window_id == extension_misc::kCurrentWindowId) { | 23 if (window_id == extension_misc::kCurrentWindowId) { |
24 extensions::WindowController* extension_window_controller = | 24 extensions::WindowController* extension_window_controller = |
25 function->dispatcher()->delegate()->GetExtensionWindowController(); | 25 function->dispatcher()->GetExtensionWindowController(); |
26 // If there is a window controller associated with this extension, use that. | 26 // If there is a window controller associated with this extension, use that. |
27 if (extension_window_controller) { | 27 if (extension_window_controller) { |
28 *controller = extension_window_controller; | 28 *controller = extension_window_controller; |
29 } else { | 29 } else { |
30 // Otherwise get the focused or most recently added window. | 30 // Otherwise get the focused or most recently added window. |
31 *controller = extensions::WindowControllerList::GetInstance() | 31 *controller = extensions::WindowControllerList::GetInstance() |
32 ->CurrentWindowForFunction(function_details); | 32 ->CurrentWindowForFunction(function_details); |
33 } | 33 } |
34 if (!(*controller)) { | 34 if (!(*controller)) { |
35 function->SetError(extensions::tabs_constants::kNoCurrentWindowError); | 35 function->SetError(extensions::tabs_constants::kNoCurrentWindowError); |
36 return false; | 36 return false; |
37 } | 37 } |
38 } else { | 38 } else { |
39 *controller = extensions::WindowControllerList::GetInstance() | 39 *controller = extensions::WindowControllerList::GetInstance() |
40 ->FindWindowForFunctionById(function_details, window_id); | 40 ->FindWindowForFunctionById(function_details, window_id); |
41 if (!(*controller)) { | 41 if (!(*controller)) { |
42 function->SetError(extensions::ErrorUtils::FormatErrorMessage( | 42 function->SetError(extensions::ErrorUtils::FormatErrorMessage( |
43 extensions::tabs_constants::kWindowNotFoundError, | 43 extensions::tabs_constants::kWindowNotFoundError, |
44 base::IntToString(window_id))); | 44 base::IntToString(window_id))); |
45 return false; | 45 return false; |
46 } | 46 } |
47 } | 47 } |
48 return true; | 48 return true; |
49 } | 49 } |
50 | 50 |
51 } // namespace windows_util | 51 } // namespace windows_util |
OLD | NEW |