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

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

Issue 1871713002: Convert //chrome/browser/extensions from scoped_ptr to std::unique_ptr (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebase and fix header Created 4 years, 8 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_EXTENSION_ACTION_MANAGER_H_ 5 #ifndef CHROME_BROWSER_EXTENSIONS_EXTENSION_ACTION_MANAGER_H_
6 #define CHROME_BROWSER_EXTENSIONS_EXTENSION_ACTION_MANAGER_H_ 6 #define CHROME_BROWSER_EXTENSIONS_EXTENSION_ACTION_MANAGER_H_
7 7
8 #include <map> 8 #include <map>
9 #include <string> 9 #include <string>
10 10
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
44 // Returns either the PageAction or BrowserAction for |extension|, or NULL if 44 // Returns either the PageAction or BrowserAction for |extension|, or NULL if
45 // none exists. Since an extension can only declare one of Browser|PageAction, 45 // none exists. Since an extension can only declare one of Browser|PageAction,
46 // this is okay to use anywhere you need a generic "ExtensionAction". 46 // this is okay to use anywhere you need a generic "ExtensionAction".
47 // Since SystemIndicators are used differently and don't follow this 47 // Since SystemIndicators are used differently and don't follow this
48 // rule of mutual exclusion, they are not checked or returned. 48 // rule of mutual exclusion, they are not checked or returned.
49 ExtensionAction* GetExtensionAction(const Extension& extension) const; 49 ExtensionAction* GetExtensionAction(const Extension& extension) const;
50 50
51 // Gets the best fit ExtensionAction for the given |extension|. This takes 51 // Gets the best fit ExtensionAction for the given |extension|. This takes
52 // into account |extension|'s browser or page actions, if any, along with its 52 // into account |extension|'s browser or page actions, if any, along with its
53 // name and any declared icons. 53 // name and any declared icons.
54 scoped_ptr<ExtensionAction> GetBestFitAction( 54 std::unique_ptr<ExtensionAction> GetBestFitAction(
55 const Extension& extension, ActionInfo::Type type) const; 55 const Extension& extension,
56 ActionInfo::Type type) const;
56 57
57 private: 58 private:
58 // Implement ExtensionRegistryObserver. 59 // Implement ExtensionRegistryObserver.
59 void OnExtensionUnloaded(content::BrowserContext* browser_context, 60 void OnExtensionUnloaded(content::BrowserContext* browser_context,
60 const Extension* extension, 61 const Extension* extension,
61 UnloadedExtensionInfo::Reason reason) override; 62 UnloadedExtensionInfo::Reason reason) override;
62 63
63 Profile* profile_; 64 Profile* profile_;
64 65
65 // Listen to extension unloaded notifications. 66 // Listen to extension unloaded notifications.
66 ScopedObserver<ExtensionRegistry, ExtensionRegistryObserver> 67 ScopedObserver<ExtensionRegistry, ExtensionRegistryObserver>
67 extension_registry_observer_; 68 extension_registry_observer_;
68 69
69 // Keyed by Extension ID. These maps are populated lazily when their 70 // Keyed by Extension ID. These maps are populated lazily when their
70 // ExtensionAction is first requested, and the entries are removed when the 71 // ExtensionAction is first requested, and the entries are removed when the
71 // extension is unloaded. Not every extension has a page action or browser 72 // extension is unloaded. Not every extension has a page action or browser
72 // action. 73 // action.
73 typedef std::map<std::string, linked_ptr<ExtensionAction> > ExtIdToActionMap; 74 typedef std::map<std::string, linked_ptr<ExtensionAction> > ExtIdToActionMap;
74 mutable ExtIdToActionMap page_actions_; 75 mutable ExtIdToActionMap page_actions_;
75 mutable ExtIdToActionMap browser_actions_; 76 mutable ExtIdToActionMap browser_actions_;
76 mutable ExtIdToActionMap system_indicators_; 77 mutable ExtIdToActionMap system_indicators_;
77 }; 78 };
78 79
79 } // namespace extensions 80 } // namespace extensions
80 81
81 #endif // CHROME_BROWSER_EXTENSIONS_EXTENSION_ACTION_MANAGER_H_ 82 #endif // CHROME_BROWSER_EXTENSIONS_EXTENSION_ACTION_MANAGER_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698