summary refs log tree commit diff
path: root/gnu/packages/patches/icecat-CVE-2015-0836-pt-10.patch
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/packages/patches/icecat-CVE-2015-0836-pt-10.patch')
-rw-r--r--gnu/packages/patches/icecat-CVE-2015-0836-pt-10.patch219
1 files changed, 0 insertions, 219 deletions
diff --git a/gnu/packages/patches/icecat-CVE-2015-0836-pt-10.patch b/gnu/packages/patches/icecat-CVE-2015-0836-pt-10.patch
deleted file mode 100644
index 9a4668b2dc..0000000000
--- a/gnu/packages/patches/icecat-CVE-2015-0836-pt-10.patch
+++ /dev/null
@@ -1,219 +0,0 @@
-From 66e65b2138c6db20288ef4cf78d15995f382a7e2 Mon Sep 17 00:00:00 2001
-From: Kartikaya Gupta <kgupta@mozilla.com>
-Date: Tue, 13 Jan 2015 13:26:26 -0500
-Subject: [PATCH] Bug 1107009. r=BenWa, a=sledru
-
----
- gfx/layers/ipc/CompositorParent.cpp | 57 ++++++++++++++++++++++++++++++-------
- 1 file changed, 46 insertions(+), 11 deletions(-)
-
-diff --git a/gfx/layers/ipc/CompositorParent.cpp b/gfx/layers/ipc/CompositorParent.cpp
-index ce50277..cbbb2ef 100644
---- a/gfx/layers/ipc/CompositorParent.cpp
-+++ b/gfx/layers/ipc/CompositorParent.cpp
-@@ -22,6 +22,7 @@
- #include "gfxPrefs.h"                   // for gfxPrefs
- #include "ipc/ShadowLayersManager.h"    // for ShadowLayersManager
- #include "mozilla/AutoRestore.h"        // for AutoRestore
-+#include "mozilla/ClearOnShutdown.h"    // for ClearOnShutdown
- #include "mozilla/DebugOnly.h"          // for DebugOnly
- #include "mozilla/gfx/2D.h"          // for DrawTarget
- #include "mozilla/gfx/Point.h"          // for IntSize
-@@ -70,6 +71,16 @@ CompositorParent::LayerTreeState::LayerTreeState()
- 
- typedef map<uint64_t, CompositorParent::LayerTreeState> LayerTreeMap;
- static LayerTreeMap sIndirectLayerTrees;
-+static StaticAutoPtr<mozilla::Monitor> sIndirectLayerTreesLock;
-+
-+static void EnsureLayerTreeMapReady()
-+{
-+  MOZ_ASSERT(NS_IsMainThread());
-+  if (!sIndirectLayerTreesLock) {
-+    sIndirectLayerTreesLock = new Monitor("IndirectLayerTree");
-+    mozilla::ClearOnShutdown(&sIndirectLayerTreesLock);
-+  }
-+}
- 
- // FIXME/bug 774386: we're assuming that there's only one
- // CompositorParent, but that's not always true.  This assumption only
-@@ -132,6 +143,7 @@ void CompositorParent::StartUp()
-     return;
-   }
-   MOZ_ASSERT(!sCompositorLoop);
-+  EnsureLayerTreeMapReady();
-   CreateCompositorMap();
-   CreateThread();
-   sMainLoop = MessageLoop::current();
-@@ -206,7 +218,11 @@ CompositorParent::CompositorParent(nsIWidget* aWidget,
-                                                           this, &mCompositorID));
- 
-   mRootLayerTreeID = AllocateLayerTreeId();
--  sIndirectLayerTrees[mRootLayerTreeID].mParent = this;
-+
-+  { // scope lock
-+    MonitorAutoLock lock(*sIndirectLayerTreesLock);
-+    sIndirectLayerTrees[mRootLayerTreeID].mParent = this;
-+  }
- 
-   mApzcTreeManager = new APZCTreeManager();
-   ++sCompositorThreadRefCount;
-@@ -249,7 +265,10 @@ CompositorParent::Destroy()
-   mCompositionManager = nullptr;
-   mApzcTreeManager->ClearTree();
-   mApzcTreeManager = nullptr;
--  sIndirectLayerTrees.erase(mRootLayerTreeID);
-+  { // scope lock
-+    MonitorAutoLock lock(*sIndirectLayerTreesLock);
-+    sIndirectLayerTrees.erase(mRootLayerTreeID);
-+  }
- }
- 
- void
-@@ -266,6 +285,7 @@ CompositorParent::RecvWillStop()
- 
-   // Ensure that the layer manager is destroyed before CompositorChild.
-   if (mLayerManager) {
-+    MonitorAutoLock lock(*sIndirectLayerTreesLock);
-     for (LayerTreeMap::iterator it = sIndirectLayerTrees.begin();
-          it != sIndirectLayerTrees.end(); it++)
-     {
-@@ -380,7 +400,10 @@ CompositorParent::ActorDestroy(ActorDestroyReason why)
-   if (mLayerManager) {
-     mLayerManager->Destroy();
-     mLayerManager = nullptr;
--    sIndirectLayerTrees[mRootLayerTreeID].mLayerManager = nullptr;
-+    { // scope lock
-+      MonitorAutoLock lock(*sIndirectLayerTreesLock);
-+      sIndirectLayerTrees[mRootLayerTreeID].mLayerManager = nullptr;
-+    }
-     mCompositionManager = nullptr;
-     mCompositor = nullptr;
-   }
-@@ -696,6 +719,7 @@ CompositorParent::DidComposite()
- {
-   unused << SendDidComposite(0);
- 
-+  MonitorAutoLock lock(*sIndirectLayerTreesLock);
-   for (LayerTreeMap::iterator it = sIndirectLayerTrees.begin();
-        it != sIndirectLayerTrees.end(); it++) {
-     LayerTreeState* lts = &it->second;
-@@ -867,6 +891,7 @@ CompositorParent::InitializeLayerManager(const nsTArray<LayersBackend>& aBackend
-       mLayerManager = layerManager;
-       MOZ_ASSERT(compositor);
-       mCompositor = compositor;
-+      MonitorAutoLock lock(*sIndirectLayerTreesLock);
-       sIndirectLayerTrees[mRootLayerTreeID].mLayerManager = layerManager;
-       return;
-     }
-@@ -969,6 +994,7 @@ CompositorParent::RecvNotifyChildCreated(const uint64_t& child)
- void
- CompositorParent::NotifyChildCreated(uint64_t aChild)
- {
-+  MonitorAutoLock lock(*sIndirectLayerTreesLock);
-   sIndirectLayerTrees[aChild].mParent = this;
-   sIndirectLayerTrees[aChild].mLayerManager = mLayerManager;
- }
-@@ -985,6 +1011,7 @@ CompositorParent::AllocateLayerTreeId()
- static void
- EraseLayerState(uint64_t aId)
- {
-+  MonitorAutoLock lock(*sIndirectLayerTreesLock);
-   sIndirectLayerTrees.erase(aId);
- }
- 
-@@ -1001,6 +1028,7 @@ UpdateControllerForLayersId(uint64_t aLayersId,
-                             GeckoContentController* aController)
- {
-   // Adopt ref given to us by SetControllerForLayerTree()
-+  MonitorAutoLock lock(*sIndirectLayerTreesLock);
-   sIndirectLayerTrees[aLayersId].mController =
-     already_AddRefed<GeckoContentController>(aController);
- }
-@@ -1010,12 +1038,15 @@ ScopedLayerTreeRegistration::ScopedLayerTreeRegistration(uint64_t aLayersId,
-                                                          GeckoContentController* aController)
-     : mLayersId(aLayersId)
- {
-+  EnsureLayerTreeMapReady();
-+  MonitorAutoLock lock(*sIndirectLayerTreesLock);
-   sIndirectLayerTrees[aLayersId].mRoot = aRoot;
-   sIndirectLayerTrees[aLayersId].mController = aController;
- }
- 
- ScopedLayerTreeRegistration::~ScopedLayerTreeRegistration()
- {
-+  MonitorAutoLock lock(*sIndirectLayerTreesLock);
-   sIndirectLayerTrees.erase(mLayersId);
- }
- 
-@@ -1175,6 +1206,7 @@ CompositorParent::CloneToplevel(const InfallibleTArray<mozilla::ipc::ProtocolFdM
- static void
- UpdateIndirectTree(uint64_t aId, Layer* aRoot, const TargetConfig& aTargetConfig)
- {
-+  MonitorAutoLock lock(*sIndirectLayerTreesLock);
-   sIndirectLayerTrees[aId].mRoot = aRoot;
-   sIndirectLayerTrees[aId].mTargetConfig = aTargetConfig;
- }
-@@ -1182,6 +1214,7 @@ UpdateIndirectTree(uint64_t aId, Layer* aRoot, const TargetConfig& aTargetConfig
- /* static */ const CompositorParent::LayerTreeState*
- CompositorParent::GetIndirectShadowTree(uint64_t aId)
- {
-+  MonitorAutoLock lock(*sIndirectLayerTreesLock);
-   LayerTreeMap::const_iterator cit = sIndirectLayerTrees.find(aId);
-   if (sIndirectLayerTrees.end() == cit) {
-     return nullptr;
-@@ -1189,12 +1222,6 @@ CompositorParent::GetIndirectShadowTree(uint64_t aId)
-   return &cit->second;
- }
- 
--static void
--RemoveIndirectTree(uint64_t aId)
--{
--  sIndirectLayerTrees.erase(aId);
--}
--
- void
- CrossProcessCompositorParent::ActorDestroy(ActorDestroyReason aWhy)
- {
-@@ -1211,6 +1238,8 @@ CrossProcessCompositorParent::AllocPLayerTransactionParent(const nsTArray<Layers
- {
-   MOZ_ASSERT(aId != 0);
- 
-+  MonitorAutoLock lock(*sIndirectLayerTreesLock);
-+
-   if (sIndirectLayerTrees[aId].mLayerManager) {
-     sIndirectLayerTrees[aId].mCrossProcessParent = this;
-     LayerManagerComposite* lm = sIndirectLayerTrees[aId].mLayerManager;
-@@ -1234,7 +1263,7 @@ bool
- CrossProcessCompositorParent::DeallocPLayerTransactionParent(PLayerTransactionParent* aLayers)
- {
-   LayerTransactionParent* slp = static_cast<LayerTransactionParent*>(aLayers);
--  RemoveIndirectTree(slp->GetId());
-+  EraseLayerState(slp->GetId());
-   static_cast<LayerTransactionParent*>(aLayers)->ReleaseIPDLReference();
-   return true;
- }
-@@ -1242,6 +1271,7 @@ CrossProcessCompositorParent::DeallocPLayerTransactionParent(PLayerTransactionPa
- bool
- CrossProcessCompositorParent::RecvNotifyChildCreated(const uint64_t& child)
- {
-+  MonitorAutoLock lock(*sIndirectLayerTreesLock);
-   sIndirectLayerTrees[child].mParent->NotifyChildCreated(child);
-   return true;
- }
-@@ -1269,7 +1299,12 @@ CrossProcessCompositorParent::ForceComposite(LayerTransactionParent* aLayerTree)
- {
-   uint64_t id = aLayerTree->GetId();
-   MOZ_ASSERT(id != 0);
--  sIndirectLayerTrees[id].mParent->ForceComposite(aLayerTree);
-+  CompositorParent* parent;
-+  { // scope lock
-+    MonitorAutoLock lock(*sIndirectLayerTreesLock);
-+    parent = sIndirectLayerTrees[id].mParent;
-+  }
-+  parent->ForceComposite(aLayerTree);
- }
- 
- bool
--- 
-2.2.1
-