Extracted this out of #5649
This commit was created with the following commands:
```
find . -iname "*.webidl" -type f -print0 | xargs -0 sed -i '' 's/http:\(.*\)whatwg.org/https:\1whatwg.org/g'
```
```
find . -iname "*.rs" -type f -print0 | xargs -0 sed -i '' 's/http:\(.*\)whatwg.org/https:\1whatwg.org/g'
```
This addresses https://github.com/servo/servo/issues/3149. The immediate purpose is to support the constants in NodeFilter. The changes mostly follow the current Gecko Codegen.py. The main gist is that the generation of certain code artifacts is now gated by hasInterfaceObject() or hasInterfacePrototypeObject(), rather than by isCallback().
Implementation is alongside that of TypeErrors.
Note: the jsapi codes are reused for our own purposes, namely
distinguishing error_numbers in the get_error_message callback. See
comments in components/script/dom/bindings/error.rs for details.
Accidentally fixes bugs about Document::createElementNS() where the
implementation of "validate and extract" used to check whether the local name
extracted from the qualified name was "xmlns" instead of the qualified name
itself.
This removes some unnecessary custom code in the codegen and makes this
implementation follow the convention of having thrown an exception when
returning Err() from FromJSValConvertible.
dom/bindings/js.rs: Alphabetize `use`.
dom/bindings/js.rs: moved `unsafe` block to a let binding.
dom/bindings/trace.rs: rename alternate constructor of RootedVec.
dom/bindings/trace.rs: `new()` is now using `new_with_destination_address()` internally.
dom/bindings/js.rs: alphabetize imports.
fixup! Add devtools_chan method to GlobalRef and make new globals notifications work with nested workers
fixup! Add devtools_chan method to GlobalRef and make new globals notifications work with nested workers
For the majority of these cases, `as_slice` can be removed due to
`Deref`. In particular, `Deref` for:
* `String` -> `str`
* `Atom` -> `str`
The latter of those two requires, a bump of the locked `string-cache`
library