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

Side by Side Diff: runtime/observatory/lib/src/app/page.dart

Issue 1087393002: Add page view analytics to 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2014, 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 app; 5 part of app;
6 6
7 /// A [Page] controls the user interface of Observatory. At any given time 7 /// A [Page] controls the user interface of Observatory. At any given time
8 /// one page will be the current page. Pages are registered at startup. 8 /// one page will be the current page. Pages are registered at startup.
9 /// When the user navigates within the application, each page is asked if it 9 /// When the user navigates within the application, each page is asked if it
10 /// can handle the current location, the first page to say yes, wins. 10 /// can handle the current location, the first page to say yes, wins.
11 abstract class Page extends Observable { 11 abstract class Page extends Observable {
12 final ObservatoryApplication app; 12 final ObservatoryApplication app;
13 13
14 @observable ObservatoryElement element; 14 @observable ObservatoryElement element;
15 @observable ObservableMap args; 15 @observable ObservableMap args;
16 16
17 Page(this.app); 17 Page(this.app);
18 18
19 /// Called when the page is installed, this callback must initialize 19 /// Called when the page is installed, this callback must initialize
20 /// [element]. 20 /// [element].
21 void onInstall(); 21 void onInstall();
22 22
23 /// Called when the page is uninstalled, this callback must clear 23 /// Called when the page is uninstalled, this callback must clear
24 /// [element]. 24 /// [element].
25 void onUninstall() { 25 void onUninstall() {
26 element = null; 26 element = null;
27 } 27 }
28 28
29 /// Called when the page should update its state based on [uri]. 29 /// Called when the page should update its state based on [uri].
30 /// NOTE: Only called when the page is installed.
31 void visit(Uri uri, Map argsMap) { 30 void visit(Uri uri, Map argsMap) {
32 args = toObservable(argsMap); 31 args = toObservable(argsMap);
32 Analytics.reportPageView(uri);
33 _visit(uri); 33 _visit(uri);
34 } 34 }
35 35
36 // Overridden by subclasses. 36 // Overridden by subclasses.
37 void _visit(Uri uri); 37 void _visit(Uri uri);
38 38
39 /// Called to test whether this page can visit [uri]. 39 /// Called to test whether this page can visit [uri].
40 bool canVisit(Uri uri); 40 bool canVisit(Uri uri);
41 } 41 }
42 42
(...skipping 282 matching lines...) Expand 10 before | Expand all | Expand 10 after
325 void _visit(Uri uri) { 325 void _visit(Uri uri) {
326 assert(element != null); 326 assert(element != null);
327 assert(canVisit(uri)); 327 assert(canVisit(uri));
328 app.vm.getIsolate(uri.queryParameters['isolateId']).then((i) { 328 app.vm.getIsolate(uri.queryParameters['isolateId']).then((i) {
329 (element as MetricsPageElement).isolate = i; 329 (element as MetricsPageElement).isolate = i;
330 }); 330 });
331 } 331 }
332 332
333 bool canVisit(Uri uri) => uri.path == 'metrics'; 333 bool canVisit(Uri uri) => uri.path == 'metrics';
334 } 334 }
OLDNEW
« no previous file with comments | « runtime/observatory/lib/src/app/application.dart ('k') | runtime/observatory/observatory_sources.gypi » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698