DevTools/Backwards Compatibility: Difference between revisions
(Add feature detection information) |
mNo edit summary |
||
Line 10: | Line 10: | ||
# Nightly desktop client MUST maintain existing compatibility with Gecko 28 and later servers | # Nightly desktop client MUST maintain existing compatibility with Gecko 28 and later servers | ||
#* This is needed for supported Firefox OS simulators (1.3+) | #* This is needed for supported Firefox OS devices and simulators (1.3+) | ||
# Nightly desktop client SHOULD maintain existing compatibility back to release channel servers | # Nightly desktop client SHOULD maintain existing compatibility back to release channel servers | ||
#* This is mainly to simplify cross-platform use cases, i.e. desktop Nightly with release Fennec | #* This is mainly to simplify cross-platform use cases, i.e. desktop Nightly with release Fennec |
Revision as of 21:25, 4 May 2015
Overview
When making changes to the DevTools, there are certain backward compatibility requirements that we should keep in mind.
In general, we should strive to maintain feature support for existing servers as we continue to make changes to the code base. At times, this can be difficult to achieve, however.
Specific Guidelines
The important compatibility scenarios are:
- Nightly desktop client MUST maintain existing compatibility with Gecko 28 and later servers
- This is needed for supported Firefox OS devices and simulators (1.3+)
- Nightly desktop client SHOULD maintain existing compatibility back to release channel servers
- This is mainly to simplify cross-platform use cases, i.e. desktop Nightly with release Fennec
- Scenario 1 above currently implies greater compatibility than this one anyway
Certainly when a new feature needs a new actor method to function, it won't work with servers that don't support it. But we should still ensure the client doesn't explode when using unrelated, existing features, at least until the above time windows have elapsed.
Testing
The harder part of this currently is that there is no automated testing to ensure the above guidelines have been met. While we hope to have this at some point, for now manual testing is needed here.
The easiest way to test this is to check your work against the Firefox OS 1.3 simulator to ensure existing features in the area you are changing continue to function. That doesn't cover every case, but it's a great start.
Feature Detection
Landed in bug 1069673 in Fx36, you can use feature detection for actors of the remote target to determine what actors exist, their methods, events, etc.
Using the protocol's description method (which existed for a long time, so will be in older Geckos), use the methods on TabTarget to determine the target's capabilities.