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

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

Issue 2811049: Add ability to limit when context menu items appear with url patterns.... (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: '' Created 10 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 | Annotate | Revision Log
« no previous file with comments | « no previous file | chrome/browser/extensions/extension_context_menu_api.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2010 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_CONTEXT_MENU_API_H__ 5 #ifndef CHROME_BROWSER_EXTENSIONS_EXTENSION_CONTEXT_MENU_API_H__
6 #define CHROME_BROWSER_EXTENSIONS_EXTENSION_CONTEXT_MENU_API_H__ 6 #define CHROME_BROWSER_EXTENSIONS_EXTENSION_CONTEXT_MENU_API_H__
7 7
8 #include "chrome/browser/extensions/extension_function.h" 8 #include "chrome/browser/extensions/extension_function.h"
9 #include "chrome/browser/extensions/extension_menu_manager.h" 9 #include "chrome/browser/extensions/extension_menu_manager.h"
10 #include "chrome/common/extensions/extension_extent.h"
11
12 class ExtensionMenuItem;
10 13
11 class ExtensionContextMenuFunction : public SyncExtensionFunction { 14 class ExtensionContextMenuFunction : public SyncExtensionFunction {
12 public: 15 public:
13 ~ExtensionContextMenuFunction() {} 16 ~ExtensionContextMenuFunction() {}
14 17
15 protected: 18 protected:
16 // Helper function to read and parse a list of menu item contexts. 19 // Helper function to read and parse a list of menu item contexts.
17 bool ParseContexts(const DictionaryValue& properties, 20 bool ParseContexts(const DictionaryValue& properties,
18 const wchar_t* key, 21 const wchar_t* key,
19 ExtensionMenuItem::ContextList* result); 22 ExtensionMenuItem::ContextList* result);
20 23
21 // Looks in properties for the "type" key, and reads the value in |result|. On 24 // Looks in properties for the "type" key, and reads the value in |result|. On
22 // error, returns false and puts an error message into error_. If the key is 25 // error, returns false and puts an error message into error_. If the key is
23 // not present, |result| is set to |default_value| and the return value is 26 // not present, |result| is set to |default_value| and the return value is
24 // true. 27 // true.
25 bool ParseType(const DictionaryValue& properties, 28 bool ParseType(const DictionaryValue& properties,
26 const ExtensionMenuItem::Type& default_value, 29 const ExtensionMenuItem::Type& default_value,
27 ExtensionMenuItem::Type* result); 30 ExtensionMenuItem::Type* result);
28 31
29 // Helper to read and parse the "checked" property. 32 // Helper to read and parse the "checked" property.
30 bool ParseChecked(ExtensionMenuItem::Type type, 33 bool ParseChecked(ExtensionMenuItem::Type type,
31 const DictionaryValue& properties, 34 const DictionaryValue& properties,
32 bool default_value, 35 bool default_value,
33 bool* checked); 36 bool* checked);
34 37
38 // Helper to read in a set of url patterns from a property with the given key
39 // name.
40 bool ParseURLPatterns(const DictionaryValue& properties,
41 const wchar_t* key,
42 ExtensionExtent* result);
43
44 // Reads in any document and targetUrl patterns from |properties| and sets
45 // them on |item|.
46 bool SetURLPatterns(const DictionaryValue& properties,
47 ExtensionMenuItem* item);
48
35 // If the parentId key was specified in properties, this will try looking up 49 // If the parentId key was specified in properties, this will try looking up
36 // an ExtensionMenuItem with that id and set it into |result|. Returns false 50 // an ExtensionMenuItem with that id and set it into |result|. Returns false
37 // on error, with an explanation written into error_. Note that if the 51 // on error, with an explanation written into error_. Note that if the
38 // parentId key is not in properties, this will return true and leave |result| 52 // parentId key is not in properties, this will return true and leave |result|
39 // unset. Also, it is considered an error if the item found has a type other 53 // unset. Also, it is considered an error if the item found has a type other
40 // than NORMAL. 54 // than NORMAL.
41 bool GetParent(const DictionaryValue& properties, 55 bool GetParent(const DictionaryValue& properties,
42 const ExtensionMenuManager& manager, 56 const ExtensionMenuManager& manager,
43 ExtensionMenuItem** result); 57 ExtensionMenuItem** result);
44 }; 58 };
(...skipping 16 matching lines...) Expand all
61 DECLARE_EXTENSION_FUNCTION_NAME("contextMenus.remove") 75 DECLARE_EXTENSION_FUNCTION_NAME("contextMenus.remove")
62 }; 76 };
63 77
64 class RemoveAllContextMenusFunction : public ExtensionContextMenuFunction { 78 class RemoveAllContextMenusFunction : public ExtensionContextMenuFunction {
65 ~RemoveAllContextMenusFunction() {} 79 ~RemoveAllContextMenusFunction() {}
66 virtual bool RunImpl(); 80 virtual bool RunImpl();
67 DECLARE_EXTENSION_FUNCTION_NAME("contextMenus.removeAll") 81 DECLARE_EXTENSION_FUNCTION_NAME("contextMenus.removeAll")
68 }; 82 };
69 83
70 #endif // CHROME_BROWSER_EXTENSIONS_EXTENSION_CONTEXT_MENU_API_H__ 84 #endif // CHROME_BROWSER_EXTENSIONS_EXTENSION_CONTEXT_MENU_API_H__
OLDNEW
« no previous file with comments | « no previous file | chrome/browser/extensions/extension_context_menu_api.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698