mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-18 15:55:36 +00:00
Bug 842372 - Part 1: Implement nsINode::ShouldExposeUserData. r=bholley
This commit is contained in:
parent
9341f966c9
commit
fdb26c9036
@ -1135,6 +1135,12 @@ public:
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
/**
|
||||
* Control if GetUserData and SetUserData methods will be exposed to
|
||||
* unprivileged content.
|
||||
*/
|
||||
static bool ShouldExposeUserData(JSContext* aCx, JSObject* /* unused */);
|
||||
|
||||
void LookupPrefix(const nsAString& aNamespace, nsAString& aResult);
|
||||
bool IsDefaultNamespace(const nsAString& aNamespaceURI)
|
||||
{
|
||||
|
@ -10,6 +10,7 @@
|
||||
|
||||
#include "nsINode.h"
|
||||
|
||||
#include "AccessCheck.h"
|
||||
#include "jsapi.h"
|
||||
#include "mozAutoDocUpdate.h"
|
||||
#include "mozilla/CORSMode.h"
|
||||
@ -96,6 +97,7 @@
|
||||
#include "nsXBLInsertionPoint.h"
|
||||
#include "nsXBLPrototypeBinding.h"
|
||||
#include "prprf.h"
|
||||
#include "xpcprivate.h" // XBLScopesEnabled
|
||||
#include "xpcpublic.h"
|
||||
#include "nsCSSRuleProcessor.h"
|
||||
#include "nsCSSParser.h"
|
||||
@ -719,6 +721,16 @@ nsINode::GetUserData(JSContext* aCx, const nsAString& aKey, ErrorResult& aError)
|
||||
return result;
|
||||
}
|
||||
|
||||
//static
|
||||
bool
|
||||
nsINode::ShouldExposeUserData(JSContext* aCx, JSObject* /* unused */)
|
||||
{
|
||||
JSCompartment* compartment = js::GetContextCompartment(aCx);
|
||||
return xpc::AccessCheck::isChrome(compartment) ||
|
||||
xpc::IsXBLScope(compartment) ||
|
||||
!XPCJSRuntime::Get()->XBLScopesEnabled();
|
||||
}
|
||||
|
||||
uint16_t
|
||||
nsINode::CompareDocumentPosition(nsINode& aOtherNode) const
|
||||
{
|
||||
|
Loading…
Reference in New Issue
Block a user