Index: chrome/browser/chromeos/extensions/file_manager/private_api_misc.cc |
diff --git a/chrome/browser/chromeos/extensions/file_manager/private_api_misc.cc b/chrome/browser/chromeos/extensions/file_manager/private_api_misc.cc |
index f11975a85b36d70403354f9becf2484921a5c691..a708b3750c5e75306c3154d7be8be017636984c3 100644 |
--- a/chrome/browser/chromeos/extensions/file_manager/private_api_misc.cc |
+++ b/chrome/browser/chromeos/extensions/file_manager/private_api_misc.cc |
@@ -9,6 +9,7 @@ |
#include "ash/frame/frame_util.h" |
#include "base/files/file_path.h" |
#include "base/prefs/pref_service.h" |
+#include "base/strings/stringprintf.h" |
#include "base/strings/utf_string_conversions.h" |
#include "chrome/browser/browser_process.h" |
#include "chrome/browser/chromeos/drive/file_system_util.h" |
@@ -19,7 +20,9 @@ |
#include "chrome/browser/chromeos/file_manager/zip_file_creator.h" |
#include "chrome/browser/chromeos/login/users/user_manager.h" |
#include "chrome/browser/chromeos/settings/cros_settings.h" |
+#include "chrome/browser/devtools/devtools_window.h" |
#include "chrome/browser/drive/event_logger.h" |
+#include "chrome/browser/extensions/devtools_util.h" |
#include "chrome/browser/lifetime/application_lifetime.h" |
#include "chrome/browser/profiles/profile.h" |
#include "chrome/browser/profiles/profile_manager.h" |
@@ -437,4 +440,39 @@ bool FileBrowserPrivateVisitDesktopFunction::RunSync() { |
return true; |
} |
+bool FileBrowserPrivateOpenInspectorFunction::RunSync() { |
+ using extensions::api::file_browser_private::OpenInspector::Params; |
+ const scoped_ptr<Params> params(Params::Create(*args_)); |
+ EXTENSION_FUNCTION_VALIDATE(params); |
+ |
+ switch (params->type) { |
+ case extensions::api::file_browser_private::INSPECTION_TYPE_NORMAL: |
+ // Open inspector for foreground page. |
+ DevToolsWindow::OpenDevToolsWindow(render_view_host()); |
+ break; |
+ case extensions::api::file_browser_private::INSPECTION_TYPE_CONSOLE: |
+ // Open inspector for foreground page and bring focus to the console. |
+ DevToolsWindow::OpenDevToolsWindow(render_view_host(), |
+ DevToolsToggleAction::ShowConsole()); |
+ break; |
+ case extensions::api::file_browser_private::INSPECTION_TYPE_ELEMENT: |
+ // Open inspector for foreground page in inspect element mode. |
+ DevToolsWindow::OpenDevToolsWindow(render_view_host(), |
+ DevToolsToggleAction::Inspect()); |
+ break; |
+ case extensions::api::file_browser_private::INSPECTION_TYPE_BACKGROUND: |
+ // Open inspector for background page. |
+ extensions::devtools_util::InspectBackgroundPage(GetExtension(), |
+ GetProfile()); |
+ break; |
+ default: |
+ NOTREACHED(); |
+ SetError( |
+ base::StringPrintf("Unexpected inspection type(%d) is specified.", |
+ static_cast<int>(params->type))); |
+ return false; |
+ } |
+ return true; |
+} |
+ |
} // namespace extensions |