c214f740608983cd630f7fba5932dce4dbc47f61
[WebKit-https.git] / WebCore / inspector / Inspector.idl
1 /*
2  * Copyright (C) 2007, 2008 Apple Inc. All rights reserved.
3  * Copyright (C) 2008 Matt Lilek <webkit@mattlilek.com>
4  * Copyright (C) 2009, 2010 Google Inc. 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 are
8  * met:
9  *
10  *     * Redistributions of source code must retain the above copyright
11  * notice, this list of conditions and the following disclaimer.
12  *     * Redistributions in binary form must reproduce the above
13  * copyright notice, this list of conditions and the following disclaimer
14  * in the documentation and/or other materials provided with the
15  * distribution.
16  *     * Neither the name of Google Inc. nor the names of its
17  * contributors may be used to endorse or promote products derived from
18  * this software without specific prior written permission.
19  *
20  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
21  * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
22  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
23  * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
24  * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
25  * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
26  * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
27  * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
28  * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
29  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
30  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
31  */
32
33 module core {
34     interface [Conditional=INSPECTOR] Inspector {
35         [notify, domain=Timeline] void addRecordToTimeline(out Object record);
36         [notify] void addNodesToSearchResult(out Array nodeIds);
37         [notify, domain=DOM] void attributesUpdated(out long id, out Array attributes);
38         [notify] void bringToFront();
39         [notify, domain=DOM] void characterDataModified(out long id, out String newValue);
40         [notify, domain=DOM] void childNodeCountUpdated(out long id, out int newValue);
41         [notify, domain=DOM] void childNodeInserted(out long parentId, out long prevId, out Object node);
42         [notify, domain=DOM] void childNodeRemoved(out long parentId, out long id);
43         [notify] void didCommitLoad();
44         [notify] void evaluateForTestInFrontend(out long testCallId, out String script);
45         [notify] void disconnectFromBackend();
46         [notify] void domContentEventFired(out double time);
47         [notify] void inspectedURLChanged(out String url);
48         [notify] void loadEventFired(out double time);
49         [notify] void reset();
50         [notify] void resetProfilesPanel();
51         [notify, domain=DOM] void setChildNodes(out long parentId, out Array nodes);
52         [notify, domain=DOM] void setDetachedRoot(out Object root);
53         [notify, domain=DOM] void setDocument(out Value root);
54         [notify] void showPanel(out String panel);
55         [notify, domain=Timeline] void timelineProfilerWasStarted();
56         [notify, domain=Timeline] void timelineProfilerWasStopped();
57         [notify] void updateFocusedNode(out long nodeId);
58
59 #if defined(ENABLE_JAVASCRIPT_DEBUGGER) && ENABLE_JAVASCRIPT_DEBUGGER
60         [notify] void addProfileHeader(out Object header);
61         [notify] void addHeapSnapshotChunk(out unsigned long uid, out String chunk);
62         [notify] void attachDebuggerWhenShown();
63         [notify] void debuggerWasEnabled();
64         [notify] void debuggerWasDisabled();
65         [notify] void failedToParseScriptSource(out String url, out String data, out int firstLine, out int errorLine, out String errorMessage);
66         [notify] void finishHeapSnapshot(out unsigned long uid);
67         [notify] void parsedScriptSource(out String sourceID, out String url, out String data, out int firstLine, out int scriptWorldType);
68         [notify] void pausedScript(out Object details);
69         [notify] void profilerWasEnabled();
70         [notify] void profilerWasDisabled();
71         [notify] void restoredBreakpoint(out String sourceID, out String url, out int line, out boolean enabled, out String condition);
72         [notify] void resumedScript();
73         [notify] void setRecordingProfile(out boolean isProfiling);
74         [notify] void updatePauseOnExceptionsState(out long state);
75 #endif
76 #if defined(ENABLE_DATABASE) && ENABLE_DATABASE
77         [notify] void addDatabase(out Object database);
78         [notify] void selectDatabase(out int databaseId);
79 #endif
80 #if defined(ENABLE_DOM_STORAGE) && ENABLE_DOM_STORAGE
81         [notify] void addDOMStorage(out Object storage);
82         [notify] void updateDOMStorage(out int storageId);
83         [notify] void selectDOMStorage(out int storageId);
84 #endif
85 #if defined(ENABLE_OFFLINE_WEB_APPLICATIONS) && ENABLE_OFFLINE_WEB_APPLICATIONS
86         [notify] void updateApplicationCacheStatus(out int status);
87         [notify] void updateNetworkState(out boolean isNowOnline);
88 #endif
89 #if defined(ENABLE_WORKERS) && ENABLE_WORKERS
90         [notify] void didCreateWorker(out long id, out String url, out boolean isShared);
91         [notify] void didDestroyWorker(out long id);
92 #endif
93
94         // This method is going to be broken down into smaller parts.
95         [domain=Inspector] void populateScriptObjects();
96
97         [domain=Inspector] void getInspectorState(out Object state);
98
99         [domain=Inspector] void setSearchingForNode(in boolean enabled, out boolean newState);
100
101         [domain=Inspector] void setMonitoringXHREnabled(in boolean enable, out boolean newState);
102
103         [domain=Inspector] void reloadPage();
104
105         [domain=Inspector] void startTimelineProfiler();
106         [domain=Inspector] void stopTimelineProfiler();
107
108         [domain=Resources] void cachedResources(out Object resources);
109         [domain=Resources] void resourceContent(in unsigned long frameId, in String url, in boolean base64Encode, out String content);
110         [notify] void identifierForInitialRequest(out long identifier, out String url, out Object loader, out Value callStack);
111         [notify] void willSendRequest(out long identifier, out double time, out Object request, out Object redirectResponse);
112         [notify] void markResourceAsCached(out long identifier);
113         [notify] void didReceiveResponse(out long identifier, out double time, out String resourceType, out Object response);
114         [notify] void didReceiveContentLength(out long identifier, out double time, out long lengthReceived);
115         [notify] void didFinishLoading(out long identifier, out double finishTime);
116         [notify] void didFailLoading(out long identifier, out double time, out String localizedDescription);
117         [notify] void didLoadResourceFromMemoryCache(out double time, out Object resource);
118         [notify] void setInitialContent(out long identifier, out String sourceString, out String type);
119         [notify] void didCommitLoadForFrame(out Object frame, out Object loader);
120         [notify] void frameDetachedFromParent(out unsigned long frameId);
121
122         [notify] void didCreateWebSocket(out unsigned long identifier, out String requestURL);
123         [notify] void willSendWebSocketHandshakeRequest(out unsigned long identifier, out double time, out Object request);
124         [notify] void didReceiveWebSocketHandshakeResponse(out unsigned long identifier, out double time, out Object response);
125         [notify] void didCloseWebSocket(out unsigned long identifier, out double time);
126
127 #if defined(ENABLE_JAVASCRIPT_DEBUGGER) && ENABLE_JAVASCRIPT_DEBUGGER
128         [domain=Backend] void enableDebugger(in boolean always);
129         [domain=Inspector] void disableDebugger(in boolean always);
130
131         [domain=Debugger] void setBreakpoint(in String sourceID, in unsigned int lineNumber, in boolean enabled, in String condition, out boolean success, out unsigned int actualLineNumber);
132         [domain=Debugger] void removeBreakpoint(in String sourceID, in unsigned long lineNumber);
133         [domain=Debugger] void activateBreakpoints();
134         [domain=Debugger] void deactivateBreakpoints();
135
136         [domain=Debugger] void pause();
137         [domain=Debugger] void resume();
138
139         [domain=Debugger] void stepOverStatement();
140         [domain=Debugger] void stepIntoStatement();
141         [domain=Debugger] void stepOutOfFunction();
142
143         [domain=Debugger] void setPauseOnExceptionsState(in long pauseOnExceptionsState, out long newState);
144
145         [domain=Debugger] void editScriptSource(in String sourceID, in String newContent, out boolean success, out String result, out Value newCallFrames);
146         [domain=Debugger] void getScriptSource(in String sourceID, out String scriptSource);
147
148         [domain=DOM] void setDOMBreakpoint(in long nodeId, in long type);
149         [domain=DOM] void removeDOMBreakpoint(in long nodeId, in long type);
150         [domain=Inspector] void setEventListenerBreakpoint(in String eventName);
151         [domain=Inspector] void removeEventListenerBreakpoint(in String eventName);
152         [domain=Inspector] void setXHRBreakpoint(in String url);
153         [domain=Inspector] void removeXHRBreakpoint(in String url);
154
155         [domain=Inspector] void enableProfiler(in boolean always);
156         [domain=Inspector] void disableProfiler(in boolean always);
157
158         [domain=Inspector] void startProfiling();
159         [domain=Inspector] void stopProfiling();
160
161         [domain=Profiler] void getProfileHeaders(out Array headers);
162         [domain=Profiler] void getProfile(in String type, in unsigned long uid, out Object profile);
163
164         [domain=Profiler] void removeProfile(in String type, in unsigned long uid);
165         [domain=Profiler] void clearProfiles();
166
167         [domain=Profiler] void takeHeapSnapshot();
168 #endif
169         [domain=Backend] void setInjectedScriptSource(in String scriptSource);
170         [domain=Backend] void dispatchOnInjectedScript(in long injectedScriptId, in String methodName, in String arguments, out Value result, out boolean isException);
171         [domain=Inspector] void addScriptToEvaluateOnLoad(in String scriptSource);
172         [domain=Inspector] void removeAllScriptsToEvaluateOnLoad();
173
174         [domain=DOM] void getChildNodes(in long nodeId);
175         [domain=DOM] void setAttribute(in long elementId, in String name, in String value, out boolean success);
176         [domain=DOM] void removeAttribute(in long elementId, in String name, out boolean success);
177         [domain=DOM] void setTextNodeValue(in long nodeId, in String value, out boolean success);
178         [domain=DOM] void getEventListenersForNode(in long nodeId, out long outNodeId, out Array listenersArray);
179         [domain=DOM] void copyNode(in long nodeId);
180         [domain=DOM] void removeNode(in long nodeId, out long outNodeId);
181         [domain=DOM] void changeTagName(in long nodeId, in String newTagName, out long outNodeId);
182         [domain=DOM] void getOuterHTML(in long nodeId, out String outerHTML);
183         [domain=DOM] void setOuterHTML(in long nodeId, in String outerHTML, out long outNodeId);
184         [domain=DOM] void addInspectedNode(in long nodeId);
185         [domain=DOM] void performSearch(in String query, in boolean runSynchronously);
186         [domain=DOM] void searchCanceled();
187         [domain=DOM] void pushNodeByPathToFrontend(in String path, out long nodeId);
188
189         [domain=Inspector] void setConsoleMessagesEnabled(in boolean enabled, out boolean newState);
190         [notify] void addConsoleMessage(out Object messageObj);
191         [notify] void updateConsoleMessageExpiredCount(out unsigned long count);
192         [notify] void updateConsoleMessageRepeatCount(out unsigned long count);
193
194         [domain=Inspector] void clearConsoleMessages();
195         [notify] void consoleMessagesCleared();
196
197         [domain=Inspector] void highlightDOMNode(in long nodeId);
198         [domain=Inspector] void hideDOMNodeHighlight();
199         [domain=Inspector] void openInInspectedWindow(in String url);
200
201         [domain=Inspector] void highlightFrame(in unsigned long frameId);
202         [domain=Inspector] void hideFrameHighlight();
203
204         [domain=CSS] void getStylesForNode2(in long nodeId, out Value styles);
205         [domain=CSS] void getComputedStyleForNode2(in long nodeId, out Value style);
206         [domain=CSS] void getInlineStyleForNode2(in long nodeId, out Value style);
207         [domain=CSS] void getAllStyles2(out Array styleSheetIds);
208         [domain=CSS] void getStyleSheet2(in String styleSheetId, out Value styleSheet);
209         [domain=CSS] void getStyleSheetText2(in String styleSheetId, out String url, out String text);
210         [domain=CSS] void setStyleSheetText2(in String styleSheetId, in String text, out boolean success);
211         [domain=CSS] void setPropertyText2(in Object styleId, in long propertyIndex, in String text, in boolean overwrite, out Value style);
212         [domain=CSS] void toggleProperty2(in Object styleId, in long propertyIndex, in boolean disable, out Value style);
213         [domain=CSS] void setRuleSelector2(in Object ruleId, in String selector, out Value rule);
214         [domain=CSS] void addRule2(in long contextNodeId, in String selector, out Value rule);
215         [domain=CSS] void getSupportedCSSProperties(out Array cssProperties);
216         [domain=CSS] void querySelectorAll(in long documentId, in String selector, out Array result);
217
218         [domain=Inspector] void getCookies(out Array cookies, out String cookiesString);
219         [domain=Inspector] void deleteCookie(in String cookieName, in String domain);
220
221 #if defined(ENABLE_OFFLINE_WEB_APPLICATIONS) && ENABLE_OFFLINE_WEB_APPLICATIONS
222         [domain=ApplicationCache] void getApplicationCaches(out Value applicationCaches);
223 #endif
224
225 #if defined(ENABLE_FILE_SYSTEM) && ENABLE_FILE_SYSTEM
226         [domain=FileSystem] void getFileSystemPathAsync(in unsigned int type, in String origin);
227         [domain=FileSystem] void revealFolderInOS(in String path);
228         [notify] void didGetFileSystemPath(out String root, out int type, out String origin);
229         [notify] void didGetFileSystemError(out int type, out String origin);
230         [notify] void didGetFileSystemDisabled();
231 #endif
232
233         [domain=Backend] void releaseWrapperObjectGroup(in long injectedScriptId, in String objectGroup);
234         [domain=Inspector] void didEvaluateForTestInFrontend(in long testCallId, in String jsonResult);
235
236 #if defined(ENABLE_DATABASE) && ENABLE_DATABASE
237         [domain=Backend] void getDatabaseTableNames(in long databaseId, out Array tableNames);
238         [domain=Backend] void executeSQL(in long databaseId, in String query, out boolean success, out long transactionId);
239         [notify] void sqlTransactionSucceeded(out long transactionId, out Value columnNames, out Value values);
240         [notify] void sqlTransactionFailed(out long transactionId, out Value sqlError);
241 #endif
242
243 #if defined(ENABLE_DOM_STORAGE) && ENABLE_DOM_STORAGE
244         [domain=Inspector] void getDOMStorageEntries(in long storageId, out Array entries);
245         [domain=Inspector] void setDOMStorageItem(in long storageId, in String key, in String value, out boolean success);
246         [domain=Inspector] void removeDOMStorageItem(in long storageId, in String key, out boolean success);
247 #endif
248     };
249 }