| /* |
| * Copyright (C) 2013 Google Inc. All rights reserved. |
| * |
| * Redistribution and use in source and binary forms, with or without |
| * modification, are permitted provided that the following conditions are |
| * met: |
| * |
| * * Redistributions of source code must retain the above copyright |
| * notice, this list of conditions and the following disclaimer. |
| * * Redistributions in binary form must reproduce the above |
| * copyright notice, this list of conditions and the following disclaimer |
| * in the documentation and/or other materials provided with the |
| * distribution. |
| * * Neither the name of Google Inc. nor the names of its |
| * contributors may be used to endorse or promote products derived from |
| * this software without specific prior written permission. |
| * |
| * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS |
| * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT |
| * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR |
| * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT |
| * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, |
| * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT |
| * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, |
| * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY |
| * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |
| * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE |
| * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
| */ |
| |
| /* |
| * CodeGeneratorInstrumentation.py uses this file as a source to generate |
| * InspectorInstrumentationInl.h and InspectorInstrumentationImpl.cpp |
| * |
| * The code below is not a correct IDL but a mix of IDL and C++. |
| * |
| * The syntax for an instrumentation method is as follows: |
| * |
| * [methodAttributes] returnValue methodName([paramAttr1] param1, [paramAttr2] param2, ...) |
| * |
| * Where: |
| * methodAttributes - optional list of method attributes. |
| * Attributes containing "=" are code generation options: |
| * Inline=Custom - do not generate the public inline method. |
| * Inline=FastReturn - return early from the inline method if there are no frontends. |
| * Inline=Forward - generate a simple forwarding inline method that does not |
| modify the parameter list (implies Inline=FastReturn) |
| * Attributes without "=" are the names of the agents to be invoked. |
| * Examples: DOM, Page, Debugger. |
| * |
| * paramAttr - optional attribute controlling the parameters handling (one attribute per parameter max). |
| * Keep - pass first parameter (used to access the InstrumentingAgents instance) to agents. |
| * FastReturn - return early from the inline method if this parameter is 0/false. |
| * |
| * returnValue: C++ return value. Only "void" and "InspectorInstrumentationCookie" are supported. |
| * |
| * methodName: C++ name for the public instrumentation method and agents methods. |
| * |
| * paramList: C++ parameter list with optional names. Names will be deduced from types if omitted but you have to |
| * specify explicit names for multiple parameters of the same type. |
| * |
| * Parameters with type PassRefPtr<T> are converted to raw pointers, |
| * so reference will not be passed or released until all agents are notified. |
| */ |
| |
| interface InspectorInstrumentation { |
| |
| #include "core/dom/PseudoElement.h" |
| |
| [Page, Inspector, PageDebugger, PageRuntime] |
| void didClearDocumentOfWindowObject([Keep] LocalFrame*); |
| |
| [DOMDebugger, Inline=FastReturn] |
| void willCloseWindow(ExecutionContext*); |
| |
| [DOMDebugger, Inline=FastReturn] |
| void willInsertDOMNode([Keep] Node* parent); |
| |
| [DOM, DOMDebugger, Inline=FastReturn] |
| void didInsertDOMNode([Keep] Node*); |
| |
| [DOMDebugger, DOM, Inline=FastReturn] |
| void willRemoveDOMNode([Keep] Node*); |
| |
| [DOMDebugger, DOM, Inline=FastReturn] |
| void willModifyDOMAttr([Keep] Element*, const AtomicString& oldValue, const AtomicString& newValue); |
| |
| [DOM, Inline=FastReturn] |
| void didModifyDOMAttr([Keep] Element*, const AtomicString& name, const AtomicString& value); |
| |
| [DOM, Inline=FastReturn] |
| void didRemoveDOMAttr([Keep] Element*, const AtomicString& name); |
| |
| [DOM, Inline=FastReturn] |
| void characterDataModified([Keep] CharacterData*); |
| |
| [DOM, DOMDebugger, Inline=FastReturn] |
| void didInvalidateStyleAttr([Keep] Node*); |
| |
| [CSS] |
| void documentDetached([Keep] Document*); |
| |
| [CSS, Inline=FastReturn] |
| void willMutateRules(CSSStyleSheet*); |
| |
| [CSS, Inline=FastReturn] |
| void didMutateRules([Keep] CSSStyleSheet*); |
| |
| [CSS, Inline=FastReturn] |
| void willMutateStyle(CSSStyleDeclaration*); |
| |
| [CSS, Inline=FastReturn] |
| void didMutateStyle([Keep] CSSStyleDeclaration*, bool); |
| |
| [CSS, Inline=FastReturn] |
| void activeStyleSheetsUpdated([Keep] Document*); |
| |
| [Console, PageRuntime] |
| void frameWindowDiscarded(LocalFrame*, LocalDOMWindow* domWindow); |
| |
| [CSS, Inline=FastReturn] |
| void mediaQueryResultChanged(Document*); |
| |
| [DOM, Inline=FastReturn] |
| void didPushShadowRoot([Keep] Element* host, ShadowRoot*); |
| |
| [DOM, Inline=FastReturn] |
| void willPopShadowRoot([Keep] Element* host, ShadowRoot*); |
| |
| [DOMDebugger, Inline=FastReturn] |
| void willSendXMLHttpRequest(ExecutionContext*, const String& url); |
| |
| [DOMDebugger, Inline=FastReturn] |
| void didFireWebGLError(Element*, const String& errorName); |
| |
| [DOMDebugger, Inline=FastReturn] |
| void didFireWebGLWarning(Element*); |
| |
| [DOMDebugger, Inline=FastReturn] |
| void didFireWebGLErrorOrWarning(Element*, const String& message); |
| |
| [DOMDebugger, Debugger, Timeline, Inline=FastReturn] |
| void didInstallTimer([Keep] ExecutionContext*, int timerId, int timeout, bool singleShot); |
| |
| [DOMDebugger, Debugger, Timeline, Inline=FastReturn] |
| void didRemoveTimer([Keep] ExecutionContext*, int timerId); |
| |
| [Timeline, Inline=FastReturn] |
| InspectorInstrumentationCookie willCallFunction([Keep] ExecutionContext*, int scriptId, const String& scriptName, int scriptLine); |
| |
| [Timeline, Inline=FastReturn] |
| void didCallFunction(const InspectorInstrumentationCookie&); |
| |
| [Timeline, Inline=FastReturn] |
| InspectorInstrumentationCookie willDispatchXHRReadyStateChangeEvent([Keep] ExecutionContext*, XMLHttpRequest*); |
| |
| [Timeline, Inline=FastReturn] |
| void didDispatchXHRReadyStateChangeEvent(const InspectorInstrumentationCookie&); |
| |
| [Timeline, Inline=FastReturn] |
| InspectorInstrumentationCookie willDispatchEvent([Keep] Document*, const Event&, LocalDOMWindow*, Node*, const EventPath&); |
| |
| [Timeline, Inline=FastReturn] |
| void didDispatchEvent(const InspectorInstrumentationCookie&); |
| |
| [Debugger, Inline=FastReturn] |
| void didEnqueueEvent([Keep] EventTarget*, Event*); |
| |
| [Debugger, Inline=FastReturn] |
| void didRemoveEvent([Keep] EventTarget*, Event*); |
| |
| [Debugger, DOMDebugger, Inline=FastReturn] |
| InspectorInstrumentationCookie willHandleEvent([Keep] EventTarget*, Event*, EventListener* listener, bool useCapture); |
| |
| [Debugger, Inline=FastReturn] |
| void didHandleEvent(const InspectorInstrumentationCookie&); |
| |
| [Timeline, Inline=FastReturn] |
| InspectorInstrumentationCookie willDispatchEventOnWindow(LocalFrame*, const Event&, LocalDOMWindow*); |
| |
| [Timeline, Inline=FastReturn] |
| void didDispatchEventOnWindow(const InspectorInstrumentationCookie&); |
| |
| [Debugger, Inline=FastReturn] |
| void didEnqueueMutationRecord([Keep] ExecutionContext*, MutationObserver*); |
| |
| [Debugger, Inline=FastReturn] |
| void didClearAllMutationRecords([Keep] ExecutionContext*, MutationObserver*); |
| |
| [Debugger, Inline=FastReturn] |
| void willDeliverMutationRecords([Keep] ExecutionContext*, MutationObserver*); |
| |
| [Debugger, Inline=FastReturn] |
| void didDeliverMutationRecords(ExecutionContext*); |
| |
| [Debugger, Inline=FastReturn] |
| void didPostExecutionContextTask([Keep] ExecutionContext*, ExecutionContextTask*); |
| |
| [Debugger, Inline=FastReturn] |
| void didKillAllExecutionContextTasks([Keep] ExecutionContext*); |
| |
| [Debugger, Inline=FastReturn] |
| void willPerformExecutionContextTask([Keep] ExecutionContext*, ExecutionContextTask*); |
| |
| [Debugger, Inline=FastReturn] |
| void didPerformExecutionContextTask(ExecutionContext*); |
| |
| [Timeline, Inline=FastReturn] |
| InspectorInstrumentationCookie willEvaluateScript([Keep] LocalFrame*, const String& url, int lineNumber); |
| |
| [Timeline, Inline=FastReturn] |
| void didEvaluateScript(const InspectorInstrumentationCookie&); |
| |
| [PageRuntime, Inline=FastReturn] |
| void didCreateIsolatedContext([Keep] LocalFrame*, ScriptState*, SecurityOrigin*); |
| |
| [DOMDebugger, Debugger, Timeline, Inline=FastReturn] |
| InspectorInstrumentationCookie willFireTimer([Keep] ExecutionContext*, int timerId); |
| |
| [Debugger, Timeline, Inline=FastReturn] |
| void didFireTimer(const InspectorInstrumentationCookie&); |
| |
| [Timeline, Inline=FastReturn] |
| void didInvalidateLayout([Keep] LocalFrame*); |
| |
| [Timeline, Inline=FastReturn] |
| InspectorInstrumentationCookie willLayout([Keep] LocalFrame*); |
| |
| [Timeline, Page, Inline=FastReturn] |
| void didLayout(const InspectorInstrumentationCookie&, RenderObject* root); |
| |
| [Page, Inline=FastReturn] |
| void didScroll(Page*); |
| |
| [Page, Inline=FastReturn] |
| void didResizeMainFrame(Page*); |
| |
| [Timeline, Inline=FastReturn] |
| InspectorInstrumentationCookie willDispatchXHRLoadEvent([Keep] ExecutionContext*, XMLHttpRequest*); |
| |
| [Timeline, Inline=FastReturn] |
| void didDispatchXHRLoadEvent(const InspectorInstrumentationCookie&); |
| |
| [Debugger, Inline=FastReturn] |
| void didDispatchXHRLoadendEvent(ExecutionContext*, XMLHttpRequest*); |
| |
| [Timeline, Inline=FastReturn] |
| void willScrollLayer([Keep] RenderObject*); |
| |
| [Timeline, Inline=FastReturn] |
| void didScrollLayer(RenderObject*); |
| |
| [Timeline, Inline=FastReturn] |
| void willPaint([Keep] RenderObject*, const GraphicsLayer*); |
| |
| [Timeline, Page, LayerTree, Inline=FastReturn] |
| void didPaint([Keep] RenderObject*, const GraphicsLayer*, GraphicsContext*, const LayoutRect&); |
| |
| [Timeline, Inline=FastReturn] |
| void willPaintImage([Keep] RenderImage*); |
| |
| [Timeline, Inline=FastReturn] |
| void didPaintImage(RenderImage*); |
| |
| [Resource, Timeline, Inline=FastReturn] |
| InspectorInstrumentationCookie willRecalculateStyle([Keep] Document*); |
| |
| [Timeline, Resource, Page, Inline=FastReturn] |
| void didRecalculateStyle(const InspectorInstrumentationCookie&, int elementCount); |
| |
| [Timeline, Resource, Inline=FastReturn] |
| void didScheduleStyleRecalculation([Keep] Document*); |
| |
| [Resource, Inline=FastReturn] |
| void applyUserAgentOverride(LocalFrame*, String* userAgent); |
| |
| [Page, Inline=FastReturn] |
| bool applyViewportStyleOverride(Document*, StyleResolver*); |
| |
| [Page, Inline=FastReturn] |
| void applyEmulatedMedia(LocalFrame*, String* media); |
| |
| [Timeline, Resource] |
| void willSendRequest(LocalFrame*, unsigned long identifier, DocumentLoader*, ResourceRequest&, const ResourceResponse& redirectResponse, const FetchInitiatorInfo&); |
| |
| [Resource] |
| void markResourceAsCached(Page*, unsigned long identifier); |
| |
| [Timeline, Resource] |
| void didReceiveResourceResponse([Keep] LocalFrame*, unsigned long identifier, DocumentLoader*, const ResourceResponse&, ResourceLoader*); |
| |
| [Inline=Forward] |
| void continueAfterXFrameOptionsDenied(LocalFrame* frame, DocumentLoader* loader, unsigned long identifier, const ResourceResponse& r); |
| |
| [Inline=Forward] |
| void continueWithPolicyIgnore(LocalFrame* frame, DocumentLoader* loader, unsigned long identifier, const ResourceResponse& r); |
| |
| [Timeline, Resource, Inline=FastReturn] |
| void didReceiveData([Keep] LocalFrame*, unsigned long identifier, const char* data, int dataLength, int encodedDataLength); |
| |
| [Timeline, Resource] |
| void didFinishLoading(LocalFrame* frame, unsigned long identifier, DocumentLoader*, double finishTime, int64_t encodedDataLength); |
| |
| [Resource] |
| void didReceiveCORSRedirectResponse([Keep] LocalFrame*, unsigned long identifier, DocumentLoader*, const ResourceResponse&, ResourceLoader*); |
| |
| [Timeline, Resource, Console] // Console should come AFTER Resource notification, front-end relies on this. |
| void didFailLoading(LocalFrame* frame, unsigned long identifier, const ResourceError&); |
| |
| [Resource] |
| void documentThreadableLoaderStartedLoadingForClient(ExecutionContext*, unsigned long identifier, ThreadableLoaderClient* client); |
| |
| [Debugger, Resource] |
| void willLoadXHR(ExecutionContext*, XMLHttpRequest* xhr, ThreadableLoaderClient* client, const AtomicString& method, const KURL& url, bool async, PassRefPtr<FormData>, const HTTPHeaderMap& headers, bool includeCredentials); |
| |
| [Resource] |
| void didFailXHRLoading(ExecutionContext*, XMLHttpRequest* xhr, ThreadableLoaderClient* client); |
| |
| [Console, Resource] |
| void didFinishXHRLoading(ExecutionContext*, XMLHttpRequest* xhr, ThreadableLoaderClient* client, unsigned long identifier, ScriptString sourceString, const AtomicString& method, const String& url, const String& sendURL, unsigned sendLineNumber); |
| |
| [Resource] |
| void scriptImported(ExecutionContext*, unsigned long identifier, const String& sourceString); |
| |
| [Debugger] |
| void scriptExecutionBlockedByCSP(ExecutionContext*, const String& directiveText); |
| |
| [Resource] |
| void didReceiveScriptResponse(ExecutionContext*, unsigned long identifier); |
| |
| [Timeline, Inspector, DOM, Page] |
| void domContentLoadedEventFired([Keep] LocalFrame*); |
| |
| [Timeline, Page] |
| void loadEventFired([Keep] LocalFrame*); |
| |
| [Page] |
| void frameAttachedToParent([Keep] LocalFrame*); |
| |
| [Canvas, Page] |
| void frameDetachedFromParent([Keep] LocalFrame*); |
| |
| [Resource, DOM, Canvas, Page, PageDebugger] |
| void didCommitLoad([Keep] LocalFrame*, DocumentLoader*); |
| |
| [DOM, Inline=FastReturn] |
| void frameDocumentUpdated([Keep] LocalFrame*); |
| |
| [Page] |
| void loaderDetachedFromFrame(LocalFrame*, DocumentLoader*); |
| |
| [Page] |
| void frameStartedLoading([Keep] LocalFrame*); |
| |
| [Page] |
| void frameStoppedLoading([Keep] LocalFrame*); |
| |
| [Page, Resource] |
| void frameScheduledNavigation([Keep] LocalFrame*, double delay); |
| |
| [Page, Resource] |
| void frameClearedScheduledNavigation([Keep] LocalFrame*); |
| |
| [Page, Inline=FastReturn] |
| InspectorInstrumentationCookie willRunJavaScriptDialog(Page*, const String& message); |
| |
| [Page, Inline=FastReturn] |
| void didRunJavaScriptDialog(const InspectorInstrumentationCookie&); |
| |
| [Inline=Forward] |
| void willDestroyResource(Resource* cachedResource); |
| |
| [Timeline, Inline=FastReturn] |
| InspectorInstrumentationCookie willWriteHTML([Keep] Document*, unsigned startLine); |
| |
| [Timeline, Inline=FastReturn] |
| void didWriteHTML(const InspectorInstrumentationCookie&, unsigned endLine); |
| |
| [DOMDebugger, Debugger, Timeline] |
| void didRequestAnimationFrame([Keep] Document*, int callbackId); |
| |
| [DOMDebugger, Debugger, Timeline] |
| void didCancelAnimationFrame([Keep] Document*, int callbackId); |
| |
| [DOMDebugger, Debugger, Timeline] |
| InspectorInstrumentationCookie willFireAnimationFrame([Keep] Document*, int callbackId); |
| |
| [Timeline, Debugger, Inline=FastReturn] |
| void didFireAnimationFrame(const InspectorInstrumentationCookie&); |
| |
| [DOMStorage, Inline=FastReturn] |
| void didDispatchDOMStorageEvent(Page* page, const String& key, const String& oldValue, const String& newValue, StorageType storageType, SecurityOrigin* securityOrigin); |
| |
| [Worker] |
| void didStartWorker(ExecutionContext*, WorkerInspectorProxy* proxy, const KURL& url); |
| |
| [Worker] |
| void workerTerminated(ExecutionContext*, WorkerInspectorProxy* proxy); |
| |
| [WorkerRuntime] |
| void willEvaluateWorkerScript([Keep] WorkerGlobalScope* context, int workerThreadStartMode); |
| |
| [Profiler, Timeline] |
| void willProcessTask(WorkerGlobalScope* context); |
| |
| [Profiler, Timeline] |
| void didProcessTask(WorkerGlobalScope* context); |
| |
| [Profiler] |
| void willEnterNestedRunLoop(WorkerGlobalScope* context); |
| |
| [Profiler] |
| void didLeaveNestedRunLoop(WorkerGlobalScope* context); |
| |
| [Resource, Timeline] |
| void didCreateWebSocket([Keep] Document*, unsigned long identifier, const KURL& requestURL, const String& protocol); |
| |
| [Resource, Timeline] |
| void willSendWebSocketHandshakeRequest([Keep] Document*, unsigned long identifier, const WebSocketHandshakeRequest* request); |
| |
| [Resource, Timeline] |
| void didReceiveWebSocketHandshakeResponse([Keep] Document*, unsigned long identifier, const WebSocketHandshakeRequest* request, const WebSocketHandshakeResponse* response); |
| |
| [Resource, Timeline] |
| void didCloseWebSocket([Keep] Document*, unsigned long identifier); |
| |
| [Resource] |
| void didReceiveWebSocketFrame(Document*, unsigned long identifier, int opCode, bool masked, const char* payload, size_t payloadLength); |
| |
| [Resource] |
| void didSendWebSocketFrame(Document*, unsigned long identifier, int opCode, bool masked, const char* payload, size_t payloadLength); |
| |
| [Resource] |
| void didReceiveWebSocketFrameError(Document*, unsigned long identifier, const String& errorMessage); |
| |
| [ApplicationCache, Inline=FastReturn] |
| void networkStateChanged(Page*, bool online); |
| |
| [ApplicationCache, Inline=FastReturn] |
| void updateApplicationCacheStatus([Keep] LocalFrame*); |
| |
| [Timeline, Inline=FastReturn] |
| void willUpdateLayerTree(LocalFrame*); |
| [Timeline, LayerTree, Inline=FastReturn] |
| void layerTreeDidChange(LocalFrame*); |
| [Timeline, Inline=FastReturn] |
| void didUpdateLayerTree(LocalFrame*); |
| |
| [DOM, Inline=FastReturn] |
| void pseudoElementCreated([Keep] PseudoElement*); |
| |
| [DOM, Inline=FastReturn] |
| void pseudoElementDestroyed([Keep] PseudoElement*); |
| |
| [DOMDebugger, Inline=FastReturn] |
| void willExecuteCustomElementCallback([Keep] Element*); |
| |
| [Debugger, Inline=FastReturn] |
| int traceAsyncOperationStarting([Keep] ExecutionContext*, const String& operationName); |
| |
| [Debugger, Inline=FastReturn] |
| int traceAsyncOperationStarting([Keep] ExecutionContext*, const String& operationName, int prevOperationId); |
| |
| [Debugger, Inline=FastReturn] |
| void traceAsyncOperationCompleted([Keep] ExecutionContext*, int operationId); |
| |
| [Debugger, Inline=FastReturn] |
| InspectorInstrumentationCookie traceAsyncOperationCompletedCallbackStarting([Keep] ExecutionContext*, int operationId); |
| |
| [Debugger, Inline=FastReturn] |
| InspectorInstrumentationCookie traceAsyncCallbackStarting([Keep] ExecutionContext*, int operationId); |
| |
| [Debugger, Inline=FastReturn] |
| void traceAsyncCallbackCompleted(const InspectorInstrumentationCookie&); |
| } |
| |
| interface InspectorConsoleInstrumentation { |
| |
| #include "core/inspector/ScriptArguments.h" |
| |
| class ConsoleMessage; |
| |
| [Console, Debugger] |
| void addMessageToConsole(ExecutionContext* context, ConsoleMessage* consoleMessage); |
| |
| [Timeline] |
| void consoleTime([Keep] ExecutionContext* context, const String& title); |
| |
| [Timeline] |
| void consoleTimeEnd([Keep] ExecutionContext* context, const String& title, ScriptState* state); |
| |
| [Timeline, Inline=FastReturn] |
| void consoleTimeStamp([Keep] ExecutionContext* context, const String& title); |
| |
| [Console, Inline=FastReturn] |
| void consoleTimeline([Keep] ExecutionContext* context, const String& title, ScriptState* state); |
| |
| [Console, Inline=FastReturn] |
| void consoleTimelineEnd([Keep] ExecutionContext* context, const String& title, ScriptState* state); |
| |
| [Profiler, Inline=FastReturn] |
| void consoleProfile([Keep] ExecutionContext* context, const String& title); |
| |
| [Profiler, Inline=FastReturn] |
| void consoleProfileEnd(ExecutionContext* context, const String& title); |
| |
| [Console] |
| void consoleMessagesCleared(ExecutionContext* context); |
| } |
| |
| interface InspectorOverrides { |
| [CSS, Inline=FastReturn] |
| bool forcePseudoState([Keep] Element* element, CSSSelector::PseudoType pseudoState); |
| |
| [Worker, Inline=FastReturn] |
| bool shouldPauseDedicatedWorkerOnStart(ExecutionContext* context); |
| |
| [Resource, Inline=FastReturn] |
| bool shouldForceCORSPreflight(Document*); |
| } |
| |
| |
| interface InspectorCanvasInstrumentation { |
| |
| #include "bindings/common/ScriptValue.h" |
| |
| [Canvas] |
| ScriptValue wrapCanvas2DRenderingContextForInstrumentation(Document*, const ScriptValue&); |
| |
| [Canvas] |
| ScriptValue wrapWebGLRenderingContextForInstrumentation(Document*, const ScriptValue&); |
| } |