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

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

Issue 1181263007: WebView context menu cleanup. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Addressed comments by rdevlin.cronin@. Created 5 years, 5 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_MENU_MANAGER_H_ 5 #ifndef CHROME_BROWSER_EXTENSIONS_MENU_MANAGER_H_
6 #define CHROME_BROWSER_EXTENSIONS_MENU_MANAGER_H_ 6 #define CHROME_BROWSER_EXTENSIONS_MENU_MANAGER_H_
7 7
8 #include <map> 8 #include <map>
9 #include <set> 9 #include <set>
10 #include <string> 10 #include <string>
(...skipping 26 matching lines...) Expand all
37 class Extension; 37 class Extension;
38 class ExtensionRegistry; 38 class ExtensionRegistry;
39 class StateStore; 39 class StateStore;
40 40
41 // Represents a menu item added by an extension. 41 // Represents a menu item added by an extension.
42 class MenuItem { 42 class MenuItem {
43 public: 43 public:
44 // A list of MenuItems. 44 // A list of MenuItems.
45 typedef std::vector<MenuItem*> List; 45 typedef std::vector<MenuItem*> List;
46 46
47 // Key used to identify which extension a menu item belongs to. 47 // Key used to identify which extension a menu item belongs to. A menu item
48 // A menu item can also belong to a <webview> inside an extension, 48 // can also belong to a <webview>, in which case |webview_embedder_process_id|
49 // only in that case |webview_instance_id| would be 49 // and |webview_instance_id| will be non-zero. When two ExtensionKeys are
50 // non-zero (i.e. != guestview::kInstanceIDNone). 50 // compared, an empty |extension_id| will match any other extension ID. This
51 // allows menu items belonging to webviews to be found with only the two
52 // webview IDs when the extension ID is not known. This is currently done from
53 // ChromeExtensionsBrowserClient::CleanUpWebView().
51 struct ExtensionKey { 54 struct ExtensionKey {
52 std::string extension_id; 55 std::string extension_id;
56 int webview_embedder_process_id;
53 int webview_instance_id; 57 int webview_instance_id;
54 58
55 ExtensionKey(); 59 ExtensionKey();
56 ExtensionKey(const std::string& extension_id, int webview_instance_id);
57 explicit ExtensionKey(const std::string& extension_id); 60 explicit ExtensionKey(const std::string& extension_id);
61 ExtensionKey(const std::string& extension_id,
62 int webview_embedder_process_id,
63 int webview_instance_id);
58 64
59 bool operator==(const ExtensionKey& other) const; 65 bool operator==(const ExtensionKey& other) const;
60 bool operator!=(const ExtensionKey& other) const; 66 bool operator!=(const ExtensionKey& other) const;
61 bool operator<(const ExtensionKey& other) const; 67 bool operator<(const ExtensionKey& other) const;
62 68
63 bool empty() const; 69 bool empty() const;
64 }; 70 };
65 71
66 // An Id uniquely identifies a context menu item registered by an extension. 72 // An Id uniquely identifies a context menu item registered by an extension.
67 struct Id { 73 struct Id {
(...skipping 333 matching lines...) Expand 10 before | Expand all | Expand 10 after
401 407
402 // Owned by ExtensionSystem. 408 // Owned by ExtensionSystem.
403 StateStore* store_; 409 StateStore* store_;
404 410
405 DISALLOW_COPY_AND_ASSIGN(MenuManager); 411 DISALLOW_COPY_AND_ASSIGN(MenuManager);
406 }; 412 };
407 413
408 } // namespace extensions 414 } // namespace extensions
409 415
410 #endif // CHROME_BROWSER_EXTENSIONS_MENU_MANAGER_H_ 416 #endif // CHROME_BROWSER_EXTENSIONS_MENU_MANAGER_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698