Chromium Code Reviews| 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..dffc58f48d1b26b8f05bfc563c9e7fc2822dad01 100644 |
| --- a/chrome/browser/chromeos/extensions/file_manager/private_api_misc.cc |
| +++ b/chrome/browser/chromeos/extensions/file_manager/private_api_misc.cc |
| @@ -7,6 +7,7 @@ |
| #include "apps/app_window.h" |
| #include "apps/app_window_registry.h" |
| #include "ash/frame/frame_util.h" |
| +#include "base/command_line.h" |
| #include "base/files/file_path.h" |
| #include "base/prefs/pref_service.h" |
| #include "base/strings/utf_string_conversions.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" |
| @@ -28,6 +31,7 @@ |
| #include "chrome/browser/signin/signin_manager_factory.h" |
| #include "chrome/browser/ui/ash/multi_user/multi_user_util.h" |
| #include "chrome/browser/ui/ash/multi_user/multi_user_window_manager.h" |
| +#include "chrome/common/chrome_switches.h" |
| #include "chrome/common/extensions/api/file_browser_private.h" |
| #include "chrome/common/pref_names.h" |
| #include "components/signin/core/browser/profile_oauth2_token_service.h" |
| @@ -437,4 +441,41 @@ bool FileBrowserPrivateVisitDesktopFunction::RunSync() { |
| return true; |
| } |
| +bool FileBrowserPrivateOpenInspectorFunction::RunSync() { |
| + // This method doesn't have any effect if the flag 'debug-packed-apps' is not |
| + // enabled. |
| + if (!CommandLine::ForCurrentProcess()->HasSwitch(switches::kDebugPackedApps)) |
| + return true; |
| + |
| + 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 focus to console tab. |
| + DevToolsWindow::OpenDevToolsWindow(render_view_host(), |
| + DevToolsToggleAction::ShowConsole()); |
| + break; |
| + case extensions::api::file_browser_private::INSPECTION_TYPE_ELEMENT: |
| + // Open inspector for foreground page and focus to element tab. |
| + 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(); |
|
yoshiki
2014/05/23 06:22:16
nit: please set an error with SetError() method.
fukino
2014/05/23 06:54:31
Done.
|
| + return false; |
| + } |
| + return true; |
| +} |
| + |
| } // namespace extensions |