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