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

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

Issue 10584026: Allow ChromeOS file selection dialog to be shown from shell windows. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Another rebase Created 8 years, 6 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 | Annotate | Revision Log
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_SHELL_WINDOW_REGISTRY_H_ 5 #ifndef CHROME_BROWSER_EXTENSIONS_SHELL_WINDOW_REGISTRY_H_
6 #define CHROME_BROWSER_EXTENSIONS_SHELL_WINDOW_REGISTRY_H_ 6 #define CHROME_BROWSER_EXTENSIONS_SHELL_WINDOW_REGISTRY_H_
7 #pragma once 7 #pragma once
8 8
9 #include <set> 9 #include <set>
10 10
11 #include "base/compiler_specific.h" 11 #include "base/compiler_specific.h"
12 #include "base/memory/singleton.h" 12 #include "base/memory/singleton.h"
13 #include "base/observer_list.h" 13 #include "base/observer_list.h"
14 #include "chrome/browser/profiles/profile_keyed_service.h" 14 #include "chrome/browser/profiles/profile_keyed_service.h"
15 #include "chrome/browser/profiles/profile_keyed_service_factory.h" 15 #include "chrome/browser/profiles/profile_keyed_service_factory.h"
16 #include "ui/gfx/native_widget_types.h"
16 17
17 class Profile; 18 class Profile;
18 class ShellWindow; 19 class ShellWindow;
19 20
20 namespace content { 21 namespace content {
21 class RenderViewHost; 22 class RenderViewHost;
22 } 23 }
23 24
24 // The ShellWindowRegistry tracks the ShellWindows for all platform apps for a 25 // The ShellWindowRegistry tracks the ShellWindows for all platform apps for a
25 // particular profile. 26 // particular profile.
(...skipping 28 matching lines...) Expand all
54 void AddShellWindow(ShellWindow* shell_window); 55 void AddShellWindow(ShellWindow* shell_window);
55 void RemoveShellWindow(ShellWindow* shell_window); 56 void RemoveShellWindow(ShellWindow* shell_window);
56 57
57 void AddObserver(Observer* observer); 58 void AddObserver(Observer* observer);
58 void RemoveObserver(Observer* observer); 59 void RemoveObserver(Observer* observer);
59 60
60 // Returns a set of windows owned by the application identified by app_id. 61 // Returns a set of windows owned by the application identified by app_id.
61 ShellWindowSet GetShellWindowsForApp(const std::string app_id) const; 62 ShellWindowSet GetShellWindowsForApp(const std::string app_id) const;
62 const ShellWindowSet& shell_windows() const { return shell_windows_; } 63 const ShellWindowSet& shell_windows() const { return shell_windows_; }
63 64
65 // Helper functions to find shell windows with particular attributes.
64 ShellWindow* GetShellWindowForRenderViewHost( 66 ShellWindow* GetShellWindowForRenderViewHost(
65 content::RenderViewHost* render_view_host) const; 67 content::RenderViewHost* render_view_host) const;
68 ShellWindow* GetShellWindowForNativeWindow(gfx::NativeWindow window) const;
66 69
67 private: 70 private:
68 class Factory : public ProfileKeyedServiceFactory { 71 class Factory : public ProfileKeyedServiceFactory {
69 public: 72 public:
70 static ShellWindowRegistry* GetForProfile(Profile* profile); 73 static ShellWindowRegistry* GetForProfile(Profile* profile);
71 74
72 static Factory* GetInstance(); 75 static Factory* GetInstance();
73 private: 76 private:
74 friend struct DefaultSingletonTraits<Factory>; 77 friend struct DefaultSingletonTraits<Factory>;
75 78
76 Factory(); 79 Factory();
77 virtual ~Factory(); 80 virtual ~Factory();
78 81
79 // ProfileKeyedServiceFactory 82 // ProfileKeyedServiceFactory
80 virtual ProfileKeyedService* BuildServiceInstanceFor( 83 virtual ProfileKeyedService* BuildServiceInstanceFor(
81 Profile* profile) const OVERRIDE; 84 Profile* profile) const OVERRIDE;
82 virtual bool ServiceIsCreatedWithProfile() OVERRIDE; 85 virtual bool ServiceIsCreatedWithProfile() OVERRIDE;
83 virtual bool ServiceIsNULLWhileTesting() OVERRIDE; 86 virtual bool ServiceIsNULLWhileTesting() OVERRIDE;
84 }; 87 };
85 88
86 ShellWindowSet shell_windows_; 89 ShellWindowSet shell_windows_;
87 ObserverList<Observer> observers_; 90 ObserverList<Observer> observers_;
88 }; 91 };
89 92
90 #endif // CHROME_BROWSER_EXTENSIONS_SHELL_WINDOW_REGISTRY_H_ 93 #endif // CHROME_BROWSER_EXTENSIONS_SHELL_WINDOW_REGISTRY_H_
OLDNEW
« no previous file with comments | « chrome/browser/extensions/extension_process_manager.cc ('k') | chrome/browser/extensions/shell_window_registry.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698