This patch adds a hasQuery attribute to nsIURI, similar to hasRef.
This is needed to distinguish between an empty and a non-existant query.
Differential Revision: https://phabricator.services.mozilla.com/D185672
Don't check if rules are instances of `CSSGroupingRule` (as `CSSStyleRule` would
match now, so it's not providing the guard we want anymore).
Avoid retrieving stylesheet window and document until it's needed, and only
compute rule line and column for the at-rules we'll return.
Differential Revision: https://phabricator.services.mozilla.com/D185636
`GlobalKeyListener` try to match shortcut keys with exactly checking `Shift`
state, but for the cases which do not match localized language and active
keyboard layout location, it scans another shortcut keys with ignoring
`Shift` state if no handler is available.
`<command>` elements and `<key>` elements may be disabled conditionally.
E.g., Zoom-in/Zoom-out are disabled when current zoom level is max/min value.
In this case, it's odd that another shortcut key which does not exactly match
the modifiers works.
Therefore, this patch makes `GlobalKeyListener` does not try to scan handlers
with ignoring `Shift` state if it has already found a disabled handler which
exactly matches with the modifiers.
Differential Revision: https://phabricator.services.mozilla.com/D184789
The new detection code introduced in bug 1838123 doesn't work on Windows 10.
This patch:
1. Splits the Windows 11 code into its own function.
2. Refactors the system handle enumeration code into its own function which can be called with a lambda, since it is needed for both Windows 11 and Windows 10.
3. Adds code to detect clients on Windows 10 based on the old detection code before bug 1838123, with some noteworthy changes:
- Hooking the UIA window message doesn't work; our hook runs too late. It also doesn't work well for blocking; some clients will very likely poke us more than the maximum attempts in the old code (5 times).
- Instead, we run this code as part of LazyInstantiator::ShouldInstantiate, just as we do for all other client detection.
- This means we use the same UIA detection caching strategy; i.e. reset on foreground changes.
- It also means we reuse the same instantiator setting and block listing code in LazyInstantiator.
Differential Revision: https://phabricator.services.mozilla.com/D185627
It's expensive to call `nsINode::IsAnyOfHTMLElements` with a lot of arguments
due to its recursive calls (in this case, called with 30 arguments).
Additionally, the unknown element check with `do_QueryObject` is also expensive.
Once we get an `nsHTMLTag`, we can use a `switch` statement.
Note that I realized `nsHTMLTag_small` is not defined only on Windows if
`nsHTMLTags.h` is included after `rpcndr.h` in the Windows SDK since there is
```
#define small char
```
In the header file. This patch includes the workaround for this issue.
Differential Revision: https://phabricator.services.mozilla.com/D184553
Also remove a comment from AsyncInitFailureWithSyncInitSuccess that was left
over from a earlier iteration of that test but is no longer relevant,
and remove an unnecessary 0.5 -> 0.0 volume transition.
Differential Revision: https://phabricator.services.mozilla.com/D185398
This is a bustage fix because I accidentally converted the
`partner_repackage.py` transforms to the new format without
converting a kind that used them. Normally I've been trying
to convert all kinds that use a given transform file at
once but I neglected this one.
Differential Revision: https://phabricator.services.mozilla.com/D185713
From my understanding of the issue, we want to preserve the utf8 string type while also adding the `org.nspasteboard.ConcealedType` as an indicator that a string is private data. I do this by creating a new type to add to the key/value dict we use to set clipboard data. While we handle this on Windows via a flag the windows API provides us, it looks like on MacOS we need to manually specify the data information. I'm unsure if this is quite what the OS intends to see, but with a lack of baseline information from Apple or from testing Safari behaviors, it *looks* like this might be the right way to go about it.
Differential Revision: https://phabricator.services.mozilla.com/D185402
If there are stack results and the branch target has a different stack height
from the current code, baseline will invert the branch and use a stub to
adjust the stack before jumping to the target. It looks like we had a typo
and the branch code for casts would fail to invert the branch.
Differential Revision: https://phabricator.services.mozilla.com/D185437
Module serialization needs a map from type def pointer to type index. When we have
structurally identical type definitions, we have multiple options of what to use
in the map. Right now we used the last occuring type index in the module. This
caused us to encode type indices while serializing that point to types we haven't
decoded yet, running into errors. This commit changes us to keep the first type
index that we had for the canonical type, to avoid this.
Differential Revision: https://phabricator.services.mozilla.com/D185202