summaryrefslogtreecommitdiff
path: root/chromium/chrome/browser/resources/settings/on_startup_page/startup_urls_page_browser_proxy.js
blob: df50bb96cde3de2dc1ff1c2c2ed1dd76be502325 (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
// Copyright 2016 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.

/**
 * @typedef {{
 *   modelIndex: number,
 *   title: string,
 *   tooltip: string,
 *   url: string
 * }}
 */
let StartupPageInfo;

cr.define('settings', function() {
  /** @interface */
  class StartupUrlsPageBrowserProxy {
    loadStartupPages() {}
    useCurrentPages() {}

    /**
     * @param {string} url
     * @return {!Promise<boolean>} Whether the URL is valid.
     */
    validateStartupPage(url) {}

    /**
     * @param {string} url
     * @return {!Promise<boolean>} Whether the URL was actually added, or
     *     ignored because it was invalid.
     */
    addStartupPage(url) {}

    /**
     * @param {number} modelIndex
     * @param {string} url
     * @return {!Promise<boolean>} Whether the URL was actually edited, or
     *     ignored because it was invalid.
     */
    editStartupPage(modelIndex, url) {}

    /** @param {number} index */
    removeStartupPage(index) {}
  }

  /**
   * @implements {settings.StartupUrlsPageBrowserProxy}
   */
  class StartupUrlsPageBrowserProxyImpl {
    /** @override */
    loadStartupPages() {
      chrome.send('onStartupPrefsPageLoad');
    }

    /** @override */
    useCurrentPages() {
      chrome.send('setStartupPagesToCurrentPages');
    }

    /** @override */
    validateStartupPage(url) {
      return cr.sendWithPromise('validateStartupPage', url);
    }

    /** @override */
    addStartupPage(url) {
      return cr.sendWithPromise('addStartupPage', url);
    }

    /** @override */
    editStartupPage(modelIndex, url) {
      return cr.sendWithPromise('editStartupPage', modelIndex, url);
    }

    /** @override */
    removeStartupPage(index) {
      chrome.send('removeStartupPage', [index]);
    }
  }

  cr.addSingletonGetter(StartupUrlsPageBrowserProxyImpl);

  return {
    StartupUrlsPageBrowserProxy: StartupUrlsPageBrowserProxy,
    StartupUrlsPageBrowserProxyImpl: StartupUrlsPageBrowserProxyImpl,
  };
});