text: /*
   * Copyright (C) 2013 Google Inc. All rights reserved.
   * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
   * Copyright (C) 2014 University of Washington. All rights reserved.
   *
   * Redistribution and use in source and binary forms, with or without
   * modification, are permitted provided that the following conditions
   * are met:
   * 1. Redistributions of source code must retain the above copyright
   *    notice, this list of conditions and the following disclaimer.
   * 2. 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.
   *
   * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS 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 APPLE INC. OR ITS 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.
   */
  
  // DO NOT EDIT THIS FILE. It is automatically generated from CombinedDomains.json
  // by the script: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py
  
  #pragma once
  
  #if ENABLE(INSPECTOR_ALTERNATE_DISPATCHERS)
  
  #include "InspectorBackendDispatcher.h"
  #include "InspectorFrontendRouter.h"
  #include "InspectorProtocolTypes.h"
  
  namespace Inspector {
  
  class AlternateBackendDispatcher {
  public:
      void setBackendDispatcher(RefPtr<BackendDispatcher>&& dispatcher) { m_backendDispatcher = WTFMove(dispatcher); }
      BackendDispatcher* backendDispatcher() const { return m_backendDispatcher.get(); }
  private:
      RefPtr<BackendDispatcher> m_backendDispatcher;
  };
  
  
  class AlternateApplicationCacheBackendDispatcher : public AlternateBackendDispatcher {
  public:
      virtual ~AlternateApplicationCacheBackendDispatcher() { }
      virtual void getFramesWithManifests(long callId) = 0;
      virtual void enable(long callId) = 0;
      virtual void disable(long callId) = 0;
      virtual void getManifestForFrame(long callId, const String& in_frameId) = 0;
      virtual void getApplicationCacheForFrame(long callId, const String& in_frameId) = 0;
  };
  class AlternateAuditBackendDispatcher : public AlternateBackendDispatcher {
  public:
      virtual ~AlternateAuditBackendDispatcher() { }
      virtual void setup(long callId, const int* in_contextId) = 0;
      virtual void run(long callId, const String& in_test, const int* in_contextId) = 0;
      virtual void teardown(long callId) = 0;
  };
  #if ENABLE(RESOURCE_USAGE)
  class AlternateCPUProfilerBackendDispatcher : public AlternateBackendDispatcher {
  public:
      virtual ~AlternateCPUProfilerBackendDispatcher() { }
      virtual void startTracking(long callId) = 0;
      virtual void stopTracking(long callId) = 0;
  };
  #endif // ENABLE(RESOURCE_USAGE)
  class AlternateCSSBackendDispatcher : public AlternateBackendDispatcher {
  public:
      virtual ~AlternateCSSBackendDispatcher() { }
      virtual void enable(long callId) = 0;
      virtual void disable(long callId) = 0;
      virtual void getMatchedStylesForNode(long callId, int in_nodeId, const bool* in_includePseudo, const bool* in_includeInherited) = 0;
      virtual void getInlineStylesForNode(long callId, int in_nodeId) = 0;
      virtual void getComputedStyleForNode(long callId, int in_nodeId) = 0;
      virtual void getAllStyleSheets(long callId) = 0;
      virtual void getStyleSheet(long callId, const String& in_styleSheetId) = 0;
      virtual void getStyleSheetText(long callId, const String& in_styleSheetId) = 0;
      virtual void setStyleSheetText(long callId, const String& in_styleSheetId, const String& in_text) = 0;
      virtual void setStyleText(long callId, const JSON::Object& in_styleId, const String& in_text) = 0;
      virtual void setRuleSelector(long callId, const JSON::Object& in_ruleId, const String& in_selector) = 0;
      virtual void createStyleSheet(long callId, const String& in_frameId) = 0;
      virtual void addRule(long callId, const String& in_styleSheetId, const String& in_selector) = 0;
      virtual void getSupportedCSSProperties(long callId) = 0;
      virtual void getSupportedSystemFontFamilyNames(long callId) = 0;
      virtual void forcePseudoState(long callId, int in_nodeId, const JSON::Array& in_forcedPseudoClasses) = 0;
  };
  class AlternateCanvasBackendDispatcher : public AlternateBackendDispatcher {
  public:
      virtual ~AlternateCanvasBackendDispatcher() { }
      virtual void enable(long callId) = 0;
      virtual void disable(long callId) = 0;
      virtual void requestNode(long callId, const String& in_canvasId) = 0;
      virtual void requestContent(long callId, const String& in_canvasId) = 0;
      virtual void requestCSSCanvasClientNodes(long callId, const String& in_canvasId) = 0;
      virtual void resolveCanvasContext(long callId, const String& in_canvasId, const String* in_objectGroup) = 0;
      virtual void setRecordingAutoCaptureFrameCount(long callId, int in_count) = 0;
      virtual void startRecording(long callId, const String& in_canvasId, const int* in_frameCount, const int* in_memoryLimit) = 0;
      virtual void stopRecording(long callId, const String& in_canvasId) = 0;
      virtual void requestShaderSource(long callId, const String& in_programId, const String& in_shaderType) = 0;
      virtual void updateShader(long callId, const String& in_programId, const String& in_shaderType, const String& in_source) = 0;
      virtual void setShaderProgramDisabled(long callId, const String& in_programId, bool in_disabled) = 0;
      virtual void setShaderProgramHighlighted(long callId, const String& in_programId, bool in_highlighted) = 0;
  };
  class AlternateConsoleBackendDispatcher : public AlternateBackendDispatcher {
  public:
      virtual ~AlternateConsoleBackendDispatcher() { }
      virtual void enable(long callId) = 0;
      virtual void disable(long callId) = 0;
      virtual void clearMessages(long callId) = 0;
      virtual void getLoggingChannels(long callId) = 0;
      virtual void setLoggingChannelLevel(long callId, const String& in_source, const String& in_level) = 0;
  };
  class AlternateDOMBackendDispatcher : public AlternateBackendDispatcher {
  public:
      virtual ~AlternateDOMBackendDispatcher() { }
      virtual void getDocument(long callId) = 0;
      virtual void requestChildNodes(long callId, int in_nodeId, const int* in_depth) = 0;
      virtual void querySelector(long callId, int in_nodeId, const String& in_selector) = 0;
      virtual void querySelectorAll(long callId, int in_nodeId, const String& in_selector) = 0;
      virtual void setNodeName(long callId, int in_nodeId, const String& in_name) = 0;
      virtual void setNodeValue(long callId, int in_nodeId, const String& in_value) = 0;
      virtual void removeNode(long callId, int in_nodeId) = 0;
      virtual void setAttributeValue(long callId, int in_nodeId, const String& in_name, const String& in_value) = 0;
      virtual void setAttributesAsText(long callId, int in_nodeId, const String& in_text, const String* in_name) = 0;
      virtual void removeAttribute(long callId, int in_nodeId, const String& in_name) = 0;
      virtual void getSupportedEventNames(long callId) = 0;
      virtual void getDataBindingsForNode(long callId, int in_nodeId) = 0;
      virtual void getAssociatedDataForNode(long callId, int in_nodeId) = 0;
      virtual void getEventListenersForNode(long callId, int in_nodeId) = 0;
      virtual void setEventListenerDisabled(long callId, int in_eventListenerId, bool in_disabled) = 0;
      virtual void setBreakpointForEventListener(long callId, int in_eventListenerId) = 0;
      virtual void removeBreakpointForEventListener(long callId, int in_eventListenerId) = 0;
      virtual void getAccessibilityPropertiesForNode(long callId, int in_nodeId) = 0;
      virtual void getOuterHTML(long callId, int in_nodeId) = 0;
      virtual void setOuterHTML(long callId, int in_nodeId, const String& in_outerHTML) = 0;
      virtual void insertAdjacentHTML(long callId, int in_nodeId, const String& in_position, const String& in_html) = 0;
      virtual void performSearch(long callId, const String& in_query, const JSON::Array* in_nodeIds, const bool* in_caseSensitive) = 0;
      virtual void getSearchResults(long callId, const String& in_searchId, int in_fromIndex, int in_toIndex) = 0;
      virtual void discardSearchResults(long callId, const String& in_searchId) = 0;
      virtual void requestNode(long callId, const String& in_objectId) = 0;
      virtual void setInspectModeEnabled(long callId, bool in_enabled, const JSON::Object* in_highlightConfig, const bool* in_showRulers) = 0;
      virtual void highlightRect(long callId, int in_x, int in_y, int in_width, int in_height, const JSON::Object* in_color, const JSON::Object* in_outlineColor, const bool* in_usePageCoordinates) = 0;
      virtual void highlightQuad(long callId, const JSON::Array& in_quad, const JSON::Object* in_color, const JSON::Object* in_outlineColor, const bool* in_usePageCoordinates) = 0;
      virtual void highlightSelector(long callId, const JSON::Object& in_highlightConfig, const String& in_selectorString, const String* in_frameId) = 0;
      virtual void highlightNode(long callId, const JSON::Object& in_highlightConfig, const int* in_nodeId, const String* in_objectId) = 0;
      virtual void highlightNodeList(long callId, const JSON::Array& in_nodeIds, const JSON::Object& in_highlightConfig) = 0;
      virtual void hideHighlight(long callId) = 0;
      virtual void highlightFrame(long callId, const String& in_frameId, const JSON::Object* in_contentColor, const JSON::Object* in_contentOutlineColor) = 0;
      virtual void pushNodeByPathToFrontend(long callId, const String& in_path) = 0;
      virtual void resolveNode(long callId, int in_nodeId, const String* in_objectGroup) = 0;
      virtual void getAttributes(long callId, int in_nodeId) = 0;
      virtual void moveTo(long callId, int in_nodeId, int in_targetNodeId, const int* in_insertBeforeNodeId) = 0;
      virtual void undo(long callId) = 0;
      virtual void redo(long callId) = 0;
      virtual void markUndoableState(long callId) = 0;
      virtual void focus(long callId, int in_nodeId) = 0;
      virtual void setInspectedNode(long callId, int in_nodeId) = 0;
  };
  class AlternateDOMDebuggerBackendDispatcher : public AlternateBackendDispatcher {
  public:
      virtual ~AlternateDOMDebuggerBackendDispatcher() { }
      virtual void setDOMBreakpoint(long callId, int in_nodeId, const String& in_type) = 0;
      virtual void removeDOMBreakpoint(long callId, int in_nodeId, const String& in_type) = 0;
      virtual void setEventBreakpoint(long callId, const String& in_breakpointType, const String* in_eventName) = 0;
      virtual void removeEventBreakpoint(long callId, const String& in_breakpointType, const String* in_eventName) = 0;
      virtual void setURLBreakpoint(long callId, const String& in_url, const bool* in_isRegex) = 0;
      virtual void removeURLBreakpoint(long callId, const String& in_url) = 0;
  };
  class AlternateDOMStorageBackendDispatcher : public AlternateBackendDispatcher {
  public:
      virtual ~AlternateDOMStorageBackendDispatcher() { }
      virtual void enable(long callId) = 0;
      virtual void disable(long callId) = 0;
      virtual void getDOMStorageItems(long callId, const JSON::Object& in_storageId) = 0;
      virtual void setDOMStorageItem(long callId, const JSON::Object& in_storageId, const String& in_key, const String& in_value) = 0;
      virtual void removeDOMStorageItem(long callId, const JSON::Object& in_storageId, const String& in_key) = 0;
  };
  class AlternateDatabaseBackendDispatcher : public AlternateBackendDispatcher {
  public:
      virtual ~AlternateDatabaseBackendDispatcher() { }
      virtual void enable(long callId) = 0;
      virtual void disable(long callId) = 0;
      virtual void getDatabaseTableNames(long callId, const String& in_databaseId) = 0;
      virtual void executeSQL(long callId, const String& in_databaseId, const String& in_query) = 0;
  };
  class AlternateDebuggerBackendDispatcher : public AlternateBackendDispatcher {
  public:
      virtual ~AlternateDebuggerBackendDispatcher() { }
      virtual void enable(long callId) = 0;
      virtual void disable(long callId) = 0;
      virtual void setAsyncStackTraceDepth(long callId, int in_depth) = 0;
      virtual void setBreakpointsActive(long callId, bool in_active) = 0;
      virtual void setBreakpointByUrl(long callId, int in_lineNumber, const String* in_url, const String* in_urlRegex, const int* in_columnNumber, const JSON::Object* in_options) = 0;
      virtual void setBreakpoint(long callId, const JSON::Object& in_location, const JSON::Object* in_options) = 0;
      virtual void removeBreakpoint(long callId, const String& in_breakpointId) = 0;
      virtual void continueUntilNextRunLoop(long callId) = 0;
      virtual void continueToLocation(long callId, const JSON::Object& in_location) = 0;
      virtual void stepOver(long callId) = 0;
      virtual void stepInto(long callId) = 0;
      virtual void stepOut(long callId) = 0;
      virtual void pause(long callId) = 0;
      virtual void resume(long callId) = 0;
      virtual void searchInContent(long callId, const String& in_scriptId, const String& in_query, const bool* in_caseSensitive, const bool* in_isRegex) = 0;
      virtual void getScriptSource(long callId, const String& in_scriptId) = 0;
      virtual void getFunctionDetails(long callId, const String& in_functionId) = 0;
      virtual void setPauseOnExceptions(long callId, const String& in_state) = 0;
      virtual void setPauseOnAssertions(long callId, bool in_enabled) = 0;
      virtual void setPauseOnMicrotasks(long callId, bool in_enabled) = 0;
      virtual void setPauseForInternalScripts(long callId, bool in_shouldPause) = 0;
      virtual void evaluateOnCallFrame(long callId, const String& in_callFrameId, const String& in_expression, const String* in_objectGroup, const bool* in_includeCommandLineAPI, const bool* in_doNotPauseOnExceptionsAndMuteConsole, const bool* in_returnByValue, const bool* in_generatePreview, const bool* in_saveResult, const bool* in_emulateUserGesture) = 0;
  };
  class AlternateHeapBackendDispatcher : public AlternateBackendDispatcher {
  public:
      virtual ~AlternateHeapBackendDispatcher() { }
      virtual void enable(long callId) = 0;
      virtual void disable(long callId) = 0;
      virtual void gc(long callId) = 0;
      virtual void snapshot(long callId) = 0;
      virtual void startTracking(long callId) = 0;
      virtual void stopTracking(long callId) = 0;
      virtual void getPreview(long callId, int in_heapObjectId) = 0;
      virtual void getRemoteObject(long callId, int in_heapObjectId, const String* in_objectGroup) = 0;
  };
  #if ENABLE(INDEXED_DATABASE)
  class AlternateIndexedDBBackendDispatcher : public AlternateBackendDispatcher {
  public:
      virtual ~AlternateIndexedDBBackendDispatcher() { }
      virtual void enable(long callId) = 0;
      virtual void disable(long callId) = 0;
      virtual void requestDatabaseNames(long callId, const String& in_securityOrigin) = 0;
      virtual void requestDatabase(long callId, const String& in_securityOrigin, const String& in_databaseName) = 0;
      virtual void requestData(long callId, const String& in_securityOrigin, const String& in_databaseName, const String& in_objectStoreName, const String& in_indexName, int in_skipCount, int in_pageSize, const JSON::Object* in_keyRange) = 0;
      virtual void clearObjectStore(long callId, const String& in_securityOrigin, const String& in_databaseName, const String& in_objectStoreName) = 0;
  };
  #endif // ENABLE(INDEXED_DATABASE)
  class AlternateInspectorBackendDispatcher : public AlternateBackendDispatcher {
  public:
      virtual ~AlternateInspectorBackendDispatcher() { }
      virtual void enable(long callId) = 0;
      virtual void disable(long callId) = 0;
      virtual void initialized(long callId) = 0;
  };
  class AlternateLayerTreeBackendDispatcher : public AlternateBackendDispatcher {
  public:
      virtual ~AlternateLayerTreeBackendDispatcher() { }
      virtual void enable(long callId) = 0;
      virtual void disable(long callId) = 0;
      virtual void layersForNode(long callId, int in_nodeId) = 0;
      virtual void reasonsForCompositingLayer(long callId, const String& in_layerId) = 0;
  };
  #if ENABLE(RESOURCE_USAGE)
  class AlternateMemoryBackendDispatcher : public AlternateBackendDispatcher {
  public:
      virtual ~AlternateMemoryBackendDispatcher() { }
      virtual void enable(long callId) = 0;
      virtual void disable(long callId) = 0;
      virtual void startTracking(long callId) = 0;
      virtual void stopTracking(long callId) = 0;
  };
  #endif // ENABLE(RESOURCE_USAGE)
  class AlternateNetworkBackendDispatcher : public AlternateBackendDispatcher {
  public:
      virtual ~AlternateNetworkBackendDispatcher() { }
      virtual void enable(long callId) = 0;
      virtual void disable(long callId) = 0;
      virtual void setExtraHTTPHeaders(long callId, const JSON::Object& in_headers) = 0;
      virtual void getResponseBody(long callId, const String& in_requestId) = 0;
      virtual void setResourceCachingDisabled(long callId, bool in_disabled) = 0;
      virtual void loadResource(long callId, const String& in_frameId, const String& in_url) = 0;
      virtual void getSerializedCertificate(long callId, const String& in_requestId) = 0;
      virtual void resolveWebSocket(long callId, const String& in_requestId, const String* in_objectGroup) = 0;
  };
  class AlternatePageBackendDispatcher : public AlternateBackendDispatcher {
  public:
      virtual ~AlternatePageBackendDispatcher() { }
      virtual void enable(long callId) = 0;
      virtual void disable(long callId) = 0;
      virtual void reload(long callId, const bool* in_ignoreCache, const bool* in_revalidateAllResources) = 0;
      virtual void navigate(long callId, const String& in_url) = 0;
      virtual void overrideUserAgent(long callId, const String* in_value) = 0;
      virtual void overrideSetting(long callId, const String& in_setting, const bool* in_value) = 0;
      virtual void getCookies(long callId) = 0;
      virtual void deleteCookie(long callId, const String& in_cookieName, const String& in_url) = 0;
      virtual void getResourceTree(long callId) = 0;
      virtual void getResourceContent(long callId, const String& in_frameId, const String& in_url) = 0;
      virtual void searchInResource(long callId, const String& in_frameId, const String& in_url, const String& in_query, const bool* in_caseSensitive, const bool* in_isRegex, const String* in_requestId) = 0;
      virtual void searchInResources(long callId, const String& in_text, const bool* in_caseSensitive, const bool* in_isRegex) = 0;
      virtual void setShowRulers(long callId, bool in_result) = 0;
      virtual void setShowPaintRects(long callId, bool in_result) = 0;
      virtual void setEmulatedMedia(long callId, const String& in_media) = 0;
      virtual void setForcedAppearance(long callId, const String& in_appearance) = 0;
      virtual void getCompositingBordersVisible(long callId) = 0;
      virtual void setCompositingBordersVisible(long callId, bool in_visible) = 0;
      virtual void snapshotNode(long callId, int in_nodeId) = 0;
      virtual void snapshotRect(long callId, int in_x, int in_y, int in_width, int in_height, const String& in_coordinateSystem) = 0;
      virtual void archive(long callId) = 0;
  };
  class AlternateRuntimeBackendDispatcher : public AlternateBackendDispatcher {
  public:
      virtual ~AlternateRuntimeBackendDispatcher() { }
      virtual void parse(long callId, const String& in_source) = 0;
      virtual void evaluate(long callId, const String& in_expression, const String* in_objectGroup, const bool* in_includeCommandLineAPI, const bool* in_doNotPauseOnExceptionsAndMuteConsole, const int* in_contextId, const bool* in_returnByValue, const bool* in_generatePreview, const bool* in_saveResult, const bool* in_emulateUserGesture) = 0;
      virtual void awaitPromise(long callId, const String& in_promiseObjectId, const bool* in_returnByValue, const bool* in_generatePreview, const bool* in_saveResult) = 0;
      virtual void callFunctionOn(long callId, const String& in_objectId, const String& in_functionDeclaration, const JSON::Array* in_arguments, const bool* in_doNotPauseOnExceptionsAndMuteConsole, const bool* in_returnByValue, const bool* in_generatePreview) = 0;
      virtual void getPreview(long callId, const String& in_objectId) = 0;
      virtual void getProperties(long callId, const String& in_objectId, const bool* in_ownProperties, const bool* in_generatePreview) = 0;
      virtual void getDisplayableProperties(long callId, const String& in_objectId, const bool* in_generatePreview) = 0;
      virtual void getCollectionEntries(long callId, const String& in_objectId, const String* in_objectGroup, const int* in_startIndex, const int* in_numberToFetch) = 0;
      virtual void saveResult(long callId, const JSON::Object& in_value, const int* in_contextId) = 0;
      virtual void setSavedResultAlias(long callId, const String* in_alias) = 0;
      virtual void releaseObject(long callId, const String& in_objectId) = 0;
      virtual void releaseObjectGroup(long callId, const String& in_objectGroup) = 0;
      virtual void enable(long callId) = 0;
      virtual void disable(long callId) = 0;
      virtual void getRuntimeTypesForVariablesAtOffsets(long callId, const JSON::Array& in_locations) = 0;
      virtual void enableTypeProfiler(long callId) = 0;
      virtual void disableTypeProfiler(long callId) = 0;
      virtual void enableControlFlowProfiler(long callId) = 0;
      virtual void disableControlFlowProfiler(long callId) = 0;
      virtual void getBasicBlocks(long callId, const String& in_sourceID) = 0;
  };
  class AlternateScriptProfilerBackendDispatcher : public AlternateBackendDispatcher {
  public:
      virtual ~AlternateScriptProfilerBackendDispatcher() { }
      virtual void startTracking(long callId, const bool* in_includeSamples) = 0;
      virtual void stopTracking(long callId) = 0;
  };
  class AlternateServiceWorkerBackendDispatcher : public AlternateBackendDispatcher {
  public:
      virtual ~AlternateServiceWorkerBackendDispatcher() { }
      virtual void getInitializationInfo(long callId) = 0;
  };
  class AlternateTargetBackendDispatcher : public AlternateBackendDispatcher {
  public:
      virtual ~AlternateTargetBackendDispatcher() { }
      virtual void exists(long callId) = 0;
      virtual void sendMessageToTarget(long callId, const String& in_targetId, const String& in_message) = 0;
  };
  class AlternateTimelineBackendDispatcher : public AlternateBackendDispatcher {
  public:
      virtual ~AlternateTimelineBackendDispatcher() { }
      virtual void enable(long callId) = 0;
      virtual void disable(long callId) = 0;
      virtual void start(long callId, const int* in_maxCallStackDepth) = 0;
      virtual void stop(long callId) = 0;
      virtual void setAutoCaptureEnabled(long callId, bool in_enabled) = 0;
      virtual void setInstruments(long callId, const JSON::Array& in_instruments) = 0;
  };
  class AlternateWorkerBackendDispatcher : public AlternateBackendDispatcher {
  public:
      virtual ~AlternateWorkerBackendDispatcher() { }
      virtual void enable(long callId) = 0;
      virtual void disable(long callId) = 0;
      virtual void initialized(long callId, const String& in_workerId) = 0;
      virtual void sendMessageToWorker(long callId, const String& in_workerId, const String& in_message) = 0;
  };
  
  } // namespace Inspector
  
  #endif // ENABLE(INSPECTOR_ALTERNATE_DISPATCHERS)
  