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

Side by Side Diff: remoting/webapp/base/js/server_log_entry.js

Issue 1154023007: [Chromoting] Fix os detection logic in logs. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Reviewer's feedback Created 5 years, 6 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/base/js/platform_unittest.js ('k') | remoting/webapp/files.gni » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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 /** 5 /**
6 * @fileoverview 6 * @fileoverview
7 * A class of server log entries. 7 * A class of server log entries.
8 * 8 *
9 * Any changes to the values here need to be coordinated with the host and 9 * Any changes to the values here need to be coordinated with the host and
10 * server/log proto code. 10 * server/log proto code.
(...skipping 121 matching lines...) Expand 10 before | Expand all | Expand 10 after
132 remoting.ServerLogEntry.KEY_ENCODE_LATENCY_ = "encode-latency"; 132 remoting.ServerLogEntry.KEY_ENCODE_LATENCY_ = "encode-latency";
133 /** @private */ 133 /** @private */
134 remoting.ServerLogEntry.KEY_DECODE_LATENCY_ = "decode-latency"; 134 remoting.ServerLogEntry.KEY_DECODE_LATENCY_ = "decode-latency";
135 /** @private */ 135 /** @private */
136 remoting.ServerLogEntry.KEY_RENDER_LATENCY_ = "render-latency"; 136 remoting.ServerLogEntry.KEY_RENDER_LATENCY_ = "render-latency";
137 /** @private */ 137 /** @private */
138 remoting.ServerLogEntry.KEY_ROUNDTRIP_LATENCY_ = "roundtrip-latency"; 138 remoting.ServerLogEntry.KEY_ROUNDTRIP_LATENCY_ = "roundtrip-latency";
139 139
140 /** @private */ 140 /** @private */
141 remoting.ServerLogEntry.KEY_OS_NAME_ = 'os-name'; 141 remoting.ServerLogEntry.KEY_OS_NAME_ = 'os-name';
142 /** @private */
143 remoting.ServerLogEntry.VALUE_OS_NAME_WINDOWS_ = 'Windows';
144 /** @private */
145 remoting.ServerLogEntry.VALUE_OS_NAME_LINUX_ = 'Linux';
146 /** @private */
147 remoting.ServerLogEntry.VALUE_OS_NAME_MAC_ = 'Mac';
148 /** @private */
149 remoting.ServerLogEntry.VALUE_OS_NAME_CHROMEOS_ = 'ChromeOS';
150 142
151 /** @private */ 143 /** @private */
152 remoting.ServerLogEntry.KEY_OS_VERSION_ = 'os-version'; 144 remoting.ServerLogEntry.KEY_OS_VERSION_ = 'os-version';
153 145
154 /** @private */ 146 /** @private */
155 remoting.ServerLogEntry.KEY_CPU_ = 'cpu'; 147 remoting.ServerLogEntry.KEY_CPU_ = 'cpu';
156 148
157 /** @private */ 149 /** @private */
158 remoting.ServerLogEntry.KEY_BROWSER_VERSION_ = 'browser-version'; 150 remoting.ServerLogEntry.KEY_BROWSER_VERSION_ = 'browser-version';
159 151
(...skipping 210 matching lines...) Expand 10 before | Expand all | Expand 10 after
370 * @param {string} sessionId 362 * @param {string} sessionId
371 */ 363 */
372 remoting.ServerLogEntry.prototype.addSessionIdField = function(sessionId) { 364 remoting.ServerLogEntry.prototype.addSessionIdField = function(sessionId) {
373 this.set_(remoting.ServerLogEntry.KEY_SESSION_ID_, sessionId); 365 this.set_(remoting.ServerLogEntry.KEY_SESSION_ID_, sessionId);
374 } 366 }
375 367
376 /** 368 /**
377 * Adds fields describing the host to this log entry. 369 * Adds fields describing the host to this log entry.
378 */ 370 */
379 remoting.ServerLogEntry.prototype.addClientOSFields = function() { 371 remoting.ServerLogEntry.prototype.addClientOSFields = function() {
380 var host = remoting.ServerLogEntry.getHostData_(); 372 var systemInfo = remoting.getSystemInfo();
381 if (host) { 373 if (systemInfo) {
382 if (host.os_name.length > 0) { 374 if (systemInfo.osName.length > 0) {
383 this.set_(remoting.ServerLogEntry.KEY_OS_NAME_, host.os_name); 375 this.set_(remoting.ServerLogEntry.KEY_OS_NAME_, systemInfo.osName);
384 } 376 }
385 if (host.os_version.length > 0) { 377 if (systemInfo.osVersion.length > 0) {
386 this.set_(remoting.ServerLogEntry.KEY_OS_VERSION_, host.os_version); 378 this.set_(remoting.ServerLogEntry.KEY_OS_VERSION_, systemInfo.osVersion);
387 } 379 }
388 if (host.cpu.length > 0) { 380 if (systemInfo.cpu.length > 0) {
389 this.set_(remoting.ServerLogEntry.KEY_CPU_, host.cpu); 381 this.set_(remoting.ServerLogEntry.KEY_CPU_, systemInfo.cpu);
390 } 382 }
391 } 383 }
392 }; 384 };
393 385
394 /** 386 /**
395 * Extracts host data from the userAgent string.
396 *
397 * @private
398 * @return {{os_name:string, os_version:string, cpu:string} | null}
399 */
400 remoting.ServerLogEntry.getHostData_ = function() {
401 return remoting.ServerLogEntry.extractHostDataFrom_(navigator.userAgent);
402 };
403
404 /**
405 * Extracts host data from the given userAgent string.
406 *
407 * @private
408 * @param {string} s
409 * @return {{os_name:string, os_version:string, cpu:string} | null}
410 */
411 remoting.ServerLogEntry.extractHostDataFrom_ = function(s) {
412 // Sample userAgent strings:
413 // 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.2 ' +
414 // '(KHTML, like Gecko) Chrome/15.0.874.106 Safari/535.2'
415 // 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/535.8 ' +
416 // '(KHTML, like Gecko) Chrome/17.0.933.0 Safari/535.8'
417 // 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_6_8) AppleWebKit/535.1 ' +
418 // '(KHTML, like Gecko) Chrome/14.0.835.202 Safari/535.1'
419 // 'Mozilla/5.0 (X11; CrOS i686 14.811.154) AppleWebKit/535.1 ' +
420 // '(KHTML, like Gecko) Chrome/14.0.835.204 Safari/535.1'
421 var match = new RegExp('Windows NT ([0-9\\.]*)').exec(s);
422 if (match && (match.length >= 2)) {
423 return {
424 'os_name': remoting.ServerLogEntry.VALUE_OS_NAME_WINDOWS_,
425 'os_version': match[1],
426 'cpu': ''
427 };
428 }
429 match = new RegExp('Linux ([a-zA-Z0-9_]*)').exec(s);
430 if (match && (match.length >= 2)) {
431 return {
432 'os_name': remoting.ServerLogEntry.VALUE_OS_NAME_LINUX_,
433 'os_version' : '',
434 'cpu': match[1]
435 };
436 }
437 match = new RegExp('([a-zA-Z]*) Mac OS X ([0-9_]*)').exec(s);
438 if (match && (match.length >= 3)) {
439 return {
440 'os_name': remoting.ServerLogEntry.VALUE_OS_NAME_MAC_,
441 'os_version': match[2].replace(/_/g, '.'),
442 'cpu': match[1]
443 };
444 }
445 match = new RegExp('CrOS ([a-zA-Z0-9]*) ([0-9.]*)').exec(s);
446 if (match && (match.length >= 3)) {
447 return {
448 'os_name': remoting.ServerLogEntry.VALUE_OS_NAME_CHROMEOS_,
449 'os_version': match[2],
450 'cpu': match[1]
451 };
452 }
453 return null;
454 };
455
456 /**
457 * Adds a field to this log entry specifying the time in seconds since the start 387 * Adds a field to this log entry specifying the time in seconds since the start
458 * of the session to the current event. 388 * of the session to the current event.
459 * @param {number} sessionDurationInSeconds 389 * @param {number} sessionDurationInSeconds
460 */ 390 */
461 remoting.ServerLogEntry.prototype.addSessionDuration = 391 remoting.ServerLogEntry.prototype.addSessionDuration =
462 function(sessionDurationInSeconds) { 392 function(sessionDurationInSeconds) {
463 this.set_(remoting.ServerLogEntry.KEY_SESSION_DURATION_SECONDS_, 393 this.set_(remoting.ServerLogEntry.KEY_SESSION_DURATION_SECONDS_,
464 String(sessionDurationInSeconds)); 394 String(sessionDurationInSeconds));
465 }; 395 };
466 396
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
503 }; 433 };
504 434
505 /** 435 /**
506 * Adds a field specifying the application ID to this log entry. 436 * Adds a field specifying the application ID to this log entry.
507 * @return {void} Nothing. 437 * @return {void} Nothing.
508 */ 438 */
509 remoting.ServerLogEntry.prototype.addApplicationId = function() { 439 remoting.ServerLogEntry.prototype.addApplicationId = function() {
510 this.set_(remoting.ServerLogEntry.KEY_APP_ID_, chrome.runtime.id); 440 this.set_(remoting.ServerLogEntry.KEY_APP_ID_, chrome.runtime.id);
511 }; 441 };
512 442
OLDNEW
« no previous file with comments | « remoting/webapp/base/js/platform_unittest.js ('k') | remoting/webapp/files.gni » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698