Bug 1473631: Part 10 - Replace pref observers with callbacks in ScriptSecurityManager. r=njn

MozReview-Commit-ID: COEgATfeEj

--HG--
extra : rebase_source : 8cdd70210041b0140ef951b3899dc324e0a9d74c
This commit is contained in:
Kris Maglione 2018-07-05 14:53:14 -07:00
Родитель 82a9ede2c1
Коммит caa1a1228b
2 изменённых файлов: 13 добавлений и 23 удалений

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

@ -46,7 +46,6 @@
#include "nsIPrompt.h"
#include "nsIWindowWatcher.h"
#include "nsIConsoleService.h"
#include "nsIObserverService.h"
#include "nsIOService.h"
#include "nsIContent.h"
#include "nsDOMJSUtils.h"
@ -461,8 +460,7 @@ nsScriptSecurityManager::IsSystemPrincipal(nsIPrincipal* aPrincipal,
// Methods implementing ISupports //
////////////////////////////////////
NS_IMPL_ISUPPORTS(nsScriptSecurityManager,
nsIScriptSecurityManager,
nsIObserver)
nsIScriptSecurityManager)
///////////////////////////////////////////////////
// Methods implementing nsIScriptSecurityManager //
@ -1362,9 +1360,6 @@ nsScriptSecurityManager::CanGetService(JSContext *cx,
return NS_ERROR_DOM_XPCONNECT_ACCESS_DENIED;
}
/////////////////////////////////////
// Method implementing nsIObserver //
/////////////////////////////////////
const char sJSEnabledPrefName[] = "javascript.enabled";
const char sFileOriginPolicyPrefName[] =
"security.fileuri.strict_origin_policy";
@ -1377,14 +1372,6 @@ static const char* kObservedPrefs[] = {
};
NS_IMETHODIMP
nsScriptSecurityManager::Observe(nsISupports* aObject, const char* aTopic,
const char16_t* aMessage)
{
ScriptSecurityPrefChanged();
return NS_OK;
}
/////////////////////////////////////////////
// Constructor, Destructor, Initialization //
/////////////////////////////////////////////
@ -1431,7 +1418,10 @@ static StaticRefPtr<nsScriptSecurityManager> gScriptSecMan;
nsScriptSecurityManager::~nsScriptSecurityManager(void)
{
Preferences::RemoveObservers(this, kObservedPrefs);
Preferences::UnregisterPrefixCallbacks(
PREF_CHANGE_METHOD(nsScriptSecurityManager::ScriptSecurityPrefChanged),
kObservedPrefs,
this);
if (mDomainPolicy) {
mDomainPolicy->Deactivate();
}
@ -1511,7 +1501,7 @@ uint32_t SkipUntil(const nsCString& str, uint32_t base)
}
inline void
nsScriptSecurityManager::ScriptSecurityPrefChanged()
nsScriptSecurityManager::ScriptSecurityPrefChanged(const char* aPref)
{
MOZ_ASSERT(mPrefInitialized);
mIsJavaScriptEnabled =
@ -1568,7 +1558,10 @@ nsScriptSecurityManager::InitPrefs()
ScriptSecurityPrefChanged();
// set observer callbacks in case the value of the prefs change
Preferences::AddStrongObservers(this, kObservedPrefs);
Preferences::RegisterPrefixCallbacks(
PREF_CHANGE_METHOD(nsScriptSecurityManager::ScriptSecurityPrefChanged),
kObservedPrefs,
this);
OriginAttributes::InitPrefs();

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

@ -12,7 +12,6 @@
#include "mozilla/Maybe.h"
#include "nsIPrincipal.h"
#include "nsCOMPtr.h"
#include "nsIObserver.h"
#include "nsServiceManagerUtils.h"
#include "nsStringFwd.h"
#include "plstr.h"
@ -35,8 +34,7 @@ class OriginAttributes;
{ 0x7ee2a4c0, 0x4b93, 0x17d3, \
{ 0xba, 0x18, 0x00, 0x60, 0xb0, 0xf1, 0x99, 0xa2 }}
class nsScriptSecurityManager final : public nsIScriptSecurityManager,
public nsIObserver
class nsScriptSecurityManager final : public nsIScriptSecurityManager
{
public:
static void Shutdown();
@ -45,7 +43,6 @@ public:
NS_DECL_ISUPPORTS
NS_DECL_NSISCRIPTSECURITYMANAGER
NS_DECL_NSIOBSERVER
static nsScriptSecurityManager*
GetScriptSecurityManager();
@ -99,8 +96,8 @@ private:
nsresult
InitPrefs();
inline void
ScriptSecurityPrefChanged();
void
ScriptSecurityPrefChanged(const char* aPref = nullptr);
inline void
AddSitesToFileURIWhitelist(const nsCString& aSiteList);