blob: b849fcfe8a6dc4bb7261a660fdcbd183cfc7b061 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
|
// Copyright (c) 2012 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
function ChromeOSValidator() {
}
ChromeOSValidator.getInstance = function() {
if (!ChromeOSValidator.instance_) {
ChromeOSValidator.instance_ = new ChromeOSValidator();
}
return ChromeOSValidator.instance_;
};
ChromeOSValidator.prototype = {
LOADER_ORIGIN: 'chrome-extension://nbicjcbcmclhihdkigkjgkgafckdfcom',
LOADER_PAGE: '/background.html',
callback_: undefined,
validate: function(callback) {
this.callback_ = callback;
var msg = { method: 'validate' };
window.parent.postMessage(msg,
this.LOADER_ORIGIN + this.LOADER_PAGE);
},
initialize: function() {
window.addEventListener('message', this.onMessage.bind(this), false);
},
isValidMessage_: function(msg) {
return msg.origin == this.LOADER_ORIGIN;
},
onMessage: function(e) {
var msg = e.data;
if (msg.method == 'validationResults' && this.isValidMessage_(e)) {
if (this.callback_)
this.callback_(msg.os == 'ChromeOS');
} else {
console.log('#### ChromeOSValidator.onMessage: unknown message');
if (this.callback_)
this.callback_(false);
}
}
};
ChromeOSValidator.getInstance().initialize();
|