There are a number of interesting things going on this patch that I think are worth highlighting
here for my reviewers:
1. The single-file archive format is an HTML file that uses an inlined multipart/mixed MIME
message within a HTML document comment in order to embed the backup data into the archive.
2. We use the multipart/mixed nsIStreamConverter to extract the JSON and binary data from
the MIME block.
3. We use a Archive Worker to do the archive creation, allowing us to do the work of construction
off of the main thread.
4. The Archive Worker is only parsing the header and getting the byte offset of the MIME block.
Extraction is happening in the parent process. This is mainly for simplicity for now, since
the Archive Worker cannot invoke an nsIStreamConverter. Down the line, if we determine that
we'd prefer the Archive Worker do the base64 decoding off of the main thread, we may need
to use a Message Channel to send the byte sfrom the nsIStreamConverter to it, and add
stream-writing support to IOUtils so that the Archive Worker can take care of sending the
decoded bytes to disk.
5. The patch doesn't expose the extraction mechanism in any way except through the debug
interface right now. That will come down the line. In the meantime, this mechanism
can be manually tested in the debug interface by creating a backup, which should also
create an "archive.html" file in the backups folder. Using the "Extract from archive"
button in the debug tool will let you select that HTML file and extract the ZIP as
a file in the backups folder called "extraction.zip".
6. The test template contains Unicode characters because certain locales might involve
us writing Unicode characters in the HTML template when generating the archive. The
fun part about that is calculating where the byte offset is for the MIME block! See
the comment in the Archive.worker.mjs script for how that works.
Differential Revision: https://phabricator.services.mozilla.com/D211588
There are a number of interesting things going on this patch that I think are worth highlighting
here for my reviewers:
1. The single-file archive format is an HTML file that uses an inlined multipart/mixed MIME
message within a HTML document comment in order to embed the backup data into the archive.
2. We use the multipart/mixed nsIStreamConverter to extract the JSON and binary data from
the MIME block.
3. We use a Archive Worker to do the archive creation, allowing us to do the work of construction
off of the main thread.
4. The Archive Worker is only parsing the header and getting the byte offset of the MIME block.
Extraction is happening in the parent process. This is mainly for simplicity for now, since
the Archive Worker cannot invoke an nsIStreamConverter. Down the line, if we determine that
we'd prefer the Archive Worker do the base64 decoding off of the main thread, we may need
to use a Message Channel to send the byte sfrom the nsIStreamConverter to it, and add
stream-writing support to IOUtils so that the Archive Worker can take care of sending the
decoded bytes to disk.
5. The patch doesn't expose the extraction mechanism in any way except through the debug
interface right now. That will come down the line. In the meantime, this mechanism
can be manually tested in the debug interface by creating a backup, which should also
create an "archive.html" file in the backups folder. Using the "Extract from archive"
button in the debug tool will let you select that HTML file and extract the ZIP as
a file in the backups folder called "extraction.zip".
6. The test template contains Unicode characters because certain locales might involve
us writing Unicode characters in the HTML template when generating the archive. The
fun part about that is calculating where the byte offset is for the MIME block! See
the comment in the Archive.worker.mjs script for how that works.
Differential Revision: https://phabricator.services.mozilla.com/D211588
Generated.txt doesn't seem the right place because that's for pre-built files that are added to the tree.
Hence adding to the ignore files.
Differential Revision: https://phabricator.services.mozilla.com/D210692
- remove the firefox-android exclusions from .prettierignore
- add a few specific exclusions to .prettierignore for files with existing errors
- add a few specific entries to Generated.txt and ThirdPartyPaths.txt
- add `initial_experiments.json` to the list of generated files: these are updated from Nimbus
- run `mach lint --fix --linter=eslint -- mobile/android` to generate all the formatting changes
Differential Revision: https://phabricator.services.mozilla.com/D206915
Files containing theora have been modified to use VP9 in WebM, which is
equivalent for those tests, that only require a video with or without sound.
Differential Revision: https://phabricator.services.mozilla.com/D204643
Files containing theora have been modified to use VP9 in WebM, which is
equivalent for those tests, that only require a video with or without sound.
Differential Revision: https://phabricator.services.mozilla.com/D204643
Files containing theora have been modified to use VP9 in WebM, which is
equivalent for those tests, that only require a video with or without sound.
Differential Revision: https://phabricator.services.mozilla.com/D204643
* Initial tools/ts setup.
* Mach commands for buidling xpcom related typelibs.
* Mach command for updating the typelib references.
* Mach command for type-checking js projects.
Also included the dom typelib for reference.
Differential Revision: https://phabricator.services.mozilla.com/D197620
- Adds a moz.yaml to vendor the files from the Readability library on Github to `toolkit/components/reader/readability`.
- Updates includes to point to the new library location.
Differential Revision: https://phabricator.services.mozilla.com/D196998
It has never shipped after being implemented years ago,
and was removed from spec in September 2022:
https://github.com/w3c/webappsec-csp/pull/564
Now skipping navigate-to WPT tests. Filed issue upstream for their future removal:
https://github.com/w3c/webappsec-csp/issues/608
Consensus seems to agree to remove, will do in follow up bug once landed.
Also removed our own tests.
Added a hack in StartDocumentLoad as just removing the navigate-to check call
breaks some inhertiance, see comment for more info.
Differential Revision: https://phabricator.services.mozilla.com/D181630
This patch adds new variants of the glvideo/canvas2dvideo talos tests,
but this time focused on OffscreenCanvas and WebCodecs.
There are test variants for each:
- Execution thread (main thread or DOM worker)
- Canvas type (WebGL or 2D canvas)
- Codec type (H264, VP9 or AV1)
They are included as part of the existing webgl talos job.
Differential Revision: https://phabricator.services.mozilla.com/D196465