зеркало из https://github.com/mozilla/pjs.git
Bug 711656 - report force-enabled features in crash reports - r=jrmuizel
Force-enabled features will be reported with a '!' instead of the usual '?' in AppNotes in crash reports.
This commit is contained in:
Родитель
87072eac2f
Коммит
d9d3f5553b
|
@ -362,8 +362,6 @@ WebGLContext::SetDimensions(PRInt32 width, PRInt32 height)
|
|||
|
||||
/*** end of early success return cases ***/
|
||||
|
||||
ScopedGfxFeatureReporter reporter("WebGL");
|
||||
|
||||
// At this point we know that the old context is not going to survive, even though we still don't
|
||||
// know if creating the new context will succeed.
|
||||
DestroyResourcesAndContext();
|
||||
|
@ -386,6 +384,8 @@ WebGLContext::SetDimensions(PRInt32 width, PRInt32 height)
|
|||
bool verbose =
|
||||
Preferences::GetBool("webgl.verbose", false);
|
||||
|
||||
ScopedGfxFeatureReporter reporter("WebGL", forceEnabled);
|
||||
|
||||
if (disabled)
|
||||
return NS_ERROR_FAILURE;
|
||||
|
||||
|
|
|
@ -125,9 +125,9 @@ LayerManagerD3D10::~LayerManagerD3D10()
|
|||
}
|
||||
|
||||
bool
|
||||
LayerManagerD3D10::Initialize()
|
||||
LayerManagerD3D10::Initialize(bool force)
|
||||
{
|
||||
ScopedGfxFeatureReporter reporter("D3D10 Layers");
|
||||
ScopedGfxFeatureReporter reporter("D3D10 Layers", force);
|
||||
|
||||
HRESULT hr;
|
||||
|
||||
|
|
|
@ -100,7 +100,7 @@ public:
|
|||
*
|
||||
* \return True is initialization was succesful, false when it was not.
|
||||
*/
|
||||
bool Initialize();
|
||||
bool Initialize(bool force = false);
|
||||
|
||||
/*
|
||||
* LayerManager implementation.
|
||||
|
|
|
@ -70,9 +70,9 @@ LayerManagerD3D9::~LayerManagerD3D9()
|
|||
}
|
||||
|
||||
bool
|
||||
LayerManagerD3D9::Initialize()
|
||||
LayerManagerD3D9::Initialize(bool force)
|
||||
{
|
||||
ScopedGfxFeatureReporter reporter("D3D9 Layers");
|
||||
ScopedGfxFeatureReporter reporter("D3D9 Layers", force);
|
||||
|
||||
/* XXX: this preference and blacklist code should move out of the layer manager */
|
||||
bool forceAccelerate =
|
||||
|
|
|
@ -103,7 +103,7 @@ public:
|
|||
*
|
||||
* \return True is initialization was succesful, false when it was not.
|
||||
*/
|
||||
bool Initialize();
|
||||
bool Initialize(bool force = false);
|
||||
|
||||
/*
|
||||
* Sets the clipping region for this layer manager. This is important on
|
||||
|
|
|
@ -171,9 +171,9 @@ LayerManagerOGL::CreateContext()
|
|||
}
|
||||
|
||||
bool
|
||||
LayerManagerOGL::Initialize(nsRefPtr<GLContext> aContext)
|
||||
LayerManagerOGL::Initialize(nsRefPtr<GLContext> aContext, bool force)
|
||||
{
|
||||
ScopedGfxFeatureReporter reporter("GL Layers");
|
||||
ScopedGfxFeatureReporter reporter("GL Layers", force);
|
||||
|
||||
// Do not allow double intiailization
|
||||
NS_ABORT_IF_FALSE(mGLContext == nsnull, "Don't reiniailize layer managers");
|
||||
|
|
|
@ -106,11 +106,11 @@ public:
|
|||
*
|
||||
* \return True is initialization was succesful, false when it was not.
|
||||
*/
|
||||
bool Initialize() {
|
||||
return Initialize(CreateContext());
|
||||
bool Initialize(bool force = false) {
|
||||
return Initialize(CreateContext(), force);
|
||||
}
|
||||
|
||||
bool Initialize(nsRefPtr<GLContext> aContext);
|
||||
bool Initialize(nsRefPtr<GLContext> aContext, bool force = false);
|
||||
|
||||
/**
|
||||
* Sets the clipping region for this layer manager. This is important on
|
||||
|
|
|
@ -103,10 +103,9 @@ ScopedGfxFeatureReporter::WriteAppNote(char statusChar)
|
|||
}
|
||||
|
||||
nsCAutoString featureString;
|
||||
featureString.AppendPrintf("%s%c%c",
|
||||
featureString.AppendPrintf("%s%c ",
|
||||
mFeature,
|
||||
statusChar,
|
||||
statusChar == '?' ? ' ' : '\n');
|
||||
statusChar);
|
||||
|
||||
if (!gFeaturesAlreadyReported->Contains(featureString)) {
|
||||
gFeaturesAlreadyReported->AppendElement(featureString);
|
||||
|
|
|
@ -53,9 +53,10 @@ namespace mozilla {
|
|||
class NS_GFX ScopedGfxFeatureReporter
|
||||
{
|
||||
public:
|
||||
ScopedGfxFeatureReporter(const char *aFeature) : mFeature(aFeature), mStatusChar('-')
|
||||
ScopedGfxFeatureReporter(const char *aFeature, bool force = false)
|
||||
: mFeature(aFeature), mStatusChar('-')
|
||||
{
|
||||
WriteAppNote('?');
|
||||
WriteAppNote(force ? '!' : '?');
|
||||
}
|
||||
~ScopedGfxFeatureReporter() {
|
||||
WriteAppNote(mStatusChar);
|
||||
|
|
|
@ -501,7 +501,7 @@ gfxWindowsPlatform::VerifyD2DDevice(bool aAttemptForce)
|
|||
mD2DDevice = nsnull;
|
||||
}
|
||||
|
||||
mozilla::ScopedGfxFeatureReporter reporter("D2D");
|
||||
mozilla::ScopedGfxFeatureReporter reporter("D2D", aAttemptForce);
|
||||
|
||||
HMODULE d3d10module = LoadLibraryA("d3d10_1.dll");
|
||||
D3D10CreateDevice1Func createD3DDevice = (D3D10CreateDevice1Func)
|
||||
|
|
|
@ -3237,7 +3237,7 @@ nsWindow::GetLayerManager(PLayersChild* aShadowManager,
|
|||
if (!prefs.mPreferD3D9 && !prefs.mPreferOpenGL) {
|
||||
nsRefPtr<mozilla::layers::LayerManagerD3D10> layerManager =
|
||||
new mozilla::layers::LayerManagerD3D10(this);
|
||||
if (layerManager->Initialize()) {
|
||||
if (layerManager->Initialize(prefs.mForceAcceleration)) {
|
||||
mLayerManager = layerManager;
|
||||
}
|
||||
}
|
||||
|
@ -3246,7 +3246,7 @@ nsWindow::GetLayerManager(PLayersChild* aShadowManager,
|
|||
if (!prefs.mPreferOpenGL && !mLayerManager && sAllowD3D9) {
|
||||
nsRefPtr<mozilla::layers::LayerManagerD3D9> layerManager =
|
||||
new mozilla::layers::LayerManagerD3D9(this);
|
||||
if (layerManager->Initialize()) {
|
||||
if (layerManager->Initialize(prefs.mForceAcceleration)) {
|
||||
mLayerManager = layerManager;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -115,6 +115,7 @@ nsBaseWidget::nsBaseWidget()
|
|||
, mBorderStyle(eBorderStyle_none)
|
||||
, mOnDestroyCalled(false)
|
||||
, mUseAcceleratedRendering(false)
|
||||
, mForceLayersAcceleration(false)
|
||||
, mTemporarilyUseBasicLayerManager(false)
|
||||
, mBounds(0,0,0,0)
|
||||
, mOriginalBounds(nsnull)
|
||||
|
@ -795,7 +796,7 @@ nsBaseWidget::GetShouldAccelerate()
|
|||
// we should use AddBoolPrefVarCache
|
||||
bool disableAcceleration =
|
||||
Preferences::GetBool("layers.acceleration.disabled", false);
|
||||
bool forceAcceleration =
|
||||
mForceLayersAcceleration =
|
||||
Preferences::GetBool("layers.acceleration.force-enabled", false);
|
||||
|
||||
const char *acceleratedEnv = PR_GetEnv("MOZ_ACCELERATED");
|
||||
|
@ -828,7 +829,7 @@ nsBaseWidget::GetShouldAccelerate()
|
|||
if (disableAcceleration || safeMode)
|
||||
return false;
|
||||
|
||||
if (forceAcceleration)
|
||||
if (mForceLayersAcceleration)
|
||||
return true;
|
||||
|
||||
if (!whitelisted) {
|
||||
|
@ -906,7 +907,8 @@ LayerManager* nsBaseWidget::GetLayerManager(PLayersChild* aShadowManager,
|
|||
* platforms on LayerManagerOGL should ensure their widget is able to
|
||||
* deal with it though!
|
||||
*/
|
||||
if (layerManager->Initialize()) {
|
||||
|
||||
if (layerManager->Initialize(mForceLayersAcceleration)) {
|
||||
mLayerManager = layerManager;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -298,6 +298,7 @@ protected:
|
|||
nsBorderStyle mBorderStyle;
|
||||
bool mOnDestroyCalled;
|
||||
bool mUseAcceleratedRendering;
|
||||
bool mForceLayersAcceleration;
|
||||
bool mTemporarilyUseBasicLayerManager;
|
||||
nsIntRect mBounds;
|
||||
nsIntRect* mOriginalBounds;
|
||||
|
|
Загрузка…
Ссылка в новой задаче