Index: headless/lib/browser/headless_devtools_manager_delegate.cc |
diff --git a/headless/lib/browser/headless_devtools_manager_delegate.cc b/headless/lib/browser/headless_devtools_manager_delegate.cc |
index 3ecf23d9a473e4f2f30696383b7d91ba89ee068b..c8322cedabe204480b06e6f3cff95a6681d242eb 100644 |
--- a/headless/lib/browser/headless_devtools_manager_delegate.cc |
+++ b/headless/lib/browser/headless_devtools_manager_delegate.cc |
@@ -71,14 +71,16 @@ std::unique_ptr<base::DictionaryValue> CreateInvalidParamResponse( |
HeadlessDevToolsManagerDelegate::HeadlessDevToolsManagerDelegate( |
base::WeakPtr<HeadlessBrowserImpl> browser) |
: browser_(std::move(browser)) { |
- command_map_["Target.createTarget"] = |
- &HeadlessDevToolsManagerDelegate::CreateTarget; |
- command_map_["Target.closeTarget"] = |
- &HeadlessDevToolsManagerDelegate::CloseTarget; |
+ command_map_["Target.createTarget"] = base::Bind( |
+ &HeadlessDevToolsManagerDelegate::CreateTarget, base::Unretained(this)); |
+ command_map_["Target.closeTarget"] = base::Bind( |
+ &HeadlessDevToolsManagerDelegate::CloseTarget, base::Unretained(this)); |
command_map_["Target.createBrowserContext"] = |
- &HeadlessDevToolsManagerDelegate::CreateBrowserContext; |
+ base::Bind(&HeadlessDevToolsManagerDelegate::CreateBrowserContext, |
+ base::Unretained(this)); |
command_map_["Target.disposeBrowserContext"] = |
- &HeadlessDevToolsManagerDelegate::DisposeBrowserContext; |
+ base::Bind(&HeadlessDevToolsManagerDelegate::DisposeBrowserContext, |
+ base::Unretained(this)); |
} |
HeadlessDevToolsManagerDelegate::~HeadlessDevToolsManagerDelegate() {} |
@@ -93,18 +95,16 @@ base::DictionaryValue* HeadlessDevToolsManagerDelegate::HandleCommand( |
int id; |
std::string method; |
- if (!command->GetInteger("id", &id) || |
- !command->GetString("method", &method)) { |
+ if (!command->GetInteger("id", &id) || !command->GetString("method", &method)) |
return nullptr; |
- } |
+ |
auto find_it = command_map_.find(method); |
if (find_it == command_map_.end()) |
return nullptr; |
- CommandMemberFnPtr command_fn_ptr = find_it->second; |
+ |
const base::DictionaryValue* params = nullptr; |
command->GetDictionary("params", ¶ms); |
- std::unique_ptr<base::DictionaryValue> cmd_result( |
- ((this)->*command_fn_ptr)(id, params)); |
+ auto cmd_result = find_it->second.Run(id, params); |
return cmd_result.release(); |
} |