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
Use PrioEncoder to encode a few already-included histograms, so we can compare results on the Telemetry server side.
Differential Revision: https://phabricator.services.mozilla.com/D5088
--HG--
extra : moz-landing-system : lando
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 performance issue so let's put it under a preference
and allow distros to enable it per default theme.
Depends on D4664
Differential Revision: https://phabricator.services.mozilla.com/D4665
--HG--
extra : moz-landing-system : lando
Add a preference, layout.css.clip-path-path.enabled, for |clip-path:path()|.
Differential Revision: https://phabricator.services.mozilla.com/D4965
--HG--
extra : moz-landing-system : lando
1. Add network.cookie.QuotaPerHost, which has the default value 150.
2. When the cookies exceed more than 180, evict cookies to 150.
3. The concept of eviction is to sort all cookies by whether the cookie is expired and the cookie's last access time. Then, evict cookies by the given count.
4. Details of evict algorithm:
4.1 Create a priority queue and push all cookies in it.
4.2 Use custom comparator to compare the cookie by expiry and last access.
4.3 Pop 30(180 - 150) cookies from the queue and append them to an output array.
Differential Revision: https://phabricator.services.mozilla.com/D3342
--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.
nsAutoCopyListener is a singleton class but refcountable and a selection
listener. nsFrameSelection adds it to only normal Selection when it's on
macOS or it's enabled by the pref. Additionally, it's always first selection
listener since it's added immediately after Selection instance is created.
So, we can make it a static class, and normal Selection instance should have
a bool to decide whether it should notify nsAutoCopyListener of its changes.
Then, we can save the cost of grabbing it with local RefPtr and the virtual
call.
Additionally, this patch renames nsAutoCopyListener to mozilla::AutoCopyListener
and optimizes constructor of nsFrameSelection (using bool var cache to retrieve
the pref, avoid retrieving the pref on macOS).
Differential Revision: https://phabricator.services.mozilla.com/D4504
--HG--
rename : layout/generic/nsAutoCopyListener.h => layout/generic/AutoCopyListener.h
extra : moz-landing-system : lando
There are surprisingly many of them.
(Plus a couple of unnecessary checks after `new` calls that were nearby.)
--HG--
extra : rebase_source : 47b6d5d7c5c99b1b50b396daf7a3b67abfd74fc1
We can access the bool pref in C++ by writing
if (StaticPrefs::layout_css_column_span_enabled()) {
// do something
}
Differential Revision: https://phabricator.services.mozilla.com/D4020
--HG--
extra : moz-landing-system : lando