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

Side by Side Diff: chrome/common/extensions/api/extension_api.cc

Issue 9274004: Take the Extension Storage API out of experimental. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: . Created 8 years, 11 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
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 #include "chrome/common/extensions/api/extension_api.h" 5 #include "chrome/common/extensions/api/extension_api.h"
6 6
7 #include <string> 7 #include <string>
8 #include <vector> 8 #include <vector>
9 9
10 #include "base/json/json_reader.h" 10 #include "base/json/json_reader.h"
(...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after
73 IDR_EXTENSION_API_JSON_EXPERIMENTAL_INFOBARS, 73 IDR_EXTENSION_API_JSON_EXPERIMENTAL_INFOBARS,
74 IDR_EXTENSION_API_JSON_EXPERIMENTAL_INPUT_IME, 74 IDR_EXTENSION_API_JSON_EXPERIMENTAL_INPUT_IME,
75 IDR_EXTENSION_API_JSON_EXPERIMENTAL_INPUT_UI, 75 IDR_EXTENSION_API_JSON_EXPERIMENTAL_INPUT_UI,
76 IDR_EXTENSION_API_JSON_EXPERIMENTAL_INPUT_VIRTUALKEYBOARD, 76 IDR_EXTENSION_API_JSON_EXPERIMENTAL_INPUT_VIRTUALKEYBOARD,
77 IDR_EXTENSION_API_JSON_EXPERIMENTAL_PRIVACY, 77 IDR_EXTENSION_API_JSON_EXPERIMENTAL_PRIVACY,
78 IDR_EXTENSION_API_JSON_EXPERIMENTAL_PROCESSES, 78 IDR_EXTENSION_API_JSON_EXPERIMENTAL_PROCESSES,
79 IDR_EXTENSION_API_JSON_EXPERIMENTAL_RLZ, 79 IDR_EXTENSION_API_JSON_EXPERIMENTAL_RLZ,
80 IDR_EXTENSION_API_JSON_EXPERIMENTAL_SERIAL, 80 IDR_EXTENSION_API_JSON_EXPERIMENTAL_SERIAL,
81 IDR_EXTENSION_API_JSON_EXPERIMENTAL_SOCKET, 81 IDR_EXTENSION_API_JSON_EXPERIMENTAL_SOCKET,
82 IDR_EXTENSION_API_JSON_EXPERIMENTAL_SPEECHINPUT, 82 IDR_EXTENSION_API_JSON_EXPERIMENTAL_SPEECHINPUT,
83 IDR_EXTENSION_API_JSON_EXPERIMENTAL_STORAGE,
84 IDR_EXTENSION_API_JSON_EXPERIMENTAL_TOPSITES, 83 IDR_EXTENSION_API_JSON_EXPERIMENTAL_TOPSITES,
85 IDR_EXTENSION_API_JSON_EXTENSION, 84 IDR_EXTENSION_API_JSON_EXTENSION,
86 IDR_EXTENSION_API_JSON_FILEBROWSERHANDLER, 85 IDR_EXTENSION_API_JSON_FILEBROWSERHANDLER,
87 IDR_EXTENSION_API_JSON_FILEBROWSERPRIVATE, 86 IDR_EXTENSION_API_JSON_FILEBROWSERPRIVATE,
88 IDR_EXTENSION_API_JSON_HISTORY, 87 IDR_EXTENSION_API_JSON_HISTORY,
89 IDR_EXTENSION_API_JSON_I18N, 88 IDR_EXTENSION_API_JSON_I18N,
90 IDR_EXTENSION_API_JSON_IDLE, 89 IDR_EXTENSION_API_JSON_IDLE,
91 IDR_EXTENSION_API_JSON_INPUTMETHODPRIVATE, 90 IDR_EXTENSION_API_JSON_INPUTMETHODPRIVATE,
92 IDR_EXTENSION_API_JSON_MANAGEMENT, 91 IDR_EXTENSION_API_JSON_MANAGEMENT,
93 IDR_EXTENSION_API_JSON_MEDIAPLAYERPRIVATE, 92 IDR_EXTENSION_API_JSON_MEDIAPLAYERPRIVATE,
94 IDR_EXTENSION_API_JSON_METRICSPRIVATE, 93 IDR_EXTENSION_API_JSON_METRICSPRIVATE,
95 IDR_EXTENSION_API_JSON_OMNIBOX, 94 IDR_EXTENSION_API_JSON_OMNIBOX,
96 IDR_EXTENSION_API_JSON_PAGEACTION, 95 IDR_EXTENSION_API_JSON_PAGEACTION,
97 IDR_EXTENSION_API_JSON_PAGEACTIONS, 96 IDR_EXTENSION_API_JSON_PAGEACTIONS,
98 IDR_EXTENSION_API_JSON_PAGECAPTURE, 97 IDR_EXTENSION_API_JSON_PAGECAPTURE,
99 IDR_EXTENSION_API_JSON_PERMISSIONS, 98 IDR_EXTENSION_API_JSON_PERMISSIONS,
100 IDR_EXTENSION_API_JSON_PROXY, 99 IDR_EXTENSION_API_JSON_PROXY,
100 IDR_EXTENSION_API_JSON_STORAGE,
101 IDR_EXTENSION_API_JSON_SYSTEMPRIVATE, 101 IDR_EXTENSION_API_JSON_SYSTEMPRIVATE,
102 IDR_EXTENSION_API_JSON_TABS, 102 IDR_EXTENSION_API_JSON_TABS,
103 IDR_EXTENSION_API_JSON_TERMINALPRIVATE, 103 IDR_EXTENSION_API_JSON_TERMINALPRIVATE,
104 IDR_EXTENSION_API_JSON_TEST, 104 IDR_EXTENSION_API_JSON_TEST,
105 IDR_EXTENSION_API_JSON_TTS, 105 IDR_EXTENSION_API_JSON_TTS,
106 IDR_EXTENSION_API_JSON_TTSENGINE, 106 IDR_EXTENSION_API_JSON_TTSENGINE,
107 IDR_EXTENSION_API_JSON_TYPES, 107 IDR_EXTENSION_API_JSON_TYPES,
108 IDR_EXTENSION_API_JSON_WEBNAVIGATION, 108 IDR_EXTENSION_API_JSON_WEBNAVIGATION,
109 IDR_EXTENSION_API_JSON_WEBREQUEST, 109 IDR_EXTENSION_API_JSON_WEBREQUEST,
110 IDR_EXTENSION_API_JSON_WEBSOCKETPROXYPRIVATE, 110 IDR_EXTENSION_API_JSON_WEBSOCKETPROXYPRIVATE,
(...skipping 12 matching lines...) Expand all
123 bool ExtensionAPI::IsPrivileged(const std::string& full_name) const { 123 bool ExtensionAPI::IsPrivileged(const std::string& full_name) const {
124 std::vector<std::string> split_full_name; 124 std::vector<std::string> split_full_name;
125 base::SplitString(full_name, '.', &split_full_name); 125 base::SplitString(full_name, '.', &split_full_name);
126 std::string name = split_full_name.back(); 126 std::string name = split_full_name.back();
127 split_full_name.pop_back(); 127 split_full_name.pop_back();
128 std::string name_space = JoinString(split_full_name, '.'); 128 std::string name_space = JoinString(split_full_name, '.');
129 129
130 // HACK(kalman): explicitly mark all Storage API methods as unprivileged. 130 // HACK(kalman): explicitly mark all Storage API methods as unprivileged.
131 // TODO(kalman): solve this in a more general way; the problem is that 131 // TODO(kalman): solve this in a more general way; the problem is that
132 // functions-on-properties are not found with the following algorithm. 132 // functions-on-properties are not found with the following algorithm.
133 if (name_space == "experimental.storage") 133 if (name_space == "storage")
134 return false; 134 return false;
135 135
136 const base::DictionaryValue* name_space_node = GetSchema(name_space); 136 const base::DictionaryValue* name_space_node = GetSchema(name_space);
137 if (!name_space_node) 137 if (!name_space_node)
138 return true; 138 return true;
139 139
140 if (!IsChildNamePrivileged(name_space_node, "functions", name) || 140 if (!IsChildNamePrivileged(name_space_node, "functions", name) ||
141 !IsChildNamePrivileged(name_space_node, "events", name)) { 141 !IsChildNamePrivileged(name_space_node, "events", name)) {
142 return false; 142 return false;
143 } 143 }
(...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after
200 void ExtensionAPI::GetSchemasForPermissions( 200 void ExtensionAPI::GetSchemasForPermissions(
201 const ExtensionPermissionSet& permissions, SchemaMap* out) const { 201 const ExtensionPermissionSet& permissions, SchemaMap* out) const {
202 for (SchemaMap::const_iterator it = schemas_.begin(); it != schemas_.end(); 202 for (SchemaMap::const_iterator it = schemas_.begin(); it != schemas_.end();
203 ++it) { 203 ++it) {
204 if (permissions.HasAnyAccessToAPI(it->first)) 204 if (permissions.HasAnyAccessToAPI(it->first))
205 (*out)[it->first] = it->second; 205 (*out)[it->first] = it->second;
206 } 206 }
207 } 207 }
208 208
209 } 209 }
OLDNEW
« no previous file with comments | « chrome/common/extensions/api/experimental.storage.json ('k') | chrome/common/extensions/api/storage.json » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698