提交 930bfee5 编写于 作者: C Chinmay Garde

Wire in the device observatory port while initializing the Dart VM

上级 2b6f8b6f
......@@ -136,9 +136,10 @@ Dart_Isolate IsolateCreateCallback(const char* script_uri,
DartJni::InitForIsolate();
#endif
DartRuntimeHooks::Install(DartRuntimeHooks::DartIOIsolate);
if (SkySettings::Get().enable_observatory) {
const SkySettings& settings = SkySettings::Get();
if (settings.enable_observatory) {
std::string ip = "127.0.0.1";
const intptr_t port = 8181;
const intptr_t port = settings.observatory_port;
const bool service_isolate_booted = DartServiceIsolate::Startup(
ip, port, DartLibraryTagHandler, IsRunningPrecompiledCode(), error);
CHECK(service_isolate_booted) << error;
......
......@@ -5,10 +5,13 @@
#ifndef SKY_ENGINE_PUBLIC_PLATFORM_SKY_SETTINGS_H_
#define SKY_ENGINE_PUBLIC_PLATFORM_SKY_SETTINGS_H_
#include <stdint.h>
namespace blink {
struct SkySettings {
bool enable_observatory = false;
uint32_t observatory_port = 8181;
bool start_paused = false;
bool enable_dart_checked_mode = false;
......@@ -16,6 +19,6 @@ struct SkySettings {
static void Set(const SkySettings& settings);
};
} // namespace blink
} // namespace blink
#endif // SKY_ENGINE_PUBLIC_PLATFORM_SKY_SETTINGS_H_
......@@ -5,6 +5,7 @@
#include "sky/shell/shell.h"
#include <memory>
#include <sstream>
#include "base/bind.h"
#include "base/command_line.h"
......@@ -81,9 +82,22 @@ void Shell::InitStandalone() {
base::CommandLine& command_line = *base::CommandLine::ForCurrentProcess();
blink::SkySettings settings;
// Enable Observatory
settings.enable_observatory =
!command_line.HasSwitch(switches::kNonInteractive);
// Set Observatory Port
if (command_line.HasSwitch(switches::kDeviceObservatoryPort)) {
auto port_string =
command_line.GetSwitchValueASCII(switches::kDeviceObservatoryPort);
std::stringstream stream(port_string);
uint32_t port = 0;
if (stream >> port) {
settings.observatory_port = port;
}
}
// Start Paused
settings.start_paused = command_line.HasSwitch(switches::kStartPaused);
// Set Checked Mode
settings.enable_dart_checked_mode =
command_line.HasSwitch(switches::kEnableCheckedMode);
blink::SkySettings::Set(settings);
......
......@@ -17,6 +17,7 @@ const char kNonInteractive[] = "non-interactive";
const char kPackageRoot[] = "package-root";
const char kStartPaused[] = "start-paused";
const char kTraceStartup[] = "trace-startup";
const char kDeviceObservatoryPort[] = "observatory-port";
void PrintUsage(const std::string& executable_name) {
std::cerr << "Usage: " << executable_name
......@@ -26,6 +27,7 @@ void PrintUsage(const std::string& executable_name) {
<< " --" << kTraceStartup
<< " --" << kFLX << "=FLX"
<< " --" << kPackageRoot << "=PACKAGE_ROOT"
<< " --" << kDeviceObservatoryPort << "=8181"
<< " [ MAIN_DART ]" << std::endl;
}
......
......@@ -18,6 +18,7 @@ extern const char kNonInteractive[];
extern const char kPackageRoot[];
extern const char kStartPaused[];
extern const char kTraceStartup[];
extern const char kDeviceObservatoryPort[];
void PrintUsage(const std::string& executable_name);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册