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

Side by Side Diff: headless/public/headless_devtools_client.h

Issue 1805983002: headless: Implement client API generation (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Make PendingMessage moveable 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
OLDNEW
(Empty)
1 // Copyright 2016 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 #ifndef HEADLESS_PUBLIC_HEADLESS_DEVTOOLS_CLIENT_H_
6 #define HEADLESS_PUBLIC_HEADLESS_DEVTOOLS_CLIENT_H_
7
8 #include <memory>
9
10 #include "base/macros.h"
11 #include "headless/public/headless_export.h"
12
13 namespace headless {
14
15 namespace accessibility {
16 class Domain;
17 }
18 namespace animation {
19 class Domain;
20 }
21 namespace application_cache {
22 class Domain;
23 }
24 namespace cache_storage {
25 class Domain;
26 }
27 namespace console {
28 class Domain;
29 }
30 namespace css {
31 class Domain;
32 }
33 namespace database {
34 class Domain;
35 }
36 namespace debugger {
37 class Domain;
38 }
39 namespace device_orientation {
40 class Domain;
41 }
42 namespace dom {
43 class Domain;
44 }
45 namespace dom_debugger {
46 class Domain;
47 }
48 namespace dom_storage {
49 class Domain;
50 }
51 namespace emulation {
52 class Domain;
53 }
54 namespace heap_profiler {
55 class Domain;
56 }
57 namespace indexeddb {
58 class Domain;
59 }
60 namespace input {
61 class Domain;
62 }
63 namespace inspector {
64 class Domain;
65 }
66 namespace io {
67 class Domain;
68 }
69 namespace layer_tree {
70 class Domain;
71 }
72 namespace memory {
73 class Domain;
74 }
75 namespace network {
76 class Domain;
77 }
78 namespace page {
79 class Domain;
80 }
81 namespace profiler {
82 class Domain;
83 }
84 namespace rendering {
85 class Domain;
86 }
87 namespace runtime {
88 class Domain;
89 }
90 namespace security {
91 class Domain;
92 }
93 namespace service_worker {
94 class Domain;
95 }
96 namespace tracing {
97 class Domain;
98 }
99 namespace worker {
100 class Domain;
101 }
102
103 // An interface for controlling and receiving events from a devtools target.
104 class HEADLESS_EXPORT HeadlessDevToolsClient {
105 public:
106 virtual ~HeadlessDevToolsClient() {}
107
108 static std::unique_ptr<HeadlessDevToolsClient> Create();
109
110 // DevTools commands are split into domains which corresponds to the getters
111 // below. Each domain can be used to send commands and to subscribe to events.
112 //
113 // See http://chromedevtools.github.io/debugger-protocol-viewer/ for
114 // the capabilities of each domain.
115 virtual accessibility::Domain* GetAccessibility() = 0;
116 virtual animation::Domain* GetAnimation() = 0;
117 virtual application_cache::Domain* GetApplicationCache() = 0;
118 virtual cache_storage::Domain* GetCacheStorage() = 0;
119 virtual console::Domain* GetConsole() = 0;
120 virtual css::Domain* GetCSS() = 0;
121 virtual database::Domain* GetDatabase() = 0;
122 virtual debugger::Domain* GetDebugger() = 0;
123 virtual device_orientation::Domain* GetDeviceOrientation() = 0;
124 virtual dom::Domain* GetDOM() = 0;
125 virtual dom_debugger::Domain* GetDOMDebugger() = 0;
126 virtual dom_storage::Domain* GetDOMStorage() = 0;
127 virtual emulation::Domain* GetEmulation() = 0;
128 virtual heap_profiler::Domain* GetHeapProfiler() = 0;
129 virtual indexeddb::Domain* GetIndexedDB() = 0;
130 virtual input::Domain* GetInput() = 0;
131 virtual inspector::Domain* GetInspector() = 0;
132 virtual io::Domain* GetIO() = 0;
133 virtual layer_tree::Domain* GetLayerTree() = 0;
134 virtual memory::Domain* GetMemory() = 0;
135 virtual network::Domain* GetNetwork() = 0;
136 virtual page::Domain* GetPage() = 0;
137 virtual profiler::Domain* GetProfiler() = 0;
138 virtual rendering::Domain* GetRendering() = 0;
139 virtual runtime::Domain* GetRuntime() = 0;
140 virtual security::Domain* GetSecurity() = 0;
141 virtual service_worker::Domain* GetServiceWorker() = 0;
142 virtual tracing::Domain* GetTracing() = 0;
143 virtual worker::Domain* GetWorker() = 0;
144
145 // TODO(skyostil): Add notification for disconnection.
146
147 private:
148 friend class HeadlessDevToolsClientImpl;
149
150 HeadlessDevToolsClient() {}
151
152 DISALLOW_COPY_AND_ASSIGN(HeadlessDevToolsClient);
153 };
154
155 } // namespace headless
156
157 #endif // HEADLESS_PUBLIC_HEADLESS_DEVTOOLS_CLIENT_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698