Skip to content
This repository has been archived by the owner on Sep 6, 2021. It is now read-only.

Validate and install extensions (final) #3158

Merged
merged 44 commits into from
Mar 19, 2013
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
44 commits
Select commit Hold shift + click to select a range
827916a
initial package validation. includes metadata and checks for
dangoor Mar 8, 2013
8559e71
move package.json into node directory (which makes more sense)
dangoor Mar 11, 2013
383a86c
error messages from package validator are now localized
dangoor Mar 11, 2013
ceef1b5
now handles error conditions, invalid zip files, invalid json and
dangoor Mar 12, 2013
4ec00a2
removed redundancy in the test code
dangoor Mar 12, 2013
4d7bf63
Added flag to showModalDialogUsingTemplate() to allow dialogs to not …
njx Mar 6, 2013
ec0b0ae
Initial implementation of Install dialog, with a mock backend and som…
njx Mar 9, 2013
dd73be8
added comments
dangoor Mar 12, 2013
b445f8b
checks for a semver compatible version number
dangoor Mar 12, 2013
9592314
add invalid version number to strings
dangoor Mar 12, 2013
2a6abc3
update test to reflect updated version number in basic-valid-extension
dangoor Mar 12, 2013
7b13bc0
adds check for main.js
dangoor Mar 12, 2013
8043fb2
Moved installation dialog into extensibility folder
njx Mar 12, 2013
8d118c6
ignore node_modules everywhere for jshint
dangoor Mar 12, 2013
047b054
Disable install button while url field is empty. Added unit tests for…
njx Mar 12, 2013
5f0a531
Converted install extension dialog from singleton to a class
njx Mar 12, 2013
d2e365e
Added unit test for re-disabling Install button if url field becomes …
njx Mar 12, 2013
9078146
Make InstallerExtensionDialog.show() public (the class itself is priv…
njx Mar 12, 2013
a84d9ed
handles basic installation
dangoor Mar 13, 2013
0902092
installation handles the case of extensions that are already
dangoor Mar 13, 2013
39c271b
removes the requirement for a package.json
dangoor Mar 13, 2013
da69600
wired installation through to the client
dangoor Mar 13, 2013
7d8fb47
remove test that is no longer relevant (package.json can be missing
dangoor Mar 13, 2013
51d0e90
created an automated test for installation that verifies
dangoor Mar 13, 2013
3efc683
added comments and a string for ALREADY_INSTALLED
dangoor Mar 13, 2013
b8c192b
Ensure that new state is set before processing the state transition
njx Mar 13, 2013
347ea7c
Added unit tests for cases where installer succeeds/fails synchronously
njx Mar 13, 2013
f416ecb
switch to the .spec.js convention used by brackets-jasmine
dangoor Mar 14, 2013
0aaeb45
handles zip files with directories and removes common prefixes
dangoor Mar 14, 2013
4a5b1d0
pause reading the file so that the directory can be created
dangoor Mar 14, 2013
203416c
forgot to check for the presence of the nested file in the
dangoor Mar 14, 2013
0f27582
Extensions that are not compatible with the brackets API version
dangoor Mar 14, 2013
15c3c48
Initial implementation of downloading extension file from URL. Clicki…
peterflynn Mar 13, 2013
0f230a9
Support canceling pending downloads. Cleaner API from UI layer to Pac…
peterflynn Mar 14, 2013
7ab4110
Hook up the full installation workflow to the UI. Caveats:
peterflynn Mar 14, 2013
f656564
Emit more structured error messages from extension install process. F…
peterflynn Mar 15, 2013
9e17569
added some fail cases and updated some comments based on review
dangoor Mar 15, 2013
ad4af1c
renamed "extensions" domain to "extensionManager" for clarity of
dangoor Mar 15, 2013
42286eb
more review feedback follup. pausing extractStream rather than
dangoor Mar 15, 2013
7765ee3
guards against callbacks being called more than once
dangoor Mar 15, 2013
b74b554
* Fix race condition where we didn't wait for downloaded file to flus…
peterflynn Mar 15, 2013
93ada7d
validates package names based on CommonJS spec to ensure that they wi…
dangoor Mar 18, 2013
bc261fc
change the DISABLED_DIRECTORY state to an Error object rather than
dangoor Mar 18, 2013
2f41bc4
* Use "request" library to manage downloading: handles HTTPS & redire…
peterflynn Mar 15, 2013
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion Gruntfile.js
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ module.exports = function (grunt) {
'!src/extensions/**/thirdparty/**/*.js',
'!src/extensions/dev/**',
'!src/extensions/disabled/**',
'!src/extensions/**/node_modules/**/*.js',
'!**/node_modules/**/*.js',
'!src/**/*-min.js',
'!src/**/*.min.js'
],
Expand Down
1 change: 1 addition & 0 deletions package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
{
"name": "Brackets",
"version": "0.22.0-0",
"apiVersion": "0.22.0",
"homepage": "http://brackets.io",
"issues": {
"url": "http://github.com/adobe/brackets/issues"
Expand Down
2 changes: 2 additions & 0 deletions src/brackets.js
Original file line number Diff line number Diff line change
Expand Up @@ -104,6 +104,7 @@ define(function (require, exports, module) {
require("help/HelpCommandHandlers");
require("search/FindInFiles");
require("search/FindReplace");
require("extensibility/InstallExtensionDialog");

PerfUtils.addMeasurement("brackets module dependencies resolved");

Expand Down Expand Up @@ -146,6 +147,7 @@ define(function (require, exports, module) {
NativeApp : require("utils/NativeApp"),
ExtensionUtils : ExtensionUtils,
UpdateNotification : require("utils/UpdateNotification"),
InstallExtensionDialog : require("extensibility/InstallExtensionDialog"),
extensions : {}, // place for extensions to hang modules for unit tests
doneLoading : false
};
Expand Down
1 change: 1 addition & 0 deletions src/command/Commands.js
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,7 @@ define(function (require, exports, module) {
exports.FILE_LIVE_HIGHLIGHT = "file.previewHighlight";
exports.FILE_PROJECT_SETTINGS = "file.projectSettings";
exports.FILE_RENAME = "file.rename";
exports.FILE_INSTALL_EXTENSION = "file.installExtension";
exports.FILE_QUIT = "file.quit"; // string must MATCH string in native code (brackets_extensions)

// EDIT
Expand Down
2 changes: 2 additions & 0 deletions src/command/DefaultMenus.js
Original file line number Diff line number Diff line change
Expand Up @@ -56,6 +56,8 @@ define(function (require, exports, module) {
menu.addMenuItem(Commands.FILE_LIVE_FILE_PREVIEW);
menu.addMenuItem(Commands.FILE_LIVE_HIGHLIGHT);
menu.addMenuItem(Commands.FILE_PROJECT_SETTINGS);
menu.addMenuDivider();
menu.addMenuItem(Commands.FILE_INSTALL_EXTENSION);

// supress redundant quit menu item on mac
if (brackets.platform !== "mac" && !brackets.inBrowser) {
Expand Down
1 change: 1 addition & 0 deletions src/config.json
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@
},
"name": "Brackets",
"version": "0.22.0-0",
"apiVersion": "0.22.0",
"homepage": "http://brackets.io",
"issues": {
"url": "http://github.com/adobe/brackets/issues"
Expand Down
Loading