Labs/Jetpack/Release Notes/1.12
Contents
About
The Add-on SDK is a software development kit that provides a set of tools and APIs for building, testing, and packaging Firefox add-ons.
Installation
Obtain the SDK in your favorite compression format:
Then unpack the archive, open the addon-sdk-1.12/README.txt file, and follow its instructions.
Major Changes Since 1.11
New layout
To prepare for landing in Firefox we've reorganized the module tree in the SDK. We've removed the "addon-kit" and "api-utils" packages, and instead all modules are shipped under the top-level "lib" directory:
- high-level modules are directly under "lib/sdk"
- low-level modules are under subdirectories of "lib/sdk"
Jeff blogged about this change, and there's a page in the documentation explaining the new structure.
We now have support for menulists and radio buttons, courtesy of a pull request from community contributor taku0.
See the simple-prefs API docs to learn how to add menulists and radio buttons to your monster preferences.
Tabs API now works on Firefox for Android
We now support the tabs API on Firefox for Android.
Known Issues
See the complete list of known issues and requests for enhancement. We've listed some of the issues you're most likely to encounter separately below.
Can't load content from "data" directory into an iframe. Reported on the forum: https://forums.mozilla.org/addons/viewtopic.php?f=27&t=11689 - it's not possible to load content from an HTML file in an add-on's data directory into an iframe.
"TypeError: window.tabs is undefined" when opening a tab, in some circumstances.
In a content script, adding an event listener to window by assignment doesn't work:
window.onclick = function() { window.alert("You clicked me 1"); };
The Google Analytics script does not register page views made using SDK objects such as panel and page-worker, because cookies are set incorrectly.
The context-menu's SelectionContext does not always fire in iframes.
Use of the deprecated global postMessage()
function in a content script will give the error "ReferenceError: console is not defined".
console.log() calls from a script included in a panel's HTML (as in this example: https://builder.addons.mozilla.org/addon/1042246/latest/) don't work: nothing is logged, either to the terminal console or the web console.
Some keyboard events are fired twice on some elements inside a panel.
Selection Context Menu Item throws error on right-click of form button.
Specified panel width ignored when Firefox is maximized.
Items of context-menu module appear only after successful page load. While the page is still loading they don't appear.
This behavior is by design because the worker for an item-window pair is created when the window finishes loading. Until a worker is created, context-menu can't tell whether the item should be shown or not, so the item isn't shown until the worker is created.
If context-menu supported contentScriptWhen like page-mod does, this could probably be done by setting it to "start". Right now consumers are effectively locked in to "ready".
Access to Full Screen API blocked from context-menu API.
passwords.search()
function "crashes" with some profiles.
If you change location in a content script using:
window.location="http://mozilla.org";
Nothing happens, instead, `location` attribute is just replaced by a string.
When an html select element (e.g. a drop-down menu) in web content inside a panel has focus, clicking *outside* the panel does not close the panel.
If you create a context menu item for the selection type, and right-click a form button, the context menu does not appear and an error is logged. It's not yet clear whether this is specific to form buttons or not.
The tab array is not reordered to match the on-screen order of the tabs after a tab move event takes place.
The SDK will give an error if your package name contains spaces or Unicode characters.
If your add-on stores data using the simple-storage API, the data is not cleaned up when your add-on is uninstalled.
If an add-on is uninstalled while it's disabled, it's not notified of uninstall. If the add-on needs to do some special cleanup on uninstall, like removing persistent storage such as a file, this won't be possible if it has been disabled.
By default, widgets are placed on the add-on bar, and given a height to match the height of that bar. If the user moves the widget to a different toolbar, and that toolbar has a different height, the widget's height is not updated accordingly.
A widget containing HTML content gets no icon in the Customize Toolbar Window.
When a user removes a widget from the toolbar its detach
event does not get sent.
Selection events for a page are not sent if the page did not fully load (for example, because the user stopped the page loading).
If you have copy of mozrunner installed on your system, the cfx test
command may not work correctly.
There is a workaround for this.
Feedback and Bug Reports
We'd love to hear any feedback you have regarding this release! You can post it to the discussion group or report a bug.