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

Unified Diff: runtime/observatory/lib/src/elements/vm_connect.dart

Issue 1100583006: Add crash dumps to service protocol and Observatory (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 5 years, 8 months 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 side-by-side diff with in-line comments
Download patch
Index: runtime/observatory/lib/src/elements/vm_connect.dart
diff --git a/runtime/observatory/lib/src/elements/vm_connect.dart b/runtime/observatory/lib/src/elements/vm_connect.dart
index 7323d685fed7d0954eae883e5205ff5b22064808..5b60c073047d27f94b097aa12df276e1ae550f57 100644
--- a/runtime/observatory/lib/src/elements/vm_connect.dart
+++ b/runtime/observatory/lib/src/elements/vm_connect.dart
@@ -4,11 +4,14 @@
library vm_connect_element;
+import 'dart:convert';
import 'dart:html';
-import 'package:polymer/polymer.dart';
+
import 'observatory_element.dart';
import 'package:observatory/app.dart';
+import 'package:observatory/elements.dart';
import 'package:observatory/service_html.dart';
+import 'package:polymer/polymer.dart';
void _connectToVM(ObservatoryApplication app, WebSocketVMTarget target) {
app.vm = new WebSocketVM(target);
@@ -20,13 +23,6 @@ class VMConnectTargetElement extends ObservatoryElement {
VMConnectTargetElement.created() : super.created();
- bool get isChromeTarget {
- if (target == null) {
- return false;
- }
- return target.chrome;
- }
-
bool get isCurrentTarget {
if (app.vm == null) {
return false;
@@ -58,12 +54,8 @@ class VMConnectTargetElement extends ObservatoryElement {
@CustomTag('vm-connect')
class VMConnectElement extends ObservatoryElement {
@published String standaloneVmAddress = '';
- @published String chromiumAddress = 'localhost:9222';
- @observable ObservableList<WebSocketVMTarget> chromeTargets =
- new ObservableList<WebSocketVMTarget>();
VMConnectElement.created() : super.created() {
- pollPeriod = new Duration(seconds: 1);
}
void _connect(WebSocketVMTarget target) {
@@ -71,8 +63,11 @@ class VMConnectElement extends ObservatoryElement {
app.locationManager.go('#/vm');
}
- void onPoll() {
- _refreshTabs();
+ @override
+ void attached() {
+ super.attached();
+ var fileInput = shadowRoot.querySelector('#crashDumpFile');
+ fileInput.onChange.listen(_onCrashDumpFileChange);
}
String _normalizeStandaloneAddress(String networkAddress) {
@@ -85,33 +80,24 @@ class VMConnectElement extends ObservatoryElement {
void connectStandalone(Event e, var detail, Node target) {
// Prevent any form action.
e.preventDefault();
+ if (standaloneVmAddress == null) {
+ return;
+ }
+ if (standaloneVmAddress.isEmpty) {
+ return;
+ }
var targetAddress = _normalizeStandaloneAddress(standaloneVmAddress);
var target = app.targets.findOrMake(targetAddress);
_connect(target);
}
- void getTabs(Event e, var detail, Node target) {
- // Prevent any form action.
- e.preventDefault();
- _refreshTabs();
- }
-
- void _refreshTabs() {
- ChromiumTargetLister.fetch(chromiumAddress).then((targets) {
- chromeTargets.clear();
- if (targets == null) {
- return;
- }
- for (var i = 0; i < targets.length; i++) {
- if (targets[i].networkAddress == null) {
- // Don't add targets that don't have a network address.
- // This happens when a tab has devtools open!
- continue;
- }
- chromeTargets.add(targets[i]);
- }
- }).catchError((e) {
- chromeTargets.clear();
+ _onCrashDumpFileChange(e) {
+ var fileInput = shadowRoot.querySelector('#crashDumpFile');
+ var reader = new FileReader();
+ reader.readAsText(fileInput.files[0]);
+ reader.onLoad.listen((_) {
+ var crashDump = JSON.decode(reader.result);
+ app.loadCrashDump(crashDump);
});
}
}

Powered by Google App Engine
This is Rietveld 408576698