| OLD | NEW |
| 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 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 const cr = (function() { | 5 const cr = (function() { |
| 6 | 6 |
| 7 /** | 7 /** |
| 8 * Whether we are using a Mac or not. | 8 * Whether we are using a Mac or not. |
| 9 * @type {boolean} | 9 * @type {boolean} |
| 10 */ | 10 */ |
| 11 const isMac = /Mac/.test(navigator.platform); | 11 const isMac = /Mac/.test(navigator.platform); |
| 12 | 12 |
| 13 /** | 13 /** |
| 14 * Whether this is on the Windows platform or not. | 14 * Whether this is on the Windows platform or not. |
| 15 * @type {boolean} | 15 * @type {boolean} |
| 16 */ | 16 */ |
| 17 const isWindows = /Win/.test(navigator.platform); | 17 const isWindows = /Win/.test(navigator.platform); |
| 18 | 18 |
| 19 /** | 19 /** |
| 20 * Whether this is on chromeOS or not. | 20 * Whether this is on chromeOS or not. |
| 21 * @type {boolean} | 21 * @type {boolean} |
| 22 */ | 22 */ |
| 23 const isChromeOS = /CrOS/.test(navigator.userAgent); | 23 const isChromeOS = /CrOS/.test(navigator.userAgent); |
| 24 | 24 |
| 25 /** | 25 /** |
| 26 * Whether this is on touchui build or not. | |
| 27 * @type {boolean} | |
| 28 */ | |
| 29 const isTouch = /Touch/.test(navigator.userAgent); | |
| 30 | |
| 31 /** | |
| 32 * Whether this is on vanilla Linux (not chromeOS). | 26 * Whether this is on vanilla Linux (not chromeOS). |
| 33 * @type {boolean} | 27 * @type {boolean} |
| 34 */ | 28 */ |
| 35 const isLinux = /Linux/.test(navigator.userAgent); | 29 const isLinux = /Linux/.test(navigator.userAgent); |
| 36 | 30 |
| 37 /** | 31 /** |
| 38 * Whether this uses GTK or not. | 32 * Whether this uses GTK or not. |
| 39 * @type {boolean} | 33 * @type {boolean} |
| 40 */ | 34 */ |
| 41 const isGTK = /GTK/.test(chrome.toolkit); | 35 const isGTK = /GTK/.test(chrome.toolkit); |
| 42 | 36 |
| 43 /** | 37 /** |
| 44 * Whether this uses the views toolkit or not. | 38 * Whether this uses the views toolkit or not. |
| 45 * @type {boolean} | 39 * @type {boolean} |
| 46 */ | 40 */ |
| 47 const isViews = /views/.test(chrome.toolkit); | 41 const isViews = /views/.test(chrome.toolkit); |
| 48 | 42 |
| 49 /** | 43 /** |
| 44 * Whether this window is optimized for touch-based input. |
| 45 * @type {boolean} |
| 46 */ |
| 47 const isTouchOptimized = !!chrome.touchOptimized; |
| 48 |
| 49 /** |
| 50 * Sets the os and toolkit attributes in the <html> element so that platform | 50 * Sets the os and toolkit attributes in the <html> element so that platform |
| 51 * specific css rules can be applied. | 51 * specific css rules can be applied. |
| 52 */ | 52 */ |
| 53 function enablePlatformSpecificCSSRules() { | 53 function enablePlatformSpecificCSSRules() { |
| 54 if (isMac) | 54 if (isMac) |
| 55 doc.documentElement.setAttribute('os', 'mac'); | 55 doc.documentElement.setAttribute('os', 'mac'); |
| 56 if (isWindows) | 56 if (isWindows) |
| 57 doc.documentElement.setAttribute('os', 'windows'); | 57 doc.documentElement.setAttribute('os', 'windows'); |
| 58 if (isChromeOS) | 58 if (isChromeOS) |
| 59 doc.documentElement.setAttribute('os', 'chromeos'); | 59 doc.documentElement.setAttribute('os', 'chromeos'); |
| 60 if (isLinux) | 60 if (isLinux) |
| 61 doc.documentElement.setAttribute('os', 'linux'); | 61 doc.documentElement.setAttribute('os', 'linux'); |
| 62 if (isGTK) | 62 if (isGTK) |
| 63 doc.documentElement.setAttribute('toolkit', 'gtk'); | 63 doc.documentElement.setAttribute('toolkit', 'gtk'); |
| 64 if (isViews) | 64 if (isViews) |
| 65 doc.documentElement.setAttribute('toolkit', 'views'); | 65 doc.documentElement.setAttribute('toolkit', 'views'); |
| 66 if (isTouchOptimized) |
| 67 doc.documentElement.setAttribute('touch-optimized', ''); |
| 66 } | 68 } |
| 67 | 69 |
| 68 /** | 70 /** |
| 69 * Builds an object structure for the provided namespace path, | 71 * Builds an object structure for the provided namespace path, |
| 70 * ensuring that names that already exist are not overwritten. For | 72 * ensuring that names that already exist are not overwritten. For |
| 71 * example: | 73 * example: |
| 72 * "a.b.c" -> a = {};a.b={};a.b.c={}; | 74 * "a.b.c" -> a = {};a.b={};a.b.c={}; |
| 73 * @param {string} name Name of the object that this file defines. | 75 * @param {string} name Name of the object that this file defines. |
| 74 * @param {*=} opt_object The object to expose at the end of the path. | 76 * @param {*=} opt_object The object to expose at the end of the path. |
| 75 * @param {Object=} opt_objectToExportTo The object to add the path to; | 77 * @param {Object=} opt_objectToExportTo The object to add the path to; |
| (...skipping 289 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 365 }; | 367 }; |
| 366 } | 368 } |
| 367 | 369 |
| 368 return { | 370 return { |
| 369 addSingletonGetter: addSingletonGetter, | 371 addSingletonGetter: addSingletonGetter, |
| 370 isChromeOS: isChromeOS, | 372 isChromeOS: isChromeOS, |
| 371 isMac: isMac, | 373 isMac: isMac, |
| 372 isWindows: isWindows, | 374 isWindows: isWindows, |
| 373 isLinux: isLinux, | 375 isLinux: isLinux, |
| 374 isViews: isViews, | 376 isViews: isViews, |
| 375 isTouch: isTouch, | 377 isTouchOptimized: isTouchOptimized, |
| 376 enablePlatformSpecificCSSRules: enablePlatformSpecificCSSRules, | 378 enablePlatformSpecificCSSRules: enablePlatformSpecificCSSRules, |
| 377 define: define, | 379 define: define, |
| 378 defineProperty: defineProperty, | 380 defineProperty: defineProperty, |
| 379 PropertyKind: PropertyKind, | 381 PropertyKind: PropertyKind, |
| 380 createUid: createUid, | 382 createUid: createUid, |
| 381 getUid: getUid, | 383 getUid: getUid, |
| 382 dispatchSimpleEvent: dispatchSimpleEvent, | 384 dispatchSimpleEvent: dispatchSimpleEvent, |
| 383 dispatchPropertyChange: dispatchPropertyChange, | 385 dispatchPropertyChange: dispatchPropertyChange, |
| 384 | 386 |
| 385 /** | 387 /** |
| 386 * The document that we are currently using. | 388 * The document that we are currently using. |
| 387 * @type {!Document} | 389 * @type {!Document} |
| 388 */ | 390 */ |
| 389 get doc() { | 391 get doc() { |
| 390 return doc; | 392 return doc; |
| 391 }, | 393 }, |
| 392 withDoc: withDoc, | 394 withDoc: withDoc, |
| 393 Event: CrEvent | 395 Event: CrEvent |
| 394 }; | 396 }; |
| 395 })(); | 397 })(); |
| OLD | NEW |