mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-11-24 21:31:04 +00:00
Bug 1376964 - Part 8: Add OMT wrapper for nsIPrincipals useful for font stuff. r=jfkthame
MozReview-Commit-ID: L6gUnvDx7D2 --HG-- extra : rebase_source : 673a837d91e40f1c46adc2d0c2bc16fe024084ed
This commit is contained in:
parent
c770a5a921
commit
1a172c9491
34
gfx/thebes/gfxFontSrcPrincipal.cpp
Normal file
34
gfx/thebes/gfxFontSrcPrincipal.cpp
Normal file
@ -0,0 +1,34 @@
|
||||
/* -*- 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 "gfxFontSrcPrincipal.h"
|
||||
|
||||
#include "nsProxyRelease.h"
|
||||
#include "nsURIHashKey.h"
|
||||
|
||||
gfxFontSrcPrincipal::gfxFontSrcPrincipal(nsIPrincipal* aPrincipal)
|
||||
{
|
||||
MOZ_ASSERT(NS_IsMainThread());
|
||||
MOZ_ASSERT(aPrincipal);
|
||||
|
||||
mPrincipal = aPrincipal;
|
||||
|
||||
uint32_t hash = 0;
|
||||
mPrincipal->GetHashValue(&hash);
|
||||
mHash = hash;
|
||||
}
|
||||
|
||||
gfxFontSrcPrincipal::~gfxFontSrcPrincipal()
|
||||
{
|
||||
NS_ReleaseOnMainThread("gfxFontSrcPrincipal::mPrincipal",
|
||||
mPrincipal.forget());
|
||||
}
|
||||
|
||||
bool
|
||||
gfxFontSrcPrincipal::Equals(gfxFontSrcPrincipal* aOther)
|
||||
{
|
||||
return BasePrincipal::Cast(mPrincipal)->
|
||||
FastEquals(BasePrincipal::Cast(aOther->mPrincipal));
|
||||
}
|
46
gfx/thebes/gfxFontSrcPrincipal.h
Normal file
46
gfx/thebes/gfxFontSrcPrincipal.h
Normal file
@ -0,0 +1,46 @@
|
||||
/* -*- 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/. */
|
||||
|
||||
#ifndef MOZILLA_GFX_FONTSRCPRINCIPAL_H
|
||||
#define MOZILLA_GFX_FONTSRCPRINCIPAL_H
|
||||
|
||||
#include "nsCOMPtr.h"
|
||||
#include "nsIPrincipal.h"
|
||||
#include "PLDHashTable.h"
|
||||
|
||||
namespace mozilla {
|
||||
namespace net {
|
||||
class nsSimpleURI;
|
||||
} // namespace net
|
||||
} // namespace mozilla
|
||||
|
||||
/**
|
||||
* A wrapper for an nsIPrincipal that can be used OMT, which has cached
|
||||
* information useful for the gfxUserFontSet.
|
||||
*/
|
||||
class gfxFontSrcPrincipal
|
||||
{
|
||||
public:
|
||||
explicit gfxFontSrcPrincipal(nsIPrincipal* aPrincipal);
|
||||
|
||||
NS_INLINE_DECL_THREADSAFE_REFCOUNTING(gfxFontSrcPrincipal)
|
||||
|
||||
nsIPrincipal* get() { return mPrincipal; }
|
||||
|
||||
bool Equals(gfxFontSrcPrincipal* aOther);
|
||||
|
||||
PLDHashNumber Hash() const { return mHash; }
|
||||
|
||||
private:
|
||||
~gfxFontSrcPrincipal();
|
||||
|
||||
// The principal.
|
||||
nsCOMPtr<nsIPrincipal> mPrincipal;
|
||||
|
||||
// Precomputed hash for mPrincipal.
|
||||
PLDHashNumber mHash;
|
||||
};
|
||||
|
||||
#endif // MOZILLA_GFX_FONTSRCPRINCIPAL_H
|
@ -30,6 +30,7 @@ EXPORTS += [
|
||||
'gfxFontFeatures.h',
|
||||
'gfxFontInfoLoader.h',
|
||||
'gfxFontPrefLangList.h',
|
||||
'gfxFontSrcPrincipal.h',
|
||||
'gfxFontSrcURI.h',
|
||||
'gfxFontUtils.h',
|
||||
'gfxFontVariations.h',
|
||||
@ -193,6 +194,7 @@ UNIFIED_SOURCES += [
|
||||
'gfxFontFeatures.cpp',
|
||||
'gfxFontInfoLoader.cpp',
|
||||
'gfxFontMissingGlyphs.cpp',
|
||||
'gfxFontSrcPrincipal.cpp',
|
||||
'gfxFontSrcURI.cpp',
|
||||
'gfxGlyphExtents.cpp',
|
||||
'gfxGradientCache.cpp',
|
||||
|
Loading…
Reference in New Issue
Block a user