This patch changes how nsConverterInputStream handles passing data
through to the underlying unicode converter in order to make it more
reliably handle propagating errors and deal with short reads from the
underlying input stream.
This was done by making the code continuously read within the Fill
method until at least one character has been decoded from the input
stream, so that we don't spuriously communicate an EOF to the caller due
to a short read not producing enough bytes for the decoder to produce a
UTF-16 character.
In addition, while making this change it became easier to signal to
the decoder about the final read from the input stream, meaning that
partial characters at the end of the stream will now generate a
replacement character, rather than being ignored.
Differential Revision: https://phabricator.services.mozilla.com/D152682
This patch contains the bulk of the implementation of the modal. Most of
it is UI work and wiring together the various components. There is a bit
of complexity in the clustering algorithm, as I implemented the DBSCAN
algorithm to help cluster the text recognition results.
I filed Bug 1782586 to improve the DBSCAN algorithm, but currently it
works the same as the algorithm is described on Wikipedia.
Note that the tests are in the following patch in order to keep the line
count small for this patch.
Differential Revision: https://phabricator.services.mozilla.com/D153396
This code will most likely be removed, but for now I am putting it
behind a pref so that it won't be activated when the modal is being
created.
See Bug 1782582 for the removal of the code.
Differential Revision: https://phabricator.services.mozilla.com/D153393
This test seems to fail frequently on Linux without Fission, and on Android,
when the parent controlled navigation pref is enabled, so disable the test
there. We don't really support non-Fission builds anyways, and apparently
containers aren't supported on Android.
Differential Revision: https://phabricator.services.mozilla.com/D154288
According to `nsContainerFrame::ShouldAvoidBreakInside`, we allow a frame to
break from inside when it is at the top of page/column, i.e. when `mIsTopOfPage`
is true.
This patch allows the content at the top of the column to honor the
break-inside:avoid during column balancing, so it can now propagate the
break-before status to nsColumnSetFrame if it needs to report such status.
We don't need to worry about disallowing an break-inside:avoid content from
breaking will trap the column balancing algorithm forever. If the content's
block-size is larger than the column container's available content-box
block-size, then the column balancing algorithm will give up and fill the
columns sequentially at
https://searchfox.org/mozilla-central/rev/4f2984be127d2e7c788cf1848d63dca63022beec/layout/generic/nsColumnSetFrame.cpp#1146-1162
The reference files are modified to reflect the rendering as of this patch. Note
that browsers do not agree on the rendering of `1420528-1.html`. Before this
patch, our rendering is the same as Chrome by placing "Spacer" in the first
column, but now we agree with webkit by placing it in the second column.
The multicol in `611574-2.html` is used for visual separation of subtests. I
change it from column balancing to fill to workaround bug 1784002.
Differential Revision: https://phabricator.services.mozilla.com/D154048
This patch contains the bulk of the implementation of the modal. Most of
it is UI work and wiring together the various components. There is a bit
of complexity in the clustering algorithm, as I implemented the DBSCAN
algorithm to help cluster the text recognition results.
I filed Bug 1782586 to improve the DBSCAN algorithm, but currently it
works the same as the algorithm is described on Wikipedia.
Note that the tests are in the following patch in order to keep the line
count small for this patch.
Differential Revision: https://phabricator.services.mozilla.com/D153396
This code will most likely be removed, but for now I am putting it
behind a pref so that it won't be activated when the modal is being
created.
See Bug 1782582 for the removal of the code.
Differential Revision: https://phabricator.services.mozilla.com/D153393
* Enable testing using Ion
* Disable call_ref.js for ion
* Allow Ion when --wasm-function-references
* Fix WasmOpIt to pass ref values
* Add br_on_null, br_on_non_null, ref.as_non_null
Differential Revision: https://phabricator.services.mozilla.com/D154146
I think that this issue was introduced by another series of patch (when we started passing nsACStrings as parameter in the bindings), but were hidden by unified builds.
Differential Revision: https://phabricator.services.mozilla.com/D154247
The former frees resources but keeps the handle. It can be called multiple times. The latter destroys the handle. Any subsequent reference to the same buffer is a bug and will cause the GPU process to crash.
Depends on D152080
Differential Revision: https://phabricator.services.mozilla.com/D152081
Having the code in the same place makes it easier to follow. This made me realize that the validation of aMode in mapAsync has to move to the device side (fix coming in a followup).
Depends on D151631
Differential Revision: https://phabricator.services.mozilla.com/D151632
Another cosmetic change. I've dabbled with IPDL actors too much to not think about WebGPUParent when reading "mParent". Also the parent-child relationship between Device and Buffer is not very obvious to me (nor is it part of the specification).
So I find that wrapping mParent in a GetDevice method to make the code easier to understand. It also makes it explicit that the parent pointer cannot be null.
Depends on D151630
Differential Revision: https://phabricator.services.mozilla.com/D151631
Make sure to always clean up any potential content-side state and only avoid sending Destroy each time.
Depends on D151621
Differential Revision: https://phabricator.services.mozilla.com/D151629