Chromium Code Reviews| 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..beec4fe3caddd2e0a0795ff511a725cebdd06076 100644 |
| --- a/chrome/browser/devtools/chrome_devtools_manager_delegate.cc |
| +++ b/chrome/browser/devtools/chrome_devtools_manager_delegate.cc |
| @@ -5,7 +5,10 @@ |
| #include "chrome/browser/devtools/chrome_devtools_manager_delegate.h" |
| #include "build/build_config.h" |
| +#include "chrome/browser/banners/app_banner_manager_desktop.h" |
| #include "chrome/browser/devtools/devtools_network_protocol_handler.h" |
| +#include "chrome/browser/devtools/devtools_protocol_constants.h" |
| +#include "content/public/browser/render_frame_host.h" |
| #if !defined(OS_ANDROID) |
| #include "chrome/browser/devtools/devtools_window.h" |
| @@ -35,10 +38,51 @@ void ChromeDevToolsManagerDelegate::Inspect( |
| #endif // !defined(OS_ANDROID) |
| } |
| +scoped_ptr<base::DictionaryValue> CanOpenAppBanner( |
|
pfeldman
2016/01/14 04:43:05
I am not sure we need this. Should we make it avai
horo
2016/01/15 10:00:22
I think we should.
But AppBannerDataFetcherDesktop
|
| + content::DevToolsAgentHost* agent_host, |
| + int command_id, |
| + base::DictionaryValue* params) { |
| + scoped_ptr<base::DictionaryValue> result(new base::DictionaryValue()); |
| + result->SetBoolean(chrome::devtools::kResult, true); |
| + return DevToolsProtocol::CreateSuccessResponse(command_id, std::move(result)); |
| +} |
| + |
| +scoped_ptr<base::DictionaryValue> OpenAppBanner( |
| + content::DevToolsAgentHost* agent_host, |
| + int command_id, |
| + base::DictionaryValue* params) { |
| + content::WebContents* web_contents = agent_host->GetWebContents(); |
| + content::RenderFrameHost* frame = web_contents->GetMainFrame(); |
| + banners::AppBannerManagerDesktop* manaager = |
|
pfeldman
2016/01/14 04:43:05
manager
horo
2016/01/15 10:00:22
Done.
|
| + banners::AppBannerManagerDesktop::FromWebContents(web_contents); |
| + if (manaager) { |
| + manaager->TriggerAppBannerFetch(frame, frame->GetLastCommittedURL(), true); |
| + } |
| + scoped_ptr<base::DictionaryValue> result(new base::DictionaryValue()); |
| + result->SetBoolean(chrome::devtools::kResult, true); |
| + return DevToolsProtocol::CreateSuccessResponse(command_id, std::move(result)); |
| +} |
| + |
| base::DictionaryValue* ChromeDevToolsManagerDelegate::HandleCommand( |
| content::DevToolsAgentHost* agent_host, |
| base::DictionaryValue* command_dict) { |
| - return network_protocol_handler_->HandleCommand(agent_host, command_dict); |
| + base::DictionaryValue* ret = |
| + network_protocol_handler_->HandleCommand(agent_host, command_dict); |
| + if (ret) |
| + return ret; |
| + { |
|
pfeldman
2016/01/14 04:43:05
why new scope?
horo
2016/01/15 10:00:22
Removed.
Sorry this was still a WIP patch.
|
| + int id = 0; |
|
pfeldman
2016/01/14 04:43:05
This already has happened in the network handler.
horo
2016/01/15 10:00:22
Done.
|
| + std::string method; |
| + base::DictionaryValue* params = nullptr; |
| + if (!DevToolsProtocol::ParseCommand(command_dict, &id, &method, ¶ms)) |
| + return nullptr; |
| + namespace page = ::chrome::devtools::Page; |
| + if (method == page::canOpenAppBanner::kName) |
| + return CanOpenAppBanner(agent_host, id, params).release(); |
| + if (method == page::openAppBanner::kName) |
| + return OpenAppBanner(agent_host, id, params).release(); |
| + } |
| + return nullptr; |
| } |
| void ChromeDevToolsManagerDelegate::DevToolsAgentStateChanged( |