| Index: chrome/browser/ui/settings_window_manager.h | 
| diff --git a/chrome/browser/ui/settings_window_manager.h b/chrome/browser/ui/settings_window_manager.h | 
| new file mode 100644 | 
| index 0000000000000000000000000000000000000000..01979e3ad97d5600f5f7ec0018f29e7d210ca484 | 
| --- /dev/null | 
| +++ b/chrome/browser/ui/settings_window_manager.h | 
| @@ -0,0 +1,43 @@ | 
| +// Copyright (c) 2014 The Chromium Authors. All rights reserved. | 
| +// Use of this source code is governed by a BSD-style license that can be | 
| +// found in the LICENSE file.# | 
| + | 
| +#ifndef CHROME_BROWSER_UI_SETTINGS_WINDOW_MANAGER_H_ | 
| +#define CHROME_BROWSER_UI_SETTINGS_WINDOW_MANAGER_H_ | 
| + | 
| +#include <map> | 
| +#include <string> | 
| + | 
| +#include "base/memory/singleton.h" | 
| +#include "chrome/browser/sessions/session_id.h" | 
| + | 
| +class Profile; | 
| + | 
| +namespace chrome { | 
| + | 
| +// Class for managing settings windows when --enable-settings-window is enabled. | 
| +// TODO(stevenjb): Remove flag comment if enabled by default. | 
| + | 
| +class SettingsWindowManager { | 
| + public: | 
| +  static SettingsWindowManager* GetInstance(); | 
| + | 
| +  // Show an existing settings window for |profile| or create a new one, and | 
| +  // navigate to |sub_page|. | 
| +  void ShowForProfile(Profile* profile, const std::string& sub_page); | 
| + | 
| + private: | 
| +  friend struct DefaultSingletonTraits<SettingsWindowManager>; | 
| +  typedef std::map<Profile*, SessionID::id_type> ProfileSessionMap; | 
| + | 
| +  SettingsWindowManager(); | 
| +  ~SettingsWindowManager(); | 
| + | 
| +  ProfileSessionMap settings_session_map_; | 
| + | 
| +  DISALLOW_COPY_AND_ASSIGN(SettingsWindowManager); | 
| +}; | 
| + | 
| +}  // namespace chrome | 
| + | 
| +#endif  // CHROME_BROWSER_UI_SETTINGS_WINDOW_MANAGER_H_ | 
|  |