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 <map> | 7 #include <map> |
8 | 8 |
9 #include "base/command_line.h" | 9 #include "base/command_line.h" |
10 #include "base/message_loop/message_loop.h" | 10 #include "base/message_loop/message_loop.h" |
(...skipping 18 matching lines...) Expand all Loading... |
29 #include "extensions/browser/image_loader.h" | 29 #include "extensions/browser/image_loader.h" |
30 #include "extensions/browser/install/extension_install_ui.h" | 30 #include "extensions/browser/install/extension_install_ui.h" |
31 #include "extensions/common/constants.h" | 31 #include "extensions/common/constants.h" |
32 #include "extensions/common/extension.h" | 32 #include "extensions/common/extension.h" |
33 #include "extensions/common/extension_icon_set.h" | 33 #include "extensions/common/extension_icon_set.h" |
34 #include "extensions/common/extension_resource.h" | 34 #include "extensions/common/extension_resource.h" |
35 #include "extensions/common/feature_switch.h" | 35 #include "extensions/common/feature_switch.h" |
36 #include "extensions/common/manifest.h" | 36 #include "extensions/common/manifest.h" |
37 #include "extensions/common/manifest_constants.h" | 37 #include "extensions/common/manifest_constants.h" |
38 #include "extensions/common/manifest_handlers/icons_handler.h" | 38 #include "extensions/common/manifest_handlers/icons_handler.h" |
| 39 #include "extensions/common/manifest_handlers/permissions_parser.h" |
39 #include "extensions/common/permissions/permission_message_provider.h" | 40 #include "extensions/common/permissions/permission_message_provider.h" |
40 #include "extensions/common/permissions/permission_set.h" | 41 #include "extensions/common/permissions/permission_set.h" |
41 #include "extensions/common/permissions/permissions_data.h" | 42 #include "extensions/common/permissions/permissions_data.h" |
42 #include "extensions/common/url_pattern.h" | 43 #include "extensions/common/url_pattern.h" |
43 #include "grit/theme_resources.h" | 44 #include "grit/theme_resources.h" |
44 #include "ui/base/l10n/l10n_util.h" | 45 #include "ui/base/l10n/l10n_util.h" |
45 #include "ui/base/resource/resource_bundle.h" | 46 #include "ui/base/resource/resource_bundle.h" |
46 #include "ui/base/ui_base_types.h" | 47 #include "ui/base/ui_base_types.h" |
47 #include "ui/gfx/image/image.h" | 48 #include "ui/gfx/image/image.h" |
48 | 49 |
(...skipping 868 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
917 if (custom_permissions_.get()) { | 918 if (custom_permissions_.get()) { |
918 permissions_to_display = custom_permissions_; | 919 permissions_to_display = custom_permissions_; |
919 } else if (extension_) { | 920 } else if (extension_) { |
920 // Initialize permissions if they have not already been set so that | 921 // Initialize permissions if they have not already been set so that |
921 // withheld permissions are displayed properly in the install prompt. | 922 // withheld permissions are displayed properly in the install prompt. |
922 extensions::PermissionsUpdater( | 923 extensions::PermissionsUpdater( |
923 profile_, extensions::PermissionsUpdater::INIT_FLAG_TRANSIENT) | 924 profile_, extensions::PermissionsUpdater::INIT_FLAG_TRANSIENT) |
924 .InitializePermissions(extension_); | 925 .InitializePermissions(extension_); |
925 permissions_to_display = | 926 permissions_to_display = |
926 extension_->permissions_data()->active_permissions(); | 927 extension_->permissions_data()->active_permissions(); |
| 928 // For delegated installs, all optional permissions are pre-approved by the |
| 929 // person who triggers the install, so add them to the list. |
| 930 if (prompt_->type() == DELEGATED_PERMISSIONS_PROMPT) { |
| 931 scoped_refptr<const PermissionSet> optional_permissions = |
| 932 extensions::PermissionsParser::GetOptionalPermissions(extension_); |
| 933 permissions_to_display = PermissionSet::CreateUnion( |
| 934 permissions_to_display.get(), |
| 935 optional_permissions.get()); |
| 936 } |
927 } | 937 } |
928 | 938 |
929 if (permissions_to_display.get() && | 939 if (permissions_to_display.get() && |
930 (!extension_ || | 940 (!extension_ || |
931 !extensions::PermissionsData::ShouldSkipPermissionWarnings( | 941 !extensions::PermissionsData::ShouldSkipPermissionWarnings( |
932 extension_->id()))) { | 942 extension_->id()))) { |
933 Manifest::Type type = | 943 Manifest::Type type = |
934 extension_ ? extension_->GetType() : Manifest::TYPE_UNKNOWN; | 944 extension_ ? extension_->GetType() : Manifest::TYPE_UNKNOWN; |
935 const extensions::PermissionMessageProvider* message_provider = | 945 const extensions::PermissionMessageProvider* message_provider = |
936 extensions::PermissionMessageProvider::Get(); | 946 extensions::PermissionMessageProvider::Get(); |
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
986 if (show_params_->WasParentDestroyed()) { | 996 if (show_params_->WasParentDestroyed()) { |
987 delegate_->InstallUIAbort(false); | 997 delegate_->InstallUIAbort(false); |
988 return; | 998 return; |
989 } | 999 } |
990 | 1000 |
991 if (show_dialog_callback_.is_null()) | 1001 if (show_dialog_callback_.is_null()) |
992 GetDefaultShowDialogCallback().Run(show_params_.get(), delegate_, prompt_); | 1002 GetDefaultShowDialogCallback().Run(show_params_.get(), delegate_, prompt_); |
993 else | 1003 else |
994 show_dialog_callback_.Run(show_params_.get(), delegate_, prompt_); | 1004 show_dialog_callback_.Run(show_params_.get(), delegate_, prompt_); |
995 } | 1005 } |
OLD | NEW |