Bug 1255817 part 2. Get rid of AutoJSAPI::OwnsErrorReporting and AutoJSAPI::TakeOwnershipOfErrorReporting. r=bholley

This commit is contained in:
Boris Zbarsky 2016-03-23 11:44:54 -04:00
Родитель 865750a216
Коммит e3b2de6aa9
25 изменённых файлов: 1 добавлений и 62 удалений

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

@ -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);