Commit Graph

249 Commits

Author SHA1 Message Date
Michael Layzell
a8091e0a2a Bug 1368046 - Part 1: Propagate window.name across processes for RecvCreateWindowInDifferentProcess, r=smaug
MozReview-Commit-ID: 6xmLN9pbCKd
2017-06-07 12:54:53 -04:00
Peter Van der Beken
d697b27ee6 Bug 558184 - Part 8 - Load js plugins in a separate process. r=billm.
Every JS plugin is assigned a unique ID. When an instance of a JS plugin is created the
frame loader that we use to load the plugin's handler URI will create a special
TabContext. This TabContext causes the ContentParent to use the process for this specific
JS plugin (creating one if it hasn't already) when it creates the PBrowser actors.
This causes the iframes for all the instances of a specific JS plugin to be grouped in the
same process.
2017-05-29 12:38:46 +02:00
Andrea Marchesini
93aa268caf Bug 1368712 - Get rid of nsIBrowserElementAPI.{set,get}Visible, r=kanru 2017-05-31 21:15:23 +02:00
Andrew McCreight
98a8d191f5 Bug 1365086, part 1 - Make nsMessageManagerScriptExecutor::GetGlobal return a JSObject pointer. r=smaug
MozReview-Commit-ID: HxMaMyK8fFW
2017-05-15 12:56:22 -07:00
Kris Maglione
e240fa1529 Bug 1353060: Disable remote frameloaders in small popup widgets. r=kats
Since we now want to support APZ for remote frameloaders in popups, but do not
want to needlessly enable it in simple popup widgets which should never host
remote content, we need to prevent remote content from being loaded into those
popups.

MozReview-Commit-ID: WfjMC2p2eK
2017-04-17 13:45:08 -07:00
Kris Maglione
252338aa41 Bug 1353060: Use the correct layer manager for frameloaders in <popup>s. r=kats,mattwoodrow
Currently, we only correctly support remote layer trees for frameloaders that
use the same layer manager as their document. Since we need to be able to host
remote <browser> content in popup widgets for remote WebExtensions, we need to
tie the frameloaders to the layer manager of their host element, rather than
the root layer manager for the document.

MozReview-Commit-ID: 4RCsamFBiQw
2017-04-17 21:41:18 -07:00
Kartikaya Gupta
c861a54205 Back out bug 1353060 (3 csets) for possibly causing a checkerboarding regression. r=backout
MozReview-Commit-ID: AIHvzAUUCeu
2017-05-09 13:23:20 -04:00
Olli Pettay
c9b6807275 Bug 1358832, don't flush layout when swapping frameloaders, r=bz 2017-05-09 18:48:09 +03:00
Ting-Yu Chou
6fe68dd062 Bug 1328070 - Update window activation state when the owner content is swapped. r=enndeakin+6102
MozReview-Commit-ID: 58uYaH7iFIU
2017-04-06 15:58:02 +08:00
Kris Maglione
ef19fc958e Bug 1353060: Disable remote frameloaders in small popup widgets. r=kats
Since we now want to support APZ for remote frameloaders in popups, but do not
want to needlessly enable it in simple popup widgets which should never host
remote content, we need to prevent remote content from being loaded into those
popups.

MozReview-Commit-ID: WfjMC2p2eK
2017-04-17 13:45:08 -07:00
Kris Maglione
602d505b96 Bug 1353060: Use the correct layer manager for frameloaders in <popup>s. r=kats,mattwoodrow
Currently, we only correctly support remote layer trees for frameloaders that
use the same layer manager as their document. Since we need to be able to host
remote <browser> content in popup widgets for remote WebExtensions, we need to
tie the frameloaders to the layer manager of their host element, rather than
the root layer manager for the document.

MozReview-Commit-ID: 4RCsamFBiQw
2017-04-17 21:41:18 -07:00
Ehsan Akhgari
15aee0c599 Bug 1356922 - Part 1: Replace the next TabParent global pointer with per-window/tab next TabParent ID; r=billm,mconley
This patch replaces the usage of sNextTabParent pointer to store the next
PBrowser parent actor to be used by the next frame loader with the
following information:

  * In the case where the content JS has requested a new tab, the ID of the
    next TabParent will be stored on the <xul:browser> element.
  * In the case where the content JS has requested a new window, the ID of
    the next TabParent will be stored on the created nsXULWindow.
2017-04-24 14:18:29 -04:00
Bill McCloskey
a65d2f94ad Bug 1354249 - Use same TabGroup as original tab for print preview (r=mystor)
MozReview-Commit-ID: 5wmjLgq2j5m
2017-04-12 20:17:50 -07:00
Manish Goregaokar
0de0989a14 Bug 1341647 - stylo: Move HTMLBodyElement::WalkContentStyleRules to the mapped attr functionality; r=bz
MozReview-Commit-ID: 90qDHl0Ane4
2017-03-29 12:10:00 -07:00
Andrea Marchesini
a04ab116f5 Bug 1343933 - Renaming Principal classes - part 4 - ContentPrincipal, r=qdot 2017-03-22 11:39:31 +01:00
Andrea Marchesini
8f5f953fba Bug 1343933 - Renaming Principal classes - part 2 - NullPrincipal, r=qdot 2017-03-22 11:38:40 +01:00
Yoshi Huang
ffdab6348e Bug 1301649: Use MOZ_ASSERT_IF instead. r=smaug 2017-03-14 16:23:52 +08:00
Andrea Marchesini
313424057b Bug 1345168 - Get rid of OriginAttributes::Inherit, r=tjr 2017-03-08 07:41:51 +01:00
Mats Palmgren
7c43dcf986 Bug 1340771 part 1 - Rename nsWeakFrame to AutoWeakFrame (automated change). r=tn
MozReview-Commit-ID: 8pl4nyeGEkr
2017-03-01 18:03:14 +01:00
Michael Layzell
114deac852 Bug 1340747 - Try to initialize the remote browser when getting the frameloader's loadContext, r=ehsan
MozReview-Commit-ID: GhCNwG0uMGb
2017-02-24 16:59:53 -05:00
Benjamin Smedberg
6313586298 Bug 1338172 part E - make all the PPluginWidget stuff Windows-only. Rip out the GTK-specific native widget support from widget/gtk/nsWindow and elsewhere, r=jimm
MozReview-Commit-ID: J6E8sYcyX4U
2017-02-09 11:53:50 -05:00
Michael Layzell
943687a55e Bug 1338241 - Part 3: Relax the SwapWithOtherRemoteLoader swap check, r=bz
In bug 1147911, the concept of a remoteType was added to a xul:browser.
This was an attribute which would control the type of remote process was
intended to be used to load the page.

In order to swap two frameLoaders, it has always been necessary for them
to either both contain remote content, or both contain non-remote
content. This check is made in nsFrameLoader::SwapWithOtherLoader, by
checking `IsRemoteFrame() != aOther->IsRemoteFrame()`, and then
returning `NS_ERROR_NOT_IMPLEMENTED` if that was not the case.

In the follow-up bug 1317293, the check which is being removed here was
added to ensure that the remoteType of two frameLoaders which are being
swapped also matched. This was not a technical limitation, but rather
something which "seemed to make sense to do".

This bug removes that check as it is not a technical limitation and
causes problems in edge cases around Large-Allocation processes now that
the remoteType is being used to denote a Large-Allocation process.
Namely, it means that attempting to drag a Large-Allocation window into
a new window when at the Large-Allocation process cap will fail, due to
being unable to create a new Large-Allocation process in the new window
to swap with.

The new swapping of the attributes which is added below is done with the
intent that the `remoteType` attribute of the xul:browser element should
match the `remoteType` attribute of the frameLoader inside of it at all
times. As the swap can now occur between two different `remoteType`s,
this is necessary to keep that constraint.

MozReview-Commit-ID: BHFgjwRGrge
2017-02-17 12:01:24 -05:00
Michael Layzell
4a6530647c Bug 1338241 - Part 1: Use remoteType to propagate Large-Allocation status, r=mikedeboer
MozReview-Commit-ID: LfavqjMcZUq
2017-02-17 12:00:43 -05:00
J. Ryan Stinnett
fd466118f9 Bug 1335281 - Use frame loader for same process browsers. r=mrbkap
This changes the `relatedBrowser` property which held a <xul:browser> to the
more explicit `sameProcessAsFrameLoader` which takes an nsIFrameLoader.

This clarifies the purpose of the property and also (by switching to the frame
loader) makes it easier to set in some contexts.

MozReview-Commit-ID: LnEvSP8zkto
2017-02-14 14:12:35 -06:00
Bob Owen
3f580274a0 Bug 1317293: Only allow nsFrameLoader::SwapWithOtherRemoteLoader when remote types match. r=billm 2017-01-25 07:18:00 +00:00
Kartikaya Gupta
3ae04de9c4 Bug 1331509 - Move InitRenderFrame call to TabParent construction. r=dvander
MozReview-Commit-ID: Cg0EDJ3uSmz
2017-01-17 15:52:45 -05:00
Michael Layzell
3a5f381178 Bug 1329331 - Leave the Large-Allocation process after subsequent navigations, r=smaug
MozReview-Commit-ID: DfivmSEvzBu
2017-01-16 14:03:09 -05:00
Andrea Marchesini
46a9207d60 Bug 1328653 - Merging all the various *OriginAttributes to just one, r=huseby 2017-01-12 17:38:48 +01:00
Gijs Kruitbosch
1c84295986 Bug 1328605 - re-add support for type=content-foo in order to smooth the way for add-ons, r=bz
MozReview-Commit-ID: L4NeEAeEA
2017-01-04 17:33:19 +00:00
Cameron McCormack
5f9911da79 Bug 1328832 - Part 2: Rename mozFlushType to mozilla::FlushType and make it an enum class. r=bzbarsky
MozReview-Commit-ID: D3fIngSHSsl
2017-01-05 15:31:56 +08:00
Samael Wang
53bcab1c16 Bug 1323651 - Rename Partial/GroupedSessionHistory to Partial/GroupedSHistory. r=ehsan
MozReview-Commit-ID: G2GW4ZPIfH3
2016-12-22 16:06:50 +08:00
Michael Layzell
2f8026ac1d Bug 1315105 - Part 1: Add support for prerendering PartialSHistories to GroupedSHistory, r=smaug
MozReview-Commit-ID: A5bwSy8NkH3
2016-12-19 15:03:17 +08:00
Yoshi Huang
13130453ba Bug 1324115 - Part 2: replace the callers to use C++ helper. r=smaug 2016-12-21 14:59:21 +08:00
Carsten "Tomcat" Book
1c68a8a471 Backed out changeset ab6c012704b9 (bug 1315105) for failing on own test 2016-12-19 16:34:18 +01:00
Michael Layzell
c9afceae77 Bug 1315105 - Part 1: Add support for prerendering PartialSHistories to GroupedSHistory, r=smaug
MozReview-Commit-ID: A5bwSy8NkH3
2016-12-19 15:03:17 +08:00
Michael Layzell
ec8ab317f6 Bug 1310766 - Part 1: Close inactive frameloaders when destroying frameloader rather than when closing tab, r=ehsan
MozReview-Commit-ID: FHKRe9dFDYt
2016-12-15 13:17:16 +08:00
Gijs Kruitbosch
50ea118ebc Bug 1322414 - part 2,3,4: use a separate 'primary' attribute for primary child browsers, r=bz,mconley
MozReview-Commit-ID: 2yb0WGFYBsH
2016-12-09 09:23:24 -10:00
Gijs Kruitbosch
84ebff0ce2 Bug 1322414 - part 1 - remove GetContentShellById and id passing, r=bz
MozReview-Commit-ID: FggtlNAP6ax
2016-12-08 11:12:36 -10:00
Michael Layzell
310f8bf593 Bug 1318767 - Part 3: Use SessionStore to recover from missing GroupedSHistory segments, r=ehsan, r=mconley
MozReview-Commit-ID: FDmQIjiHox7
2016-12-13 16:32:54 +08:00
Boris Zbarsky
516592e973 Bug 1310796 part 3. Remove the aTargetable argument of contentShellAdded. r=mystor 2016-12-08 16:41:45 -10:00
J. Ryan Stinnett
24ba0d9d56 Bug 1320765 - Test mRemoteBrowser to avoid crash during swapping frame loaders. r=mystor
MozReview-Commit-ID: 9Ypk1FmdjUU
2016-11-29 13:49:17 -06:00
Michael Layzell
b179ab9726 Bug 1310771 - Part 2: Emit BrowserWillChangeProcess and BrowserChangedProcess when doing cross-frameloader navigations, r=smaug
With GroupedSHistory, history navigations may now require the browser to
change which frameloader is stored internally from within Core. This
patch adds a mechanism to allow for chrome code to respond to these
changes and both delay the change, or respond once the change is
performed.

Delaying the change is accomplished through the BrowserWillChangeProcess
event, which is fired when it is determined that a process change will
happen for the given browser, but the change has not occured yet. During
this time the nsIFrameLoader::AddProcessChangeBlockingPromise method may
be called on the target browser's frameloader. Any promises passed to
this method will be waited on, and the process change will not occur
until they have all been fulfiled.

Once that has occured, the process change occurs, and the
BrowserChangedProcess event is fired.

This is useful for chrome code which needs to flush state from the
original process before the change, and then which needs to connect
state in the new process with state in the chrome process.

MozReview-Commit-ID: C0Xn6pfruB2
2016-11-18 16:00:43 -05:00
Michael Layzell
3e54c331f2 Bug 1310771 - Part 1: Add an aFlags argument to nsIBrowser::SwapBrowsers, r=mconley
This adds a single flag, SWAP_KEEP_PERMANENT_KEY, which tells the
browser that when it performs the swap, the permanent key should stick
with the browser, rather than following the frameLoader.

This patch also adds the implementation of tabbrowser.swapBrowsers,
which was previously absent, despite being referenced.

MozReview-Commit-ID: CLwJYzpY8Pp
2016-11-18 16:00:43 -05:00
Kris Maglione
25cd256a77 Bug 1317101 - Part 1: Allow about:addons to load remote <browser>s into its content docshell. r=billm
MozReview-Commit-ID: Kv0LDFR2SEq
2016-11-15 15:01:50 -08:00
Ehsan Akhgari
3c90e541e0 Bug 1318210 - Remove nsIAppsService; r=baku 2016-11-17 10:41:36 -05:00
Wes Kocher
2876e6bba5 Backed out 15 changesets (bug 1317101) for e10s jsreftest failures a=backout CLOSED TREE
Backed out changeset 17757ba4c0e8 (bug 1317101)
Backed out changeset 61f8a4084bbd (bug 1317101)
Backed out changeset a8cdc81cdcce (bug 1317101)
Backed out changeset e06d269a5d4f (bug 1317101)
Backed out changeset 1e1bfb578dcd (bug 1317101)
Backed out changeset 0f8144296a9d (bug 1317101)
Backed out changeset b7892d3fb0ca (bug 1317101)
Backed out changeset 039d63d5fef7 (bug 1317101)
Backed out changeset ef7e061b37bf (bug 1317101)
Backed out changeset af7b81d7a5cc (bug 1317101)
Backed out changeset 225ad2535585 (bug 1317101)
Backed out changeset b0521588011d (bug 1317101)
Backed out changeset 07321664430a (bug 1317101)
Backed out changeset 47d283897283 (bug 1317101)
Backed out changeset ffc63be3557c (bug 1317101)
2016-11-16 16:44:30 -08:00
Kris Maglione
6819dc2597 Bug 1317101 - Part 1: Allow about:addons to load remote <browser>s into its content docshell. r=billm
MozReview-Commit-ID: Kv0LDFR2SEq
2016-11-15 15:01:50 -08:00
Ehsan Akhgari
5bbe94bf07 Bug 1312101 - Part 2: Remove AppProcessChecker and code that depends on it; r=baku 2016-11-16 14:51:08 -05:00
Ehsan Akhgari
917a5e63fc Bug 1310845 - Remove support for mozapp iframes; r=fabrice,jryans,baku,mcmanus
This patch removes support for mozapp iframes, leaving support for
mozbrowser iframes intact.  Some of the code has been rewritten in order
to phrase things in terms of mozbrowser only, as opposed to mozbrowser
or app.  In some places, code that was only useful with apps has been
completely removed, so that the APIs consumed can also be removed.  In
some places where the notion of appId was bleeding out of this API, now
we use NO_APP_ID.  Other notions of appId which were restricted to this
API have been removed.
2016-11-16 09:13:38 -05:00
Carsten "Tomcat" Book
84568d0bc2 Backed out changeset 7d1f7dd996f7 (bug 1310845) 2016-11-16 14:50:44 +01:00