| Index: test/inspector-protocol/inspector-protocol.cc
|
| diff --git a/test/inspector-protocol/inspector-protocol.cc b/test/inspector-protocol/inspector-protocol.cc
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..bca88e9781924b8c2a67943d4d028bb0e00e1fa1
|
| --- /dev/null
|
| +++ b/test/inspector-protocol/inspector-protocol.cc
|
| @@ -0,0 +1,84 @@
|
| +// Copyright 2016 the V8 project authors. All rights reserved.
|
| +// Use of this source code is governed by a BSD-style license that can be
|
| +// found in the LICENSE file.
|
| +
|
| +#include "include/libplatform/libplatform.h"
|
| +#include "include/v8.h"
|
| +
|
| +#include "src/base/platform/platform.h"
|
| +#include "src/flags.h"
|
| +#include "src/inspector/string-util.h"
|
| +
|
| +#include "test/inspector-protocol/channel-impl.h"
|
| +#include "test/inspector-protocol/inspector-client-impl.h"
|
| +#include "test/inspector-protocol/inspector-extension.h"
|
| +#include "test/inspector-protocol/load-extension.h"
|
| +#include "test/inspector-protocol/set-timeout-extension.h"
|
| +#include "test/inspector-protocol/task-queue.h"
|
| +#include "test/inspector-protocol/task-runner.h"
|
| +#include "test/inspector-protocol/task.h"
|
| +#include "test/inspector-protocol/utils-extension.h"
|
| +
|
| +int main(int argc, char* argv[]) {
|
| + using namespace v8_inspector;
|
| +
|
| + v8::V8::InitializeICUDefaultLocation(argv[0]);
|
| + v8::Platform* platform = v8::platform::CreateDefaultPlatform();
|
| + v8::V8::InitializePlatform(platform);
|
| + v8::internal::FlagList::SetFlagsFromCommandLine(&argc, argv, true);
|
| + v8::V8::InitializeExternalStartupData(argv[0]);
|
| + v8::V8::Initialize();
|
| +
|
| + SetTimeoutExtension set_timeout_extension;
|
| + v8::RegisterExtension(&set_timeout_extension);
|
| + LoadExtension load_extension;
|
| + v8::RegisterExtension(&load_extension);
|
| + UtilsExtension utils_extension;
|
| + v8::RegisterExtension(&utils_extension);
|
| + BackendExtension backend_extension;
|
| + v8::RegisterExtension(&backend_extension);
|
| + FrontendExtension frontend_extension;
|
| + v8::RegisterExtension(&frontend_extension);
|
| +
|
| + TaskQueue backend_queue;
|
| + FrontendExtension::set_backend_task_queue(&backend_queue);
|
| +
|
| + TaskQueue frontend_queue;
|
| + BackendExtension::set_frontend_task_queue(&frontend_queue);
|
| +
|
| + v8::base::Semaphore in_semaphore_(0);
|
| + TaskRunner backend_task_runner(&backend_queue);
|
| +
|
| + const char* backend_extensions[] = {"v8_inspector/setTimeout",
|
| + "v8_inspector/backend"};
|
| + v8::ExtensionConfiguration backend_configuration(
|
| + arraysize(backend_extensions), backend_extensions);
|
| + backend_queue.Append(
|
| + new InitTask(&backend_configuration, &backend_task_runner, nullptr));
|
| + V8InspectorClientImpl inspector_client;
|
| + ChannelImpl channel(&frontend_queue);
|
| + backend_queue.Append(
|
| + new ConnectTask(&inspector_client, &channel, &in_semaphore_));
|
| + in_semaphore_.Wait();
|
| +
|
| + TaskRunner frontend_task_runner(&frontend_queue);
|
| + const char* frontend_extensions[] = {
|
| + "v8_inspector/utils", "v8_inspector/load", "v8_inspector/frontend"};
|
| + v8::ExtensionConfiguration frontend_configuration(
|
| + arraysize(frontend_extensions), frontend_extensions);
|
| + frontend_queue.Append(new InitTask(&frontend_configuration,
|
| + &frontend_task_runner, &in_semaphore_));
|
| + in_semaphore_.Wait();
|
| +
|
| + for (int i = 1; i < argc; ++i) {
|
| + if (argv[i][0] == '-') break;
|
| + const size_t kBufferSize = 1024;
|
| + char buffer[kBufferSize];
|
| + int written =
|
| + v8::base::OS::SNPrintF(buffer, kBufferSize, "load(\"%s\")", argv[i]);
|
| + CHECK(written != -1);
|
| + String16 source(buffer);
|
| + frontend_queue.Append(new ExecuteStringTask(toStringView(source)));
|
| + }
|
| + return 0;
|
| +}
|
|
|