Commit Graph

343 Commits

Author SHA1 Message Date
Kris Maglione
c6e33896a5 Bug 1379046: Use the correct LayerManager everywhere. r=kats
MozReview-Commit-ID: 4eTQxraxGK0

--HG--
extra : rebase_source : 09fc568235dd6dcf66bdf07d62b37aa7b1bc5336
2017-07-06 19:46:59 -07:00
Kris Maglione
3f8c999795 Bug 1362462: Fallback to main document widget for frames which haven't been inserted yet. r=mconley
MozReview-Commit-ID: Ayr2kQ9KqbW

--HG--
extra : rebase_source : db78c2c13f87357f64085685629c0e2f96a5acbf
2017-05-29 13:16:23 -07:00
Peter Van der Beken
2310b3bd39 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.

--HG--
extra : rebase_source : c39560bdf66cda1a005c7b823b3a46e4734878a4
extra : source : 9cba1db527c7eed4371c9f4caf96fd942608cab6
2017-05-29 12:38:46 +02:00
Kris Maglione
503713f913 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
9e5e792b0f 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
Kris Maglione
e77423bec5 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

--HG--
extra : rebase_source : 86bca4ae1c012ff1bb84a9ad796be311cfe580f6
extra : histedit_source : 19577d69430adc8cb38c195f13db2c6de6605c4c
2017-04-17 21:41:18 -07:00
Kartikaya Gupta
96657be4f9 Bug 1350638 - Remove sync GetCompositorOptions call in TabChild::ReinitRenderingState. r=dvander
This piggybacks the sync message on the pre-existing
EnsureLayersConnected sync message pathway to the compositor.

MozReview-Commit-ID: DfYTlJrr3Gu

--HG--
extra : rebase_source : c2bd29e655db65e3016a79bf3f6068ffb1c8b7c7
2017-04-09 17:31:24 -04:00
Kartikaya Gupta
a13700a7ce Bug 1350638 - Remove sync GetCompositorOptions call added in the last patch. r=dvander
This call should be a no-op in the real world, and should be safe to
remove. The patch also adds an assert to ensure that the call is
effectively a no-op.

MozReview-Commit-ID: BXdcnHULWW2

--HG--
extra : rebase_source : 03c57d2d6dbfb1d330ce7eab6d842d8375d33208
2017-04-09 17:31:06 -04:00
Kartikaya Gupta
1bfa62105b Bug 1350638 - Remove sync GetCompositorOptions call in TabChild::InitRenderingState. r=dvander
The goal of this patch is to remove the call to the sync IPC
GetCompositorOptions message from TabChild::InitRenderingState. In order
to this, we have InitRenderingState take the CompositorOptions as an
argument instead, and propagate that backwards through the call sites.
Eventually we can propagate it back to a set of already-sync IPC
messages in PCompositorBridge that are used during layers id
registration (NotifyChildCreated, NotifyChildRecreated, etc.). Therefore
this patch effectively piggybacks the CompositorOptions sync IPC onto
these pre-existing sync IPC messages.

The one exception is when we propagate it back to the AdoptChild call.
If this message were sync we could just use it like the others and have
it return a CompositorOptions. However, it is async, so instead we add
another call to GetCompositorOptions here temporarily. This will be
removed in the next patch.

MozReview-Commit-ID: AtdYOuXmHu4

--HG--
extra : rebase_source : 5b80831cf84d3a4b57b2214a12ccf8a896cfa3a7
2017-04-09 17:30:27 -04:00
David Anderson
0f3b97ed9c When using the GPU process, combine layer ownership and window mapping into a single IPC message. (bug 1350660 part 1, r=rhunt, r=billm) 2017-04-03 15:13:37 -07:00
Kartikaya Gupta
6c77e5ee0c Bug 1351777 - Use a BasicLayerManager in the content process if the corresponding parent-side layer manager isn't connected to the compositor. r=dvander
There are scenarios where we have a TabParent in the UI process hooked up to
a PuppetWidget with a BasicLayerManager. Webextensions fall into this category.
In this scenario, the parent-side layer manager is not hooked up to
the compositor (that is, there is no entry in the CompositorBridge layer tree
state map for the layers id). However, the content-side still ends up creating
a ClientLayerManager or a WebRenderLayerManager, which expects the layers id to
be registered in the compositor. This results in brokenness (in the case of the
ClientLayerManager/PLayerTransaction) or crashes (in the case of WebRenderLayerManager/
PWebRenderBridge). Instead, this patch changes this scenario to have the content
process use a BasicLayerManager which seems safer.

MozReview-Commit-ID: 3f80aZrRrmD

--HG--
extra : rebase_source : 10ec78dd7daf1c1c889929f0d79e0b75675b4b05
2017-03-31 11:43:21 -04:00
Kartikaya Gupta
ec035abf34 Bug 1351777 - Remove aSuccess argument to RenderFrame constructor. r=dvander
Instead we can use the otherwise-unused function to check if initialization worked.
Technically, because of the way RenderFrame construction works, whether or not
initialization succeeds is exactly dependent on whether or not the frameloader is
non-null, so we could even just use that to check success. But this feels slightly
more readable/cleaner.

MozReview-Commit-ID: CGiIAA1h6V7

--HG--
extra : rebase_source : 2d4504f7d5fde3c394edca14fe01840c1738d197
2017-03-31 11:43:21 -04:00
Kartikaya Gupta
7736b345aa Bug 1351777 - Remove trivial function. r=dvander
There is already a GetLayersId function in RenderFrameParent.h that does the
exact same thing, and this private function is only used in one spot. Seems
unnecessary.

MozReview-Commit-ID: 6i7lwKQsSFM

--HG--
extra : rebase_source : 6cf688f6f4300bedffebfbb94d431deec0bff209
2017-03-31 11:43:20 -04:00
David Anderson
8082fe14ae Remove references to the Direct3D9 compositor. (bug 1318558 part 1, r=mattwoodrow) 2017-03-08 00:17:36 -08:00
sotaro
21834aa96f Bug 1335336 - Add LayerManager::GetCompositorBridgeChild() r=nical 2017-02-01 16:12:37 +09:00
Kartikaya Gupta
7383fcbb4a Merge m-c to graphics
MozReview-Commit-ID: KhxBqJbwxv8
2016-12-06 23:45:24 -05:00
sotaro
af7a090b59 Bug 1321183 - Deliver TextureFactoryIdentifier r=nical 2016-12-01 12:02:37 +09:00
Kartikaya Gupta
fe327f303e Merge m-c to graphics
MozReview-Commit-ID: Cj1AAiaHUNH
2016-11-23 11:09:56 -05:00
Mozilla Graphics Team
9cc9061246 Bug 1317774 - Add non-gfx code needed to use WebRender in gecko. r=gfx
This completes the migration of code from the github branch to the graphics
project repo. At this point all webrender-related code should be disabled
unless --enable-webrender is provided in the mozconfig.

MozReview-Commit-ID: Dea8rxM6UPL
2016-11-16 08:54:51 -05:00
David Anderson
a6b6c59253 Mark RenderFrameParent as initialized even if it failed to message the remote compositor. (bug 1319310, r=billm)
--HG--
extra : rebase_source : 70f0600493abf57e98fed0dd4b4587c96f2e94ae
2016-11-22 13:01:08 -08:00
Kan-Ru Chen
f8100451db Bug 1314254 - Add mozilla::ipc::IPCResult type and convert IPDL handlers to use new return type. r=billm
We will use the new type for the generated IPDL message handler
prototype to make sure correct error handling method is called.

MozReview-Commit-ID: AzVbApxFGZ0
2016-11-15 04:26:00 +01:00
Ting-Yu Lin
cb22e24990 Bug 1304598 Part 6 - Rename nsViewportFrame.h/cpp to ViewportFrame.h/cpp, and move exported header to mozilla/ subdir. r=dholbert
The class ViewportFrame doesn't have ns-prefix, so it's better to drop the
ns-prefix in the file names to avoid confusion.

MozReview-Commit-ID: 8Jrmfzb3tVR

--HG--
rename : layout/generic/nsViewportFrame.cpp => layout/generic/ViewportFrame.cpp
rename : layout/generic/nsViewportFrame.h => layout/generic/ViewportFrame.h
extra : rebase_source : d2c6a80275d696a2886983a4bbb46821784c7fe6
2016-11-30 11:14:29 +08:00
Matt Woodrow
9e56f22190 Bug 1314186 - Resync LayerTreeId mappings to the GPU process if it restarts. r=dvander 2016-11-03 09:55:07 +13:00
Kartikaya Gupta
a640f97b00 Bug 1306603 - Remove rest of mozpasspointerevents code as it is not needed any more. r=kanru
MozReview-Commit-ID: 5N3hUq2lGuU
2016-10-05 08:27:02 -04:00
Kartikaya Gupta
7251da3333 Bug 1306644 - Have TabParent call TakeFocusForClickFromTap rather than doing it over a sync IPC roundtrip. r=dvander
MozReview-Commit-ID: 4anzBR6YoA
2016-09-30 15:03:42 -04:00
David Anderson
f2cfe86ef2 Recreate PLayerTransactions for TabChildren when the compositor restarts. (bug 1300936 part 4, r=mattwoodrow, r=billm)
--HG--
extra : rebase_source : ea92ecc5738e830a86f3b323d262f3537afe4534
2016-09-20 01:19:32 -07:00
George Wright
2e75d2e6ac Bug 1297565 - Handle failure from calling CompositorBridgeChild::SendNotifyChildCreated() in RenderFrameParent::Init() r=mattwoodrow 2016-09-13 22:58:54 -04:00
Matt Woodrow
193414f9a8 Bug 1237102 - Make sure we don't generate invalidations for children of opacity:0 frames, even when plugins are present. r=tnikkel 2016-08-10 15:15:28 +12:00
Matt Woodrow
4c51824c83 Bug 1265468 - Invalidate all layers when dragging a tab to a new window. r=nical
--HG--
extra : rebase_source : 2369072fafc1754be09346cc2cd63fabee29d190
2016-05-26 18:40:07 +12:00
Sebastian Hengst
0d90f54a8b Backed out changeset 4d417e2c21ff (bug 1265468) for asserting in LayerManagerComposite.cpp on OS X 10.10 debug with e10s. r=backout 2016-05-26 10:45:39 +02:00
Matt Woodrow
de6a18cca7 Bug 1265468 - Invalidate all layers when dragging a tab to a new window. r=nical 2016-05-26 18:40:07 +12:00
David Anderson
60ca648e99 Move Alloc/DeallocLayerTreeId calls to GPUProcessManager. (bug 1274149 part 3, r=mattwoodrow) 2016-05-23 00:27:57 -07:00
Wes Kocher
2299744a78 Backed out 5 changesets (bug 1274149) for intermittent failures in apz tests CLOSED TREE
Backed out changeset 1117598ac875 (bug 1274149)
Backed out changeset 540cb6d10745 (bug 1274149)
Backed out changeset 057223823e5d (bug 1274149)
Backed out changeset 9932689ab717 (bug 1274149)
Backed out changeset a22a53c503a6 (bug 1274149)
2016-05-23 13:01:22 -07:00
David Anderson
25f45d71ec Move Alloc/DeallocLayerTreeId calls to GPUProcessManager. (bug 1274149 part 3, r=mattwoodrow) 2016-05-23 00:27:57 -07:00
Cameron McCormack
6f4ce86293 Bug 1261754 - Part 7: Move pointer-events from nsStyleVisibility to nsStyleUserInterface. r=dholbert 2016-04-12 15:52:41 +10:00
Mike Conley
5a773cf2c4 Bug 1251032 - Make it possible to assign a frameloader to RenderFrameParent after construction. r=kanru
MozReview-Commit-ID: 4a8fzR7Vpac

--HG--
extra : rebase_source : 8b8f8c2a89d251db0892552e0114908a91010dcf
2016-03-29 12:49:07 -04:00
Mike Conley
f7035af2c3 Bug 1251032 - Don't return layersId or textureFactoryIdentifier as outparams in RenderFrameParent constructor. r=kanru
MozReview-Commit-ID: JqcrHsNW25j

--HG--
extra : rebase_source : ce66521f0c7ea71aab4e9a968a11ace3c6fa027d
2016-03-29 12:42:05 -04:00
David Anderson
f3dc22db8d Rename PCompositor to PCompositorBridge. (bug 1258479 part 2, r=mattwoodrow)
--HG--
rename : gfx/layers/ipc/CompositorChild.cpp => gfx/layers/ipc/CompositorBridgeChild.cpp
rename : gfx/layers/ipc/CompositorChild.h => gfx/layers/ipc/CompositorBridgeChild.h
rename : gfx/layers/ipc/CompositorParent.cpp => gfx/layers/ipc/CompositorBridgeParent.cpp
rename : gfx/layers/ipc/CompositorParent.h => gfx/layers/ipc/CompositorBridgeParent.h
2016-03-22 14:08:38 -04:00
David Anderson
dd2df9d99a Remove some static_casting in CompositorParent. (bug 1245765 part 5, r=mattwoodrow) 2016-02-29 01:53:14 -05:00
Peter Van der Beken
1900a0608e Bug 1020199 - Make sure APZ works with nested oop iframe. r=kats, r=dvander.
--HG--
extra : rebase_source : be158c15f328b19be4e4189c1b755841caabcb10
2016-01-08 20:17:39 +01:00
Randall Barker
45a15ccb02 Bug 1231517 - part 3, Add ZoomToRect function to nsIWidget classes r=kats 2016-01-20 16:24:59 -08:00
Botond Ballo
65d984ff6f Bug 1221371 - Remove unnecessary explicit copies of nsTArray. r=billm
--HG--
extra : source : e3ade121fe3a26db1e65cd6b91de29dfe8cc5a61
extra : intermediate-source : a09da6e0b017448d6e2b85eb4a6c08dba51999c7
2015-11-18 13:48:12 -05:00
Gijs Kruitbosch
a06294cced Bug 1221947 - part 3: pass touch information to focus manager in RenderFrameParent, r=kats
--HG--
extra : commitid : 47acXgQvIIX
extra : rebase_source : 5cd19375c1bd6451e9cf80f6bae8dbf1de2b34be
extra : histedit_source : 50e6c9d203bde42a45812d352d60fa45987d8806
2015-11-16 14:03:35 +00:00
Kartikaya Gupta
8531f6e36c Bug 898075 - Remove the mozbrowserasyncscroll event from Gecko. r=botond,kanru,sicking
--HG--
extra : commitid : 2hGYJD6eHff
2015-11-11 10:17:47 -05:00
Bill McCloskey
f8aa3d2562 Bug 1221371 - Switch chromium IPC code to use mozilla::Tuple (r=jld,cpearce,kats) 2015-11-09 10:21:11 -08:00
Matt Woodrow
8c47ae7506 Bug 1216288 - Disable warning when we don't build an active layer for RenderFrameParent within an opacity:0 subtree. r=roc 2015-11-03 16:49:22 +13:00
Nigel Babu
aa60675f7f Backed out changeset 19e021ef5ba1 (bug 1216288) 2015-11-03 11:59:05 +05:30
Matt Woodrow
ffd079e640 Bug 1216288 - Disable warning when we don't build an active layer for RenderFrameParent within an opacity:0 subtree. r=roc
--HG--
extra : rebase_source : 9eade6266c0a1f6485e5b82ab0c0c5bc49f9a85c
2015-11-03 16:49:22 +13:00
Nathan Froyd
01583602a9 Bug 1207245 - part 6 - rename nsRefPtr<T> to RefPtr<T>; r=ehsan; a=Tomcat
The bulk of this commit was generated with a script, executed at the top
level of a typical source code checkout.  The only non-machine-generated
part was modifying MFBT's moz.build to reflect the new naming.

CLOSED TREE makes big refactorings like this a piece of cake.

 # The main substitution.
find . -name '*.cpp' -o -name '*.cc' -o -name '*.h' -o -name '*.mm' -o -name '*.idl'| \
    xargs perl -p -i -e '
 s/nsRefPtr\.h/RefPtr\.h/g; # handle includes
 s/nsRefPtr ?</RefPtr</g;   # handle declarations and variables
'

 # Handle a special friend declaration in gfx/layers/AtomicRefCountedWithFinalize.h.
perl -p -i -e 's/::nsRefPtr;/::RefPtr;/' gfx/layers/AtomicRefCountedWithFinalize.h

 # Handle nsRefPtr.h itself, a couple places that define constructors
 # from nsRefPtr, and code generators specially.  We do this here, rather
 # than indiscriminantly s/nsRefPtr/RefPtr/, because that would rename
 # things like nsRefPtrHashtable.
perl -p -i -e 's/nsRefPtr/RefPtr/g' \
     mfbt/nsRefPtr.h \
     xpcom/glue/nsCOMPtr.h \
     xpcom/base/OwningNonNull.h \
     ipc/ipdl/ipdl/lower.py \
     ipc/ipdl/ipdl/builtin.py \
     dom/bindings/Codegen.py \
     python/lldbutils/lldbutils/utils.py

 # In our indiscriminate substitution above, we renamed
 # nsRefPtrGetterAddRefs, the class behind getter_AddRefs.  Fix that up.
find . -name '*.cpp' -o -name '*.h' -o -name '*.idl' | \
    xargs perl -p -i -e 's/nsRefPtrGetterAddRefs/RefPtrGetterAddRefs/g'

if [ -d .git ]; then
    git mv mfbt/nsRefPtr.h mfbt/RefPtr.h
else
    hg mv mfbt/nsRefPtr.h mfbt/RefPtr.h
fi

--HG--
rename : mfbt/nsRefPtr.h => mfbt/RefPtr.h
2015-10-18 01:24:48 -04:00
Benoit Girard
60376c4a70 Bug 1199885 - Part 12: Add StartScrollbarDrag IPC message. r=kats
--HG--
extra : commitid : 87IsjW2NpRX
2015-09-28 17:00:25 -04:00