зеркало из https://github.com/mozilla/gecko-dev.git
Bug 1255817 part 2. Get rid of AutoJSAPI::OwnsErrorReporting and AutoJSAPI::TakeOwnershipOfErrorReporting. r=bholley
This commit is contained in:
Родитель
865750a216
Коммит
e3b2de6aa9
|
@ -551,11 +551,6 @@ WarningOnlyErrorReporter(JSContext* aCx, const char* aMessage, JSErrorReport* aR
|
|||
xpcReport->LogToConsole();
|
||||
}
|
||||
|
||||
void
|
||||
AutoJSAPI::TakeOwnershipOfErrorReporting()
|
||||
{
|
||||
}
|
||||
|
||||
void
|
||||
AutoJSAPI::ReportException()
|
||||
{
|
||||
|
@ -660,8 +655,6 @@ AutoEntryScript::AutoEntryScript(nsIGlobalObject* aGlobalObject,
|
|||
if (aIsMainThread && gRunToCompletionListeners > 0) {
|
||||
mDocShellEntryMonitor.emplace(cx(), aReason);
|
||||
}
|
||||
|
||||
TakeOwnershipOfErrorReporting();
|
||||
}
|
||||
|
||||
AutoEntryScript::AutoEntryScript(JSObject* aObject,
|
||||
|
|
|
@ -267,14 +267,7 @@ public:
|
|||
|
||||
bool CxPusherIsStackTop() const { return mCxPusher->IsStackTop(); }
|
||||
|
||||
// We're moving towards a world where the AutoJSAPI always handles
|
||||
// exceptions that bubble up from the JS engine. In order to make this
|
||||
// process incremental, we allow consumers to opt-in to the new behavior
|
||||
// while keeping the old behavior as the default.
|
||||
void TakeOwnershipOfErrorReporting();
|
||||
bool OwnsErrorReporting() { return true; }
|
||||
// If HasException, report it. Otherwise, a no-op. This must be
|
||||
// called only if OwnsErrorReporting().
|
||||
// If HasException, report it. Otherwise, a no-op.
|
||||
void ReportException();
|
||||
|
||||
bool HasException() const {
|
||||
|
|
|
@ -1886,7 +1886,6 @@ WebSocket::CreateAndDispatchMessageEvent(const nsACString& aData,
|
|||
}
|
||||
}
|
||||
|
||||
jsapi.TakeOwnershipOfErrorReporting();
|
||||
JSContext* cx = jsapi.cx();
|
||||
|
||||
nsresult rv = CheckInnerWindowCorrectness();
|
||||
|
|
|
@ -6490,10 +6490,6 @@ nsContentUtils::IsPatternMatching(nsAString& aValue, nsAString& aPattern,
|
|||
jsapi.Init();
|
||||
JSContext* cx = jsapi.cx();
|
||||
|
||||
// Failure to create or run the regexp results in the invalid pattern
|
||||
// matching, but we can still report the error to the console.
|
||||
jsapi.TakeOwnershipOfErrorReporting();
|
||||
|
||||
// We can use the junk scope here, because we're just using it for
|
||||
// regexp evaluation, not actual script execution.
|
||||
JSAutoCompartment ac(cx, xpc::UnprivilegedJunkScope());
|
||||
|
|
|
@ -842,7 +842,6 @@ nsJSContext::SetProperty(JS::Handle<JSObject*> aTarget, const char* aPropName, n
|
|||
if (NS_WARN_IF(!jsapi.Init(GetGlobalObject()))) {
|
||||
return NS_ERROR_FAILURE;
|
||||
}
|
||||
jsapi.TakeOwnershipOfErrorReporting();
|
||||
JSContext* cx = jsapi.cx();
|
||||
|
||||
JS::AutoValueVector args(cx);
|
||||
|
|
|
@ -97,7 +97,6 @@ nsJSUtils::CompileFunction(AutoJSAPI& jsapi,
|
|||
const nsAString& aBody,
|
||||
JSObject** aFunctionObject)
|
||||
{
|
||||
MOZ_ASSERT(jsapi.OwnsErrorReporting());
|
||||
JSContext* cx = jsapi.cx();
|
||||
MOZ_ASSERT(js::GetEnterCompartmentDepth(cx) > 0);
|
||||
MOZ_ASSERT_IF(aScopeChain.length() != 0,
|
||||
|
|
|
@ -829,7 +829,6 @@ nsScriptLoader::AttemptAsyncScriptCompile(nsScriptLoadRequest* aRequest)
|
|||
if (!jsapi.Init(globalObject)) {
|
||||
return NS_ERROR_FAILURE;
|
||||
}
|
||||
jsapi.TakeOwnershipOfErrorReporting();
|
||||
|
||||
JSContext* cx = jsapi.cx();
|
||||
JS::Rooted<JSObject*> global(cx, globalObject->GetGlobalJSObject());
|
||||
|
|
|
@ -250,7 +250,6 @@ CallbackObject::CallSetup::~CallSetup()
|
|||
if ((mCompartment && mExceptionHandling == eRethrowContentExceptions) ||
|
||||
mExceptionHandling == eRethrowExceptions) {
|
||||
mErrorResult.MightThrowJSException();
|
||||
MOZ_ASSERT(mAutoEntryScript->OwnsErrorReporting());
|
||||
if (needToDealWithException) {
|
||||
JS::Rooted<JS::Value> exn(mCx);
|
||||
if (mAutoEntryScript->PeekException(&exn) &&
|
||||
|
|
|
@ -15793,7 +15793,6 @@ class CGMaplikeOrSetlikeHelperFunctionGenerator(CallbackMember):
|
|||
MOZ_ASSERT(self);
|
||||
AutoJSAPI jsapi;
|
||||
jsapi.Init();
|
||||
jsapi.TakeOwnershipOfErrorReporting();
|
||||
JSContext* cx = jsapi.cx();
|
||||
// It's safe to use UnprivilegedJunkScopeOrWorkerGlobal here because
|
||||
// all we want is to wrap into _some_ scope and then unwrap to find
|
||||
|
|
|
@ -142,7 +142,6 @@ ThrowAndReport(nsPIDOMWindowInner* aWindow, nsresult aRv)
|
|||
if (NS_WARN_IF(!jsapi.Init(aWindow))) {
|
||||
return;
|
||||
}
|
||||
jsapi.TakeOwnershipOfErrorReporting();
|
||||
|
||||
Throw(jsapi.cx(), aRv);
|
||||
}
|
||||
|
|
|
@ -89,8 +89,6 @@ WebGLContext::GenerateWarning(const char* fmt, va_list ap)
|
|||
return;
|
||||
}
|
||||
|
||||
api.TakeOwnershipOfErrorReporting();
|
||||
|
||||
JSContext* cx = api.cx();
|
||||
JS_ReportWarning(cx, "WebGL: %s", buf);
|
||||
if (!ShouldGenerateWarnings()) {
|
||||
|
|
|
@ -917,7 +917,6 @@ EventListenerManager::CompileEventHandlerInternal(Listener* aListener,
|
|||
if (NS_WARN_IF(!jsapi.Init(global))) {
|
||||
return NS_ERROR_UNEXPECTED;
|
||||
}
|
||||
jsapi.TakeOwnershipOfErrorReporting();
|
||||
JSContext* cx = jsapi.cx();
|
||||
|
||||
nsCOMPtr<nsIAtom> typeAtom = aListener->mTypeAtom;
|
||||
|
|
|
@ -376,7 +376,6 @@ IDBRequest::SetResultCallback(ResultCallback* aCallback)
|
|||
return;
|
||||
}
|
||||
}
|
||||
autoJS.TakeOwnershipOfErrorReporting();
|
||||
|
||||
JSContext* cx = autoJS.cx();
|
||||
|
||||
|
|
|
@ -258,7 +258,6 @@ MobileMessageCallback::NotifyMessageDeleted(bool *aDeleted, uint32_t aSize)
|
|||
if (NS_WARN_IF(!jsapi.Init(mDOMRequest->GetOwner()))) {
|
||||
return NS_ERROR_FAILURE;
|
||||
}
|
||||
jsapi.TakeOwnershipOfErrorReporting();
|
||||
JSContext* cx = jsapi.cx();
|
||||
|
||||
JS::Rooted<JSObject*> deleteArrayObj(cx, JS_NewArrayObject(cx, aSize));
|
||||
|
|
|
@ -144,7 +144,6 @@ public:
|
|||
: mAes(aes)
|
||||
, mIsDestroyPending(aWrapper->mDestroyPending)
|
||||
{
|
||||
MOZ_ASSERT(aes.OwnsErrorReporting());
|
||||
}
|
||||
|
||||
~AutoJSExceptionSuppressor()
|
||||
|
|
|
@ -783,7 +783,6 @@ Promise::AppendNativeHandler(PromiseNativeHandler* aRunnable)
|
|||
// happen anyway.
|
||||
return;
|
||||
}
|
||||
jsapi.TakeOwnershipOfErrorReporting();
|
||||
|
||||
JSContext* cx = jsapi.cx();
|
||||
JS::Rooted<JSObject*> handlerWrapper(cx);
|
||||
|
@ -1774,7 +1773,6 @@ public:
|
|||
if (!jsapi.Init(mValues)) {
|
||||
return;
|
||||
}
|
||||
jsapi.TakeOwnershipOfErrorReporting();
|
||||
JSContext* cx = jsapi.cx();
|
||||
|
||||
JS::Rooted<JS::Value> value(cx, aValue);
|
||||
|
|
|
@ -1770,7 +1770,6 @@ ScriptExecutorRunnable::PreRun(WorkerPrivate* aWorkerPrivate)
|
|||
|
||||
AutoJSAPI jsapi;
|
||||
jsapi.Init();
|
||||
jsapi.TakeOwnershipOfErrorReporting();
|
||||
|
||||
WorkerGlobalScope* globalScope =
|
||||
aWorkerPrivate->GetOrCreateGlobalScope(jsapi.cx());
|
||||
|
|
|
@ -920,7 +920,6 @@ ExtendableEvent::GetPromise()
|
|||
if (!jsapi.Init(globalObj)) {
|
||||
return nullptr;
|
||||
}
|
||||
jsapi.TakeOwnershipOfErrorReporting();
|
||||
JSContext* cx = jsapi.cx();
|
||||
|
||||
GlobalObject global(cx, globalObj->GetGlobalJSObject());
|
||||
|
|
|
@ -4407,7 +4407,6 @@ WorkerPrivate::DoRunLoop(JSContext* aCx)
|
|||
AutoJSAPI jsapi;
|
||||
jsapi.Init();
|
||||
MOZ_ASSERT(jsapi.cx() == aCx);
|
||||
jsapi.TakeOwnershipOfErrorReporting();
|
||||
|
||||
EnableMemoryReporter();
|
||||
|
||||
|
|
|
@ -327,7 +327,6 @@ WorkerRunnable::Run()
|
|||
maybeJSAPI->Init();
|
||||
jsapi = maybeJSAPI.ptr();
|
||||
cx = jsapi->cx();
|
||||
jsapi->TakeOwnershipOfErrorReporting();
|
||||
}
|
||||
|
||||
// Note that we can't assert anything about mWorkerPrivate->GetWrapper()
|
||||
|
|
|
@ -1195,7 +1195,6 @@ EventRunnable::PreDispatch(WorkerPrivate* /* unused */)
|
|||
AutoJSAPI jsapi;
|
||||
DebugOnly<bool> ok = jsapi.Init(xpc::NativeGlobal(mScopeObj));
|
||||
MOZ_ASSERT(ok);
|
||||
jsapi.TakeOwnershipOfErrorReporting();
|
||||
JSContext* cx = jsapi.cx();
|
||||
// Now keep the mScopeObj alive for the duration
|
||||
JS::Rooted<JSObject*> scopeObj(cx, mScopeObj);
|
||||
|
|
|
@ -245,7 +245,6 @@ nsXBLProtoImpl::CompilePrototypeMembers(nsXBLPrototypeBinding* aBinding)
|
|||
AutoJSAPI jsapi;
|
||||
if (NS_WARN_IF(!jsapi.Init(xpc::CompilationScope())))
|
||||
return NS_ERROR_FAILURE;
|
||||
jsapi.TakeOwnershipOfErrorReporting();
|
||||
JSContext* cx = jsapi.cx();
|
||||
|
||||
mPrecompiledMemberHolder = JS_NewObjectWithGivenProto(cx, nullptr, nullptr);
|
||||
|
|
|
@ -274,7 +274,6 @@ nsXBLPrototypeHandler::ExecuteHandler(EventTarget* aTarget,
|
|||
if (NS_WARN_IF(!jsapi.Init(boundGlobal))) {
|
||||
return NS_OK;
|
||||
}
|
||||
jsapi.TakeOwnershipOfErrorReporting();
|
||||
JSContext* cx = jsapi.cx();
|
||||
JS::Rooted<JSObject*> handler(cx);
|
||||
|
||||
|
|
|
@ -78,7 +78,6 @@ WrapperAnswer::RecvPreventExtensions(const ObjectId& objId, ReturnStatus* rs)
|
|||
AutoJSAPI jsapi;
|
||||
if (NS_WARN_IF(!jsapi.Init(scopeForTargetObjects())))
|
||||
return false;
|
||||
jsapi.TakeOwnershipOfErrorReporting();
|
||||
JSContext* cx = jsapi.cx();
|
||||
|
||||
RootedObject obj(cx, findObjectById(cx, objId));
|
||||
|
@ -110,7 +109,6 @@ WrapperAnswer::RecvGetPropertyDescriptor(const ObjectId& objId, const JSIDVarian
|
|||
AutoJSAPI jsapi;
|
||||
if (NS_WARN_IF(!jsapi.Init(scopeForTargetObjects())))
|
||||
return false;
|
||||
jsapi.TakeOwnershipOfErrorReporting();
|
||||
JSContext* cx = jsapi.cx();
|
||||
EmptyDesc(out);
|
||||
|
||||
|
@ -141,7 +139,6 @@ WrapperAnswer::RecvGetOwnPropertyDescriptor(const ObjectId& objId, const JSIDVar
|
|||
AutoJSAPI jsapi;
|
||||
if (NS_WARN_IF(!jsapi.Init(scopeForTargetObjects())))
|
||||
return false;
|
||||
jsapi.TakeOwnershipOfErrorReporting();
|
||||
JSContext* cx = jsapi.cx();
|
||||
EmptyDesc(out);
|
||||
|
||||
|
@ -172,7 +169,6 @@ WrapperAnswer::RecvDefineProperty(const ObjectId& objId, const JSIDVariant& idVa
|
|||
AutoJSAPI jsapi;
|
||||
if (NS_WARN_IF(!jsapi.Init(scopeForTargetObjects())))
|
||||
return false;
|
||||
jsapi.TakeOwnershipOfErrorReporting();
|
||||
JSContext* cx = jsapi.cx();
|
||||
|
||||
RootedObject obj(cx, findObjectById(cx, objId));
|
||||
|
@ -201,7 +197,6 @@ WrapperAnswer::RecvDelete(const ObjectId& objId, const JSIDVariant& idVar, Retur
|
|||
AutoJSAPI jsapi;
|
||||
if (NS_WARN_IF(!jsapi.Init(scopeForTargetObjects())))
|
||||
return false;
|
||||
jsapi.TakeOwnershipOfErrorReporting();
|
||||
JSContext* cx = jsapi.cx();
|
||||
|
||||
RootedObject obj(cx, findObjectById(cx, objId));
|
||||
|
@ -227,7 +222,6 @@ WrapperAnswer::RecvHas(const ObjectId& objId, const JSIDVariant& idVar, ReturnSt
|
|||
AutoJSAPI jsapi;
|
||||
if (NS_WARN_IF(!jsapi.Init(scopeForTargetObjects())))
|
||||
return false;
|
||||
jsapi.TakeOwnershipOfErrorReporting();
|
||||
JSContext* cx = jsapi.cx();
|
||||
*foundp = false;
|
||||
|
||||
|
@ -253,7 +247,6 @@ WrapperAnswer::RecvHasOwn(const ObjectId& objId, const JSIDVariant& idVar, Retur
|
|||
AutoJSAPI jsapi;
|
||||
if (NS_WARN_IF(!jsapi.Init(scopeForTargetObjects())))
|
||||
return false;
|
||||
jsapi.TakeOwnershipOfErrorReporting();
|
||||
JSContext* cx = jsapi.cx();
|
||||
*foundp = false;
|
||||
|
||||
|
@ -349,7 +342,6 @@ WrapperAnswer::RecvIsExtensible(const ObjectId& objId, ReturnStatus* rs, bool* r
|
|||
AutoJSAPI jsapi;
|
||||
if (NS_WARN_IF(!jsapi.Init(scopeForTargetObjects())))
|
||||
return false;
|
||||
jsapi.TakeOwnershipOfErrorReporting();
|
||||
JSContext* cx = jsapi.cx();
|
||||
*result = false;
|
||||
|
||||
|
@ -479,7 +471,6 @@ WrapperAnswer::RecvHasInstance(const ObjectId& objId, const JSVariant& vVar, Ret
|
|||
AutoJSAPI jsapi;
|
||||
if (NS_WARN_IF(!jsapi.Init(scopeForTargetObjects())))
|
||||
return false;
|
||||
jsapi.TakeOwnershipOfErrorReporting();
|
||||
JSContext* cx = jsapi.cx();
|
||||
|
||||
RootedObject obj(cx, findObjectById(cx, objId));
|
||||
|
@ -507,7 +498,6 @@ WrapperAnswer::RecvGetBuiltinClass(const ObjectId& objId, ReturnStatus* rs,
|
|||
AutoJSAPI jsapi;
|
||||
if (NS_WARN_IF(!jsapi.Init(scopeForTargetObjects())))
|
||||
return false;
|
||||
jsapi.TakeOwnershipOfErrorReporting();
|
||||
JSContext* cx = jsapi.cx();
|
||||
|
||||
RootedObject obj(cx, findObjectById(cx, objId));
|
||||
|
@ -533,7 +523,6 @@ WrapperAnswer::RecvIsArray(const ObjectId& objId, ReturnStatus* rs,
|
|||
AutoJSAPI jsapi;
|
||||
if (NS_WARN_IF(!jsapi.Init(scopeForTargetObjects())))
|
||||
return false;
|
||||
jsapi.TakeOwnershipOfErrorReporting();
|
||||
JSContext* cx = jsapi.cx();
|
||||
|
||||
RootedObject obj(cx, findObjectById(cx, objId));
|
||||
|
@ -556,7 +545,6 @@ WrapperAnswer::RecvClassName(const ObjectId& objId, nsCString* name)
|
|||
AutoJSAPI jsapi;
|
||||
if (NS_WARN_IF(!jsapi.Init(scopeForTargetObjects())))
|
||||
return false;
|
||||
jsapi.TakeOwnershipOfErrorReporting();
|
||||
JSContext* cx = jsapi.cx();
|
||||
|
||||
RootedObject obj(cx, findObjectById(cx, objId));
|
||||
|
@ -579,7 +567,6 @@ WrapperAnswer::RecvGetPrototype(const ObjectId& objId, ReturnStatus* rs, ObjectO
|
|||
AutoJSAPI jsapi;
|
||||
if (NS_WARN_IF(!jsapi.Init(scopeForTargetObjects())))
|
||||
return false;
|
||||
jsapi.TakeOwnershipOfErrorReporting();
|
||||
JSContext* cx = jsapi.cx();
|
||||
|
||||
RootedObject obj(cx, findObjectById(cx, objId));
|
||||
|
@ -605,7 +592,6 @@ WrapperAnswer::RecvRegExpToShared(const ObjectId& objId, ReturnStatus* rs,
|
|||
AutoJSAPI jsapi;
|
||||
if (NS_WARN_IF(!jsapi.Init(scopeForTargetObjects())))
|
||||
return false;
|
||||
jsapi.TakeOwnershipOfErrorReporting();
|
||||
JSContext* cx = jsapi.cx();
|
||||
|
||||
RootedObject obj(cx, findObjectById(cx, objId));
|
||||
|
@ -632,7 +618,6 @@ WrapperAnswer::RecvGetPropertyKeys(const ObjectId& objId, const uint32_t& flags,
|
|||
AutoJSAPI jsapi;
|
||||
if (NS_WARN_IF(!jsapi.Init(scopeForTargetObjects())))
|
||||
return false;
|
||||
jsapi.TakeOwnershipOfErrorReporting();
|
||||
JSContext* cx = jsapi.cx();
|
||||
|
||||
RootedObject obj(cx, findObjectById(cx, objId));
|
||||
|
@ -663,7 +648,6 @@ WrapperAnswer::RecvInstanceOf(const ObjectId& objId, const JSIID& iid, ReturnSta
|
|||
AutoJSAPI jsapi;
|
||||
if (NS_WARN_IF(!jsapi.Init(scopeForTargetObjects())))
|
||||
return false;
|
||||
jsapi.TakeOwnershipOfErrorReporting();
|
||||
JSContext* cx = jsapi.cx();
|
||||
|
||||
*instanceof = false;
|
||||
|
@ -691,7 +675,6 @@ WrapperAnswer::RecvDOMInstanceOf(const ObjectId& objId, const int& prototypeID,
|
|||
AutoJSAPI jsapi;
|
||||
if (NS_WARN_IF(!jsapi.Init(scopeForTargetObjects())))
|
||||
return false;
|
||||
jsapi.TakeOwnershipOfErrorReporting();
|
||||
JSContext* cx = jsapi.cx();
|
||||
*instanceof = false;
|
||||
|
||||
|
|
|
@ -365,7 +365,6 @@ mozJSComponentLoader::LoadModule(FileLocation& aFile)
|
|||
|
||||
dom::AutoJSAPI jsapi;
|
||||
jsapi.Init();
|
||||
jsapi.TakeOwnershipOfErrorReporting();
|
||||
JSContext* cx = jsapi.cx();
|
||||
|
||||
nsAutoPtr<ModuleEntry> entry(new ModuleEntry(cx));
|
||||
|
@ -655,7 +654,6 @@ mozJSComponentLoader::ObjectForLocation(ComponentLoaderInfo& aInfo,
|
|||
|
||||
dom::AutoJSAPI jsapi;
|
||||
jsapi.Init();
|
||||
jsapi.TakeOwnershipOfErrorReporting();
|
||||
JSContext* cx = jsapi.cx();
|
||||
|
||||
bool realFile = false;
|
||||
|
@ -983,7 +981,6 @@ mozJSComponentLoader::UnloadModules()
|
|||
|
||||
dom::AutoJSAPI jsapi;
|
||||
jsapi.Init();
|
||||
jsapi.TakeOwnershipOfErrorReporting();
|
||||
JSContext* cx = jsapi.cx();
|
||||
RootedObject global(cx, mLoaderGlobal->GetJSObject());
|
||||
if (global) {
|
||||
|
@ -1217,7 +1214,6 @@ mozJSComponentLoader::ImportInto(const nsACString& aLocation,
|
|||
// not an AutoEntryScript.
|
||||
dom::AutoJSAPI jsapi;
|
||||
jsapi.Init();
|
||||
jsapi.TakeOwnershipOfErrorReporting();
|
||||
JSContext* cx = jsapi.cx();
|
||||
JSAutoCompartment ac(cx, mod->obj);
|
||||
|
||||
|
|
Загрузка…
Ссылка в новой задаче