Only a single type of additional block has ever been defined for the MAR
archive format and only a single block of that type is needed per file.
Limiting ourselves to reading only that until we define more seems
sensible.
Move additionalBlockSize check before first fread
Add MAXADDITIONALBLOCKSIZE as a constant for checking block sizes
Differential Revision: https://phabricator.services.mozilla.com/D10797
Summary:
Make CityHash64, CityHash64WithSeed, and CityHash64WithSeeds usable from C code
Remove unnecessary includes from mar_read.c as well
Add DisableStlWrapping to mar tool's moz.build to fix linkage break when
building in Windows with MSVC
Reviewers: rstrong
Reviewed By: rstrong
Bug #: 1468544
Differential Revision: https://phabricator.services.mozilla.com/D10774
--HG--
extra : rebase_source : a1b9e44f391bea63253d8bf036f53d071660a37b
extra : amend_source : d4d0e6024957c3faece2af608526f0ffa5b2119d
Summary:
Makes CityHash64, CityHash64WithSeed, and CityHash64WithSeeds usable from C code
Removes unnecessary includes from mar_read.c as well
Reviewers: rstrong
Reviewed By: rstrong
Subscribers: ulfr, dveditz, tjr, mhowell, jmathies, rstrong, jewilde
Tags: #secure-revision, #bmo-toolkit-core-security
Bug #: 1468544
Differential Revision: https://phabricator.services.mozilla.com/D10426
--HG--
extra : rebase_source : 4e3f97e07e7a17c454d22b80aa37752e31328224
extra : amend_source : d455610bb6c247401134b0a29070c3b48a0f01c4
This will be used by GeckoView to set initial pref values that would
normally come from prefs.js or similar on desktop and Fennec.
Differential Revision: https://phabricator.services.mozilla.com/D9820
shape-outside, shape-margin, shape-image-threshold have been shipped in Firefox
62. We can remove the preference.
The change in devtools/shared/css/generated/properties-db.js is generated by
"./mach devtools-css-db"
The actual shape-image CORS mode tests in file_shape_outside_CORS.html are
moved into test_shape_outside_CORS.html because we don't need the <iframe>
trick to enable the feature.
Differential Revision: https://phabricator.services.mozilla.com/D10804
--HG--
extra : moz-landing-system : lando
The limit only applied within a child process.
However, within a child process we already share cubeb stream when requesting
the same device multiple times, and disallow capturing from more than one device
at a time.
This limit no longer has any effect.
Differential Revision: https://phabricator.services.mozilla.com/D10339
--HG--
extra : moz-landing-system : lando
Also remove specified-value-only keywords, since those are handled
only in Rust code and C++ doesn't need to know about them.
Differential Revision: https://phabricator.services.mozilla.com/D9634
--HG--
extra : moz-landing-system : lando
1. Add a new preference, layout.css.step-position-jump.enabled, for
step(_, jump-*) timing functions.
2. We still keep JumpEnd and End tags, even though there is no difference
between them. Therefore, we could disable the preference if needed.
3. Update the calculation of StepTiming to match the algorithm in the spec.
4. For servo, we implement the correct step function algorithm except
for the handling of before_flag. This could be fixed later.
Depends on D9313
Differential Revision: https://phabricator.services.mozilla.com/D9314
--HG--
extra : moz-landing-system : lando
frames() timing function was removed from the spec, so we drop it.
Besides, some devtool tests are removed because they use frame(). I will
add them back by using new step function later.
Differential Revision: https://phabricator.services.mozilla.com/D9309
--HG--
extra : moz-landing-system : lando
This is what we have been working towards in all of the previous parts
in the series. This subclasses AnimationFrameDiscardingQueue to save the
discarded frames for recycling by the decoder, if the frame is marked as
supporting recycling.
Differential Revision: https://phabricator.services.mozilla.com/D7516
The reason of the crash is that the load group is released on non main thread. To fix the crash, simply use |NS_ReleaseOnMainThreadSystemGroup| to release the load group.
Note that this patch also proxy release other members on main thread just for safe.
Differential Revision: https://phabricator.services.mozilla.com/D9258
--HG--
extra : moz-landing-system : lando
The Webrender Pref Experiment is reporting its pref via telemetry and that is
reporting a different value than what the Normandy experiments telemetry
indicates should be being seen.
In Bug 1499552 I added a pref and telemetry reporting in preparation for running
a dummy Pref Experiment to verify that prefs set are reported as set, but I
realised I missed a case; where there's an existing default pref set,
we're only covering the case where that default pref has value false. We're seeing
a ~25% failure rate in the pref reporting. So we should cover the other three cases
in the dummy Pref Experiment, just in case it's one of these four cases that
is failing.
So here I add another dummy pref with a default value of true, and I report that
via telemetry. I rename the pref I added yesterday to make things consistent.
Differential Revision: https://phabricator.services.mozilla.com/D9156
--HG--
extra : moz-landing-system : lando
Add a pref called gfx.font_ahem_antialias_none which disables
antialiasing for any font with the family name "Ahem". This is useful
for wpt reftests where antialaising of Ahem causes spurious failures.
Differential Revision: https://phabricator.services.mozilla.com/D7200
Disable dom.xhr.standard_content_type_normalization for now due to webcompat issues
Differential Revision: https://phabricator.services.mozilla.com/D8789
--HG--
extra : moz-landing-system : lando
The Webrender Pref Experiment is reporting its pref via telemetry and that
is reporting a different value than what the Normandy experiments telemetry
indicates should be being seen.
So add reporting for two dummy prefs, one with a default value, and one
without. We intend to push out Normandy rules to report these prefs to
double-check that Normandy is working as expected.
Differential Revision: https://phabricator.services.mozilla.com/D8926
--HG--
extra : moz-landing-system : lando
Disable dom.xhr.standard_content_type_normalization for now due to webcompat issues
Differential Revision: https://phabricator.services.mozilla.com/D8789
--HG--
extra : moz-landing-system : lando
This implements the selector(<complex-selector>) syntax for @supports.
See https://github.com/w3c/csswg-drafts/issues/3207 for explainer and
discussion.
Probably would should wait for that to be sorted out to land this, or maybe we
should put it behind a pref to get the code landed and change our
implementation if the discussion there leads to a change.
Differential Revision: https://phabricator.services.mozilla.com/D8864
--HG--
extra : moz-landing-system : lando
This commit adds a scroll origin, nsGkAtoms::relative, which can be used to
mark main thread scrolling that can be combined with a concurrent APZ scroll.
The behavior of this is controlled by a pref, apz.relative-update. This pref
is initially activated and is intended as an aid to narrowing down causes
of regressions for users in bug reports.
Relative scroll updates work by tracking the last sent or accepted APZ
scroll offset. This is sent along with every FrameMetrics. Additionally,
a flag is added to FrameMetrics, mIsRelative, indicating whether the
scroll offset can be combined with a potential APZ scroll. When this
flag is set, AsyncPanZoomController will apply the delta between the sent
base scroll offset, and sent new scroll offset.
This flag is controlled by the last scroll origin on nsGfxScrollFrame. The
new origin, `relative`, is marked as being able to clobber APZ updates,
but can only be set if all scrolls since the last repaint request or
layers transaction have been relative.
Differential Revision: https://phabricator.services.mozilla.com/D8234
--HG--
extra : rebase_source : 51351a84c9cda228a0975e22eda3fd3bd8d261c4
extra : histedit_source : 4b564c19b16fe2bd26adc671b62b7cb6106e8163
This changes the containerful scrolling pref to be an override pref
such that it is:
- always false on desktop (i.e. always use containerless there)
- always true in Fennec (i.e. never use containerless there)
- true in GeckoView if WebRender is disabled (i.e. only use
containerless with WebRender).
The first two cases are the same as before; the last case is new.
Because we don't create layers with WR, the containerless vs
containerful distinction doesn't make much sense there, and we need to
implement a bunch of zooming glue in either case. So it makes sense to
go with the "way of the future" and keep it containerless.
Differential Revision: https://phabricator.services.mozilla.com/D8733
--HG--
extra : moz-landing-system : lando
Update placeholder value of DNS over HTTPS input to the cloudflare provider add a default pref value for network.trr.uri
Differential Revision: https://phabricator.services.mozilla.com/D8639
--HG--
extra : moz-landing-system : lando
This adds a button to the preferences UI to restore the default value for network.trr.uri preference.
Differential Revision: https://phabricator.services.mozilla.com/D7359
--HG--
extra : moz-landing-system : lando
It just doesn't work.
We add the preference media.wmf.force.allow-p010-format to force enable it.
Depends on D8136
Differential Revision: https://phabricator.services.mozilla.com/D8310
--HG--
extra : moz-landing-system : lando
Adds a timout that will resolve the promise to return even if we did not get an answer from
all children.
MozReview-Commit-ID: FFLwAUkkYos
Differential Revision: https://phabricator.services.mozilla.com/D7265
--HG--
extra : moz-landing-system : lando
This increases the default amount of content processes on nightly to 8. It
is nightly only and will not ride the trains.
--HG--
extra : rebase_source : 54bfae28921240d985957d59bf64ca91bd6a0f19
extra : intermediate-source : 72e7ef77480d0845ceabb5d3747a5523db6bda9d
extra : source : d5375325488f449c45dd032bc8167ebebca07497
For now, the H264 decoding support is rather sturdy. It handles change of resolution and content smoothly thanks to the H264Converter.
The VP8/VP9 one however, not so much.
So we make a preference to only enable H264 for now.
Depends on D7895
Differential Revision: https://phabricator.services.mozilla.com/D7908
--HG--
extra : moz-landing-system : lando
Summary:
The fix of bug 1479964 breaks some web apps using Google Closure including
Google's apps. So, for Nightly testers, we should disable the new behavior
until Google Closure fixes it or we can disable the new behavior per web apps.
Reviewers: smaug
Reviewed By: smaug
Bug #: 1497546
Differential Revision: https://phabricator.services.mozilla.com/D8090
--HG--
extra : histedit_source : 03f59268c220297040c1c5186e62a05710d468b9
Chrome sets both KeyboardEvent.keyCode and KeyboardEvent.charCode of "keypress"
event to same value. On the other hand, our traditional behavior is, sets
one of them to 0.
Therefore, we need to set keyCode value to charCode value if the keypress
event is caused by a non-function key, i.e., it may be a printable key with
specific modifier state and/or different keyboard layout for compatibility
with Chrome. Similarly, we need to set charCode value to keyCode value if
the keypress event is caused by a function key which is not mapped to producing
a character.
Note that this hack is for compatibility with Chrome. So, for now, it's enough
to change the behavior only for "keypress" event handlers in web content. If
we completely change the behavior, we need to fix a lot of default handlers
and mochitests too. However, it's really difficult because default handlers
check whether keypress events are printable or not with following code:
> if (event.charCode &&
> !event.altKey && !event.ctrlKey && !event.metaKey) {
or
> if (!event.keyCode &&
> !event.altKey && !event.ctrlKey && !event.metaKey) {
So, until we stop dispatching "keypress" events for non-printable keys,
we need complicated check in each of them.
And also note that this patch changes the behavior of KeyboardEvent::KeyCode()
when spoofing is enabled and the instance is initialized by initKeyEvent() or
initKeyboardEvent(). That was changed by bug 1222285 unexpectedly and keeping
the behavior makes patched code really ugly. Therefore, this takes back the
old behavior even if spoofing is enabled.
Differential Revision: https://phabricator.services.mozilla.com/D7974
--HG--
extra : moz-landing-system : lando
This increases the default amount of content processes on nightly to 8. It
is nightly only and will not ride the trains.
--HG--
extra : rebase_source : a39b9aa36e10e18b8c8e050d69d639178b6f1a5a
extra : source : d5375325488f449c45dd032bc8167ebebca07497
These have been been on nightly / beta for a couple months without any single
regression filed against them.
Let the prefs ride the trains, but keep them, so we can toggle them easily if
needed.
Differential Revision: https://phabricator.services.mozilla.com/D7960
--HG--
extra : moz-landing-system : lando
This activates by default the new about:performance page and its underlying
counters in Firefox
MozReview-Commit-ID: LccL6zBHUHm
Differential Revision: https://phabricator.services.mozilla.com/D7884
--HG--
extra : moz-landing-system : lando
JIT warmup options were exposed to preferences to facilitate experimentation/optimization.
The baseline and ion warm up thresholds had already been exposed through JSAPI, just needed to read from Preferences.
The ion JitOption, frequentBailoutThreshold, was also exposed to JSAPI and Preferences.
Differential Revision: https://phabricator.services.mozilla.com/D7321
--HG--
extra : moz-landing-system : lando
Etherpad fixed the bug with new Gecko behavior and has already released
it in this August. So, even if some instances still use older versions,
we can request them to update the version.
This patch removes all Etherpad instances we know from the blacklist
of strict keypress dispatching. So, Nightly testers can find old
instances easier.
Differential Revision: https://phabricator.services.mozilla.com/D7694
--HG--
extra : moz-landing-system : lando
This moves UAWidgetsChild.jsm from browser to toolkit so that
Fennec and Reftest could pick it up.
Differential Revision: https://phabricator.services.mozilla.com/D5085
--HG--
rename : browser/actors/UAWidgetsChild.jsm => toolkit/actors/UAWidgetsChild.jsm
extra : moz-landing-system : lando
StructuredCloneTester objects can configured to be serializable (or not) and
deserializable (or not) by the structured clone algorithm. They can be used to
test, for example, onmessageerror event handlers, where the messageerror event
is fired when a message fails to be deserialized (but was successfully serialized).
The class is pref'ed with "dom.testing.structuredclonetester.enabled".
Differential Revision: https://phabricator.services.mozilla.com/D5207
--HG--
extra : moz-landing-system : lando
99.15% of all TRR requests are done within 1.56 seconds (in beta 63) and
1500 milliseconds is already a very long time to wait for a resolve to
fail... The median is 44 ms and 95th percentile is at 471 ms.
MozReview-Commit-ID: CICBAA0cEBd
Differential Revision: https://phabricator.services.mozilla.com/D7336
--HG--
extra : moz-landing-system : lando
Calls to do_QueryInterface to a base class can be replaced by a static
cast, which is faster.
Differential Revision: https://phabricator.services.mozilla.com/D7224
--HG--
extra : moz-landing-system : lando
Medium's editor listens to keypress event to handle Ctrl+Z and Ctrl+Y on Gecko.
Therefore, if we don't dispatch keypress events for non-printable keys (by
default on Nightly), users cannot use undo/redo in medium.com.
This patch makes the editor of medium.com into the blacklist of strict
keypress dispatching for avoiding inconvenience of Nightly testers.
Differential Revision: https://phabricator.services.mozilla.com/D7390
--HG--
extra : moz-landing-system : lando
I can be more granular if we want, by adding more ChromeOnly annotations for the
functions that we don't want to expose.
Differential Revision: https://phabricator.services.mozilla.com/D6530
--HG--
extra : moz-landing-system : lando
change default pref to on for lowercase header names in XHR.getAllResponseHeaders
Differential Revision: https://phabricator.services.mozilla.com/D6589
--HG--
extra : moz-landing-system : lando
By delegating responsibility for shared surfaces reporting to imagelib,
we can cross reference the GPU shared surfaces cache with the local
surface cache in a content process (or the main process). This will
allow us to identify entries that are in the GPU cache but not in the
content/main process cache, and aid in debugging memory leaks. This
functionality is pref'd off by default behind image.mem.debug-reporting.
Additionally, we want to report every entry that was mapped into the
compositor process, in the compositor process memory report. This will
give us a sense of how much of our resident memory is consumed by mapped
images in absence of the more detailed cross referencing above.
"layers.async-pan-zoom.enabled" has been enabled for all platforms for a
long time. I reword the comment to avoid confusion.
Differential Revision: https://phabricator.services.mozilla.com/D5471
--HG--
extra : moz-landing-system : lando
There is one main difference between raster images and vector images
with respect to factor of 2 scaling. Vector images may be scaled
infinitely and so we need to extend factor of 2 scaling to permit
growing instead of just shrinking. Also, we don't want to scale
infinitely, so we should configure a maximum size limit. This size limit
will apply even outside of factor of 2 scaling, and so the caller
(VectorImage) will need to be careful to take this into account.
There is one main difference between raster images and vector images
with respect to factor of 2 scaling. Vector images may be scaled
infinitely and so we need to extend factor of 2 scaling to permit
growing instead of just shrinking. Also, we don't want to scale
infinitely, so we should configure a maximum size limit. This size limit
will apply even outside of factor of 2 scaling, and so the caller
(VectorImage) will need to be careful to take this into account.
Everything that goes in a PLDHashtable (and its derivatives, like
nsTHashtable) needs to inherit from PLDHashEntryHdr. But through a lack
of enforcement, copy constructors for these derived classes didn't
explicitly invoke the copy constructor for PLDHashEntryHdr (and the
compiler didn't invoke the copy constructor for us). Instead,
PLDHashTable explicitly copied around the bits that the copy constructor
would have.
The current setup has two problems:
1) Derived classes should be using move construction, not copy
construction, since anything that's shuffling hash table keys/entries
around will be using move construction.
2) Derived classes should take responsibility for transferring bits of
superclass state around, and not rely on something else to handle that.
The second point is not a huge problem for PLDHashTable (PLDHashTable
only has to copy PLDHashEntryHdr's bits in a single place), but future
hash table implementations that might move entries around more
aggressively would have to insert compensation code all over the
place. Additionally, if moving entries is implemented via memcpy (which
is quite common), PLDHashTable copying around bits *again* is
inefficient.
Let's fix all these problems in one go, by:
1) Explicitly declaring the set of constructors that PLDHashEntryHdr
implements (and does not implement). In particular, the copy
constructor is deleted, so any derived classes that attempt to make
themselves copyable will be detected at compile time: the compiler
will complain that the superclass type is not copyable.
This change on its own will result in many compiler errors, so...
2) Change any derived classes to implement move constructors instead of
copy constructors. Note that some of these move constructors are,
strictly speaking, unnecessary, since the relevant classes are moved
via memcpy in nsTHashtable and its derivatives.
3% download protection remote lookup failures are from timeout.
Increase the timeout from 10sec to 15sec to see if this help.
Differential Revision: https://phabricator.services.mozilla.com/D5265
--HG--
extra : moz-landing-system : lando
have XHRs adjust content type of uploads per spec using the MIME Sniffing standard
Differential Revision: https://phabricator.services.mozilla.com/D5969
--HG--
extra : moz-landing-system : lando
Currently, we have some Gecko specific editing UI:
- Resizers to resize <img>s, <table>s, absolutely positioned elements.
- Inline-table-editing UI to add/remove rows/columns.
- Grabber to move absolutely positioned element.
They are now disabled by default in Nightly and early-Beta. Starting from 64,
this patch makes them disabled by default even on release channel.
Note that the other browsers do not have those UIs and web apps can enable
them with document.execCommand() on Gecko anyway. Those UI usage is enough
low according to the telemetry, but a few users use them aggressively (see
bug 1452538 comment 19).
This is a request from W3C Editing API WG:
https://github.com/w3c/editing/issues/171
Differential Revision: https://phabricator.services.mozilla.com/D6112
--HG--
extra : moz-landing-system : lando
All but one of the current uses of DEFFILE use `SRCDIR + '/file.def'` to
get a srcdir-relative path anyway, and the other one wants an
objdir-relative path, so using Path makes everything clearer.
This makes it more straightforward to translate the paths for the WSL
build.
Some Gtk+ themes use non-rectangular toplevel windows. To fully support
such themes we need to make toplevel window transparent with ARGB visual.
It may cause performanance issue so make it configurable
and enable it by default for GNOME right now as it already uses ARGB visual
for widgets.
Also use mozilla.widget.use-argb-visuals to override this.
Differential Revision: https://phabricator.services.mozilla.com/D5754
--HG--
extra : moz-landing-system : lando
The performance counter is now also used in the children, and
the ParentAPIManager.retrievePerformanceCounters() can be used
to aggregate all counters into a promise.
Differential Revision: https://phabricator.services.mozilla.com/D5399
--HG--
extra : moz-landing-system : lando
Moving this to C++ caused browser.dom.window.dump.enabled to become false in artifact
builds, since MOZILLA_OFFICIAL is true for the binaries used in that case. Restoring
the preference in all.js fixes this, since that file is built locally with artifact builds.
Differential Revision: https://phabricator.services.mozilla.com/D5586
--HG--
extra : moz-landing-system : lando
"layers.async-pan-zoom.enabled" has been enabled for all platforms for a
long time. I reword the comment to avoid confusion.
Differential Revision: https://phabricator.services.mozilla.com/D5471
"layers.async-pan-zoom.enabled" has been enabled for all platforms for a
long time. I reword the comment to avoid confusion.
Differential Revision: https://phabricator.services.mozilla.com/D5471
--HG--
extra : moz-landing-system : lando