blob: 74cae0a7c6b60e3d0ef0390d960e7366d56b125a [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.
/**
* @fileoverview A helper object used by the welcome page to interact with
* the browser.
*/
/** @interface */
export class WelcomeBrowserProxy {
/** @param {?string} redirectUrl the URL to go to, after signing in. */
handleActivateSignIn(redirectUrl) {}
handleUserDecline() {}
/** @param {boolean=} replace */
goToNewTabPage(replace) {}
/** @param {string} url */
goToURL(url) {}
}
/** @implements {WelcomeBrowserProxy} */
export class WelcomeBrowserProxyImpl {
/** @override */
handleActivateSignIn(redirectUrl) {
chrome.send('handleActivateSignIn', redirectUrl ? [redirectUrl] : []);
}
/** @override */
handleUserDecline() {
chrome.send('handleUserDecline');
}
/** @override */
goToNewTabPage(replace) {
if (replace) {
window.location.replace('chrome://newtab');
} else {
window.location.assign('chrome://newtab');
}
}
/** @override */
goToURL(url) {
window.location.assign(url);
}
/** @return {!WelcomeBrowserProxy} */
static getInstance() {
return instance || (instance = new WelcomeBrowserProxyImpl());
}
/** @param {!WelcomeBrowserProxy} obj */
static setInstance(obj) {
instance = obj;
}
}
/** @type {?WelcomeBrowserProxy} */
let instance = null;