Commit dd145d98 authored by David Parks's avatar David Parks
Browse files

Bug 1756280: Force navigator.pdfViewerEnabled, etc. if...

Bug 1756280: Force navigator.pdfViewerEnabled, etc. if privacy.resistFingerprinting is set r=peterv,tjr

navigator.{pdfViewerEnabled, mimeTypes, plugins} should ignore pdfjs.disabled when RFP is set.

Differential Revision: https://phabricator.services.mozilla.com/D140762
parent 40e9f7a3
Loading
Loading
Loading
Loading
+6 −1
Original line number Diff line number Diff line
@@ -488,7 +488,12 @@ nsPluginArray* Navigator::GetPlugins(ErrorResult& aRv) {
  return mPlugins;
}

bool Navigator::PdfViewerEnabled() { return !StaticPrefs::pdfjs_disabled(); }
bool Navigator::PdfViewerEnabled() {
  // We ignore pdfjs.disabled when resisting fingerprinting.
  // See bug 1756280 for an explanation.
  return !StaticPrefs::pdfjs_disabled() ||
         nsContentUtils::ShouldResistFingerprinting(GetDocShell());
}

Permissions* Navigator::GetPermissions(ErrorResult& aRv) {
  if (!mWindow) {
+2 −3
Original line number Diff line number Diff line
@@ -79,10 +79,9 @@ void nsMimeTypeArray::GetSupportedNames(nsTArray<nsString>& retval) {
  }
}

/* static */
bool nsMimeTypeArray::ForceNoPlugins() {
  return StaticPrefs::pdfjs_disabled() ||
         nsContentUtils::ShouldResistFingerprinting();
  return StaticPrefs::pdfjs_disabled() &&
         !nsContentUtils::ShouldResistFingerprinting(mWindow->GetExtantDoc());
}

NS_IMPL_CYCLE_COLLECTION_ROOT_NATIVE(nsMimeType, AddRef)
+1 −1
Original line number Diff line number Diff line
@@ -56,7 +56,7 @@ class nsMimeTypeArray final : public nsISupports, public nsWrapperCache {
 protected:
  virtual ~nsMimeTypeArray();

  static bool ForceNoPlugins();
  bool ForceNoPlugins();

  nsCOMPtr<nsPIDOMWindowInner> mWindow;
  mozilla::Array<RefPtr<nsMimeType>, 2> mMimeTypes;
+2 −3
Original line number Diff line number Diff line
@@ -97,10 +97,9 @@ void nsPluginArray::GetSupportedNames(nsTArray<nsString>& aRetval) {
  }
}

/* static */
bool nsPluginArray::ForceNoPlugins() {
  return StaticPrefs::pdfjs_disabled() ||
         nsContentUtils::ShouldResistFingerprinting();
  return StaticPrefs::pdfjs_disabled() &&
         !nsContentUtils::ShouldResistFingerprinting(mWindow->GetExtantDoc());
}

NS_IMPL_CYCLE_COLLECTING_ADDREF(nsPluginArray)
+1 −1
Original line number Diff line number Diff line
@@ -61,7 +61,7 @@ class nsPluginArray final : public nsSupportsWeakReference,
 private:
  virtual ~nsPluginArray();

  static bool ForceNoPlugins();
  bool ForceNoPlugins();

  RefPtr<nsMimeTypeArray> mMimeTypeArray;
  nsCOMPtr<nsPIDOMWindowInner> mWindow;