summaryrefslogtreecommitdiff
path: root/chromium/ui/webui/resources/cr_components/chromeos/cellular_setup/mojo_interface_provider.js
blob: f8061446de45c9a8372e48ef845f65089f28d77f (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
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
// Copyright 2019 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.

// clang-format off
// #import 'chrome://resources/mojo/mojo/public/js/mojo_bindings_lite.js';
// #import 'chrome://resources/mojo/url/mojom/url.mojom-lite.js';
// #import 'chrome://resources/mojo/mojo/public/mojom/base/big_buffer.mojom-lite.js';
// #import 'chrome://resources/mojo/mojo/public/mojom/base/string16.mojom-lite.js';
// #import 'chrome://resources/mojo/ash/services/cellular_setup/public/mojom/cellular_setup.mojom-lite.js';
// #import 'chrome://resources/mojo/ash/services/cellular_setup/public/mojom/esim_manager.mojom-lite.js';
// clang-format on

cr.define('cellular_setup', function() {
  let cellularRemote = null;
  let eSimManagerRemote = null;
  let isTesting = false;

  /**
   * @param {?ash.cellularSetup.mojom.CellularSetupRemote}
   *        testCellularRemote A test cellular remote
   */
  /* #export */ function setCellularSetupRemoteForTesting(testCellularRemote) {
    cellularRemote = testCellularRemote;
    isTesting = true;
  }

  /**
   * @returns {!ash.cellularSetup.mojom.CellularSetupRemote}
   */
  /* #export */ function getCellularSetupRemote() {
    if (cellularRemote) {
      return cellularRemote;
    }

    cellularRemote = ash.cellularSetup.mojom.CellularSetup.getRemote();

    return cellularRemote;
  }

  /**
   * @param {?ash.cellularSetup.mojom.ESimManagerRemote}
   *        testESimManagerRemote A test eSimManager remote
   */
  /* #export */ function setESimManagerRemoteForTesting(testESimManagerRemote) {
    eSimManagerRemote = testESimManagerRemote;
    isTesting = true;
  }

  /**
   * @returns {!ash.cellularSetup.mojom.ESimManagerRemote}
   */
  /* #export */ function getESimManagerRemote() {
    if (eSimManagerRemote) {
      return eSimManagerRemote;
    }

    eSimManagerRemote = ash.cellularSetup.mojom.ESimManager.getRemote();

    return eSimManagerRemote;
  }

  /**
   * @param {!ash.cellularSetup.mojom.ESimManagerObserverInterface} observer
   * @returns {?ash.cellularSetup.mojom.ESimManagerObserverReceiver}
   */
  /* #export */ function observeESimManager(observer) {
    if (isTesting) {
      getESimManagerRemote().addObserver(
          /** @type {!ash.cellularSetup.mojom.ESimManagerObserverRemote} */
          (observer));
      return null;
    }

    const receiver =
        new ash.cellularSetup.mojom.ESimManagerObserverReceiver(observer);
    getESimManagerRemote().addObserver(receiver.$.bindNewPipeAndPassRemote());
    return receiver;
  }

  // #cr_define_end
  return {
    setCellularSetupRemoteForTesting,
    getCellularSetupRemote,
    setESimManagerRemoteForTesting,
    getESimManagerRemote,
    observeESimManager,
  };
});