Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(352)

Side by Side Diff: headless/lib/browser/domain_cc.template

Issue 1906503002: headless: Implement convenience overloads for DevTools commands (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « no previous file | headless/lib/browser/domain_h.template » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // This file is generated 1 // This file is generated
2 2
3 // Copyright 2016 The Chromium Authors. All rights reserved. 3 // Copyright 2016 The Chromium Authors. All rights reserved.
4 // Use of this source code is governed by a BSD-style license that can be 4 // Use of this source code is governed by a BSD-style license that can be
5 // found in the LICENSE file. 5 // found in the LICENSE file.
6 6
7 #include "headless/public/domains/{{domain.domain | camelcase_to_hacker_style}}. h" 7 #include "headless/public/domains/{{domain.domain | camelcase_to_hacker_style}}. h"
8 8
9 #include "base/bind.h" 9 #include "base/bind.h"
10 10
(...skipping 10 matching lines...) Expand all
21 21
22 {% set method_name = command.name | to_title_case %} 22 {% set method_name = command.name | to_title_case %}
23 {% if "parameters" in command and "returns" in command %} 23 {% if "parameters" in command and "returns" in command %}
24 void Domain::{{method_name}}(std::unique_ptr<{{method_name}}Params> params, base ::Callback<void(std::unique_ptr<{{method_name}}Result>)> callback) { 24 void Domain::{{method_name}}(std::unique_ptr<{{method_name}}Params> params, base ::Callback<void(std::unique_ptr<{{method_name}}Result>)> callback) {
25 dispatcher_->SendMessage("{{domain.domain}}.{{command.name}}", params->Seriali ze(), base::Bind(&Domain::Handle{{method_name}}Response, callback)); 25 dispatcher_->SendMessage("{{domain.domain}}.{{command.name}}", params->Seriali ze(), base::Bind(&Domain::Handle{{method_name}}Response, callback));
26 {% elif "parameters" in command %} 26 {% elif "parameters" in command %}
27 void Domain::{{method_name}}(std::unique_ptr<{{method_name}}Params> params, base ::Callback<void()> callback) { 27 void Domain::{{method_name}}(std::unique_ptr<{{method_name}}Params> params, base ::Callback<void()> callback) {
28 dispatcher_->SendMessage("{{domain.domain}}.{{command.name}}", params->Seriali ze(), std::move(callback)); 28 dispatcher_->SendMessage("{{domain.domain}}.{{command.name}}", params->Seriali ze(), std::move(callback));
29 {% elif "returns" in command %} 29 {% elif "returns" in command %}
30 void Domain::{{method_name}}(base::Callback<void(std::unique_ptr<{{method_name}} Result>)> callback) { 30 void Domain::{{method_name}}(base::Callback<void(std::unique_ptr<{{method_name}} Result>)> callback) {
31 dispatcher_->SendMessage("{{domain.domain}}.{{command.name}}", base::Bind(&Dom ain::Handle{{method_name}}Response, callback)); 31 dispatcher_->SendMessage("{{domain.domain}}.{{command.name}}", base::Bind(&Dom ain::Handle{{method_name}}Response, std::move(callback)));
32 {% else %} 32 {% else %}
33 void Domain::{{method_name}}(base::Callback<void()> callback) { 33 void Domain::{{method_name}}(base::Callback<void()> callback) {
34 dispatcher_->SendMessage("{{domain.domain}}.{{command.name}}", std::move(callb ack)); 34 dispatcher_->SendMessage("{{domain.domain}}.{{command.name}}", std::move(callb ack));
35 {% endif %} 35 {% endif %}
36 } 36 }
37 {# Generate convenience methods that take the required parameters directly. #}
38 {% if not "parameters" in command %}{% continue %}{% endif %}
39
40 void Domain::{{method_name}}({##}
41 {% for parameter in command.parameters -%}
42 {% if parameter.get("optional", False) -%}
43 {% break %}
44 {% endif %}
45 {% if not loop.first %}, {% endif %}
46 {{resolve_type(parameter).pass_type}} {{parameter.name | camelcase_to_hacker_sty le -}}
47 {% endfor %}
48 {% if "parameters" in command and not command.parameters[0].get("optional", False) %}, {% endif %}{# -#}
49 {% if "returns" in command -%}
50 base::Callback<void(std::unique_ptr<{{method_name}}Result>)> callback{##}
51 {% else -%}
52 base::Callback<void()> callback{##}
53 {% endif %}) {
54 {# Build the parameters object. #}
55 std::unique_ptr<{{method_name}}Params> params = {{method_name}}Params::Builder ()
56 {% for parameter in command.parameters -%}
57 {% if parameter.get("optional", False) -%}
58 {% break %}
59 {% endif %}
60 .Set{{parameter.name | to_title_case}}(std::move({{parameter.name | camelc ase_to_hacker_style}}))
61 {% endfor %}
62 .Build();
63 {# Send the message. #}
64 {{method_name}}(std::move(params), std::move(callback));
65 }
37 {% endfor %} 66 {% endfor %}
38 67
39 {# Generate response handlers for commands that need them. #} 68 {# Generate response handlers for commands that need them. #}
40 {% for command in domain.commands %} 69 {% for command in domain.commands %}
41 {% if not "returns" in command %}{% continue %}{% endif %} 70 {% if not "returns" in command %}{% continue %}{% endif %}
42 {% set method_name = command.name | to_title_case %} 71 {% set method_name = command.name | to_title_case %}
43 72
44 // static 73 // static
45 void Domain::Handle{{method_name}}Response(base::Callback<void(std::unique_ptr<{ {method_name}}Result>)> callback, const base::Value& response) { 74 void Domain::Handle{{method_name}}Response(base::Callback<void(std::unique_ptr<{ {method_name}}Result>)> callback, const base::Value& response) {
46 if (callback.is_null()) 75 if (callback.is_null())
47 return; 76 return;
48 ErrorReporter errors; 77 ErrorReporter errors;
49 std::unique_ptr<{{method_name}}Result> result = {{method_name}}Result::Parse(r esponse, &errors); 78 std::unique_ptr<{{method_name}}Result> result = {{method_name}}Result::Parse(r esponse, &errors);
50 DCHECK(!errors.HasErrors()); 79 DCHECK(!errors.HasErrors());
51 callback.Run(std::move(result)); 80 callback.Run(std::move(result));
52 } 81 }
53 {% endfor %} 82 {% endfor %}
54 83
55 } // namespace {{domain.domain | camelcase_to_hacker_style}} 84 } // namespace {{domain.domain | camelcase_to_hacker_style}}
56 85
57 } // namespace headless 86 } // namespace headless
OLDNEW
« no previous file with comments | « no previous file | headless/lib/browser/domain_h.template » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698