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

Side by Side Diff: headless/lib/browser/devtools_api/domain_js.template

Issue 2902583002: Add some closureised JS bindings for DevTools for use by headless embedder (Closed)
Patch Set: Don't run the test on windows because js_binary doesn't work Created 3 years, 7 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
OLDNEW
(Empty)
1 // Copyright 2017 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 /**
6 * @fileoverview Generated DevTools bindings for the {{domain.domain}} Domain.
Sami 2017/05/24 09:16:21 How do we handle experimental things currently? Ma
alex clarke (OOO till 29th) 2017/05/24 11:38:15 I guess we should just drop them and you have to u
Sami 2017/05/25 17:53:35 Right, let's not generate anything for them now an
alex clarke (OOO till 29th) 2017/05/26 11:37:02 Done.
7 */
8 'use strict';
9
10 goog.require('goog.DevTools.Connection');
11 {% for domain_name in domain.js_dependencies %}
12 goog.require('goog.DevTools.{{domain_name}}')
13 {% endfor %}
14 goog.provide('goog.DevTools.{{domain.domain}}');
15
16 /**
17 * @class Bindings for the {{domain.domain}} DevTools Domain.
18 * @param {!goog.DevTools.Connection} connection The DevTools connection.
19 * @constructor
20 */
21 goog.DevTools.{{domain.domain}} = function(connection) {
22 /**
23 * The DevTools connection.
24 *
25 * @private {!goog.DevTools.Connection}
26 */
27 this.connection_ = connection;
28 };
29
30 goog.scope(function () {
31
32 var {{domain.domain}} = goog.DevTools.{{domain.domain}};
33
34 {% for type in domain.types %}
35 {% if not "enum" in type %}{% continue %}{% endif %}
36 /**
37 {% if type.description %}
38 * {{type.description}}
39 *
40 {% endif %}
41 * @enum {string}
42 */
43 {{domain.domain}}.{{type.id}} = {
44 {% for literal in type.enum %}
45 {{ literal | sanitize_literal | dash_to_camelcase | camelcase_to_hacker_style | upper }}: "{{ literal }}"{{',' if not loop.last}}
46 {% endfor %}
47 };
48
49 {% endfor %}
50
51 {% for type in domain.types %}
52 {% if not (type.type == "object") or not ("properties" in type) %}{% continue %} {% endif %}
53 /**
54 {% if type.description %}
55 * {{type.description}}
56 *
57 {% endif %}
58 {% for property in type.properties %}
59 {% if property.description %}
60 * {{property.name}}: {{property.description}}
61 {% endif %}
62 {% endfor %}
63 *
64 {% if type.properties %}
65 * @typedef {{ '{{' }}
66 {% for property in type.properties %}
67 {% if property.optional %}
68 * {{property.name}}: ({{ resolve_type(property).js_type }}|undefined){% if no t loop.last %},{% endif %}
69
70 {% else %}
71 * {{property.name}}: {{ resolve_type(property).js_type }}{% if not loop.last %}, {% endif %}
72
73 {% endif %}
74 {% endfor %}
75 * {{ '}}' }}
76 {% else %}
77 * @typedef {undefined}
78 {% endif %}
79 */
80 {{domain.domain}}.{{type.id}};
81
82
83 {% endfor %}
84
85 {% for command in domain.commands %}
86 {% set method_name = command.name | sanitize_literal | to_title_case %}
87 {% if command.parameters|length > 0 %}
88 {% set param_name = 'params' %}
89 {% set param_type = '{' + domain.domain + '.' + method_name + 'Params}' %}
90 {% else %}
91 {% set param_name = 'opt_params' %}
92 {% set param_type = '{' + domain.domain + '.' + method_name + 'Params=}' %}
93 {% endif %}
94 {% set result_type = '{Promise<' + domain.domain + '.' + method_name + 'Result>} ' %}
95
96 /**
97 {% if command.description %}
98 * {{ command.description }}
99 {% endif %}
100 * @param {{param_type}} {{param_name}}
101 * @return {{result_type}}
102 */
103 {{domain.domain}}.prototype.{{method_name}} = function({{param_name}}) {
104 return /** @type {{result_type}} **/(
105 this.connection_.SendDevToolsMessage('{{domain.domain}}.{{command.name}}',
106 {{param_name}}));
107 };
108
109 {% endfor %}
110
111
112 {% for event in domain.events %}
113 {% set param_type = '{!function(!' + domain.domain + '.' + event.name | to_title _case + 'Params)}' %}
114
115 /**
116 {% if event.description %}
117 * {{ event.description }}
118 {% endif %}
119 * @param {{param_type}} listener
120 */
121 {{domain.domain}}.prototype.On{{event.name | to_title_case}} = function(listener ) {
122 this.connection_.AddEventListener('{{domain.domain}}.{{event.name}}',
123 /** @type {!function(!Object)} */ (listener ));
124 };
125 {% endfor %}
126
127 }); // goog.scope
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698