Index: third_party/WebKit/Source/platform/v8_inspector/V8InspectorSessionImpl.cpp |
diff --git a/third_party/WebKit/Source/platform/v8_inspector/V8InspectorSessionImpl.cpp b/third_party/WebKit/Source/platform/v8_inspector/V8InspectorSessionImpl.cpp |
index 26b5607e93724ed1b27914bb54499b7b59cb43dd..51b288de882d75d0b5905b7caf6d7aff5f6fc7bc 100644 |
--- a/third_party/WebKit/Source/platform/v8_inspector/V8InspectorSessionImpl.cpp |
+++ b/third_party/WebKit/Source/platform/v8_inspector/V8InspectorSessionImpl.cpp |
@@ -14,6 +14,7 @@ |
#include "platform/v8_inspector/V8InspectorImpl.h" |
#include "platform/v8_inspector/V8ProfilerAgentImpl.h" |
#include "platform/v8_inspector/V8RuntimeAgentImpl.h" |
+#include "platform/v8_inspector/V8SchemaAgentImpl.h" |
#include "platform/v8_inspector/V8StringUtil.h" |
#include "platform/v8_inspector/public/V8ContextInfo.h" |
#include "platform/v8_inspector/public/V8InspectorClient.h" |
@@ -27,7 +28,8 @@ bool V8InspectorSession::canDispatchMethod(const String16& method) |
|| method.startsWith(protocol::Debugger::Metainfo::commandPrefix) |
|| method.startsWith(protocol::Profiler::Metainfo::commandPrefix) |
|| method.startsWith(protocol::HeapProfiler::Metainfo::commandPrefix) |
- || method.startsWith(protocol::Console::Metainfo::commandPrefix); |
+ || method.startsWith(protocol::Console::Metainfo::commandPrefix) |
+ || method.startsWith(protocol::Schema::Metainfo::commandPrefix); |
} |
std::unique_ptr<V8InspectorSessionImpl> V8InspectorSessionImpl::create(V8InspectorImpl* inspector, int contextGroupId, protocol::FrontendChannel* channel, const String16* state) |
@@ -46,6 +48,7 @@ V8InspectorSessionImpl::V8InspectorSessionImpl(V8InspectorImpl* inspector, int c |
, m_heapProfilerAgent(nullptr) |
, m_profilerAgent(nullptr) |
, m_consoleAgent(nullptr) |
+ , m_schemaAgent(nullptr) |
{ |
if (savedState) { |
std::unique_ptr<protocol::Value> state = protocol::parseJSON(*savedState); |
@@ -72,6 +75,9 @@ V8InspectorSessionImpl::V8InspectorSessionImpl(V8InspectorImpl* inspector, int c |
m_consoleAgent = wrapUnique(new V8ConsoleAgentImpl(this, channel, agentState(protocol::Console::Metainfo::domainName))); |
protocol::Console::Dispatcher::wire(&m_dispatcher, m_consoleAgent.get()); |
+ m_schemaAgent = wrapUnique(new V8SchemaAgentImpl(this, channel, agentState(protocol::Schema::Metainfo::domainName))); |
+ protocol::Schema::Dispatcher::wire(&m_dispatcher, m_schemaAgent.get()); |
+ |
if (savedState) { |
m_runtimeAgent->restore(); |
m_debuggerAgent->restore(); |
@@ -262,6 +268,26 @@ String16 V8InspectorSessionImpl::stateJSON() |
return m_state->toJSONString(); |
} |
+std::unique_ptr<protocol::Array<protocol::Schema::API::Domain>> V8InspectorSessionImpl::supportedDomains() |
+{ |
+ std::vector<std::unique_ptr<protocol::Schema::Domain>> domains = supportedDomainsImpl(); |
+ std::unique_ptr<protocol::Array<protocol::Schema::API::Domain>> result = protocol::Array<protocol::Schema::API::Domain>::create(); |
+ for (size_t i = 0; i < domains.size(); ++i) |
+ result->addItem(std::move(domains[i])); |
+ return result; |
+} |
+ |
+std::vector<std::unique_ptr<protocol::Schema::Domain>> V8InspectorSessionImpl::supportedDomainsImpl() |
+{ |
+ std::vector<std::unique_ptr<protocol::Schema::Domain>> result; |
+ result.push_back(protocol::Schema::Domain::create().setName(protocol::Runtime::Metainfo::domainName).setVersion(protocol::Runtime::Metainfo::version).build()); |
+ result.push_back(protocol::Schema::Domain::create().setName(protocol::Debugger::Metainfo::domainName).setVersion(protocol::Debugger::Metainfo::version).build()); |
+ result.push_back(protocol::Schema::Domain::create().setName(protocol::Profiler::Metainfo::domainName).setVersion(protocol::Profiler::Metainfo::version).build()); |
+ result.push_back(protocol::Schema::Domain::create().setName(protocol::HeapProfiler::Metainfo::domainName).setVersion(protocol::HeapProfiler::Metainfo::version).build()); |
+ result.push_back(protocol::Schema::Domain::create().setName(protocol::Schema::Metainfo::domainName).setVersion(protocol::Schema::Metainfo::version).build()); |
+ return result; |
+} |
+ |
void V8InspectorSessionImpl::addInspectedObject(std::unique_ptr<V8InspectorSession::Inspectable> inspectable) |
{ |
m_inspectedObjects.insert(m_inspectedObjects.begin(), std::move(inspectable)); |