blob: b9d030cc73eb1263d8f6aa6fae4269e6db1fcd2c [file] [log] [blame]
// Copyright 2018 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.
cr.define('app_management', function() {
class BrowserProxy {
constructor() {
/** @type {appManagement.mojom.PageCallbackRouter} */
this.callbackRouter = new appManagement.mojom.PageCallbackRouter();
/** @type {appManagement.mojom.PageHandlerInterface} */
this.handler = null;
const urlParams = new URLSearchParams(window.location.search);
const useFake = urlParams.get('fakeBackend');
if (useFake) {
this.handler = new app_management.FakePageHandler(
this.callbackRouter.createProxy());
const /** @type {!Array<App>}*/ appList = [
app_management.FakePageHandler.createApp(
'ahfgeienlihckogmohjhadlkjgocpleb', {title: 'Web Store'}),
app_management.FakePageHandler.createApp(
'aohghmighlieiainnegkcijnfilokake',
{title: 'Docs', type: apps.mojom.AppType.kExtension}),
app_management.FakePageHandler.createApp(
'blpcfgokakmgnkcojhhkbfbldkacnbeo', {title: 'Youtube'}),
app_management.FakePageHandler.createApp(
'pjkljhegncpnkpknbcohdijeoejaedia', {title: 'Gmail'}),
app_management.FakePageHandler.createApp(
'aapocclcgogkmnckokdopfmhonfmgoek', {title: 'Slide'}),
];
this.handler.setApps(appList);
} else {
this.handler = new appManagement.mojom.PageHandlerProxy();
const factory = appManagement.mojom.PageHandlerFactory.getProxy();
factory.createPageHandler(
this.callbackRouter.createProxy(), this.handler.createRequest());
}
}
}
cr.addSingletonGetter(BrowserProxy);
return {BrowserProxy: BrowserProxy};
});