Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(321)

Side by Side Diff: chrome/browser/extensions/window_controller.h

Issue 1099553002: extensions: windows: list all windows from the current profile (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: nit Created 5 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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 #ifndef CHROME_BROWSER_EXTENSIONS_WINDOW_CONTROLLER_H_ 5 #ifndef CHROME_BROWSER_EXTENSIONS_WINDOW_CONTROLLER_H_
6 #define CHROME_BROWSER_EXTENSIONS_WINDOW_CONTROLLER_H_ 6 #define CHROME_BROWSER_EXTENSIONS_WINDOW_CONTROLLER_H_
7 7
8 #include <string> 8 #include <string>
9 9
10 #include "base/basictypes.h" 10 #include "base/basictypes.h"
11 #include "base/compiler_specific.h" 11 #include "base/compiler_specific.h"
12 #include "chrome/common/extensions/api/windows.h"
12 13
13 class Browser; // TODO(stevenjb) eliminate this dependency. 14 class Browser; // TODO(stevenjb) eliminate this dependency.
14 class GURL; 15 class GURL;
15 class Profile; 16 class Profile;
16 class SessionID; 17 class SessionID;
17 18
18 namespace base { 19 namespace base {
19 class DictionaryValue; 20 class DictionaryValue;
20 } 21 }
21 22
(...skipping 12 matching lines...) Expand all
34 // through chrome.windows or chrome.tabs (e.g. browser windows and panels). 35 // through chrome.windows or chrome.tabs (e.g. browser windows and panels).
35 // Subclasses must add/remove themselves from the WindowControllerList 36 // Subclasses must add/remove themselves from the WindowControllerList
36 // upon construction/destruction. 37 // upon construction/destruction.
37 class WindowController { 38 class WindowController {
38 public: 39 public:
39 enum Reason { 40 enum Reason {
40 REASON_NONE, 41 REASON_NONE,
41 REASON_NOT_EDITABLE, 42 REASON_NOT_EDITABLE,
42 }; 43 };
43 44
45 // A bitmaks used as filter on window types.
46 using TypeFilter = uint32_t;
47
48 // Returns a filter allowing all window types to be manipulated
49 // through the chrome.windows APIs.
50 static TypeFilter GetAllWindowFilter();
51
52 // Returns the default filter to be used when operating on the windows
53 // from WindowControllerList when using the chrome.windows APIs.
54 static TypeFilter GetDefaultWindowFilter();
55
56 // Builds a filter out of a vector of window types.
57 static TypeFilter GetFilterFromWindowTypes(
58 const std::vector<api::windows::WindowType>& types);
59
44 WindowController(ui::BaseWindow* window, Profile* profile); 60 WindowController(ui::BaseWindow* window, Profile* profile);
45 virtual ~WindowController(); 61 virtual ~WindowController();
46 62
47 ui::BaseWindow* window() const { return window_; } 63 ui::BaseWindow* window() const { return window_; }
48 64
49 Profile* profile() const { return profile_; } 65 Profile* profile() const { return profile_; }
50 66
51 // Return an id uniquely identifying the window. 67 // Return an id uniquely identifying the window.
52 virtual int GetWindowId() const = 0; 68 virtual int GetWindowId() const = 0;
53 69
(...skipping 22 matching lines...) Expand all
76 const GURL& extension_url) const = 0; 92 const GURL& extension_url) const = 0;
77 93
78 // Returns a Browser if available. Defaults to returning NULL. 94 // Returns a Browser if available. Defaults to returning NULL.
79 // TODO(stevenjb): Temporary workaround. Eliminate this. 95 // TODO(stevenjb): Temporary workaround. Eliminate this.
80 virtual Browser* GetBrowser() const; 96 virtual Browser* GetBrowser() const;
81 97
82 // Extension/window visibility and ownership is window-specific, subclasses 98 // Extension/window visibility and ownership is window-specific, subclasses
83 // need to define this behavior. 99 // need to define this behavior.
84 virtual bool IsVisibleToExtension(const Extension* extension) const = 0; 100 virtual bool IsVisibleToExtension(const Extension* extension) const = 0;
85 101
102 // Returns true if the window type of the controller matches the |filter|.
103 bool MatchesFilter(TypeFilter filter) const;
104
86 private: 105 private:
87 ui::BaseWindow* window_; 106 ui::BaseWindow* window_;
88 Profile* profile_; 107 Profile* profile_;
89 108
90 DISALLOW_COPY_AND_ASSIGN(WindowController); 109 DISALLOW_COPY_AND_ASSIGN(WindowController);
91 }; 110 };
92 111
93 } // namespace extensions 112 } // namespace extensions
94 113
95 #endif // CHROME_BROWSER_EXTENSIONS_WINDOW_CONTROLLER_H_ 114 #endif // CHROME_BROWSER_EXTENSIONS_WINDOW_CONTROLLER_H_
OLDNEW
« no previous file with comments | « chrome/browser/extensions/extension_tab_util.cc ('k') | chrome/browser/extensions/window_controller.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698