OLD | NEW |
1 // Copyright 2015 The Chromium Authors. All rights reserved. | 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 | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 cr.define('extensions', function() { | 5 cr.define('extensions', function() { |
6 'use strict'; | 6 'use strict'; |
7 | 7 |
8 /** | 8 /** |
9 * @constructor | 9 * @constructor |
10 * @implements {extensions.ErrorPageDelegate} | 10 * @implements {extensions.ErrorPageDelegate} |
(...skipping 12 matching lines...) Expand all Loading... |
23 managerReady: function(manager) { | 23 managerReady: function(manager) { |
24 /** @private {extensions.Manager} */ | 24 /** @private {extensions.Manager} */ |
25 this.manager_ = manager; | 25 this.manager_ = manager; |
26 this.manager_.toolbar.setDelegate(this); | 26 this.manager_.toolbar.setDelegate(this); |
27 this.manager_.set('itemDelegate', this); | 27 this.manager_.set('itemDelegate', this); |
28 this.manager_.packDialog.set('delegate', this); | 28 this.manager_.packDialog.set('delegate', this); |
29 this.manager_.loadError.set('delegate', this); | 29 this.manager_.loadError.set('delegate', this); |
30 this.manager_.errorPage.delegate = this; | 30 this.manager_.errorPage.delegate = this; |
31 var keyboardShortcuts = this.manager_.keyboardShortcuts; | 31 var keyboardShortcuts = this.manager_.keyboardShortcuts; |
32 keyboardShortcuts.addEventListener( | 32 keyboardShortcuts.addEventListener( |
33 'shortcut-updated', | 33 'shortcut-updated', this.onExtensionCommandUpdated_.bind(this)); |
34 this.onExtensionCommandUpdated_.bind(this)); | |
35 keyboardShortcuts.addEventListener( | 34 keyboardShortcuts.addEventListener( |
36 'shortcut-capture-started', | 35 'shortcut-capture-started', |
37 this.onShortcutCaptureChanged_.bind(this, true)); | 36 this.onShortcutCaptureChanged_.bind(this, true)); |
38 keyboardShortcuts.addEventListener( | 37 keyboardShortcuts.addEventListener( |
39 'shortcut-capture-ended', | 38 'shortcut-capture-ended', |
40 this.onShortcutCaptureChanged_.bind(this, false)); | 39 this.onShortcutCaptureChanged_.bind(this, false)); |
41 chrome.developerPrivate.onProfileStateChanged.addListener( | 40 chrome.developerPrivate.onProfileStateChanged.addListener( |
42 this.onProfileStateChanged_.bind(this)); | 41 this.onProfileStateChanged_.bind(this)); |
43 chrome.developerPrivate.onItemStateChanged.addListener( | 42 chrome.developerPrivate.onItemStateChanged.addListener( |
44 this.onItemStateChanged_.bind(this)); | 43 this.onItemStateChanged_.bind(this)); |
45 chrome.developerPrivate.getExtensionsInfo( | 44 chrome.developerPrivate.getExtensionsInfo( |
46 {includeDisabled: true, includeTerminated: true}, | 45 {includeDisabled: true, includeTerminated: true}, |
47 function(extensions) { | 46 function(extensions) { |
48 /** @private {Array<chrome.developerPrivate.ExtensionInfo>} */ | 47 /** @private {Array<chrome.developerPrivate.ExtensionInfo>} */ |
49 this.extensions_ = extensions; | 48 this.extensions_ = extensions; |
50 for (let extension of extensions) | 49 for (let extension of extensions) |
51 this.manager_.addItem(extension); | 50 this.manager_.addItem(extension); |
52 | 51 |
53 this.manager_.initPage(); | 52 this.manager_.initPage(); |
54 }.bind(this)); | 53 }.bind(this)); |
55 chrome.developerPrivate.getProfileConfiguration( | 54 chrome.developerPrivate.getProfileConfiguration( |
56 this.onProfileStateChanged_.bind(this)); | 55 this.onProfileStateChanged_.bind(this)); |
57 }, | 56 }, |
58 | 57 |
59 /** | 58 /** |
60 * @param {chrome.developerPrivate.ProfileInfo} profileInfo | 59 * @param {chrome.developerPrivate.ProfileInfo} profileInfo |
61 * @private | 60 * @private |
62 */ | 61 */ |
63 onProfileStateChanged_: function(profileInfo) { | 62 onProfileStateChanged_: function(profileInfo) { |
64 this.manager_.set('inDevMode', profileInfo.inDeveloperMode); | 63 this.manager_.set('inDevMode', profileInfo.inDeveloperMode); |
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
110 * Opens a file browser dialog for the user to select a file (or directory). | 109 * Opens a file browser dialog for the user to select a file (or directory). |
111 * @param {chrome.developerPrivate.SelectType} selectType | 110 * @param {chrome.developerPrivate.SelectType} selectType |
112 * @param {chrome.developerPrivate.FileType} fileType | 111 * @param {chrome.developerPrivate.FileType} fileType |
113 * @return {Promise<string>} The promise to be resolved with the selected | 112 * @return {Promise<string>} The promise to be resolved with the selected |
114 * path. | 113 * path. |
115 */ | 114 */ |
116 chooseFilePath_: function(selectType, fileType) { | 115 chooseFilePath_: function(selectType, fileType) { |
117 return new Promise(function(resolve, reject) { | 116 return new Promise(function(resolve, reject) { |
118 chrome.developerPrivate.choosePath( | 117 chrome.developerPrivate.choosePath( |
119 selectType, fileType, function(path) { | 118 selectType, fileType, function(path) { |
120 if (chrome.runtime.lastError && | 119 if (chrome.runtime.lastError && |
121 chrome.runtime.lastError != 'File selection was canceled.') { | 120 chrome.runtime.lastError != 'File selection was canceled.') { |
122 reject(chrome.runtime.lastError); | 121 reject(chrome.runtime.lastError); |
123 } else { | 122 } else { |
124 resolve(path || ''); | 123 resolve(path || ''); |
125 } | 124 } |
126 }); | 125 }); |
127 }); | 126 }); |
128 }, | 127 }, |
129 | 128 |
130 /** | 129 /** |
131 * Updates an extension command. | 130 * Updates an extension command. |
132 * @param {!CustomEvent} e | 131 * @param {!CustomEvent} e |
133 * @private | 132 * @private |
134 */ | 133 */ |
135 onExtensionCommandUpdated_: function(e) { | 134 onExtensionCommandUpdated_: function(e) { |
136 chrome.developerPrivate.updateExtensionCommand({ | 135 chrome.developerPrivate.updateExtensionCommand({ |
(...skipping 21 matching lines...) Expand all Loading... |
158 /** | 157 /** |
159 * Attempts to load an unpacked extension, optionally as another attempt at | 158 * Attempts to load an unpacked extension, optionally as another attempt at |
160 * a previously-specified load. | 159 * a previously-specified load. |
161 * @param {string=} opt_retryGuid | 160 * @param {string=} opt_retryGuid |
162 * @private | 161 * @private |
163 */ | 162 */ |
164 loadUnpackedHelper_: function(opt_retryGuid) { | 163 loadUnpackedHelper_: function(opt_retryGuid) { |
165 chrome.developerPrivate.loadUnpacked( | 164 chrome.developerPrivate.loadUnpacked( |
166 {failQuietly: true, populateError: true, retryGuid: opt_retryGuid}, | 165 {failQuietly: true, populateError: true, retryGuid: opt_retryGuid}, |
167 (loadError) => { | 166 (loadError) => { |
168 if (chrome.runtime.lastError && | 167 if (chrome.runtime.lastError && |
169 chrome.runtime.lastError.message != | 168 chrome.runtime.lastError.message != |
170 'File selection was canceled.') { | 169 'File selection was canceled.') { |
171 throw new Error(chrome.runtime.lastError.message); | 170 throw new Error(chrome.runtime.lastError.message); |
172 } | 171 } |
173 if (loadError) { | 172 if (loadError) { |
174 this.manager_.loadError.loadError = loadError; | 173 this.manager_.loadError.loadError = loadError; |
175 this.manager_.loadError.show(); | 174 this.manager_.loadError.show(); |
176 } | 175 } |
177 }); | 176 }); |
178 }, | 177 }, |
179 | 178 |
180 /** @override */ | 179 /** @override */ |
181 deleteItem: function(id) { | 180 deleteItem: function(id) { |
182 if (this.isDeleting_) | 181 if (this.isDeleting_) |
183 return; | 182 return; |
184 this.isDeleting_ = true; | 183 this.isDeleting_ = true; |
185 chrome.management.uninstall(id, {showConfirmDialog: true}, function() { | 184 chrome.management.uninstall(id, {showConfirmDialog: true}, function() { |
186 // The "last error" was almost certainly the user canceling the dialog. | 185 // The "last error" was almost certainly the user canceling the dialog. |
187 // Do nothing. We only check it so we don't get noisy logs. | 186 // Do nothing. We only check it so we don't get noisy logs. |
(...skipping 130 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
318 resolve(code); | 317 resolve(code); |
319 }); | 318 }); |
320 }); | 319 }); |
321 }, | 320 }, |
322 }; | 321 }; |
323 | 322 |
324 cr.addSingletonGetter(Service); | 323 cr.addSingletonGetter(Service); |
325 | 324 |
326 return {Service: Service}; | 325 return {Service: Service}; |
327 }); | 326 }); |
OLD | NEW |