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/extension_install_prompt.h" | 5 #include "chrome/browser/extensions/extension_install_prompt.h" |
6 | 6 |
7 #include <utility> | 7 #include <utility> |
8 | 8 |
9 #include "base/callback_helpers.h" | 9 #include "base/callback_helpers.h" |
10 #include "base/location.h" | 10 #include "base/location.h" |
(...skipping 143 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
154 rating_count_(0), | 154 rating_count_(0), |
155 show_user_count_(false), | 155 show_user_count_(false), |
156 has_webstore_data_(false) { | 156 has_webstore_data_(false) { |
157 DCHECK_NE(type_, UNSET_PROMPT_TYPE); | 157 DCHECK_NE(type_, UNSET_PROMPT_TYPE); |
158 DCHECK_NE(type_, NUM_PROMPT_TYPES); | 158 DCHECK_NE(type_, NUM_PROMPT_TYPES); |
159 } | 159 } |
160 | 160 |
161 ExtensionInstallPrompt::Prompt::~Prompt() { | 161 ExtensionInstallPrompt::Prompt::~Prompt() { |
162 } | 162 } |
163 | 163 |
164 void ExtensionInstallPrompt::Prompt::SetPermissions( | 164 void ExtensionInstallPrompt::Prompt::AddPermissions( |
165 const PermissionMessages& permissions, | 165 const PermissionMessages& permissions, |
166 PermissionsType permissions_type) { | 166 PermissionsType permissions_type) { |
167 InstallPromptPermissions& install_permissions = | 167 InstallPromptPermissions& install_permissions = |
168 GetPermissionsForType(permissions_type); | 168 GetPermissionsForType(permissions_type); |
169 | 169 |
170 install_permissions.permissions.clear(); | |
171 install_permissions.details.clear(); | |
172 install_permissions.is_showing_details.clear(); | |
173 | |
174 for (const PermissionMessage& msg : permissions) { | 170 for (const PermissionMessage& msg : permissions) { |
175 install_permissions.permissions.push_back(msg.message()); | 171 install_permissions.permissions.push_back(msg.message()); |
176 // Add a dash to the front of each permission detail. | 172 // Add a dash to the front of each permission detail. |
177 base::string16 details; | 173 base::string16 details; |
178 if (!msg.submessages().empty()) { | 174 if (!msg.submessages().empty()) { |
179 std::vector<base::string16> detail_lines_with_bullets; | 175 std::vector<base::string16> detail_lines_with_bullets; |
180 for (const auto& detail_line : msg.submessages()) { | 176 for (const auto& detail_line : msg.submessages()) { |
181 detail_lines_with_bullets.push_back(base::ASCIIToUTF16("- ") + | 177 detail_lines_with_bullets.push_back(base::ASCIIToUTF16("- ") + |
182 detail_line); | 178 detail_line); |
183 } | 179 } |
(...skipping 601 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
785 | 781 |
786 if (permissions_to_display && | 782 if (permissions_to_display && |
787 (!extension_ || | 783 (!extension_ || |
788 !extensions::PermissionsData::ShouldSkipPermissionWarnings( | 784 !extensions::PermissionsData::ShouldSkipPermissionWarnings( |
789 extension_->id()))) { | 785 extension_->id()))) { |
790 Manifest::Type type = | 786 Manifest::Type type = |
791 extension_ ? extension_->GetType() : Manifest::TYPE_UNKNOWN; | 787 extension_ ? extension_->GetType() : Manifest::TYPE_UNKNOWN; |
792 const extensions::PermissionMessageProvider* message_provider = | 788 const extensions::PermissionMessageProvider* message_provider = |
793 extensions::PermissionMessageProvider::Get(); | 789 extensions::PermissionMessageProvider::Get(); |
794 | 790 |
795 prompt_->SetPermissions(message_provider->GetPermissionMessages( | 791 prompt_->AddPermissions(message_provider->GetPermissionMessages( |
796 message_provider->GetAllPermissionIDs( | 792 message_provider->GetAllPermissionIDs( |
797 *permissions_to_display, type)), | 793 *permissions_to_display, type)), |
798 REGULAR_PERMISSIONS); | 794 REGULAR_PERMISSIONS); |
799 | 795 |
800 const PermissionSet* withheld = | 796 const PermissionSet* withheld = |
801 extension_ ? &extension_->permissions_data()->withheld_permissions() | 797 extension_ ? &extension_->permissions_data()->withheld_permissions() |
802 : nullptr; | 798 : nullptr; |
803 if (withheld && !withheld->IsEmpty()) { | 799 if (withheld && !withheld->IsEmpty()) { |
804 prompt_->SetPermissions( | 800 prompt_->AddPermissions( |
805 message_provider->GetPermissionMessages( | 801 message_provider->GetPermissionMessages( |
806 message_provider->GetAllPermissionIDs(*withheld, type)), | 802 message_provider->GetAllPermissionIDs(*withheld, type)), |
807 WITHHELD_PERMISSIONS); | 803 WITHHELD_PERMISSIONS); |
808 } | 804 } |
809 } | 805 } |
810 | 806 |
811 prompt_->set_extension(extension_); | 807 prompt_->set_extension(extension_); |
812 prompt_->set_icon(gfx::Image::CreateFrom1xBitmap(icon_)); | 808 prompt_->set_icon(gfx::Image::CreateFrom1xBitmap(icon_)); |
813 | 809 |
814 if (show_params_->WasParentDestroyed()) { | 810 if (show_params_->WasParentDestroyed()) { |
815 base::ResetAndReturn(&done_callback_).Run(Result::ABORTED); | 811 base::ResetAndReturn(&done_callback_).Run(Result::ABORTED); |
816 return; | 812 return; |
817 } | 813 } |
818 | 814 |
819 g_last_prompt_type_for_tests = prompt_->type(); | 815 g_last_prompt_type_for_tests = prompt_->type(); |
820 did_call_show_dialog_ = true; | 816 did_call_show_dialog_ = true; |
821 | 817 |
822 if (AutoConfirmPrompt(&done_callback_)) | 818 if (AutoConfirmPrompt(&done_callback_)) |
823 return; | 819 return; |
824 | 820 |
825 if (show_dialog_callback_.is_null()) | 821 if (show_dialog_callback_.is_null()) |
826 show_dialog_callback_ = GetDefaultShowDialogCallback(); | 822 show_dialog_callback_ = GetDefaultShowDialogCallback(); |
827 base::ResetAndReturn(&show_dialog_callback_) | 823 base::ResetAndReturn(&show_dialog_callback_) |
828 .Run(show_params_.get(), base::ResetAndReturn(&done_callback_), | 824 .Run(show_params_.get(), base::ResetAndReturn(&done_callback_), |
829 std::move(prompt_)); | 825 std::move(prompt_)); |
830 } | 826 } |
OLD | NEW |