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

Side by Side Diff: chrome/browser/ui/webui/extensions/extension_settings_handler.cc

Issue 12093036: Move Extension Location and Type enums to Manifest, and move InstallWarning to its own file. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 years, 10 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) 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/ui/webui/extensions/extension_settings_handler.h" 5 #include "chrome/browser/ui/webui/extensions/extension_settings_handler.h"
6 6
7 #include "base/auto_reset.h" 7 #include "base/auto_reset.h"
8 #include "base/base64.h" 8 #include "base/base64.h"
9 #include "base/bind.h" 9 #include "base/bind.h"
10 #include "base/bind_helpers.h" 10 #include "base/bind_helpers.h"
(...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after
68 #include "grit/theme_resources.h" 68 #include "grit/theme_resources.h"
69 #include "ui/base/l10n/l10n_util.h" 69 #include "ui/base/l10n/l10n_util.h"
70 #include "ui/base/resource/resource_bundle.h" 70 #include "ui/base/resource/resource_bundle.h"
71 71
72 using content::RenderViewHost; 72 using content::RenderViewHost;
73 using content::WebContents; 73 using content::WebContents;
74 using extensions::Extension; 74 using extensions::Extension;
75 using extensions::ExtensionUpdater; 75 using extensions::ExtensionUpdater;
76 using extensions::ExtensionWarning; 76 using extensions::ExtensionWarning;
77 using extensions::ManagementPolicy; 77 using extensions::ManagementPolicy;
78 using extensions::Manifest;
78 79
79 /////////////////////////////////////////////////////////////////////////////// 80 ///////////////////////////////////////////////////////////////////////////////
80 // 81 //
81 // ExtensionSettingsHandler 82 // ExtensionSettingsHandler
82 // 83 //
83 /////////////////////////////////////////////////////////////////////////////// 84 ///////////////////////////////////////////////////////////////////////////////
84 85
85 ExtensionSettingsHandler::ExtensionSettingsHandler() 86 ExtensionSettingsHandler::ExtensionSettingsHandler()
86 : extension_service_(NULL), 87 : extension_service_(NULL),
87 management_policy_(NULL), 88 management_policy_(NULL),
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
124 extension->GetBasicInfo(enabled, extension_data); 125 extension->GetBasicInfo(enabled, extension_data);
125 126
126 extension_data->SetBoolean("userModifiable", 127 extension_data->SetBoolean("userModifiable",
127 management_policy_->UserMayModifySettings(extension, NULL)); 128 management_policy_->UserMayModifySettings(extension, NULL));
128 129
129 GURL icon = 130 GURL icon =
130 ExtensionIconSource::GetIconURL(extension, 131 ExtensionIconSource::GetIconURL(extension,
131 extension_misc::EXTENSION_ICON_MEDIUM, 132 extension_misc::EXTENSION_ICON_MEDIUM,
132 ExtensionIconSet::MATCH_BIGGER, 133 ExtensionIconSet::MATCH_BIGGER,
133 !enabled, NULL); 134 !enabled, NULL);
134 if (extension->location() == Extension::LOAD) 135 if (extension->location() == Manifest::LOAD)
135 extension_data->SetString("path", extension->path().value()); 136 extension_data->SetString("path", extension->path().value());
136 extension_data->SetString("icon", icon.spec()); 137 extension_data->SetString("icon", icon.spec());
137 extension_data->SetBoolean("isUnpacked", 138 extension_data->SetBoolean("isUnpacked",
138 extension->location() == Extension::LOAD); 139 extension->location() == Manifest::LOAD);
139 extension_data->SetBoolean("terminated", 140 extension_data->SetBoolean("terminated",
140 extension_service_->terminated_extensions()->Contains(extension->id())); 141 extension_service_->terminated_extensions()->Contains(extension->id()));
141 extension_data->SetBoolean("enabledIncognito", 142 extension_data->SetBoolean("enabledIncognito",
142 extension_service_->IsIncognitoEnabled(extension->id())); 143 extension_service_->IsIncognitoEnabled(extension->id()));
143 extension_data->SetBoolean("incognitoCanBeEnabled", 144 extension_data->SetBoolean("incognitoCanBeEnabled",
144 extension->can_be_incognito_enabled()); 145 extension->can_be_incognito_enabled());
145 extension_data->SetBoolean("wantsFileAccess", extension->wants_file_access()); 146 extension_data->SetBoolean("wantsFileAccess", extension->wants_file_access());
146 extension_data->SetBoolean("allowFileAccess", 147 extension_data->SetBoolean("allowFileAccess",
147 extension_service_->AllowFileAccess(extension)); 148 extension_service_->AllowFileAccess(extension));
148 extension_data->SetBoolean("allow_activity", 149 extension_data->SetBoolean("allow_activity",
149 enabled && CommandLine::ForCurrentProcess()->HasSwitch( 150 enabled && CommandLine::ForCurrentProcess()->HasSwitch(
150 switches::kEnableExtensionActivityUI)); 151 switches::kEnableExtensionActivityUI));
151 extension_data->SetBoolean("allow_reload", 152 extension_data->SetBoolean("allow_reload",
152 extension->location() == Extension::LOAD); 153 extension->location() == Manifest::LOAD);
153 extension_data->SetBoolean("is_hosted_app", extension->is_hosted_app()); 154 extension_data->SetBoolean("is_hosted_app", extension->is_hosted_app());
154 extension_data->SetBoolean("is_platform_app", extension->is_platform_app()); 155 extension_data->SetBoolean("is_platform_app", extension->is_platform_app());
155 extension_data->SetBoolean("homepageProvided", 156 extension_data->SetBoolean("homepageProvided",
156 extensions::ManifestURL::GetHomepageURL(extension).is_valid()); 157 extensions::ManifestURL::GetHomepageURL(extension).is_valid());
157 158
158 string16 automatically_disabled_text; 159 string16 automatically_disabled_text;
159 int disable_reasons = 160 int disable_reasons =
160 extension_service_->extension_prefs()->GetDisableReasons(extension->id()); 161 extension_service_->extension_prefs()->GetDisableReasons(extension->id());
161 if ((disable_reasons & Extension::DISABLE_SIDELOAD_WIPEOUT) != 0) { 162 if ((disable_reasons & Extension::DISABLE_SIDELOAD_WIPEOUT) != 0) {
162 automatically_disabled_text = l10n_util::GetStringUTF16( 163 automatically_disabled_text = l10n_util::GetStringUTF16(
163 IDS_OPTIONS_SIDELOAD_WIPEOUT_AUTOMATIC_DISABLE); 164 IDS_OPTIONS_SIDELOAD_WIPEOUT_AUTOMATIC_DISABLE);
164 } 165 }
165 extension_data->SetString("disableReason", automatically_disabled_text); 166 extension_data->SetString("disableReason", automatically_disabled_text);
166 167
167 string16 location_text; 168 string16 location_text;
168 if (extension->location() == Extension::INTERNAL && 169 if (extension->location() == Manifest::INTERNAL &&
169 !extension->UpdatesFromGallery()) { 170 !extension->UpdatesFromGallery()) {
170 location_text = l10n_util::GetStringUTF16( 171 location_text = l10n_util::GetStringUTF16(
171 IDS_OPTIONS_SIDELOAD_WIPEOUT_DISABLE_REASON_UNKNOWN); 172 IDS_OPTIONS_SIDELOAD_WIPEOUT_DISABLE_REASON_UNKNOWN);
172 } else if (extension->location() == Extension::EXTERNAL_REGISTRY) { 173 } else if (extension->location() == Manifest::EXTERNAL_REGISTRY) {
173 location_text = l10n_util::GetStringUTF16( 174 location_text = l10n_util::GetStringUTF16(
174 IDS_OPTIONS_SIDELOAD_WIPEOUT_DISABLE_REASON_3RD_PARTY); 175 IDS_OPTIONS_SIDELOAD_WIPEOUT_DISABLE_REASON_3RD_PARTY);
175 } 176 }
176 extension_data->SetString("locationText", location_text); 177 extension_data->SetString("locationText", location_text);
177 178
178 // Determine the sort order: Extensions loaded through --load-extensions show 179 // Determine the sort order: Extensions loaded through --load-extensions show
179 // up at the top. Disabled extensions show up at the bottom. 180 // up at the top. Disabled extensions show up at the bottom.
180 if (extension->location() == Extension::LOAD) 181 if (extension->location() == Manifest::LOAD)
181 extension_data->SetInteger("order", 1); 182 extension_data->SetInteger("order", 1);
182 else 183 else
183 extension_data->SetInteger("order", 2); 184 extension_data->SetInteger("order", 2);
184 185
185 if (!extension_service_->extension_prefs()-> 186 if (!extension_service_->extension_prefs()->
186 GetBrowserActionVisibility(extension)) { 187 GetBrowserActionVisibility(extension)) {
187 extension_data->SetBoolean("enable_show_button", true); 188 extension_data->SetBoolean("enable_show_button", true);
188 } 189 }
189 190
190 // Add views 191 // Add views
(...skipping 30 matching lines...) Expand all
221 ListValue* warnings_list = new ListValue; 222 ListValue* warnings_list = new ListValue;
222 for (std::vector<std::string>::const_iterator iter = warnings.begin(); 223 for (std::vector<std::string>::const_iterator iter = warnings.begin();
223 iter != warnings.end(); ++iter) { 224 iter != warnings.end(); ++iter) {
224 warnings_list->Append(Value::CreateStringValue(*iter)); 225 warnings_list->Append(Value::CreateStringValue(*iter));
225 } 226 }
226 extension_data->Set("warnings", warnings_list); 227 extension_data->Set("warnings", warnings_list);
227 } 228 }
228 } 229 }
229 230
230 // Add install warnings (these are not the same as warnings!). 231 // Add install warnings (these are not the same as warnings!).
231 if (extension->location() == Extension::LOAD) { 232 if (extension->location() == Manifest::LOAD) {
232 const Extension::InstallWarningVector& install_warnings = 233 const std::vector<extensions::InstallWarning>& install_warnings =
233 extension->install_warnings(); 234 extension->install_warnings();
234 if (!install_warnings.empty()) { 235 if (!install_warnings.empty()) {
235 scoped_ptr<ListValue> list(new ListValue()); 236 scoped_ptr<ListValue> list(new ListValue());
236 for (Extension::InstallWarningVector::const_iterator it = 237 for (std::vector<extensions::InstallWarning>::const_iterator it =
237 install_warnings.begin(); it != install_warnings.end(); ++it) { 238 install_warnings.begin(); it != install_warnings.end(); ++it) {
238 DictionaryValue* item = new DictionaryValue(); 239 DictionaryValue* item = new DictionaryValue();
239 item->SetBoolean("isHTML", 240 item->SetBoolean("isHTML",
240 it->format == Extension::InstallWarning::FORMAT_HTML); 241 it->format == extensions::InstallWarning::FORMAT_HTML);
241 item->SetString("message", it->message); 242 item->SetString("message", it->message);
242 list->Append(item); 243 list->Append(item);
243 } 244 }
244 extension_data->Set("installWarnings", list.release()); 245 extension_data->Set("installWarnings", list.release());
245 } 246 }
246 } 247 }
247 248
248 return extension_data; 249 return extension_data;
249 } 250 }
250 251
(...skipping 248 matching lines...) Expand 10 before | Expand all | Expand 10 after
499 500
500 void ExtensionSettingsHandler::ExtensionWarningsChanged() { 501 void ExtensionSettingsHandler::ExtensionWarningsChanged() {
501 MaybeUpdateAfterNotification(); 502 MaybeUpdateAfterNotification();
502 } 503 }
503 504
504 void ExtensionSettingsHandler::ReloadUnpackedExtensions() { 505 void ExtensionSettingsHandler::ReloadUnpackedExtensions() {
505 const ExtensionSet* extensions = extension_service_->extensions(); 506 const ExtensionSet* extensions = extension_service_->extensions();
506 std::vector<const Extension*> unpacked_extensions; 507 std::vector<const Extension*> unpacked_extensions;
507 for (ExtensionSet::const_iterator extension = extensions->begin(); 508 for (ExtensionSet::const_iterator extension = extensions->begin();
508 extension != extensions->end(); ++extension) { 509 extension != extensions->end(); ++extension) {
509 if ((*extension)->location() == Extension::LOAD) 510 if ((*extension)->location() == Manifest::LOAD)
510 unpacked_extensions.push_back(*extension); 511 unpacked_extensions.push_back(*extension);
511 } 512 }
512 513
513 for (std::vector<const Extension*>::iterator iter = 514 for (std::vector<const Extension*>::iterator iter =
514 unpacked_extensions.begin(); iter != unpacked_extensions.end(); ++iter) { 515 unpacked_extensions.begin(); iter != unpacked_extensions.end(); ++iter) {
515 extension_service_->ReloadExtension((*iter)->id()); 516 extension_service_->ReloadExtension((*iter)->id());
516 } 517 }
517 } 518 }
518 519
519 void ExtensionSettingsHandler::HandleRequestExtensionsData( 520 void ExtensionSettingsHandler::HandleRequestExtensionsData(
(...skipping 487 matching lines...) Expand 10 before | Expand all | Expand 10 after
1007 std::vector<std::string> requirement_errors) { 1008 std::vector<std::string> requirement_errors) {
1008 if (requirement_errors.empty()) { 1009 if (requirement_errors.empty()) {
1009 extension_service_->EnableExtension(extension_id); 1010 extension_service_->EnableExtension(extension_id);
1010 } else { 1011 } else {
1011 ExtensionErrorReporter::GetInstance()->ReportError( 1012 ExtensionErrorReporter::GetInstance()->ReportError(
1012 UTF8ToUTF16(JoinString(requirement_errors, ' ')), 1013 UTF8ToUTF16(JoinString(requirement_errors, ' ')),
1013 true /* be noisy */); 1014 true /* be noisy */);
1014 } 1015 }
1015 requirements_checker_.reset(); 1016 requirements_checker_.reset();
1016 } 1017 }
OLDNEW
« no previous file with comments | « chrome/browser/ui/tabs/tab_strip_model_unittest.cc ('k') | chrome/browser/ui/webui/ntp/app_launcher_handler.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698