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

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

Issue 309533007: Refactor PermissionsData pt1 (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 6 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) 2013 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2013 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 "extensions/common/extension.h" 5 #include "extensions/common/extension.h"
6 6
7 #include "base/base64.h" 7 #include "base/base64.h"
8 #include "base/basictypes.h" 8 #include "base/basictypes.h"
9 #include "base/command_line.h" 9 #include "base/command_line.h"
10 #include "base/files/file_path.h" 10 #include "base/files/file_path.h"
11 #include "base/i18n/rtl.h" 11 #include "base/i18n/rtl.h"
12 #include "base/logging.h" 12 #include "base/logging.h"
13 #include "base/memory/singleton.h" 13 #include "base/memory/singleton.h"
14 #include "base/stl_util.h" 14 #include "base/stl_util.h"
15 #include "base/strings/string16.h" 15 #include "base/strings/string16.h"
16 #include "base/strings/string_number_conversions.h" 16 #include "base/strings/string_number_conversions.h"
17 #include "base/strings/string_piece.h" 17 #include "base/strings/string_piece.h"
18 #include "base/strings/string_util.h" 18 #include "base/strings/string_util.h"
19 #include "base/strings/stringprintf.h" 19 #include "base/strings/stringprintf.h"
20 #include "base/strings/utf_string_conversions.h" 20 #include "base/strings/utf_string_conversions.h"
21 #include "base/values.h" 21 #include "base/values.h"
22 #include "base/version.h" 22 #include "base/version.h"
23 #include "content/public/common/url_constants.h" 23 #include "content/public/common/url_constants.h"
24 #include "extensions/common/constants.h" 24 #include "extensions/common/constants.h"
25 #include "extensions/common/error_utils.h" 25 #include "extensions/common/error_utils.h"
26 #include "extensions/common/id_util.h" 26 #include "extensions/common/id_util.h"
27 #include "extensions/common/manifest.h" 27 #include "extensions/common/manifest.h"
28 #include "extensions/common/manifest_constants.h" 28 #include "extensions/common/manifest_constants.h"
29 #include "extensions/common/manifest_handler.h" 29 #include "extensions/common/manifest_handler.h"
30 #include "extensions/common/manifest_handlers/permissions_parser.h"
30 #include "extensions/common/permissions/api_permission_set.h" 31 #include "extensions/common/permissions/api_permission_set.h"
31 #include "extensions/common/permissions/permission_set.h" 32 #include "extensions/common/permissions/permission_set.h"
32 #include "extensions/common/permissions/permissions_data.h" 33 #include "extensions/common/permissions/permissions_data.h"
33 #include "extensions/common/permissions/permissions_info.h" 34 #include "extensions/common/permissions/permissions_info.h"
34 #include "extensions/common/switches.h" 35 #include "extensions/common/switches.h"
35 #include "extensions/common/url_pattern_set.h" 36 #include "extensions/common/url_pattern_set.h"
36 #include "net/base/filename_util.h" 37 #include "net/base/filename_util.h"
37 #include "url/url_util.h" 38 #include "url/url_util.h"
38 39
39 namespace extensions { 40 namespace extensions {
(...skipping 240 matching lines...) Expand 10 before | Expand all | Expand 10 after
280 return true; 281 return true;
281 } 282 }
282 283
283 // static 284 // static
284 GURL Extension::GetBaseURLFromExtensionId(const std::string& extension_id) { 285 GURL Extension::GetBaseURLFromExtensionId(const std::string& extension_id) {
285 return GURL(std::string(extensions::kExtensionScheme) + 286 return GURL(std::string(extensions::kExtensionScheme) +
286 content::kStandardSchemeSeparator + extension_id + "/"); 287 content::kStandardSchemeSeparator + extension_id + "/");
287 } 288 }
288 289
289 bool Extension::HasAPIPermission(APIPermission::ID permission) const { 290 bool Extension::HasAPIPermission(APIPermission::ID permission) const {
290 return PermissionsData::HasAPIPermission(this, permission); 291 return PermissionsData::ForExtension(this)->HasAPIPermission(permission);
291 } 292 }
292 293
293 bool Extension::HasAPIPermission(const std::string& permission_name) const { 294 bool Extension::HasAPIPermission(const std::string& permission_name) const {
294 return PermissionsData::HasAPIPermission(this, permission_name); 295 return PermissionsData::ForExtension(this)->HasAPIPermission(permission_name);
295 } 296 }
296 297
297 scoped_refptr<const PermissionSet> Extension::GetActivePermissions() const { 298 scoped_refptr<const PermissionSet> Extension::GetActivePermissions() const {
298 return PermissionsData::GetActivePermissions(this); 299 return PermissionsData::ForExtension(this)->active_permissions();
299 } 300 }
300 301
301 bool Extension::ShowConfigureContextMenus() const { 302 bool Extension::ShowConfigureContextMenus() const {
302 // Don't show context menu for component extensions. We might want to show 303 // Don't show context menu for component extensions. We might want to show
303 // options for component extension button but now there is no component 304 // options for component extension button but now there is no component
304 // extension with options. All other menu items like uninstall have 305 // extension with options. All other menu items like uninstall have
305 // no sense for component extensions. 306 // no sense for component extensions.
306 return location() != Manifest::COMPONENT && 307 return location() != Manifest::COMPONENT &&
307 location() != Manifest::EXTERNAL_COMPONENT; 308 location() != Manifest::EXTERNAL_COMPONENT;
308 } 309 }
(...skipping 225 matching lines...) Expand 10 before | Expand all | Expand 10 after
534 manifest_->GetString(keys::kPublicKey, &public_key_); 535 manifest_->GetString(keys::kPublicKey, &public_key_);
535 536
536 extension_url_ = Extension::GetBaseURLFromExtensionId(id()); 537 extension_url_ = Extension::GetBaseURLFromExtensionId(id());
537 538
538 // Load App settings. LoadExtent at least has to be done before 539 // Load App settings. LoadExtent at least has to be done before
539 // ParsePermissions(), because the valid permissions depend on what type of 540 // ParsePermissions(), because the valid permissions depend on what type of
540 // package this is. 541 // package this is.
541 if (is_app() && !LoadAppFeatures(error)) 542 if (is_app() && !LoadAppFeatures(error))
542 return false; 543 return false;
543 544
544 permissions_data_.reset(new PermissionsData); 545 permissions_parser_.reset(new PermissionsParser());
545 if (!permissions_data_->ParsePermissions(this, error)) 546 if (!permissions_parser_->Parse(this, error))
546 return false; 547 return false;
547 548
548 if (manifest_->HasKey(keys::kConvertedFromUserScript)) { 549 if (manifest_->HasKey(keys::kConvertedFromUserScript)) {
549 manifest_->GetBoolean(keys::kConvertedFromUserScript, 550 manifest_->GetBoolean(keys::kConvertedFromUserScript,
550 &converted_from_user_script_); 551 &converted_from_user_script_);
551 } 552 }
552 553
553 if (!LoadSharedFeatures(error)) 554 if (!LoadSharedFeatures(error))
554 return false; 555 return false;
555 556
557 permissions_parser_->Finalize(this);
558 permissions_parser_.reset();
559
556 finished_parsing_manifest_ = true; 560 finished_parsing_manifest_ = true;
557 561
558 permissions_data_->InitializeManifestPermissions(this); 562 permissions_data_.reset(new PermissionsData(this));
559 permissions_data_->FinalizePermissions(this);
560 563
561 return true; 564 return true;
562 } 565 }
563 566
564 bool Extension::LoadRequiredFeatures(base::string16* error) { 567 bool Extension::LoadRequiredFeatures(base::string16* error) {
565 if (!LoadName(error) || 568 if (!LoadName(error) ||
566 !LoadVersion(error)) 569 !LoadVersion(error))
567 return false; 570 return false;
568 return true; 571 return true;
569 } 572 }
(...skipping 215 matching lines...) Expand 10 before | Expand all | Expand 10 after
785 788
786 UpdatedExtensionPermissionsInfo::UpdatedExtensionPermissionsInfo( 789 UpdatedExtensionPermissionsInfo::UpdatedExtensionPermissionsInfo(
787 const Extension* extension, 790 const Extension* extension,
788 const PermissionSet* permissions, 791 const PermissionSet* permissions,
789 Reason reason) 792 Reason reason)
790 : reason(reason), 793 : reason(reason),
791 extension(extension), 794 extension(extension),
792 permissions(permissions) {} 795 permissions(permissions) {}
793 796
794 } // namespace extensions 797 } // namespace extensions
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698