Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1)

Side by Side Diff: runtime/observatory/lib/src/repositories/target.dart

Issue 2438613002: Provide an API to dart:developer to control the web server hosting the Service Protocol (Closed)
Patch Set: CHANGELOG.md merge and fatal error Created 4 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file
2 // for details. All rights reserved. Use of this source code is governed by a 2 // for details. All rights reserved. Use of this source code is governed by a
3 // BSD-style license that can be found in the LICENSE file. 3 // BSD-style license that can be found in the LICENSE file.
4 4
5 part of repositories; 5 part of repositories;
6 6
7 class TargetChangeEvent implements M.TargetChangeEvent { 7 class TargetChangeEvent implements M.TargetChangeEvent {
8 final TargetRepository repository; 8 final TargetRepository repository;
9 final bool disconnected; 9 final bool disconnected;
10 TargetChangeEvent(this.repository, [this.disconnected = false]); 10 TargetChangeEvent(this.repository, [this.disconnected = false]);
(...skipping 11 matching lines...) Expand all
22 22
23 factory TargetRepository() { 23 factory TargetRepository() {
24 var controller = new StreamController<TargetChangeEvent>(); 24 var controller = new StreamController<TargetChangeEvent>();
25 var stream = controller.stream.asBroadcastStream(); 25 var stream = controller.stream.asBroadcastStream();
26 return new TargetRepository._(controller, stream); 26 return new TargetRepository._(controller, stream);
27 } 27 }
28 28
29 TargetRepository._(this._onChange, this.onChange) { 29 TargetRepository._(this._onChange, this.onChange) {
30 _restore(); 30 _restore();
31 // Add the default address if it doesn't already exist. 31 // Add the default address if it doesn't already exist.
32 if (_find(_networkAddressOfDefaultTarget()) == null) { 32 if (find(_networkAddressOfDefaultTarget()) == null) {
33 add(_networkAddressOfDefaultTarget()); 33 add(_networkAddressOfDefaultTarget());
34 } 34 }
35 // Set the current target to the default target. 35 // Set the current target to the default target.
36 current = _find(_networkAddressOfDefaultTarget()); 36 current = find(_networkAddressOfDefaultTarget());
37 } 37 }
38 38
39 void add(String address) { 39 void add(String address) {
40 if (_find(address) != null) { 40 if (find(address) != null) {
41 return; 41 return;
42 } 42 }
43 _list.insert(0, new SC.WebSocketVMTarget(address)); 43 _list.insert(0, new SC.WebSocketVMTarget(address));
44 _onChange.add(new TargetChangeEvent(this)); 44 _onChange.add(new TargetChangeEvent(this));
45 _store(); 45 _store();
46 } 46 }
47 47
48 Iterable<SC.WebSocketVMTarget> list() => _list; 48 Iterable<SC.WebSocketVMTarget> list() => _list;
49 49
50 void setCurrent(M.Target t) { 50 void setCurrent(M.Target t) {
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
84 return b.lastConnectionTime.compareTo(a.lastConnectionTime); 84 return b.lastConnectionTime.compareTo(a.lastConnectionTime);
85 }); 85 });
86 } 86 }
87 87
88 /// After making a change, update settings. 88 /// After making a change, update settings.
89 void _store() { 89 void _store() {
90 _settings.set(_historyKey, _list); 90 _settings.set(_historyKey, _list);
91 } 91 }
92 92
93 /// Find by networkAddress. 93 /// Find by networkAddress.
94 SC.WebSocketVMTarget _find(String networkAddress) { 94 SC.WebSocketVMTarget find(String networkAddress) {
95 for (SC.WebSocketVMTarget item in _list) { 95 for (SC.WebSocketVMTarget item in _list) {
96 if (item.networkAddress == networkAddress) { 96 if (item.networkAddress == networkAddress) {
97 return item; 97 return item;
98 } 98 }
99 } 99 }
100 return null; 100 return null;
101 } 101 }
102 102
103 static String _networkAddressOfDefaultTarget() { 103 static String _networkAddressOfDefaultTarget() {
104 if (Utils.runningInJavaScript()) { 104 Uri serverAddress = Uri.parse(window.location.toString());
105 // We are running as JavaScript, use the same host that Observatory has 105 return 'ws://${serverAddress.authority}${serverAddress.path}ws';
106 // been loaded from.
107 return 'ws://${window.location.host}/ws';
108 } else {
109 // Otherwise, assume we are running from Dart Editor and want to connect
110 // to the default host.
111 return 'ws://localhost:8181/ws';
112 }
113 } 106 }
114 } 107 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698