summaryrefslogtreecommitdiff
path: root/chromium/chrome/browser/resources/backloader/web/cros_validator.js
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();