loleaflet: allow browser detection when loading html page
Move the code related to browser detection immediately when loading html page to be accessible to all javascript libraries Change-Id: I442cf5ab8e9452bffa5a760768e8a3e38c1c3c21 Reviewed-on: https://gerrit.libreoffice.org/c/online/+/88744 Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com> Reviewed-by: Henry Castro <hcastro@collabora.com>
This commit is contained in:
parent
cefcfcfe19
commit
e10e9335c5
4 changed files with 141 additions and 190 deletions
|
@ -11,7 +11,6 @@ var deps = {
|
|||
'core/Class.js',
|
||||
'core/Events.js',
|
||||
'core/Socket.js',
|
||||
'core/Browser.js',
|
||||
'core/Matrix.js',
|
||||
'geometry/Point.js',
|
||||
'geometry/Bounds.js',
|
||||
|
|
|
@ -1,6 +1,146 @@
|
|||
/* -*- js-indent-level: 8 -*- */
|
||||
(function (global) {
|
||||
|
||||
var ua = navigator.userAgent.toLowerCase(),
|
||||
uv = navigator.vendor.toLowerCase(),
|
||||
doc = document.documentElement,
|
||||
|
||||
ie = 'ActiveXObject' in window,
|
||||
|
||||
webkit = ua.indexOf('webkit') !== -1,
|
||||
phantomjs = ua.indexOf('phantom') !== -1,
|
||||
android23 = ua.search('android [23]') !== -1,
|
||||
chrome = ua.indexOf('chrome') !== -1,
|
||||
gecko = ua.indexOf('gecko') !== -1 && !webkit && !window.opera && !ie,
|
||||
safari = !chrome && (ua.indexOf('safari') !== -1 || uv.indexOf('apple') == 0),
|
||||
|
||||
win = navigator.platform.indexOf('Win') === 0,
|
||||
|
||||
mobile = typeof orientation !== 'undefined' || ua.indexOf('mobile') !== -1,
|
||||
cypressTest = ua.indexOf('cypress') !== -1,
|
||||
msPointer = !window.PointerEvent && window.MSPointerEvent,
|
||||
pointer = (window.PointerEvent && navigator.pointerEnabled && navigator.maxTouchPoints) || msPointer,
|
||||
|
||||
ie3d = ie && ('transition' in doc.style),
|
||||
webkit3d = ('WebKitCSSMatrix' in window) && ('m11' in new window.WebKitCSSMatrix()) && !android23,
|
||||
gecko3d = 'MozPerspective' in doc.style,
|
||||
opera12 = 'OTransition' in doc.style;
|
||||
|
||||
var touch = !window.L_NO_TOUCH && (pointer || 'ontouchstart' in window ||
|
||||
(window.DocumentTouch && document instanceof window.DocumentTouch));
|
||||
|
||||
var isInternetExplorer = (navigator.userAgent.toLowerCase().indexOf('msie') != -1 ||
|
||||
navigator.userAgent.toLowerCase().indexOf('trident') != -1);
|
||||
|
||||
global.L = {};
|
||||
global.L.Browser = {
|
||||
|
||||
// @property ie: Boolean
|
||||
// `true` for all Internet Explorer versions (not Edge).
|
||||
ie: ie,
|
||||
|
||||
// @property ielt9: Boolean
|
||||
// `true` for Internet Explorer versions less than 9.
|
||||
ielt9: ie && !document.addEventListener,
|
||||
|
||||
// @property edge: Boolean
|
||||
// `true` for the Edge web browser.
|
||||
edge: 'msLaunchUri' in navigator && !('documentMode' in document),
|
||||
|
||||
// @property webkit: Boolean
|
||||
// `true` for webkit-based browsers like Chrome and Safari (including mobile versions).
|
||||
webkit: webkit,
|
||||
|
||||
// @property gecko: Boolean
|
||||
// `true` for gecko-based browsers like Firefox.
|
||||
gecko: gecko,
|
||||
|
||||
// @property android: Boolean
|
||||
// `true` for any browser running on an Android platform.
|
||||
android: ua.indexOf('android') !== -1,
|
||||
|
||||
// @property android23: Boolean
|
||||
// `true` for browsers running on Android 2 or Android 3.
|
||||
android23: android23,
|
||||
|
||||
// @property chrome: Boolean
|
||||
// `true` for the Chrome browser.
|
||||
chrome: chrome,
|
||||
|
||||
// @property safari: Boolean
|
||||
// `true` for the Safari browser.
|
||||
safari: safari,
|
||||
|
||||
// @property win: Boolean
|
||||
// `true` when the browser is running in a Windows platform
|
||||
win: win,
|
||||
|
||||
// @property ie3d: Boolean
|
||||
// `true` for all Internet Explorer versions supporting CSS transforms.
|
||||
ie3d: ie3d,
|
||||
|
||||
// @property isInternetExplorer: Boolean
|
||||
// `true` for Internet Explorer
|
||||
isInternetExplorer: isInternetExplorer,
|
||||
|
||||
// @property webkit3d: Boolean
|
||||
// `true` for webkit-based browsers supporting CSS transforms.
|
||||
webkit3d: webkit3d,
|
||||
|
||||
// @property gecko3d: Boolean
|
||||
// `true` for gecko-based browsers supporting CSS transforms.
|
||||
gecko3d: gecko3d,
|
||||
|
||||
// @property opera12: Boolean
|
||||
// `true` for the Opera browser supporting CSS transforms (version 12 or later).
|
||||
opera12: opera12,
|
||||
|
||||
// @property any3d: Boolean
|
||||
// `true` for all browsers supporting CSS transforms.
|
||||
any3d: !window.L_DISABLE_3D && (ie3d || webkit3d || gecko3d) && !opera12 && !phantomjs,
|
||||
|
||||
|
||||
// @property mobile: Boolean
|
||||
// `true` for all browsers running in a mobile device.
|
||||
mobile: mobile,
|
||||
|
||||
// @property mobileWebkit: Boolean
|
||||
// `true` for all webkit-based browsers in a mobile device.
|
||||
mobileWebkit: mobile && webkit,
|
||||
|
||||
// @property mobileWebkit3d: Boolean
|
||||
// `true` for all webkit-based browsers in a mobile device supporting CSS transforms.
|
||||
mobileWebkit3d: mobile && webkit3d,
|
||||
|
||||
// @property mobileOpera: Boolean
|
||||
// `true` for the Opera browser in a mobile device.
|
||||
mobileOpera: mobile && window.opera,
|
||||
|
||||
// @property mobileGecko: Boolean
|
||||
// `true` for gecko-based browsers running in a mobile device.
|
||||
mobileGecko: mobile && gecko,
|
||||
|
||||
// @property cypressTest: Boolean
|
||||
// `true` when the browser run by cypress
|
||||
cypressTest: cypressTest,
|
||||
|
||||
// @property touch: Boolean
|
||||
// `true` for all browsers supporting [touch events](https://developer.mozilla.org/docs/Web/API/Touch_events).
|
||||
touch: !!touch,
|
||||
|
||||
// @property msPointer: Boolean
|
||||
// `true` for browsers implementing the Microsoft touch events model (notably IE10).
|
||||
msPointer: !!msPointer,
|
||||
|
||||
// @property pointer: Boolean
|
||||
// `true` for all browsers supporting [pointer events](https://msdn.microsoft.com/en-us/library/dn433244%28v=vs.85%29.aspx).
|
||||
pointer: !!pointer,
|
||||
|
||||
// @property retina: Boolean
|
||||
// `true` for browsers on a high-resolution "retina" screen.
|
||||
retina: (window.devicePixelRatio || (window.screen.deviceXDPI / window.screen.logicalXDPI)) > 1
|
||||
};
|
||||
|
||||
document.addEventListener('contextmenu', function(e) {
|
||||
if (e.preventDefault) {
|
||||
e.preventDefault();
|
||||
|
|
|
@ -1,29 +1,3 @@
|
|||
/* -*- js-indent-level: 8 -*- */
|
||||
var L = {
|
||||
version: '0.8-dev'
|
||||
};
|
||||
|
||||
function expose() {
|
||||
var oldL = window.L;
|
||||
|
||||
L.noConflict = function () {
|
||||
window.L = oldL;
|
||||
return this;
|
||||
};
|
||||
|
||||
window.L = L;
|
||||
}
|
||||
|
||||
// define Leaflet for Node module pattern loaders, including Browserify
|
||||
if (typeof module === 'object' && typeof module.exports === 'object') {
|
||||
module.exports = L;
|
||||
|
||||
// define Leaflet as an AMD module
|
||||
} else if (typeof define === 'function' && define.amd) {
|
||||
define(L);
|
||||
}
|
||||
|
||||
// define Leaflet as a global L variable, saving the original L to restore later if needed
|
||||
if (typeof window !== 'undefined') {
|
||||
expose();
|
||||
}
|
||||
window.L.version = '0.8-dev';
|
||||
|
|
|
@ -1,162 +0,0 @@
|
|||
/* -*- js-indent-level: 8 -*- */
|
||||
/*
|
||||
* @namespace Browser
|
||||
* @aka L.Browser
|
||||
*
|
||||
* A namespace with static properties for browser/feature detection used by Leaflet internally.
|
||||
*
|
||||
* @example
|
||||
*
|
||||
* ```js
|
||||
* if (L.Browser.ielt9) {
|
||||
* alert('Upgrade your browser, dude!');
|
||||
* }
|
||||
* ```
|
||||
*/
|
||||
|
||||
(function () {
|
||||
|
||||
var ua = navigator.userAgent.toLowerCase(),
|
||||
uv = navigator.vendor.toLowerCase(),
|
||||
doc = document.documentElement,
|
||||
|
||||
ie = 'ActiveXObject' in window,
|
||||
|
||||
webkit = ua.indexOf('webkit') !== -1,
|
||||
phantomjs = ua.indexOf('phantom') !== -1,
|
||||
android23 = ua.search('android [23]') !== -1,
|
||||
chrome = ua.indexOf('chrome') !== -1,
|
||||
gecko = ua.indexOf('gecko') !== -1 && !webkit && !window.opera && !ie,
|
||||
safari = !chrome && (ua.indexOf('safari') !== -1 || uv.indexOf('apple') == 0),
|
||||
|
||||
win = navigator.platform.indexOf('Win') === 0,
|
||||
|
||||
mobile = typeof orientation !== 'undefined' || ua.indexOf('mobile') !== -1,
|
||||
cypressTest = ua.indexOf('cypress') !== -1,
|
||||
msPointer = !window.PointerEvent && window.MSPointerEvent,
|
||||
pointer = (window.PointerEvent && navigator.pointerEnabled && navigator.maxTouchPoints) || msPointer,
|
||||
|
||||
ie3d = ie && ('transition' in doc.style),
|
||||
webkit3d = ('WebKitCSSMatrix' in window) && ('m11' in new window.WebKitCSSMatrix()) && !android23,
|
||||
gecko3d = 'MozPerspective' in doc.style,
|
||||
opera12 = 'OTransition' in doc.style;
|
||||
|
||||
|
||||
var touch = !window.L_NO_TOUCH && (pointer || 'ontouchstart' in window ||
|
||||
(window.DocumentTouch && document instanceof window.DocumentTouch));
|
||||
|
||||
var isInternetExplorer = (navigator.userAgent.toLowerCase().indexOf('msie') != -1 ||
|
||||
navigator.userAgent.toLowerCase().indexOf('trident') != -1);
|
||||
|
||||
L.Browser = {
|
||||
|
||||
// @property ie: Boolean
|
||||
// `true` for all Internet Explorer versions (not Edge).
|
||||
ie: ie,
|
||||
|
||||
// @property ielt9: Boolean
|
||||
// `true` for Internet Explorer versions less than 9.
|
||||
ielt9: ie && !document.addEventListener,
|
||||
|
||||
// @property edge: Boolean
|
||||
// `true` for the Edge web browser.
|
||||
edge: 'msLaunchUri' in navigator && !('documentMode' in document),
|
||||
|
||||
// @property webkit: Boolean
|
||||
// `true` for webkit-based browsers like Chrome and Safari (including mobile versions).
|
||||
webkit: webkit,
|
||||
|
||||
// @property gecko: Boolean
|
||||
// `true` for gecko-based browsers like Firefox.
|
||||
gecko: gecko,
|
||||
|
||||
// @property android: Boolean
|
||||
// `true` for any browser running on an Android platform.
|
||||
android: ua.indexOf('android') !== -1,
|
||||
|
||||
// @property android23: Boolean
|
||||
// `true` for browsers running on Android 2 or Android 3.
|
||||
android23: android23,
|
||||
|
||||
// @property chrome: Boolean
|
||||
// `true` for the Chrome browser.
|
||||
chrome: chrome,
|
||||
|
||||
// @property safari: Boolean
|
||||
// `true` for the Safari browser.
|
||||
safari: safari,
|
||||
|
||||
|
||||
// @property win: Boolean
|
||||
// `true` when the browser is running in a Windows platform
|
||||
win: win,
|
||||
|
||||
|
||||
// @property ie3d: Boolean
|
||||
// `true` for all Internet Explorer versions supporting CSS transforms.
|
||||
ie3d: ie3d,
|
||||
|
||||
// @property isInternetExplorer: Boolean
|
||||
// `true` for Internet Explorer
|
||||
isInternetExplorer: isInternetExplorer,
|
||||
|
||||
// @property webkit3d: Boolean
|
||||
// `true` for webkit-based browsers supporting CSS transforms.
|
||||
webkit3d: webkit3d,
|
||||
|
||||
// @property gecko3d: Boolean
|
||||
// `true` for gecko-based browsers supporting CSS transforms.
|
||||
gecko3d: gecko3d,
|
||||
|
||||
// @property opera12: Boolean
|
||||
// `true` for the Opera browser supporting CSS transforms (version 12 or later).
|
||||
opera12: opera12,
|
||||
|
||||
// @property any3d: Boolean
|
||||
// `true` for all browsers supporting CSS transforms.
|
||||
any3d: !window.L_DISABLE_3D && (ie3d || webkit3d || gecko3d) && !opera12 && !phantomjs,
|
||||
|
||||
|
||||
// @property mobile: Boolean
|
||||
// `true` for all browsers running in a mobile device.
|
||||
mobile: mobile,
|
||||
|
||||
// @property mobileWebkit: Boolean
|
||||
// `true` for all webkit-based browsers in a mobile device.
|
||||
mobileWebkit: mobile && webkit,
|
||||
|
||||
// @property mobileWebkit3d: Boolean
|
||||
// `true` for all webkit-based browsers in a mobile device supporting CSS transforms.
|
||||
mobileWebkit3d: mobile && webkit3d,
|
||||
|
||||
// @property mobileOpera: Boolean
|
||||
// `true` for the Opera browser in a mobile device.
|
||||
mobileOpera: mobile && window.opera,
|
||||
|
||||
// @property mobileGecko: Boolean
|
||||
// `true` for gecko-based browsers running in a mobile device.
|
||||
mobileGecko: mobile && gecko,
|
||||
|
||||
// @property cypressTest: Boolean
|
||||
// `true` when the browser run by cypress
|
||||
cypressTest: cypressTest,
|
||||
|
||||
// @property touch: Boolean
|
||||
// `true` for all browsers supporting [touch events](https://developer.mozilla.org/docs/Web/API/Touch_events).
|
||||
touch: !!touch,
|
||||
|
||||
// @property msPointer: Boolean
|
||||
// `true` for browsers implementing the Microsoft touch events model (notably IE10).
|
||||
msPointer: !!msPointer,
|
||||
|
||||
// @property pointer: Boolean
|
||||
// `true` for all browsers supporting [pointer events](https://msdn.microsoft.com/en-us/library/dn433244%28v=vs.85%29.aspx).
|
||||
pointer: !!pointer,
|
||||
|
||||
|
||||
// @property retina: Boolean
|
||||
// `true` for browsers on a high-resolution "retina" screen.
|
||||
retina: (window.devicePixelRatio || (window.screen.deviceXDPI / window.screen.logicalXDPI)) > 1
|
||||
};
|
||||
|
||||
}());
|
Loading…
Reference in a new issue