Index: content/browser/devtools/protocol/devtools_protocol_handler_impl.cc |
diff --git a/content/browser/devtools/protocol/devtools_protocol_handler_impl.cc b/content/browser/devtools/protocol/devtools_protocol_handler_impl.cc |
new file mode 100644 |
index 0000000000000000000000000000000000000000..db234846e26516b94dd71513a7bc8426469b9061 |
--- /dev/null |
+++ b/content/browser/devtools/protocol/devtools_protocol_handler_impl.cc |
@@ -0,0 +1,1047 @@ |
+// Copyright 2014 The Chromium Authors. All rights reserved. |
+// Use of this source code is governed by a BSD-style license that can be |
+// found in the LICENSE file. |
+ |
+// THIS FILE IS AUTOGENERATED. DO NOT EDIT. |
+// Generated by |
+// content/public/browser/devtools_protocol_handler_generator.py from |
+// third_party/WebKit/Source/devtools/protocol.json |
+ |
+#include "content/browser/devtools/protocol/devtools_protocol_handler_impl.h" |
+ |
+#include "base/bind.h" |
+#include "content/browser/devtools/protocol/dom_handler.h" |
+#include "content/browser/devtools/protocol/input_handler.h" |
+#include "content/browser/devtools/protocol/inspector_handler.h" |
+#include "content/browser/devtools/protocol/network_handler.h" |
+#include "content/browser/devtools/protocol/page_handler.h" |
+#include "content/browser/devtools/protocol/power_handler.h" |
+#include "content/browser/devtools/protocol/tracing_handler.h" |
+#include "content/browser/devtools/protocol/worker_handler.h" |
+ |
+namespace content { |
+ |
+DevToolsProtocolHandlerImpl::DevToolsProtocolHandlerImpl() |
+ : inspector_handler_(nullptr), |
+ page_handler_(nullptr), |
+ network_handler_(nullptr), |
+ dom_handler_(nullptr), |
+ worker_handler_(nullptr), |
+ input_handler_(nullptr), |
+ tracing_handler_(nullptr), |
+ power_handler_(nullptr) { |
+} |
+ |
+DevToolsProtocolHandlerImpl::~DevToolsProtocolHandlerImpl() { |
+} |
+ |
+namespace { |
+ |
+typedef DevToolsProtocolClient::ResponseStatus ResponseStatus; |
+ |
+bool CreateCommonResponse( |
+ scoped_refptr<DevToolsProtocol::Command> command, |
+ const DevToolsProtocolClient::Response& response, |
+ scoped_refptr<DevToolsProtocol::Response>* protocol_response) { |
+ switch (response.status()) { |
+ case ResponseStatus::RESPONSE_STATUS_FALLTHROUGH: |
+ *protocol_response = nullptr; |
+ break; |
+ case ResponseStatus::RESPONSE_STATUS_OK: |
+ return false; |
+ case ResponseStatus::RESPONSE_STATUS_INVALID_PARAMS: |
+ *protocol_response = command->InvalidParamResponse(response.message()); |
+ break; |
+ case ResponseStatus::RESPONSE_STATUS_INTERNAL_ERROR: |
+ *protocol_response = command->InternalErrorResponse(response.message()); |
+ break; |
+ case ResponseStatus::RESPONSE_STATUS_SERVER_ERROR: |
+ *protocol_response = command->ServerErrorResponse(response.message()); |
+ break; |
+ } |
+ return true; |
+} |
+ |
+} // namespace |
+ |
+void DevToolsProtocolHandlerImpl::SetInspectorHandler( |
+ devtools::inspector::InspectorHandler* inspector_handler) { |
+ DCHECK(!inspector_handler_); |
+ inspector_handler_ = inspector_handler; |
+ inspector_handler_->SetClient(make_scoped_ptr( |
+ new devtools::inspector::Client( |
+ base::Bind(&DevToolsProtocolHandlerImpl::SendRawMessage, |
+ base::Unretained(this))))); |
+} |
+ |
+scoped_refptr<DevToolsProtocol::Response> |
+DevToolsProtocolHandlerImpl::OnPageEnable( |
+ scoped_refptr<DevToolsProtocol::Command> command) { |
+ Response response = page_handler_->Enable(); |
+ scoped_refptr<DevToolsProtocol::Response> protocol_response; |
+ if (CreateCommonResponse(command, response, &protocol_response)) |
+ return protocol_response; |
+ base::DictionaryValue* result = new base::DictionaryValue(); |
+ return command->SuccessResponse(result); |
+} |
+ |
+scoped_refptr<DevToolsProtocol::Response> |
+DevToolsProtocolHandlerImpl::OnPageDisable( |
+ scoped_refptr<DevToolsProtocol::Command> command) { |
+ Response response = page_handler_->Disable(); |
+ scoped_refptr<DevToolsProtocol::Response> protocol_response; |
+ if (CreateCommonResponse(command, response, &protocol_response)) |
+ return protocol_response; |
+ base::DictionaryValue* result = new base::DictionaryValue(); |
+ return command->SuccessResponse(result); |
+} |
+ |
+scoped_refptr<DevToolsProtocol::Response> |
+DevToolsProtocolHandlerImpl::OnPageReload( |
+ scoped_refptr<DevToolsProtocol::Command> command) { |
+ base::DictionaryValue* params = command->params(); |
+ bool in_ignore_cache = false; |
+ bool ignore_cache_found = params && params->GetBoolean( |
+ "ignoreCache", |
+ &in_ignore_cache); |
+ std::string in_script_to_evaluate_on_load; |
+ bool script_to_evaluate_on_load_found = params && params->GetString( |
+ "scriptToEvaluateOnLoad", |
+ &in_script_to_evaluate_on_load); |
+ std::string in_script_preprocessor; |
+ bool script_preprocessor_found = params && params->GetString( |
+ "scriptPreprocessor", |
+ &in_script_preprocessor); |
+ Response response = page_handler_->Reload( |
+ ignore_cache_found ? &in_ignore_cache : nullptr, |
+ script_to_evaluate_on_load_found ? &in_script_to_evaluate_on_load : nullptr, |
+ script_preprocessor_found ? &in_script_preprocessor : nullptr); |
+ scoped_refptr<DevToolsProtocol::Response> protocol_response; |
+ if (CreateCommonResponse(command, response, &protocol_response)) |
+ return protocol_response; |
+ base::DictionaryValue* result = new base::DictionaryValue(); |
+ return command->SuccessResponse(result); |
+} |
+ |
+scoped_refptr<DevToolsProtocol::Response> |
+DevToolsProtocolHandlerImpl::OnPageNavigate( |
+ scoped_refptr<DevToolsProtocol::Command> command) { |
+ base::DictionaryValue* params = command->params(); |
+ std::string in_url; |
+ if (!params || !params->GetString("url", &in_url)) |
+ return command->InvalidParamResponse("url"); |
+ devtools::page::FrameId out_frame_id; |
+ Response response = page_handler_->Navigate( |
+ in_url, |
+ &out_frame_id); |
+ scoped_refptr<DevToolsProtocol::Response> protocol_response; |
+ if (CreateCommonResponse(command, response, &protocol_response)) |
+ return protocol_response; |
+ base::DictionaryValue* result = new base::DictionaryValue(); |
+ result->SetString("frameId", out_frame_id); |
+ return command->SuccessResponse(result); |
+} |
+ |
+scoped_refptr<DevToolsProtocol::Response> |
+DevToolsProtocolHandlerImpl::OnPageGetNavigationHistory( |
+ scoped_refptr<DevToolsProtocol::Command> command) { |
+ int out_current_index = 0; |
+ devtools::ListBuilder<devtools::page::NavigationEntry> out_entries; |
+ Response response = page_handler_->GetNavigationHistory( |
+ &out_current_index, |
+ &out_entries); |
+ scoped_refptr<DevToolsProtocol::Response> protocol_response; |
+ if (CreateCommonResponse(command, response, &protocol_response)) |
+ return protocol_response; |
+ base::DictionaryValue* result = new base::DictionaryValue(); |
+ result->SetInteger("currentIndex", out_current_index); |
+ result->Set("entries", |
+ devtools::ListBuilder<devtools::page::NavigationEntry>::ToValue(out_entries.Pass()).release()); |
+ return command->SuccessResponse(result); |
+} |
+ |
+scoped_refptr<DevToolsProtocol::Response> |
+DevToolsProtocolHandlerImpl::OnPageNavigateToHistoryEntry( |
+ scoped_refptr<DevToolsProtocol::Command> command) { |
+ base::DictionaryValue* params = command->params(); |
+ int in_entry_id = 0; |
+ if (!params || !params->GetInteger("entryId", &in_entry_id)) |
+ return command->InvalidParamResponse("entryId"); |
+ Response response = page_handler_->NavigateToHistoryEntry( |
+ in_entry_id); |
+ scoped_refptr<DevToolsProtocol::Response> protocol_response; |
+ if (CreateCommonResponse(command, response, &protocol_response)) |
+ return protocol_response; |
+ base::DictionaryValue* result = new base::DictionaryValue(); |
+ return command->SuccessResponse(result); |
+} |
+ |
+scoped_refptr<DevToolsProtocol::Response> |
+DevToolsProtocolHandlerImpl::OnPageSetGeolocationOverride( |
+ scoped_refptr<DevToolsProtocol::Command> command) { |
+ base::DictionaryValue* params = command->params(); |
+ double in_latitude = 0.0; |
+ bool latitude_found = params && params->GetDouble( |
+ "latitude", |
+ &in_latitude); |
+ double in_longitude = 0.0; |
+ bool longitude_found = params && params->GetDouble( |
+ "longitude", |
+ &in_longitude); |
+ double in_accuracy = 0.0; |
+ bool accuracy_found = params && params->GetDouble( |
+ "accuracy", |
+ &in_accuracy); |
+ Response response = page_handler_->SetGeolocationOverride( |
+ latitude_found ? &in_latitude : nullptr, |
+ longitude_found ? &in_longitude : nullptr, |
+ accuracy_found ? &in_accuracy : nullptr); |
+ scoped_refptr<DevToolsProtocol::Response> protocol_response; |
+ if (CreateCommonResponse(command, response, &protocol_response)) |
+ return protocol_response; |
+ base::DictionaryValue* result = new base::DictionaryValue(); |
+ return command->SuccessResponse(result); |
+} |
+ |
+scoped_refptr<DevToolsProtocol::Response> |
+DevToolsProtocolHandlerImpl::OnPageClearGeolocationOverride( |
+ scoped_refptr<DevToolsProtocol::Command> command) { |
+ Response response = page_handler_->ClearGeolocationOverride(); |
+ scoped_refptr<DevToolsProtocol::Response> protocol_response; |
+ if (CreateCommonResponse(command, response, &protocol_response)) |
+ return protocol_response; |
+ base::DictionaryValue* result = new base::DictionaryValue(); |
+ return command->SuccessResponse(result); |
+} |
+ |
+scoped_refptr<DevToolsProtocol::Response> |
+DevToolsProtocolHandlerImpl::OnPageSetTouchEmulationEnabled( |
+ scoped_refptr<DevToolsProtocol::Command> command) { |
+ base::DictionaryValue* params = command->params(); |
+ bool in_enabled = false; |
+ if (!params || !params->GetBoolean("enabled", &in_enabled)) |
+ return command->InvalidParamResponse("enabled"); |
+ Response response = page_handler_->SetTouchEmulationEnabled( |
+ in_enabled); |
+ scoped_refptr<DevToolsProtocol::Response> protocol_response; |
+ if (CreateCommonResponse(command, response, &protocol_response)) |
+ return protocol_response; |
+ base::DictionaryValue* result = new base::DictionaryValue(); |
+ return command->SuccessResponse(result); |
+} |
+ |
+scoped_refptr<DevToolsProtocol::Response> |
+DevToolsProtocolHandlerImpl::OnPageCaptureScreenshot( |
+ scoped_refptr<DevToolsProtocol::Command> command) { |
+ return page_handler_->CaptureScreenshot( |
+ command); |
+} |
+ |
+scoped_refptr<DevToolsProtocol::Response> |
+DevToolsProtocolHandlerImpl::OnPageCanScreencast( |
+ scoped_refptr<DevToolsProtocol::Command> command) { |
+ bool out_result = false; |
+ Response response = page_handler_->CanScreencast( |
+ &out_result); |
+ scoped_refptr<DevToolsProtocol::Response> protocol_response; |
+ if (CreateCommonResponse(command, response, &protocol_response)) |
+ return protocol_response; |
+ base::DictionaryValue* result = new base::DictionaryValue(); |
+ result->SetBoolean("result", out_result); |
+ return command->SuccessResponse(result); |
+} |
+ |
+scoped_refptr<DevToolsProtocol::Response> |
+DevToolsProtocolHandlerImpl::OnPageCanEmulate( |
+ scoped_refptr<DevToolsProtocol::Command> command) { |
+ bool out_result = false; |
+ Response response = page_handler_->CanEmulate( |
+ &out_result); |
+ scoped_refptr<DevToolsProtocol::Response> protocol_response; |
+ if (CreateCommonResponse(command, response, &protocol_response)) |
+ return protocol_response; |
+ base::DictionaryValue* result = new base::DictionaryValue(); |
+ result->SetBoolean("result", out_result); |
+ return command->SuccessResponse(result); |
+} |
+ |
+scoped_refptr<DevToolsProtocol::Response> |
+DevToolsProtocolHandlerImpl::OnPageStartScreencast( |
+ scoped_refptr<DevToolsProtocol::Command> command) { |
+ base::DictionaryValue* params = command->params(); |
+ std::string in_format; |
+ bool format_found = params && params->GetString( |
+ "format", |
+ &in_format); |
+ int in_quality = 0; |
+ bool quality_found = params && params->GetInteger( |
+ "quality", |
+ &in_quality); |
+ int in_max_width = 0; |
+ bool max_width_found = params && params->GetInteger( |
+ "maxWidth", |
+ &in_max_width); |
+ int in_max_height = 0; |
+ bool max_height_found = params && params->GetInteger( |
+ "maxHeight", |
+ &in_max_height); |
+ Response response = page_handler_->StartScreencast( |
+ format_found ? &in_format : nullptr, |
+ quality_found ? &in_quality : nullptr, |
+ max_width_found ? &in_max_width : nullptr, |
+ max_height_found ? &in_max_height : nullptr); |
+ scoped_refptr<DevToolsProtocol::Response> protocol_response; |
+ if (CreateCommonResponse(command, response, &protocol_response)) |
+ return protocol_response; |
+ base::DictionaryValue* result = new base::DictionaryValue(); |
+ return command->SuccessResponse(result); |
+} |
+ |
+scoped_refptr<DevToolsProtocol::Response> |
+DevToolsProtocolHandlerImpl::OnPageStopScreencast( |
+ scoped_refptr<DevToolsProtocol::Command> command) { |
+ Response response = page_handler_->StopScreencast(); |
+ scoped_refptr<DevToolsProtocol::Response> protocol_response; |
+ if (CreateCommonResponse(command, response, &protocol_response)) |
+ return protocol_response; |
+ base::DictionaryValue* result = new base::DictionaryValue(); |
+ return command->SuccessResponse(result); |
+} |
+ |
+scoped_refptr<DevToolsProtocol::Response> |
+DevToolsProtocolHandlerImpl::OnPageHandleJavaScriptDialog( |
+ scoped_refptr<DevToolsProtocol::Command> command) { |
+ base::DictionaryValue* params = command->params(); |
+ bool in_accept = false; |
+ if (!params || !params->GetBoolean("accept", &in_accept)) |
+ return command->InvalidParamResponse("accept"); |
+ std::string in_prompt_text; |
+ bool prompt_text_found = params && params->GetString( |
+ "promptText", |
+ &in_prompt_text); |
+ Response response = page_handler_->HandleJavaScriptDialog( |
+ in_accept, |
+ prompt_text_found ? &in_prompt_text : nullptr); |
+ scoped_refptr<DevToolsProtocol::Response> protocol_response; |
+ if (CreateCommonResponse(command, response, &protocol_response)) |
+ return protocol_response; |
+ base::DictionaryValue* result = new base::DictionaryValue(); |
+ return command->SuccessResponse(result); |
+} |
+ |
+scoped_refptr<DevToolsProtocol::Response> |
+DevToolsProtocolHandlerImpl::OnPageQueryUsageAndQuota( |
+ scoped_refptr<DevToolsProtocol::Command> command) { |
+ base::DictionaryValue* params = command->params(); |
+ std::string in_security_origin; |
+ if (!params || !params->GetString("securityOrigin", &in_security_origin)) |
+ return command->InvalidParamResponse("securityOrigin"); |
+ return page_handler_->QueryUsageAndQuota( |
+ in_security_origin, |
+ command); |
+} |
+ |
+scoped_refptr<DevToolsProtocol::Response> |
+DevToolsProtocolHandlerImpl::OnPageSetColorPickerEnabled( |
+ scoped_refptr<DevToolsProtocol::Command> command) { |
+ base::DictionaryValue* params = command->params(); |
+ bool in_enabled = false; |
+ if (!params || !params->GetBoolean("enabled", &in_enabled)) |
+ return command->InvalidParamResponse("enabled"); |
+ Response response = page_handler_->SetColorPickerEnabled( |
+ in_enabled); |
+ scoped_refptr<DevToolsProtocol::Response> protocol_response; |
+ if (CreateCommonResponse(command, response, &protocol_response)) |
+ return protocol_response; |
+ base::DictionaryValue* result = new base::DictionaryValue(); |
+ return command->SuccessResponse(result); |
+} |
+ |
+void DevToolsProtocolHandlerImpl::SetPageHandler( |
+ devtools::page::PageHandler* page_handler) { |
+ DCHECK(!page_handler_); |
+ page_handler_ = page_handler; |
+ RegisterCommandHandler( |
+ "Page.enable", |
+ base::Bind( |
+ &DevToolsProtocolHandlerImpl::OnPageEnable, |
+ base::Unretained(this))); |
+ RegisterCommandHandler( |
+ "Page.disable", |
+ base::Bind( |
+ &DevToolsProtocolHandlerImpl::OnPageDisable, |
+ base::Unretained(this))); |
+ RegisterCommandHandler( |
+ "Page.reload", |
+ base::Bind( |
+ &DevToolsProtocolHandlerImpl::OnPageReload, |
+ base::Unretained(this))); |
+ RegisterCommandHandler( |
+ "Page.navigate", |
+ base::Bind( |
+ &DevToolsProtocolHandlerImpl::OnPageNavigate, |
+ base::Unretained(this))); |
+ RegisterCommandHandler( |
+ "Page.getNavigationHistory", |
+ base::Bind( |
+ &DevToolsProtocolHandlerImpl::OnPageGetNavigationHistory, |
+ base::Unretained(this))); |
+ RegisterCommandHandler( |
+ "Page.navigateToHistoryEntry", |
+ base::Bind( |
+ &DevToolsProtocolHandlerImpl::OnPageNavigateToHistoryEntry, |
+ base::Unretained(this))); |
+ RegisterCommandHandler( |
+ "Page.setGeolocationOverride", |
+ base::Bind( |
+ &DevToolsProtocolHandlerImpl::OnPageSetGeolocationOverride, |
+ base::Unretained(this))); |
+ RegisterCommandHandler( |
+ "Page.clearGeolocationOverride", |
+ base::Bind( |
+ &DevToolsProtocolHandlerImpl::OnPageClearGeolocationOverride, |
+ base::Unretained(this))); |
+ RegisterCommandHandler( |
+ "Page.setTouchEmulationEnabled", |
+ base::Bind( |
+ &DevToolsProtocolHandlerImpl::OnPageSetTouchEmulationEnabled, |
+ base::Unretained(this))); |
+ RegisterCommandHandler( |
+ "Page.captureScreenshot", |
+ base::Bind( |
+ &DevToolsProtocolHandlerImpl::OnPageCaptureScreenshot, |
+ base::Unretained(this))); |
+ RegisterCommandHandler( |
+ "Page.canScreencast", |
+ base::Bind( |
+ &DevToolsProtocolHandlerImpl::OnPageCanScreencast, |
+ base::Unretained(this))); |
+ RegisterCommandHandler( |
+ "Page.canEmulate", |
+ base::Bind( |
+ &DevToolsProtocolHandlerImpl::OnPageCanEmulate, |
+ base::Unretained(this))); |
+ RegisterCommandHandler( |
+ "Page.startScreencast", |
+ base::Bind( |
+ &DevToolsProtocolHandlerImpl::OnPageStartScreencast, |
+ base::Unretained(this))); |
+ RegisterCommandHandler( |
+ "Page.stopScreencast", |
+ base::Bind( |
+ &DevToolsProtocolHandlerImpl::OnPageStopScreencast, |
+ base::Unretained(this))); |
+ RegisterCommandHandler( |
+ "Page.handleJavaScriptDialog", |
+ base::Bind( |
+ &DevToolsProtocolHandlerImpl::OnPageHandleJavaScriptDialog, |
+ base::Unretained(this))); |
+ RegisterCommandHandler( |
+ "Page.queryUsageAndQuota", |
+ base::Bind( |
+ &DevToolsProtocolHandlerImpl::OnPageQueryUsageAndQuota, |
+ base::Unretained(this))); |
+ RegisterCommandHandler( |
+ "Page.setColorPickerEnabled", |
+ base::Bind( |
+ &DevToolsProtocolHandlerImpl::OnPageSetColorPickerEnabled, |
+ base::Unretained(this))); |
+ page_handler_->SetClient(make_scoped_ptr( |
+ new devtools::page::Client( |
+ base::Bind(&DevToolsProtocolHandlerImpl::SendRawMessage, |
+ base::Unretained(this))))); |
+} |
+ |
+scoped_refptr<DevToolsProtocol::Response> |
+DevToolsProtocolHandlerImpl::OnNetworkClearBrowserCache( |
+ scoped_refptr<DevToolsProtocol::Command> command) { |
+ Response response = network_handler_->ClearBrowserCache(); |
+ scoped_refptr<DevToolsProtocol::Response> protocol_response; |
+ if (CreateCommonResponse(command, response, &protocol_response)) |
+ return protocol_response; |
+ base::DictionaryValue* result = new base::DictionaryValue(); |
+ return command->SuccessResponse(result); |
+} |
+ |
+scoped_refptr<DevToolsProtocol::Response> |
+DevToolsProtocolHandlerImpl::OnNetworkClearBrowserCookies( |
+ scoped_refptr<DevToolsProtocol::Command> command) { |
+ Response response = network_handler_->ClearBrowserCookies(); |
+ scoped_refptr<DevToolsProtocol::Response> protocol_response; |
+ if (CreateCommonResponse(command, response, &protocol_response)) |
+ return protocol_response; |
+ base::DictionaryValue* result = new base::DictionaryValue(); |
+ return command->SuccessResponse(result); |
+} |
+ |
+scoped_refptr<DevToolsProtocol::Response> |
+DevToolsProtocolHandlerImpl::OnNetworkCanEmulateNetworkConditions( |
+ scoped_refptr<DevToolsProtocol::Command> command) { |
+ bool out_result = false; |
+ Response response = network_handler_->CanEmulateNetworkConditions( |
+ &out_result); |
+ scoped_refptr<DevToolsProtocol::Response> protocol_response; |
+ if (CreateCommonResponse(command, response, &protocol_response)) |
+ return protocol_response; |
+ base::DictionaryValue* result = new base::DictionaryValue(); |
+ result->SetBoolean("result", out_result); |
+ return command->SuccessResponse(result); |
+} |
+ |
+scoped_refptr<DevToolsProtocol::Response> |
+DevToolsProtocolHandlerImpl::OnNetworkEmulateNetworkConditions( |
+ scoped_refptr<DevToolsProtocol::Command> command) { |
+ base::DictionaryValue* params = command->params(); |
+ bool in_offline = false; |
+ if (!params || !params->GetBoolean("offline", &in_offline)) |
+ return command->InvalidParamResponse("offline"); |
+ double in_latency = 0.0; |
+ if (!params || !params->GetDouble("latency", &in_latency)) |
+ return command->InvalidParamResponse("latency"); |
+ double in_download_throughput = 0.0; |
+ if (!params || !params->GetDouble("downloadThroughput", &in_download_throughput)) |
+ return command->InvalidParamResponse("downloadThroughput"); |
+ double in_upload_throughput = 0.0; |
+ if (!params || !params->GetDouble("uploadThroughput", &in_upload_throughput)) |
+ return command->InvalidParamResponse("uploadThroughput"); |
+ Response response = network_handler_->EmulateNetworkConditions( |
+ in_offline, |
+ in_latency, |
+ in_download_throughput, |
+ in_upload_throughput); |
+ scoped_refptr<DevToolsProtocol::Response> protocol_response; |
+ if (CreateCommonResponse(command, response, &protocol_response)) |
+ return protocol_response; |
+ base::DictionaryValue* result = new base::DictionaryValue(); |
+ return command->SuccessResponse(result); |
+} |
+ |
+void DevToolsProtocolHandlerImpl::SetNetworkHandler( |
+ devtools::network::NetworkHandler* network_handler) { |
+ DCHECK(!network_handler_); |
+ network_handler_ = network_handler; |
+ RegisterCommandHandler( |
+ "Network.clearBrowserCache", |
+ base::Bind( |
+ &DevToolsProtocolHandlerImpl::OnNetworkClearBrowserCache, |
+ base::Unretained(this))); |
+ RegisterCommandHandler( |
+ "Network.clearBrowserCookies", |
+ base::Bind( |
+ &DevToolsProtocolHandlerImpl::OnNetworkClearBrowserCookies, |
+ base::Unretained(this))); |
+ RegisterCommandHandler( |
+ "Network.canEmulateNetworkConditions", |
+ base::Bind( |
+ &DevToolsProtocolHandlerImpl::OnNetworkCanEmulateNetworkConditions, |
+ base::Unretained(this))); |
+ RegisterCommandHandler( |
+ "Network.emulateNetworkConditions", |
+ base::Bind( |
+ &DevToolsProtocolHandlerImpl::OnNetworkEmulateNetworkConditions, |
+ base::Unretained(this))); |
+} |
+ |
+scoped_refptr<DevToolsProtocol::Response> |
+DevToolsProtocolHandlerImpl::OnDOMSetFileInputFiles( |
+ scoped_refptr<DevToolsProtocol::Command> command) { |
+ base::DictionaryValue* params = command->params(); |
+ int in_node_id = 0; |
+ if (!params || !params->GetInteger("nodeId", &in_node_id)) |
+ return command->InvalidParamResponse("nodeId"); |
+ base::ListValue* list_files = nullptr; |
+ if (!params || !params->GetList("files", &list_files)) |
+ return command->InvalidParamResponse("files"); |
+ std::vector<std::string> in_files; |
+ for (base::ListValue::const_iterator it = |
+ list_files->begin(); it != list_files->end(); ++it) { |
+ std::string item; |
+ if (!(*it)->GetAsString(&item)) |
+ return command->InvalidParamResponse("files"); |
+ in_files.push_back(item); |
+ } |
+ Response response = dom_handler_->SetFileInputFiles( |
+ in_node_id, |
+ in_files); |
+ scoped_refptr<DevToolsProtocol::Response> protocol_response; |
+ if (CreateCommonResponse(command, response, &protocol_response)) |
+ return protocol_response; |
+ base::DictionaryValue* result = new base::DictionaryValue(); |
+ return command->SuccessResponse(result); |
+} |
+ |
+void DevToolsProtocolHandlerImpl::SetDOMHandler( |
+ devtools::dom::DOMHandler* dom_handler) { |
+ DCHECK(!dom_handler_); |
+ dom_handler_ = dom_handler; |
+ RegisterCommandHandler( |
+ "DOM.setFileInputFiles", |
+ base::Bind( |
+ &DevToolsProtocolHandlerImpl::OnDOMSetFileInputFiles, |
+ base::Unretained(this))); |
+} |
+ |
+scoped_refptr<DevToolsProtocol::Response> |
+DevToolsProtocolHandlerImpl::OnWorkerDisconnectFromWorker( |
+ scoped_refptr<DevToolsProtocol::Command> command) { |
+ base::DictionaryValue* params = command->params(); |
+ int in_worker_id = 0; |
+ if (!params || !params->GetInteger("workerId", &in_worker_id)) |
+ return command->InvalidParamResponse("workerId"); |
+ Response response = worker_handler_->DisconnectFromWorker( |
+ in_worker_id); |
+ scoped_refptr<DevToolsProtocol::Response> protocol_response; |
+ if (CreateCommonResponse(command, response, &protocol_response)) |
+ return protocol_response; |
+ base::DictionaryValue* result = new base::DictionaryValue(); |
+ return command->SuccessResponse(result); |
+} |
+ |
+void DevToolsProtocolHandlerImpl::SetWorkerHandler( |
+ devtools::worker::WorkerHandler* worker_handler) { |
+ DCHECK(!worker_handler_); |
+ worker_handler_ = worker_handler; |
+ RegisterCommandHandler( |
+ "Worker.disconnectFromWorker", |
+ base::Bind( |
+ &DevToolsProtocolHandlerImpl::OnWorkerDisconnectFromWorker, |
+ base::Unretained(this))); |
+ worker_handler_->SetClient(make_scoped_ptr( |
+ new devtools::worker::Client( |
+ base::Bind(&DevToolsProtocolHandlerImpl::SendRawMessage, |
+ base::Unretained(this))))); |
+} |
+ |
+scoped_refptr<DevToolsProtocol::Response> |
+DevToolsProtocolHandlerImpl::OnInputEmulateTouchFromMouseEvent( |
+ scoped_refptr<DevToolsProtocol::Command> command) { |
+ base::DictionaryValue* params = command->params(); |
+ std::string in_type; |
+ if (!params || !params->GetString("type", &in_type)) |
+ return command->InvalidParamResponse("type"); |
+ int in_x = 0; |
+ if (!params || !params->GetInteger("x", &in_x)) |
+ return command->InvalidParamResponse("x"); |
+ int in_y = 0; |
+ if (!params || !params->GetInteger("y", &in_y)) |
+ return command->InvalidParamResponse("y"); |
+ double in_timestamp = 0.0; |
+ if (!params || !params->GetDouble("timestamp", &in_timestamp)) |
+ return command->InvalidParamResponse("timestamp"); |
+ std::string in_button; |
+ if (!params || !params->GetString("button", &in_button)) |
+ return command->InvalidParamResponse("button"); |
+ double in_delta_x = 0.0; |
+ bool delta_x_found = params && params->GetDouble( |
+ "deltaX", |
+ &in_delta_x); |
+ double in_delta_y = 0.0; |
+ bool delta_y_found = params && params->GetDouble( |
+ "deltaY", |
+ &in_delta_y); |
+ int in_modifiers = 0; |
+ bool modifiers_found = params && params->GetInteger( |
+ "modifiers", |
+ &in_modifiers); |
+ int in_click_count = 0; |
+ bool click_count_found = params && params->GetInteger( |
+ "clickCount", |
+ &in_click_count); |
+ Response response = input_handler_->EmulateTouchFromMouseEvent( |
+ in_type, |
+ in_x, |
+ in_y, |
+ in_timestamp, |
+ in_button, |
+ delta_x_found ? &in_delta_x : nullptr, |
+ delta_y_found ? &in_delta_y : nullptr, |
+ modifiers_found ? &in_modifiers : nullptr, |
+ click_count_found ? &in_click_count : nullptr); |
+ scoped_refptr<DevToolsProtocol::Response> protocol_response; |
+ if (CreateCommonResponse(command, response, &protocol_response)) |
+ return protocol_response; |
+ base::DictionaryValue* result = new base::DictionaryValue(); |
+ return command->SuccessResponse(result); |
+} |
+ |
+void DevToolsProtocolHandlerImpl::SetInputHandler( |
+ devtools::input::InputHandler* input_handler) { |
+ DCHECK(!input_handler_); |
+ input_handler_ = input_handler; |
+ RegisterCommandHandler( |
+ "Input.emulateTouchFromMouseEvent", |
+ base::Bind( |
+ &DevToolsProtocolHandlerImpl::OnInputEmulateTouchFromMouseEvent, |
+ base::Unretained(this))); |
+} |
+ |
+scoped_refptr<DevToolsProtocol::Response> |
+DevToolsProtocolHandlerImpl::OnTracingStart( |
+ scoped_refptr<DevToolsProtocol::Command> command) { |
+ base::DictionaryValue* params = command->params(); |
+ std::string in_categories; |
+ bool categories_found = params && params->GetString( |
+ "categories", |
+ &in_categories); |
+ std::string in_options; |
+ bool options_found = params && params->GetString( |
+ "options", |
+ &in_options); |
+ double in_buffer_usage_reporting_interval = 0.0; |
+ bool buffer_usage_reporting_interval_found = params && params->GetDouble( |
+ "bufferUsageReportingInterval", |
+ &in_buffer_usage_reporting_interval); |
+ return tracing_handler_->Start( |
+ categories_found ? &in_categories : nullptr, |
+ options_found ? &in_options : nullptr, |
+ buffer_usage_reporting_interval_found ? &in_buffer_usage_reporting_interval : nullptr, |
+ command); |
+} |
+ |
+scoped_refptr<DevToolsProtocol::Response> |
+DevToolsProtocolHandlerImpl::OnTracingEnd( |
+ scoped_refptr<DevToolsProtocol::Command> command) { |
+ return tracing_handler_->End( |
+ command); |
+} |
+ |
+scoped_refptr<DevToolsProtocol::Response> |
+DevToolsProtocolHandlerImpl::OnTracingGetCategories( |
+ scoped_refptr<DevToolsProtocol::Command> command) { |
+ return tracing_handler_->GetCategories( |
+ command); |
+} |
+ |
+void DevToolsProtocolHandlerImpl::SetTracingHandler( |
+ devtools::tracing::TracingHandler* tracing_handler) { |
+ DCHECK(!tracing_handler_); |
+ tracing_handler_ = tracing_handler; |
+ RegisterCommandHandler( |
+ "Tracing.start", |
+ base::Bind( |
+ &DevToolsProtocolHandlerImpl::OnTracingStart, |
+ base::Unretained(this))); |
+ RegisterCommandHandler( |
+ "Tracing.end", |
+ base::Bind( |
+ &DevToolsProtocolHandlerImpl::OnTracingEnd, |
+ base::Unretained(this))); |
+ RegisterCommandHandler( |
+ "Tracing.getCategories", |
+ base::Bind( |
+ &DevToolsProtocolHandlerImpl::OnTracingGetCategories, |
+ base::Unretained(this))); |
+ tracing_handler_->SetClient(make_scoped_ptr( |
+ new devtools::tracing::Client( |
+ base::Bind(&DevToolsProtocolHandlerImpl::SendRawMessage, |
+ base::Unretained(this))))); |
+} |
+ |
+scoped_refptr<DevToolsProtocol::Response> |
+DevToolsProtocolHandlerImpl::OnPowerStart( |
+ scoped_refptr<DevToolsProtocol::Command> command) { |
+ Response response = power_handler_->Start(); |
+ scoped_refptr<DevToolsProtocol::Response> protocol_response; |
+ if (CreateCommonResponse(command, response, &protocol_response)) |
+ return protocol_response; |
+ base::DictionaryValue* result = new base::DictionaryValue(); |
+ return command->SuccessResponse(result); |
+} |
+ |
+scoped_refptr<DevToolsProtocol::Response> |
+DevToolsProtocolHandlerImpl::OnPowerEnd( |
+ scoped_refptr<DevToolsProtocol::Command> command) { |
+ Response response = power_handler_->End(); |
+ scoped_refptr<DevToolsProtocol::Response> protocol_response; |
+ if (CreateCommonResponse(command, response, &protocol_response)) |
+ return protocol_response; |
+ base::DictionaryValue* result = new base::DictionaryValue(); |
+ return command->SuccessResponse(result); |
+} |
+ |
+scoped_refptr<DevToolsProtocol::Response> |
+DevToolsProtocolHandlerImpl::OnPowerCanProfilePower( |
+ scoped_refptr<DevToolsProtocol::Command> command) { |
+ bool out_result = false; |
+ Response response = power_handler_->CanProfilePower( |
+ &out_result); |
+ scoped_refptr<DevToolsProtocol::Response> protocol_response; |
+ if (CreateCommonResponse(command, response, &protocol_response)) |
+ return protocol_response; |
+ base::DictionaryValue* result = new base::DictionaryValue(); |
+ result->SetBoolean("result", out_result); |
+ return command->SuccessResponse(result); |
+} |
+ |
+scoped_refptr<DevToolsProtocol::Response> |
+DevToolsProtocolHandlerImpl::OnPowerGetAccuracyLevel( |
+ scoped_refptr<DevToolsProtocol::Command> command) { |
+ std::string out_result; |
+ Response response = power_handler_->GetAccuracyLevel( |
+ &out_result); |
+ scoped_refptr<DevToolsProtocol::Response> protocol_response; |
+ if (CreateCommonResponse(command, response, &protocol_response)) |
+ return protocol_response; |
+ base::DictionaryValue* result = new base::DictionaryValue(); |
+ result->SetString("result", out_result); |
+ return command->SuccessResponse(result); |
+} |
+ |
+void DevToolsProtocolHandlerImpl::SetPowerHandler( |
+ devtools::power::PowerHandler* power_handler) { |
+ DCHECK(!power_handler_); |
+ power_handler_ = power_handler; |
+ RegisterCommandHandler( |
+ "Power.start", |
+ base::Bind( |
+ &DevToolsProtocolHandlerImpl::OnPowerStart, |
+ base::Unretained(this))); |
+ RegisterCommandHandler( |
+ "Power.end", |
+ base::Bind( |
+ &DevToolsProtocolHandlerImpl::OnPowerEnd, |
+ base::Unretained(this))); |
+ RegisterCommandHandler( |
+ "Power.canProfilePower", |
+ base::Bind( |
+ &DevToolsProtocolHandlerImpl::OnPowerCanProfilePower, |
+ base::Unretained(this))); |
+ RegisterCommandHandler( |
+ "Power.getAccuracyLevel", |
+ base::Bind( |
+ &DevToolsProtocolHandlerImpl::OnPowerGetAccuracyLevel, |
+ base::Unretained(this))); |
+ power_handler_->SetClient(make_scoped_ptr( |
+ new devtools::power::Client( |
+ base::Bind(&DevToolsProtocolHandlerImpl::SendRawMessage, |
+ base::Unretained(this))))); |
+} |
+ |
+namespace devtools { |
+ |
+ListBuilderBase::ListBuilderBase() |
+ : list_(new base::ListValue) { |
+} |
+ |
+ListBuilderBase::ListBuilderBase(scoped_ptr<base::ListValue> list) |
+ : list_(list.Pass()) { |
+} |
+ |
+// static |
+scoped_ptr<base::ListValue> ListBuilderBase::ToValue( |
+ ListBuilderBase src) { |
+ return src.list_.Pass(); |
+} |
+ |
+namespace inspector { |
+ |
+Client::Client(const RawMessageCallback& raw_message_callback) |
+ : DevToolsProtocolClient(raw_message_callback) { |
+} |
+ |
+Client::~Client() { |
+} |
+ |
+void Client::Detached( |
+ DetachedParams params) { |
+ SendNotification("Inspector.detached", |
+ DetachedParams::ToValue(params.Pass()).Pass()); |
+} |
+ |
+void Client::TargetCrashed( |
+ TargetCrashedParams params) { |
+ SendNotification("Inspector.targetCrashed", |
+ TargetCrashedParams::ToValue(params.Pass()).Pass()); |
+} |
+ |
+} // namespace inspector |
+ |
+namespace page { |
+namespace start_screencast { |
+const char kFormatJpeg[] = "jpeg"; |
+const char kFormatPng[] = "png"; |
+} // namespace start_screencast |
+} // namespace page |
+ |
+namespace page { |
+namespace usage_item { |
+const char kIdFilesystem[] = "filesystem"; |
+const char kIdDatabase[] = "database"; |
+const char kIdAppcache[] = "appcache"; |
+const char kIdIndexeddatabase[] = "indexeddatabase"; |
+} // namespace usage_item |
+} // namespace page |
+ |
+namespace page { |
+ |
+Client::Client(const RawMessageCallback& raw_message_callback) |
+ : DevToolsProtocolClient(raw_message_callback) { |
+} |
+ |
+Client::~Client() { |
+} |
+ |
+void Client::SendCaptureScreenshotResponse( |
+ scoped_refptr<DevToolsProtocol::Command> command, |
+ CaptureScreenshotResponse params) { |
+ SendAsyncResponse( |
+ command->SuccessResponse( |
+ CaptureScreenshotResponse::ToValue(params.Pass()).release())); |
+} |
+ |
+void Client::SendQueryUsageAndQuotaResponse( |
+ scoped_refptr<DevToolsProtocol::Command> command, |
+ QueryUsageAndQuotaResponse params) { |
+ SendAsyncResponse( |
+ command->SuccessResponse( |
+ QueryUsageAndQuotaResponse::ToValue(params.Pass()).release())); |
+} |
+ |
+void Client::ScreencastFrame( |
+ ScreencastFrameParams params) { |
+ SendNotification("Page.screencastFrame", |
+ ScreencastFrameParams::ToValue(params.Pass()).Pass()); |
+} |
+ |
+void Client::ScreencastVisibilityChanged( |
+ ScreencastVisibilityChangedParams params) { |
+ SendNotification("Page.screencastVisibilityChanged", |
+ ScreencastVisibilityChangedParams::ToValue(params.Pass()).Pass()); |
+} |
+ |
+void Client::ColorPicked( |
+ ColorPickedParams params) { |
+ SendNotification("Page.colorPicked", |
+ ColorPickedParams::ToValue(params.Pass()).Pass()); |
+} |
+ |
+void Client::InterstitialShown( |
+ InterstitialShownParams params) { |
+ SendNotification("Page.interstitialShown", |
+ InterstitialShownParams::ToValue(params.Pass()).Pass()); |
+} |
+ |
+void Client::InterstitialHidden( |
+ InterstitialHiddenParams params) { |
+ SendNotification("Page.interstitialHidden", |
+ InterstitialHiddenParams::ToValue(params.Pass()).Pass()); |
+} |
+ |
+} // namespace page |
+ |
+namespace worker { |
+ |
+Client::Client(const RawMessageCallback& raw_message_callback) |
+ : DevToolsProtocolClient(raw_message_callback) { |
+} |
+ |
+Client::~Client() { |
+} |
+ |
+void Client::DisconnectedFromWorker( |
+ DisconnectedFromWorkerParams params) { |
+ SendNotification("Worker.disconnectedFromWorker", |
+ DisconnectedFromWorkerParams::ToValue(params.Pass()).Pass()); |
+} |
+ |
+} // namespace worker |
+ |
+namespace input { |
+namespace emulate_touch_from_mouse_event { |
+const char kTypeMousePressed[] = "mousePressed"; |
+const char kTypeMouseReleased[] = "mouseReleased"; |
+const char kTypeMouseMoved[] = "mouseMoved"; |
+const char kTypeMouseWheel[] = "mouseWheel"; |
+} // namespace emulate_touch_from_mouse_event |
+} // namespace input |
+ |
+namespace input { |
+namespace emulate_touch_from_mouse_event { |
+const char kButtonNone[] = "none"; |
+const char kButtonLeft[] = "left"; |
+const char kButtonMiddle[] = "middle"; |
+const char kButtonRight[] = "right"; |
+} // namespace emulate_touch_from_mouse_event |
+} // namespace input |
+ |
+namespace tracing { |
+ |
+Client::Client(const RawMessageCallback& raw_message_callback) |
+ : DevToolsProtocolClient(raw_message_callback) { |
+} |
+ |
+Client::~Client() { |
+} |
+ |
+void Client::SendStartResponse( |
+ scoped_refptr<DevToolsProtocol::Command> command, |
+ StartResponse params) { |
+ SendAsyncResponse( |
+ command->SuccessResponse( |
+ StartResponse::ToValue(params.Pass()).release())); |
+} |
+ |
+void Client::SendEndResponse( |
+ scoped_refptr<DevToolsProtocol::Command> command, |
+ EndResponse params) { |
+ SendAsyncResponse( |
+ command->SuccessResponse( |
+ EndResponse::ToValue(params.Pass()).release())); |
+} |
+ |
+void Client::SendGetCategoriesResponse( |
+ scoped_refptr<DevToolsProtocol::Command> command, |
+ GetCategoriesResponse params) { |
+ SendAsyncResponse( |
+ command->SuccessResponse( |
+ GetCategoriesResponse::ToValue(params.Pass()).release())); |
+} |
+ |
+void Client::DataCollected( |
+ DataCollectedParams params) { |
+ SendNotification("Tracing.dataCollected", |
+ DataCollectedParams::ToValue(params.Pass()).Pass()); |
+} |
+ |
+void Client::TracingComplete( |
+ TracingCompleteParams params) { |
+ SendNotification("Tracing.tracingComplete", |
+ TracingCompleteParams::ToValue(params.Pass()).Pass()); |
+} |
+ |
+void Client::BufferUsage( |
+ BufferUsageParams params) { |
+ SendNotification("Tracing.bufferUsage", |
+ BufferUsageParams::ToValue(params.Pass()).Pass()); |
+} |
+ |
+} // namespace tracing |
+ |
+namespace power { |
+namespace get_accuracy_level { |
+const char kResultHigh[] = "high"; |
+const char kResultModerate[] = "moderate"; |
+const char kResultLow[] = "low"; |
+} // namespace get_accuracy_level |
+} // namespace power |
+ |
+namespace power { |
+ |
+Client::Client(const RawMessageCallback& raw_message_callback) |
+ : DevToolsProtocolClient(raw_message_callback) { |
+} |
+ |
+Client::~Client() { |
+} |
+ |
+void Client::DataAvailable( |
+ DataAvailableParams params) { |
+ SendNotification("Power.dataAvailable", |
+ DataAvailableParams::ToValue(params.Pass()).Pass()); |
+} |
+ |
+} // namespace power |
+ |
+} // namespace devtools |
+ |
+} // namespace content |