| Index: chrome/browser/devtools/chrome_devtools_manager_delegate.cc
|
| diff --git a/chrome/browser/devtools/chrome_devtools_manager_delegate.cc b/chrome/browser/devtools/chrome_devtools_manager_delegate.cc
|
| index 7cfc9c37824bf5460b8a3d6a418bcd10f23c85a9..100709dfca6afaae120e17169c7c02944b9ef934 100644
|
| --- a/chrome/browser/devtools/chrome_devtools_manager_delegate.cc
|
| +++ b/chrome/browser/devtools/chrome_devtools_manager_delegate.cc
|
| @@ -6,13 +6,41 @@
|
|
|
| #include "build/build_config.h"
|
| #include "chrome/browser/devtools/devtools_network_protocol_handler.h"
|
| +#include "chrome/browser/devtools/devtools_protocol_constants.h"
|
| +#include "chrome/browser/ui/tab_contents/core_tab_helper.h"
|
| +#include "chrome/browser/ui/tab_contents/core_tab_helper_delegate.h"
|
| +#include "chrome/common/chrome_switches.h"
|
| +#include "content/public/browser/devtools_agent_host.h"
|
| +#include "content/public/browser/render_frame_host.h"
|
|
|
| #if !defined(OS_ANDROID)
|
| #include "chrome/browser/devtools/devtools_window.h"
|
| #include "chrome/browser/profiles/profile.h"
|
| -#include "content/public/browser/devtools_agent_host.h"
|
| #endif // !defined(OS_ANDROID)
|
|
|
| +namespace {
|
| +
|
| +scoped_ptr<base::DictionaryValue> RequestAppBanner(
|
| + content::DevToolsAgentHost* agent_host,
|
| + int command_id,
|
| + base::DictionaryValue* params) {
|
| + content::WebContents* web_contents = agent_host->GetWebContents();
|
| + const bool ret = CoreTabHelper::FromWebContents(web_contents)
|
| + ->delegate()
|
| + ->RequestAppBanner(web_contents);
|
| + if (!ret) {
|
| + web_contents->GetMainFrame()->AddMessageToConsole(
|
| + content::CONSOLE_MESSAGE_LEVEL_DEBUG,
|
| + "App banners are currently disabled. Please check chrome://flags/#" +
|
| + std::string(switches::kEnableAddToShelf));
|
| + }
|
| + scoped_ptr<base::DictionaryValue> result(new base::DictionaryValue());
|
| + result->SetBoolean(chrome::devtools::kResult, ret);
|
| + return DevToolsProtocol::CreateSuccessResponse(command_id, std::move(result));
|
| +}
|
| +
|
| +} // namespace
|
| +
|
| ChromeDevToolsManagerDelegate::ChromeDevToolsManagerDelegate()
|
| : network_protocol_handler_(new DevToolsNetworkProtocolHandler()) {
|
| }
|
| @@ -38,7 +66,18 @@ void ChromeDevToolsManagerDelegate::Inspect(
|
| base::DictionaryValue* ChromeDevToolsManagerDelegate::HandleCommand(
|
| content::DevToolsAgentHost* agent_host,
|
| base::DictionaryValue* command_dict) {
|
| - return network_protocol_handler_->HandleCommand(agent_host, command_dict);
|
| + int id = 0;
|
| + std::string method;
|
| + base::DictionaryValue* params = nullptr;
|
| + if (!DevToolsProtocol::ParseCommand(command_dict, &id, &method, ¶ms))
|
| + return nullptr;
|
| + base::DictionaryValue* ret =
|
| + network_protocol_handler_->HandleCommand(agent_host, id, method, params);
|
| + if (ret)
|
| + return ret;
|
| + if (method == ::chrome::devtools::Page::requestAppBanner::kName)
|
| + return RequestAppBanner(agent_host, id, params).release();
|
| + return nullptr;
|
| }
|
|
|
| void ChromeDevToolsManagerDelegate::DevToolsAgentStateChanged(
|
|
|