Bug 591139 - Disable hardware acceleration in safe mode. r=bas a=blocking2.0:beta5+

This commit is contained in:
Joe Drew 2010-08-27 22:44:37 -04:00
Родитель 91a0297e18
Коммит 92bc8c2631
3 изменённых файлов: 24 добавлений и 4 удалений

Просмотреть файл

@ -54,6 +54,7 @@
#include "nsIWindowsRegKey.h"
#include "nsILocalFile.h"
#include "plbase64.h"
#include "nsIXULRuntime.h"
#ifdef MOZ_FT2_FONTS
#include "ft2build.h"
@ -237,7 +238,12 @@ gfxWindowsPlatform::gfxWindowsPlatform()
if (NS_FAILED(rv))
d2dDisabled = PR_FALSE;
if (isVistaOrHigher && !d2dDisabled) {
nsCOMPtr<nsIXULRuntime> xr = do_GetService("@mozilla.org/xre/runtime;1");
PRBool safeMode = PR_FALSE;
if (xr)
xr->GetInSafeMode(&safeMode);
if (isVistaOrHigher && !d2dDisabled && !safeMode) {
// We need a DWriteFactory to work.
HMODULE d3d10module = LoadLibraryA("d3d10_1.dll");
D3D10CreateDevice1Func createD3DDevice = (D3D10CreateDevice1Func)
@ -319,7 +325,8 @@ gfxWindowsPlatform::gfxWindowsPlatform()
#endif
PRInt32 rmode;
if (NS_SUCCEEDED(pref->GetIntPref("mozilla.widget.render-mode", &rmode))) {
if (!safeMode &&
NS_SUCCEEDED(pref->GetIntPref("mozilla.widget.render-mode", &rmode))) {
if (rmode >= 0 && rmode < RENDER_MODE_MAX) {
#ifdef CAIRO_HAS_DWRITE_FONT
if (rmode != RENDER_DIRECT2D && !useDirectWrite) {

Просмотреть файл

@ -226,6 +226,8 @@
#include "nsICrashReporter.h"
#endif
#include "nsIXULRuntime.h"
using namespace mozilla::widget;
/**************************************************************
@ -3231,7 +3233,12 @@ nsWindow::GetLayerManager()
&preferOpenGL);
}
if (disableAcceleration)
nsCOMPtr<nsIXULRuntime> xr = do_GetService("@mozilla.org/xre/runtime;1");
PRBool safeMode = PR_FALSE;
if (xr)
xr->GetInSafeMode(&safeMode);
if (disableAcceleration || safeMode)
mUseAcceleratedRendering = PR_FALSE;
else if (accelerateByDefault)
mUseAcceleratedRendering = PR_TRUE;

Просмотреть файл

@ -51,6 +51,7 @@
#include "nsIPrefBranch2.h"
#include "BasicLayers.h"
#include "LayerManagerOGL.h"
#include "nsIXULRuntime.h"
#ifdef DEBUG
#include "nsIObserver.h"
@ -772,7 +773,12 @@ LayerManager* nsBaseWidget::GetLayerManager()
&disableAcceleration);
}
if (disableAcceleration)
nsCOMPtr<nsIXULRuntime> xr = do_GetService("@mozilla.org/xre/runtime;1");
PRBool safeMode = PR_FALSE;
if (xr)
xr->GetInSafeMode(&safeMode);
if (disableAcceleration || safeMode)
mUseAcceleratedRendering = PR_FALSE;
else if (accelerateByDefault)
mUseAcceleratedRendering = PR_TRUE;