Index: chrome/browser/extensions/api/app_window/app_window_api.cc |
diff --git a/chrome/browser/extensions/api/app_window/app_window_api.cc b/chrome/browser/extensions/api/app_window/app_window_api.cc |
index e469c2c893e6b2a0e41f85397d154126a3ea8eb6..653352afa1f7fd4dcb4d5ea1e14debe9edb6806b 100644 |
--- a/chrome/browser/extensions/api/app_window/app_window_api.cc |
+++ b/chrome/browser/extensions/api/app_window/app_window_api.cc |
@@ -13,10 +13,7 @@ |
#include "base/strings/string_util.h" |
#include "base/time/time.h" |
#include "base/values.h" |
-#include "chrome/browser/devtools/devtools_window.h" |
-#include "chrome/common/chrome_switches.h" |
#include "chrome/common/extensions/api/app_window.h" |
-#include "chrome/common/extensions/features/feature_channel.h" |
#include "content/public/browser/notification_registrar.h" |
#include "content/public/browser/notification_types.h" |
#include "content/public/browser/render_process_host.h" |
@@ -69,34 +66,6 @@ const char kHtmlFrameOption[] = "experimental-html"; |
namespace { |
-// Opens an inspector window and delays the response to the |
-// AppWindowCreateFunction until the DevToolsWindow has finished loading, and is |
-// ready to stop on breakpoints in the callback. |
-class DevToolsRestorer : public base::RefCounted<DevToolsRestorer> { |
- public: |
- DevToolsRestorer(AppWindowCreateFunction* delayed_create_function, |
- content::WebContents* web_contents) |
- : delayed_create_function_(delayed_create_function) { |
- AddRef(); // Balanced in LoadCompleted. |
- DevToolsWindow* devtools_window = DevToolsWindow::OpenDevToolsWindow( |
- web_contents, |
- DevToolsToggleAction::ShowConsole()); |
- devtools_window->SetLoadCompletedCallback( |
- base::Bind(&DevToolsRestorer::LoadCompleted, this)); |
- } |
- |
- private: |
- friend class base::RefCounted<DevToolsRestorer>; |
- ~DevToolsRestorer() {} |
- |
- void LoadCompleted() { |
- delayed_create_function_->SendDelayedResponse(); |
- Release(); |
- } |
- |
- scoped_refptr<AppWindowCreateFunction> delayed_create_function_; |
-}; |
- |
// If the same property is specified for the inner and outer bounds, raise an |
// error. |
bool CheckBoundsConflict(const scoped_ptr<int>& inner_property, |
@@ -145,10 +114,6 @@ void CopyBoundsSpec( |
AppWindowCreateFunction::AppWindowCreateFunction() |
: inject_html_titlebar_(false) {} |
-void AppWindowCreateFunction::SendDelayedResponse() { |
- SendResponse(true); |
-} |
- |
bool AppWindowCreateFunction::RunAsync() { |
// Don't create app window if the system is shutting down. |
if (extensions::ExtensionsBrowserClient::Get()->IsShuttingDown()) |
@@ -230,7 +195,7 @@ bool AppWindowCreateFunction::RunAsync() { |
if (!GetBoundsSpec(*options, &create_params, &error_)) |
return false; |
- if (GetCurrentChannel() <= chrome::VersionInfo::CHANNEL_DEV || |
+ if (!apps::AppsClient::Get()->IsCurrentChannelOlderThanDev() || |
extension()->location() == extensions::Manifest::COMPONENT) { |
if (options->type == extensions::api::app_window::WINDOW_TYPE_PANEL) { |
create_params.window_type = AppWindow::WINDOW_TYPE_PANEL; |
@@ -249,7 +214,7 @@ bool AppWindowCreateFunction::RunAsync() { |
"312745D9BF916161191143F6490085EEA0434997", |
"53041A2FA309EECED01FFC751E7399186E860B2C" |
}; |
- if (GetCurrentChannel() > chrome::VersionInfo::CHANNEL_DEV && |
+ if (apps::AppsClient::Get()->IsCurrentChannelOlderThanDev() && |
!extensions::SimpleFeature::IsIdInList( |
extension_id(), |
std::set<std::string>(whitelist, |
@@ -339,7 +304,9 @@ bool AppWindowCreateFunction::RunAsync() { |
if (apps::AppWindowRegistry::Get(browser_context()) |
->HadDevToolsAttached(created_view)) { |
- new DevToolsRestorer(this, app_window->web_contents()); |
+ apps::AppsClient::Get()->OpenDevToolsWindow( |
+ app_window->web_contents(), |
+ base::Bind(&AppWindowCreateFunction::SendResponse, this, true)); |
return true; |
} |