Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Make AVIM restartless #9

Open
1ec5 opened this issue Jan 26, 2014 · 2 comments
Open

Make AVIM restartless #9

1ec5 opened this issue Jan 26, 2014 · 2 comments

Comments

@1ec5
Copy link
Owner

1ec5 commented Jan 26, 2014

AVIM should be a restartless extension.

This task primarily consists of converting the complex web of overlays into functions that programmatically build AVIM’s UI. We’re partway there with the new toolbar.

Upon installation, bootstrap.js would manually build the UI in every existing window and register for new windows using FUEL/STEEL.

Upon uninstallation, it would delete window.avim from every existing window, remove UI, and remove the new window listener. The XPCOM component probably doesn’t need any changes.

1ec5 added a commit that referenced this issue Jan 26, 2014
1ec5 added a commit that referenced this issue Apr 13, 2015
Began migrating from declarative XUL overlays to data-driven but nonetheless procedural JavaScript. 😢 Registered resource: aliases to manually import transformer.js as a JavaScript code module instead of an XPCOM component and the preferences file as a subscript, all while hopefully maintaining Firefox 2 compatibility.

The upside is that AVIM will be restartless, and the redundant menu definitions can be combined.

Fixes #9.
@1ec5
Copy link
Owner Author

1ec5 commented Apr 15, 2015

(Moved to #132.)

@1ec5
Copy link
Owner Author

1ec5 commented Apr 17, 2015

In true AVIM fashion, as soon as you enable or disable the extension, it takes effect throughout the application – no need to reload any webpages. However, the event handlers still fire after AVIM is disabled, triggering silent JavaScript errors as they try to talk to the window’s AVIM controller, which has already been unloaded.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant