1/*
2 * Copyright (C) 2013 Google Inc. All rights reserved.
3 * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
4 * Copyright (C) 2014 University of Washington. All rights reserved.
5 *
6 * Redistribution and use in source and binary forms, with or without
7 * modification, are permitted provided that the following conditions
8 * are met:
9 * 1. Redistributions of source code must retain the above copyright
10 * notice, this list of conditions and the following disclaimer.
11 * 2. Redistributions in binary form must reproduce the above copyright
12 * notice, this list of conditions and the following disclaimer in the
13 * documentation and/or other materials provided with the distribution.
14 *
15 * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
16 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
17 * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
18 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
19 * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
20 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
21 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
22 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
23 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
24 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
25 * THE POSSIBILITY OF SUCH DAMAGE.
26 */
27
28// DO NOT EDIT THIS FILE. It is automatically generated from CombinedDomains.json
29// by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
30
31#pragma once
32
33#include "InspectorProtocolObjects.h"
34#include <wtf/JSONValues.h>
35#include <wtf/text/WTFString.h>
36
37namespace Inspector {
38
39class FrontendRouter;
40
41class JS_EXPORT_PRIVATE ApplicationCacheFrontendDispatcher {
42 WTF_MAKE_FAST_ALLOCATED;
43public:
44 ApplicationCacheFrontendDispatcher(FrontendRouter& frontendRouter) : m_frontendRouter(frontendRouter) { }
45 void applicationCacheStatusUpdated(const String& frameId, const String& manifestURL, int status);
46 void networkStateUpdated(bool isNowOnline);
47private:
48 FrontendRouter& m_frontendRouter;
49};
50
51#if ENABLE(RESOURCE_USAGE)
52class JS_EXPORT_PRIVATE CPUProfilerFrontendDispatcher {
53 WTF_MAKE_FAST_ALLOCATED;
54public:
55 CPUProfilerFrontendDispatcher(FrontendRouter& frontendRouter) : m_frontendRouter(frontendRouter) { }
56 void trackingStart(double timestamp);
57 void trackingUpdate(RefPtr<Inspector::Protocol::CPUProfiler::Event> event);
58 void trackingComplete(double timestamp);
59private:
60 FrontendRouter& m_frontendRouter;
61};
62#endif // ENABLE(RESOURCE_USAGE)
63
64class JS_EXPORT_PRIVATE CSSFrontendDispatcher {
65 WTF_MAKE_FAST_ALLOCATED;
66public:
67 CSSFrontendDispatcher(FrontendRouter& frontendRouter) : m_frontendRouter(frontendRouter) { }
68 void mediaQueryResultChanged();
69 void styleSheetChanged(const String& styleSheetId);
70 void styleSheetAdded(RefPtr<Inspector::Protocol::CSS::CSSStyleSheetHeader> header);
71 void styleSheetRemoved(const String& styleSheetId);
72private:
73 FrontendRouter& m_frontendRouter;
74};
75
76class JS_EXPORT_PRIVATE CanvasFrontendDispatcher {
77 WTF_MAKE_FAST_ALLOCATED;
78public:
79 CanvasFrontendDispatcher(FrontendRouter& frontendRouter) : m_frontendRouter(frontendRouter) { }
80 void canvasAdded(RefPtr<Inspector::Protocol::Canvas::Canvas> canvas);
81 void canvasRemoved(const String& canvasId);
82 void canvasMemoryChanged(const String& canvasId, double memoryCost);
83 void extensionEnabled(const String& canvasId, const String& extension);
84 void cssCanvasClientNodesChanged(const String& canvasId);
85 // Named after parameter 'initiator' while generating command/event recordingStarted.
86 enum class Initiator {
87 Frontend = 153,
88 Console = 154,
89 AutoCapture = 155,
90 }; // enum class Initiator
91 void recordingStarted(const String& canvasId, Inspector::Protocol::Recording::Initiator initiator);
92 void recordingProgress(const String& canvasId, RefPtr<JSON::ArrayOf<Inspector::Protocol::Recording::Frame>> frames, int bufferUsed);
93 void recordingFinished(const String& canvasId, RefPtr<Inspector::Protocol::Recording::Recording> recording);
94 void programCreated(const String& canvasId, const String& programId);
95 void programDeleted(const String& programId);
96private:
97 FrontendRouter& m_frontendRouter;
98};
99
100class JS_EXPORT_PRIVATE ConsoleFrontendDispatcher {
101 WTF_MAKE_FAST_ALLOCATED;
102public:
103 ConsoleFrontendDispatcher(FrontendRouter& frontendRouter) : m_frontendRouter(frontendRouter) { }
104 void messageAdded(RefPtr<Inspector::Protocol::Console::ConsoleMessage> message);
105 void messageRepeatCountUpdated(int count);
106 void messagesCleared();
107 void heapSnapshot(double timestamp, const String& snapshotData, const String* title);
108private:
109 FrontendRouter& m_frontendRouter;
110};
111
112class JS_EXPORT_PRIVATE DOMFrontendDispatcher {
113 WTF_MAKE_FAST_ALLOCATED;
114public:
115 DOMFrontendDispatcher(FrontendRouter& frontendRouter) : m_frontendRouter(frontendRouter) { }
116 void documentUpdated();
117 void inspect(int nodeId);
118 void setChildNodes(int parentId, RefPtr<JSON::ArrayOf<Inspector::Protocol::DOM::Node>> nodes);
119 void attributeModified(int nodeId, const String& name, const String& value);
120 void attributeRemoved(int nodeId, const String& name);
121 void inlineStyleInvalidated(RefPtr<JSON::ArrayOf<int>> nodeIds);
122 void characterDataModified(int nodeId, const String& characterData);
123 void childNodeCountUpdated(int nodeId, int childNodeCount);
124 void childNodeInserted(int parentNodeId, int previousNodeId, RefPtr<Inspector::Protocol::DOM::Node> node);
125 void childNodeRemoved(int parentNodeId, int nodeId);
126 void shadowRootPushed(int hostId, RefPtr<Inspector::Protocol::DOM::Node> root);
127 void shadowRootPopped(int hostId, int rootId);
128 // Named after parameter 'customElementState' while generating command/event customElementStateChanged.
129 enum class CustomElementState {
130 Builtin = 71,
131 Custom = 72,
132 Waiting = 73,
133 Failed = 74,
134 }; // enum class CustomElementState
135 void customElementStateChanged(int nodeId, Inspector::Protocol::DOM::CustomElementState customElementState);
136 void pseudoElementAdded(int parentId, RefPtr<Inspector::Protocol::DOM::Node> pseudoElement);
137 void pseudoElementRemoved(int parentId, int pseudoElementId);
138 void didAddEventListener(int nodeId);
139 void willRemoveEventListener(int nodeId);
140 void didFireEvent(int nodeId, const String& eventName, double timestamp, RefPtr<JSON::Object> data);
141 void powerEfficientPlaybackStateChanged(int nodeId, double timestamp, bool isPowerEfficient);
142private:
143 FrontendRouter& m_frontendRouter;
144};
145
146class JS_EXPORT_PRIVATE DOMStorageFrontendDispatcher {
147 WTF_MAKE_FAST_ALLOCATED;
148public:
149 DOMStorageFrontendDispatcher(FrontendRouter& frontendRouter) : m_frontendRouter(frontendRouter) { }
150 void domStorageItemsCleared(RefPtr<Inspector::Protocol::DOMStorage::StorageId> storageId);
151 void domStorageItemRemoved(RefPtr<Inspector::Protocol::DOMStorage::StorageId> storageId, const String& key);
152 void domStorageItemAdded(RefPtr<Inspector::Protocol::DOMStorage::StorageId> storageId, const String& key, const String& newValue);
153 void domStorageItemUpdated(RefPtr<Inspector::Protocol::DOMStorage::StorageId> storageId, const String& key, const String& oldValue, const String& newValue);
154private:
155 FrontendRouter& m_frontendRouter;
156};
157
158class JS_EXPORT_PRIVATE DatabaseFrontendDispatcher {
159 WTF_MAKE_FAST_ALLOCATED;
160public:
161 DatabaseFrontendDispatcher(FrontendRouter& frontendRouter) : m_frontendRouter(frontendRouter) { }
162 void addDatabase(RefPtr<Inspector::Protocol::Database::Database> database);
163private:
164 FrontendRouter& m_frontendRouter;
165};
166
167class JS_EXPORT_PRIVATE DebuggerFrontendDispatcher {
168 WTF_MAKE_FAST_ALLOCATED;
169public:
170 DebuggerFrontendDispatcher(FrontendRouter& frontendRouter) : m_frontendRouter(frontendRouter) { }
171 void globalObjectCleared();
172 void scriptParsed(const String& scriptId, const String& url, int startLine, int startColumn, int endLine, int endColumn, const bool* isContentScript, const String* sourceURL, const String* sourceMapURL, const bool* module);
173 void scriptFailedToParse(const String& url, const String& scriptSource, int startLine, int errorLine, const String& errorMessage);
174 void breakpointResolved(const String& breakpointId, RefPtr<Inspector::Protocol::Debugger::Location> location);
175 // Named after parameter 'reason' while generating command/event paused.
176 enum class Reason {
177 XHR = 127,
178 Fetch = 128,
179 DOM = 206,
180 AnimationFrame = 207,
181 EventListener = 208,
182 Timer = 209,
183 Exception = 210,
184 Assert = 64,
185 CSPViolation = 211,
186 DebuggerStatement = 212,
187 Breakpoint = 213,
188 PauseOnNextStatement = 214,
189 Other = 47,
190 }; // enum class Reason
191 void paused(RefPtr<JSON::ArrayOf<Inspector::Protocol::Debugger::CallFrame>> callFrames, Reason reason, RefPtr<JSON::Object> data, RefPtr<Inspector::Protocol::Console::StackTrace> asyncStackTrace);
192 void resumed();
193 void didSampleProbe(RefPtr<Inspector::Protocol::Debugger::ProbeSample> sample);
194 void playBreakpointActionSound(int breakpointActionId);
195private:
196 FrontendRouter& m_frontendRouter;
197};
198
199class JS_EXPORT_PRIVATE HeapFrontendDispatcher {
200 WTF_MAKE_FAST_ALLOCATED;
201public:
202 HeapFrontendDispatcher(FrontendRouter& frontendRouter) : m_frontendRouter(frontendRouter) { }
203 void garbageCollected(RefPtr<Inspector::Protocol::Heap::GarbageCollection> collection);
204 void trackingStart(double timestamp, const String& snapshotData);
205 void trackingComplete(double timestamp, const String& snapshotData);
206private:
207 FrontendRouter& m_frontendRouter;
208};
209
210class JS_EXPORT_PRIVATE InspectorFrontendDispatcher {
211 WTF_MAKE_FAST_ALLOCATED;
212public:
213 InspectorFrontendDispatcher(FrontendRouter& frontendRouter) : m_frontendRouter(frontendRouter) { }
214 void evaluateForTestInFrontend(const String& script);
215 void inspect(RefPtr<Inspector::Protocol::Runtime::RemoteObject> object, RefPtr<JSON::Object> hints);
216 void activateExtraDomains(RefPtr<JSON::ArrayOf<String>> domains);
217private:
218 FrontendRouter& m_frontendRouter;
219};
220
221class JS_EXPORT_PRIVATE LayerTreeFrontendDispatcher {
222 WTF_MAKE_FAST_ALLOCATED;
223public:
224 LayerTreeFrontendDispatcher(FrontendRouter& frontendRouter) : m_frontendRouter(frontendRouter) { }
225 void layerTreeDidChange();
226private:
227 FrontendRouter& m_frontendRouter;
228};
229
230#if ENABLE(RESOURCE_USAGE)
231class JS_EXPORT_PRIVATE MemoryFrontendDispatcher {
232 WTF_MAKE_FAST_ALLOCATED;
233public:
234 MemoryFrontendDispatcher(FrontendRouter& frontendRouter) : m_frontendRouter(frontendRouter) { }
235 // Named after parameter 'severity' while generating command/event memoryPressure.
236 enum class Severity {
237 Critical = 215,
238 NonCritical = 216,
239 }; // enum class Severity
240 void memoryPressure(double timestamp, Severity severity);
241 void trackingStart(double timestamp);
242 void trackingUpdate(RefPtr<Inspector::Protocol::Memory::Event> event);
243 void trackingComplete(double timestamp);
244private:
245 FrontendRouter& m_frontendRouter;
246};
247#endif // ENABLE(RESOURCE_USAGE)
248
249class JS_EXPORT_PRIVATE NetworkFrontendDispatcher {
250 WTF_MAKE_FAST_ALLOCATED;
251public:
252 NetworkFrontendDispatcher(FrontendRouter& frontendRouter) : m_frontendRouter(frontendRouter) { }
253 // Named after parameter 'type' while generating command/event requestWillBeSent.
254 enum class Type {
255 Document = 122,
256 Stylesheet = 123,
257 Image = 124,
258 Font = 125,
259 Script = 126,
260 XHR = 127,
261 Fetch = 128,
262 Ping = 129,
263 Beacon = 130,
264 WebSocket = 131,
265 Other = 132,
266 }; // enum class Type
267 void requestWillBeSent(const String& requestId, const String& frameId, const String& loaderId, const String& documentURL, RefPtr<Inspector::Protocol::Network::Request> request, double timestamp, double walltime, RefPtr<Inspector::Protocol::Network::Initiator> initiator, RefPtr<Inspector::Protocol::Network::Response> redirectResponse, Inspector::Protocol::Page::ResourceType* type, const String* targetId);
268 void responseReceived(const String& requestId, const String& frameId, const String& loaderId, double timestamp, Inspector::Protocol::Page::ResourceType type, RefPtr<Inspector::Protocol::Network::Response> response);
269 void dataReceived(const String& requestId, double timestamp, int dataLength, int encodedDataLength);
270 void loadingFinished(const String& requestId, double timestamp, const String* sourceMapURL, RefPtr<Inspector::Protocol::Network::Metrics> metrics);
271 void loadingFailed(const String& requestId, double timestamp, const String& errorText, const bool* canceled);
272 void requestServedFromMemoryCache(const String& requestId, const String& frameId, const String& loaderId, const String& documentURL, double timestamp, RefPtr<Inspector::Protocol::Network::Initiator> initiator, RefPtr<Inspector::Protocol::Network::CachedResource> resource);
273 void webSocketWillSendHandshakeRequest(const String& requestId, double timestamp, double walltime, RefPtr<Inspector::Protocol::Network::WebSocketRequest> request);
274 void webSocketHandshakeResponseReceived(const String& requestId, double timestamp, RefPtr<Inspector::Protocol::Network::WebSocketResponse> response);
275 void webSocketCreated(const String& requestId, const String& url);
276 void webSocketClosed(const String& requestId, double timestamp);
277 void webSocketFrameReceived(const String& requestId, double timestamp, RefPtr<Inspector::Protocol::Network::WebSocketFrame> response);
278 void webSocketFrameError(const String& requestId, double timestamp, const String& errorMessage);
279 void webSocketFrameSent(const String& requestId, double timestamp, RefPtr<Inspector::Protocol::Network::WebSocketFrame> response);
280private:
281 FrontendRouter& m_frontendRouter;
282};
283
284class JS_EXPORT_PRIVATE PageFrontendDispatcher {
285 WTF_MAKE_FAST_ALLOCATED;
286public:
287 PageFrontendDispatcher(FrontendRouter& frontendRouter) : m_frontendRouter(frontendRouter) { }
288 void domContentEventFired(double timestamp);
289 void loadEventFired(double timestamp);
290 void frameNavigated(RefPtr<Inspector::Protocol::Page::Frame> frame);
291 void frameDetached(const String& frameId);
292 void frameStartedLoading(const String& frameId);
293 void frameStoppedLoading(const String& frameId);
294 void frameScheduledNavigation(const String& frameId, double delay);
295 void frameClearedScheduledNavigation(const String& frameId);
296 // Named after parameter 'appearance' while generating command/event defaultAppearanceDidChange.
297 enum class Appearance {
298 Light = 148,
299 Dark = 149,
300 }; // enum class Appearance
301 void defaultAppearanceDidChange(Inspector::Protocol::Page::Appearance appearance);
302private:
303 FrontendRouter& m_frontendRouter;
304};
305
306class JS_EXPORT_PRIVATE RuntimeFrontendDispatcher {
307 WTF_MAKE_FAST_ALLOCATED;
308public:
309 RuntimeFrontendDispatcher(FrontendRouter& frontendRouter) : m_frontendRouter(frontendRouter) { }
310 void executionContextCreated(RefPtr<Inspector::Protocol::Runtime::ExecutionContextDescription> context);
311private:
312 FrontendRouter& m_frontendRouter;
313};
314
315class JS_EXPORT_PRIVATE ScriptProfilerFrontendDispatcher {
316 WTF_MAKE_FAST_ALLOCATED;
317public:
318 ScriptProfilerFrontendDispatcher(FrontendRouter& frontendRouter) : m_frontendRouter(frontendRouter) { }
319 void trackingStart(double timestamp);
320 void trackingUpdate(RefPtr<Inspector::Protocol::ScriptProfiler::Event> event);
321 void trackingComplete(double timestamp, RefPtr<Inspector::Protocol::ScriptProfiler::Samples> samples);
322private:
323 FrontendRouter& m_frontendRouter;
324};
325
326class JS_EXPORT_PRIVATE TargetFrontendDispatcher {
327 WTF_MAKE_FAST_ALLOCATED;
328public:
329 TargetFrontendDispatcher(FrontendRouter& frontendRouter) : m_frontendRouter(frontendRouter) { }
330 void targetCreated(RefPtr<Inspector::Protocol::Target::TargetInfo> targetInfo);
331 void targetDestroyed(const String& targetId);
332 void dispatchMessageFromTarget(const String& targetId, const String& message);
333private:
334 FrontendRouter& m_frontendRouter;
335};
336
337class JS_EXPORT_PRIVATE TimelineFrontendDispatcher {
338 WTF_MAKE_FAST_ALLOCATED;
339public:
340 TimelineFrontendDispatcher(FrontendRouter& frontendRouter) : m_frontendRouter(frontendRouter) { }
341 void eventRecorded(RefPtr<Inspector::Protocol::Timeline::TimelineEvent> record);
342 void recordingStarted(double startTime);
343 void recordingStopped(double endTime);
344 void autoCaptureStarted();
345private:
346 FrontendRouter& m_frontendRouter;
347};
348
349class JS_EXPORT_PRIVATE WorkerFrontendDispatcher {
350 WTF_MAKE_FAST_ALLOCATED;
351public:
352 WorkerFrontendDispatcher(FrontendRouter& frontendRouter) : m_frontendRouter(frontendRouter) { }
353 void workerCreated(const String& workerId, const String& url);
354 void workerTerminated(const String& workerId);
355 void dispatchMessageFromWorker(const String& workerId, const String& message);
356private:
357 FrontendRouter& m_frontendRouter;
358};
359
360} // namespace Inspector
361