Confirmed users
1,158
edits
(→Why) |
|||
(One intermediate revision by the same user not shown) | |||
Line 13: | Line 13: | ||
== How == | == How == | ||
Working with the teams that have bootstrapped add-ons we'll | Working with the teams that have bootstrapped add-ons we'll do one of the following, depending upon what makes the most sense: | ||
* Move the custom code into Firefox. | * Move the custom code into Firefox. | ||
Line 24: | Line 24: | ||
== Notes == | == Notes == | ||
Other changes in Firefox have the potential to break bootstrapped extensions. This page is meant to document some of the problems that authors of bootstrapped extensions should be aware of. | |||
* Tightened content process sandbox: The sandbox for web content processes now prevents these processes from reading from the filesystem outside of the profile. As a result, if you use temporary installation (i.e., the "Load Temporary Add-on" button in about:debugging) and your extension loads anything from a resource: URL in a content process, this will break. Possible workarounds include relaxing the sandboxing restrictions by setting the "security.sandbox.content.level" preference, installing the extension into the profile during development, or restructuring the extension to communicate with content processes via message managers. | * Tightened content process sandbox: The sandbox for web content processes now prevents these processes from reading from the filesystem outside of the profile. As a result, if you use temporary installation (i.e., the "Load Temporary Add-on" button in about:debugging) and your extension loads anything from a resource: URL in a content process, this will break. Possible workarounds include relaxing the sandboxing restrictions by setting the "security.sandbox.content.level" preference, installing the extension into the profile during development, or restructuring the extension to communicate with content processes via message managers. | ||
* Changes to internal interfaces: We previously took care not to change XPCOM interfaces that might be used by extensions. With extension no longer able to access Components directly, internal interfaces may change at any time. If your extension is not covered by tests that run in automation, be aware that it may be broken by internal changes at any time. Similarly, there is an active effort to remove XBL bindings, an extension that uses XUL+XBL is at risk of having XBL bindings disappear at any moment. | * Changes to internal interfaces: We previously took care not to change XPCOM interfaces that might be used by extensions. With extension no longer able to access Components directly, internal interfaces may change at any time. If your extension is not covered by tests that run in automation, be aware that it may be broken by internal changes at any time. Similarly, there is an active effort to remove XBL bindings, an extension that uses XUL+XBL is at risk of having XBL bindings disappear at any moment. |