// 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. import {addSingletonGetter} from 'chrome://resources/js/cr.m.js'; /** * @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); } } addSingletonGetter(WelcomeBrowserProxyImpl);