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/ui/webui/extensions/extension_settings_handler.h" | 5 #include "chrome/browser/ui/webui/extensions/extension_settings_handler.h" |
6 | 6 |
7 #include "apps/app_load_service.h" | 7 #include "apps/app_load_service.h" |
8 #include "apps/app_restore_service.h" | 8 #include "apps/app_restore_service.h" |
9 #include "apps/app_window.h" | 9 #include "apps/app_window.h" |
10 #include "apps/app_window_registry.h" | 10 #include "apps/app_window_registry.h" |
(...skipping 322 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
333 } | 333 } |
334 extension_data->Set("warnings", warnings_list); | 334 extension_data->Set("warnings", warnings_list); |
335 } | 335 } |
336 } | 336 } |
337 | 337 |
338 // If the ErrorConsole is enabled and the extension is unpacked, use the more | 338 // If the ErrorConsole is enabled and the extension is unpacked, use the more |
339 // detailed errors from the ErrorConsole. Otherwise, use the install warnings | 339 // detailed errors from the ErrorConsole. Otherwise, use the install warnings |
340 // (using both is redundant). | 340 // (using both is redundant). |
341 ErrorConsole* error_console = | 341 ErrorConsole* error_console = |
342 ErrorConsole::Get(extension_service_->profile()); | 342 ErrorConsole::Get(extension_service_->profile()); |
343 if (error_console->IsEnabledForChromeExtensionsPage() && | 343 if (error_console->IsEnabledForChromeExtensionsPage()) { |
344 extension->location() == Manifest::UNPACKED) { | 344 extension_data->SetBoolean("errorCollectionEnabled", |
| 345 error_console->IsReportingEnabledForExtension( |
| 346 extension->id())); |
345 const ErrorList& errors = | 347 const ErrorList& errors = |
346 error_console->GetErrorsForExtension(extension->id()); | 348 error_console->GetErrorsForExtension(extension->id()); |
347 if (!errors.empty()) { | 349 if (!errors.empty()) { |
348 scoped_ptr<base::ListValue> manifest_errors(new base::ListValue); | 350 scoped_ptr<base::ListValue> manifest_errors(new base::ListValue); |
349 scoped_ptr<base::ListValue> runtime_errors(new base::ListValue); | 351 scoped_ptr<base::ListValue> runtime_errors(new base::ListValue); |
350 for (ErrorList::const_iterator iter = errors.begin(); | 352 for (ErrorList::const_iterator iter = errors.begin(); |
351 iter != errors.end(); ++iter) { | 353 iter != errors.end(); ++iter) { |
352 if ((*iter)->type() == ExtensionError::MANIFEST_ERROR) { | 354 if ((*iter)->type() == ExtensionError::MANIFEST_ERROR) { |
353 manifest_errors->Append((*iter)->ToValue().release()); | 355 manifest_errors->Append((*iter)->ToValue().release()); |
354 } else { // Handle runtime error. | 356 } else { // Handle runtime error. |
(...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
419 source->AddString("backgroundPage", | 421 source->AddString("backgroundPage", |
420 l10n_util::GetStringUTF16(IDS_EXTENSIONS_BACKGROUND_PAGE)); | 422 l10n_util::GetStringUTF16(IDS_EXTENSIONS_BACKGROUND_PAGE)); |
421 source->AddString("extensionSettingsEnable", | 423 source->AddString("extensionSettingsEnable", |
422 l10n_util::GetStringUTF16(IDS_EXTENSIONS_ENABLE)); | 424 l10n_util::GetStringUTF16(IDS_EXTENSIONS_ENABLE)); |
423 source->AddString("extensionSettingsEnabled", | 425 source->AddString("extensionSettingsEnabled", |
424 l10n_util::GetStringUTF16(IDS_EXTENSIONS_ENABLED)); | 426 l10n_util::GetStringUTF16(IDS_EXTENSIONS_ENABLED)); |
425 source->AddString("extensionSettingsRemove", | 427 source->AddString("extensionSettingsRemove", |
426 l10n_util::GetStringUTF16(IDS_EXTENSIONS_REMOVE)); | 428 l10n_util::GetStringUTF16(IDS_EXTENSIONS_REMOVE)); |
427 source->AddString("extensionSettingsEnableIncognito", | 429 source->AddString("extensionSettingsEnableIncognito", |
428 l10n_util::GetStringUTF16(IDS_EXTENSIONS_ENABLE_INCOGNITO)); | 430 l10n_util::GetStringUTF16(IDS_EXTENSIONS_ENABLE_INCOGNITO)); |
| 431 source->AddString("extensionSettingsEnableErrorCollection", |
| 432 l10n_util::GetStringUTF16(IDS_EXTENSIONS_ENABLE_ERROR_COLLECTION)); |
429 source->AddString("extensionSettingsAllowFileAccess", | 433 source->AddString("extensionSettingsAllowFileAccess", |
430 l10n_util::GetStringUTF16(IDS_EXTENSIONS_ALLOW_FILE_ACCESS)); | 434 l10n_util::GetStringUTF16(IDS_EXTENSIONS_ALLOW_FILE_ACCESS)); |
431 source->AddString("extensionSettingsIncognitoWarning", | 435 source->AddString("extensionSettingsIncognitoWarning", |
432 l10n_util::GetStringUTF16(IDS_EXTENSIONS_INCOGNITO_WARNING)); | 436 l10n_util::GetStringUTF16(IDS_EXTENSIONS_INCOGNITO_WARNING)); |
433 source->AddString("extensionSettingsReloadTerminated", | 437 source->AddString("extensionSettingsReloadTerminated", |
434 l10n_util::GetStringUTF16(IDS_EXTENSIONS_RELOAD_TERMINATED)); | 438 l10n_util::GetStringUTF16(IDS_EXTENSIONS_RELOAD_TERMINATED)); |
435 source->AddString("extensionSettingsLaunch", | 439 source->AddString("extensionSettingsLaunch", |
436 l10n_util::GetStringUTF16(IDS_EXTENSIONS_LAUNCH)); | 440 l10n_util::GetStringUTF16(IDS_EXTENSIONS_LAUNCH)); |
437 source->AddString("extensionSettingsReloadUnpacked", | 441 source->AddString("extensionSettingsReloadUnpacked", |
438 l10n_util::GetStringUTF16(IDS_EXTENSIONS_RELOAD_UNPACKED)); | 442 l10n_util::GetStringUTF16(IDS_EXTENSIONS_RELOAD_UNPACKED)); |
(...skipping 88 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
527 AsWeakPtr())); | 531 AsWeakPtr())); |
528 web_ui()->RegisterMessageCallback("extensionSettingsReload", | 532 web_ui()->RegisterMessageCallback("extensionSettingsReload", |
529 base::Bind(&ExtensionSettingsHandler::HandleReloadMessage, | 533 base::Bind(&ExtensionSettingsHandler::HandleReloadMessage, |
530 AsWeakPtr())); | 534 AsWeakPtr())); |
531 web_ui()->RegisterMessageCallback("extensionSettingsEnable", | 535 web_ui()->RegisterMessageCallback("extensionSettingsEnable", |
532 base::Bind(&ExtensionSettingsHandler::HandleEnableMessage, | 536 base::Bind(&ExtensionSettingsHandler::HandleEnableMessage, |
533 AsWeakPtr())); | 537 AsWeakPtr())); |
534 web_ui()->RegisterMessageCallback("extensionSettingsEnableIncognito", | 538 web_ui()->RegisterMessageCallback("extensionSettingsEnableIncognito", |
535 base::Bind(&ExtensionSettingsHandler::HandleEnableIncognitoMessage, | 539 base::Bind(&ExtensionSettingsHandler::HandleEnableIncognitoMessage, |
536 AsWeakPtr())); | 540 AsWeakPtr())); |
| 541 web_ui()->RegisterMessageCallback("extensionSettingsEnableErrorCollection", |
| 542 base::Bind(&ExtensionSettingsHandler::HandleEnableErrorCollectionMessage, |
| 543 AsWeakPtr())); |
537 web_ui()->RegisterMessageCallback("extensionSettingsAllowFileAccess", | 544 web_ui()->RegisterMessageCallback("extensionSettingsAllowFileAccess", |
538 base::Bind(&ExtensionSettingsHandler::HandleAllowFileAccessMessage, | 545 base::Bind(&ExtensionSettingsHandler::HandleAllowFileAccessMessage, |
539 AsWeakPtr())); | 546 AsWeakPtr())); |
540 web_ui()->RegisterMessageCallback("extensionSettingsUninstall", | 547 web_ui()->RegisterMessageCallback("extensionSettingsUninstall", |
541 base::Bind(&ExtensionSettingsHandler::HandleUninstallMessage, | 548 base::Bind(&ExtensionSettingsHandler::HandleUninstallMessage, |
542 AsWeakPtr())); | 549 AsWeakPtr())); |
543 web_ui()->RegisterMessageCallback("extensionSettingsOptions", | 550 web_ui()->RegisterMessageCallback("extensionSettingsOptions", |
544 base::Bind(&ExtensionSettingsHandler::HandleOptionsMessage, | 551 base::Bind(&ExtensionSettingsHandler::HandleOptionsMessage, |
545 AsWeakPtr())); | 552 AsWeakPtr())); |
546 web_ui()->RegisterMessageCallback("extensionSettingsPermissions", | 553 web_ui()->RegisterMessageCallback("extensionSettingsPermissions", |
(...skipping 424 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
971 // notification for this case. | 978 // notification for this case. |
972 // | 979 // |
973 // Bug: http://crbug.com/41384 | 980 // Bug: http://crbug.com/41384 |
974 base::AutoReset<bool> auto_reset_ignore_notifications( | 981 base::AutoReset<bool> auto_reset_ignore_notifications( |
975 &ignore_notifications_, true); | 982 &ignore_notifications_, true); |
976 util::SetIsIncognitoEnabled(extension->id(), | 983 util::SetIsIncognitoEnabled(extension->id(), |
977 extension_service_->profile(), | 984 extension_service_->profile(), |
978 enable_str == "true"); | 985 enable_str == "true"); |
979 } | 986 } |
980 | 987 |
| 988 void ExtensionSettingsHandler::HandleEnableErrorCollectionMessage( |
| 989 const base::ListValue* args) { |
| 990 CHECK_EQ(2u, args->GetSize()); |
| 991 std::string extension_id; |
| 992 std::string enable_str; |
| 993 CHECK(args->GetString(0, &extension_id)); |
| 994 CHECK(args->GetString(1, &enable_str)); |
| 995 bool enabled = enable_str == "true"; |
| 996 ErrorConsole::Get(Profile::FromWebUI(web_ui())) |
| 997 ->SetReportingForExtensionForAllTypes(extension_id, enabled); |
| 998 } |
| 999 |
981 void ExtensionSettingsHandler::HandleAllowFileAccessMessage( | 1000 void ExtensionSettingsHandler::HandleAllowFileAccessMessage( |
982 const base::ListValue* args) { | 1001 const base::ListValue* args) { |
983 CHECK_EQ(2U, args->GetSize()); | 1002 CHECK_EQ(2U, args->GetSize()); |
984 std::string extension_id, allow_str; | 1003 std::string extension_id, allow_str; |
985 CHECK(args->GetString(0, &extension_id)); | 1004 CHECK(args->GetString(0, &extension_id)); |
986 CHECK(args->GetString(1, &allow_str)); | 1005 CHECK(args->GetString(1, &allow_str)); |
987 const Extension* extension = | 1006 const Extension* extension = |
988 extension_service_->GetInstalledExtension(extension_id); | 1007 extension_service_->GetInstalledExtension(extension_id); |
989 if (!extension) | 1008 if (!extension) |
990 return; | 1009 return; |
(...skipping 340 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1331 const base::FilePath& path) { | 1350 const base::FilePath& path) { |
1332 if (IndexOfLoadingPath(path) == -1) | 1351 if (IndexOfLoadingPath(path) == -1) |
1333 return; // Not an extension we're tracking. | 1352 return; // Not an extension we're tracking. |
1334 if (retry) | 1353 if (retry) |
1335 LoadUnpackedExtension(path); | 1354 LoadUnpackedExtension(path); |
1336 else | 1355 else |
1337 RemoveLoadingPath(path); | 1356 RemoveLoadingPath(path); |
1338 } | 1357 } |
1339 | 1358 |
1340 } // namespace extensions | 1359 } // namespace extensions |
OLD | NEW |