This was regressed by bug 1420512, which changed things so that
ScrollbarData::mDirection is set for both kinds of scrollbar layers.
MozReview-Commit-ID: 3UHFSOgDtWj
--HG--
extra : rebase_source : 25bc732e4216dbb1971bec57421e20698126f8f2
Same as the previous patch, but adapted for the sampler thread.
MozReview-Commit-ID: 7PVaPl38FkM
--HG--
extra : rebase_source : b7637270fea226cde15b9351a4ef8ac7ffab5796
This is possible if we just let the APZUpdater know during construction
if WR is enabled or not, and that information combined with the pref
will allow it to know whether to use the scene builder thread task queue
or just use the compositor thread as the updater thread.
MozReview-Commit-ID: 7IGMMtl7iFP
--HG--
extra : rebase_source : 3950adf77f4b48906b29cdb36f0437df1540bec6
We wrap the std::unordered_map in a StaticAutoPtr so that there's no
initialization cost, and also so that we have a smaller memory footprint
in processes that aren't using WebRender+APZ.
MozReview-Commit-ID: 9QCKiv0IzB8
--HG--
extra : rebase_source : 102d034478513f45da689bacffbc893370677ff7
This changes the default to opening a livereload webserver after doc generation
(as opposed to opening the index file). Any changes to the specified path will
result in a rebuild and refresh of the browser.
For example, if you run:
./mach doc tools/lint
The linting docs will be built, served and opened in a browser. Modifying any
file under 'tools/lint/docs' will refresh the browser with your changes.
To disable this behaviour and simply open the index file, you can pass in
'--no-serve'. The '--no-open' flag will continue to work (both with http and
the file system).
One caveat to this patch is that when generating the root docs (by running
|mach doc|), we don't watch all possible doc paths (just the root one under
'tools/docs/'). This will probably be fixed in the follow-up bug 1454640.
MozReview-Commit-ID: FQecuePM0zZ
--HG--
extra : rebase_source : 3240402d7505e99a4f64dada309b1baec78306e1
This removes the ability to specify multiple doc paths at the same time with
|mach doc|. We will be changing the default from opening index files to serving
the documentation with a webserver. Supporting multiple doc roots would mean
spinning up multiple servers in different threads.
This would add a lot of complexity for a feature which I don't think is very
useful. It's very rare that one would need to edit more than one doc location
at the same time. And if this is ever needed, the developer can just build the
entire doctree (by running |mach doc|) or run |mach doc <path>| in multiple
different terminals.
MozReview-Commit-ID: GXEZJSgLpgF
--HG--
extra : rebase_source : 2eda23274eb6c2be82f7e77ca577072386bada34
Some requirements.txt are very large and result in a lot of package already
installed messages. Would be nice to hide this.
MozReview-Commit-ID: FQecuePM0zZ
--HG--
extra : rebase_source : 58eaa7324775cfaa39077871be0be0ef39ad7c11
After switching to Stylo, animation is handled by Servo, and thus it no
longer relies on the animation type recorded in nsCSSPropList.h, and
devtools become the only consumer of that information.
This patch puts a map of longhands to animation types into devtools
instead. The map is extracted from nsCSSPropList.h by the script below
based on the logic of nsDOMWindowUtils::GetAnimationTypeForLonghand.
There are two reasons that I don't port this into Servo:
First, Servo doesn't have a concept of property-level animation type.
Animation change in Servo is directly encoded into value types. It means
porting this to Servo would require creating a new concept purely for
devtools. It's not great because that data doesn't reflect how animation
is handled in the engine, and people may keep forgetting to give proper
animation type to new animatable types they add.
Second, the handling of animation type in devtools also looks rather
arbitrary to me. For example, eStyleAnimType_Corner_* types are actually
two coordinate values, bug GetAnimationTypeForLonghand returns "coord"
for them, and devtools just parses the first value and uses it. This
means the animation type here is really more closely related to how
devtools handles the value, rather than how the style engine does so.
Given above, I decided to put the list into devtools rather than encode
the information into Servo code. To encourage people to think about
animation handling in devtools for new properties, there is also a new
test added to ensure every property has a devtools animation type.
The content of ANIMATION_TYPE_FOR_LONGHANDS is generated via running
the following script in layout/style:
```python
#!/usr/bin/env python3
import subprocess
from collections import defaultdict
ANIMTYPE_MAPPING = {
"Custom": "custom",
"Coord": "coord",
"Sides_Top": "coord",
"Sides_Right": "coord",
"Sides_Bottom": "coord",
"Sides_Left": "coord",
"Corner_TopLeft": "coord",
"Corner_TopRight": "coord",
"Corner_BottomRight": "coord",
"Corner_BottomLeft": "coord",
"nscoord": "length",
"float": "float",
"Color": "color",
"ComplexColor": "color",
"PaintServer": "paintServer",
"Shadow": "shadow",
"Discrete": "discrete",
"None": "none",
}
input = b"""
#define CSS_PROP(name, id, method, flags, pref, \\
variant, kwtable, animtype) name, flags, animtype
#include "nsCSSPropList.h"
"""
props = subprocess.check_output(["clang", "-E", "-P", "-"], input=input)
props = props.decode("ascii")
result = defaultdict(list)
for line in props.splitlines():
line = line.strip()
if not line:
continue
name, flags, animtype = line.split(", ")
assert animtype.startswith("eStyleAnimType_")
if "CSS_PROPERTY_PARSE_INACCESSIBLE" in flags:
continue
animtype = ANIMTYPE_MAPPING[animtype[15:]]
result[animtype].append(name)
print("[")
for animtype, names in result.items():
print(' ["{}", new Set(['.format(animtype))
for name in names:
print(' "{}",'.format(name))
print(" ])],")
print("]")
```
MozReview-Commit-ID: BGiGq0jUgG5
--HG--
extra : rebase_source : 54fc15b9ccdb6c11d06160d63b8f4b911b754d5a
margin-inline-{end,start} should have this flag because their
corresponding physical properties have this flag, as well as their
equivalents in the block direction.
{max,min}-{block,inline}-size should not have this flag, because their
corresponding physical properties don't have it, so they shouldn't need
it either.
rotate and scale have nothing to do with the frame at all, so they don't
need layout flush. Note that transform and translate need layout flush
because they need to resolve percentage to length.
MozReview-Commit-ID: BcnnOGJIOwO
--HG--
extra : rebase_source : 6a15fbdd6596d86cb0ab81e77a8000976a967ae2
Use it like this:
MOZ_DISABLE_CONTENT_SANDBOX=1 MOZ_LOG=MSGTracing:5,sync,raw MOZ_LOG_FILE=trace.log ./mach run
Now open `chrome://tracing` and load the file.
Lanes are threads, thread 0 is the audio callback thread, the other thread have
normal numbers.
Thread 1 shows the theoretical budget we have for a particular audio callback.
MozReview-Commit-ID: 87woGiFT4ID
--HG--
extra : rebase_source : 03cefb8edf12b077607ae71aeb999fd0ac966674
extra : source : 14929579ba3f71f14c9d81b6ed88563d35da11e0
This outputs to MOZ_LOG and using an MPSC lock-free queue so we can log to a
particular module from any thread.
MozReview-Commit-ID: INtlki4PEJs
--HG--
extra : rebase_source : c1d488fdd65bfa7ede12c12004921415aaaa1d55
extra : source : f9482471bbd83882f8da3f0ce929f72858abfa04
Also add missing locales to langGroups.properties (an, ast, az, uz) and language.properties (son)
MozReview-Commit-ID: 2dAOly4wxHm
--HG--
extra : rebase_source : 60adf737549f8bcd30bde205c82aa5d783c867d2
This test was frequently timing out in debug due to a short timeout in
the test.
MozReview-Commit-ID: KgbyGekWxE7
--HG--
extra : rebase_source : 94b99c7990c36727e54705f9cee17d83cfded9a7
Change disabledFocus to focusable as it changed in the ObjectInspector.
MozReview-Commit-ID: CDHotb0d4sL
--HG--
extra : rebase_source : 3390cf6aa1d79ef24f98b74cdece50cae36b937b
So, this patch replaces the setter with non-virtual method and removing the
getter since where is already non-virtual getter method.
MozReview-Commit-ID: Is19Yriz8t8
--HG--
extra : rebase_source : bb2f49f380ddb2e2f96e8690effd8d47d24ae0ae
After bug 1303605 we can assert this, since we make sure all children have the
same flattened tree parent, and thus insertion point.
MozReview-Commit-ID: 7AHuGGw2uJI
--HG--
extra : rebase_source : dc6133e36f9810082fb3eaeb479d82ab564b5b81
We may no longer know what the right parent style is, and it's not like it
matters anyway, the frame tree under us is dead, including placeholders and such
holding from us.
MozReview-Commit-ID: 1RHTwvKy0zQ
--HG--
extra : rebase_source : 26e9d393d8edc0f068736cfa1cf1cf630e8d55fa
We need to start moving the window in GTK after mousemove event arrives,
not with mousedown, because the drag area can also process doubleclick
event to restore/maximize window. This also match to the GTK implementation,
see gedit behaviour for example.
MozReview-Commit-ID: WXP3D2wIp0
--HG--
extra : rebase_source : c39ac7884767366aa1964571fa5da9575e4f781c
This patch uses the shared memory name prefixes introduced in bug 1447867
to prevent access to /dev/shm files of other applications or other
processes within the same browser instance.
When a shared memory implementation that doesn't use shm_open is available
(specifically, the memfd_create support to be added in bug 1440203),
/dev/shm access is completely denied.
MozReview-Commit-ID: L2ylG5KrXTU
--HG--
extra : rebase_source : ca1deece6117e843d691a13fff05bd0f97ec0408
This replaces using file_util to open and unlink temporary files
(/dev/shm on Linux, $TMPDIR or /tmp otherwise) with the POSIX shm_open
API, or ashmem on Android (which doesn't implement shm_open).
glibc maps shm_open/shm_unlink to open and unlink in /dev/shm (as does
musl libc), so the Linux situation is mostly unchanged except we aren't
duplicating code from system libraries. Other OSes may (and some do)
use more efficient implementations than temporary files.
FreeBSD's SHM_ANON extension is used if available. Sadly, it's not
standard; it would make this patch much simpler if it were.
This patch changes the shm file names; they now start with "org.mozilla"
instead of "org.chromium" because the original Chromium code is mostly
gone at this point. When running as a Snap package, the required
filename prefix is added; other container/sandbox environments using
AppArmor to restrict the allowed filenames may need to be adjusted.
The shm names now include the creating process's pid, to allow
using sandboxing to prevent interfering with shm belonging to other
applications or other processes within the same browser instance.
MozReview-Commit-ID: 7PirIlcblh4
--HG--
extra : rebase_source : 550a0ab013429c29a57bde5c0e4593d9b426da8e
But only if we are:
a) not running in CI
b) running in CI on Linux
We will ideally make the requirement global. But Python 3.5 is not
yet available in CI on macOS. And we're not finding the MozillaBuild
copy in configure.
This was previously announced in November at
https://groups.google.com/d/msg/mozilla.dev.platform/rJrPh1QYXrQ/hqRrQsJ_BgAJ.
MozReview-Commit-ID: IyPCAcL3gop
--HG--
extra : rebase_source : f9e3db043a1ce9c1a903c943663f22245febf101
Not all distros will have a "python3" package. But the modern ones
should.
Because many people install Python via other means, we only install
the system packages if a Python 3 executable can't be found.
MozReview-Commit-ID: 2ni7Ha92cRD
--HG--
extra : rebase_source : 681085855f785b4857ac1b569c2b0dc4ffb68cad
Depending on the chunking and timing of the HTML parser, we may end up
firing onload on the image before the script tag is evaluated, leading
to an undefined onLoad (which is the intermittent failure in the test).
MozReview-Commit-ID: 78OAZan1xbC