/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* vim: set ts=8 sts=2 et sw=2 tw=80: */ /* This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
RefPtr<StrongWorkerRef> workerRef =
StrongWorkerRef::Create(aWorkerPrivate, "WorkerErrorReport"); if (workerRef) {
mWorkerRef = new ThreadSafeWorkerRef(workerRef);
} else { // Don't write the stack if we can't create a ref to the worker. return;
}
if (!stackString.IsEmpty()) {
NotifyNetworkMonitorAlternateStack(aChannel, stackString);
}
}
void ConvertSerializedStackToJSON(UniquePtr<SerializedStackHolder> aStackHolder,
nsAString& aStackString) { // We need a JSContext to be able to stringify the SavedFrame stack. // This will not run any scripts. A privileged scope is needed to fully // inspect all stack frames we find.
AutoJSAPI jsapi;
DebugOnly<bool> ok = jsapi.Init(xpc::PrivilegedJunkScope());
JSContext* cx = jsapi.cx();
JS::Rooted<JSObject*> savedFrame(cx, aStackHolder->ReadStack(cx)); if (!savedFrame) { return;
}
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung ist noch experimentell.