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

Side by Side Diff: runtime/observatory/lib/src/elements/timeline_page.dart

Issue 1406413006: Timeline service protocol support with Observatory UI (Closed) Base URL: git@github.com:dart-lang/sdk.git@master
Patch Set: Created 5 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
(Empty)
1 // Copyright (c) 2015, the Dart project authors. Please see the AUTHORS file
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.
4
5 library timeline_page_element;
6
7 import 'dart:async';
8 import 'dart:convert';
9 import 'dart:html';
10 import 'observatory_element.dart';
11 import 'package:observatory/app.dart';
12 import 'package:observatory/service_html.dart';
13 import 'package:polymer/polymer.dart';
14
15
16 @CustomTag('timeline-page')
17 class TimelinePageElement extends ObservatoryElement {
18 TimelinePageElement.created() : super.created();
19
20 attached() {
21 super.attached();
22 _resizeSubscription = window.onResize.listen((_) => _updateSize());
23 _updateSize();
24 }
25
26 detached() {
27 super.detached();
28 if (_resizeSubscription != null) {
29 _resizeSubscription.cancel();
30 }
31 }
32
33 Future postMessage(String method) {
34 IFrameElement e = $['root'];
35 var message = {
36 'method': method,
37 'params': {
38 'vmAddress': (app.vm as WebSocketVM).target.networkAddress
39 }
40 };
41 e.contentWindow.postMessage(JSON.encode(message), window.location.href);
42 return null;
43 }
44
45 Future refresh() async {
46 return postMessage('refresh');
47 }
48
49 Future clear() async {
50 await app.vm.invokeRpc('_clearVMTimeline', {});
51 return postMessage('clear');
52 }
53
54 Future recordOn() async {
55 return app.vm.invokeRpc('_setVMTimelineFlag', {
56 '_record': 'all',
57 });
58 }
59
60 Future recordOff() async {
61 return app.vm.invokeRpc('_setVMTimelineFlag', {
62 '_record': 'none',
63 });
64 }
65
66 _updateSize() {
67 IFrameElement e = $['root'];
68 final totalHeight = window.innerHeight;
69 final top = e.offset.top;
70 final bottomMargin = 32;
71 final mainHeight = totalHeight - top - bottomMargin;
72 e.style.setProperty('height', '${mainHeight}px');
73 e.style.setProperty('width', '100%');
74 }
75
76
77 StreamSubscription _resizeSubscription;
78 }
OLDNEW
« no previous file with comments | « runtime/observatory/lib/src/app/page.dart ('k') | runtime/observatory/lib/src/elements/timeline_page.html » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698