| Index: runtime/lib/developer.cc
|
| diff --git a/runtime/lib/developer.cc b/runtime/lib/developer.cc
|
| index 57a1a4c295abbd3ed4f96fc7ae94f1fb249c9869..e764ff9acc4f4d7207651fa5f421bf76823686f1 100644
|
| --- a/runtime/lib/developer.cc
|
| +++ b/runtime/lib/developer.cc
|
| @@ -9,6 +9,7 @@
|
| #include "vm/debugger.h"
|
| #include "vm/exceptions.h"
|
| #include "vm/flags.h"
|
| +#include "vm/message.h"
|
| #include "vm/native_entry.h"
|
| #include "vm/object.h"
|
| #include "vm/object_store.h"
|
| @@ -120,4 +121,53 @@ DEFINE_NATIVE_ENTRY(Developer_registerExtension, 2) {
|
| #endif // PRODUCT
|
| }
|
|
|
| +DEFINE_NATIVE_ENTRY(Developer_getServiceMajorVersion, 0) {
|
| + return Smi::New(SERVICE_PROTOCOL_MAJOR_VERSION);
|
| +}
|
| +
|
| +
|
| +DEFINE_NATIVE_ENTRY(Developer_getServiceMinorVersion, 0) {
|
| + return Smi::New(SERVICE_PROTOCOL_MINOR_VERSION);
|
| +}
|
| +
|
| +
|
| +static void SendNull(const SendPort& port) {
|
| + const Dart_Port destination_port_id = port.Id();
|
| + PortMap::PostMessage(new Message(
|
| + destination_port_id, Object::null(), Message::kNormalPriority));
|
| +}
|
| +
|
| +
|
| +DEFINE_NATIVE_ENTRY(Developer_getServerInfo, 1) {
|
| + GET_NON_NULL_NATIVE_ARGUMENT(SendPort, port, arguments->NativeArgAt(0));
|
| +#if defined(PRODUCT)
|
| + SendNull(port);
|
| + return Object::null();
|
| +#else
|
| + if (!ServiceIsolate::IsRunning()) {
|
| + SendNull(port);
|
| + } else {
|
| + ServiceIsolate::RequestServerInfo(port);
|
| + }
|
| + return Object::null();
|
| +#endif
|
| +}
|
| +
|
| +
|
| +DEFINE_NATIVE_ENTRY(Developer_webServerControl, 2) {
|
| + GET_NON_NULL_NATIVE_ARGUMENT(SendPort, port, arguments->NativeArgAt(0));
|
| + GET_NON_NULL_NATIVE_ARGUMENT(Bool, enabled, arguments->NativeArgAt(1));
|
| +#if defined(PRODUCT)
|
| + SendNull(port);
|
| + return Object::null();
|
| +#else
|
| + if (!ServiceIsolate::IsRunning()) {
|
| + SendNull(port);
|
| + } else {
|
| + ServiceIsolate::ControlWebServer(port, enabled.value());
|
| + }
|
| + return Object::null();
|
| +#endif
|
| +}
|
| +
|
| } // namespace dart
|
|
|