| Index: runtime/observatory/web/timeline_message_handler.js
|
| diff --git a/runtime/observatory/web/timeline_message_handler.js b/runtime/observatory/web/timeline_message_handler.js
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..7ae238ded542a0a96c87af53ca877daa9dc84713
|
| --- /dev/null
|
| +++ b/runtime/observatory/web/timeline_message_handler.js
|
| @@ -0,0 +1,49 @@
|
| +// Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file
|
| +// for details. All rights reserved. Use of this source code is governed by a
|
| +// BSD-style license that can be found in the LICENSE file.
|
| +
|
| +// This file is loaded before the about:tracing code is loaded so that we have
|
| +// an event listener registered early.
|
| +
|
| +// Used to delay the initial timeline load until the timeline has finished
|
| +// loading.
|
| +timeline_loaded = false;
|
| +timeline_vm_address = undefined;
|
| +timeline_isolates = undefined;
|
| +
|
| +function registerForMessages() {
|
| + window.addEventListener("message", onMessage, false);
|
| +}
|
| +
|
| +registerForMessages();
|
| +
|
| +function onMessage(event) {
|
| + var request = JSON.parse(event.data);
|
| + var method = request['method'];
|
| + var params = request['params'];
|
| + console.log('method: ' + method)
|
| + switch (method) {
|
| + case 'refresh':
|
| + if (!timeline_loaded) {
|
| + timeline_vm_address = params['vmAddress'];
|
| + timeline_isolates = params['isolateIds'];
|
| + console.log('Delaying timeline refresh until loaded.');
|
| + } else {
|
| + fetchTimeline(params['vmAddress'], params['isolateIds']);
|
| + }
|
| + break;
|
| + case 'clear':
|
| + clearTimeline();
|
| + break;
|
| + case 'save':
|
| + saveTimeline();
|
| + break;
|
| + case 'load':
|
| + loadTimeline();
|
| + break;
|
| + default:
|
| + console.log('Unknown method:' + method + '.');
|
| + }
|
| +}
|
| +
|
| +console.log('message handler registered');
|
|
|