Bug 1447828 part 7 - Remove StyleBackendType uses from PreloadedStyleSheet. r?emilio draft
authorXidorn Quan <me@upsuper.org>
Wed, 28 Mar 2018 21:03:24 +1100
changeset 773747 09e1b57c52fbfe3145b47d80ac098c487970d8b4
parent 773746 cd66e264953865b0604054fb9d0b741d0ae19ebf
child 773748 147ca562a24652c3f30add793213db70aff65e9e
push id104288
push userxquan@mozilla.com
push dateWed, 28 Mar 2018 11:04:19 +0000
reviewersemilio
bugs1447828
milestone61.0a1
Bug 1447828 part 7 - Remove StyleBackendType uses from PreloadedStyleSheet. r?emilio MozReview-Commit-ID: L37tnRAAJbQ
dom/base/nsDOMWindowUtils.cpp
layout/style/PreloadedStyleSheet.cpp
layout/style/PreloadedStyleSheet.h
--- a/dom/base/nsDOMWindowUtils.cpp
+++ b/dom/base/nsDOMWindowUtils.cpp
@@ -3536,17 +3536,17 @@ nsDOMWindowUtils::AddSheet(nsIPreloadedS
                 aSheetType == USER_SHEET ||
                 aSheetType == AUTHOR_SHEET);
 
   nsCOMPtr<nsIDocument> doc = GetDocument();
   NS_ENSURE_TRUE(doc, NS_ERROR_FAILURE);
 
   StyleSheet* sheet = nullptr;
   auto preloadedSheet = static_cast<PreloadedStyleSheet*>(aSheet);
-  nsresult rv = preloadedSheet->GetSheet(doc->GetStyleBackendType(), &sheet);
+  nsresult rv = preloadedSheet->GetSheet(&sheet);
   NS_ENSURE_SUCCESS(rv, rv);
   NS_ENSURE_TRUE(sheet, NS_ERROR_FAILURE);
 
   if (sheet->GetAssociatedDocument()) {
     return NS_ERROR_INVALID_ARG;
   }
 
   nsIDocument::additionalSheetType type = convertSheetType(aSheetType);
--- a/layout/style/PreloadedStyleSheet.cpp
+++ b/layout/style/PreloadedStyleSheet.cpp
@@ -40,36 +40,33 @@ PreloadedStyleSheet::Create(nsIURI* aURI
 NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(PreloadedStyleSheet)
   NS_INTERFACE_MAP_ENTRY(nsIPreloadedStyleSheet)
   NS_INTERFACE_MAP_ENTRY(nsISupports)
 NS_INTERFACE_MAP_END
 
 NS_IMPL_CYCLE_COLLECTING_ADDREF(PreloadedStyleSheet)
 NS_IMPL_CYCLE_COLLECTING_RELEASE(PreloadedStyleSheet)
 
-NS_IMPL_CYCLE_COLLECTION(PreloadedStyleSheet, mGecko, mServo)
+NS_IMPL_CYCLE_COLLECTION(PreloadedStyleSheet, mSheet)
 
 nsresult
-PreloadedStyleSheet::GetSheet(StyleBackendType aType, StyleSheet** aResult)
+PreloadedStyleSheet::GetSheet(StyleSheet** aResult)
 {
   *aResult = nullptr;
 
   MOZ_DIAGNOSTIC_ASSERT(mLoaded);
 
-  RefPtr<StyleSheet>& sheet =
-    aType == StyleBackendType::Gecko ? mGecko : mServo;
-
-  if (!sheet) {
+  if (!mSheet) {
     RefPtr<css::Loader> loader = new css::Loader;
-    nsresult rv = loader->LoadSheetSync(mURI, mParsingMode, true, &sheet);
+    nsresult rv = loader->LoadSheetSync(mURI, mParsingMode, true, &mSheet);
     NS_ENSURE_SUCCESS(rv, rv);
-    MOZ_ASSERT(sheet);
+    MOZ_ASSERT(mSheet);
   }
 
-  *aResult = sheet;
+  *aResult = mSheet;
   return NS_OK;
 }
 
 nsresult
 PreloadedStyleSheet::Preload()
 {
   MOZ_DIAGNOSTIC_ASSERT(!mLoaded);
 
@@ -83,17 +80,17 @@ PreloadedStyleSheet::Preload()
   // and we won't really have front loaded the loading time as the name
   // "preload" might suggest.  Also, in theory we could get different data from
   // fetching the URL again, but for the usage patterns of this API this is
   // unlikely, and it doesn't seem worth trying to store the contents of the URL
   // and duplicating a bunch of css::Loader's logic.
   mLoaded = true;
 
   StyleSheet* sheet;
-  return GetSheet(StyleBackendType::Servo, &sheet);
+  return GetSheet(&sheet);
 }
 
 NS_IMPL_ISUPPORTS(PreloadedStyleSheet::StylesheetPreloadObserver,
                   nsICSSLoaderObserver)
 
 NS_IMETHODIMP
 PreloadedStyleSheet::StylesheetPreloadObserver::StyleSheetLoaded(
   StyleSheet* aSheet, bool aWasAlternate, nsresult aStatus)
@@ -112,19 +109,17 @@ PreloadedStyleSheet::StylesheetPreloadOb
 
 // Note: After calling this method, the preloaded sheet *must not* be used
 // until the observer is notified that the sheet has finished loading.
 nsresult
 PreloadedStyleSheet::PreloadAsync(NotNull<dom::Promise*> aPromise)
 {
   MOZ_DIAGNOSTIC_ASSERT(!mLoaded);
 
-  RefPtr<StyleSheet>& sheet = mServo;
-
   RefPtr<css::Loader> loader = new css::Loader;
 
   RefPtr<StylesheetPreloadObserver> obs =
     new StylesheetPreloadObserver(aPromise, this);
 
-  return loader->LoadSheet(mURI, mParsingMode, false, obs, &sheet);
+  return loader->LoadSheet(mURI, mParsingMode, false, obs, &mSheet);
 }
 
 } // namespace mozilla
--- a/layout/style/PreloadedStyleSheet.h
+++ b/layout/style/PreloadedStyleSheet.h
@@ -7,17 +7,16 @@
 /* a CSS style sheet returned from nsIStyleSheetService.preloadSheet */
 
 #ifndef mozilla_PreloadedStyleSheet_h
 #define mozilla_PreloadedStyleSheet_h
 
 #include "mozilla/css/SheetParsingMode.h"
 #include "mozilla/NotNull.h"
 #include "mozilla/Result.h"
-#include "mozilla/StyleBackendType.h"
 #include "nsCOMPtr.h"
 #include "nsCycleCollectionParticipant.h"
 #include "nsICSSLoaderObserver.h"
 #include "nsIPreloadedStyleSheet.h"
 
 class nsIURI;
 
 namespace mozilla {
@@ -34,17 +33,17 @@ public:
   static nsresult Create(nsIURI* aURI, css::SheetParsingMode aParsingMode,
                          PreloadedStyleSheet** aResult);
 
   NS_DECL_CYCLE_COLLECTING_ISUPPORTS
   NS_DECL_CYCLE_COLLECTION_CLASS(PreloadedStyleSheet)
 
   // *aResult is not addrefed, since the PreloadedStyleSheet holds a strong
   // reference to the sheet.
-  nsresult GetSheet(StyleBackendType aType, StyleSheet** aResult);
+  nsresult GetSheet(StyleSheet** aResult);
 
   nsresult Preload();
   nsresult PreloadAsync(NotNull<dom::Promise*> aPromise);
 
 protected:
   virtual ~PreloadedStyleSheet() {}
 
 private:
@@ -68,18 +67,17 @@ private:
   protected:
     virtual ~StylesheetPreloadObserver() {}
 
   private:
     RefPtr<dom::Promise> mPromise;
     RefPtr<PreloadedStyleSheet> mPreloadedSheet;
   };
 
-  RefPtr<StyleSheet> mGecko;
-  RefPtr<StyleSheet> mServo;
+  RefPtr<StyleSheet> mSheet;
 
   bool mLoaded;
   nsCOMPtr<nsIURI> mURI;
   css::SheetParsingMode mParsingMode;
 };
 
 } // namespace mozilla