Commit Graph

2873 Commits

Author SHA1 Message Date
Jim Porter
e104d2ed02 Bug 1552017 - Expand the kinds of URLs that can cancel content JS when navigating; r=smaug
This patch makes several changes to the kinds of URLs where we can cancel
content JS when navigating between them:

 1) When navigating directly to a URL (e.g. by typing something into the
    location bar and hitting Enter), we allow canceling content JS if the URLs
    differ in any way *except* their ref ("#"). To help with this, we also
    attempt to fix up the URL (e.g. by prepending "http://" to it).

 2) When navigating through history, we allow canceling content JS if the
    `prePath` part of the URLs differ. Most notably, this allows canceling
    content JS when one of the URLs is an `about:` page (e.g. when hitting the
    Home button).

 3) We explicitly disallow cancelling content JS if the currently-running JS
    is trusted or if the page being navigated away from is anything but
    http(s): or file:.

 4) We also disallow cancelling content JS for windows that are still being
    created (e.g. when creating a new tab or window via `window.open`). For
    more background on this, see the comments about `mCreatingWindow` in
    dom/ipc/BrowserParent.h.

 5) We ensure that, when attempting to cancel JS, the tab ID of the
    currently-running script matches the original tab that requested the
    cancellation. This avoids a race condition in which a particular JSContext
    has already moved on to executing another tab's JS by the time we hit our
    interrupt callback.

Differential Revision: https://phabricator.services.mozilla.com/D31875
2019-06-04 16:19:27 +00:00
shindli
6bfdff1bbd Backed out 2 changesets (bug 1555488) for ES lint failure in /builds/worker/checkouts/gecko/dom/tests/browser/browser_windowProxy_transplant.js CLOSED TREE
Backed out changeset bcc2d99534d1 (bug 1555488)
Backed out changeset 1bef4720c4ee (bug 1555488)
2019-06-03 23:41:46 +03:00
Nika Layzell
02bc505595 Bug 1555488 - Part 1: Clear WindowProxy cache when flipping processes, r=peterv,mccr8
This is sorta-part of the work for bug 1510760. Currently if you do a process
switch, the window proxy state is completely borked, and a lot of stuff doesn't
work.

This patch aims to make it so that, while not transplanted correctly, methods
generally don't return the wrong WindowProxy object anymore after a process
swap.

Differential Revision: https://phabricator.services.mozilla.com/D33082
2019-06-03 20:03:15 +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
Henri Sivonen
22be3f1c4f Bug 1543077 part 4 - Have only one item for Japanese in the Text Encoding menu. r=Gijs,emk.
Differential Revision: https://phabricator.services.mozilla.com/D28634
2019-06-03 15:30:41 +03:00
Honza Bambas
1a97d6c800 Bug 1545421 - New nsresult error codes for 407, 502 and 504 http response codes returned by proxies + test, r=dragana
Differential Revision: https://phabricator.services.mozilla.com/D32817
2019-05-31 17:29:53 +00:00
Ehsan Akhgari
4536b7d8f1 Bug 1554361 - Move the high-level storage access check APIs to mozilla/StorageAccess.h; r=baku
Differential Revision: https://phabricator.services.mozilla.com/D32556
2019-05-27 14:06:49 +00:00
Mihai Alexandru Michis
c1c0700d91 Backed out 6 changesets (bug 1543077) for causing bc failures at docshell/test/browser/browser_bug1543077.js
Backed out changeset f593045cc48f (bug 1543077)
Backed out changeset 25449ba8aceb (bug 1543077)
Backed out changeset ccc438262e29 (bug 1543077)
Backed out changeset 4573c25b1ce0 (bug 1543077)
Backed out changeset 1cbaafb9373a (bug 1543077)
Backed out changeset 1a0e7ced8e47 (bug 1543077)
2019-05-27 12:00:21 +03:00
Henri Sivonen
74b9548f55 Bug 1543077 part 4 - Have only one item for Japanese in the Text Encoding menu. r=emk,Gijs
Differential Revision: https://phabricator.services.mozilla.com/D28634
2019-05-27 07:55:27 +00:00
Boris Zbarsky
981f6143d7 Bug 1554065. Fix the requestor nsDocShell::DoFindItemWithName passes to TabGroup::FindItemWithName. r=nika
The requestor should be ourselves: the toplevel docshell that the tabgroup does
not need to look in when doing the search.

Differential Revision: https://phabricator.services.mozilla.com/D32422
2019-05-24 19:40:44 +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
Edgar Chen
ea9872bc1b Bug 1554122 - Rename nsAutoPopupStatePusher* to AutoPopupStatePusher; r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D32457
2019-05-24 12:42:29 +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
Christoph Kerschbaumer
29451e9f5e Bug 965637: Move CSP from Principal into Client, part 1: backend changes. r=mccr8
Differential Revision: https://phabricator.services.mozilla.com/D27654
2019-05-21 23:14:27 +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
Jonathan Watt
f1c7596e49 Bug 1552449. Make the nsIDocShell interface to print preview less susceptible to inadvertent misuse. r=bobowen
Differential Revision: https://phabricator.services.mozilla.com/D31598
2019-05-07 14:12:44 +01:00
Brian Hackett
8e943c4609 Bug 1546736 Part 1 - Keep track of whether docshells and workers are being watched by the devtools, r=bzbarsky. 2019-05-08 09:27:32 -10:00
Nika Layzell
08a232e248 Bug 1535800 - Part 2: Don't attempt to resume loading within in a destroyed docshell, r=qdot
Differential Revision: https://phabricator.services.mozilla.com/D30559
2019-05-09 21:11:06 +00:00
Nika Layzell
672d5b4855 Bug 1535800 - Part 1: Handle a null mSessionHistory in ResumeRedirectedLoad, r=qdot
Differential Revision: https://phabricator.services.mozilla.com/D30558
2019-05-09 21:07:41 +00:00
Brindusan Cristian
84e2dc890c Merge inbound to mozilla-central. a=merge 2019-05-15 00:41:32 +03:00
Kyle Machulis
d29c67c357 Bug 1540839 - Add ability to preserve browsing contexts between FrameLoaders; r=nika
When changing processes and therefore destroying/rebuilding
frameloaders, add ability to keep the browsing context around and add
it to the new frameloader.

Differential Revision: https://phabricator.services.mozilla.com/D26267
2019-05-14 10:51:04 -07:00
Sean Feng
fb8e2ee8cb Bug 1531917 - Add Telemetry for bfcache hit and miss r=bdekoz,smaug
Differential Revision: https://phabricator.services.mozilla.com/D30212
2019-05-14 15:27:55 +00:00
Sean Feng
4168529924 Bug 1531917 - Add Telemetry for how pages use bfcache r=jesup,bdekoz,smaug
Differential Revision: https://phabricator.services.mozilla.com/D30211
2019-05-14 16:21:09 +00:00
Jonathan Watt
65ef2b824c Bug 1551559. Make nsIDocShell::setIsPrinting [noscript]. r=bobowen
Differential Revision: https://phabricator.services.mozilla.com/D31078
2019-04-26 17:05:38 +01:00
Hiroyuki Ikezoe
12da02daa5 Bug 1541253 - Propagate CSS visivibility information to descendant documents. r=tnikkel
Depends on D26251

Differential Revision: https://phabricator.services.mozilla.com/D26252
2019-05-10 11:15:43 +00: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
563569ce58 Bug 1540839 - Add ability to preserve browsing contexts between FrameLoaders; r=nika
When changing processes and therefore destroying/rebuilding
frameloaders, add ability to keep the browsing context around and add
it to the new frameloader.

Differential Revision: https://phabricator.services.mozilla.com/D26267
2019-05-13 17:58:44 -07:00
Christoph Kerschbaumer
6409f4d8b1 Bug 1547957: Only assert explicit CSP and CSP within Principal is equal when dealing with a CodebasePrincipal. r=jkt
Differential Revision: https://phabricator.services.mozilla.com/D29380
2019-05-03 09:16:40 +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
Gurzau Raul
a10203812e Merge inbound to mozilla-central. a=merge 2019-05-03 01:02:21 +03:00
Thomas Nguyen
2b9a6d0f8d Bug 1532318 - Part 2 : update changes of nsIHttpChannel in codebase r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D22786
2019-05-02 12:33:55 +00:00
Brindusan Cristian
07ce8a920c Merge mozilla-central to inbound. a=merge CLOSED TREE 2019-05-02 12:56:28 +03:00
Noemi Erli
f0f0e53c19 Merge mozilla-central to inbound. a=merge CLOSED TREE 2019-05-02 07:40:07 +03: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
Andrea Marchesini
d3357854b8 Bug 1548253 - Port pref cache variables of nsContentUtils to StaticPrefs - ui.use_activity_cursor, r=Ehsan
Differential Revision: https://phabricator.services.mozilla.com/D29515
2019-05-01 21:09:49 +00:00
Jim Porter
03e7e5e497 Bug 1493225, part 3 - Cancel content JS when navigating through history to prevent hangs r=smaug
This patch adds an ID to ensure that we avoid canceling content JS if the next
page already started loading by the time we're ready to try canceling the JS.

Differential Revision: https://phabricator.services.mozilla.com/D25164
2019-04-30 23:31:46 +00:00
Andreas Farre
ec6642cb16 Bug 1547911 - Only restore non-empty browsing context children. r=peterv
Also, make sure to evict the right browsing contexts from the cache.

Differential Revision: https://phabricator.services.mozilla.com/D29349
2019-04-30 16:11:03 +00:00
Andrew McCreight
490a1117c8 Bug 1547800 - Remove superfluous static cast of loadInfo in nsDocShell::DoURILoad(). r=qdot
Bug 1487964 changed loadInfo to have a concrete type, so this cast is
no longer needed.

Differential Revision: https://phabricator.services.mozilla.com/D29246
2019-04-29 19:53:33 +00:00
Andreas Farre
9d8b898e50 Bug 1471869 - Re-attach cached contexts in bulk. r=nika
This makes restoring from bfcache send less messages. It also
separates detach/attach from the caching logic, making it more clear
that caching is going on.

Differential Revision: https://phabricator.services.mozilla.com/D28670
2019-04-29 11:38:45 +00:00
Emilio Cobos Álvarez
8ba05939c2 Bug 1546697 - Use a consistent style for enum classes in layout. r=dholbert
Per the discussion in:

  https://groups.google.com/d/msg/mozilla.dev.platform/P79pwa9z5m8/iPYPAWPHCAAJ

They should be CamelCase, and that's what most of them already do. This converts
the rest, which are a few.

For the ones that already used `e` or `k` prefixes, I've mostly done:

 for file in $(rg Type::e layout | cut -d : -f 1 | sort | uniq); do sed -i 's#Type::e#Type::#g' $file; done

For the ones that used uppercase, I've removed the prefix if it was already in
the type name, and turn them into CamelCase.

Depends on D28680

Differential Revision: https://phabricator.services.mozilla.com/D28681
2019-04-25 23:03:04 +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
Brindusan Cristian
6fbace0961 Merge inbound to mozilla-central. a=merge 2019-04-25 00:54:01 +03:00
Mike de Boer
ea0b8de23d Bug 1518551 - Remove the 'MOZ_TOOLKIT_SEARCH' build config constant, because it's unused; we always enable the search service. r=florian
Differential Revision: https://phabricator.services.mozilla.com/D27702
2019-04-24 08:52:32 +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