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

Side by Side Diff: chrome/common/extensions/extension.cc

Issue 7645033: Add offline_enabled field in manifest. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: rebase Created 9 years, 4 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 | « chrome/common/extensions/extension.h ('k') | chrome/common/extensions/extension_constants.h » ('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) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 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/extension.h" 5 #include "chrome/common/extensions/extension.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 8
9 #include "base/base64.h" 9 #include "base/base64.h"
10 #include "base/basictypes.h" 10 #include "base/basictypes.h"
(...skipping 1172 matching lines...) Expand 10 before | Expand all | Expand 10 after
1183 if (web_extent().is_empty()) 1183 if (web_extent().is_empty())
1184 return true; 1184 return true;
1185 1185
1186 for (DictionaryValue::key_iterator key = manifest->begin_keys(); 1186 for (DictionaryValue::key_iterator key = manifest->begin_keys();
1187 key != manifest->end_keys(); ++key) { 1187 key != manifest->end_keys(); ++key) {
1188 if (!IsBaseCrxKey(*key) && 1188 if (!IsBaseCrxKey(*key) &&
1189 *key != keys::kApp && 1189 *key != keys::kApp &&
1190 *key != keys::kPermissions && 1190 *key != keys::kPermissions &&
1191 *key != keys::kOptionalPermissions && 1191 *key != keys::kOptionalPermissions &&
1192 *key != keys::kOptionsPage && 1192 *key != keys::kOptionsPage &&
1193 *key != keys::kBackground) { 1193 *key != keys::kBackground &&
1194 *key != keys::kOfflineEnabled) {
1194 *error = ExtensionErrorUtils::FormatErrorMessage( 1195 *error = ExtensionErrorUtils::FormatErrorMessage(
1195 errors::kHostedAppsCannotIncludeExtensionFeatures, *key); 1196 errors::kHostedAppsCannotIncludeExtensionFeatures, *key);
1196 return false; 1197 return false;
1197 } 1198 }
1198 } 1199 }
1199 1200
1200 return true; 1201 return true;
1201 } 1202 }
1202 1203
1203 // static 1204 // static
1204 bool Extension::IsTrustedId(const std::string& id) { 1205 bool Extension::IsTrustedId(const std::string& id) {
1205 // See http://b/4946060 for more details. 1206 // See http://b/4946060 for more details.
1206 return id == std::string("nckgahadagoaajjgafhacjanaoiihapd"); 1207 return id == std::string("nckgahadagoaajjgafhacjanaoiihapd");
1207 } 1208 }
1208 1209
1209 Extension::Extension(const FilePath& path, Location location) 1210 Extension::Extension(const FilePath& path, Location location)
1210 : incognito_split_mode_(false), 1211 : incognito_split_mode_(false),
1212 offline_enabled_(false),
1211 location_(location), 1213 location_(location),
1212 converted_from_user_script_(false), 1214 converted_from_user_script_(false),
1213 is_theme_(false), 1215 is_theme_(false),
1214 is_app_(false), 1216 is_app_(false),
1215 is_storage_isolated_(false), 1217 is_storage_isolated_(false),
1216 launch_container_(extension_misc::LAUNCH_TAB), 1218 launch_container_(extension_misc::LAUNCH_TAB),
1217 launch_width_(0), 1219 launch_width_(0),
1218 launch_height_(0), 1220 launch_height_(0),
1219 wants_file_access_(false), 1221 wants_file_access_(false),
1220 creation_flags_(0) { 1222 creation_flags_(0) {
(...skipping 642 matching lines...) Expand 10 before | Expand all | Expand 10 after
1863 errors::kInvalidWebURLs, errors::kInvalidWebURL, 1865 errors::kInvalidWebURLs, errors::kInvalidWebURL,
1864 parse_strictness, error) || 1866 parse_strictness, error) ||
1865 !EnsureNotHybridApp(manifest_value_.get(), error) || 1867 !EnsureNotHybridApp(manifest_value_.get(), error) ||
1866 !LoadLaunchURL(manifest_value_.get(), error) || 1868 !LoadLaunchURL(manifest_value_.get(), error) ||
1867 !LoadLaunchContainer(manifest_value_.get(), error) || 1869 !LoadLaunchContainer(manifest_value_.get(), error) ||
1868 !LoadAppIsolation(manifest_value_.get(), error)) { 1870 !LoadAppIsolation(manifest_value_.get(), error)) {
1869 return false; 1871 return false;
1870 } 1872 }
1871 1873
1872 // Initialize options page url (optional). 1874 // Initialize options page url (optional).
1873 // Funtion LoadIsApp() set is_app_ above. 1875 // Function LoadIsApp() set is_app_ above.
1874 if (source.HasKey(keys::kOptionsPage)) { 1876 if (source.HasKey(keys::kOptionsPage)) {
1875 std::string options_str; 1877 std::string options_str;
1876 if (!source.GetString(keys::kOptionsPage, &options_str)) { 1878 if (!source.GetString(keys::kOptionsPage, &options_str)) {
1877 *error = errors::kInvalidOptionsPage; 1879 *error = errors::kInvalidOptionsPage;
1878 return false; 1880 return false;
1879 } 1881 }
1880 1882
1881 if (is_hosted_app()) { 1883 if (is_hosted_app()) {
1882 // hosted apps require an absolute URL. 1884 // hosted apps require an absolute URL.
1883 GURL options_url(options_str); 1885 GURL options_url(options_str);
(...skipping 414 matching lines...) Expand 10 before | Expand all | Expand 10 after
2298 if (value == values::kIncognitoSpanning) { 2300 if (value == values::kIncognitoSpanning) {
2299 incognito_split_mode_ = false; 2301 incognito_split_mode_ = false;
2300 } else if (value == values::kIncognitoSplit) { 2302 } else if (value == values::kIncognitoSplit) {
2301 incognito_split_mode_ = true; 2303 incognito_split_mode_ = true;
2302 } else { 2304 } else {
2303 *error = errors::kInvalidIncognitoBehavior; 2305 *error = errors::kInvalidIncognitoBehavior;
2304 return false; 2306 return false;
2305 } 2307 }
2306 } 2308 }
2307 2309
2310 // Initialize offline-enabled status. Defaults to false.
2311 if (source.HasKey(keys::kOfflineEnabled)) {
2312 if (!source.GetBoolean(keys::kOfflineEnabled, &offline_enabled_)) {
2313 *error = errors::kInvalidOfflineEnabled;
2314 return false;
2315 }
2316 }
2317
2308 if (HasMultipleUISurfaces()) { 2318 if (HasMultipleUISurfaces()) {
2309 *error = errors::kOneUISurfaceOnly; 2319 *error = errors::kOneUISurfaceOnly;
2310 return false; 2320 return false;
2311 } 2321 }
2312 2322
2313 runtime_data_.SetActivePermissions(new ExtensionPermissionSet( 2323 runtime_data_.SetActivePermissions(new ExtensionPermissionSet(
2314 this, api_permissions, host_permissions)); 2324 this, api_permissions, host_permissions));
2315 required_permission_set_ = new ExtensionPermissionSet( 2325 required_permission_set_ = new ExtensionPermissionSet(
2316 this, api_permissions, host_permissions); 2326 this, api_permissions, host_permissions);
2317 optional_permission_set_ = new ExtensionPermissionSet( 2327 optional_permission_set_ = new ExtensionPermissionSet(
(...skipping 552 matching lines...) Expand 10 before | Expand all | Expand 10 after
2870 already_disabled(false), 2880 already_disabled(false),
2871 extension(extension) {} 2881 extension(extension) {}
2872 2882
2873 UpdatedExtensionPermissionsInfo::UpdatedExtensionPermissionsInfo( 2883 UpdatedExtensionPermissionsInfo::UpdatedExtensionPermissionsInfo(
2874 const Extension* extension, 2884 const Extension* extension,
2875 const ExtensionPermissionSet* permissions, 2885 const ExtensionPermissionSet* permissions,
2876 Reason reason) 2886 Reason reason)
2877 : reason(reason), 2887 : reason(reason),
2878 extension(extension), 2888 extension(extension),
2879 permissions(permissions) {} 2889 permissions(permissions) {}
OLDNEW
« no previous file with comments | « chrome/common/extensions/extension.h ('k') | chrome/common/extensions/extension_constants.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698