88 lines
2.5 KiB
JavaScript
88 lines
2.5 KiB
JavaScript
// Copyright 2007 The Closure Library Authors. All Rights Reserved.
|
|
//
|
|
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
// you may not use this file except in compliance with the License.
|
|
// You may obtain a copy of the License at
|
|
//
|
|
// http://www.apache.org/licenses/LICENSE-2.0
|
|
//
|
|
// Unless required by applicable law or agreed to in writing, software
|
|
// distributed under the License is distributed on an "AS-IS" BASIS,
|
|
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
// See the License for the specific language governing permissions and
|
|
// limitations under the License.
|
|
|
|
/**
|
|
* @fileoverview Newer versions of iPhoto include a Safari plugin which allows
|
|
* the browser to detect if iPhoto is installed. Adapted from detection code
|
|
* built into the Mac.com Gallery RSS feeds.
|
|
* @author brenneman@google.com (Shawn Brenneman)
|
|
* @see ../demos/useragent.html
|
|
*/
|
|
|
|
|
|
goog.provide('goog.userAgent.iphoto');
|
|
|
|
goog.require('goog.string');
|
|
goog.require('goog.userAgent');
|
|
|
|
|
|
(function() {
|
|
var hasIphoto = false;
|
|
var version = '';
|
|
|
|
/**
|
|
* The plugin description string contains the version number as in the form
|
|
* 'iPhoto 700'. This returns just the version number as a dotted string,
|
|
* e.g., '7.0.0', compatible with {@code goog.string.compareVersions}.
|
|
* @param {string} desc The version string.
|
|
* @return {string} The dotted version.
|
|
*/
|
|
function getIphotoVersion(desc) {
|
|
var matches = desc.match(/\d/g);
|
|
return matches.join('.');
|
|
}
|
|
|
|
if (goog.userAgent.WEBKIT &&
|
|
navigator.mimeTypes &&
|
|
navigator.mimeTypes.length > 0) {
|
|
var iphoto = navigator.mimeTypes['application/photo'];
|
|
|
|
if (iphoto) {
|
|
hasIphoto = true;
|
|
var description = iphoto['description'];
|
|
|
|
if (description) {
|
|
version = getIphotoVersion(description);
|
|
}
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Whether we can detect that the user has iPhoto installed.
|
|
* @type {boolean}
|
|
*/
|
|
goog.userAgent.iphoto.HAS_IPHOTO = hasIphoto;
|
|
|
|
|
|
/**
|
|
* The version of iPhoto installed if found.
|
|
* @type {string}
|
|
*/
|
|
goog.userAgent.iphoto.VERSION = version;
|
|
|
|
})();
|
|
|
|
|
|
/**
|
|
* Whether the installed version of iPhoto is as new or newer than a given
|
|
* version.
|
|
* @param {string} version The version to check.
|
|
* @return {boolean} Whether the installed version of iPhoto is as new or newer
|
|
* than a given version.
|
|
*/
|
|
goog.userAgent.iphoto.isVersion = function(version) {
|
|
return goog.string.compareVersions(
|
|
goog.userAgent.iphoto.VERSION, version) >= 0;
|
|
};
|