12f48d9572459c2c90d68e8b017b86eb843fe2a74Christopher Wiley// Copyright (c) 2010 The Chromium Authors. All rights reserved.
22f48d9572459c2c90d68e8b017b86eb843fe2a74Christopher Wiley// Use of this source code is governed by a BSD-style license that can be
32f48d9572459c2c90d68e8b017b86eb843fe2a74Christopher Wiley// found in the LICENSE file.
42f48d9572459c2c90d68e8b017b86eb843fe2a74Christopher Wiley
52f48d9572459c2c90d68e8b017b86eb843fe2a74Christopher Wiley
62f48d9572459c2c90d68e8b017b86eb843fe2a74Christopher Wileyfunction chromeos() {
72f48d9572459c2c90d68e8b017b86eb843fe2a74Christopher Wiley}
82f48d9572459c2c90d68e8b017b86eb843fe2a74Christopher Wiley
92f48d9572459c2c90d68e8b017b86eb843fe2a74Christopher Wileychromeos.connectionManager = function() {
102f48d9572459c2c90d68e8b017b86eb843fe2a74Christopher Wiley};
112f48d9572459c2c90d68e8b017b86eb843fe2a74Christopher Wiley
122f48d9572459c2c90d68e8b017b86eb843fe2a74Christopher Wileychromeos.connectionManager.device_info_callback_ = null;
132f48d9572459c2c90d68e8b017b86eb843fe2a74Christopher Wileychromeos.connectionManager.transaction_status_callback_ = null;
142f48d9572459c2c90d68e8b017b86eb843fe2a74Christopher Wileychromeos.connectionManager.parent_page_url_ = 'chrome://mobilesetup';
152f48d9572459c2c90d68e8b017b86eb843fe2a74Christopher Wiley
162f48d9572459c2c90d68e8b017b86eb843fe2a74Christopher Wileychromeos.connectionManager.getDeviceInfo = function(callback) {
172f48d9572459c2c90d68e8b017b86eb843fe2a74Christopher Wiley  chromeos.connectionManager.device_info_callback_ = callback;
182f48d9572459c2c90d68e8b017b86eb843fe2a74Christopher Wiley  chromeos.connectionManager.requestDeviceInfo_();
192f48d9572459c2c90d68e8b017b86eb843fe2a74Christopher Wiley};
202f48d9572459c2c90d68e8b017b86eb843fe2a74Christopher Wiley
212f48d9572459c2c90d68e8b017b86eb843fe2a74Christopher Wileychromeos.connectionManager.setTransactionStatus = function(status, callback) {
222f48d9572459c2c90d68e8b017b86eb843fe2a74Christopher Wiley  chromeos.connectionManager.transaction_status_callback_ = callback;
232f48d9572459c2c90d68e8b017b86eb843fe2a74Christopher Wiley  chromeos.connectionManager.reportTransactionStatus_(status);
242f48d9572459c2c90d68e8b017b86eb843fe2a74Christopher Wiley};
252f48d9572459c2c90d68e8b017b86eb843fe2a74Christopher Wiley
262f48d9572459c2c90d68e8b017b86eb843fe2a74Christopher Wileychromeos.connectionManager.reportTransactionStatus_ = function(status) {
272f48d9572459c2c90d68e8b017b86eb843fe2a74Christopher Wiley  var msg = {
282f48d9572459c2c90d68e8b017b86eb843fe2a74Christopher Wiley    'type': 'reportTransactionStatusMsg',
292f48d9572459c2c90d68e8b017b86eb843fe2a74Christopher Wiley    'domain': location.href,
302f48d9572459c2c90d68e8b017b86eb843fe2a74Christopher Wiley    'status': status
312f48d9572459c2c90d68e8b017b86eb843fe2a74Christopher Wiley  };
322f48d9572459c2c90d68e8b017b86eb843fe2a74Christopher Wiley  window.parent.postMessage(msg, chromeos.connectionManager.parent_page_url_);
332f48d9572459c2c90d68e8b017b86eb843fe2a74Christopher Wiley};
342f48d9572459c2c90d68e8b017b86eb843fe2a74Christopher Wiley
352f48d9572459c2c90d68e8b017b86eb843fe2a74Christopher Wileychromeos.connectionManager.requestDeviceInfo_ = function() {
362f48d9572459c2c90d68e8b017b86eb843fe2a74Christopher Wiley  var msg = {
372f48d9572459c2c90d68e8b017b86eb843fe2a74Christopher Wiley    'type': 'requestDeviceInfoMsg',
382f48d9572459c2c90d68e8b017b86eb843fe2a74Christopher Wiley    'domain': location.href,
392f48d9572459c2c90d68e8b017b86eb843fe2a74Christopher Wiley  };
402f48d9572459c2c90d68e8b017b86eb843fe2a74Christopher Wiley  window.parent.postMessage(msg, chromeos.connectionManager.parent_page_url_);
412f48d9572459c2c90d68e8b017b86eb843fe2a74Christopher Wiley}
422f48d9572459c2c90d68e8b017b86eb843fe2a74Christopher Wiley
432f48d9572459c2c90d68e8b017b86eb843fe2a74Christopher Wileywindow.addEventListener('message', function(e) {
442f48d9572459c2c90d68e8b017b86eb843fe2a74Christopher Wiley  if (e.data.type == 'deviceInfoMsg') {
452f48d9572459c2c90d68e8b017b86eb843fe2a74Christopher Wiley    if (chromeos.connectionManager.device_info_callback_)
462f48d9572459c2c90d68e8b017b86eb843fe2a74Christopher Wiley      chromeos.connectionManager.device_info_callback_(e.data.payload);
472f48d9572459c2c90d68e8b017b86eb843fe2a74Christopher Wiley  }
482f48d9572459c2c90d68e8b017b86eb843fe2a74Christopher Wiley});
49