Only grant permissions to new extensions from sync if they have the expected version
[chromium-blink-merge.git] / chrome / browser / resources / settings / on_startup_page / startup_urls_page.js
blobf39a86c62d1d7791d67d8e77e415ff809d31f49c
1 // Copyright 2015 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 /**
6  * @fileoverview 'cr-settings-startup-urls-page' is the settings page
7  * containing the urls that will be opened when chrome is started.
8  *
9  * Example:
10  *
11  *    <neon-animated-pages>
12  *      <cr-settings-startup-urls-page prefs="{{prefs}}">
13  *      </cr-settings-startup-urls-page>
14  *      ... other pages ...
15  *    </neon-animated-pages>
16  *
17  * @group Chrome Settings Elements
18  * @element cr-settings-startup-urls-page
19  */
20 Polymer({
21   is: 'cr-settings-startup-urls-page',
23   properties: {
24     /**
25      * Preferences state.
26      */
27     prefs: {
28       type: Object,
29       notify: true,
30     },
32     /**
33      * Route for the page.
34      */
35     route: {
36       type: String,
37       value: ''
38     },
40     /**
41      * Whether the page is a subpage.
42      */
43     subpage: {
44       type: Boolean,
45       value: true,
46       readOnly: true
47     },
49     /**
50      * ID of the page.
51      */
52     PAGE_ID: {
53       type: String,
54       value: 'startup-urls',
55       readOnly: true
56     },
58     /**
59      * Title for the page header and navigation menu.
60      */
61     pageTitle: {
62       type: String,
63       value: loadTimeData.getString('onStartupSetPages'),
64       readOnly: true
65     },
67     /**
68      * Name of the 'core-icon' to be shown in the settings-page-header.
69      */
70     icon: {
71       type: String,
72       value: 'image:brightness-1',
73       readOnly: true
74     },
76     newUrl: {
77       type: String,
78     },
80     /** @type {!Array<string>} */
81     savedUrlList: {
82       type: Array,
83       value: function() { return []; }
84     },
85   },
87   attached: function() {
88     this.savedUrlList = this.prefs.session.startup_urls.value.slice();
89   },
91   /** @private */
92   onUseCurrentPagesTap_: function() {
93     // TODO(dschuyler): I'll be making a chrome.send call here.
94   },
96   /** @private */
97   onCancelTap_: function() {
98     this.set('prefs.session.startup_urls.value', this.savedUrlList.slice());
99   },
101   /** @private */
102   onOkTap_: function() {
103     var value = this.newUrl && this.newUrl.trim();
104     if (!value)
105       return;
106     this.push('prefs.session.startup_urls.value', value);
107     this.newUrl = undefined;
108   },
110   /** @private */
111   onRemoveUrlTap_: function(e) {
112     this.splice('prefs.session.startup_urls.value', e.model.index, 1);
113   },