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 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 684 matching lines...) Expand 10 before | Expand all | Expand 10 after
724 management_policy_ = ExtensionSystem::Get( 722 management_policy_ = ExtensionSystem::Get(
725 extension_service_->profile())->management_policy(); 723 extension_service_->profile())->management_policy();
726 } 724 }
727 725
728 web_ui()->RegisterMessageCallback("extensionSettingsRequestExtensionsData", 726 web_ui()->RegisterMessageCallback("extensionSettingsRequestExtensionsData",
729 base::Bind(&ExtensionSettingsHandler::HandleRequestExtensionsData, 727 base::Bind(&ExtensionSettingsHandler::HandleRequestExtensionsData,
730 AsWeakPtr())); 728 AsWeakPtr()));
731 web_ui()->RegisterMessageCallback("extensionSettingsToggleDeveloperMode", 729 web_ui()->RegisterMessageCallback("extensionSettingsToggleDeveloperMode",
732 base::Bind(&ExtensionSettingsHandler::HandleToggleDeveloperMode, 730 base::Bind(&ExtensionSettingsHandler::HandleToggleDeveloperMode,
733 AsWeakPtr())); 731 AsWeakPtr()));
734 web_ui()->RegisterMessageCallback("extensionSettingsInspect",
735 base::Bind(&ExtensionSettingsHandler::HandleInspectMessage,
736 AsWeakPtr()));
737 web_ui()->RegisterMessageCallback("extensionSettingsLaunch", 732 web_ui()->RegisterMessageCallback("extensionSettingsLaunch",
738 base::Bind(&ExtensionSettingsHandler::HandleLaunchMessage, 733 base::Bind(&ExtensionSettingsHandler::HandleLaunchMessage,
739 AsWeakPtr())); 734 AsWeakPtr()));
740 web_ui()->RegisterMessageCallback("extensionSettingsRepair", 735 web_ui()->RegisterMessageCallback("extensionSettingsRepair",
741 base::Bind(&ExtensionSettingsHandler::HandleRepairMessage, 736 base::Bind(&ExtensionSettingsHandler::HandleRepairMessage,
742 AsWeakPtr())); 737 AsWeakPtr()));
743 web_ui()->RegisterMessageCallback("extensionSettingsEnableErrorCollection", 738 web_ui()->RegisterMessageCallback("extensionSettingsEnableErrorCollection",
744 base::Bind(&ExtensionSettingsHandler::HandleEnableErrorCollectionMessage, 739 base::Bind(&ExtensionSettingsHandler::HandleEnableErrorCollectionMessage,
745 AsWeakPtr())); 740 AsWeakPtr()));
746 web_ui()->RegisterMessageCallback("extensionSettingsAllowOnAllUrls", 741 web_ui()->RegisterMessageCallback("extensionSettingsAllowOnAllUrls",
(...skipping 240 matching lines...) Expand 10 before | Expand all | Expand 10 after
987 Profile* profile = Profile::FromWebUI(web_ui()); 982 Profile* profile = Profile::FromWebUI(web_ui());
988 if (profile->IsSupervised()) 983 if (profile->IsSupervised())
989 return; 984 return;
990 985
991 bool developer_mode_on; 986 bool developer_mode_on;
992 CHECK(args->GetBoolean(0, &developer_mode_on)); 987 CHECK(args->GetBoolean(0, &developer_mode_on));
993 profile->GetPrefs()->SetBoolean(prefs::kExtensionsUIDeveloperMode, 988 profile->GetPrefs()->SetBoolean(prefs::kExtensionsUIDeveloperMode,
994 developer_mode_on); 989 developer_mode_on);
995 } 990 }
996 991
997 void ExtensionSettingsHandler::HandleInspectMessage(
998 const base::ListValue* args) {
999 std::string extension_id;
1000 std::string render_process_id_str;
1001 std::string render_view_id_str;
1002 int render_process_id;
1003 int render_view_id;
1004 bool incognito;
1005 CHECK_EQ(4U, args->GetSize());
1006 CHECK(args->GetString(0, &extension_id));
1007 CHECK(args->GetString(1, &render_process_id_str));
1008 CHECK(args->GetString(2, &render_view_id_str));
1009 CHECK(args->GetBoolean(3, &incognito));
1010 CHECK(base::StringToInt(render_process_id_str, &render_process_id));
1011 CHECK(base::StringToInt(render_view_id_str, &render_view_id));
1012
1013 if (render_process_id == -1) {
1014 // This message is for a lazy background page. Start the page if necessary.
1015 Profile* profile = Profile::FromWebUI(web_ui());
1016 const Extension* extension =
1017 ExtensionRegistry::Get(profile)->enabled_extensions().GetByID(
1018 extension_id);
1019 DCHECK(extension);
1020 if (incognito)
1021 profile = profile->GetOffTheRecordProfile();
1022 devtools_util::InspectBackgroundPage(extension, profile);
1023 return;
1024 }
1025
1026 RenderViewHost* host = RenderViewHost::FromID(render_process_id,
1027 render_view_id);
1028 if (!host || !WebContents::FromRenderViewHost(host)) {
1029 // This can happen if the host has gone away since the page was displayed.
1030 return;
1031 }
1032
1033 DevToolsWindow::OpenDevToolsWindow(WebContents::FromRenderViewHost(host));
1034 }
1035
1036 void ExtensionSettingsHandler::HandleLaunchMessage( 992 void ExtensionSettingsHandler::HandleLaunchMessage(
1037 const base::ListValue* args) { 993 const base::ListValue* args) {
1038 CHECK_EQ(1U, args->GetSize()); 994 CHECK_EQ(1U, args->GetSize());
1039 std::string extension_id; 995 std::string extension_id;
1040 CHECK(args->GetString(0, &extension_id)); 996 CHECK(args->GetString(0, &extension_id));
1041 const Extension* extension = 997 const Extension* extension =
1042 extension_service_->GetExtensionById(extension_id, false); 998 extension_service_->GetExtensionById(extension_id, false);
1043 OpenApplication(AppLaunchParams(extension_service_->profile(), extension, 999 OpenApplication(AppLaunchParams(extension_service_->profile(), extension,
1044 extensions::LAUNCH_CONTAINER_WINDOW, 1000 extensions::LAUNCH_CONTAINER_WINDOW,
1045 NEW_WINDOW, 1001 NEW_WINDOW,
(...skipping 326 matching lines...) Expand 10 before | Expand all | Expand 10 after
1372 } 1328 }
1373 1329
1374 void ExtensionSettingsHandler::OnReinstallComplete( 1330 void ExtensionSettingsHandler::OnReinstallComplete(
1375 bool success, 1331 bool success,
1376 const std::string& error, 1332 const std::string& error,
1377 webstore_install::Result result) { 1333 webstore_install::Result result) {
1378 MaybeUpdateAfterNotification(); 1334 MaybeUpdateAfterNotification();
1379 } 1335 }
1380 1336
1381 } // namespace extensions 1337 } // namespace extensions
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698