blob: 38e978474c4f93f33ea998f9a8b6088442ae525a [file] [log] [blame]
// Copyright 2015 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef V8InspectorClient_h
#define V8InspectorClient_h
#include "platform/inspector_protocol/Platform.h"
#include "platform/v8_inspector/public/V8ContextInfo.h"
#include <v8.h>
namespace blink {
class V8StackTrace;
enum class V8ConsoleAPIType { kClear, kDebug, kLog, kInfo, kWarning, kError };
class PLATFORM_EXPORT V8InspectorClient {
public:
virtual ~V8InspectorClient() { }
virtual void runMessageLoopOnPause(int contextGroupId) = 0;
virtual void quitMessageLoopOnPause() = 0;
virtual void muteWarningsAndDeprecations(int contextGroupId) = 0;
virtual void unmuteWarningsAndDeprecations(int contextGroupId) = 0;
virtual void beginUserGesture() = 0;
virtual void endUserGesture() = 0;
virtual String16 valueSubtype(v8::Local<v8::Value>) = 0;
virtual bool formatAccessorsAsProperties(v8::Local<v8::Value>) = 0;
virtual bool isExecutionAllowed() = 0;
virtual double currentTimeMS() = 0;
virtual v8::Local<v8::Context> ensureDefaultContextInGroup(int contextGroupId) = 0;
virtual bool isInspectableHeapObject(v8::Local<v8::Object>) = 0;
virtual void beginEnsureAllContextsInGroup(int contextGroupId) = 0;
virtual void endEnsureAllContextsInGroup(int contextGroupId) = 0;
// TODO(dgozman): this was added to support service worker shadow page. We should not connect at all.
virtual bool canExecuteScripts(int contextGroupId) = 0;
virtual void installAdditionalCommandLineAPI(v8::Local<v8::Context>, v8::Local<v8::Object>) = 0;
virtual void consoleTime(const String16& title) = 0;
virtual void consoleTimeEnd(const String16& title) = 0;
virtual void consoleTimeStamp(const String16& title) = 0;
virtual void consoleAPIMessage(int contextGroupId, V8ConsoleAPIType, const String16& message, const String16& url, unsigned lineNumber, unsigned columnNumber, V8StackTrace*) = 0;
virtual v8::MaybeLocal<v8::Value> memoryInfo(v8::Isolate*, v8::Local<v8::Context>) = 0;
typedef void (*TimerCallback)(void*);
virtual void startRepeatingTimer(double, TimerCallback, void* data) = 0;
virtual void cancelTimer(void* data) = 0;
};
} // namespace blink
#endif // V8InspectorClient_h