| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 // Implements the Chrome Extensions Debugger API. | 5 // Implements the Chrome Extensions Debugger API. |
| 6 | 6 |
| 7 #include "chrome/browser/extensions/extension_debugger_api.h" | 7 #include "chrome/browser/extensions/extension_debugger_api.h" |
| 8 | 8 |
| 9 #include <map> | 9 #include <map> |
| 10 #include <set> | 10 #include <set> |
| (...skipping 228 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 239 Value* params) { | 239 Value* params) { |
| 240 DictionaryValue protocol_request; | 240 DictionaryValue protocol_request; |
| 241 int request_id = ++last_request_id_; | 241 int request_id = ++last_request_id_; |
| 242 pending_requests_[request_id] = function; | 242 pending_requests_[request_id] = function; |
| 243 protocol_request.SetInteger("id", request_id); | 243 protocol_request.SetInteger("id", request_id); |
| 244 protocol_request.SetString("method", method); | 244 protocol_request.SetString("method", method); |
| 245 if (params) | 245 if (params) |
| 246 protocol_request.Set("params", params->DeepCopy()); | 246 protocol_request.Set("params", params->DeepCopy()); |
| 247 | 247 |
| 248 std::string json_args; | 248 std::string json_args; |
| 249 base::JSONWriter::Write(&protocol_request, false, &json_args); | 249 base::JSONWriter::Write(&protocol_request, &json_args); |
| 250 DevToolsManager::GetInstance()->DispatchOnInspectorBackend(this, json_args); | 250 DevToolsManager::GetInstance()->DispatchOnInspectorBackend(this, json_args); |
| 251 } | 251 } |
| 252 | 252 |
| 253 void ExtensionDevToolsClientHost::SendDetachedEvent() { | 253 void ExtensionDevToolsClientHost::SendDetachedEvent() { |
| 254 Profile* profile = | 254 Profile* profile = |
| 255 Profile::FromBrowserContext(web_contents_->GetBrowserContext()); | 255 Profile::FromBrowserContext(web_contents_->GetBrowserContext()); |
| 256 if (profile != NULL && profile->GetExtensionEventRouter()) { | 256 if (profile != NULL && profile->GetExtensionEventRouter()) { |
| 257 ListValue args; | 257 ListValue args; |
| 258 args.Append(CreateDebuggeeId(tab_id_)); | 258 args.Append(CreateDebuggeeId(tab_id_)); |
| 259 | 259 |
| 260 std::string json_args; | 260 std::string json_args; |
| 261 base::JSONWriter::Write(&args, false, &json_args); | 261 base::JSONWriter::Write(&args, &json_args); |
| 262 | 262 |
| 263 profile->GetExtensionEventRouter()->DispatchEventToExtension( | 263 profile->GetExtensionEventRouter()->DispatchEventToExtension( |
| 264 extension_id_, keys::kOnDetach, json_args, profile, GURL()); | 264 extension_id_, keys::kOnDetach, json_args, profile, GURL()); |
| 265 } | 265 } |
| 266 } | 266 } |
| 267 | 267 |
| 268 void ExtensionDevToolsClientHost::Observe( | 268 void ExtensionDevToolsClientHost::Observe( |
| 269 int type, | 269 int type, |
| 270 const content::NotificationSource& source, | 270 const content::NotificationSource& source, |
| 271 const content::NotificationDetails& details) { | 271 const content::NotificationDetails& details) { |
| (...skipping 23 matching lines...) Expand all Loading... |
| 295 return; | 295 return; |
| 296 | 296 |
| 297 ListValue args; | 297 ListValue args; |
| 298 args.Append(CreateDebuggeeId(tab_id_)); | 298 args.Append(CreateDebuggeeId(tab_id_)); |
| 299 args.Append(Value::CreateStringValue(method_name)); | 299 args.Append(Value::CreateStringValue(method_name)); |
| 300 Value* params_value; | 300 Value* params_value; |
| 301 if (dictionary->Get("params", ¶ms_value)) | 301 if (dictionary->Get("params", ¶ms_value)) |
| 302 args.Append(params_value->DeepCopy()); | 302 args.Append(params_value->DeepCopy()); |
| 303 | 303 |
| 304 std::string json_args; | 304 std::string json_args; |
| 305 base::JSONWriter::Write(&args, false, &json_args); | 305 base::JSONWriter::Write(&args, &json_args); |
| 306 | 306 |
| 307 profile->GetExtensionEventRouter()->DispatchEventToExtension( | 307 profile->GetExtensionEventRouter()->DispatchEventToExtension( |
| 308 extension_id_, keys::kOnEvent, json_args, profile, GURL()); | 308 extension_id_, keys::kOnEvent, json_args, profile, GURL()); |
| 309 } else { | 309 } else { |
| 310 SendCommandDebuggerFunction* function = pending_requests_[id]; | 310 SendCommandDebuggerFunction* function = pending_requests_[id]; |
| 311 if (!function) | 311 if (!function) |
| 312 return; | 312 return; |
| 313 | 313 |
| 314 function->SendResponseBody(dictionary); | 314 function->SendResponseBody(dictionary); |
| 315 pending_requests_.erase(id); | 315 pending_requests_.erase(id); |
| (...skipping 159 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 475 params = NULL; | 475 params = NULL; |
| 476 | 476 |
| 477 client_host_->SendMessageToBackend(this, method, params); | 477 client_host_->SendMessageToBackend(this, method, params); |
| 478 return true; | 478 return true; |
| 479 } | 479 } |
| 480 | 480 |
| 481 void SendCommandDebuggerFunction::SendResponseBody( | 481 void SendCommandDebuggerFunction::SendResponseBody( |
| 482 DictionaryValue* dictionary) { | 482 DictionaryValue* dictionary) { |
| 483 Value* error_body; | 483 Value* error_body; |
| 484 if (dictionary->Get("error", &error_body)) { | 484 if (dictionary->Get("error", &error_body)) { |
| 485 base::JSONWriter::Write(error_body, false, &error_); | 485 base::JSONWriter::Write(error_body, &error_); |
| 486 SendResponse(false); | 486 SendResponse(false); |
| 487 return; | 487 return; |
| 488 } | 488 } |
| 489 | 489 |
| 490 Value* result_body; | 490 Value* result_body; |
| 491 if (dictionary->Get("result", &result_body)) | 491 if (dictionary->Get("result", &result_body)) |
| 492 result_.reset(result_body->DeepCopy()); | 492 result_.reset(result_body->DeepCopy()); |
| 493 else | 493 else |
| 494 result_.reset(new DictionaryValue()); | 494 result_.reset(new DictionaryValue()); |
| 495 SendResponse(true); | 495 SendResponse(true); |
| 496 } | 496 } |
| OLD | NEW |