mirror of
				https://github.com/mozilla/gecko-dev.git
				synced 2025-11-04 02:09:05 +02:00 
			
		
		
		
	This only really takes care of making it compile, although there are still missing pieces for other directories to rely on it. This is enough to unblock a bunch of other work. While here, remove `virtual` on methods with `override`. Differential Revision: https://phabricator.services.mozilla.com/D203198
		
			
				
	
	
		
			207 lines
		
	
	
	
		
			5.1 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			207 lines
		
	
	
	
		
			5.1 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
 | 
						|
/* This Source Code Form is subject to the terms of the Mozilla Public
 | 
						|
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 | 
						|
 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 | 
						|
 | 
						|
#include "GfxInfo.h"
 | 
						|
#include "nsServiceManagerUtils.h"
 | 
						|
 | 
						|
namespace mozilla {
 | 
						|
namespace widget {
 | 
						|
 | 
						|
#ifdef DEBUG
 | 
						|
NS_IMPL_ISUPPORTS_INHERITED(GfxInfo, GfxInfoBase, nsIGfxInfoDebug)
 | 
						|
#endif
 | 
						|
 | 
						|
GfxInfo::GfxInfo() {}
 | 
						|
 | 
						|
GfxInfo::~GfxInfo() {}
 | 
						|
 | 
						|
NS_IMETHODIMP
 | 
						|
GfxInfo::GetD2DEnabled(bool* aEnabled) { return NS_ERROR_FAILURE; }
 | 
						|
 | 
						|
NS_IMETHODIMP
 | 
						|
GfxInfo::GetDWriteEnabled(bool* aEnabled) { return NS_ERROR_FAILURE; }
 | 
						|
 | 
						|
NS_IMETHODIMP
 | 
						|
GfxInfo::GetEmbeddedInFirefoxReality(bool* aEmbeddedInFirefoxReality) {
 | 
						|
  return NS_ERROR_NOT_IMPLEMENTED;
 | 
						|
}
 | 
						|
 | 
						|
NS_IMETHODIMP
 | 
						|
GfxInfo::GetHasBattery(bool* aHasBattery) { return NS_ERROR_NOT_IMPLEMENTED; }
 | 
						|
 | 
						|
NS_IMETHODIMP
 | 
						|
GfxInfo::GetDWriteVersion(nsAString& aDwriteVersion) {
 | 
						|
  return NS_ERROR_FAILURE;
 | 
						|
}
 | 
						|
 | 
						|
NS_IMETHODIMP
 | 
						|
GfxInfo::GetCleartypeParameters(nsAString& aCleartypeParams) {
 | 
						|
  return NS_ERROR_FAILURE;
 | 
						|
}
 | 
						|
 | 
						|
NS_IMETHODIMP
 | 
						|
GfxInfo::GetWindowProtocol(nsAString& aWindowProtocol) {
 | 
						|
  return NS_ERROR_NOT_IMPLEMENTED;
 | 
						|
}
 | 
						|
 | 
						|
NS_IMETHODIMP
 | 
						|
GfxInfo::GetTestType(nsAString& aTestType) { return NS_ERROR_NOT_IMPLEMENTED; }
 | 
						|
 | 
						|
NS_IMETHODIMP
 | 
						|
GfxInfo::GetAdapterDescription(nsAString& aAdapterDescription) {
 | 
						|
  return NS_ERROR_FAILURE;
 | 
						|
}
 | 
						|
 | 
						|
NS_IMETHODIMP
 | 
						|
GfxInfo::GetAdapterDescription2(nsAString& aAdapterDescription) {
 | 
						|
  return NS_ERROR_FAILURE;
 | 
						|
}
 | 
						|
 | 
						|
NS_IMETHODIMP
 | 
						|
GfxInfo::GetAdapterRAM(uint32_t* aAdapterRAM) { return NS_ERROR_FAILURE; }
 | 
						|
 | 
						|
NS_IMETHODIMP
 | 
						|
GfxInfo::GetAdapterRAM2(uint32_t* aAdapterRAM) { return NS_ERROR_FAILURE; }
 | 
						|
 | 
						|
NS_IMETHODIMP
 | 
						|
GfxInfo::GetAdapterDriverVendor(nsAString& aAdapterDriverVendor) {
 | 
						|
  return NS_ERROR_NOT_IMPLEMENTED;
 | 
						|
}
 | 
						|
 | 
						|
NS_IMETHODIMP
 | 
						|
GfxInfo::GetAdapterDriverVendor2(nsAString& aAdapterDriverVendor2) {
 | 
						|
  return NS_ERROR_NOT_IMPLEMENTED;
 | 
						|
}
 | 
						|
 | 
						|
NS_IMETHODIMP
 | 
						|
GfxInfo::GetAdapterDriver(nsAString& aAdapterDriver) {
 | 
						|
  return NS_ERROR_FAILURE;
 | 
						|
}
 | 
						|
 | 
						|
NS_IMETHODIMP
 | 
						|
GfxInfo::GetAdapterDriver2(nsAString& aAdapterDriver) {
 | 
						|
  return NS_ERROR_FAILURE;
 | 
						|
}
 | 
						|
 | 
						|
NS_IMETHODIMP
 | 
						|
GfxInfo::GetAdapterDriverVersion(nsAString& aAdapterDriverVersion) {
 | 
						|
  return NS_ERROR_FAILURE;
 | 
						|
}
 | 
						|
 | 
						|
NS_IMETHODIMP
 | 
						|
GfxInfo::GetAdapterDriverVersion2(nsAString& aAdapterDriverVersion) {
 | 
						|
  return NS_ERROR_FAILURE;
 | 
						|
}
 | 
						|
 | 
						|
NS_IMETHODIMP
 | 
						|
GfxInfo::GetAdapterDriverDate(nsAString& aAdapterDriverDate) {
 | 
						|
  return NS_ERROR_FAILURE;
 | 
						|
}
 | 
						|
 | 
						|
NS_IMETHODIMP
 | 
						|
GfxInfo::GetAdapterDriverDate2(nsAString& aAdapterDriverDate) {
 | 
						|
  return NS_ERROR_FAILURE;
 | 
						|
}
 | 
						|
 | 
						|
NS_IMETHODIMP
 | 
						|
GfxInfo::GetAdapterVendorID(nsAString& aAdapterVendorID) {
 | 
						|
  return NS_ERROR_FAILURE;
 | 
						|
}
 | 
						|
 | 
						|
NS_IMETHODIMP
 | 
						|
GfxInfo::GetAdapterVendorID2(nsAString& aAdapterVendorID) {
 | 
						|
  return NS_ERROR_FAILURE;
 | 
						|
}
 | 
						|
 | 
						|
NS_IMETHODIMP
 | 
						|
GfxInfo::GetAdapterDeviceID(nsAString& aAdapterDeviceID) {
 | 
						|
  return NS_ERROR_FAILURE;
 | 
						|
}
 | 
						|
 | 
						|
NS_IMETHODIMP
 | 
						|
GfxInfo::GetAdapterDeviceID2(nsAString& aAdapterDeviceID) {
 | 
						|
  return NS_ERROR_FAILURE;
 | 
						|
}
 | 
						|
 | 
						|
NS_IMETHODIMP
 | 
						|
GfxInfo::GetAdapterSubsysID(nsAString& aAdapterSubsysID) {
 | 
						|
  return NS_ERROR_FAILURE;
 | 
						|
}
 | 
						|
 | 
						|
NS_IMETHODIMP
 | 
						|
GfxInfo::GetAdapterSubsysID2(nsAString& aAdapterSubsysID) {
 | 
						|
  return NS_ERROR_FAILURE;
 | 
						|
}
 | 
						|
 | 
						|
NS_IMETHODIMP
 | 
						|
GfxInfo::GetIsGPU2Active(bool* aIsGPU2Active) { return NS_ERROR_FAILURE; }
 | 
						|
 | 
						|
NS_IMETHODIMP
 | 
						|
GfxInfo::GetDrmRenderDevice(nsACString& aDrmRenderDevice) {
 | 
						|
  return NS_ERROR_NOT_IMPLEMENTED;
 | 
						|
}
 | 
						|
 | 
						|
const nsTArray<GfxDriverInfo>& GfxInfo::GetGfxDriverInfo() {
 | 
						|
  if (sDriverInfo->IsEmpty()) {
 | 
						|
    APPEND_TO_DRIVER_BLOCKLIST2(
 | 
						|
        OperatingSystem::Ios, DeviceFamily::All,
 | 
						|
        nsIGfxInfo::FEATURE_OPENGL_LAYERS, nsIGfxInfo::FEATURE_STATUS_OK,
 | 
						|
        DRIVER_COMPARISON_IGNORED, GfxDriverInfo::allDriverVersions,
 | 
						|
        "FEATURE_OK_FORCE_OPENGL");
 | 
						|
  }
 | 
						|
 | 
						|
  return *sDriverInfo;
 | 
						|
}
 | 
						|
 | 
						|
nsresult GfxInfo::GetFeatureStatusImpl(
 | 
						|
    int32_t aFeature, int32_t* aStatus, nsAString& aSuggestedDriverVersion,
 | 
						|
    const nsTArray<GfxDriverInfo>& aDriverInfo, nsACString& aFailureId,
 | 
						|
    OperatingSystem* aOS /* = nullptr */) {
 | 
						|
  NS_ENSURE_ARG_POINTER(aStatus);
 | 
						|
  aSuggestedDriverVersion.SetIsVoid(true);
 | 
						|
  *aStatus = nsIGfxInfo::FEATURE_STATUS_UNKNOWN;
 | 
						|
  if (aOS) *aOS = OperatingSystem::Ios;
 | 
						|
 | 
						|
  if (sShutdownOccurred) {
 | 
						|
    return NS_OK;
 | 
						|
  }
 | 
						|
 | 
						|
  // OpenGL layers are never blocklisted on iOS.
 | 
						|
  // This early return is so we avoid potentially slow
 | 
						|
  // GLStrings initialization on startup when we initialize GL layers.
 | 
						|
  if (aFeature == nsIGfxInfo::FEATURE_OPENGL_LAYERS ||
 | 
						|
      aFeature == nsIGfxInfo::FEATURE_WEBGL_OPENGL) {
 | 
						|
    *aStatus = nsIGfxInfo::FEATURE_STATUS_OK;
 | 
						|
    return NS_OK;
 | 
						|
  }
 | 
						|
 | 
						|
  return GfxInfoBase::GetFeatureStatusImpl(
 | 
						|
      aFeature, aStatus, aSuggestedDriverVersion, aDriverInfo, aFailureId, aOS);
 | 
						|
}
 | 
						|
 | 
						|
#ifdef DEBUG
 | 
						|
 | 
						|
// Implement nsIGfxInfoDebug
 | 
						|
 | 
						|
NS_IMETHODIMP GfxInfo::SpoofVendorID(const nsAString& aVendorID) {
 | 
						|
  return NS_ERROR_FAILURE;
 | 
						|
}
 | 
						|
 | 
						|
NS_IMETHODIMP GfxInfo::SpoofDeviceID(const nsAString& aDeviceID) {
 | 
						|
  return NS_ERROR_FAILURE;
 | 
						|
}
 | 
						|
 | 
						|
NS_IMETHODIMP GfxInfo::SpoofDriverVersion(const nsAString& aDriverVersion) {
 | 
						|
  return NS_ERROR_FAILURE;
 | 
						|
}
 | 
						|
 | 
						|
NS_IMETHODIMP GfxInfo::SpoofOSVersion(uint32_t aVersion) {
 | 
						|
  return NS_ERROR_FAILURE;
 | 
						|
}
 | 
						|
 | 
						|
#endif
 | 
						|
 | 
						|
}  // namespace widget
 | 
						|
}  // namespace mozilla
 |