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

Unified Diff: chrome/browser/extensions/shell_window_geometry_cache.h

Issue 14636012: Move ShellWindowGeometryCache into apps (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Rebase Created 7 years, 7 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 side-by-side diff with in-line comments
Download patch
Index: chrome/browser/extensions/shell_window_geometry_cache.h
diff --git a/chrome/browser/extensions/shell_window_geometry_cache.h b/chrome/browser/extensions/shell_window_geometry_cache.h
deleted file mode 100644
index 5648b0d4b7b802a8346d7e67330b700bc6856a07..0000000000000000000000000000000000000000
--- a/chrome/browser/extensions/shell_window_geometry_cache.h
+++ /dev/null
@@ -1,106 +0,0 @@
-// Copyright (c) 2012 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_EXTENSIONS_SHELL_WINDOW_GEOMETRY_CACHE_H_
-#define CHROME_BROWSER_EXTENSIONS_SHELL_WINDOW_GEOMETRY_CACHE_H_
-
-#include <map>
-#include <set>
-#include <string>
-
-#include "base/memory/scoped_ptr.h"
-#include "base/memory/weak_ptr.h"
-#include "base/time.h"
-#include "base/timer.h"
-#include "base/values.h"
-#include "content/public/browser/notification_observer.h"
-#include "content/public/browser/notification_registrar.h"
-#include "ui/base/ui_base_types.h"
-#include "ui/gfx/rect.h"
-
-class Profile;
-
-namespace extensions {
-
-class ExtensionPrefs;
-
-// A cache for persisted geometry of shell windows, both to not have to wait
-// for IO when creating a new window, and to not cause IO on every window
-// geometry change.
-class ShellWindowGeometryCache
- : public base::SupportsWeakPtr<ShellWindowGeometryCache>,
- public content::NotificationObserver {
- public:
- ShellWindowGeometryCache(Profile* profile,
- ExtensionPrefs* prefs);
-
- virtual ~ShellWindowGeometryCache();
-
- // Save the geometry and state associated with |extension_id| and |window_id|.
- void SaveGeometry(const std::string& extension_id,
- const std::string& window_id,
- const gfx::Rect& bounds,
- ui::WindowShowState state);
-
- // Get any saved geometry and state associated with |extension_id| and
- // |window_id|. If saved data exists, sets |bounds| and |state| if not NULL
- // and returns true.
- bool GetGeometry(const std::string& extension_id,
- const std::string& window_id,
- gfx::Rect* bounds,
- ui::WindowShowState* state) const;
-
- // Maximum number of windows we'll cache the geometry for per app.
- static const size_t kMaxCachedWindows = 100;
-
- protected:
- friend class ShellWindowGeometryCacheTest;
-
- // For tests, this modifies the timeout delay for saving changes from calls
- // to SaveGeometry. (Note that even if this is set to 0, you still need to
- // run the message loop to see the results of any SyncToStorage call).
- void SetSyncDelayForTests(int timeout_ms);
-
- private:
- // Data stored for each window.
- struct WindowData {
- WindowData() : window_state(ui::SHOW_STATE_DEFAULT) {}
- gfx::Rect bounds;
- ui::WindowShowState window_state;
- base::Time last_change;
- };
-
- // Data stored for each extension.
- typedef std::map<std::string, WindowData> ExtensionData;
-
- // content::NotificationObserver
- virtual void Observe(int type,
- const content::NotificationSource& source,
- const content::NotificationDetails& details) OVERRIDE;
-
- void OnExtensionLoaded(const std::string& extension_id);
- void OnExtensionUnloaded(const std::string& extension_id);
- void SyncToStorage();
-
- // Preferences storage.
- ExtensionPrefs* prefs_;
-
- // Cached data
- std::map<std::string, ExtensionData> cache_;
-
- // Data that still needs saving
- std::set<std::string> unsynced_extensions_;
-
- // The timer used to save the data
- base::OneShotTimer<ShellWindowGeometryCache> sync_timer_;
-
- // The timeout value we'll use for |sync_timer_|.
- base::TimeDelta sync_delay_;
-
- content::NotificationRegistrar registrar_;
-};
-
-} // namespace extensions
-
-#endif // CHROME_BROWSER_EXTENSIONS_SHELL_WINDOW_GEOMETRY_CACHE_H_
« no previous file with comments | « chrome/browser/extensions/extension_system.cc ('k') | chrome/browser/extensions/shell_window_geometry_cache.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698