| OLD | NEW |
| 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/browser/extensions/api/permissions/permissions_api.h" | 5 #include "chrome/browser/extensions/api/permissions/permissions_api.h" |
| 6 | 6 |
| 7 #include "base/memory/scoped_ptr.h" | 7 #include "base/memory/scoped_ptr.h" |
| 8 #include "chrome/browser/extensions/api/permissions/permissions_api_helpers.h" | 8 #include "chrome/browser/extensions/api/permissions/permissions_api_helpers.h" |
| 9 #include "chrome/browser/extensions/extension_service.h" | 9 #include "chrome/browser/extensions/extension_service.h" |
| 10 #include "chrome/browser/extensions/permissions_updater.h" | 10 #include "chrome/browser/extensions/permissions_updater.h" |
| (...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 45 enum AutoConfirmForTest { | 45 enum AutoConfirmForTest { |
| 46 DO_NOT_SKIP = 0, | 46 DO_NOT_SKIP = 0, |
| 47 PROCEED, | 47 PROCEED, |
| 48 ABORT | 48 ABORT |
| 49 }; | 49 }; |
| 50 AutoConfirmForTest auto_confirm_for_tests = DO_NOT_SKIP; | 50 AutoConfirmForTest auto_confirm_for_tests = DO_NOT_SKIP; |
| 51 bool ignore_user_gesture_for_tests = false; | 51 bool ignore_user_gesture_for_tests = false; |
| 52 | 52 |
| 53 } // namespace | 53 } // namespace |
| 54 | 54 |
| 55 bool PermissionsContainsFunction::RunImpl() { | 55 bool ContainsPermissionsFunction::RunImpl() { |
| 56 scoped_ptr<Contains::Params> params(Contains::Params::Create(*args_)); | 56 scoped_ptr<Contains::Params> params(Contains::Params::Create(*args_)); |
| 57 | 57 |
| 58 scoped_refptr<PermissionSet> permissions = | 58 scoped_refptr<PermissionSet> permissions = |
| 59 helpers::UnpackPermissionSet(params->permissions, &error_); | 59 helpers::UnpackPermissionSet(params->permissions, &error_); |
| 60 if (!permissions.get()) | 60 if (!permissions.get()) |
| 61 return false; | 61 return false; |
| 62 | 62 |
| 63 results_ = Contains::Results::Create( | 63 results_ = Contains::Results::Create( |
| 64 GetExtension()->GetActivePermissions()->Contains(*permissions)); | 64 GetExtension()->GetActivePermissions()->Contains(*permissions)); |
| 65 return true; | 65 return true; |
| 66 } | 66 } |
| 67 | 67 |
| 68 bool PermissionsGetAllFunction::RunImpl() { | 68 bool GetAllPermissionsFunction::RunImpl() { |
| 69 scoped_ptr<Permissions> permissions = | 69 scoped_ptr<Permissions> permissions = |
| 70 helpers::PackPermissionSet(GetExtension()->GetActivePermissions()); | 70 helpers::PackPermissionSet(GetExtension()->GetActivePermissions()); |
| 71 results_ = GetAll::Results::Create(*permissions); | 71 results_ = GetAll::Results::Create(*permissions); |
| 72 return true; | 72 return true; |
| 73 } | 73 } |
| 74 | 74 |
| 75 bool PermissionsRemoveFunction::RunImpl() { | 75 bool RemovePermissionsFunction::RunImpl() { |
| 76 scoped_ptr<Remove::Params> params(Remove::Params::Create(*args_)); | 76 scoped_ptr<Remove::Params> params(Remove::Params::Create(*args_)); |
| 77 EXTENSION_FUNCTION_VALIDATE(params.get()); | 77 EXTENSION_FUNCTION_VALIDATE(params.get()); |
| 78 | 78 |
| 79 scoped_refptr<PermissionSet> permissions = | 79 scoped_refptr<PermissionSet> permissions = |
| 80 helpers::UnpackPermissionSet(params->permissions, &error_); | 80 helpers::UnpackPermissionSet(params->permissions, &error_); |
| 81 if (!permissions.get()) | 81 if (!permissions.get()) |
| 82 return false; | 82 return false; |
| 83 | 83 |
| 84 const extensions::Extension* extension = GetExtension(); | 84 const extensions::Extension* extension = GetExtension(); |
| 85 | 85 |
| (...skipping 17 matching lines...) Expand all Loading... |
| 103 results_ = Remove::Results::Create(false); | 103 results_ = Remove::Results::Create(false); |
| 104 return false; | 104 return false; |
| 105 } | 105 } |
| 106 | 106 |
| 107 PermissionsUpdater(profile()).RemovePermissions(extension, permissions.get()); | 107 PermissionsUpdater(profile()).RemovePermissions(extension, permissions.get()); |
| 108 results_ = Remove::Results::Create(true); | 108 results_ = Remove::Results::Create(true); |
| 109 return true; | 109 return true; |
| 110 } | 110 } |
| 111 | 111 |
| 112 // static | 112 // static |
| 113 void PermissionsRequestFunction::SetAutoConfirmForTests(bool should_proceed) { | 113 void RequestPermissionsFunction::SetAutoConfirmForTests(bool should_proceed) { |
| 114 auto_confirm_for_tests = should_proceed ? PROCEED : ABORT; | 114 auto_confirm_for_tests = should_proceed ? PROCEED : ABORT; |
| 115 } | 115 } |
| 116 | 116 |
| 117 // static | 117 // static |
| 118 void PermissionsRequestFunction::SetIgnoreUserGestureForTests( | 118 void RequestPermissionsFunction::SetIgnoreUserGestureForTests( |
| 119 bool ignore) { | 119 bool ignore) { |
| 120 ignore_user_gesture_for_tests = ignore; | 120 ignore_user_gesture_for_tests = ignore; |
| 121 } | 121 } |
| 122 | 122 |
| 123 PermissionsRequestFunction::PermissionsRequestFunction() {} | 123 RequestPermissionsFunction::RequestPermissionsFunction() {} |
| 124 | 124 |
| 125 void PermissionsRequestFunction::InstallUIProceed() { | 125 void RequestPermissionsFunction::InstallUIProceed() { |
| 126 PermissionsUpdater perms_updater(profile()); | 126 PermissionsUpdater perms_updater(profile()); |
| 127 perms_updater.AddPermissions(GetExtension(), requested_permissions_.get()); | 127 perms_updater.AddPermissions(GetExtension(), requested_permissions_.get()); |
| 128 | 128 |
| 129 results_ = Request::Results::Create(true); | 129 results_ = Request::Results::Create(true); |
| 130 SendResponse(true); | 130 SendResponse(true); |
| 131 | 131 |
| 132 Release(); // Balanced in RunImpl(). | 132 Release(); // Balanced in RunImpl(). |
| 133 } | 133 } |
| 134 | 134 |
| 135 void PermissionsRequestFunction::InstallUIAbort(bool user_initiated) { | 135 void RequestPermissionsFunction::InstallUIAbort(bool user_initiated) { |
| 136 results_ = Request::Results::Create(false); | 136 results_ = Request::Results::Create(false); |
| 137 SendResponse(true); | 137 SendResponse(true); |
| 138 | 138 |
| 139 Release(); // Balanced in RunImpl(). | 139 Release(); // Balanced in RunImpl(). |
| 140 } | 140 } |
| 141 | 141 |
| 142 PermissionsRequestFunction::~PermissionsRequestFunction() {} | 142 RequestPermissionsFunction::~RequestPermissionsFunction() {} |
| 143 | 143 |
| 144 bool PermissionsRequestFunction::RunImpl() { | 144 bool RequestPermissionsFunction::RunImpl() { |
| 145 if (!user_gesture() && !ignore_user_gesture_for_tests) { | 145 if (!user_gesture() && !ignore_user_gesture_for_tests) { |
| 146 error_ = kUserGestureRequiredError; | 146 error_ = kUserGestureRequiredError; |
| 147 return false; | 147 return false; |
| 148 } | 148 } |
| 149 | 149 |
| 150 scoped_ptr<Request::Params> params(Request::Params::Create(*args_)); | 150 scoped_ptr<Request::Params> params(Request::Params::Create(*args_)); |
| 151 EXTENSION_FUNCTION_VALIDATE(params.get()); | 151 EXTENSION_FUNCTION_VALIDATE(params.get()); |
| 152 | 152 |
| 153 requested_permissions_ = | 153 requested_permissions_ = |
| 154 helpers::UnpackPermissionSet(params->permissions, &error_); | 154 helpers::UnpackPermissionSet(params->permissions, &error_); |
| (...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 214 InstallUIAbort(true); | 214 InstallUIAbort(true); |
| 215 } else { | 215 } else { |
| 216 CHECK_EQ(DO_NOT_SKIP, auto_confirm_for_tests); | 216 CHECK_EQ(DO_NOT_SKIP, auto_confirm_for_tests); |
| 217 install_ui_.reset(new ExtensionInstallPrompt(GetAssociatedWebContents())); | 217 install_ui_.reset(new ExtensionInstallPrompt(GetAssociatedWebContents())); |
| 218 install_ui_->ConfirmPermissions( | 218 install_ui_->ConfirmPermissions( |
| 219 this, GetExtension(), requested_permissions_.get()); | 219 this, GetExtension(), requested_permissions_.get()); |
| 220 } | 220 } |
| 221 | 221 |
| 222 return true; | 222 return true; |
| 223 } | 223 } |
| OLD | NEW |