Commit Graph

680 Commits

Author SHA1 Message Date
Brian Grinstead
5c162e767e Bug 1593119 - unifdef MOZ_XBL r=bzbarsky
This was generated with:

```
rg -l -g '*.{cpp,h}' MOZ_XBL . | while read FILE ; do
   echo $FILE
   unifdef -m -UMOZ_XBL $FILE
done
```

After this, I manually removed the directive in nsContentUtils.cpp due to:

  unifdef: ./dom/base/nsContentUtils.cpp: 4630: Unterminated string literal
  unifdef: Output may be truncated

Differential Revision: https://phabricator.services.mozilla.com/D51337
2019-11-07 00:35:13 +00:00
Brendan Dahl
ef30c33394 Bug 1470510 - Rename nsXULWindow and nsIXULWindow to AppWindow and nsIAppWindow. r=smaug
nsXULWindow is no longer XUL specific and is somewhat confusing name.

Differential Revision: https://phabricator.services.mozilla.com/D51486
2019-11-05 17:56:28 +00:00
Mihai Alexandru Michis
5803a050c4 Backed out 2 changesets (bug 1470510) for causing bustages in widget/cocoa/nsChildView.mm CLOSED TREE
Backed out changeset a343f30c34a3 (bug 1470510)
Backed out changeset 4da64790094d (bug 1470510)
2019-11-05 09:24:26 +02:00
Brendan Dahl
b484de8fe7 Bug 1470510 - Rename nsXULWindow and nsIXULWindow to AppWindow and nsIAppWindow. r=smaug
nsXULWindow is no longer XUL specific and is somewhat confusing name.

Differential Revision: https://phabricator.services.mozilla.com/D51486
2019-11-04 23:37:31 +00:00
Dorel Luca
bcbec745b9 Backed out 2 changesets (bug 1470510) for build bustage on /build/src/widget/cocoa/nsChildView.mm. CLOSED TREE
Backed out changeset 5967bf633574 (bug 1470510)
Backed out changeset 067a556bb614 (bug 1470510)
2019-11-04 19:18:56 +02:00
Brendan Dahl
4f87b88cc6 Bug 1470510 - Rename nsXULWindow and nsIXULWindow to AppWindow and nsIAppWindow. r=smaug
nsXULWindow is no longer XUL specific and is somewhat confusing name.

Differential Revision: https://phabricator.services.mozilla.com/D51486
2019-11-04 16:52:35 +00:00
Nicholas Nethercote
99a55e2d1c Bug 1587162 - Fix UBSAN complaints about pref callbacks. r=erahm
Lots of these callbacks have a non-`void*` final parameter, which UBSAN
complains about. This commit changes them to have a `void*` parameter.

This requires undoing the machinery added in the first two commits of bug
1473631: `TypePrefChangeFunc` and `PREF_CHANGE_METHOD`. The resulting code is
simpler (which is good) and more boilerplate-y (which is bad) but avoids the
undefined behaviour (which is good).

Differential Revision: https://phabricator.services.mozilla.com/D50901
2019-11-01 02:57:20 +00:00
Tim Nguyen
da27ed5d34 Bug 1513325 - Remove textbox binding. r=emilio,dao
Differential Revision: https://phabricator.services.mozilla.com/D38955
2019-10-09 09:27:28 +00:00
Brendan Dahl
bf272a3bca Bug 1510785 - Only build XBL related code when MOZ_XBL is defined. r=bzbarsky
When XBL is disabled, no code in dom/xbl will be built. Also, adds ifdefs
to remove any of the XBL related code elsewhere. There's definitely more
that can be done here, but I think it's better to wait to do the rest of
the cleanup when we actually remove the code.

Depends on D45612

Differential Revision: https://phabricator.services.mozilla.com/D45613
2019-10-08 23:52:14 +00:00
Kannan Vijayan
c110dbe443 Bug 1569262 - Rename nsIDocShellTreeItem::GetRootTreeItem to GetInProcessRootTreeItem for Fission marking. r=nika
Differential Revision: https://phabricator.services.mozilla.com/D41064
2019-08-07 19:24:00 +00:00
Kannan Vijayan
c690c1925f Bug 1559414 - Rename unaudited pre-fission methods with SameProcess for future audit burndown. r=nika
Differential Revision: https://phabricator.services.mozilla.com/D39378
2019-07-26 16:48:31 +00:00
Mirko Brodesser
090d7efc5e Bug 1565584: move nsIContentUtils::ContentIsDescendantOf to nsINode::IsInclusiveDescendantOf. r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D37880
2019-07-15 10:02:21 +02:00
Makoto Kato
c1fbcc9cc8 Bug 1556103 - Part 1. Add long press action when setting focus. r=masayuki
Actually, long tap can set focus.  But since it uses `nsIFocusManager::FLAG_BYMOUSE` flag, we cannot recognize whether setting focus is by long tap or not.

So I would like to add new flag `FLAG_BYLONGPRESS` and `CAUSE_LONGPRESS` that are by long tap.

Differential Revision: https://phabricator.services.mozilla.com/D35991
2019-06-28 00:39:45 +00:00
Cosmin Sabou
706aa85372 Merge mozilla-inbound to mozilla-central. a=merge 2019-07-03 19:20:05 +03:00
Mirko Brodesser
e8543e1b1b Bug 1562876: rename Selection::AddRange to Selection::AddRangeAndSelectFramesAndNotifyListeners. r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D36602
2019-07-03 13:26:13 +02:00
Emilio Cobos Álvarez
4f169bebdf Bug 1561288 - Don't override currentContent when focusing something on a shadow root. r=smaug
It is wrong, what we're trying to focus is frame->GetContent() still.

This is not reproducible outside of Thunderbird because for it to happen the
focus manager needs to wrap around the start content.

Here's what's going on:

 * We start with a <tree> focused, which is a shadow host.
 * There's nothing else to focus inside the <tree>, or after the <tree> in document order.
 * So we restart the search with a different tabindex (1), but find nothing before the tree (since all focusable elements before the tree also have tabindex 0), and we return wrongly in [1], instead of searching with tabindex 0 again afterwards. (Since the child frame is not focusable, we wrongly end up at [1], and returning early, since currentContent != frame->GetContent(), instead of keeping looking for the right thing to focus.)

As I said this cannot reproduce on content, as far as I can tell, so I'm not
sure how to go about testing this, but all the shadow dom tab navigation tests
keep passing with this change.

[1]: https://searchfox.org/mozilla-central/rev/06bd14ced96f25ff1dbd5352cb985fc0fa12a64e/dom/base/nsFocusManager.cpp#3560

Differential Revision: https://phabricator.services.mozilla.com/D36196
2019-07-01 20:04:07 +00:00
Henri Sivonen
f050fd91a1 Bug 1562796 - Pop BrowserParents of the previous window when raising/creating a window. r=m_kato
Differential Revision: https://phabricator.services.mozilla.com/D36581
2019-07-03 06:06:26 +00:00
Emilio Cobos Álvarez
3244910d0e Bug 1561738 - Remove nsStyleCoord. r=boris
And move the useful bits of it somewhere else (ServoStyleConstInlines.h for the
inline function definitions, and nsFrame.cpp for the static assertions).

Differential Revision: https://phabricator.services.mozilla.com/D36120
2019-06-28 12:44:44 +02:00
Cosmin Sabou
a5a1cf97a8 Backed out 3 changesets (bug 1561738) for causing build bustages on nsGridContainerFrame.cpp CLOSED TREE
Backed out changeset 98f100abc2ba (bug 1561738)
Backed out changeset 9ed20d0fb9ba (bug 1561738)
Backed out changeset 483b1e134ace (bug 1561738)
2019-06-28 13:27:09 +03:00
Emilio Cobos Álvarez
a622c42ad4 Bug 1561738 - Remove nsStyleCoord. r=boris
And move the useful bits of it somewhere else (ServoStyleConstInlines.h for the
inline function definitions, and nsFrame.cpp for the static assertions).

Differential Revision: https://phabricator.services.mozilla.com/D36120
2019-06-28 09:46:26 +00:00
Emilio Cobos Álvarez
6885568834 Bug 1558393 - Don't keep top level scope owner when going backwards. r=smaug
When going backwards the host is the last thing of the scope we see, not the
first, so we need to make sure to properly switch to the document scope.

To be clear, the order this is happening when bogusly going backwards from
`second` to `first` is:

 * We're doing frame traversal so start off the <div>.
 * The text is the first frame in preorder we find, we figure out that the
   current top-level owner is the host. But it's not focusable so we carry on.
 * Now we go to the next frame and find the <span>. `oldTopLevelScopeOwner` is
   still the span itself, and we don't change it (that's what my patch fixes),
   so we go into the "We're within non-document scope, continue", and thus skip
   trying to focus the host.

With this fix we actually realize that the current top level scope owner has
changed and thus don't skip it and try to focus the slot properly.

Differential Revision: https://phabricator.services.mozilla.com/D35585
2019-06-25 10:35:39 +00:00
Henri Sivonen
571a83a5e9 Bug 1549930 - Avoid popping BrowserParent in response to window lowering. r=masayuki
Differential Revision: https://phabricator.services.mozilla.com/D30873
2019-06-14 07:02:18 +00:00
Ehsan Akhgari
200d6ea9cc Bug 836176 - Part 3: Remove nsIHTMLDocument; r=farre
Differential Revision: https://phabricator.services.mozilla.com/D32925
2019-06-04 17:27:43 +00:00
Emilio Cobos Álvarez
b56d5ba7d7 Bug 1553769 - Have a single way of requesting window focus and switching to a tab. r=NeilDeakin,snorp
Right now there's some duplicated code with the focus manager and the
DOMWindowFocus event.

Android didn't handle the new framefocusrequested event, so the test-cases in
bug 416771 still didn't work there.

I think using the focus manager codepath everywhere is preferable. I confirmed
manually that the stuff that sent DOMWindowFocus events still works as expected
with this patch (i.e., switching to the right tab when you click on a
notification, etc.).

This fixes it so that it works in Fennec, and it sends the focus events right in
GeckoView Example (i.e., we get here[1] properly).

The snippet that Snorp provided on IRC to implement the "bring activity to
front" stuff (`startActivity(getIntent())`) didn't actually work for me, but I
confirmed that the right message is sent when the focus is requested, and that
we get there.

[1]: https://searchfox.org/mozilla-central/rev/952521e6164ddffa3f34bc8cfa5a81afc5b859c4/mobile/android/geckoview_example/src/main/java/org/mozilla/geckoview_example/GeckoViewActivity.java#503

Depends on D32353

Differential Revision: https://phabricator.services.mozilla.com/D32354
2019-06-03 19:42:28 +00:00
Emilio Cobos Álvarez
c269510c54 Bug 1553769 - Make nsIWidget::SetFocus infallible, and make it take an enum class. r=NeilDeakin
Only gtk returns failure ever, and nobody checks the result anyway.

Use an enum class so that it's clear from the caller what it means.

Differential Revision: https://phabricator.services.mozilla.com/D32353
2019-05-31 22:13:56 +00:00
Ehsan Akhgari
9c98e2b335 Bug 1415270 - Part 1: Move nsHTMLDocument editing APIs to Document; r=farre,masayuki
Differential Revision: https://phabricator.services.mozilla.com/D32911
2019-05-31 01:37:26 +00:00
Brindusan Cristian
e304b188c2 Backed out changeset c0895e6c7343 (bug 1553769) for causing build bustages at PluginWidgetProxy.cpp. CLOSED TREE 2019-05-30 01:00:20 +03:00
Emilio Cobos Álvarez
e7638ca182 Bug 1553769 - Make nsIWidget::SetFocus infallible, and make it take an enum class. r=NeilDeakin
Only gtk returns failure ever, and nobody checks the result anyway.

Use an enum class so that it's clear from the caller what it means.

Differential Revision: https://phabricator.services.mozilla.com/D32353
2019-05-29 14:37:26 +00:00
shindli
a5086b2190 Backed out changeset 79436da3bf79 (bug 1549930) for causing perma browser chrome failures in browser/components/privatebrowsing/test/browser/browser_privatebrowsing_about.js CLOSED TREE 2019-05-27 18:09:53 +03:00
Henri Sivonen
4364cf78ec Bug 1549930 - Avoid popping BrowserParent in response to window lowering. r=masayuki
Differential Revision: https://phabricator.services.mozilla.com/D30873
2019-05-27 12:22:37 +00:00
Masayuki Nakano
cf345a4a71 Bug 1547618 - Make dom use mozilla::PresShell rather than via nsIPresShell r=smaug
Additionally, this patch makes `nsContentUtils::DispatchXULCommand()` because
it guarantees the lifetime of **only** `PresShell` in it.  So, we need to check
the lifetime of each argument at each caller here.

Differential Revision: https://phabricator.services.mozilla.com/D29199
2019-04-30 01:35:30 +00:00
Masayuki Nakano
5910153fa0 Bug 1547416 - Move nsIPresShell::ScrollAxis to PresShellForwards.h r=smaug
`nsIPresShell::ScrollAxis` can be used anywhere and it's used by some
utils actually. So, it should be in `mozilla` namespace and perhaps,
 `PresShellForwards.h` is a good place to move it rather than creating
new header file.

Differential Revision: https://phabricator.services.mozilla.com/D29110
2019-04-30 00:07:49 +00:00
Emilio Cobos Álvarez
28cf34ed8c Bug 1546019 - When a focused browser changes remoteness, make sure to activate the remote browser if needed. r=qdot
Not quite sure what's a good way to add a test for this... Ideas?

Differential Revision: https://phabricator.services.mozilla.com/D29104
2019-04-29 20:06:22 +00:00
Masayuki Nakano
12b5544904 Bug 1545342 - part 2: Make some public enum of nsIPresShell move to mozilla namespace and defined as enum class in PresShellForwards.h r=smaug
This patch moves some `enum` in `nsIPresShell` which are in public scope into
`mozilla` namespace and change them as `enum class`es.

Unfortunately, only "where to scroll" enum is just defines constants of
percentages of scroll destination.  Therefore, this patch makes only them
as `static const`.

Differential Revision: https://phabricator.services.mozilla.com/D28606
2019-04-25 05:04:15 +00:00
Masayuki Nakano
b709985d96 Bug 1545342 - part 1: Create mozilla/PresShellForwards.h and move global enums/constants in nsIPresShell.h and mozilla/PresShell.h into the new one r=smaug
This patch creates new header, `mozilla/PresShellForwards.h`.  It should have
all forward declarations of global class/struct in `nsIPresShell.h` and
`mozilla/PresShell.h`.

Additionally, this moves all `enum`s and `constant`s in them into the new file
with changing them to `enum class`es.

This will make other headers which require only specific types in the header
files not include them.

Differential Revision: https://phabricator.services.mozilla.com/D28605
2019-04-25 05:02:20 +00:00
Ryan Hunt
7144ca54c8 Bug 1534395 - Rename TabChild to BrowserChild. r=nika
This commit renames TabChild to BrowserChild.

Differential Revision: https://phabricator.services.mozilla.com/D28135
2019-04-09 17:39:01 -05:00
Ryan Hunt
0ab69187a6 Bug 1534395 - Rename nsITabChild to nsIBrowserChild. r=nika,mconley
Similarly to nsITabParent, TabChild is exposed to frontend code via nsITabChild. It's not clear what the future of this interface will be, but for now we can just rename it to nsIBrowserChild.

Differential Revision: https://phabricator.services.mozilla.com/D28134
2019-04-09 18:15:02 -05:00
Ryan Hunt
6b09ea12a4 Bug 1534395 - Rename TabParent to BrowserParent. r=nika
This commit renames TabParent to BrowserParent.

Differential Revision: https://phabricator.services.mozilla.com/D28133
2019-04-09 16:38:15 -05:00
Masayuki Nakano
769c571f03 Bug 1543315 - part 11: Mark nsIPresShell::ScrollContentIntoView() as MOZ_CAN_RUN_SCRIPT r=smaug
This patch marks `ScrollContentIntoView()` as `MOZ_CAN_RUN_SCRIPT` and changing
some callers of them to guarantee thar their parent callers are also safe.

Additionally, this patch moves it from `nsIPresShell` to `PresShell` because
all callers can refer `PresShell` directly.

Unfortunately, this patch changes a lot of methods in autocomplete and satchel
since this patch needs to mark some interface methods as `can_run_script` and
they are called each other.  This means that autocomplete module is really
sensitive like editor module.  Perhaps, autocomplete and satchel should do
scroll asynchronously and unmark some of them as `MOZ_CAN_RUN_SCRIPT` again.

Differential Revision: https://phabricator.services.mozilla.com/D28320
2019-04-23 01:34:24 +00:00
Mirko Brodesser
7dee0f90db Bug 1057858: ensure all frames for '<input type="number">' are created before choosing the nested element to be focused. r=smaug
- Avoids undesired bluring and focusing of '<input type="number">' and its nested elements.

- Add tests for two scenarios where this could occur.

Differential Revision: https://phabricator.services.mozilla.com/D27684
2019-04-17 07:01:34 +00:00
Emilio Cobos Álvarez
df046f1399 Bug 1544826 - Fix tab navigation when document element is a shadow host. r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D27736
2019-04-17 10:13:33 +00:00
Narcis Beleuzu
6a9d3e8287 Backed out changeset f5e5b65b6600 (bug 1544826) for mochitest failures on test_focus_shadow_dom_root.html . CLOSED TREE 2019-04-17 12:03:46 +03:00
Emilio Cobos Álvarez
b64692ac40 Bug 1544826 - Fix tab navigation when document element is a shadow host. r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D27736
2019-04-16 17:50:55 +00:00
Masayuki Nakano
d0d9ccd592 Bug 1542506 - Make nsDocShell use mozilla::PresShell* directly rather than nsIPresShell* r=bzbarsky
This patch makes `nsDocShell::GetPresShell()` and
`nsDocShell::GetEldestPresShell()` return `mozilla::PresShell*` and
some non-public methods use `mozilla::PresShell*` directly.

Differential Revision: https://phabricator.services.mozilla.com/D26424
2019-04-13 01:03:13 +00:00
Mirko Brodesser
87a251e9ed Bug 1374045: add 'preventScroll' option to HTMLElement's, SVGElement's and XULElement's 'focus' method r=smaug
- Remove expectation that 'preventScroll.html' fails.

- Use '[NoInterfaceObject] interface' workaround to simulate missing 'mixin' support.

Differential Revision: https://phabricator.services.mozilla.com/D26922
2019-04-12 08:16:47 +00:00
Boris Zbarsky
24b6917568 Bug 1543564 part 3. Get rid of pointless nsPIDOMWindowOuter::GetOuterWindow method. r=farre
Differential Revision: https://phabricator.services.mozilla.com/D27028
2019-04-11 14:14:15 +00:00
Hiroyuki Ikezoe
32f8c0536b Bug 1535232 - Take account the scroll-snap-margin and scroll-snap-padding into the position where we scroll to on Element.focus() call. r=masayuki,botond
We also take account those values in the case of `Find in page`.

The corresponding web platform tests will be coming from this PR.
https://github.com/web-platform-tests/wpt/pull/8575

Though some of them will not be passed, the failure reason is not related
to this change, I will take a look when the PR gets merged into mozilla-central.

Differential Revision: https://phabricator.services.mozilla.com/D25915
2019-04-11 06:22:38 +00:00
Hiroyuki Ikezoe
6a17dc5067 Bug 1534070 - Factor scroll-padding into the position calculation where nsIPresShell::ScrollContentIntoView() is going to scroll if necessary. r=botond
In the case where scroll-snap-type is specified for the scroll container, the
scroll-padding is also factored into in ScrollFrameHelper::ComputeScrollSnapInfo
which is called via ScrollFrameHelper::ScrollToWithOrigin.  It doesn't double
the scroll-padding value, but it's actually redundant, we should avoid it.
We could separate the functionality of ScrollToWithOrigin, one is to scroll
to a given element, the other is to scroll to a given position.  The former will
be used for Element.scrollIntoElement and relevant stuff, the latter will be
used for Element.scrollTo and relevant stuff.  That's being said, as of now, we
have still the old scroll snap implementation, so the separation will introduce
complexity, the separation should be done once after the old implementation
removed.

There are 9 call sites of nsIPresShell::ScrollContentIntoView:
  nsIPresShell::GoToAnchor
  nsIPresShell::ScrollToAnchor
  Element::ScrollIntoView
   We definitely needs scroll-padding and scroll-margin for these functions.

  nsCoreUtils::ScrollTo
   This is used for Accesible::ScrollTo which scrolls to a given accesible node,
   probably we should behave as what Element::ScrollIntoView does.

  Accessible::DispatchClickEvent
   Similar to the above, similated various mouse events on a given target node.

  PresShell::EventHandler::PrepareToUseCaretPosition
  PresShell::EventHandler::GetCurrentItemAndPositionForElement
   Both are for context menu, we shouldn't consider scroll-padding and
   scroll-margin.

  nsFormFillController::SetPopupOpen
   This is used for autocompletion popup, we shouldn't consider scroll-padding
   and scroll-margin.

  nsFocusManager::ScrollIntoView
   This is bit unfortunate, we should use scroll-padding and scroll-margin
   depending on call site of this function. Bug 1535232 is for this case.

cssom-view/scrollIntoView-scrollPadding.html which has some tests that is
actually testing scroll-padding with scrollIntoView passes with this change.

The reftest in this change is a test case that the browser navigates to an
element with specifying the anchor to the element.

Differential Revision: https://phabricator.services.mozilla.com/D23084
2019-04-11 06:22:14 +00:00
Masayuki Nakano
e56c690088 Bug 1540015 - part 3: Rename Document::GetShell() to Document::GetPresShell() and make it return PresShell* rather than nsIPresShell* r=smaug,emilio
This makes `Document::GetShell()` return `PresShell*` instead of `nsIPresShell`.

Additonally, "shell" is unclear ("docshell" vs. "presshell").  Therefore, this
also renames `Document::GetShell()` to `Document::GetPresShell()`.

Similarly, some other method names of `Document` are also renamed from
`*Shell*` to `*PresShell*`.

Differential Revision: https://phabricator.services.mozilla.com/D25338
2019-03-29 15:12:47 +00:00
Dorel Luca
6cd4166b18 Backed out 3 changesets (bug 1540015) for build bustage. CLOSED TREE
Backed out changeset 7b71c9da0214 (bug 1540015)
Backed out changeset 5723ddbc5c44 (bug 1540015)
Backed out changeset 9561d2c36fa5 (bug 1540015)
2019-03-29 16:14:26 +02:00