| Index: remoting/webapp/app_remoting/js/feedback_consent.js
|
| diff --git a/remoting/webapp/app_remoting/js/feedback_consent.js b/remoting/webapp/app_remoting/js/feedback_consent.js
|
| deleted file mode 100644
|
| index 6611b8310c348ef5b8bf64cf2f57aade25af6316..0000000000000000000000000000000000000000
|
| --- a/remoting/webapp/app_remoting/js/feedback_consent.js
|
| +++ /dev/null
|
| @@ -1,272 +0,0 @@
|
| -// Copyright 2014 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.
|
| -
|
| -'use strict';
|
| -
|
| -/**
|
| - * @type {string} The app id (from the webstore) for this application.
|
| - */
|
| -var appId = '';
|
| -
|
| -/**
|
| - * @type {string} The host id corresponding to the user's VM. The @pending
|
| - * place-holder instructs the Orchestrator to abandon any pending host,
|
| - * and is used if no host id is provided by the main window.
|
| - */
|
| -var hostId = '@pending';
|
| -
|
| -/**
|
| - * @type {string} The network stats at the time the feedback consent dialog
|
| - * was shown.
|
| - */
|
| -var connectionStats = '';
|
| -
|
| -/**
|
| - * @type {string} JSON representation of recent console error messages.
|
| - */
|
| -var consoleErrors = '';
|
| -
|
| -/**
|
| - * @type {string} The most recent id for the session (unless the session is
|
| - * longer than 24hrs, this will be the only session id).
|
| - */
|
| -var sessionId = '';
|
| -
|
| -/**
|
| - * @type {string} "no" => user did not request a VM reset; "yes" => VM was
|
| - * successfully reset; "failed" => user requested a reset, but it failed.
|
| - */
|
| -var abandonHost = 'no';
|
| -
|
| -/**
|
| - * @type {Window} The main application window.
|
| - */
|
| -var applicationWindow = null;
|
| -
|
| -/**
|
| - * @type {string} An unique identifier that links the feedback post with the
|
| - * logs uploaded by the host.
|
| - */
|
| -var crashServiceReportId = '';
|
| -
|
| -/**
|
| - * @type {string} The user-selected feedback category, represented by its
|
| - * l10n tag.
|
| - */
|
| -var selectedCategory = '';
|
| -
|
| -/**
|
| - * @param {string} email
|
| - * @param {string} realName
|
| - */
|
| -function onUserInfo(email, realName) {
|
| - /** @type {number} Identifies this product to Google Feedback. **/
|
| - var productId = 93407;
|
| -
|
| - /** @type {string} The base URL for Google Feedback. */
|
| - var url = 'https://www.google.com/tools/feedback/survey/xhtml';
|
| -
|
| - /** @type {string} The feedback 'bucket', used for clustering. */
|
| - var bucket = 'feedback';
|
| -
|
| - /** @type {string} The user's locale, used to localize the feedback page. */
|
| - var locale = chrome.i18n.getMessage('@@ui_locale');
|
| -
|
| - window.open(url +
|
| - '?productId=' + productId +
|
| - '&bucket=' + escape(bucket) +
|
| - '&hl=' + escape(locale) +
|
| - '&psd_email=' + escape(email) +
|
| - '&psd_hostId=' + escape(hostId) +
|
| - '&psd_abandonHost=' + escape(abandonHost) +
|
| - '&psd_crashServiceReportId=' + escape(crashServiceReportId) +
|
| - '&psd_connectionStats=' + escape(connectionStats) +
|
| - '&psd_category=' + escape(selectedCategory) +
|
| - '&psd_sessionId=' + escape(sessionId));
|
| - window.close();
|
| -
|
| - // If the VM was successfully abandoned, close the application.
|
| - if (abandonHost == 'yes') {
|
| - applicationWindow.close();
|
| - }
|
| -};
|
| -
|
| -/**
|
| - * @param {boolean} waiting
|
| - */
|
| -function setWaiting(waiting) {
|
| - var ok = document.getElementById('feedback-consent-ok');
|
| - var cancel = document.getElementById('feedback-consent-cancel');
|
| - var abandon = document.getElementById('abandon-host');
|
| - var working = document.getElementById('working');
|
| - ok.disabled = waiting;
|
| - cancel.disabled = waiting;
|
| - abandon.disabled = waiting;
|
| - working.hidden = !waiting;
|
| -}
|
| -
|
| -function showError() {
|
| - setWaiting(false);
|
| - var error = document.getElementById('abandon-failed');
|
| - var abandon = document.getElementById('abandon-host');
|
| - var logs = document.getElementById('include-logs');
|
| - var formBody = document.getElementById('form-body');
|
| - error.hidden = false;
|
| - abandon.checked = false;
|
| - logs.checked = false;
|
| - abandonHost = 'failed';
|
| - crashServiceReportId = '';
|
| - formBody.hidden = true;
|
| - base.resizeWindowToContent(true);
|
| -}
|
| -
|
| -/**
|
| - * @return {string} A random string ID.
|
| - */
|
| -function generateId() {
|
| - var idArray = new Uint8Array(20);
|
| - window.crypto.getRandomValues(idArray);
|
| - return window.btoa(String.fromCharCode.apply(null, idArray));
|
| -}
|
| -
|
| -/**
|
| - * @param {string=} token
|
| - */
|
| -function onToken(token) {
|
| - var getUserInfo = function() {
|
| - console.assert(Boolean(token), 'token is undefined.');
|
| - var oauth2Api = new remoting.OAuth2ApiImpl();
|
| - oauth2Api.getUserInfo(
|
| - onUserInfo, onUserInfo.bind(null, 'unknown', 'unknown'),
|
| - /** @type {string} */(token));
|
| - };
|
| - if (!token) {
|
| - onUserInfo('unknown', 'unknown');
|
| - } else {
|
| - if (abandonHost == 'yes') {
|
| - var body = {
|
| - 'abandonHost': 'true',
|
| - 'crashServiceReportId': crashServiceReportId
|
| - };
|
| - var uri = remoting.settings.APP_REMOTING_API_BASE_URL +
|
| - '/applications/' + appId +
|
| - '/hosts/' + hostId +
|
| - '/reportIssue';
|
| - var onDone = function(/** !remoting.Xhr.Response */ response) {
|
| - if (response.status >= 200 && response.status < 300) {
|
| - getUserInfo();
|
| - } else {
|
| - showError();
|
| - }
|
| - };
|
| - new remoting.Xhr({
|
| - method: 'POST',
|
| - url: uri,
|
| - jsonContent: body,
|
| - oauthToken: token
|
| - }).start().then(onDone);
|
| - } else {
|
| - getUserInfo();
|
| - }
|
| - }
|
| -}
|
| -
|
| -function onOk() {
|
| - setWaiting(true);
|
| - var abandon = /** @type {HTMLInputElement} */
|
| - (document.getElementById('abandon-host'));
|
| - if (abandon.checked) {
|
| - abandonHost = 'yes';
|
| - }
|
| - chrome.identity.getAuthToken({ 'interactive': false }, onToken);
|
| -}
|
| -
|
| -function onCancel() {
|
| - window.close();
|
| -}
|
| -
|
| -function onToggleAbandon() {
|
| - var abandon = document.getElementById('abandon-host');
|
| - var includeLogs = document.getElementById('include-logs');
|
| - var includeLogsLabel = document.getElementById('include-logs-label');
|
| - var learnMoreLink = document.getElementById('learn-more');
|
| - includeLogs.disabled = !abandon.checked;
|
| - if (abandon.checked) {
|
| - includeLogsLabel.classList.remove('disabled');
|
| - learnMoreLink.classList.remove('disabled');
|
| - } else {
|
| - includeLogsLabel.classList.add('disabled');
|
| - learnMoreLink.classList.add('disabled');
|
| - }
|
| -}
|
| -
|
| -function onToggleLogs() {
|
| - var includeLogs = document.getElementById('include-logs');
|
| - if (includeLogs.checked) {
|
| - crashServiceReportId = generateId();
|
| - } else {
|
| - crashServiceReportId = '';
|
| - }
|
| -}
|
| -
|
| -/** @param {Event} event */
|
| -function onLearnMore(event) {
|
| - event.preventDefault(); // Clicking the link should not tick the checkbox.
|
| - var learnMoreLink = document.getElementById('learn-more');
|
| - var learnMoreInfobox = document.getElementById('privacy-info');
|
| - learnMoreLink.hidden = true;
|
| - learnMoreInfobox.hidden = false;
|
| - base.resizeWindowToContent(true);
|
| -}
|
| -
|
| -function onCategorySelect() {
|
| - var feedbackCategory = /** @type {HTMLSelectElement} */
|
| - (document.getElementById('feedback-category'));
|
| - console.assert(feedbackCategory.selectedOptions.length == 1,
|
| - 'Expected exactly one selection; got ' +
|
| - feedbackCategory.selectedOptions.length + '.');
|
| - var selectedOption = /** @type {HTMLElement} */
|
| - (feedbackCategory.selectedOptions[0]);
|
| - selectedCategory = selectedOption.getAttribute('i18n-content');
|
| - var selected = selectedCategory != 'FEEDBACK_CATEGORY_SELECT';
|
| - document.getElementById('feedback-consent-ok').disabled = !selected;
|
| - document.getElementById('form-body').hidden = !selected;
|
| - base.resizeWindowToContent(false);
|
| -}
|
| -
|
| -function onLoad() {
|
| - window.addEventListener('message', onWindowMessage, false);
|
| - remoting.settings = new remoting.Settings();
|
| - l10n.localize();
|
| - var ok = document.getElementById('feedback-consent-ok');
|
| - var cancel = document.getElementById('feedback-consent-cancel');
|
| - var abandon = document.getElementById('abandon-host-label');
|
| - var includeLogs = document.getElementById('include-logs-label');
|
| - var learnMoreLink = document.getElementById('learn-more');
|
| - var feedbackCategory = document.getElementById('feedback-category');
|
| - ok.addEventListener('click', onOk, false);
|
| - cancel.addEventListener('click', onCancel, false);
|
| - abandon.addEventListener('click', onToggleAbandon, false);
|
| - includeLogs.addEventListener('click', onToggleLogs, false);
|
| - learnMoreLink.addEventListener('click', onLearnMore, false);
|
| - feedbackCategory.addEventListener('change', onCategorySelect, false);
|
| - base.resizeWindowToContent(true);
|
| -}
|
| -
|
| -/** @param {Event} event */
|
| -function onWindowMessage(event) {
|
| - applicationWindow = event.source;
|
| - var method = /** @type {string} */ (event.data['method']);
|
| - if (method == 'init') {
|
| - if (event.data['hostId']) {
|
| - hostId = /** @type {string} */ (event.data['hostId']);
|
| - }
|
| - appId = /** @type {string} */ (event.data['appId']);
|
| - connectionStats = /** @type {string} */ (event.data['connectionStats']);
|
| - consoleErrors = /** @type {string} */ (event.data['consoleErrors']);
|
| - sessionId = /** @type {string} */ (event.data['sessionId']);
|
| - }
|
| -};
|
| -
|
| -window.addEventListener('load', onLoad, false);
|
|
|