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

Side by Side Diff: chrome/common/extensions/permissions/permissions_data.cc

Issue 13947050: Stop forcing optional permission on usbDevices section (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Remove APIPermissionInfo::kFlagMustBeOptional and related tests. Created 7 years, 7 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 "chrome/common/extensions/permissions/permissions_data.h" 5 #include "chrome/common/extensions/permissions/permissions_data.h"
6 6
7 #include "base/command_line.h" 7 #include "base/command_line.h"
8 #include "base/memory/scoped_ptr.h" 8 #include "base/memory/scoped_ptr.h"
9 #include "base/string16.h" 9 #include "base/string16.h"
10 #include "base/stringprintf.h" 10 #include "base/stringprintf.h"
(...skipping 574 matching lines...) Expand 10 before | Expand all | Expand 10 after
585 bool PermissionsData::ParsePermissions(Extension* extension, string16* error) { 585 bool PermissionsData::ParsePermissions(Extension* extension, string16* error) {
586 initial_required_permissions_.reset(new InitialPermissions); 586 initial_required_permissions_.reset(new InitialPermissions);
587 if (!ParseHelper(extension, 587 if (!ParseHelper(extension,
588 keys::kPermissions, 588 keys::kPermissions,
589 &initial_required_permissions_->api_permissions, 589 &initial_required_permissions_->api_permissions,
590 &initial_required_permissions_->host_permissions, 590 &initial_required_permissions_->host_permissions,
591 error)) { 591 error)) {
592 return false; 592 return false;
593 } 593 }
594 594
595 // Check for any permissions that are optional only.
596 for (APIPermissionSet::const_iterator iter =
597 initial_required_permissions_->api_permissions.begin();
598 iter != initial_required_permissions_->api_permissions.end(); ++iter) {
599 if ((*iter)->info()->must_be_optional()) {
600 *error = ErrorUtils::FormatErrorMessageUTF16(
601 errors::kPermissionMustBeOptional, (*iter)->info()->name());
602 return false;
603 }
604 }
605
606 // TODO(jeremya/kalman) do this via the features system by exposing the 595 // TODO(jeremya/kalman) do this via the features system by exposing the
607 // app.window API to platform apps, with no dependency on any permissions. 596 // app.window API to platform apps, with no dependency on any permissions.
608 // See http://crbug.com/120069. 597 // See http://crbug.com/120069.
609 if (extension->is_platform_app()) { 598 if (extension->is_platform_app()) {
610 initial_required_permissions_->api_permissions.insert( 599 initial_required_permissions_->api_permissions.insert(
611 APIPermission::kAppCurrentWindowInternal); 600 APIPermission::kAppCurrentWindowInternal);
612 initial_required_permissions_->api_permissions.insert( 601 initial_required_permissions_->api_permissions.insert(
613 APIPermission::kAppRuntime); 602 APIPermission::kAppRuntime);
614 initial_required_permissions_->api_permissions.insert( 603 initial_required_permissions_->api_permissions.insert(
615 APIPermission::kAppWindow); 604 APIPermission::kAppWindow);
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
651 optional_permission_set_ = new PermissionSet( 640 optional_permission_set_ = new PermissionSet(
652 initial_optional_permissions_->api_permissions, 641 initial_optional_permissions_->api_permissions,
653 initial_optional_permissions_->host_permissions, 642 initial_optional_permissions_->host_permissions,
654 URLPatternSet()); 643 URLPatternSet());
655 644
656 initial_required_permissions_.reset(); 645 initial_required_permissions_.reset();
657 initial_optional_permissions_.reset(); 646 initial_optional_permissions_.reset();
658 } 647 }
659 648
660 } // namespace extensions 649 } // namespace extensions
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698