| Index: chrome/browser/resources/net_export/net_export.js
|
| ===================================================================
|
| --- chrome/browser/resources/net_export/net_export.js (revision 0)
|
| +++ chrome/browser/resources/net_export/net_export.js (revision 0)
|
| @@ -0,0 +1,175 @@
|
| +// Copyright (c) 2012 The Chromium Authors. All rights reserved.
|
| +// Use of this source code is governed by a BSD-style license that can be
|
| +// found in the LICENSE file.
|
| +
|
| +var g_mainExportView;
|
| +
|
| +/**
|
| + * Object to communicate between the renderer and the browser.
|
| + * @type {!BrowserBridge}
|
| + */
|
| +var g_exportBrowserBridge = null;
|
| +
|
| +/**
|
| + * Main entry point called once the page has loaded.
|
| + */
|
| +function onLoad() {
|
| + g_exportBrowserBridge = new BrowserBridge();
|
| + g_mainExportView = new MainView();
|
| +}
|
| +
|
| +document.addEventListener('DOMContentLoaded', onLoad);
|
| +
|
| +
|
| +/**
|
| + * This class provides a "bridge" for communicating between the javascript and
|
| + * the browser.
|
| + */
|
| +var BrowserBridge = (function() {
|
| + 'use strict';
|
| +
|
| + /**
|
| + * Delay in milliseconds between updates of certain browser information.
|
| + */
|
| + var POLL_INTERVAL_MS = 5000;
|
| +
|
| + /**
|
| + * @constructor
|
| + */
|
| + function BrowserBridge() {
|
| + }
|
| +
|
| + BrowserBridge.prototype = {
|
| +
|
| + //--------------------------------------------------------------------------
|
| + // Messages sent to the browser
|
| + //--------------------------------------------------------------------------
|
| +
|
| + setPollInterval: function() {
|
| + window.setInterval(this.sendGetMobileNetLogInfo.bind(this),
|
| + POLL_INTERVAL_MS);
|
| + },
|
| +
|
| + sendGetMobileNetLogInfo: function() {
|
| + chrome.send('getMobileNetLogInfo');
|
| + },
|
| +
|
| + sendStartNetLog: function() {
|
| + chrome.send('startNetLog');
|
| + },
|
| +
|
| + sendStopNetLog: function() {
|
| + chrome.send('stopNetLog');
|
| + },
|
| +
|
| + sendSendNetLog: function() {
|
| + chrome.send('sendNetLog');
|
| + },
|
| +
|
| + //--------------------------------------------------------------------------
|
| + // Messages received from the browser.
|
| + //--------------------------------------------------------------------------
|
| +
|
| + receivedData: function(data) {
|
| + g_mainExportView.onMobileNetLogInfoChanged(data);
|
| + }
|
| + };
|
| +
|
| + return BrowserBridge;
|
| +})();
|
| +
|
| +/**
|
| + * This class handles the presentation of our profiler view. Used as a
|
| + * singleton.
|
| + */
|
| +var MainView = (function() {
|
| + 'use strict';
|
| +
|
| + // --------------------------------------------------------------------------
|
| + // Important IDs in the HTML document
|
| + // --------------------------------------------------------------------------
|
| +
|
| + var START_DATA_BUTTON_ID = 'mobile-view-start-data';
|
| + var STOP_DATA_BUTTON_ID = 'mobile-view-stop-data';
|
| + var SEND_DATA_BUTTON_ID = 'mobile-view-send-data';
|
| + var FILE_PATH_TEXT_ID = 'mobile-view-file-path-text';
|
| +
|
| + // --------------------------------------------------------------------------
|
| +
|
| + /**
|
| + * @constructor
|
| + */
|
| + function MainView() {
|
| + this.init_();
|
| +
|
| + g_exportBrowserBridge.setPollInterval();
|
| +
|
| + g_exportBrowserBridge.sendGetMobileNetLogInfo();
|
| + }
|
| +
|
| + MainView.prototype = {
|
| + init_: function() {
|
| + this.startDataButton_ = $(START_DATA_BUTTON_ID);
|
| + this.startDataButton_.onclick = this.onStartData_.bind(this);
|
| + this.stopDataButton_ = $(STOP_DATA_BUTTON_ID);
|
| + this.stopDataButton_.onclick = this.onStopData_.bind(this);
|
| + this.sendDataButton_ = $(SEND_DATA_BUTTON_ID);
|
| + this.sendDataButton_.onclick = this.onSendData_.bind(this);
|
| + this.filePathText_ = $(FILE_PATH_TEXT_ID);
|
| + },
|
| +
|
| + /**
|
| + * Starts saving NetLog data to a file.
|
| + */
|
| + onStartData_: function() {
|
| + g_exportBrowserBridge.sendStartNetLog();
|
| + g_exportBrowserBridge.sendGetMobileNetLogInfo();
|
| + },
|
| +
|
| + /**
|
| + * Stops saving NetLog data to a file.
|
| + */
|
| + onStopData_: function() {
|
| + g_exportBrowserBridge.sendStopNetLog();
|
| + g_exportBrowserBridge.sendGetMobileNetLogInfo();
|
| + },
|
| +
|
| + /**
|
| + * Sends NetLog data via email from browser.
|
| + */
|
| + onSendData_: function() {
|
| + g_exportBrowserBridge.sendSendNetLog();
|
| + g_exportBrowserBridge.sendGetMobileNetLogInfo();
|
| + },
|
| +
|
| + onMobileNetLogInfoChanged: function(mobileNetLogInfo) {
|
| + this.filePathText_.textContent = '';
|
| + if (mobileNetLogInfo.file) {
|
| + var message = '';
|
| + if (mobileNetLogInfo.state == 'ALLOW_STOP') {
|
| + message = 'NetLog data is collected in: ';
|
| + } else if (mobileNetLogInfo.state == 'ALLOW_START_SEND') {
|
| + message = 'NetLog data to send is in: ';
|
| + }
|
| + this.filePathText_.textContent = message + mobileNetLogInfo.file;
|
| + } else {
|
| + this.filePathText_.textContent = '';
|
| + }
|
| + this.startDataButton_.disabled = false;
|
| + this.stopDataButton_.disabled = false;
|
| + this.sendDataButton_.disabled = false;
|
| + if (mobileNetLogInfo.state == 'ALLOW_START') {
|
| + this.stopDataButton_.disabled = true;
|
| + this.sendDataButton_.disabled = true;
|
| + } else if (mobileNetLogInfo.state == 'ALLOW_STOP') {
|
| + this.startDataButton_.disabled = true;
|
| + this.sendDataButton_.disabled = true;
|
| + } else if (mobileNetLogInfo.state == 'ALLOW_START_SEND') {
|
| + this.stopDataButton_.disabled = true;
|
| + }
|
| + return true;
|
| + }
|
| + };
|
| +
|
| + return MainView;
|
| +})();
|
|
|