Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(286)

Side by Side Diff: chrome/browser/resources/extensions/pack_extension_overlay.js

Issue 958803004: [Extensions] Make chrome://extensions use developerPrivate for packing crxs (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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 /** 6 /**
7 * PackExtensionOverlay class 7 * PackExtensionOverlay class
8 * Encapsulated handling of the 'Pack Extension' overlay page. 8 * Encapsulated handling of the 'Pack Extension' overlay page.
9 * @constructor 9 * @constructor
10 */ 10 */
(...skipping 30 matching lines...) Expand all
41 extensions.ExtensionSettings.showOverlay(null); 41 extensions.ExtensionSettings.showOverlay(null);
42 }, 42 },
43 43
44 /** 44 /**
45 * Handles a click on the pack button. 45 * Handles a click on the pack button.
46 * @param {Event} e The click event. 46 * @param {Event} e The click event.
47 */ 47 */
48 handleCommit_: function(e) { 48 handleCommit_: function(e) {
49 var extensionPath = $('extension-root-dir').value; 49 var extensionPath = $('extension-root-dir').value;
50 var privateKeyPath = $('extension-private-key').value; 50 var privateKeyPath = $('extension-private-key').value;
51 chrome.send('pack', [extensionPath, privateKeyPath, 0]); 51 chrome.developerPrivate.packDirectory(
52 extensionPath, privateKeyPath, 0, this.onPackResponse_.bind(this));
52 }, 53 },
53 54
54 /** 55 /**
55 * Utility function which asks the C++ to show a platform-specific file 56 * Utility function which asks the C++ to show a platform-specific file
56 * select dialog, and fire |callback| with the |filePath| that resulted. 57 * select dialog, and set the value property of |node| to the selected path.
57 * |selectType| can be either 'file' or 'folder'. |operation| can be 'load' 58 * @param {SelectType} selectType The type of selection to use.
58 * or 'pem' which are signals to the C++ to do some operation-specific 59 * @param {FileType} fileType The type of file to select.
59 * configuration. 60 * @param {HTMLInputElement} node The node to set the value of.
60 * @private 61 * @private
61 */ 62 */
62 showFileDialog_: function(selectType, operation, callback) { 63 showFileDialog_: function(selectType, fileType, node) {
63 window.handleFilePathSelected = function(filePath) { 64 chrome.developerPrivate.choosePath(selectType, fileType, function(path) {
64 callback(filePath); 65 // Last error is set if the user canceled the dialog.
65 window.handleFilePathSelected = function() {}; 66 if (!chrome.runtime.lastError && path)
66 }; 67 node.value = path;
67 68 });
68 chrome.send('packExtensionSelectFilePath', [selectType, operation]);
69 }, 69 },
70 70
71 /** 71 /**
72 * Handles the showing of the extension directory browser. 72 * Handles the showing of the extension directory browser.
73 * @param {Event} e Change event. 73 * @param {Event} e Change event.
74 * @private 74 * @private
75 */ 75 */
76 handleBrowseExtensionDir_: function(e) { 76 handleBrowseExtensionDir_: function(e) {
77 this.showFileDialog_('folder', 'load', function(filePath) { 77 this.showFileDialog_(
78 $('extension-root-dir').value = filePath; 78 'FOLDER',
79 }); 79 'LOAD',
80 /** @type {HTMLInputElement} */ ($('extension-root-dir')));
80 }, 81 },
81 82
82 /** 83 /**
83 * Handles the showing of the extension private key file. 84 * Handles the showing of the extension private key file.
84 * @param {Event} e Change event. 85 * @param {Event} e Change event.
85 * @private 86 * @private
86 */ 87 */
87 handleBrowsePrivateKey_: function(e) { 88 handleBrowsePrivateKey_: function(e) {
88 this.showFileDialog_('file', 'pem', function(filePath) { 89 this.showFileDialog_(
89 $('extension-private-key').value = filePath; 90 'FILE',
90 }); 91 'PEM',
92 /** @type {HTMLInputElement} */ ($('extension-private-key')));
93 },
94
95 /**
96 * Handles a response from a packDirectory call.
97 * @param {PackDirectoryResponse} response The response of the pack call.
98 * @private
99 */
100 onPackResponse_: function(response) {
101 /** @type {string} */
102 var alertTitle;
103 /** @type {string} */
104 var alertOk;
105 /** @type {string} */
106 var alertCancel;
107 /** @type {function()} */
108 var alertOkCallback;
109 /** @type {function()} */
110 var alertCancelCallback;
111
112 var closeAlert = function() {
113 extensions.ExtensionSettings.showOverlay(null);
114 };
115
116 switch (response.status) {
117 case 'SUCCESS':
118 alertTitle = loadTimeData.getString('packExtensionOverlay');
119 alertOk = loadTimeData.getString('ok');
120 alertOkCallback = closeAlert;
121 // No 'Cancel' option.
122 break;
123 case 'WARNING':
124 alertTitle = loadTimeData.getString('packExtensionWarningTitle'),
125 alertOk = loadTimeData.getString('packExtensionProceedAnyway'),
126 alertCancel = loadTimeData.getString('cancel'),
Dan Beam 2015/02/27 22:57:17 , -> ;
Devlin 2015/02/27 23:38:37 Done.
127 alertOkCallback = function() {
128 chrome.developerPrivate.packDirectory(
129 response.item_path,
130 response.pem_path,
131 response.override_flags,
132 this.onPackResponse_.bind(this));
133 closeAlert();
134 }.bind(this);
135 alertCancelCallback = closeAlert;
136 break;
137 case 'ERROR':
138 alertTitle = loadTimeData.getString('packExtensionErrorTitle'),
139 alertOk = loadTimeData.getString('ok'),
Dan Beam 2015/02/27 22:57:17 , -> ;
Devlin 2015/02/27 23:38:38 Done.
140 alertOkCallback = function() {
141 extensions.ExtensionSettings.showOverlay(
142 $('pack-extension-overlay'));
143 };
144 // No 'Cancel' option.
145 break;
146 default:
147 assert(false);
Dan Beam 2015/02/27 22:57:17 assertNotReached(); also maybe return; ?
Devlin 2015/02/27 23:38:38 Done.
148 }
149
150 alertOverlay.setValues(alertTitle,
151 response.message,
152 alertOk,
153 alertCancel,
154 alertOkCallback,
155 alertCancelCallback);
156 extensions.ExtensionSettings.showOverlay($('alertOverlay'));
91 }, 157 },
92 }; 158 };
93 159
94 /**
95 * Wrap up the pack process by showing the success |message| and closing
96 * the overlay.
97 * @param {string} message The message to show to the user.
98 */
99 PackExtensionOverlay.showSuccessMessage = function(message) {
100 alertOverlay.setValues(
101 loadTimeData.getString('packExtensionOverlay'),
102 message,
103 loadTimeData.getString('ok'),
104 '',
105 function() {
106 extensions.ExtensionSettings.showOverlay(null);
107 });
108 extensions.ExtensionSettings.showOverlay($('alertOverlay'));
109 };
110
111 /**
112 * Post an alert overlay showing |message|, and upon acknowledgement, close
113 * the alert overlay and return to showing the PackExtensionOverlay.
114 * @param {string} message The error message.
115 */
116 PackExtensionOverlay.showError = function(message) {
117 alertOverlay.setValues(
118 loadTimeData.getString('packExtensionErrorTitle'),
119 message,
120 loadTimeData.getString('ok'),
121 '',
122 function() {
123 extensions.ExtensionSettings.showOverlay($('pack-extension-overlay'));
124 });
125 extensions.ExtensionSettings.showOverlay($('alertOverlay'));
126 };
127
128 // Export 160 // Export
129 return { 161 return {
130 PackExtensionOverlay: PackExtensionOverlay 162 PackExtensionOverlay: PackExtensionOverlay
131 }; 163 };
132 }); 164 });
OLDNEW
« no previous file with comments | « chrome/browser/resources/extensions/extensions.js ('k') | chrome/browser/ui/webui/extensions/extension_settings_handler.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698