Enable Enterprise enrollment on desktop builds.
[chromium-blink-merge.git] / chrome / browser / extensions / api / tabs / windows_util.cc
blob88363d1425c255826cbd2362dd40f745e78e40d0
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
3 // found in the LICENSE file.
5 #include "chrome/browser/extensions/api/tabs/windows_util.h"
7 #include "base/strings/string_number_conversions.h"
8 #include "chrome/browser/extensions/api/tabs/tabs_constants.h"
9 #include "chrome/browser/extensions/chrome_extension_function.h"
10 #include "chrome/browser/extensions/window_controller.h"
11 #include "chrome/browser/extensions/window_controller_list.h"
12 #include "extensions/browser/extension_function_dispatcher.h"
13 #include "extensions/common/constants.h"
14 #include "extensions/common/error_utils.h"
16 namespace windows_util {
18 bool GetWindowFromWindowID(ChromeAsyncExtensionFunction* function,
19 int window_id,
20 extensions::WindowController** controller) {
21 if (window_id == extension_misc::kCurrentWindowId) {
22 extensions::WindowController* extension_window_controller =
23 function->dispatcher()->delegate()->GetExtensionWindowController();
24 // If there is a window controller associated with this extension, use that.
25 if (extension_window_controller) {
26 *controller = extension_window_controller;
27 } else {
28 // Otherwise get the focused or most recently added window.
29 *controller = extensions::WindowControllerList::GetInstance()->
30 CurrentWindowForFunction(function);
32 if (!(*controller)) {
33 function->SetError(extensions::tabs_constants::kNoCurrentWindowError);
34 return false;
36 } else {
37 *controller = extensions::WindowControllerList::GetInstance()->
38 FindWindowForFunctionById(function, window_id);
39 if (!(*controller)) {
40 function->SetError(extensions::ErrorUtils::FormatErrorMessage(
41 extensions::tabs_constants::kWindowNotFoundError,
42 base::IntToString(window_id)));
43 return false;
46 return true;
49 } // namespace windows_util