Commit Graph

795 Commits

Author SHA1 Message Date
Andrew Swan
c124590602 Bug 1555060 Convert <tabs> to a custom element
The conversion for "regular" <tabs> elements is straightforward, most of
the work here is to support the tab strip (the <tabs> element with the id
"tabbrowser-tabs").  The markup needed for the tab strip moves directly
into browser.xhtml and the construction/teardown logic is now explicitly
driven from gBrowser.  There are many more little tweaks too numerous to
enumerate.

Differential Revision: https://phabricator.services.mozilla.com/D32855
2019-06-20 14:09:37 -07:00
Andrew Swan
a74f65b714 Bug 1555060 Stop using dom structure for <tabs>/<tab> relationships
A bunch of existing code assumes that <tab> elements are the immediate
and only children of a <tabs> element, and uses dom apis to traverse
relationships between these elements.  To simplify conversion of <tabs>
to a custom element (and hopefully improve readability a bit at the same
time!), introduce new apis:

On <tab>
this.parentNode -> this.container
this.nextElementSibling -> this.container.findNextTab(...)
this.previousElementSibiling -> this.container.findNextTab(...)

On <tabs>
this.children -> this.allTabs

Differential Revision: https://phabricator.services.mozilla.com/D34648
2019-06-11 14:49:46 -07:00
Ciure Andrei
360ee087a8 Backed out 3 changesets (bug 1555060) for causing test_tabbar.py to perma fail CLOSED TREE
Backed out changeset a5c6deeda8a9 (bug 1555060)
Backed out changeset f4e21e465f38 (bug 1555060)
Backed out changeset c71c45fe3e63 (bug 1555060)
2019-06-28 00:21:50 +03:00
Andrew Swan
c20b711ae1 Bug 1555060 Convert <tabs> to a custom element
The conversion for "regular" <tabs> elements is straightforward, most of
the work here is to support the tab strip (the <tabs> element with the id
"tabbrowser-tabs").  The markup needed for the tab strip moves directly
into browser.xhtml and the construction/teardown logic is now explicitly
driven from gBrowser.  There are many more little tweaks too numerous to
enumerate.

Differential Revision: https://phabricator.services.mozilla.com/D32855
2019-06-20 14:09:37 -07:00
Andrew Swan
795b5037d0 Bug 1555060 Stop using dom structure for <tabs>/<tab> relationships
A bunch of existing code assumes that <tab> elements are the immediate
and only children of a <tabs> element, and uses dom apis to traverse
relationships between these elements.  To simplify conversion of <tabs>
to a custom element (and hopefully improve readability a bit at the same
time!), introduce new apis:

On <tab>
this.parentNode -> this.container
this.nextElementSibling -> this.container.findNextTab(...)
this.previousElementSibiling -> this.container.findNextTab(...)

On <tabs>
this.children -> this.allTabs

Differential Revision: https://phabricator.services.mozilla.com/D34648
2019-06-11 14:49:46 -07:00
Geoff Lankow
902190d63a Bug 1529205 - Remove DateTimePickerParent's dependency on gBrowser; r=mconley
Differential Revision: https://phabricator.services.mozilla.com/D35392
2019-06-26 18:15:28 +00:00
Nika Layzell
7920ede33c Bug 1559409 - Show subframe pids in tab hover text, r=mconley
Differential Revision: https://phabricator.services.mozilla.com/D35029
2019-06-14 15:42:39 +00:00
Dão Gottwald
db11d4d15e Bug 1559363 - Open-view-on-focus mode should only apply when the user explicitly focuses the address bar, not on autofocus. r=adw
Differential Revision: https://phabricator.services.mozilla.com/D35280
2019-06-19 01:18:06 +00:00
Ehsan Akhgari
5f57b1b6e4 Bug 1557887 - Part 5: Pass a storage principal argument through the browser loadURI()/addTab() APIs; r=baku,mconley
Differential Revision: https://phabricator.services.mozilla.com/D34459
2019-06-12 23:05:36 +00:00
Gurzau Raul
ae3b8b1e09 Merge inbound to mozilla-central. a=merge 2019-06-12 00:34:32 +03:00
Neil Deakin
c1eb92539d Bug 1533948, change BrowserTabChild to inherit from JSWindowActor, r=mconley 2019-06-11 09:05:33 -04:00
Boris Zbarsky
95de682140 Bug 1557793 part 2. Stop using [array] in nsIStringBundle. r=Pike
Differential Revision: https://phabricator.services.mozilla.com/D34196
2019-06-11 15:51:51 +00:00
Mike Conley
890b11ac87 Bug 1505909 - Merge remote and non-remote context menu handlers. r=NeilDeakin
Differential Revision: https://phabricator.services.mozilla.com/D32757
2019-06-08 01:09:10 +00:00
Noemi Erli
7401f1586b Backed out 6 changesets (bug 1505909) for failures in browser_ext_webNavigation_onCreatedNavigationTarget_contextmenu.js CLOSED TREE
Backed out changeset 57336967a6c7 (bug 1505909)
Backed out changeset 8adcacadd689 (bug 1505909)
Backed out changeset bcca6bb913ef (bug 1505909)
Backed out changeset afc11a5ebb6d (bug 1505909)
Backed out changeset 40f0a56ed3af (bug 1505909)
Backed out changeset 3e31f9726798 (bug 1505909)
2019-06-07 19:19:14 +03:00
Mike Conley
32a0246427 Bug 1505909 - Merge remote and non-remote context menu handlers. r=NeilDeakin
Differential Revision: https://phabricator.services.mozilla.com/D32757
2019-06-07 14:28:33 +00:00
Bogdan Tara
ea3799bc30 Backed out 6 changesets (bug 1505909) for bc failures complaining about WebNavigationChild and browser_e10s_about_page_triggeringprincipal.js CLOSED TREE
Backed out changeset 56449fd37aee (bug 1505909)
Backed out changeset 3ff09b79821c (bug 1505909)
Backed out changeset a1a2a9efe22f (bug 1505909)
Backed out changeset 8aeb77291207 (bug 1505909)
Backed out changeset 4aa17e28ee54 (bug 1505909)
Backed out changeset dbe6803d979e (bug 1505909)
2019-06-07 06:15:16 +03:00
Mike Conley
f532c80744 Bug 1505909 - Merge remote and non-remote context menu handlers. r=NeilDeakin
Differential Revision: https://phabricator.services.mozilla.com/D32757
2019-06-06 20:32:11 +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
Gijs Kruitbosch
5c0e824720 Bug 1555453 - use contextmenu event as backup to ensure we always localize the context menu, r=jaws
Differential Revision: https://phabricator.services.mozilla.com/D33328
2019-05-31 20:01:56 +00:00
Mike Conley
92452c88b5 Bug 1533949 - Make BrowserChild functions Fission-compatible, and move to BrowserElementChild. r=NeilDeakin
Differential Revision: https://phabricator.services.mozilla.com/D30725
2019-05-30 19:01:29 +00:00
Alexander Surkov
3e72225bf3 Bug 1519514 - convert tabbrowser-tab binding to a Custom Element, r=aswan
Differential Revision: https://phabricator.services.mozilla.com/D28662
2019-05-28 22:00:28 +00:00
Cosmin Sabou
61c6a5e4c5 Backed out 4 changesets (bug 1519514) for causing several browser chrome failures. CLOSED TREE
Backed out changeset 485c2c76fab6 (bug 1519514)
Backed out changeset 8488d800a785 (bug 1519514)
Backed out changeset 858b9456eb3c (bug 1519514)
Backed out changeset 2cd983857de6 (bug 1519514)
2019-05-29 11:01:47 +03:00
Alexander Surkov
fae3d434df Bug 1519514 - convert tabbrowser-tab binding to a Custom Element, r=aswan
Differential Revision: https://phabricator.services.mozilla.com/D28662
2019-05-28 22:00:28 +00:00
Barret Rennie
77bcd2e1ea Bug 1510569 - Keep track of whether we are navigating to a new URI in nsDocShell r=mconley,kmag,qdot
Previously the `WebNavigationChild` would keep track of when triggering its
`nsIWebNavigation`, `goForward`, `goBack`, `gotoIndex`, and `loadURI` methods.
It's `nsIWebNavigation` instance is always an `nsIDocShell` and as part of
porting `OnStateChange` and `OnLocationChange` events from
`WebProgressChild`/`RemoteWebProgress` to `BrowserChild`/`BrowserParent`, this
informations needs to be available from the `BrowserChild`. As it stands, it is
currently an expando property on the `WebProgressChild`.

Instead of introducing yet another XPCOM interface for the WebProgressChild, we
now store this information directly on the `nsDocShell`. Furthermore, instead
of having the `WebNavigationChild` manage this part of the `nsDocShell`'s
state, we can have the `nsDocShell` manage this state itself so it is always
consistent.

Differential Revision: https://phabricator.services.mozilla.com/D28124
2019-05-23 18:48:48 +00:00
Bogdan Tara
27d82ae613 Backed out 4 changesets (bug 1510569) for 1419902.html failures CLOSED TREE
Backed out changeset 756519a7cf79 (bug 1510569)
Backed out changeset 39c6818fdb12 (bug 1510569)
Backed out changeset 3d9715a5ecd4 (bug 1510569)
Backed out changeset 418a61f5f87b (bug 1510569)
2019-05-23 01:58:51 +03:00
Barret Rennie
832d529074 Bug 1510569 - Keep track of whether we are navigating to a new URI in nsDocShell r=mconley,kmag,qdot
Previously the `WebNavigationChild` would keep track of when triggering its
`nsIWebNavigation`, `goForward`, `goBack`, `gotoIndex`, and `loadURI` methods.
It's `nsIWebNavigation` instance is always an `nsIDocShell` and as part of
porting `OnStateChange` and `OnLocationChange` events from
`WebProgressChild`/`RemoteWebProgress` to `BrowserChild`/`BrowserParent`, this
informations needs to be available from the `BrowserChild`. As it stands, it is
currently an expando property on the `WebProgressChild`.

Instead of introducing yet another XPCOM interface for the WebProgressChild, we
now store this information directly on the `nsDocShell`. Furthermore, instead
of having the `WebNavigationChild` manage this part of the `nsDocShell`'s
state, we can have the `nsDocShell` manage this state itself so it is always
consistent.

Differential Revision: https://phabricator.services.mozilla.com/D28124
2019-05-21 21:34:54 +00:00
Emilio Cobos Álvarez
f338c40bf4 Bug 416771 - Allow window.focus() to switch tabs. r=NeilDeakin,dao CLOSED TREE
Differential Revision: https://phabricator.services.mozilla.com/D31643
2019-05-22 17:21:29 +00:00
Bogdan Tara
a98b31ad18 Backed out changeset 5acccb49a668 (bug 416771) for gecko decision bustage CLOSED TREE 2019-05-22 20:38:33 +03:00
Emilio Cobos Álvarez
b8fe9ad62e Bug 416771 - Allow window.focus() to switch tabs. r=NeilDeakin,dao
Differential Revision: https://phabricator.services.mozilla.com/D31643
2019-05-22 17:21:29 +00:00
Noemi Erli
42dc28e8b4 Backed out 4 changesets (bug 1510569) for mass test failures CLOSED TREE
Backed out changeset c5488e2770a6 (bug 1510569)
Backed out changeset df98eef1f640 (bug 1510569)
Backed out changeset db6da7f94a92 (bug 1510569)
Backed out changeset fb696b92c13d (bug 1510569)
2019-05-21 23:41:41 +03:00
Barret Rennie
6b0346b742 Bug 1510569 - Keep track of whether we are navigating to a new URI in nsDocShell r=mconley,kmag,qdot
Previously the `WebNavigationChild` would keep track of when triggering its
`nsIWebNavigation`, `goForward`, `goBack`, `gotoIndex`, and `loadURI` methods.
It's `nsIWebNavigation` instance is always an `nsIDocShell` and as part of
porting `OnStateChange` and `OnLocationChange` events from
`WebProgressChild`/`RemoteWebProgress` to `BrowserChild`/`BrowserParent`, this
informations needs to be available from the `BrowserChild`. As it stands, it is
currently an expando property on the `WebProgressChild`.

Instead of introducing yet another XPCOM interface for the WebProgressChild, we
now store this information directly on the `nsDocShell`. Furthermore, instead
of having the `WebNavigationChild` manage this part of the `nsDocShell`'s
state, we can have the `nsDocShell` manage this state itself so it is always
consistent.

Differential Revision: https://phabricator.services.mozilla.com/D28124
2019-05-21 19:28:39 +00:00
Cosmin Sabou
9135cb4406 Backed out 4 changesets (bug 1510569) for causing build bustages on nsIDocShell.idl CLOSED TREE
Backed out changeset 57f49df057be (bug 1510569)
Backed out changeset de97a258fcfd (bug 1510569)
Backed out changeset 4b0ed20ab3bc (bug 1510569)
Backed out changeset 1d8ab383d3e9 (bug 1510569)
2019-05-21 20:30:01 +03:00
Barret Rennie
6ccbfbf238 Bug 1510569 - Keep track of whether we are navigating to a new URI in nsDocShell r=mconley,kmag,qdot
Previously the `WebNavigationChild` would keep track of when triggering its
`nsIWebNavigation`, `goForward`, `goBack`, `gotoIndex`, and `loadURI` methods.
It's `nsIWebNavigation` instance is always an `nsIDocShell` and as part of
porting `OnStateChange` and `OnLocationChange` events from
`WebProgressChild`/`RemoteWebProgress` to `BrowserChild`/`BrowserParent`, this
informations needs to be available from the `BrowserChild`. As it stands, it is
currently an expando property on the `WebProgressChild`.

Instead of introducing yet another XPCOM interface for the WebProgressChild, we
now store this information directly on the `nsDocShell`. Furthermore, instead
of having the `WebNavigationChild` manage this part of the `nsDocShell`'s
state, we can have the `nsDocShell` manage this state itself so it is always
consistent.

Differential Revision: https://phabricator.services.mozilla.com/D28124
2019-05-21 17:08:57 +00:00
Dão Gottwald
14a1248c18 Bug 1547299 - Implement open-view-on-focus mode. r=adw
Differential Revision: https://phabricator.services.mozilla.com/D31419
2019-05-17 08:27:08 +00:00
Kyle Machulis
8b8f6c6b40 Bug 1540839 - Add Cross Origin Opener Policy case for BC preservation; r=nika
If we're doing a process switch due to the cross origin opener policy
being mismatched, we don't want to preserve the browsing context.

Differential Revision: https://phabricator.services.mozilla.com/D26392
2019-05-14 10:51:05 -07:00
Razvan Maries
e5b095be37 Backed out 8 changesets (bug 1540839) for build bustages. CLOSED TREE
Backed out changeset f7e477858ab7 (bug 1540839)
Backed out changeset 55e841a0f005 (bug 1540839)
Backed out changeset b71b58e40426 (bug 1540839)
Backed out changeset 484a54613358 (bug 1540839)
Backed out changeset b34c4d71f202 (bug 1540839)
Backed out changeset 8ff2ff524489 (bug 1540839)
Backed out changeset 27492a30286c (bug 1540839)
Backed out changeset f1c35e8e84f6 (bug 1540839)
2019-05-14 04:23:27 +03:00
Kyle Machulis
476f93017b Bug 1540839 - Add Cross Origin Opener Policy case for BC preservation; r=nika
If we're doing a process switch due to the cross origin opener policy
being mismatched, we don't want to preserve the browsing context.

Differential Revision: https://phabricator.services.mozilla.com/D26392
2019-05-13 17:58:45 -07:00
Nika Layzell
5f20078058 Bug 1544811 - Use web processes on a per-site basis for fission-enabled windows, r=mconley
This patch introduces a new type of content process, which has a dynamic name.
This type of content process is labeled as `webIsolated=${SITE_ORIGIN}` and is
used within fission-enabled windows.

To enable this, additional information about the fission status of the target
window must be passed into E10SUtils. This was done by updating every call site
manually to pass an extra boolean. A better solution perhaps should be used in
the future.

With this patch enabled, we now perform process switches, but only when
navigating to HTTP URIs. If we navigate to a non-HTTP URI in an iframe with
fission enabled, it will not behave correctly. This must be done in a
follow-up.

Differential Revision: https://phabricator.services.mozilla.com/D29570
2019-05-03 21:31:57 +00:00
Bogdan Tara
2c040ca027 Backed out 2 changesets (bug 1510569) for crashtests/1419902.html crashes CLOSED TREE
Backed out changeset fc0ae629221a (bug 1510569)
Backed out changeset 97f6ac273b5d (bug 1510569)
2019-05-03 03:48:15 +03:00
Barret Rennie
48a2bc08bb Bug 1510569 - Keep track of whether we are navigating to a new URI in nsDocShell r=mconley,kmag,qdot
Previously the `WebNavigationChild` would keep track of when triggering its
`nsIWebNavigation`, `goForward`, `goBack`, `gotoIndex`, and `loadURI` methods.
It's `nsIWebNavigation` instance is always an `nsIDocShell` and as part of
porting `OnStateChange` and `OnLocationChange` events from
`WebProgressChild`/`RemoteWebProgress` to `BrowserChild`/`BrowserParent`, this
informations needs to be available from the `BrowserChild`. As it stands, it is
currently an expando property on the `WebProgressChild`.

Instead of introducing yet another XPCOM interface for the WebProgressChild, we
now store this information directly on the `nsDocShell`. Furthermore, instead
of having the `WebNavigationChild` manage this part of the `nsDocShell`'s
state, we can have the `nsDocShell` manage this state itself so it is always
consistent.

Differential Revision: https://phabricator.services.mozilla.com/D28124
2019-05-02 23:35:02 +00:00
Bogdan Tara
c203974769 Backed out 2 changesets (bug 1510569) for crashtests/1419902.html failures CLOSED TREE
Backed out changeset 13c5249d66a7 (bug 1510569)
Backed out changeset a6ad4039d785 (bug 1510569)
2019-05-02 21:30:20 +03:00
Barret Rennie
2e21ffaa02 Bug 1510569 - Keep track of whether we are navigating to a new URI in nsDocShell r=mconley,kmag,qdot
Previously the `WebNavigationChild` would keep track of when triggering its
`nsIWebNavigation`, `goForward`, `goBack`, `gotoIndex`, and `loadURI` methods.
It's `nsIWebNavigation` instance is always an `nsIDocShell` and as part of
porting `OnStateChange` and `OnLocationChange` events from
`WebProgressChild`/`RemoteWebProgress` to `BrowserChild`/`BrowserParent`, this
informations needs to be available from the `BrowserChild`. As it stands, it is
currently an expando property on the `WebProgressChild`.

Instead of introducing yet another XPCOM interface for the WebProgressChild, we
now store this information directly on the `nsDocShell`. Furthermore, instead
of having the `WebNavigationChild` manage this part of the `nsDocShell`'s
state, we can have the `nsDocShell` manage this state itself so it is always
consistent.

Differential Revision: https://phabricator.services.mozilla.com/D28124
2019-05-02 17:00:51 +00:00
Mike Conley
f060772432 Bug 1533955 - Show some UI to indicate that a subframe has crashed. r=NeilDeakin
Differential Revision: https://phabricator.services.mozilla.com/D29238
2019-05-01 20:05:24 +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
Ryan Hunt
c6e302039f Bug 1534395 - Rename nsITabParent to nsIRemoteTab. r=nika,mconley
nsITabParent is exposed to frontend code and is generally used as a representation of a remote tab. We could just rename the interface to nsIBrowserParent and worry about it later, but I think it's better to rename the interface to nsIRemoteTab so that we can later work on splitting the interface away from the PBrowser protocol.

Note: Some frontend code refers to a TabParentId. This commit renames this to RemoteTabId. We need to figure out the purpose of TabId with fission.

Differential Revision: https://phabricator.services.mozilla.com/D28132
2019-04-09 15:59:37 -05:00
Nika Layzell
32a1c47e61 Bug 1542791 - Part 2: Add a [F] marker to fission-enabled tabs, r=mconley
This should make it easier to tell whether a particular window is
fission-enabled as testing with fission enabled improves.

Differential Revision: https://phabricator.services.mozilla.com/D26561
2019-04-17 00:53:30 +00:00
Jonathan Kingston
7af9989152 Bug 1479433 - Changing icons and colors for containers to be class based. r=dao
Differential Revision: https://phabricator.services.mozilla.com/D24918
2019-04-10 11:19:00 +00:00
Dão Gottwald
38955d1627 Bug 1542299 - Remove Array.unshift usage from tabbrowser.js. r=Standard8
Differential Revision: https://phabricator.services.mozilla.com/D26685
2019-04-09 10:30:39 +00:00
Dão Gottwald
b36ed16b82 Bug 1542298 - Remove Array.filter usage from tabbrowser.js. r=Standard8
Differential Revision: https://phabricator.services.mozilla.com/D26688
2019-04-09 10:48:27 +00:00
Dão Gottwald
983a91a78d Bug 1504775 - Ensure externally provided addTab index is within bounds. r=mixedpuppy
Differential Revision: https://phabricator.services.mozilla.com/D26296
2019-04-05 17:23:07 +00:00