Disable view source for Developer Tools.
[chromium-blink-merge.git] / chrome / browser / resources / net_export / net_export.js
blob799a643edf073fb329be4a4f83f0996abc99be54
1 // Copyright (c) 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 /**
6  * Main entry point called once the page has loaded.
7  */
8 function onLoad() {
9   NetExportView.getInstance();
12 document.addEventListener('DOMContentLoaded', onLoad);
14 /**
15  * This class handles the presentation of our profiler view. Used as a
16  * singleton.
17  */
18 var NetExportView = (function() {
19   'use strict';
21   /**
22    * Delay in milliseconds between updates of certain browser information.
23    */
24   /** @const */ var POLL_INTERVAL_MS = 5000;
26   // --------------------------------------------------------------------------
27   // Important IDs in the HTML document
28   // --------------------------------------------------------------------------
30   /** @const */ var START_DATA_BUTTON_ID = 'export-view-start-data';
31   /** @const */ var STOP_DATA_BUTTON_ID = 'export-view-stop-data';
32   /** @const */ var SEND_DATA_BUTTON_ID = 'export-view-send-data';
33   /** @const */ var FILE_PATH_TEXT_ID = 'export-view-file-path-text';
35   // --------------------------------------------------------------------------
37   /**
38    * @constructor
39    */
40   function NetExportView() {
41     $(START_DATA_BUTTON_ID).onclick = this.onStartData_.bind(this);
42     $(STOP_DATA_BUTTON_ID).onclick = this.onStopData_.bind(this);
43     $(SEND_DATA_BUTTON_ID).onclick = this.onSendData_.bind(this);
45     window.setInterval(function() { chrome.send('getExportNetLogInfo'); },
46                        POLL_INTERVAL_MS);
48     chrome.send('getExportNetLogInfo');
49   }
51   cr.addSingletonGetter(NetExportView);
53   NetExportView.prototype = {
54     /**
55      * Starts saving NetLog data to a file.
56      */
57     onStartData_: function() {
58       chrome.send('startNetLog');
59     },
61     /**
62      * Stops saving NetLog data to a file.
63      */
64     onStopData_: function() {
65       chrome.send('stopNetLog');
66     },
68     /**
69      * Sends NetLog data via email from browser.
70      */
71     onSendData_: function() {
72       chrome.send('sendNetLog');
73     },
75     /**
76      * Enable or disable START_DATA_BUTTON_ID, STOP_DATA_BUTTON_ID and
77      * SEND_DATA_BUTTON_ID buttons. Displays the path name of the file where
78      * NetLog data is collected.
79      */
80     onExportNetLogInfoChanged: function(exportNetLogInfo) {
81       if (exportNetLogInfo.file) {
82         var message = '';
83         if (exportNetLogInfo.state == 'ALLOW_STOP')
84           message = 'NetLog data is collected in: ';
85         else if (exportNetLogInfo.state == 'ALLOW_START_SEND')
86           message = 'NetLog data to send is in: ';
87         $(FILE_PATH_TEXT_ID).textContent = message + exportNetLogInfo.file;
88       } else {
89         $(FILE_PATH_TEXT_ID).textContent = '';
90       }
92       $(START_DATA_BUTTON_ID).disabled = true;
93       $(STOP_DATA_BUTTON_ID).disabled = true;
94       $(SEND_DATA_BUTTON_ID).disabled = true;
95       if (exportNetLogInfo.state == 'ALLOW_START') {
96         $(START_DATA_BUTTON_ID).disabled = false;
97       } else if (exportNetLogInfo.state == 'ALLOW_STOP') {
98         $(STOP_DATA_BUTTON_ID).disabled = false;
99       } else if (exportNetLogInfo.state == 'ALLOW_START_SEND') {
100         $(START_DATA_BUTTON_ID).disabled = false;
101         $(SEND_DATA_BUTTON_ID).disabled = false;
102       } else if (exportNetLogInfo.state == 'UNINITIALIZED') {
103         $(FILE_PATH_TEXT_ID).textContent =
104             'Unable to initialize NetLog data file.';
105       }
106     }
107   };
109   return NetExportView;
110 })();