- Register pagehide/pageshow events in the system group and ignore
synthetic events to avoid interference from web pages.
- Remove unused docShell member.
- Fix memory leak in bfcached windows, by ensuring that BaseContext
instances can be GC'd when an extension is unloaded, even if the
context is associated with a page in the bfcache.
- Ensure that context.contentWindow and context.active always have an
accurate value.
The latter is achieved by moving all contentWindow tracking logic in a
new helper class "InnerWindowReference".
Differential Revision: https://phabricator.services.mozilla.com/D4072
--HG--
extra : moz-landing-system : lando
extension.getViews() returns all windows whose context.active property
is true. In an upcoming commit, this "active" property will no longer be
set to false upon pagehide (which is a bit too early, since the window
has not unloaded yet), but set to false if the window is truly unloaded
(or frozen in the bfcache).
In the extension.getViews() test, the parts that close the popup or tab
should not immediately resume the test, but wait until the window in the
extension process has unloaded. Otherwise there is a rare chance that
extension.getViews() will return the window that was expected to be
closed, which results in a test failure.
Differential Revision: https://phabricator.services.mozilla.com/D4992
--HG--
extra : moz-landing-system : lando
Add a new template literal state to findCompletionBeginning so we can
better handle the autocompletion for them.
Differential Revision: https://phabricator.services.mozilla.com/D4853
--HG--
extra : moz-landing-system : lando
Doing std::move when returning/assigning a local or temporary object is
preventing the compiler from performing copy elision.
In the case of UniquePtr, it's easier to `return MakeUnique<T>(...)` instead of
the move verbose `UniquePtr<T> r(new T(...)); return r;`
Differential Revision: https://phabricator.services.mozilla.com/D5019
--HG--
extra : moz-landing-system : lando
Use tab.setAttribute instead of tab.setUserContextId, in case the XBL
bindings are not ready yet.
Differential Revision: https://phabricator.services.mozilla.com/D5013
--HG--
extra : moz-landing-system : lando
The container tab indicator should also be set on the tab, not just on
the browser. Otherwise it is possible for the indicator to be missing
when a new window is opened.
And previously, if the URL was an "about:blank" URL, the tab in the new
window would use the default container because of the early return in
_handleURIToLoad. This is fixed by accounting for window.arguments[6]
when initializing the default (about:blank) tab in the tabbrowser.
Unit tests for these code path will be added in bug 1393570.
Differential Revision: https://phabricator.services.mozilla.com/D4920
--HG--
extra : moz-landing-system : lando
This patch introduces some options that can be passed to
setItems and openPopup to prevent doing unecessary work.
The main ideas here are to create all the popup items and
put them in a document fragment which then will be appended
to the popup, so we don't add them one by one which can be costly.
When creatingthe items, we also create one directly with the
selected class if autoSelect is set to true. This way, we don't have
to toggle the class later (which led to another reflow).
We take this work as an opportinuity to clean up the component.
Unused function (like appendItem and removeItem) are removed,
selectedIndex does not use a getter/setter anymore.
Some of the consumers calls are updated and so is the component test.
Differential Revision: https://phabricator.services.mozilla.com/D4848
--HG--
extra : moz-landing-system : lando
This way, codeMirror does not trigger so many reflows and
makes setAutocompletionText faster.
An unwanted side-effect was that it made closing the console
a lot slower. Looking at the closing code of the JsTerm, we
do call setAutocompletionText("") in the end, which we don't
really need since we destroy the editor shortly after. Removing
this call keeps closing time the same as before.
Differential Revision: https://phabricator.services.mozilla.com/D4905
--HG--
extra : moz-landing-system : lando
Move the reftests of path() into wpt. For the rest reftests of clip-path, we
could move them into wpt in a separate bug.
Depends on D4965
Differential Revision: https://phabricator.services.mozilla.com/D4968
--HG--
rename : layout/reftests/svg/svg-integration/clip-path/clip-path-path-001.html => testing/web-platform/tests/css/css-masking/clip-path/clip-path-path-001.html
rename : layout/reftests/svg/svg-integration/clip-path/clip-path-path-002.html => testing/web-platform/tests/css/css-masking/clip-path/clip-path-path-002.html
rename : layout/reftests/svg/svg-integration/clip-path/clip-path-path-001-ref.html => testing/web-platform/tests/css/css-masking/clip-path/reference/clip-path-path-001-ref.html
rename : layout/reftests/svg/svg-integration/clip-path/clip-path-path-002-ref.html => testing/web-platform/tests/css/css-masking/clip-path/reference/clip-path-path-002-ref.html
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
This switches send-tab to use the new FxA "device commands" feature
by default, rather than the old sync client commands channel.
Differential Revision: https://phabricator.services.mozilla.com/D4892
--HG--
extra : moz-landing-system : lando
Some classes of a11y are defined from both IUnknown and nsISupports. Both of
them have QueryInterface(). So, one of them is overridden by a sub class
hides the other and this is warned by clang. However, AccessibleWrap.h
prevents this warning since it's by design when the compiler is GCC.
So, it should do same thing when the compiler is clang.
Differential Revision: https://phabricator.services.mozilla.com/D4310
--HG--
extra : moz-landing-system : lando
This also makes various AutofillRecords methods async, with the exception of
remove() and removeAll().
Noted that I didn't implement any kind of "lock" for FormAutofillStorage --
please do not call these methods concurrently -- if you must please |await|
for the last call to resolve. This most likely would happen in tests, and
shouldn't happen in the real world, given that all user actions happen on
macrotasks, and probably not at the next tick, unless Quicksilver is a
Firefox user.
FormAutofillStorage can be improved if there are complex use cases for it.
Differential Revision: https://phabricator.services.mozilla.com/D4420
--HG--
extra : moz-landing-system : lando
SelectionChangeListener is too generic name but it just dispatches
selectionchange event when it's necessary. So, it should be renamed to
SelectionChangeEventDispatcher. Additionally, it's in mozilla::dom namespace
but it does not represent any DOM object. So, it should be in mozilla namespace
instead.
Differential Revision: https://phabricator.services.mozilla.com/D4913
--HG--
rename : dom/base/SelectionChangeListener.cpp => dom/base/SelectionChangeEventDispatcher.cpp
rename : dom/base/SelectionChangeListener.h => dom/base/SelectionChangeEventDispatcher.h
extra : moz-landing-system : lando
nsDateTimeControlFrame should be a leaf like all the other <input> frames
like nsTextControlFrame, nsCheckboxRadioFrame, etc.
Differential Revision: https://phabricator.services.mozilla.com/D4985
--HG--
extra : moz-landing-system : lando
It turns out nsSecureBrowserUIImpl is considerably more complicated than it
needs to be. This patch reimplements it in terms of OnLocationChange only, which
is all it needs to produce the same behavior as before.
Differential Revision: https://phabricator.services.mozilla.com/D3548
--HG--
extra : moz-landing-system : lando
We're ending up in a case here where document.activeElement is null in
browser.xhtml but it's a <browser> tag in browser.xul.
We'll need more analysis and testing to decide if we want the HTML or XUL
activeElement behavior, and then adjust as needed. But in the meantime,
this unbreaks a bunch of browser.xhtml tests and is a safe null check in
both cases.
Differential Revision: https://phabricator.services.mozilla.com/D4705
--HG--
extra : moz-landing-system : lando
At least, when that combination doesn't work. This requires passing the
LTO flags to the compiler invocations for the test, which in turn
requires actually calling the linker directly on Windows, instead of
directly through the compiler, as when actually building.
Differential Revision: https://phabricator.services.mozilla.com/D4739
--HG--
extra : moz-landing-system : lando
AArch64 Windows includes the necessary DLL in its default configuration,
so we don't need to bother locating it in the SDK. We made need to
distribute an updated version that won't by on the system by default,
though, so we need some extra checking.
Apparently the assembler was willing to accept the previous version, but
was unwilling to find the necessary symbols to link some JS code. This
version correctly quotes the data symbol and adds a little extra quoting
based on examining compiler-generated output.