// Copyright (c) 2010 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 chromeos() {}

chromeos.connectionManager = function() {};

chromeos.connectionManager.transaction_status_callback_ = null;
chromeos.connectionManager.parent_page_url_ = 'chrome://mobilesetup';

chromeos.connectionManager.setTransactionStatus = function(status, callback) {
  chromeos.connectionManager.transaction_status_callback_ = callback;
  chromeos.connectionManager.reportTransactionStatus_(status);
};

chromeos.connectionManager.reportTransactionStatus_ = function(status) {
  const msg = {
    'type': 'reportTransactionStatusMsg',
    'domain': location.href,
    'status': status
  };
  window.parent.postMessage(msg, chromeos.connectionManager.parent_page_url_);
};
