From 96028e803cc0da249046df238daabcfab4b2b524 Mon Sep 17 00:00:00 2001 From: Mike Conley Date: Fri, 10 Jul 2015 17:11:59 -0400 Subject: [PATCH] Bug 1158798 - Properly initialize the LookAndFeel cache in the child. r=mstange. The old code was just flat-out wrong. The IPDL for getting the LookAndFeel cache from the parent during child process initialization was passing an array it wanted to be populated as an argument, rather than using a return value. --- dom/ipc/ContentParent.cpp | 4 ++-- dom/ipc/ContentParent.h | 2 +- dom/ipc/PContent.ipdl | 3 ++- widget/cocoa/nsLookAndFeel.h | 2 +- widget/cocoa/nsLookAndFeel.mm | 4 ++-- widget/nsXPLookAndFeel.cpp | 2 +- 6 files changed, 9 insertions(+), 8 deletions(-) diff --git a/dom/ipc/ContentParent.cpp b/dom/ipc/ContentParent.cpp index aecace1223c..0f582ffcd56 100755 --- a/dom/ipc/ContentParent.cpp +++ b/dom/ipc/ContentParent.cpp @@ -4029,9 +4029,9 @@ ContentParent::RecvGetSystemMemory(const uint64_t& aGetterId) } bool -ContentParent::RecvGetLookAndFeelCache(nsTArray&& aLookAndFeelIntCache) +ContentParent::RecvGetLookAndFeelCache(nsTArray* aLookAndFeelIntCache) { - aLookAndFeelIntCache = LookAndFeel::GetIntCache(); + *aLookAndFeelIntCache = LookAndFeel::GetIntCache(); return true; } diff --git a/dom/ipc/ContentParent.h b/dom/ipc/ContentParent.h index 9404a245602..db41e14dd68 100644 --- a/dom/ipc/ContentParent.h +++ b/dom/ipc/ContentParent.h @@ -761,7 +761,7 @@ private: virtual bool RecvGetSystemMemory(const uint64_t& getterId) override; - virtual bool RecvGetLookAndFeelCache(nsTArray&& aLookAndFeelIntCache) override; + virtual bool RecvGetLookAndFeelCache(nsTArray* aLookAndFeelIntCache) override; virtual bool RecvDataStoreGetStores( const nsString& aName, diff --git a/dom/ipc/PContent.ipdl b/dom/ipc/PContent.ipdl index 78293fb2c0c..f2cd901ddbc 100644 --- a/dom/ipc/PContent.ipdl +++ b/dom/ipc/PContent.ipdl @@ -733,7 +733,8 @@ parent: sync IsSecureURI(uint32_t type, URIParams uri, uint32_t flags) returns (bool isSecureURI); - sync GetLookAndFeelCache(LookAndFeelInt[] lookAndFeelIntCache); + sync GetLookAndFeelCache() + returns (LookAndFeelInt[] lookAndFeelIntCache); prio(urgent) async PHal(); diff --git a/widget/cocoa/nsLookAndFeel.h b/widget/cocoa/nsLookAndFeel.h index d6734d3dcce..ac23a32f6c1 100644 --- a/widget/cocoa/nsLookAndFeel.h +++ b/widget/cocoa/nsLookAndFeel.h @@ -27,7 +27,7 @@ public: static bool UseOverlayScrollbars(); virtual nsTArray GetIntCacheImpl(); - virtual void SetIntCacheImpl(const nsTArray& lookAndFeelIntCache); + virtual void SetIntCacheImpl(const nsTArray& aLookAndFeelIntCache); virtual void RefreshImpl(); protected: diff --git a/widget/cocoa/nsLookAndFeel.mm b/widget/cocoa/nsLookAndFeel.mm index c4bceb53fe6..424f8754162 100644 --- a/widget/cocoa/nsLookAndFeel.mm +++ b/widget/cocoa/nsLookAndFeel.mm @@ -668,9 +668,9 @@ nsLookAndFeel::GetIntCacheImpl() } void -nsLookAndFeel::SetIntCacheImpl(const nsTArray& lookAndFeelIntCache) +nsLookAndFeel::SetIntCacheImpl(const nsTArray& aLookAndFeelIntCache) { - for (auto entry : lookAndFeelIntCache) { + for (auto entry : aLookAndFeelIntCache) { switch(entry.id) { case eIntID_UseOverlayScrollbars: mUseOverlayScrollbars = entry.value; diff --git a/widget/nsXPLookAndFeel.cpp b/widget/nsXPLookAndFeel.cpp index 43b83e73011..cef5ebf5f89 100644 --- a/widget/nsXPLookAndFeel.cpp +++ b/widget/nsXPLookAndFeel.cpp @@ -461,7 +461,7 @@ nsXPLookAndFeel::Init() mozilla::dom::ContentChild::GetSingleton(); nsTArray lookAndFeelIntCache; - cc->SendGetLookAndFeelCache(lookAndFeelIntCache); + cc->SendGetLookAndFeelCache(&lookAndFeelIntCache); LookAndFeel::SetIntCache(lookAndFeelIntCache); } }