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

Side by Side Diff: remoting/webapp/app_remoting/js/feedback_consent.js

Issue 964403004: [Chromoting] Enable jscompile for AppRemoting's feedback_consent page. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: sync/merge Created 5 years, 9 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
« no previous file with comments | « remoting/webapp/app_remoting/html/template_feedback_consent.html ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 'use strict'; 5 'use strict';
6 6
7 /** 7 /**
8 * @type {string} The host id corresponding to the user's VM. The @pending 8 * @type {string} The host id corresponding to the user's VM. The @pending
9 * place-holder instructs the Orchestrator to abandon any pending host, 9 * place-holder instructs the Orchestrator to abandon any pending host,
10 * and is used if no host id is provided by the main window. 10 * and is used if no host id is provided by the main window.
11 */ 11 */
12 var hostId = '@pending'; 12 var hostId = '@pending';
13 13
14 /** 14 /**
15 * @type {string} The network stats at the time the feedback consent dialog 15 * @type {string} The network stats at the time the feedback consent dialog
16 * was shown. 16 * was shown.
17 */ 17 */
18 var connectionStats = null; 18 var connectionStats = '';
19 19
20 /** 20 /**
21 * @type {string} "no" => user did not request a VM reset; "yes" => VM was 21 * @type {string} "no" => user did not request a VM reset; "yes" => VM was
22 * successfully reset; "failed" => user requested a reset, but it failed. 22 * successfully reset; "failed" => user requested a reset, but it failed.
23 */ 23 */
24 var abandonHost = 'no'; 24 var abandonHost = 'no';
25 25
26 /** 26 /**
27 * @type {Window} The main application window. 27 * @type {Window} The main application window.
28 */ 28 */
(...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after
95 crashServiceReportId = ''; 95 crashServiceReportId = '';
96 formBody.hidden = true; 96 formBody.hidden = true;
97 resizeWindow(); 97 resizeWindow();
98 } 98 }
99 99
100 /** 100 /**
101 * @return {string} A random string ID. 101 * @return {string} A random string ID.
102 */ 102 */
103 function generateId() { 103 function generateId() {
104 var idArray = new Uint8Array(20); 104 var idArray = new Uint8Array(20);
105 crypto.getRandomValues(idArray); 105 window.crypto.getRandomValues(idArray);
106 return btoa(String.fromCharCode.apply(null, idArray)); 106 return window.btoa(String.fromCharCode.apply(null, idArray));
107 } 107 }
108 108
109 /** 109 /**
110 * @param {string} token 110 * @param {string} token
111 */ 111 */
112 function onToken(token) { 112 function onToken(token) {
113 var getUserInfo = function() { 113 var getUserInfo = function() {
114 var oauth2Api = new remoting.OAuth2ApiImpl(); 114 var oauth2Api = new remoting.OAuth2ApiImpl();
115 oauth2Api.getUserInfo( 115 oauth2Api.getUserInfo(
116 onUserInfo, onUserInfo.bind(null, 'unknown', 'unknown'), token); 116 onUserInfo, onUserInfo.bind(null, 'unknown', 'unknown'), token);
117 }; 117 };
118 if (!token) { 118 if (!token) {
119 onUserInfo('unknown', 'unknown'); 119 onUserInfo('unknown', 'unknown');
120 } else { 120 } else {
121 if (abandonHost == 'yes') { 121 if (abandonHost == 'yes') {
122 var body = { 122 var body = {
123 'abandonHost': 'true', 123 'abandonHost': 'true',
124 'crashServiceReportId': crashServiceReportId 124 'crashServiceReportId': crashServiceReportId
125 }; 125 };
126 var headers = {
127 'Authorization': 'OAuth ' + token,
128 'Content-type': 'application/json'
129 };
130 var uri = remoting.settings.APP_REMOTING_API_BASE_URL + 126 var uri = remoting.settings.APP_REMOTING_API_BASE_URL +
131 '/applications/' + remoting.settings.getAppRemotingApplicationId() + 127 '/applications/' + remoting.settings.getAppRemotingApplicationId() +
132 '/hosts/' + hostId + 128 '/hosts/' + hostId +
133 '/reportIssue'; 129 '/reportIssue';
134 /** @param {XMLHttpRequest} xhr */ 130 /** @param {XMLHttpRequest} xhr */
135 var onDone = function(xhr) { 131 var onDone = function(xhr) {
136 if (xhr.status >= 200 && xhr.status < 300) { 132 if (xhr.status >= 200 && xhr.status < 300) {
137 getUserInfo(); 133 getUserInfo();
138 } else { 134 } else {
139 showError(); 135 showError();
140 } 136 }
141 }; 137 };
142 remoting.xhr.post(uri, onDone, JSON.stringify(body), headers); 138 remoting.xhr.start({
139 method: 'POST',
140 url: uri,
141 onDone: onDone,
142 jsonContent: body,
143 oauthToken: token
144 });
143 } else { 145 } else {
144 getUserInfo(); 146 getUserInfo();
145 } 147 }
146 } 148 }
147 } 149 }
148 150
149 function onOk() { 151 function onOk() {
150 setWaiting(true); 152 setWaiting(true);
151 var abandon = /** @type {HTMLInputElement} */ 153 var abandon = /** @type {HTMLInputElement} */
152 (document.getElementById('abandon-host')); 154 (document.getElementById('abandon-host'));
(...skipping 24 matching lines...) Expand all
177 179
178 function onToggleLogs() { 180 function onToggleLogs() {
179 var includeLogs = document.getElementById('include-logs'); 181 var includeLogs = document.getElementById('include-logs');
180 if (includeLogs.checked) { 182 if (includeLogs.checked) {
181 crashServiceReportId = generateId(); 183 crashServiceReportId = generateId();
182 } else { 184 } else {
183 crashServiceReportId = ''; 185 crashServiceReportId = '';
184 } 186 }
185 } 187 }
186 188
189 /** @param {Event} event */
187 function onLearnMore(event) { 190 function onLearnMore(event) {
188 event.preventDefault(); // Clicking the link should not tick the checkbox. 191 event.preventDefault(); // Clicking the link should not tick the checkbox.
189 var learnMoreLink = document.getElementById('learn-more'); 192 var learnMoreLink = document.getElementById('learn-more');
190 var learnMoreInfobox = document.getElementById('privacy-info'); 193 var learnMoreInfobox = document.getElementById('privacy-info');
191 learnMoreLink.hidden = true; 194 learnMoreLink.hidden = true;
192 learnMoreInfobox.hidden = false; 195 learnMoreInfobox.hidden = false;
193 resizeWindow(); 196 resizeWindow();
194 } 197 }
195 198
196 function resizeWindow() { 199 function resizeWindow() {
(...skipping 24 matching lines...) Expand all
221 var method = /** @type {string} */ (event.data['method']); 224 var method = /** @type {string} */ (event.data['method']);
222 if (method == 'init') { 225 if (method == 'init') {
223 if (event.data['hostId']) { 226 if (event.data['hostId']) {
224 hostId = /** @type {string} */ (event.data['hostId']); 227 hostId = /** @type {string} */ (event.data['hostId']);
225 } 228 }
226 connectionStats = /** @type {string} */ (event.data['connectionStats']); 229 connectionStats = /** @type {string} */ (event.data['connectionStats']);
227 } 230 }
228 }; 231 };
229 232
230 window.addEventListener('load', onLoad, false); 233 window.addEventListener('load', onLoad, false);
OLDNEW
« no previous file with comments | « remoting/webapp/app_remoting/html/template_feedback_consent.html ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698