зеркало из https://github.com/mozilla/gecko-dev.git
Bug 1627460 - Add markers for ImportScripts and require in workers, r=mstange.
Differential Revision: https://phabricator.services.mozilla.com/D69711 --HG-- extra : moz-landing-system : lando
This commit is contained in:
Родитель
070b148444
Коммит
9746b4f2de
|
@ -37,6 +37,7 @@
|
||||||
#include "mozilla/dom/WorkerNavigator.h"
|
#include "mozilla/dom/WorkerNavigator.h"
|
||||||
#include "mozilla/dom/cache/CacheStorage.h"
|
#include "mozilla/dom/cache/CacheStorage.h"
|
||||||
#include "mozilla/StorageAccess.h"
|
#include "mozilla/StorageAccess.h"
|
||||||
|
#include "GeckoProfiler.h"
|
||||||
#include "nsContentUtils.h"
|
#include "nsContentUtils.h"
|
||||||
#include "nsJSUtils.h"
|
#include "nsJSUtils.h"
|
||||||
#include "nsServiceManagerUtils.h"
|
#include "nsServiceManagerUtils.h"
|
||||||
|
@ -286,8 +287,25 @@ void WorkerGlobalScope::ImportScripts(JSContext* aCx,
|
||||||
stack = GetCurrentStackForNetMonitor(aCx);
|
stack = GetCurrentStackForNetMonitor(aCx);
|
||||||
}
|
}
|
||||||
|
|
||||||
workerinternals::Load(mWorkerPrivate, std::move(stack), aScriptURLs,
|
{
|
||||||
WorkerScript, aRv);
|
#ifdef MOZ_GECKO_PROFILER
|
||||||
|
nsCString urls;
|
||||||
|
if (profiler_can_accept_markers()) {
|
||||||
|
const uint32_t urlCount = aScriptURLs.Length();
|
||||||
|
if (urlCount) {
|
||||||
|
urls = NS_ConvertUTF16toUTF8(aScriptURLs[0]);
|
||||||
|
for (uint32_t index = 1; index < urlCount; index++) {
|
||||||
|
urls.AppendLiteral(",");
|
||||||
|
urls.Append(NS_ConvertUTF16toUTF8(aScriptURLs[index]));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
AUTO_PROFILER_TEXT_MARKER_CAUSE("ImportScripts", urls, JS, Nothing(),
|
||||||
|
profiler_get_backtrace());
|
||||||
|
#endif
|
||||||
|
workerinternals::Load(mWorkerPrivate, std::move(stack), aScriptURLs,
|
||||||
|
WorkerScript, aRv);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
int32_t WorkerGlobalScope::SetTimeout(JSContext* aCx, Function& aHandler,
|
int32_t WorkerGlobalScope::SetTimeout(JSContext* aCx, Function& aHandler,
|
||||||
|
|
|
@ -88,6 +88,7 @@
|
||||||
* @return {*} An object containing the properties exported by the module.
|
* @return {*} An object containing the properties exported by the module.
|
||||||
*/
|
*/
|
||||||
return function require(path) {
|
return function require(path) {
|
||||||
|
let startTime = performance.now();
|
||||||
if (typeof path != "string" || !path.includes("://")) {
|
if (typeof path != "string" || !path.includes("://")) {
|
||||||
throw new TypeError(
|
throw new TypeError(
|
||||||
"The argument to require() must be a string uri, got " + path
|
"The argument to require() must be a string uri, got " + path
|
||||||
|
@ -146,6 +147,8 @@
|
||||||
// after all.
|
// after all.
|
||||||
modules.delete(path);
|
modules.delete(path);
|
||||||
throw ex;
|
throw ex;
|
||||||
|
} finally {
|
||||||
|
ChromeUtils.addProfilerMarker("require", startTime, path);
|
||||||
}
|
}
|
||||||
|
|
||||||
Object.freeze(module.exports);
|
Object.freeze(module.exports);
|
||||||
|
|
Загрузка…
Ссылка в новой задаче