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

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

Issue 989843002: [Extensions] Make chrome://extensions use developerPrivate for inspect (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 9 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
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/saved_files_service.h" 8 #include "apps/saved_files_service.h"
9 #include "base/auto_reset.h" 9 #include "base/auto_reset.h"
10 #include "base/base64.h" 10 #include "base/base64.h"
11 #include "base/bind.h" 11 #include "base/bind.h"
12 #include "base/bind_helpers.h" 12 #include "base/bind_helpers.h"
13 #include "base/location.h" 13 #include "base/location.h"
14 #include "base/message_loop/message_loop.h" 14 #include "base/message_loop/message_loop.h"
15 #include "base/metrics/histogram.h" 15 #include "base/metrics/histogram.h"
16 #include "base/prefs/pref_service.h" 16 #include "base/prefs/pref_service.h"
17 #include "base/strings/string_number_conversions.h" 17 #include "base/strings/string_number_conversions.h"
18 #include "base/strings/string_util.h" 18 #include "base/strings/string_util.h"
19 #include "base/strings/utf_string_conversions.h" 19 #include "base/strings/utf_string_conversions.h"
20 #include "base/values.h" 20 #include "base/values.h"
21 #include "base/version.h" 21 #include "base/version.h"
22 #include "chrome/browser/background/background_contents.h" 22 #include "chrome/browser/background/background_contents.h"
23 #include "chrome/browser/browser_process.h" 23 #include "chrome/browser/browser_process.h"
24 #include "chrome/browser/chrome_notification_types.h" 24 #include "chrome/browser/chrome_notification_types.h"
25 #include "chrome/browser/devtools/devtools_window.h"
26 #include "chrome/browser/extensions/api/extension_action/extension_action_api.h" 25 #include "chrome/browser/extensions/api/extension_action/extension_action_api.h"
27 #include "chrome/browser/extensions/component_loader.h" 26 #include "chrome/browser/extensions/component_loader.h"
28 #include "chrome/browser/extensions/crx_installer.h" 27 #include "chrome/browser/extensions/crx_installer.h"
29 #include "chrome/browser/extensions/devtools_util.h"
30 #include "chrome/browser/extensions/error_console/error_console.h" 28 #include "chrome/browser/extensions/error_console/error_console.h"
31 #include "chrome/browser/extensions/extension_action_manager.h" 29 #include "chrome/browser/extensions/extension_action_manager.h"
32 #include "chrome/browser/extensions/extension_error_reporter.h" 30 #include "chrome/browser/extensions/extension_error_reporter.h"
33 #include "chrome/browser/extensions/extension_management.h" 31 #include "chrome/browser/extensions/extension_management.h"
34 #include "chrome/browser/extensions/extension_service.h" 32 #include "chrome/browser/extensions/extension_service.h"
35 #include "chrome/browser/extensions/extension_tab_util.h" 33 #include "chrome/browser/extensions/extension_tab_util.h"
36 #include "chrome/browser/extensions/extension_ui_util.h" 34 #include "chrome/browser/extensions/extension_ui_util.h"
37 #include "chrome/browser/extensions/extension_util.h" 35 #include "chrome/browser/extensions/extension_util.h"
38 #include "chrome/browser/extensions/install_verifier.h" 36 #include "chrome/browser/extensions/install_verifier.h"
39 #include "chrome/browser/extensions/path_util.h" 37 #include "chrome/browser/extensions/path_util.h"
(...skipping 651 matching lines...) Expand 10 before | Expand all | Expand 10 after
691 management_policy_ = ExtensionSystem::Get( 689 management_policy_ = ExtensionSystem::Get(
692 extension_service_->profile())->management_policy(); 690 extension_service_->profile())->management_policy();
693 } 691 }
694 692
695 web_ui()->RegisterMessageCallback("extensionSettingsRequestExtensionsData", 693 web_ui()->RegisterMessageCallback("extensionSettingsRequestExtensionsData",
696 base::Bind(&ExtensionSettingsHandler::HandleRequestExtensionsData, 694 base::Bind(&ExtensionSettingsHandler::HandleRequestExtensionsData,
697 AsWeakPtr())); 695 AsWeakPtr()));
698 web_ui()->RegisterMessageCallback("extensionSettingsToggleDeveloperMode", 696 web_ui()->RegisterMessageCallback("extensionSettingsToggleDeveloperMode",
699 base::Bind(&ExtensionSettingsHandler::HandleToggleDeveloperMode, 697 base::Bind(&ExtensionSettingsHandler::HandleToggleDeveloperMode,
700 AsWeakPtr())); 698 AsWeakPtr()));
701 web_ui()->RegisterMessageCallback("extensionSettingsInspect",
702 base::Bind(&ExtensionSettingsHandler::HandleInspectMessage,
703 AsWeakPtr()));
704 web_ui()->RegisterMessageCallback("extensionSettingsLaunch", 699 web_ui()->RegisterMessageCallback("extensionSettingsLaunch",
705 base::Bind(&ExtensionSettingsHandler::HandleLaunchMessage, 700 base::Bind(&ExtensionSettingsHandler::HandleLaunchMessage,
706 AsWeakPtr())); 701 AsWeakPtr()));
707 web_ui()->RegisterMessageCallback("extensionSettingsRepair", 702 web_ui()->RegisterMessageCallback("extensionSettingsRepair",
708 base::Bind(&ExtensionSettingsHandler::HandleRepairMessage, 703 base::Bind(&ExtensionSettingsHandler::HandleRepairMessage,
709 AsWeakPtr())); 704 AsWeakPtr()));
710 web_ui()->RegisterMessageCallback("extensionSettingsEnableErrorCollection", 705 web_ui()->RegisterMessageCallback("extensionSettingsEnableErrorCollection",
711 base::Bind(&ExtensionSettingsHandler::HandleEnableErrorCollectionMessage, 706 base::Bind(&ExtensionSettingsHandler::HandleEnableErrorCollectionMessage,
712 AsWeakPtr())); 707 AsWeakPtr()));
713 web_ui()->RegisterMessageCallback("extensionSettingsAllowOnAllUrls", 708 web_ui()->RegisterMessageCallback("extensionSettingsAllowOnAllUrls",
(...skipping 240 matching lines...) Expand 10 before | Expand all | Expand 10 after
954 Profile* profile = Profile::FromWebUI(web_ui()); 949 Profile* profile = Profile::FromWebUI(web_ui());
955 if (profile->IsSupervised()) 950 if (profile->IsSupervised())
956 return; 951 return;
957 952
958 bool developer_mode_on; 953 bool developer_mode_on;
959 CHECK(args->GetBoolean(0, &developer_mode_on)); 954 CHECK(args->GetBoolean(0, &developer_mode_on));
960 profile->GetPrefs()->SetBoolean(prefs::kExtensionsUIDeveloperMode, 955 profile->GetPrefs()->SetBoolean(prefs::kExtensionsUIDeveloperMode,
961 developer_mode_on); 956 developer_mode_on);
962 } 957 }
963 958
964 void ExtensionSettingsHandler::HandleInspectMessage(
965 const base::ListValue* args) {
966 std::string extension_id;
967 std::string render_process_id_str;
968 std::string render_view_id_str;
969 int render_process_id;
970 int render_view_id;
971 bool incognito;
972 CHECK_EQ(4U, args->GetSize());
973 CHECK(args->GetString(0, &extension_id));
974 CHECK(args->GetString(1, &render_process_id_str));
975 CHECK(args->GetString(2, &render_view_id_str));
976 CHECK(args->GetBoolean(3, &incognito));
977 CHECK(base::StringToInt(render_process_id_str, &render_process_id));
978 CHECK(base::StringToInt(render_view_id_str, &render_view_id));
979
980 if (render_process_id == -1) {
981 // This message is for a lazy background page. Start the page if necessary.
982 Profile* profile = Profile::FromWebUI(web_ui());
983 const Extension* extension =
984 ExtensionRegistry::Get(profile)->enabled_extensions().GetByID(
985 extension_id);
986 DCHECK(extension);
987 if (incognito)
988 profile = profile->GetOffTheRecordProfile();
989 devtools_util::InspectBackgroundPage(extension, profile);
990 return;
991 }
992
993 RenderViewHost* host = RenderViewHost::FromID(render_process_id,
994 render_view_id);
995 if (!host || !WebContents::FromRenderViewHost(host)) {
996 // This can happen if the host has gone away since the page was displayed.
997 return;
998 }
999
1000 DevToolsWindow::OpenDevToolsWindow(WebContents::FromRenderViewHost(host));
1001 }
1002
1003 void ExtensionSettingsHandler::HandleLaunchMessage( 959 void ExtensionSettingsHandler::HandleLaunchMessage(
1004 const base::ListValue* args) { 960 const base::ListValue* args) {
1005 CHECK_EQ(1U, args->GetSize()); 961 CHECK_EQ(1U, args->GetSize());
1006 std::string extension_id; 962 std::string extension_id;
1007 CHECK(args->GetString(0, &extension_id)); 963 CHECK(args->GetString(0, &extension_id));
1008 const Extension* extension = 964 const Extension* extension =
1009 extension_service_->GetExtensionById(extension_id, false); 965 extension_service_->GetExtensionById(extension_id, false);
1010 OpenApplication(AppLaunchParams(extension_service_->profile(), extension, 966 OpenApplication(AppLaunchParams(extension_service_->profile(), extension,
1011 extensions::LAUNCH_CONTAINER_WINDOW, 967 extensions::LAUNCH_CONTAINER_WINDOW,
1012 NEW_WINDOW, 968 NEW_WINDOW,
(...skipping 326 matching lines...) Expand 10 before | Expand all | Expand 10 after
1339 } 1295 }
1340 1296
1341 void ExtensionSettingsHandler::OnReinstallComplete( 1297 void ExtensionSettingsHandler::OnReinstallComplete(
1342 bool success, 1298 bool success,
1343 const std::string& error, 1299 const std::string& error,
1344 webstore_install::Result result) { 1300 webstore_install::Result result) {
1345 MaybeUpdateAfterNotification(); 1301 MaybeUpdateAfterNotification();
1346 } 1302 }
1347 1303
1348 } // namespace extensions 1304 } // namespace extensions
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698