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

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

Issue 238073002: Provide UI for per-extension enabling/disabling of error collection. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 8 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 "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
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
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
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
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
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
OLDNEW
« no previous file with comments | « chrome/browser/ui/webui/extensions/extension_settings_handler.h ('k') | extensions/browser/extension_error.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698