Bug 1413526 - Only create retained display list builder for content processes draft
authorMiko Mynttinen <mikokm@gmail.com>
Wed, 01 Nov 2017 16:46:04 +0100
changeset 690464 2fba9afc93cfb75319594dfbf1041190a9f8c0be
parent 689820 ee21e5f7f1c1726e0ed2697eb45df54cdceedd36
child 738574 40fe677f7cbf19f9ffabaf17d2e1a11aed4919b2
push id87303
push userbmo:mikokm@gmail.com
push dateThu, 02 Nov 2017 00:14:17 +0000
bugs1413526
milestone58.0a1
Bug 1413526 - Only create retained display list builder for content processes MozReview-Commit-ID: 3ipMgKgnhjH
layout/base/nsLayoutUtils.cpp
--- a/layout/base/nsLayoutUtils.cpp
+++ b/layout/base/nsLayoutUtils.cpp
@@ -3651,17 +3651,21 @@ nsLayoutUtils::PaintFrame(gfxContext* aR
 
   Maybe<nsDisplayListBuilder> nonRetainedBuilder;
   Maybe<nsDisplayList> nonRetainedList;
   nsDisplayListBuilder* builderPtr = nullptr;
   nsDisplayList* listPtr = nullptr;
   RetainedDisplayListBuilder* retainedBuilder = nullptr;
 
   const bool buildCaret = !(aFlags & PaintFrameFlags::PAINT_HIDE_CARET);
-  const bool retainDisplayList = gfxPrefs::LayoutRetainDisplayList();
+
+  // Enable display list retaining if the pref is set and if we are in a
+  // content process.
+  const bool retainDisplayList =
+    gfxPrefs::LayoutRetainDisplayList() && XRE_IsContentProcess();
 
   if (retainDisplayList &&
       aBuilderMode == nsDisplayListBuilderMode::PAINTING &&
       (aFlags & PaintFrameFlags::PAINT_WIDGET_LAYERS)) {
     retainedBuilder = aFrame->GetProperty(RetainedDisplayListBuilder::Cached());
 
     if (!retainedBuilder) {
       retainedBuilder =