mirror of
https://gitlab.winehq.org/wine/wine-gecko.git
synced 2024-09-13 09:24:08 -07:00
Bug 1045561 Use a WebIDL Func attribute to conditionally enable Fetch Headers. r=ehsan r=bz
This commit is contained in:
parent
e0060d9e3f
commit
03e77dbb2f
@ -8,6 +8,8 @@
|
|||||||
|
|
||||||
#include "mozilla/ErrorResult.h"
|
#include "mozilla/ErrorResult.h"
|
||||||
#include "mozilla/dom/UnionTypes.h"
|
#include "mozilla/dom/UnionTypes.h"
|
||||||
|
#include "mozilla/dom/WorkerPrivate.h"
|
||||||
|
#include "mozilla/Preferences.h"
|
||||||
|
|
||||||
#include "nsCharSeparatedTokenizer.h"
|
#include "nsCharSeparatedTokenizer.h"
|
||||||
#include "nsContentUtils.h"
|
#include "nsContentUtils.h"
|
||||||
@ -28,6 +30,32 @@ NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(Headers)
|
|||||||
NS_INTERFACE_MAP_ENTRY(nsISupports)
|
NS_INTERFACE_MAP_ENTRY(nsISupports)
|
||||||
NS_INTERFACE_MAP_END
|
NS_INTERFACE_MAP_END
|
||||||
|
|
||||||
|
// static
|
||||||
|
bool
|
||||||
|
Headers::PrefEnabled(JSContext* aCx, JSObject* aObj)
|
||||||
|
{
|
||||||
|
using mozilla::dom::workers::WorkerPrivate;
|
||||||
|
using mozilla::dom::workers::GetWorkerPrivateFromContext;
|
||||||
|
|
||||||
|
if (NS_IsMainThread()) {
|
||||||
|
static bool sPrefCacheInit = false;
|
||||||
|
static bool sPrefEnabled = false;
|
||||||
|
if (sPrefCacheInit) {
|
||||||
|
return sPrefEnabled;
|
||||||
|
}
|
||||||
|
Preferences::AddBoolVarCache(&sPrefEnabled, "dom.fetch.enabled");
|
||||||
|
sPrefCacheInit = true;
|
||||||
|
return sPrefEnabled;
|
||||||
|
}
|
||||||
|
|
||||||
|
WorkerPrivate* workerPrivate = GetWorkerPrivateFromContext(aCx);
|
||||||
|
if (!workerPrivate) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
return workerPrivate->DOMFetchEnabled();
|
||||||
|
}
|
||||||
|
|
||||||
// static
|
// static
|
||||||
already_AddRefed<Headers>
|
already_AddRefed<Headers>
|
||||||
Headers::Constructor(const GlobalObject& aGlobal,
|
Headers::Constructor(const GlobalObject& aGlobal,
|
||||||
|
@ -54,6 +54,8 @@ public:
|
|||||||
SetIsDOMBinding();
|
SetIsDOMBinding();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static bool PrefEnabled(JSContext* cx, JSObject* obj);
|
||||||
|
|
||||||
static already_AddRefed<Headers>
|
static already_AddRefed<Headers>
|
||||||
Constructor(const GlobalObject& aGlobal,
|
Constructor(const GlobalObject& aGlobal,
|
||||||
const Optional<HeadersOrByteStringSequenceSequenceOrByteStringMozMap>& aInit,
|
const Optional<HeadersOrByteStringSequenceSequenceOrByteStringMozMap>& aInit,
|
||||||
|
@ -12,6 +12,10 @@ UNIFIED_SOURCES += [
|
|||||||
'Headers.cpp',
|
'Headers.cpp',
|
||||||
]
|
]
|
||||||
|
|
||||||
|
LOCAL_INCLUDES += [
|
||||||
|
'../workers',
|
||||||
|
]
|
||||||
|
|
||||||
FAIL_ON_WARNINGS = True
|
FAIL_ON_WARNINGS = True
|
||||||
MSVC_ENABLE_PGO = True
|
MSVC_ENABLE_PGO = True
|
||||||
FINAL_LIBRARY = 'xul'
|
FINAL_LIBRARY = 'xul'
|
||||||
|
@ -20,7 +20,7 @@ enum HeadersGuardEnum {
|
|||||||
|
|
||||||
[Constructor(optional HeadersInit init),
|
[Constructor(optional HeadersInit init),
|
||||||
// FIXME: Exposed=Window,Worker,
|
// FIXME: Exposed=Window,Worker,
|
||||||
Pref="dom.fetch.enabled"]
|
Func="mozilla::dom::Headers::PrefEnabled"]
|
||||||
interface Headers {
|
interface Headers {
|
||||||
[Throws] void append(ByteString name, ByteString value);
|
[Throws] void append(ByteString name, ByteString value);
|
||||||
[Throws] void delete(ByteString name);
|
[Throws] void delete(ByteString name);
|
||||||
|
@ -64,6 +64,8 @@ WorkerPrivate::RegisterBindings(JSContext* aCx, JS::Handle<JSObject*> aGlobal)
|
|||||||
!DOMExceptionBinding::GetConstructorObject(aCx, aGlobal) ||
|
!DOMExceptionBinding::GetConstructorObject(aCx, aGlobal) ||
|
||||||
!EventBinding::GetConstructorObject(aCx, aGlobal) ||
|
!EventBinding::GetConstructorObject(aCx, aGlobal) ||
|
||||||
!FileReaderSyncBinding_workers::GetConstructorObject(aCx, aGlobal) ||
|
!FileReaderSyncBinding_workers::GetConstructorObject(aCx, aGlobal) ||
|
||||||
|
(HeadersBinding::ConstructorEnabled(aCx, aGlobal) &&
|
||||||
|
!HeadersBinding::GetConstructorObject(aCx, aGlobal)) ||
|
||||||
!ImageDataBinding::GetConstructorObject(aCx, aGlobal) ||
|
!ImageDataBinding::GetConstructorObject(aCx, aGlobal) ||
|
||||||
!MessageEventBinding::GetConstructorObject(aCx, aGlobal) ||
|
!MessageEventBinding::GetConstructorObject(aCx, aGlobal) ||
|
||||||
!MessagePortBinding::GetConstructorObject(aCx, aGlobal) ||
|
!MessagePortBinding::GetConstructorObject(aCx, aGlobal) ||
|
||||||
@ -80,12 +82,6 @@ WorkerPrivate::RegisterBindings(JSContext* aCx, JS::Handle<JSObject*> aGlobal)
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (DOMFetchEnabled()) {
|
|
||||||
if (!HeadersBinding::GetConstructorObject(aCx, aGlobal)) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!JS_DefineProfilingFunctions(aCx, aGlobal)) {
|
if (!JS_DefineProfilingFunctions(aCx, aGlobal)) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user