| Index: runtime/vm/service_isolate.cc
 | 
| diff --git a/runtime/vm/service_isolate.cc b/runtime/vm/service_isolate.cc
 | 
| index 3665cf3da69f31e91b501b4d33a5fd6e844888df..ad6be9d1d98b97cfb88d017e7ad28ca781a6917b 100644
 | 
| --- a/runtime/vm/service_isolate.cc
 | 
| +++ b/runtime/vm/service_isolate.cc
 | 
| @@ -296,6 +296,26 @@ class ServiceIsolateNatives : public AllStatic {
 | 
|        }
 | 
|      }
 | 
|    }
 | 
| +
 | 
| +  static void ListenStream(Dart_NativeArguments args) {
 | 
| +    NativeArguments* arguments = reinterpret_cast<NativeArguments*>(args);
 | 
| +    Isolate* isolate = arguments->isolate();
 | 
| +    StackZone stack_zone(isolate);
 | 
| +    Zone* zone = stack_zone.GetZone();  // Used by GET_NON_NULL_NATIVE_ARGUMENT.
 | 
| +    HANDLESCOPE(isolate);
 | 
| +    GET_NON_NULL_NATIVE_ARGUMENT(String, stream_id, arguments->NativeArgAt(0));
 | 
| +    Service::ListenStream(stream_id.ToCString());
 | 
| +  }
 | 
| +
 | 
| +  static void CancelStream(Dart_NativeArguments args) {
 | 
| +    NativeArguments* arguments = reinterpret_cast<NativeArguments*>(args);
 | 
| +    Isolate* isolate = arguments->isolate();
 | 
| +    StackZone stack_zone(isolate);
 | 
| +    Zone* zone = stack_zone.GetZone();  // Used by GET_NON_NULL_NATIVE_ARGUMENT.
 | 
| +    HANDLESCOPE(isolate);
 | 
| +    GET_NON_NULL_NATIVE_ARGUMENT(String, stream_id, arguments->NativeArgAt(0));
 | 
| +    Service::CancelStream(stream_id.ToCString());
 | 
| +  }
 | 
|  };
 | 
|  
 | 
|  
 | 
| @@ -315,6 +335,10 @@ static ServiceNativeEntry _ServiceNativeEntries[] = {
 | 
|      ServiceIsolateNatives::OnStart },
 | 
|    {"VMService_OnExit", 0,
 | 
|      ServiceIsolateNatives::OnExit },
 | 
| +  {"VMService_ListenStream", 1,
 | 
| +    ServiceIsolateNatives::ListenStream },
 | 
| +  {"VMService_CancelStream", 1,
 | 
| +    ServiceIsolateNatives::CancelStream },
 | 
|  };
 | 
|  
 | 
|  
 | 
| 
 |