Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions src/mono/browser/runtime/cwraps.ts
Original file line numberDiff line numberDiff line change
Expand Up@@ -41,7 +41,7 @@ const fn_signatures: SigLine[] = [
[true, "mono_wasm_parse_runtime_options", null, ["number", "number"]],
[true, "mono_wasm_strdup", "number", ["string"]],
[true, "mono_background_exec", null, []],
[true, "mono_wasm_ds_exec", null, []],
[true, "SystemJS_ExecuteDiagnosticServerCallback", null, []],
[true, "mono_wasm_execute_timer", null, []],
[true, "wasm_load_icu_data", "number", ["number"]],
[false, "mono_wasm_add_assembly", "number", ["string", "number", "number"]],
Expand DownExpand Up@@ -168,7 +168,7 @@ export interface t_Cwraps {
mono_wasm_strdup(value: string): number;
mono_wasm_parse_runtime_options(length: number, argv: VoidPtr): void;
mono_background_exec(): void;
mono_wasm_ds_exec(): void;
SystemJS_ExecuteDiagnosticServerCallback(): void;
mono_wasm_execute_timer(): void;
wasm_load_icu_data(offset: VoidPtr): number;
mono_wasm_add_assembly(name: string, data: VoidPtr, size: number): number;
Expand Down
16 changes: 8 additions & 8 deletions src/mono/browser/runtime/diagnostics/client-commands.ts
Original file line numberDiff line numberDiff line change
Expand Up@@ -66,7 +66,7 @@ export function commandGcHeapDump (options:DiagnosticCommandOptions) {
// GC_KEYWORD 0x0000001
],
logLevel: 5,
provider_name: "Microsoft-Windows-DotNETRuntime",
providerName: "Microsoft-Windows-DotNETRuntime",
arguments: null
},
...options.extraProviders || [],
Expand All@@ -89,7 +89,7 @@ export function commandCounters (options:DiagnosticCommandOptions) {
{
keywords: [0, Keywords.GCHandle],
logLevel: 4,
provider_name: "System.Diagnostics.Metrics",
providerName: "System.Diagnostics.Metrics",
arguments: `SessionId=SHARED;Metrics=System.Runtime;RefreshInterval=${options.intervalSeconds || 1};MaxTimeSeries=1000;MaxHistograms=10;ClientId=${uuidv4()};`,
},
...options.extraProviders || [],
Expand All@@ -109,7 +109,7 @@ export function commandSampleProfiler (options:DiagnosticCommandOptions) {
0x0000_0000,
],
logLevel: 4,
provider_name: "Microsoft-DotNETCore-SampleProfiler",
providerName: "Microsoft-DotNETCore-SampleProfiler",
arguments: null
},
...options.extraProviders || [],
Expand All@@ -130,7 +130,7 @@ function commandCollectTracing2 (payload2:PayloadV2) {
for (const provider of payload2.providers) {
message.push(...serializeUint64(provider.keywords));
message.push(...serializeUint32(provider.logLevel));
message.push(...serializeString(provider.provider_name));
message.push(...serializeString(provider.providerName));
message.push(...serializeString(provider.arguments));
}
return Uint8Array.from(message);
Expand DownExpand Up@@ -199,7 +199,7 @@ const enum Keywords {
Exception = 0x8000,
//
// Summary:
// Log events associated with the threadpoo, and other threading events.
// Log events associated with the threadpool, and other threading events.
Threading = 0x10000,
//
// Summary:
Expand DownExpand Up@@ -259,7 +259,7 @@ const enum Keywords {
// This suppresses NGEN events on V4.0 (where you have NGEN PDBs), but not on V2.0
// (which does not know about this bit and also does not have NGEN PDBS).
// eslint-disable-next-line @typescript-eslint/no-duplicate-enum-values
SupressNGen = 0x40000,
SuppressNGen = 0x40000,
//
// Summary:
// TODO document
Expand DownExpand Up@@ -427,7 +427,7 @@ function computeCollectTracing2PayloadByteLength (payload2:PayloadV2) {
for (const provider of payload2.providers) {
len += 8; // keywords
len += 4; // level
len += computeStringByteLength(provider.provider_name);
len += computeStringByteLength(provider.providerName);
len += computeStringByteLength(provider.arguments);
}
return len;
Expand All@@ -436,7 +436,7 @@ function computeCollectTracing2PayloadByteLength (payload2:PayloadV2) {
type ProviderV2 ={
keywords: [ number, Keywords ],
logLevel: number,
provider_name: string,
providerName: string,
arguments: string|null
}

Expand Down
2 changes: 1 addition & 1 deletion src/mono/browser/runtime/diagnostics/common.ts
Original file line numberDiff line numberDiff line change
Expand Up@@ -16,7 +16,7 @@ export function diagnosticServerEventLoop () {
if (loaderHelpers.is_runtime_running()) {
try {
runtimeHelpers.mono_background_exec();// give GC chance to run
runtimeHelpers.mono_wasm_ds_exec();
runtimeHelpers.SystemJS_ExecuteDiagnosticServerCallback();
scheduleDiagnosticServerEventLoop(100);
} catch (ex) {
loaderHelpers.mono_exit(1, ex);
Expand Down
4 changes: 2 additions & 2 deletions src/mono/browser/runtime/diagnostics/diagnostics-ws.ts
Original file line numberDiff line numberDiff line change
Expand Up@@ -27,7 +27,7 @@ class DiagnosticConnectionWS extends DiagnosticConnectionBase implements IDiagno
};
ws.addEventListener("open", () => {
for (const data of this.messagesToSend) {
ws.send(data);
ws.send(data as any);
}
this.messagesToSend = [];
diagnosticServerEventLoop();
Expand All@@ -49,7 +49,7 @@ class DiagnosticConnectionWS extends DiagnosticConnectionBase implements IDiagno
return super.store(message);
}

this.ws!.send(message);
this.ws!.send(message as any);

return message.length;
}
Expand Down
2 changes: 1 addition & 1 deletion src/mono/browser/runtime/dotnet.d.ts
Original file line numberDiff line numberDiff line change
Expand Up@@ -718,7 +718,7 @@ type DiagnosticsAPIType = {
type DiagnosticCommandProviderV2 = {
keywords: [number, number];
logLevel: number;
provider_name: string;
providerName: string;
arguments: string | null;
};
type DiagnosticCommandOptions = {
Expand Down
2 changes: 1 addition & 1 deletion src/mono/browser/runtime/exports.ts
Original file line numberDiff line numberDiff line change
Expand Up@@ -44,7 +44,7 @@ function initializeExports (globalObjects: GlobalObjects): RuntimeAPI {
utf8ToString,
SystemJS_GetCurrentProcessId,
mono_background_exec: () => tcwraps.mono_background_exec(),
mono_wasm_ds_exec: () => tcwraps.mono_wasm_ds_exec(),
SystemJS_ExecuteDiagnosticServerCallback: () => tcwraps.SystemJS_ExecuteDiagnosticServerCallback(),
};
if (WasmEnableThreads) {
rh.dumpThreads = mono_wasm_dump_threads;
Expand Down
2 changes: 1 addition & 1 deletion src/mono/browser/runtime/types/index.ts
Original file line numberDiff line numberDiff line change
Expand Up@@ -703,7 +703,7 @@ export type DiagnosticsAPIType = {
export type DiagnosticCommandProviderV2 = {
keywords: [ number, number ],
logLevel: number,
provider_name: string,
providerName: string,
arguments: string|null
}

Expand Down
2 changes: 1 addition & 1 deletion src/mono/browser/runtime/types/internal.ts
Original file line numberDiff line numberDiff line change
Expand Up@@ -240,7 +240,7 @@ export type RuntimeHelpers = {
mono_wasm_print_thread_dump: () => void,
utf8ToString: (ptr: CharPtr) => string,
mono_background_exec: () => void,
mono_wasm_ds_exec: () => void,
SystemJS_ExecuteDiagnosticServerCallback: () => void,
SystemJS_GetCurrentProcessId: () => number,
}

Expand Down
4 changes: 2 additions & 2 deletions src/mono/mono/eventpipe/ep-rt-mono.h
Original file line numberDiff line numberDiff line change
Expand Up@@ -1011,7 +1011,7 @@ ep_rt_queue_job (
// see if it's done or needs to be scheduled again
if (!done) {
// self schedule again
mono_schedule_ds_job (cb, params);
SystemJS_DiagnosticServerQueueJob (cb, params);
}

return true;
Expand DownExpand Up@@ -1045,7 +1045,7 @@ ep_rt_thread_sleep (uint64_t ns)
g_usleep ((gulong)(ns / 1000));
MONO_EXIT_GC_SAFE;
}
#endif
#endif // PERFTRACING_DISABLE_THREADS
}

static
Expand Down
2 changes: 1 addition & 1 deletion src/mono/mono/mini/mini-wasm.c
Original file line numberDiff line numberDiff line change
Expand Up@@ -453,7 +453,7 @@ G_BEGIN_DECLS
#ifdef DISABLE_THREADS
EMSCRIPTEN_KEEPALIVE void mono_wasm_execute_timer (void);
EMSCRIPTEN_KEEPALIVE void mono_background_exec (void);
EMSCRIPTEN_KEEPALIVE void mono_wasm_ds_exec (void);
EMSCRIPTEN_KEEPALIVE void SystemJS_ExecuteDiagnosticServerCallback (void);
extern void SystemJS_ScheduleTimerImpl (int shortestDueTimeMs);
#else
extern void SystemJS_ScheduleSynchronizationContext(MonoNativeThreadId target_thread);
Expand Down
10 changes: 5 additions & 5 deletions src/mono/mono/utils/mono-threads-wasm.c
Original file line numberDiff line numberDiff line change
Expand Up@@ -342,7 +342,7 @@ typedef struct {
} DsJobRegistration;

void
mono_schedule_ds_job (ds_job_cb cb, void* data)
SystemJS_DiagnosticServerQueueJob (ds_job_cb cb, void* data)
{
g_assert (cb);
DsJobRegistration* reg = g_new0 (DsJobRegistration, 1);
Expand DownExpand Up@@ -372,7 +372,7 @@ mono_background_exec (void)

G_EXTERN_C
EMSCRIPTEN_KEEPALIVE void
mono_wasm_ds_exec (void)
SystemJS_ExecuteDiagnosticServerCallback (void)
{
MONO_ENTER_GC_UNSAFE;
GSList *j1 = jobs_ds, *cur1;
Expand All@@ -381,13 +381,13 @@ mono_wasm_ds_exec (void)
for (cur1 = j1; cur1; cur1 = cur1->next) {
DsJobRegistration* reg = (DsJobRegistration*)cur1->data;
g_assert (reg->cb);
THREADS_DEBUG ("mono_wasm_ds_exec running job %p \n", (gpointer)cb);
THREADS_DEBUG ("SystemJS_ExecuteDiagnosticServerCallback running job %p \n", (gpointer)reg->cb);
gsize done = reg->cb (reg->data);
if (done){
THREADS_DEBUG ("mono_wasm_ds_exec done job %p \n", (gpointer)cb);
THREADS_DEBUG ("SystemJS_ExecuteDiagnosticServerCallback done job %p \n", (gpointer)reg->cb);
g_free (reg);
} else {
THREADS_DEBUG ("mono_wasm_ds_exec scheduling job %p again \n", (gpointer)cb);
THREADS_DEBUG ("SystemJS_ExecuteDiagnosticServerCallback scheduling job %p again \n", (gpointer)reg->cb);
jobs_ds = g_slist_prepend (jobs_ds, (gpointer)reg);
}
}
Expand Down
2 changes: 1 addition & 1 deletion src/mono/mono/utils/mono-threads-wasm.h
Original file line numberDiff line numberDiff line change
Expand Up@@ -89,7 +89,7 @@ mono_wasm_atomic_wait_i32 (volatile int32_t *addr, int32_t expected, int32_t tim

#else /* DISABLE_THREADS */
void mono_background_exec (void);
void mono_wasm_ds_exec (void);
void SystemJS_ExecuteDiagnosticServerCallback (void);
#endif /* DISABLE_THREADS */

void
Expand Down
2 changes: 1 addition & 1 deletion src/mono/mono/utils/mono-threads.h
Original file line numberDiff line numberDiff line change
Expand Up@@ -848,7 +848,7 @@ typedef void (*background_job_cb)(void);
typedef gsize (*ds_job_cb)(void* data);
#ifdef DISABLE_THREADS
void SystemJS_ScheduleBackgroundJob (background_job_cb cb);
void mono_schedule_ds_job (ds_job_cb cb, void* data);
void SystemJS_DiagnosticServerQueueJob (ds_job_cb cb, void* data);
#else
void SystemJS_ScheduleSynchronizationContext(MonoNativeThreadId target_thread);
#endif // DISABLE_THREADS
Expand Down
9 changes: 9 additions & 0 deletions src/native/libs/Common/JavaScript/CMakeLists.txt
Original file line numberDiff line numberDiff line change
Expand Up@@ -58,14 +58,23 @@ set(ROLLUP_TS_SOURCES
"${CLR_SRC_NATIVE_DIR}/libs/Common/JavaScript/types/public-api.ts"
"${CLR_SRC_NATIVE_DIR}/libs/Common/JavaScript/types/v8.d.ts"

"${CLR_SRC_NATIVE_DIR}/libs/System.Native.Browser/diagnostics/client-commands.ts"
"${CLR_SRC_NATIVE_DIR}/libs/System.Native.Browser/diagnostics/common.ts"
"${CLR_SRC_NATIVE_DIR}/libs/System.Native.Browser/diagnostics/console-proxy.ts"
"${CLR_SRC_NATIVE_DIR}/libs/System.Native.Browser/diagnostics/cross-module.ts"
"${CLR_SRC_NATIVE_DIR}/libs/System.Native.Browser/diagnostics/diagnostic-server.ts"
"${CLR_SRC_NATIVE_DIR}/libs/System.Native.Browser/diagnostics/diagnostic-server-js.ts"
"${CLR_SRC_NATIVE_DIR}/libs/System.Native.Browser/diagnostics/diagnostic-server-ws.ts"
"${CLR_SRC_NATIVE_DIR}/libs/System.Native.Browser/diagnostics/dotnet-counters.ts"
"${CLR_SRC_NATIVE_DIR}/libs/System.Native.Browser/diagnostics/dotnet-cpu-profiler.ts"
"${CLR_SRC_NATIVE_DIR}/libs/System.Native.Browser/diagnostics/dotnet-gcdump.ts"
"${CLR_SRC_NATIVE_DIR}/libs/System.Native.Browser/diagnostics/exit.ts"
"${CLR_SRC_NATIVE_DIR}/libs/System.Native.Browser/diagnostics/index.ts"
"${CLR_SRC_NATIVE_DIR}/libs/System.Native.Browser/diagnostics/per-module.ts"
"${CLR_SRC_NATIVE_DIR}/libs/System.Native.Browser/diagnostics/symbolicate.ts"
"${CLR_SRC_NATIVE_DIR}/libs/System.Native.Browser/diagnostics/types.ts"
"${CLR_SRC_NATIVE_DIR}/libs/System.Native.Browser/native/crypto.ts"
"${CLR_SRC_NATIVE_DIR}/libs/System.Native.Browser/native/diagnostics.ts"
"${CLR_SRC_NATIVE_DIR}/libs/System.Native.Browser/native/globalization-locale.ts"
"${CLR_SRC_NATIVE_DIR}/libs/System.Native.Browser/native/index.ts"
"${CLR_SRC_NATIVE_DIR}/libs/System.Native.Browser/native/main.ts"
Expand Down
6 changes: 6 additions & 0 deletions src/native/libs/Common/JavaScript/cross-module/index.ts
Original file line numberDiff line numberDiff line change
Expand Up@@ -177,6 +177,7 @@ export function dotnetUpdateInternalsSubscriber() {
const interopLocal: NativeBrowserExports = {
getWasmMemory: table[0],
getWasmTable: table[1],
SystemJS_ScheduleDiagnosticServer: table[2],
};
Object.assign(interop, interopLocal);
}
Expand All@@ -186,6 +187,11 @@ export function dotnetUpdateInternalsSubscriber() {
const interopLocal: DiagnosticsExports = {
symbolicateStackTrace: table[0],
installNativeSymbols: table[1],
ds_rt_websocket_create: table[2],
ds_rt_websocket_send: table[3],
ds_rt_websocket_poll: table[4],
ds_rt_websocket_recv: table[5],
ds_rt_websocket_close: table[6],
};
Object.assign(interop, interopLocal);
}
Expand Down
2 changes: 1 addition & 1 deletion src/native/libs/Common/JavaScript/loader/dotnet.d.ts
Original file line numberDiff line numberDiff line change
Expand Up@@ -688,7 +688,7 @@ type DiagnosticsAPIType = {
type DiagnosticCommandProviderV2 = {
keywords: [number, number];
logLevel: number;
provider_name: string;
providerName: string;
arguments: string | null;
};
type DiagnosticCommandOptions = {
Expand Down
19 changes: 9 additions & 10 deletions src/native/libs/Common/JavaScript/loader/exit.ts
Original file line numberDiff line numberDiff line change
Expand Up@@ -88,19 +88,18 @@ export function exit(exitCode: number, reason: any): void {
reason.message = message;
}

// force stack property to be generated before we shut down managed code, or create current stack if it doesn't exist
const stack = "" + (reason.stack || (new Error().stack));
try {
Object.defineProperty(reason, "stack", {
get: () => stack
});
} catch (e) {
// ignore
}

// don't report this error twice
const alreadySilent = !!reason.silent;
const alreadyExisted = isExited();

// force stack property to be generated before we shut down managed code, or create current stack if it doesn't exist
let stack;
if (typeof reason["getManageStack"] === "function" && isRuntimeRunning()) {
stack = reason.getManageStack();
} else {
stack = reason.stack || new Error().stack || "";
}

reason.silent = true;
let shouldQuitNow = true;

Expand Down
2 changes: 1 addition & 1 deletion src/native/libs/Common/JavaScript/loader/logging.ts
Original file line numberDiff line numberDiff line change
Expand Up@@ -54,7 +54,7 @@ export function normalizeException(reason: any) {
let stack: string | undefined;
if (reason) {
if (typeof reason === "object" && reason.status === undefined) {
if (reason.stack === undefined) {
if (reason.stack !== undefined) {
stack = reason.stack + "";
} else {
stack = new Error().stack + "";
Expand Down
3 changes: 3 additions & 0 deletions src/native/libs/Common/JavaScript/types/ems-ambient.ts
Original file line numberDiff line numberDiff line change
Expand Up@@ -28,6 +28,8 @@ export type EmsAmbientSymbolsType = EmscriptenModuleInternal & {
_SystemJS_ExecuteTimerCallback: () => void;
_SystemJS_ExecuteBackgroundJobCallback: () => void;
_SystemJS_ExecuteFinalizationCallback: () => void;
_SystemJS_ExecuteDiagnosticServerCallback: () => void;
_SystemJS_ScheduleDiagnosticServer: () => void;
_BrowserHost_CreateHostContract: () => VoidPtr;
_BrowserHost_InitializeDotnet: (propertiesCount: number, propertyKeys: CharPtrPtr, propertyValues: CharPtrPtr) => number;
_BrowserHost_ExecuteAssembly: (mainAssemblyNamePtr: number, argsLength: number, argsPtr: number) => number;
Expand All@@ -51,6 +53,7 @@ export type EmsAmbientSymbolsType = EmscriptenModuleInternal & {
lastScheduledTimerId?: number;
lastScheduledThreadPoolId?: number;
lastScheduledFinalizationId?: number;
lastScheduledDiagnosticServerId?: number;
cryptoWarnOnce?: boolean;
isAborting?: boolean;
isAsyncMain?: boolean;
Expand Down
14 changes: 14 additions & 0 deletions src/native/libs/Common/JavaScript/types/exchange.ts
Original file line numberDiff line numberDiff line change
Expand Up@@ -24,6 +24,8 @@ import type { cancelPromise } from "../../../System.Runtime.InteropServices.Java
import type { abortInteropTimers } from "../../../System.Runtime.InteropServices.JavaScript.Native/interop/scheduling";

import type { installNativeSymbols, symbolicateStackTrace } from "../../../System.Native.Browser/diagnostics/symbolicate";
import type { SystemJS_ScheduleDiagnosticServer } from "../../../System.Native.Browser/native";
import type { ds_rt_websocket_close, ds_rt_websocket_create, ds_rt_websocket_poll, ds_rt_websocket_recv, ds_rt_websocket_send } from "../../../System.Native.Browser/diagnostics/diagnostic-server";


type getWasmMemoryType = () => WebAssembly.Memory;
Expand DownExpand Up@@ -144,11 +146,13 @@ export type InteropJavaScriptExportsTable = [
export type NativeBrowserExports = {
getWasmMemory: getWasmMemoryType,
getWasmTable: getWasmTableType,
SystemJS_ScheduleDiagnosticServer: typeof SystemJS_ScheduleDiagnosticServer,
}

export type NativeBrowserExportsTable = [
getWasmMemoryType,
getWasmTableType,
typeof SystemJS_ScheduleDiagnosticServer,
]

export type BrowserUtilsExports = {
Expand DownExpand Up@@ -186,9 +190,19 @@ export type BrowserUtilsExportsTable = [
export type DiagnosticsExportsTable = [
typeof symbolicateStackTrace,
typeof installNativeSymbols,
typeof ds_rt_websocket_create,
typeof ds_rt_websocket_send,
typeof ds_rt_websocket_poll,
typeof ds_rt_websocket_recv,
typeof ds_rt_websocket_close,
]

export type DiagnosticsExports = {
symbolicateStackTrace: typeof symbolicateStackTrace,
installNativeSymbols: typeof installNativeSymbols,
ds_rt_websocket_create: typeof ds_rt_websocket_create,
ds_rt_websocket_send: typeof ds_rt_websocket_send,
ds_rt_websocket_poll: typeof ds_rt_websocket_poll,
ds_rt_websocket_recv: typeof ds_rt_websocket_recv,
ds_rt_websocket_close: typeof ds_rt_websocket_close,
}
2 changes: 1 addition & 1 deletion src/native/libs/Common/JavaScript/types/public-api.ts
Original file line numberDiff line numberDiff line change
Expand Up@@ -658,7 +658,7 @@ export type DiagnosticsAPIType = {
export type DiagnosticCommandProviderV2 = {
keywords: [number, number];
logLevel: number;
provider_name: string;
providerName: string;
arguments: string | null;
};
Comment thread
pavelsavara marked this conversation as resolved.

Expand Down
Loading
Loading
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions src/mono/browser/runtime/cwraps.ts
Original file line numberDiff line numberDiff line change
Expand Up@@ -41,7 +41,7 @@ const fn_signatures: SigLine[] = [
[true, "mono_wasm_parse_runtime_options", null, ["number", "number"]],
[true, "mono_wasm_strdup", "number", ["string"]],
[true, "mono_background_exec", null, []],
[true, "mono_wasm_ds_exec", null, []],
[true, "SystemJS_ExecuteDiagnosticServerCallback", null, []],
[true, "mono_wasm_execute_timer", null, []],
[true, "wasm_load_icu_data", "number", ["number"]],
[false, "mono_wasm_add_assembly", "number", ["string", "number", "number"]],
Expand DownExpand Up@@ -168,7 +168,7 @@ export interface t_Cwraps {
mono_wasm_strdup(value: string): number;
mono_wasm_parse_runtime_options(length: number, argv: VoidPtr): void;
mono_background_exec(): void;
mono_wasm_ds_exec(): void;
SystemJS_ExecuteDiagnosticServerCallback(): void;
mono_wasm_execute_timer(): void;
wasm_load_icu_data(offset: VoidPtr): number;
mono_wasm_add_assembly(name: string, data: VoidPtr, size: number): number;
Expand Down
16 changes: 8 additions & 8 deletions src/mono/browser/runtime/diagnostics/client-commands.ts
Original file line numberDiff line numberDiff line change
Expand Up@@ -66,7 +66,7 @@ export function commandGcHeapDump (options:DiagnosticCommandOptions) {
// GC_KEYWORD 0x0000001
],
logLevel: 5,
provider_name: "Microsoft-Windows-DotNETRuntime",
providerName: "Microsoft-Windows-DotNETRuntime",
arguments: null
},
...options.extraProviders || [],
Expand All@@ -89,7 +89,7 @@ export function commandCounters (options:DiagnosticCommandOptions) {
{
keywords: [0, Keywords.GCHandle],
logLevel: 4,
provider_name: "System.Diagnostics.Metrics",
providerName: "System.Diagnostics.Metrics",
arguments: `SessionId=SHARED;Metrics=System.Runtime;RefreshInterval=${options.intervalSeconds || 1};MaxTimeSeries=1000;MaxHistograms=10;ClientId=${uuidv4()};`,
},
...options.extraProviders || [],
Expand All@@ -109,7 +109,7 @@ export function commandSampleProfiler (options:DiagnosticCommandOptions) {
0x0000_0000,
],
logLevel: 4,
provider_name: "Microsoft-DotNETCore-SampleProfiler",
providerName: "Microsoft-DotNETCore-SampleProfiler",
arguments: null
},
...options.extraProviders || [],
Expand All@@ -130,7 +130,7 @@ function commandCollectTracing2 (payload2:PayloadV2) {
for (const provider of payload2.providers) {
message.push(...serializeUint64(provider.keywords));
message.push(...serializeUint32(provider.logLevel));
message.push(...serializeString(provider.provider_name));
message.push(...serializeString(provider.providerName));
message.push(...serializeString(provider.arguments));
}
return Uint8Array.from(message);
Expand DownExpand Up@@ -199,7 +199,7 @@ const enum Keywords {
Exception = 0x8000,
//
// Summary:
// Log events associated with the threadpoo, and other threading events.
// Log events associated with the threadpool, and other threading events.
Threading = 0x10000,
//
// Summary:
Expand DownExpand Up@@ -259,7 +259,7 @@ const enum Keywords {
// This suppresses NGEN events on V4.0 (where you have NGEN PDBs), but not on V2.0
// (which does not know about this bit and also does not have NGEN PDBS).
// eslint-disable-next-line @typescript-eslint/no-duplicate-enum-values
SupressNGen = 0x40000,
SuppressNGen = 0x40000,
//
// Summary:
// TODO document
Expand DownExpand Up@@ -427,7 +427,7 @@ function computeCollectTracing2PayloadByteLength (payload2:PayloadV2) {
for (const provider of payload2.providers) {
len += 8; // keywords
len += 4; // level
len += computeStringByteLength(provider.provider_name);
len += computeStringByteLength(provider.providerName);
len += computeStringByteLength(provider.arguments);
}
return len;
Expand All@@ -436,7 +436,7 @@ function computeCollectTracing2PayloadByteLength (payload2:PayloadV2) {
type ProviderV2 ={
keywords: [ number, Keywords ],
logLevel: number,
provider_name: string,
providerName: string,
arguments: string|null
}

Expand Down
2 changes: 1 addition & 1 deletion src/mono/browser/runtime/diagnostics/common.ts
Original file line numberDiff line numberDiff line change
Expand Up@@ -16,7 +16,7 @@ export function diagnosticServerEventLoop () {
if (loaderHelpers.is_runtime_running()) {
try {
runtimeHelpers.mono_background_exec();// give GC chance to run
runtimeHelpers.mono_wasm_ds_exec();
runtimeHelpers.SystemJS_ExecuteDiagnosticServerCallback();
scheduleDiagnosticServerEventLoop(100);
} catch (ex) {
loaderHelpers.mono_exit(1, ex);
Expand Down
4 changes: 2 additions & 2 deletions src/mono/browser/runtime/diagnostics/diagnostics-ws.ts
Original file line numberDiff line numberDiff line change
Expand Up@@ -27,7 +27,7 @@ class DiagnosticConnectionWS extends DiagnosticConnectionBase implements IDiagno
};
ws.addEventListener("open", () => {
for (const data of this.messagesToSend) {
ws.send(data);
ws.send(data as any);
}
this.messagesToSend = [];
diagnosticServerEventLoop();
Expand All@@ -49,7 +49,7 @@ class DiagnosticConnectionWS extends DiagnosticConnectionBase implements IDiagno
return super.store(message);
}

this.ws!.send(message);
this.ws!.send(message as any);

return message.length;
}
Expand Down
2 changes: 1 addition & 1 deletion src/mono/browser/runtime/dotnet.d.ts
Original file line numberDiff line numberDiff line change
Expand Up@@ -718,7 +718,7 @@ type DiagnosticsAPIType = {
type DiagnosticCommandProviderV2 = {
keywords: [number, number];
logLevel: number;
provider_name: string;
providerName: string;
arguments: string | null;
};
type DiagnosticCommandOptions = {
Expand Down
2 changes: 1 addition & 1 deletion src/mono/browser/runtime/exports.ts
Original file line numberDiff line numberDiff line change
Expand Up@@ -44,7 +44,7 @@ function initializeExports (globalObjects: GlobalObjects): RuntimeAPI {
utf8ToString,
SystemJS_GetCurrentProcessId,
mono_background_exec: () => tcwraps.mono_background_exec(),
mono_wasm_ds_exec: () => tcwraps.mono_wasm_ds_exec(),
SystemJS_ExecuteDiagnosticServerCallback: () => tcwraps.SystemJS_ExecuteDiagnosticServerCallback(),
};
if (WasmEnableThreads) {
rh.dumpThreads = mono_wasm_dump_threads;
Expand Down
2 changes: 1 addition & 1 deletion src/mono/browser/runtime/types/index.ts
Original file line numberDiff line numberDiff line change
Expand Up@@ -703,7 +703,7 @@ export type DiagnosticsAPIType = {
export type DiagnosticCommandProviderV2 = {
keywords: [ number, number ],
logLevel: number,
provider_name: string,
providerName: string,
arguments: string|null
}

Expand Down
2 changes: 1 addition & 1 deletion src/mono/browser/runtime/types/internal.ts
Original file line numberDiff line numberDiff line change
Expand Up@@ -240,7 +240,7 @@ export type RuntimeHelpers = {
mono_wasm_print_thread_dump: () => void,
utf8ToString: (ptr: CharPtr) => string,
mono_background_exec: () => void,
mono_wasm_ds_exec: () => void,
SystemJS_ExecuteDiagnosticServerCallback: () => void,
SystemJS_GetCurrentProcessId: () => number,
}

Expand Down
4 changes: 2 additions & 2 deletions src/mono/mono/eventpipe/ep-rt-mono.h
Original file line numberDiff line numberDiff line change
Expand Up@@ -1011,7 +1011,7 @@ ep_rt_queue_job (
// see if it's done or needs to be scheduled again
if (!done) {
// self schedule again
mono_schedule_ds_job (cb, params);
SystemJS_DiagnosticServerQueueJob (cb, params);
}

return true;
Expand DownExpand Up@@ -1045,7 +1045,7 @@ ep_rt_thread_sleep (uint64_t ns)
g_usleep ((gulong)(ns / 1000));
MONO_EXIT_GC_SAFE;
}
#endif
#endif // PERFTRACING_DISABLE_THREADS
}

static
Expand Down
2 changes: 1 addition & 1 deletion src/mono/mono/mini/mini-wasm.c
Original file line numberDiff line numberDiff line change
Expand Up@@ -453,7 +453,7 @@ G_BEGIN_DECLS
#ifdef DISABLE_THREADS
EMSCRIPTEN_KEEPALIVE void mono_wasm_execute_timer (void);
EMSCRIPTEN_KEEPALIVE void mono_background_exec (void);
EMSCRIPTEN_KEEPALIVE void mono_wasm_ds_exec (void);
EMSCRIPTEN_KEEPALIVE void SystemJS_ExecuteDiagnosticServerCallback (void);
extern void SystemJS_ScheduleTimerImpl (int shortestDueTimeMs);
#else
extern void SystemJS_ScheduleSynchronizationContext(MonoNativeThreadId target_thread);
Expand Down
10 changes: 5 additions & 5 deletions src/mono/mono/utils/mono-threads-wasm.c
Original file line numberDiff line numberDiff line change
Expand Up@@ -342,7 +342,7 @@ typedef struct {
} DsJobRegistration;

void
mono_schedule_ds_job (ds_job_cb cb, void* data)
SystemJS_DiagnosticServerQueueJob (ds_job_cb cb, void* data)
{
g_assert (cb);
DsJobRegistration* reg = g_new0 (DsJobRegistration, 1);
Expand DownExpand Up@@ -372,7 +372,7 @@ mono_background_exec (void)

G_EXTERN_C
EMSCRIPTEN_KEEPALIVE void
mono_wasm_ds_exec (void)
SystemJS_ExecuteDiagnosticServerCallback (void)
{
MONO_ENTER_GC_UNSAFE;
GSList *j1 = jobs_ds, *cur1;
Expand All@@ -381,13 +381,13 @@ mono_wasm_ds_exec (void)
for (cur1 = j1; cur1; cur1 = cur1->next) {
DsJobRegistration* reg = (DsJobRegistration*)cur1->data;
g_assert (reg->cb);
THREADS_DEBUG ("mono_wasm_ds_exec running job %p \n", (gpointer)cb);
THREADS_DEBUG ("SystemJS_ExecuteDiagnosticServerCallback running job %p \n", (gpointer)reg->cb);
gsize done = reg->cb (reg->data);
if (done){
THREADS_DEBUG ("mono_wasm_ds_exec done job %p \n", (gpointer)cb);
THREADS_DEBUG ("SystemJS_ExecuteDiagnosticServerCallback done job %p \n", (gpointer)reg->cb);
g_free (reg);
} else {
THREADS_DEBUG ("mono_wasm_ds_exec scheduling job %p again \n", (gpointer)cb);
THREADS_DEBUG ("SystemJS_ExecuteDiagnosticServerCallback scheduling job %p again \n", (gpointer)reg->cb);
jobs_ds = g_slist_prepend (jobs_ds, (gpointer)reg);
}
}
Expand Down
2 changes: 1 addition & 1 deletion src/mono/mono/utils/mono-threads-wasm.h
Original file line numberDiff line numberDiff line change
Expand Up@@ -89,7 +89,7 @@ mono_wasm_atomic_wait_i32 (volatile int32_t *addr, int32_t expected, int32_t tim

#else /* DISABLE_THREADS */
void mono_background_exec (void);
void mono_wasm_ds_exec (void);
void SystemJS_ExecuteDiagnosticServerCallback (void);
#endif /* DISABLE_THREADS */

void
Expand Down
2 changes: 1 addition & 1 deletion src/mono/mono/utils/mono-threads.h
Original file line numberDiff line numberDiff line change
Expand Up@@ -848,7 +848,7 @@ typedef void (*background_job_cb)(void);
typedef gsize (*ds_job_cb)(void* data);
#ifdef DISABLE_THREADS
void SystemJS_ScheduleBackgroundJob (background_job_cb cb);
void mono_schedule_ds_job (ds_job_cb cb, void* data);
void SystemJS_DiagnosticServerQueueJob (ds_job_cb cb, void* data);
#else
void SystemJS_ScheduleSynchronizationContext(MonoNativeThreadId target_thread);
#endif // DISABLE_THREADS
Expand Down
9 changes: 9 additions & 0 deletions src/native/libs/Common/JavaScript/CMakeLists.txt
Original file line numberDiff line numberDiff line change
Expand Up@@ -58,14 +58,23 @@ set(ROLLUP_TS_SOURCES
"${CLR_SRC_NATIVE_DIR}/libs/Common/JavaScript/types/public-api.ts"
"${CLR_SRC_NATIVE_DIR}/libs/Common/JavaScript/types/v8.d.ts"

"${CLR_SRC_NATIVE_DIR}/libs/System.Native.Browser/diagnostics/client-commands.ts"
"${CLR_SRC_NATIVE_DIR}/libs/System.Native.Browser/diagnostics/common.ts"
"${CLR_SRC_NATIVE_DIR}/libs/System.Native.Browser/diagnostics/console-proxy.ts"
"${CLR_SRC_NATIVE_DIR}/libs/System.Native.Browser/diagnostics/cross-module.ts"
"${CLR_SRC_NATIVE_DIR}/libs/System.Native.Browser/diagnostics/diagnostic-server.ts"
"${CLR_SRC_NATIVE_DIR}/libs/System.Native.Browser/diagnostics/diagnostic-server-js.ts"
"${CLR_SRC_NATIVE_DIR}/libs/System.Native.Browser/diagnostics/diagnostic-server-ws.ts"
"${CLR_SRC_NATIVE_DIR}/libs/System.Native.Browser/diagnostics/dotnet-counters.ts"
"${CLR_SRC_NATIVE_DIR}/libs/System.Native.Browser/diagnostics/dotnet-cpu-profiler.ts"
"${CLR_SRC_NATIVE_DIR}/libs/System.Native.Browser/diagnostics/dotnet-gcdump.ts"
"${CLR_SRC_NATIVE_DIR}/libs/System.Native.Browser/diagnostics/exit.ts"
"${CLR_SRC_NATIVE_DIR}/libs/System.Native.Browser/diagnostics/index.ts"
"${CLR_SRC_NATIVE_DIR}/libs/System.Native.Browser/diagnostics/per-module.ts"
"${CLR_SRC_NATIVE_DIR}/libs/System.Native.Browser/diagnostics/symbolicate.ts"
"${CLR_SRC_NATIVE_DIR}/libs/System.Native.Browser/diagnostics/types.ts"
"${CLR_SRC_NATIVE_DIR}/libs/System.Native.Browser/native/crypto.ts"
"${CLR_SRC_NATIVE_DIR}/libs/System.Native.Browser/native/diagnostics.ts"
"${CLR_SRC_NATIVE_DIR}/libs/System.Native.Browser/native/globalization-locale.ts"
"${CLR_SRC_NATIVE_DIR}/libs/System.Native.Browser/native/index.ts"
"${CLR_SRC_NATIVE_DIR}/libs/System.Native.Browser/native/main.ts"
Expand Down
6 changes: 6 additions & 0 deletions src/native/libs/Common/JavaScript/cross-module/index.ts
Original file line numberDiff line numberDiff line change
Expand Up@@ -177,6 +177,7 @@ export function dotnetUpdateInternalsSubscriber() {
const interopLocal: NativeBrowserExports = {
getWasmMemory: table[0],
getWasmTable: table[1],
SystemJS_ScheduleDiagnosticServer: table[2],
};
Object.assign(interop, interopLocal);
}
Expand All@@ -186,6 +187,11 @@ export function dotnetUpdateInternalsSubscriber() {
const interopLocal: DiagnosticsExports = {
symbolicateStackTrace: table[0],
installNativeSymbols: table[1],
ds_rt_websocket_create: table[2],
ds_rt_websocket_send: table[3],
ds_rt_websocket_poll: table[4],
ds_rt_websocket_recv: table[5],
ds_rt_websocket_close: table[6],
};
Object.assign(interop, interopLocal);
}
Expand Down
2 changes: 1 addition & 1 deletion src/native/libs/Common/JavaScript/loader/dotnet.d.ts
Original file line numberDiff line numberDiff line change
Expand Up@@ -688,7 +688,7 @@ type DiagnosticsAPIType = {
type DiagnosticCommandProviderV2 = {
keywords: [number, number];
logLevel: number;
provider_name: string;
providerName: string;
arguments: string | null;
};
type DiagnosticCommandOptions = {
Expand Down
19 changes: 9 additions & 10 deletions src/native/libs/Common/JavaScript/loader/exit.ts
Original file line numberDiff line numberDiff line change
Expand Up@@ -88,19 +88,18 @@ export function exit(exitCode: number, reason: any): void {
reason.message = message;
}

// force stack property to be generated before we shut down managed code, or create current stack if it doesn't exist
const stack = "" + (reason.stack || (new Error().stack));
try {
Object.defineProperty(reason, "stack", {
get: () => stack
});
} catch (e) {
// ignore
}

// don't report this error twice
const alreadySilent = !!reason.silent;
const alreadyExisted = isExited();

// force stack property to be generated before we shut down managed code, or create current stack if it doesn't exist
let stack;
if (typeof reason["getManageStack"] === "function" && isRuntimeRunning()) {
stack = reason.getManageStack();
} else {
stack = reason.stack || new Error().stack || "";
}

reason.silent = true;
let shouldQuitNow = true;

Expand Down
2 changes: 1 addition & 1 deletion src/native/libs/Common/JavaScript/loader/logging.ts
Original file line numberDiff line numberDiff line change
Expand Up@@ -54,7 +54,7 @@ export function normalizeException(reason: any) {
let stack: string | undefined;
if (reason) {
if (typeof reason === "object" && reason.status === undefined) {
if (reason.stack === undefined) {
if (reason.stack !== undefined) {
stack = reason.stack + "";
} else {
stack = new Error().stack + "";
Expand Down
3 changes: 3 additions & 0 deletions src/native/libs/Common/JavaScript/types/ems-ambient.ts
Original file line numberDiff line numberDiff line change
Expand Up@@ -28,6 +28,8 @@ export type EmsAmbientSymbolsType = EmscriptenModuleInternal & {
_SystemJS_ExecuteTimerCallback: () => void;
_SystemJS_ExecuteBackgroundJobCallback: () => void;
_SystemJS_ExecuteFinalizationCallback: () => void;
_SystemJS_ExecuteDiagnosticServerCallback: () => void;
_SystemJS_ScheduleDiagnosticServer: () => void;
_BrowserHost_CreateHostContract: () => VoidPtr;
_BrowserHost_InitializeDotnet: (propertiesCount: number, propertyKeys: CharPtrPtr, propertyValues: CharPtrPtr) => number;
_BrowserHost_ExecuteAssembly: (mainAssemblyNamePtr: number, argsLength: number, argsPtr: number) => number;
Expand All@@ -51,6 +53,7 @@ export type EmsAmbientSymbolsType = EmscriptenModuleInternal & {
lastScheduledTimerId?: number;
lastScheduledThreadPoolId?: number;
lastScheduledFinalizationId?: number;
lastScheduledDiagnosticServerId?: number;
cryptoWarnOnce?: boolean;
isAborting?: boolean;
isAsyncMain?: boolean;
Expand Down
14 changes: 14 additions & 0 deletions src/native/libs/Common/JavaScript/types/exchange.ts
Original file line numberDiff line numberDiff line change
Expand Up@@ -24,6 +24,8 @@ import type { cancelPromise } from "../../../System.Runtime.InteropServices.Java
import type { abortInteropTimers } from "../../../System.Runtime.InteropServices.JavaScript.Native/interop/scheduling";

import type { installNativeSymbols, symbolicateStackTrace } from "../../../System.Native.Browser/diagnostics/symbolicate";
import type { SystemJS_ScheduleDiagnosticServer } from "../../../System.Native.Browser/native";
import type { ds_rt_websocket_close, ds_rt_websocket_create, ds_rt_websocket_poll, ds_rt_websocket_recv, ds_rt_websocket_send } from "../../../System.Native.Browser/diagnostics/diagnostic-server";


type getWasmMemoryType = () => WebAssembly.Memory;
Expand DownExpand Up@@ -144,11 +146,13 @@ export type InteropJavaScriptExportsTable = [
export type NativeBrowserExports = {
getWasmMemory: getWasmMemoryType,
getWasmTable: getWasmTableType,
SystemJS_ScheduleDiagnosticServer: typeof SystemJS_ScheduleDiagnosticServer,
}

export type NativeBrowserExportsTable = [
getWasmMemoryType,
getWasmTableType,
typeof SystemJS_ScheduleDiagnosticServer,
]

export type BrowserUtilsExports = {
Expand DownExpand Up@@ -186,9 +190,19 @@ export type BrowserUtilsExportsTable = [
export type DiagnosticsExportsTable = [
typeof symbolicateStackTrace,
typeof installNativeSymbols,
typeof ds_rt_websocket_create,
typeof ds_rt_websocket_send,
typeof ds_rt_websocket_poll,
typeof ds_rt_websocket_recv,
typeof ds_rt_websocket_close,
]

export type DiagnosticsExports = {
symbolicateStackTrace: typeof symbolicateStackTrace,
installNativeSymbols: typeof installNativeSymbols,
ds_rt_websocket_create: typeof ds_rt_websocket_create,
ds_rt_websocket_send: typeof ds_rt_websocket_send,
ds_rt_websocket_poll: typeof ds_rt_websocket_poll,
ds_rt_websocket_recv: typeof ds_rt_websocket_recv,
ds_rt_websocket_close: typeof ds_rt_websocket_close,
}
2 changes: 1 addition & 1 deletion src/native/libs/Common/JavaScript/types/public-api.ts
Original file line numberDiff line numberDiff line change
Expand Up@@ -658,7 +658,7 @@ export type DiagnosticsAPIType = {
export type DiagnosticCommandProviderV2 = {
keywords: [number, number];
logLevel: number;
provider_name: string;
providerName: string;
arguments: string | null;
};
Comment thread
pavelsavara marked this conversation as resolved.

Expand Down
Loading
Loading
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions src/mono/browser/runtime/cwraps.ts
Original file line numberDiff line numberDiff line change
Expand Up@@ -41,7 +41,7 @@ const fn_signatures: SigLine[] = [
[true, "mono_wasm_parse_runtime_options", null, ["number", "number"]],
[true, "mono_wasm_strdup", "number", ["string"]],
[true, "mono_background_exec", null, []],
[true, "mono_wasm_ds_exec", null, []],
[true, "SystemJS_ExecuteDiagnosticServerCallback", null, []],
[true, "mono_wasm_execute_timer", null, []],
[true, "wasm_load_icu_data", "number", ["number"]],
[false, "mono_wasm_add_assembly", "number", ["string", "number", "number"]],
Expand DownExpand Up@@ -168,7 +168,7 @@ export interface t_Cwraps {
mono_wasm_strdup(value: string): number;
mono_wasm_parse_runtime_options(length: number, argv: VoidPtr): void;
mono_background_exec(): void;
mono_wasm_ds_exec(): void;
SystemJS_ExecuteDiagnosticServerCallback(): void;
mono_wasm_execute_timer(): void;
wasm_load_icu_data(offset: VoidPtr): number;
mono_wasm_add_assembly(name: string, data: VoidPtr, size: number): number;
Expand Down
16 changes: 8 additions & 8 deletions src/mono/browser/runtime/diagnostics/client-commands.ts
Original file line numberDiff line numberDiff line change
Expand Up@@ -66,7 +66,7 @@ export function commandGcHeapDump (options:DiagnosticCommandOptions) {
// GC_KEYWORD 0x0000001
],
logLevel: 5,
provider_name: "Microsoft-Windows-DotNETRuntime",
providerName: "Microsoft-Windows-DotNETRuntime",
arguments: null
},
...options.extraProviders || [],
Expand All@@ -89,7 +89,7 @@ export function commandCounters (options:DiagnosticCommandOptions) {
{
keywords: [0, Keywords.GCHandle],
logLevel: 4,
provider_name: "System.Diagnostics.Metrics",
providerName: "System.Diagnostics.Metrics",
arguments: `SessionId=SHARED;Metrics=System.Runtime;RefreshInterval=${options.intervalSeconds || 1};MaxTimeSeries=1000;MaxHistograms=10;ClientId=${uuidv4()};`,
},
...options.extraProviders || [],
Expand All@@ -109,7 +109,7 @@ export function commandSampleProfiler (options:DiagnosticCommandOptions) {
0x0000_0000,
],
logLevel: 4,
provider_name: "Microsoft-DotNETCore-SampleProfiler",
providerName: "Microsoft-DotNETCore-SampleProfiler",
arguments: null
},
...options.extraProviders || [],
Expand All@@ -130,7 +130,7 @@ function commandCollectTracing2 (payload2:PayloadV2) {
for (const provider of payload2.providers) {
message.push(...serializeUint64(provider.keywords));
message.push(...serializeUint32(provider.logLevel));
message.push(...serializeString(provider.provider_name));
message.push(...serializeString(provider.providerName));
message.push(...serializeString(provider.arguments));
}
return Uint8Array.from(message);
Expand DownExpand Up@@ -199,7 +199,7 @@ const enum Keywords {
Exception = 0x8000,
//
// Summary:
// Log events associated with the threadpoo, and other threading events.
// Log events associated with the threadpool, and other threading events.
Threading = 0x10000,
//
// Summary:
Expand DownExpand Up@@ -259,7 +259,7 @@ const enum Keywords {
// This suppresses NGEN events on V4.0 (where you have NGEN PDBs), but not on V2.0
// (which does not know about this bit and also does not have NGEN PDBS).
// eslint-disable-next-line @typescript-eslint/no-duplicate-enum-values
SupressNGen = 0x40000,
SuppressNGen = 0x40000,
//
// Summary:
// TODO document
Expand DownExpand Up@@ -427,7 +427,7 @@ function computeCollectTracing2PayloadByteLength (payload2:PayloadV2) {
for (const provider of payload2.providers) {
len += 8; // keywords
len += 4; // level
len += computeStringByteLength(provider.provider_name);
len += computeStringByteLength(provider.providerName);
len += computeStringByteLength(provider.arguments);
}
return len;
Expand All@@ -436,7 +436,7 @@ function computeCollectTracing2PayloadByteLength (payload2:PayloadV2) {
type ProviderV2 ={
keywords: [ number, Keywords ],
logLevel: number,
provider_name: string,
providerName: string,
arguments: string|null
}

Expand Down
2 changes: 1 addition & 1 deletion src/mono/browser/runtime/diagnostics/common.ts
Original file line numberDiff line numberDiff line change
Expand Up@@ -16,7 +16,7 @@ export function diagnosticServerEventLoop () {
if (loaderHelpers.is_runtime_running()) {
try {
runtimeHelpers.mono_background_exec();// give GC chance to run
runtimeHelpers.mono_wasm_ds_exec();
runtimeHelpers.SystemJS_ExecuteDiagnosticServerCallback();
scheduleDiagnosticServerEventLoop(100);
} catch (ex) {
loaderHelpers.mono_exit(1, ex);
Expand Down
4 changes: 2 additions & 2 deletions src/mono/browser/runtime/diagnostics/diagnostics-ws.ts
Original file line numberDiff line numberDiff line change
Expand Up@@ -27,7 +27,7 @@ class DiagnosticConnectionWS extends DiagnosticConnectionBase implements IDiagno
};
ws.addEventListener("open", () => {
for (const data of this.messagesToSend) {
ws.send(data);
ws.send(data as any);
}
this.messagesToSend = [];
diagnosticServerEventLoop();
Expand All@@ -49,7 +49,7 @@ class DiagnosticConnectionWS extends DiagnosticConnectionBase implements IDiagno
return super.store(message);
}

this.ws!.send(message);
this.ws!.send(message as any);

return message.length;
}
Expand Down
2 changes: 1 addition & 1 deletion src/mono/browser/runtime/dotnet.d.ts
Original file line numberDiff line numberDiff line change
Expand Up@@ -718,7 +718,7 @@ type DiagnosticsAPIType = {
type DiagnosticCommandProviderV2 = {
keywords: [number, number];
logLevel: number;
provider_name: string;
providerName: string;
arguments: string | null;
};
type DiagnosticCommandOptions = {
Expand Down
2 changes: 1 addition & 1 deletion src/mono/browser/runtime/exports.ts
Original file line numberDiff line numberDiff line change
Expand Up@@ -44,7 +44,7 @@ function initializeExports (globalObjects: GlobalObjects): RuntimeAPI {
utf8ToString,
SystemJS_GetCurrentProcessId,
mono_background_exec: () => tcwraps.mono_background_exec(),
mono_wasm_ds_exec: () => tcwraps.mono_wasm_ds_exec(),
SystemJS_ExecuteDiagnosticServerCallback: () => tcwraps.SystemJS_ExecuteDiagnosticServerCallback(),
};
if (WasmEnableThreads) {
rh.dumpThreads = mono_wasm_dump_threads;
Expand Down
2 changes: 1 addition & 1 deletion src/mono/browser/runtime/types/index.ts
Original file line numberDiff line numberDiff line change
Expand Up@@ -703,7 +703,7 @@ export type DiagnosticsAPIType = {
export type DiagnosticCommandProviderV2 = {
keywords: [ number, number ],
logLevel: number,
provider_name: string,
providerName: string,
arguments: string|null
}

Expand Down
2 changes: 1 addition & 1 deletion src/mono/browser/runtime/types/internal.ts
Original file line numberDiff line numberDiff line change
Expand Up@@ -240,7 +240,7 @@ export type RuntimeHelpers = {
mono_wasm_print_thread_dump: () => void,
utf8ToString: (ptr: CharPtr) => string,
mono_background_exec: () => void,
mono_wasm_ds_exec: () => void,
SystemJS_ExecuteDiagnosticServerCallback: () => void,
SystemJS_GetCurrentProcessId: () => number,
}

Expand Down
4 changes: 2 additions & 2 deletions src/mono/mono/eventpipe/ep-rt-mono.h
Original file line numberDiff line numberDiff line change
Expand Up@@ -1011,7 +1011,7 @@ ep_rt_queue_job (
// see if it's done or needs to be scheduled again
if (!done) {
// self schedule again
mono_schedule_ds_job (cb, params);
SystemJS_DiagnosticServerQueueJob (cb, params);
}

return true;
Expand DownExpand Up@@ -1045,7 +1045,7 @@ ep_rt_thread_sleep (uint64_t ns)
g_usleep ((gulong)(ns / 1000));
MONO_EXIT_GC_SAFE;
}
#endif
#endif // PERFTRACING_DISABLE_THREADS
}

static
Expand Down
2 changes: 1 addition & 1 deletion src/mono/mono/mini/mini-wasm.c
Original file line numberDiff line numberDiff line change
Expand Up@@ -453,7 +453,7 @@ G_BEGIN_DECLS
#ifdef DISABLE_THREADS
EMSCRIPTEN_KEEPALIVE void mono_wasm_execute_timer (void);
EMSCRIPTEN_KEEPALIVE void mono_background_exec (void);
EMSCRIPTEN_KEEPALIVE void mono_wasm_ds_exec (void);
EMSCRIPTEN_KEEPALIVE void SystemJS_ExecuteDiagnosticServerCallback (void);
extern void SystemJS_ScheduleTimerImpl (int shortestDueTimeMs);
#else
extern void SystemJS_ScheduleSynchronizationContext(MonoNativeThreadId target_thread);
Expand Down
10 changes: 5 additions & 5 deletions src/mono/mono/utils/mono-threads-wasm.c
Original file line numberDiff line numberDiff line change
Expand Up@@ -342,7 +342,7 @@ typedef struct {
} DsJobRegistration;

void
mono_schedule_ds_job (ds_job_cb cb, void* data)
SystemJS_DiagnosticServerQueueJob (ds_job_cb cb, void* data)
{
g_assert (cb);
DsJobRegistration* reg = g_new0 (DsJobRegistration, 1);
Expand DownExpand Up@@ -372,7 +372,7 @@ mono_background_exec (void)

G_EXTERN_C
EMSCRIPTEN_KEEPALIVE void
mono_wasm_ds_exec (void)
SystemJS_ExecuteDiagnosticServerCallback (void)
{
MONO_ENTER_GC_UNSAFE;
GSList *j1 = jobs_ds, *cur1;
Expand All@@ -381,13 +381,13 @@ mono_wasm_ds_exec (void)
for (cur1 = j1; cur1; cur1 = cur1->next) {
DsJobRegistration* reg = (DsJobRegistration*)cur1->data;
g_assert (reg->cb);
THREADS_DEBUG ("mono_wasm_ds_exec running job %p \n", (gpointer)cb);
THREADS_DEBUG ("SystemJS_ExecuteDiagnosticServerCallback running job %p \n", (gpointer)reg->cb);
gsize done = reg->cb (reg->data);
if (done){
THREADS_DEBUG ("mono_wasm_ds_exec done job %p \n", (gpointer)cb);
THREADS_DEBUG ("SystemJS_ExecuteDiagnosticServerCallback done job %p \n", (gpointer)reg->cb);
g_free (reg);
} else {
THREADS_DEBUG ("mono_wasm_ds_exec scheduling job %p again \n", (gpointer)cb);
THREADS_DEBUG ("SystemJS_ExecuteDiagnosticServerCallback scheduling job %p again \n", (gpointer)reg->cb);
jobs_ds = g_slist_prepend (jobs_ds, (gpointer)reg);
}
}
Expand Down
2 changes: 1 addition & 1 deletion src/mono/mono/utils/mono-threads-wasm.h
Original file line numberDiff line numberDiff line change
Expand Up@@ -89,7 +89,7 @@ mono_wasm_atomic_wait_i32 (volatile int32_t *addr, int32_t expected, int32_t tim

#else /* DISABLE_THREADS */
void mono_background_exec (void);
void mono_wasm_ds_exec (void);
void SystemJS_ExecuteDiagnosticServerCallback (void);
#endif /* DISABLE_THREADS */

void
Expand Down
2 changes: 1 addition & 1 deletion src/mono/mono/utils/mono-threads.h
Original file line numberDiff line numberDiff line change
Expand Up@@ -848,7 +848,7 @@ typedef void (*background_job_cb)(void);
typedef gsize (*ds_job_cb)(void* data);
#ifdef DISABLE_THREADS
void SystemJS_ScheduleBackgroundJob (background_job_cb cb);
void mono_schedule_ds_job (ds_job_cb cb, void* data);
void SystemJS_DiagnosticServerQueueJob (ds_job_cb cb, void* data);
#else
void SystemJS_ScheduleSynchronizationContext(MonoNativeThreadId target_thread);
#endif // DISABLE_THREADS
Expand Down
9 changes: 9 additions & 0 deletions src/native/libs/Common/JavaScript/CMakeLists.txt
Original file line numberDiff line numberDiff line change
Expand Up@@ -58,14 +58,23 @@ set(ROLLUP_TS_SOURCES
"${CLR_SRC_NATIVE_DIR}/libs/Common/JavaScript/types/public-api.ts"
"${CLR_SRC_NATIVE_DIR}/libs/Common/JavaScript/types/v8.d.ts"

"${CLR_SRC_NATIVE_DIR}/libs/System.Native.Browser/diagnostics/client-commands.ts"
"${CLR_SRC_NATIVE_DIR}/libs/System.Native.Browser/diagnostics/common.ts"
"${CLR_SRC_NATIVE_DIR}/libs/System.Native.Browser/diagnostics/console-proxy.ts"
"${CLR_SRC_NATIVE_DIR}/libs/System.Native.Browser/diagnostics/cross-module.ts"
"${CLR_SRC_NATIVE_DIR}/libs/System.Native.Browser/diagnostics/diagnostic-server.ts"
"${CLR_SRC_NATIVE_DIR}/libs/System.Native.Browser/diagnostics/diagnostic-server-js.ts"
"${CLR_SRC_NATIVE_DIR}/libs/System.Native.Browser/diagnostics/diagnostic-server-ws.ts"
"${CLR_SRC_NATIVE_DIR}/libs/System.Native.Browser/diagnostics/dotnet-counters.ts"
"${CLR_SRC_NATIVE_DIR}/libs/System.Native.Browser/diagnostics/dotnet-cpu-profiler.ts"
"${CLR_SRC_NATIVE_DIR}/libs/System.Native.Browser/diagnostics/dotnet-gcdump.ts"
"${CLR_SRC_NATIVE_DIR}/libs/System.Native.Browser/diagnostics/exit.ts"
"${CLR_SRC_NATIVE_DIR}/libs/System.Native.Browser/diagnostics/index.ts"
"${CLR_SRC_NATIVE_DIR}/libs/System.Native.Browser/diagnostics/per-module.ts"
"${CLR_SRC_NATIVE_DIR}/libs/System.Native.Browser/diagnostics/symbolicate.ts"
"${CLR_SRC_NATIVE_DIR}/libs/System.Native.Browser/diagnostics/types.ts"
"${CLR_SRC_NATIVE_DIR}/libs/System.Native.Browser/native/crypto.ts"
"${CLR_SRC_NATIVE_DIR}/libs/System.Native.Browser/native/diagnostics.ts"
"${CLR_SRC_NATIVE_DIR}/libs/System.Native.Browser/native/globalization-locale.ts"
"${CLR_SRC_NATIVE_DIR}/libs/System.Native.Browser/native/index.ts"
"${CLR_SRC_NATIVE_DIR}/libs/System.Native.Browser/native/main.ts"
Expand Down
6 changes: 6 additions & 0 deletions src/native/libs/Common/JavaScript/cross-module/index.ts
Original file line numberDiff line numberDiff line change
Expand Up@@ -177,6 +177,7 @@ export function dotnetUpdateInternalsSubscriber() {
const interopLocal: NativeBrowserExports = {
getWasmMemory: table[0],
getWasmTable: table[1],
SystemJS_ScheduleDiagnosticServer: table[2],
};
Object.assign(interop, interopLocal);
}
Expand All@@ -186,6 +187,11 @@ export function dotnetUpdateInternalsSubscriber() {
const interopLocal: DiagnosticsExports = {
symbolicateStackTrace: table[0],
installNativeSymbols: table[1],
ds_rt_websocket_create: table[2],
ds_rt_websocket_send: table[3],
ds_rt_websocket_poll: table[4],
ds_rt_websocket_recv: table[5],
ds_rt_websocket_close: table[6],
};
Object.assign(interop, interopLocal);
}
Expand Down
2 changes: 1 addition & 1 deletion src/native/libs/Common/JavaScript/loader/dotnet.d.ts
Original file line numberDiff line numberDiff line change
Expand Up@@ -688,7 +688,7 @@ type DiagnosticsAPIType = {
type DiagnosticCommandProviderV2 = {
keywords: [number, number];
logLevel: number;
provider_name: string;
providerName: string;
arguments: string | null;
};
type DiagnosticCommandOptions = {
Expand Down
19 changes: 9 additions & 10 deletions src/native/libs/Common/JavaScript/loader/exit.ts
Original file line numberDiff line numberDiff line change
Expand Up@@ -88,19 +88,18 @@ export function exit(exitCode: number, reason: any): void {
reason.message = message;
}

// force stack property to be generated before we shut down managed code, or create current stack if it doesn't exist
const stack = "" + (reason.stack || (new Error().stack));
try {
Object.defineProperty(reason, "stack", {
get: () => stack
});
} catch (e) {
// ignore
}

// don't report this error twice
const alreadySilent = !!reason.silent;
const alreadyExisted = isExited();

// force stack property to be generated before we shut down managed code, or create current stack if it doesn't exist
let stack;
if (typeof reason["getManageStack"] === "function" && isRuntimeRunning()) {
stack = reason.getManageStack();
} else {
stack = reason.stack || new Error().stack || "";
}

reason.silent = true;
let shouldQuitNow = true;

Expand Down
2 changes: 1 addition & 1 deletion src/native/libs/Common/JavaScript/loader/logging.ts
Original file line numberDiff line numberDiff line change
Expand Up@@ -54,7 +54,7 @@ export function normalizeException(reason: any) {
let stack: string | undefined;
if (reason) {
if (typeof reason === "object" && reason.status === undefined) {
if (reason.stack === undefined) {
if (reason.stack !== undefined) {
stack = reason.stack + "";
} else {
stack = new Error().stack + "";
Expand Down
3 changes: 3 additions & 0 deletions src/native/libs/Common/JavaScript/types/ems-ambient.ts
Original file line numberDiff line numberDiff line change
Expand Up@@ -28,6 +28,8 @@ export type EmsAmbientSymbolsType = EmscriptenModuleInternal & {
_SystemJS_ExecuteTimerCallback: () => void;
_SystemJS_ExecuteBackgroundJobCallback: () => void;
_SystemJS_ExecuteFinalizationCallback: () => void;
_SystemJS_ExecuteDiagnosticServerCallback: () => void;
_SystemJS_ScheduleDiagnosticServer: () => void;
_BrowserHost_CreateHostContract: () => VoidPtr;
_BrowserHost_InitializeDotnet: (propertiesCount: number, propertyKeys: CharPtrPtr, propertyValues: CharPtrPtr) => number;
_BrowserHost_ExecuteAssembly: (mainAssemblyNamePtr: number, argsLength: number, argsPtr: number) => number;
Expand All@@ -51,6 +53,7 @@ export type EmsAmbientSymbolsType = EmscriptenModuleInternal & {
lastScheduledTimerId?: number;
lastScheduledThreadPoolId?: number;
lastScheduledFinalizationId?: number;
lastScheduledDiagnosticServerId?: number;
cryptoWarnOnce?: boolean;
isAborting?: boolean;
isAsyncMain?: boolean;
Expand Down
14 changes: 14 additions & 0 deletions src/native/libs/Common/JavaScript/types/exchange.ts
Original file line numberDiff line numberDiff line change
Expand Up@@ -24,6 +24,8 @@ import type { cancelPromise } from "../../../System.Runtime.InteropServices.Java
import type { abortInteropTimers } from "../../../System.Runtime.InteropServices.JavaScript.Native/interop/scheduling";

import type { installNativeSymbols, symbolicateStackTrace } from "../../../System.Native.Browser/diagnostics/symbolicate";
import type { SystemJS_ScheduleDiagnosticServer } from "../../../System.Native.Browser/native";
import type { ds_rt_websocket_close, ds_rt_websocket_create, ds_rt_websocket_poll, ds_rt_websocket_recv, ds_rt_websocket_send } from "../../../System.Native.Browser/diagnostics/diagnostic-server";


type getWasmMemoryType = () => WebAssembly.Memory;
Expand DownExpand Up@@ -144,11 +146,13 @@ export type InteropJavaScriptExportsTable = [
export type NativeBrowserExports = {
getWasmMemory: getWasmMemoryType,
getWasmTable: getWasmTableType,
SystemJS_ScheduleDiagnosticServer: typeof SystemJS_ScheduleDiagnosticServer,
}

export type NativeBrowserExportsTable = [
getWasmMemoryType,
getWasmTableType,
typeof SystemJS_ScheduleDiagnosticServer,
]

export type BrowserUtilsExports = {
Expand DownExpand Up@@ -186,9 +190,19 @@ export type BrowserUtilsExportsTable = [
export type DiagnosticsExportsTable = [
typeof symbolicateStackTrace,
typeof installNativeSymbols,
typeof ds_rt_websocket_create,
typeof ds_rt_websocket_send,
typeof ds_rt_websocket_poll,
typeof ds_rt_websocket_recv,
typeof ds_rt_websocket_close,
]

export type DiagnosticsExports = {
symbolicateStackTrace: typeof symbolicateStackTrace,
installNativeSymbols: typeof installNativeSymbols,
ds_rt_websocket_create: typeof ds_rt_websocket_create,
ds_rt_websocket_send: typeof ds_rt_websocket_send,
ds_rt_websocket_poll: typeof ds_rt_websocket_poll,
ds_rt_websocket_recv: typeof ds_rt_websocket_recv,
ds_rt_websocket_close: typeof ds_rt_websocket_close,
}
2 changes: 1 addition & 1 deletion src/native/libs/Common/JavaScript/types/public-api.ts
Original file line numberDiff line numberDiff line change
Expand Up@@ -658,7 +658,7 @@ export type DiagnosticsAPIType = {
export type DiagnosticCommandProviderV2 = {
keywords: [number, number];
logLevel: number;
provider_name: string;
providerName: string;
arguments: string | null;
};
Comment thread
pavelsavara marked this conversation as resolved.

Expand Down
Loading
Loading
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions src/mono/browser/runtime/cwraps.ts
Original file line numberDiff line numberDiff line change
Expand Up@@ -41,7 +41,7 @@ const fn_signatures: SigLine[] = [
[true, "mono_wasm_parse_runtime_options", null, ["number", "number"]],
[true, "mono_wasm_strdup", "number", ["string"]],
[true, "mono_background_exec", null, []],
[true, "mono_wasm_ds_exec", null, []],
[true, "SystemJS_ExecuteDiagnosticServerCallback", null, []],
[true, "mono_wasm_execute_timer", null, []],
[true, "wasm_load_icu_data", "number", ["number"]],
[false, "mono_wasm_add_assembly", "number", ["string", "number", "number"]],
Expand DownExpand Up@@ -168,7 +168,7 @@ export interface t_Cwraps {
mono_wasm_strdup(value: string): number;
mono_wasm_parse_runtime_options(length: number, argv: VoidPtr): void;
mono_background_exec(): void;
mono_wasm_ds_exec(): void;
SystemJS_ExecuteDiagnosticServerCallback(): void;
mono_wasm_execute_timer(): void;
wasm_load_icu_data(offset: VoidPtr): number;
mono_wasm_add_assembly(name: string, data: VoidPtr, size: number): number;
Expand Down
16 changes: 8 additions & 8 deletions src/mono/browser/runtime/diagnostics/client-commands.ts
Original file line numberDiff line numberDiff line change
Expand Up@@ -66,7 +66,7 @@ export function commandGcHeapDump (options:DiagnosticCommandOptions) {
// GC_KEYWORD 0x0000001
],
logLevel: 5,
provider_name: "Microsoft-Windows-DotNETRuntime",
providerName: "Microsoft-Windows-DotNETRuntime",
arguments: null
},
...options.extraProviders || [],
Expand All@@ -89,7 +89,7 @@ export function commandCounters (options:DiagnosticCommandOptions) {
{
keywords: [0, Keywords.GCHandle],
logLevel: 4,
provider_name: "System.Diagnostics.Metrics",
providerName: "System.Diagnostics.Metrics",
arguments: `SessionId=SHARED;Metrics=System.Runtime;RefreshInterval=${options.intervalSeconds || 1};MaxTimeSeries=1000;MaxHistograms=10;ClientId=${uuidv4()};`,
},
...options.extraProviders || [],
Expand All@@ -109,7 +109,7 @@ export function commandSampleProfiler (options:DiagnosticCommandOptions) {
0x0000_0000,
],
logLevel: 4,
provider_name: "Microsoft-DotNETCore-SampleProfiler",
providerName: "Microsoft-DotNETCore-SampleProfiler",
arguments: null
},
...options.extraProviders || [],
Expand All@@ -130,7 +130,7 @@ function commandCollectTracing2 (payload2:PayloadV2) {
for (const provider of payload2.providers) {
message.push(...serializeUint64(provider.keywords));
message.push(...serializeUint32(provider.logLevel));
message.push(...serializeString(provider.provider_name));
message.push(...serializeString(provider.providerName));
message.push(...serializeString(provider.arguments));
}
return Uint8Array.from(message);
Expand DownExpand Up@@ -199,7 +199,7 @@ const enum Keywords {
Exception = 0x8000,
//
// Summary:
// Log events associated with the threadpoo, and other threading events.
// Log events associated with the threadpool, and other threading events.
Threading = 0x10000,
//
// Summary:
Expand DownExpand Up@@ -259,7 +259,7 @@ const enum Keywords {
// This suppresses NGEN events on V4.0 (where you have NGEN PDBs), but not on V2.0
// (which does not know about this bit and also does not have NGEN PDBS).
// eslint-disable-next-line @typescript-eslint/no-duplicate-enum-values
SupressNGen = 0x40000,
SuppressNGen = 0x40000,
//
// Summary:
// TODO document
Expand DownExpand Up@@ -427,7 +427,7 @@ function computeCollectTracing2PayloadByteLength (payload2:PayloadV2) {
for (const provider of payload2.providers) {
len += 8; // keywords
len += 4; // level
len += computeStringByteLength(provider.provider_name);
len += computeStringByteLength(provider.providerName);
len += computeStringByteLength(provider.arguments);
}
return len;
Expand All@@ -436,7 +436,7 @@ function computeCollectTracing2PayloadByteLength (payload2:PayloadV2) {
type ProviderV2 ={
keywords: [ number, Keywords ],
logLevel: number,
provider_name: string,
providerName: string,
arguments: string|null
}

Expand Down
2 changes: 1 addition & 1 deletion src/mono/browser/runtime/diagnostics/common.ts
Original file line numberDiff line numberDiff line change
Expand Up@@ -16,7 +16,7 @@ export function diagnosticServerEventLoop () {
if (loaderHelpers.is_runtime_running()) {
try {
runtimeHelpers.mono_background_exec();// give GC chance to run
runtimeHelpers.mono_wasm_ds_exec();
runtimeHelpers.SystemJS_ExecuteDiagnosticServerCallback();
scheduleDiagnosticServerEventLoop(100);
} catch (ex) {
loaderHelpers.mono_exit(1, ex);
Expand Down
4 changes: 2 additions & 2 deletions src/mono/browser/runtime/diagnostics/diagnostics-ws.ts
Original file line numberDiff line numberDiff line change
Expand Up@@ -27,7 +27,7 @@ class DiagnosticConnectionWS extends DiagnosticConnectionBase implements IDiagno
};
ws.addEventListener("open", () => {
for (const data of this.messagesToSend) {
ws.send(data);
ws.send(data as any);
}
this.messagesToSend = [];
diagnosticServerEventLoop();
Expand All@@ -49,7 +49,7 @@ class DiagnosticConnectionWS extends DiagnosticConnectionBase implements IDiagno
return super.store(message);
}

this.ws!.send(message);
this.ws!.send(message as any);

return message.length;
}
Expand Down
2 changes: 1 addition & 1 deletion src/mono/browser/runtime/dotnet.d.ts
Original file line numberDiff line numberDiff line change
Expand Up@@ -718,7 +718,7 @@ type DiagnosticsAPIType = {
type DiagnosticCommandProviderV2 = {
keywords: [number, number];
logLevel: number;
provider_name: string;
providerName: string;
arguments: string | null;
};
type DiagnosticCommandOptions = {
Expand Down
2 changes: 1 addition & 1 deletion src/mono/browser/runtime/exports.ts
Original file line numberDiff line numberDiff line change
Expand Up@@ -44,7 +44,7 @@ function initializeExports (globalObjects: GlobalObjects): RuntimeAPI {
utf8ToString,
SystemJS_GetCurrentProcessId,
mono_background_exec: () => tcwraps.mono_background_exec(),
mono_wasm_ds_exec: () => tcwraps.mono_wasm_ds_exec(),
SystemJS_ExecuteDiagnosticServerCallback: () => tcwraps.SystemJS_ExecuteDiagnosticServerCallback(),
};
if (WasmEnableThreads) {
rh.dumpThreads = mono_wasm_dump_threads;
Expand Down
2 changes: 1 addition & 1 deletion src/mono/browser/runtime/types/index.ts
Original file line numberDiff line numberDiff line change
Expand Up@@ -703,7 +703,7 @@ export type DiagnosticsAPIType = {
export type DiagnosticCommandProviderV2 = {
keywords: [ number, number ],
logLevel: number,
provider_name: string,
providerName: string,
arguments: string|null
}

Expand Down
2 changes: 1 addition & 1 deletion src/mono/browser/runtime/types/internal.ts
Original file line numberDiff line numberDiff line change
Expand Up@@ -240,7 +240,7 @@ export type RuntimeHelpers = {
mono_wasm_print_thread_dump: () => void,
utf8ToString: (ptr: CharPtr) => string,
mono_background_exec: () => void,
mono_wasm_ds_exec: () => void,
SystemJS_ExecuteDiagnosticServerCallback: () => void,
SystemJS_GetCurrentProcessId: () => number,
}

Expand Down
4 changes: 2 additions & 2 deletions src/mono/mono/eventpipe/ep-rt-mono.h
Original file line numberDiff line numberDiff line change
Expand Up@@ -1011,7 +1011,7 @@ ep_rt_queue_job (
// see if it's done or needs to be scheduled again
if (!done) {
// self schedule again
mono_schedule_ds_job (cb, params);
SystemJS_DiagnosticServerQueueJob (cb, params);
}

return true;
Expand DownExpand Up@@ -1045,7 +1045,7 @@ ep_rt_thread_sleep (uint64_t ns)
g_usleep ((gulong)(ns / 1000));
MONO_EXIT_GC_SAFE;
}
#endif
#endif // PERFTRACING_DISABLE_THREADS
}

static
Expand Down
2 changes: 1 addition & 1 deletion src/mono/mono/mini/mini-wasm.c
Original file line numberDiff line numberDiff line change
Expand Up@@ -453,7 +453,7 @@ G_BEGIN_DECLS
#ifdef DISABLE_THREADS
EMSCRIPTEN_KEEPALIVE void mono_wasm_execute_timer (void);
EMSCRIPTEN_KEEPALIVE void mono_background_exec (void);
EMSCRIPTEN_KEEPALIVE void mono_wasm_ds_exec (void);
EMSCRIPTEN_KEEPALIVE void SystemJS_ExecuteDiagnosticServerCallback (void);
extern void SystemJS_ScheduleTimerImpl (int shortestDueTimeMs);
#else
extern void SystemJS_ScheduleSynchronizationContext(MonoNativeThreadId target_thread);
Expand Down
10 changes: 5 additions & 5 deletions src/mono/mono/utils/mono-threads-wasm.c
Original file line numberDiff line numberDiff line change
Expand Up@@ -342,7 +342,7 @@ typedef struct {
} DsJobRegistration;

void
mono_schedule_ds_job (ds_job_cb cb, void* data)
SystemJS_DiagnosticServerQueueJob (ds_job_cb cb, void* data)
{
g_assert (cb);
DsJobRegistration* reg = g_new0 (DsJobRegistration, 1);
Expand DownExpand Up@@ -372,7 +372,7 @@ mono_background_exec (void)

G_EXTERN_C
EMSCRIPTEN_KEEPALIVE void
mono_wasm_ds_exec (void)
SystemJS_ExecuteDiagnosticServerCallback (void)
{
MONO_ENTER_GC_UNSAFE;
GSList *j1 = jobs_ds, *cur1;
Expand All@@ -381,13 +381,13 @@ mono_wasm_ds_exec (void)
for (cur1 = j1; cur1; cur1 = cur1->next) {
DsJobRegistration* reg = (DsJobRegistration*)cur1->data;
g_assert (reg->cb);
THREADS_DEBUG ("mono_wasm_ds_exec running job %p \n", (gpointer)cb);
THREADS_DEBUG ("SystemJS_ExecuteDiagnosticServerCallback running job %p \n", (gpointer)reg->cb);
gsize done = reg->cb (reg->data);
if (done){
THREADS_DEBUG ("mono_wasm_ds_exec done job %p \n", (gpointer)cb);
THREADS_DEBUG ("SystemJS_ExecuteDiagnosticServerCallback done job %p \n", (gpointer)reg->cb);
g_free (reg);
} else {
THREADS_DEBUG ("mono_wasm_ds_exec scheduling job %p again \n", (gpointer)cb);
THREADS_DEBUG ("SystemJS_ExecuteDiagnosticServerCallback scheduling job %p again \n", (gpointer)reg->cb);
jobs_ds = g_slist_prepend (jobs_ds, (gpointer)reg);
}
}
Expand Down
2 changes: 1 addition & 1 deletion src/mono/mono/utils/mono-threads-wasm.h
Original file line numberDiff line numberDiff line change
Expand Up@@ -89,7 +89,7 @@ mono_wasm_atomic_wait_i32 (volatile int32_t *addr, int32_t expected, int32_t tim

#else /* DISABLE_THREADS */
void mono_background_exec (void);
void mono_wasm_ds_exec (void);
void SystemJS_ExecuteDiagnosticServerCallback (void);
#endif /* DISABLE_THREADS */

void
Expand Down
2 changes: 1 addition & 1 deletion src/mono/mono/utils/mono-threads.h
Original file line numberDiff line numberDiff line change
Expand Up@@ -848,7 +848,7 @@ typedef void (*background_job_cb)(void);
typedef gsize (*ds_job_cb)(void* data);
#ifdef DISABLE_THREADS
void SystemJS_ScheduleBackgroundJob (background_job_cb cb);
void mono_schedule_ds_job (ds_job_cb cb, void* data);
void SystemJS_DiagnosticServerQueueJob (ds_job_cb cb, void* data);
#else
void SystemJS_ScheduleSynchronizationContext(MonoNativeThreadId target_thread);
#endif // DISABLE_THREADS
Expand Down
9 changes: 9 additions & 0 deletions src/native/libs/Common/JavaScript/CMakeLists.txt
Original file line numberDiff line numberDiff line change
Expand Up@@ -58,14 +58,23 @@ set(ROLLUP_TS_SOURCES
"${CLR_SRC_NATIVE_DIR}/libs/Common/JavaScript/types/public-api.ts"
"${CLR_SRC_NATIVE_DIR}/libs/Common/JavaScript/types/v8.d.ts"

"${CLR_SRC_NATIVE_DIR}/libs/System.Native.Browser/diagnostics/client-commands.ts"
"${CLR_SRC_NATIVE_DIR}/libs/System.Native.Browser/diagnostics/common.ts"
"${CLR_SRC_NATIVE_DIR}/libs/System.Native.Browser/diagnostics/console-proxy.ts"
"${CLR_SRC_NATIVE_DIR}/libs/System.Native.Browser/diagnostics/cross-module.ts"
"${CLR_SRC_NATIVE_DIR}/libs/System.Native.Browser/diagnostics/diagnostic-server.ts"
"${CLR_SRC_NATIVE_DIR}/libs/System.Native.Browser/diagnostics/diagnostic-server-js.ts"
"${CLR_SRC_NATIVE_DIR}/libs/System.Native.Browser/diagnostics/diagnostic-server-ws.ts"
"${CLR_SRC_NATIVE_DIR}/libs/System.Native.Browser/diagnostics/dotnet-counters.ts"
"${CLR_SRC_NATIVE_DIR}/libs/System.Native.Browser/diagnostics/dotnet-cpu-profiler.ts"
"${CLR_SRC_NATIVE_DIR}/libs/System.Native.Browser/diagnostics/dotnet-gcdump.ts"
"${CLR_SRC_NATIVE_DIR}/libs/System.Native.Browser/diagnostics/exit.ts"
"${CLR_SRC_NATIVE_DIR}/libs/System.Native.Browser/diagnostics/index.ts"
"${CLR_SRC_NATIVE_DIR}/libs/System.Native.Browser/diagnostics/per-module.ts"
"${CLR_SRC_NATIVE_DIR}/libs/System.Native.Browser/diagnostics/symbolicate.ts"
"${CLR_SRC_NATIVE_DIR}/libs/System.Native.Browser/diagnostics/types.ts"
"${CLR_SRC_NATIVE_DIR}/libs/System.Native.Browser/native/crypto.ts"
"${CLR_SRC_NATIVE_DIR}/libs/System.Native.Browser/native/diagnostics.ts"
"${CLR_SRC_NATIVE_DIR}/libs/System.Native.Browser/native/globalization-locale.ts"
"${CLR_SRC_NATIVE_DIR}/libs/System.Native.Browser/native/index.ts"
"${CLR_SRC_NATIVE_DIR}/libs/System.Native.Browser/native/main.ts"
Expand Down
6 changes: 6 additions & 0 deletions src/native/libs/Common/JavaScript/cross-module/index.ts
Original file line numberDiff line numberDiff line change
Expand Up@@ -177,6 +177,7 @@ export function dotnetUpdateInternalsSubscriber() {
const interopLocal: NativeBrowserExports = {
getWasmMemory: table[0],
getWasmTable: table[1],
SystemJS_ScheduleDiagnosticServer: table[2],
};
Object.assign(interop, interopLocal);
}
Expand All@@ -186,6 +187,11 @@ export function dotnetUpdateInternalsSubscriber() {
const interopLocal: DiagnosticsExports = {
symbolicateStackTrace: table[0],
installNativeSymbols: table[1],
ds_rt_websocket_create: table[2],
ds_rt_websocket_send: table[3],
ds_rt_websocket_poll: table[4],
ds_rt_websocket_recv: table[5],
ds_rt_websocket_close: table[6],
};
Object.assign(interop, interopLocal);
}
Expand Down
2 changes: 1 addition & 1 deletion src/native/libs/Common/JavaScript/loader/dotnet.d.ts
Original file line numberDiff line numberDiff line change
Expand Up@@ -688,7 +688,7 @@ type DiagnosticsAPIType = {
type DiagnosticCommandProviderV2 = {
keywords: [number, number];
logLevel: number;
provider_name: string;
providerName: string;
arguments: string | null;
};
type DiagnosticCommandOptions = {
Expand Down
19 changes: 9 additions & 10 deletions src/native/libs/Common/JavaScript/loader/exit.ts
Original file line numberDiff line numberDiff line change
Expand Up@@ -88,19 +88,18 @@ export function exit(exitCode: number, reason: any): void {
reason.message = message;
}

// force stack property to be generated before we shut down managed code, or create current stack if it doesn't exist
const stack = "" + (reason.stack || (new Error().stack));
try {
Object.defineProperty(reason, "stack", {
get: () => stack
});
} catch (e) {
// ignore
}

// don't report this error twice
const alreadySilent = !!reason.silent;
const alreadyExisted = isExited();

// force stack property to be generated before we shut down managed code, or create current stack if it doesn't exist
let stack;
if (typeof reason["getManageStack"] === "function" && isRuntimeRunning()) {
stack = reason.getManageStack();
} else {
stack = reason.stack || new Error().stack || "";
}

reason.silent = true;
let shouldQuitNow = true;

Expand Down
2 changes: 1 addition & 1 deletion src/native/libs/Common/JavaScript/loader/logging.ts
Original file line numberDiff line numberDiff line change
Expand Up@@ -54,7 +54,7 @@ export function normalizeException(reason: any) {
let stack: string | undefined;
if (reason) {
if (typeof reason === "object" && reason.status === undefined) {
if (reason.stack === undefined) {
if (reason.stack !== undefined) {
stack = reason.stack + "";
} else {
stack = new Error().stack + "";
Expand Down
3 changes: 3 additions & 0 deletions src/native/libs/Common/JavaScript/types/ems-ambient.ts
Original file line numberDiff line numberDiff line change
Expand Up@@ -28,6 +28,8 @@ export type EmsAmbientSymbolsType = EmscriptenModuleInternal & {
_SystemJS_ExecuteTimerCallback: () => void;
_SystemJS_ExecuteBackgroundJobCallback: () => void;
_SystemJS_ExecuteFinalizationCallback: () => void;
_SystemJS_ExecuteDiagnosticServerCallback: () => void;
_SystemJS_ScheduleDiagnosticServer: () => void;
_BrowserHost_CreateHostContract: () => VoidPtr;
_BrowserHost_InitializeDotnet: (propertiesCount: number, propertyKeys: CharPtrPtr, propertyValues: CharPtrPtr) => number;
_BrowserHost_ExecuteAssembly: (mainAssemblyNamePtr: number, argsLength: number, argsPtr: number) => number;
Expand All@@ -51,6 +53,7 @@ export type EmsAmbientSymbolsType = EmscriptenModuleInternal & {
lastScheduledTimerId?: number;
lastScheduledThreadPoolId?: number;
lastScheduledFinalizationId?: number;
lastScheduledDiagnosticServerId?: number;
cryptoWarnOnce?: boolean;
isAborting?: boolean;
isAsyncMain?: boolean;
Expand Down
14 changes: 14 additions & 0 deletions src/native/libs/Common/JavaScript/types/exchange.ts
Original file line numberDiff line numberDiff line change
Expand Up@@ -24,6 +24,8 @@ import type { cancelPromise } from "../../../System.Runtime.InteropServices.Java
import type { abortInteropTimers } from "../../../System.Runtime.InteropServices.JavaScript.Native/interop/scheduling";

import type { installNativeSymbols, symbolicateStackTrace } from "../../../System.Native.Browser/diagnostics/symbolicate";
import type { SystemJS_ScheduleDiagnosticServer } from "../../../System.Native.Browser/native";
import type { ds_rt_websocket_close, ds_rt_websocket_create, ds_rt_websocket_poll, ds_rt_websocket_recv, ds_rt_websocket_send } from "../../../System.Native.Browser/diagnostics/diagnostic-server";


type getWasmMemoryType = () => WebAssembly.Memory;
Expand DownExpand Up@@ -144,11 +146,13 @@ export type InteropJavaScriptExportsTable = [
export type NativeBrowserExports = {
getWasmMemory: getWasmMemoryType,
getWasmTable: getWasmTableType,
SystemJS_ScheduleDiagnosticServer: typeof SystemJS_ScheduleDiagnosticServer,
}

export type NativeBrowserExportsTable = [
getWasmMemoryType,
getWasmTableType,
typeof SystemJS_ScheduleDiagnosticServer,
]

export type BrowserUtilsExports = {
Expand DownExpand Up@@ -186,9 +190,19 @@ export type BrowserUtilsExportsTable = [
export type DiagnosticsExportsTable = [
typeof symbolicateStackTrace,
typeof installNativeSymbols,
typeof ds_rt_websocket_create,
typeof ds_rt_websocket_send,
typeof ds_rt_websocket_poll,
typeof ds_rt_websocket_recv,
typeof ds_rt_websocket_close,
]

export type DiagnosticsExports = {
symbolicateStackTrace: typeof symbolicateStackTrace,
installNativeSymbols: typeof installNativeSymbols,
ds_rt_websocket_create: typeof ds_rt_websocket_create,
ds_rt_websocket_send: typeof ds_rt_websocket_send,
ds_rt_websocket_poll: typeof ds_rt_websocket_poll,
ds_rt_websocket_recv: typeof ds_rt_websocket_recv,
ds_rt_websocket_close: typeof ds_rt_websocket_close,
}
2 changes: 1 addition & 1 deletion src/native/libs/Common/JavaScript/types/public-api.ts
Original file line numberDiff line numberDiff line change
Expand Up@@ -658,7 +658,7 @@ export type DiagnosticsAPIType = {
export type DiagnosticCommandProviderV2 = {
keywords: [number, number];
logLevel: number;
provider_name: string;
providerName: string;
arguments: string | null;
};
Comment thread
pavelsavara marked this conversation as resolved.

Expand Down
Loading
Loading
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions src/mono/browser/runtime/cwraps.ts
Original file line numberDiff line numberDiff line change
Expand Up@@ -41,7 +41,7 @@ const fn_signatures: SigLine[] = [
[true, "mono_wasm_parse_runtime_options", null, ["number", "number"]],
[true, "mono_wasm_strdup", "number", ["string"]],
[true, "mono_background_exec", null, []],
[true, "mono_wasm_ds_exec", null, []],
[true, "SystemJS_ExecuteDiagnosticServerCallback", null, []],
[true, "mono_wasm_execute_timer", null, []],
[true, "wasm_load_icu_data", "number", ["number"]],
[false, "mono_wasm_add_assembly", "number", ["string", "number", "number"]],
Expand DownExpand Up@@ -168,7 +168,7 @@ export interface t_Cwraps {
mono_wasm_strdup(value: string): number;
mono_wasm_parse_runtime_options(length: number, argv: VoidPtr): void;
mono_background_exec(): void;
mono_wasm_ds_exec(): void;
SystemJS_ExecuteDiagnosticServerCallback(): void;
mono_wasm_execute_timer(): void;
wasm_load_icu_data(offset: VoidPtr): number;
mono_wasm_add_assembly(name: string, data: VoidPtr, size: number): number;
Expand Down
16 changes: 8 additions & 8 deletions src/mono/browser/runtime/diagnostics/client-commands.ts
Original file line numberDiff line numberDiff line change
Expand Up@@ -66,7 +66,7 @@ export function commandGcHeapDump (options:DiagnosticCommandOptions) {
// GC_KEYWORD 0x0000001
],
logLevel: 5,
provider_name: "Microsoft-Windows-DotNETRuntime",
providerName: "Microsoft-Windows-DotNETRuntime",
arguments: null
},
...options.extraProviders || [],
Expand All@@ -89,7 +89,7 @@ export function commandCounters (options:DiagnosticCommandOptions) {
{
keywords: [0, Keywords.GCHandle],
logLevel: 4,
provider_name: "System.Diagnostics.Metrics",
providerName: "System.Diagnostics.Metrics",
arguments: `SessionId=SHARED;Metrics=System.Runtime;RefreshInterval=${options.intervalSeconds || 1};MaxTimeSeries=1000;MaxHistograms=10;ClientId=${uuidv4()};`,
},
...options.extraProviders || [],
Expand All@@ -109,7 +109,7 @@ export function commandSampleProfiler (options:DiagnosticCommandOptions) {
0x0000_0000,
],
logLevel: 4,
provider_name: "Microsoft-DotNETCore-SampleProfiler",
providerName: "Microsoft-DotNETCore-SampleProfiler",
arguments: null
},
...options.extraProviders || [],
Expand All@@ -130,7 +130,7 @@ function commandCollectTracing2 (payload2:PayloadV2) {
for (const provider of payload2.providers) {
message.push(...serializeUint64(provider.keywords));
message.push(...serializeUint32(provider.logLevel));
message.push(...serializeString(provider.provider_name));
message.push(...serializeString(provider.providerName));
message.push(...serializeString(provider.arguments));
}
return Uint8Array.from(message);
Expand DownExpand Up@@ -199,7 +199,7 @@ const enum Keywords {
Exception = 0x8000,
//
// Summary:
// Log events associated with the threadpoo, and other threading events.
// Log events associated with the threadpool, and other threading events.
Threading = 0x10000,
//
// Summary:
Expand DownExpand Up@@ -259,7 +259,7 @@ const enum Keywords {
// This suppresses NGEN events on V4.0 (where you have NGEN PDBs), but not on V2.0
// (which does not know about this bit and also does not have NGEN PDBS).
// eslint-disable-next-line @typescript-eslint/no-duplicate-enum-values
SupressNGen = 0x40000,
SuppressNGen = 0x40000,
//
// Summary:
// TODO document
Expand DownExpand Up@@ -427,7 +427,7 @@ function computeCollectTracing2PayloadByteLength (payload2:PayloadV2) {
for (const provider of payload2.providers) {
len += 8; // keywords
len += 4; // level
len += computeStringByteLength(provider.provider_name);
len += computeStringByteLength(provider.providerName);
len += computeStringByteLength(provider.arguments);
}
return len;
Expand All@@ -436,7 +436,7 @@ function computeCollectTracing2PayloadByteLength (payload2:PayloadV2) {
type ProviderV2 ={
keywords: [ number, Keywords ],
logLevel: number,
provider_name: string,
providerName: string,
arguments: string|null
}

Expand Down
2 changes: 1 addition & 1 deletion src/mono/browser/runtime/diagnostics/common.ts
Original file line numberDiff line numberDiff line change
Expand Up@@ -16,7 +16,7 @@ export function diagnosticServerEventLoop () {
if (loaderHelpers.is_runtime_running()) {
try {
runtimeHelpers.mono_background_exec();// give GC chance to run
runtimeHelpers.mono_wasm_ds_exec();
runtimeHelpers.SystemJS_ExecuteDiagnosticServerCallback();
scheduleDiagnosticServerEventLoop(100);
} catch (ex) {
loaderHelpers.mono_exit(1, ex);
Expand Down
4 changes: 2 additions & 2 deletions src/mono/browser/runtime/diagnostics/diagnostics-ws.ts
Original file line numberDiff line numberDiff line change
Expand Up@@ -27,7 +27,7 @@ class DiagnosticConnectionWS extends DiagnosticConnectionBase implements IDiagno
};
ws.addEventListener("open", () => {
for (const data of this.messagesToSend) {
ws.send(data);
ws.send(data as any);
}
this.messagesToSend = [];
diagnosticServerEventLoop();
Expand All@@ -49,7 +49,7 @@ class DiagnosticConnectionWS extends DiagnosticConnectionBase implements IDiagno
return super.store(message);
}

this.ws!.send(message);
this.ws!.send(message as any);

return message.length;
}
Expand Down
2 changes: 1 addition & 1 deletion src/mono/browser/runtime/dotnet.d.ts
Original file line numberDiff line numberDiff line change
Expand Up@@ -718,7 +718,7 @@ type DiagnosticsAPIType = {
type DiagnosticCommandProviderV2 = {
keywords: [number, number];
logLevel: number;
provider_name: string;
providerName: string;
arguments: string | null;
};
type DiagnosticCommandOptions = {
Expand Down
2 changes: 1 addition & 1 deletion src/mono/browser/runtime/exports.ts
Original file line numberDiff line numberDiff line change
Expand Up@@ -44,7 +44,7 @@ function initializeExports (globalObjects: GlobalObjects): RuntimeAPI {
utf8ToString,
SystemJS_GetCurrentProcessId,
mono_background_exec: () => tcwraps.mono_background_exec(),
mono_wasm_ds_exec: () => tcwraps.mono_wasm_ds_exec(),
SystemJS_ExecuteDiagnosticServerCallback: () => tcwraps.SystemJS_ExecuteDiagnosticServerCallback(),
};
if (WasmEnableThreads) {
rh.dumpThreads = mono_wasm_dump_threads;
Expand Down
2 changes: 1 addition & 1 deletion src/mono/browser/runtime/types/index.ts
Original file line numberDiff line numberDiff line change
Expand Up@@ -703,7 +703,7 @@ export type DiagnosticsAPIType = {
export type DiagnosticCommandProviderV2 = {
keywords: [ number, number ],
logLevel: number,
provider_name: string,
providerName: string,
arguments: string|null
}

Expand Down
2 changes: 1 addition & 1 deletion src/mono/browser/runtime/types/internal.ts
Original file line numberDiff line numberDiff line change
Expand Up@@ -240,7 +240,7 @@ export type RuntimeHelpers = {
mono_wasm_print_thread_dump: () => void,
utf8ToString: (ptr: CharPtr) => string,
mono_background_exec: () => void,
mono_wasm_ds_exec: () => void,
SystemJS_ExecuteDiagnosticServerCallback: () => void,
SystemJS_GetCurrentProcessId: () => number,
}

Expand Down
4 changes: 2 additions & 2 deletions src/mono/mono/eventpipe/ep-rt-mono.h
Original file line numberDiff line numberDiff line change
Expand Up@@ -1011,7 +1011,7 @@ ep_rt_queue_job (
// see if it's done or needs to be scheduled again
if (!done) {
// self schedule again
mono_schedule_ds_job (cb, params);
SystemJS_DiagnosticServerQueueJob (cb, params);
}

return true;
Expand DownExpand Up@@ -1045,7 +1045,7 @@ ep_rt_thread_sleep (uint64_t ns)
g_usleep ((gulong)(ns / 1000));
MONO_EXIT_GC_SAFE;
}
#endif
#endif // PERFTRACING_DISABLE_THREADS
}

static
Expand Down
2 changes: 1 addition & 1 deletion src/mono/mono/mini/mini-wasm.c
Original file line numberDiff line numberDiff line change
Expand Up@@ -453,7 +453,7 @@ G_BEGIN_DECLS
#ifdef DISABLE_THREADS
EMSCRIPTEN_KEEPALIVE void mono_wasm_execute_timer (void);
EMSCRIPTEN_KEEPALIVE void mono_background_exec (void);
EMSCRIPTEN_KEEPALIVE void mono_wasm_ds_exec (void);
EMSCRIPTEN_KEEPALIVE void SystemJS_ExecuteDiagnosticServerCallback (void);
extern void SystemJS_ScheduleTimerImpl (int shortestDueTimeMs);
#else
extern void SystemJS_ScheduleSynchronizationContext(MonoNativeThreadId target_thread);
Expand Down
10 changes: 5 additions & 5 deletions src/mono/mono/utils/mono-threads-wasm.c
Original file line numberDiff line numberDiff line change
Expand Up@@ -342,7 +342,7 @@ typedef struct {
} DsJobRegistration;

void
mono_schedule_ds_job (ds_job_cb cb, void* data)
SystemJS_DiagnosticServerQueueJob (ds_job_cb cb, void* data)
{
g_assert (cb);
DsJobRegistration* reg = g_new0 (DsJobRegistration, 1);
Expand DownExpand Up@@ -372,7 +372,7 @@ mono_background_exec (void)

G_EXTERN_C
EMSCRIPTEN_KEEPALIVE void
mono_wasm_ds_exec (void)
SystemJS_ExecuteDiagnosticServerCallback (void)
{
MONO_ENTER_GC_UNSAFE;
GSList *j1 = jobs_ds, *cur1;
Expand All@@ -381,13 +381,13 @@ mono_wasm_ds_exec (void)
for (cur1 = j1; cur1; cur1 = cur1->next) {
DsJobRegistration* reg = (DsJobRegistration*)cur1->data;
g_assert (reg->cb);
THREADS_DEBUG ("mono_wasm_ds_exec running job %p \n", (gpointer)cb);
THREADS_DEBUG ("SystemJS_ExecuteDiagnosticServerCallback running job %p \n", (gpointer)reg->cb);
gsize done = reg->cb (reg->data);
if (done){
THREADS_DEBUG ("mono_wasm_ds_exec done job %p \n", (gpointer)cb);
THREADS_DEBUG ("SystemJS_ExecuteDiagnosticServerCallback done job %p \n", (gpointer)reg->cb);
g_free (reg);
} else {
THREADS_DEBUG ("mono_wasm_ds_exec scheduling job %p again \n", (gpointer)cb);
THREADS_DEBUG ("SystemJS_ExecuteDiagnosticServerCallback scheduling job %p again \n", (gpointer)reg->cb);
jobs_ds = g_slist_prepend (jobs_ds, (gpointer)reg);
}
}
Expand Down
2 changes: 1 addition & 1 deletion src/mono/mono/utils/mono-threads-wasm.h
Original file line numberDiff line numberDiff line change
Expand Up@@ -89,7 +89,7 @@ mono_wasm_atomic_wait_i32 (volatile int32_t *addr, int32_t expected, int32_t tim

#else /* DISABLE_THREADS */
void mono_background_exec (void);
void mono_wasm_ds_exec (void);
void SystemJS_ExecuteDiagnosticServerCallback (void);
#endif /* DISABLE_THREADS */

void
Expand Down
2 changes: 1 addition & 1 deletion src/mono/mono/utils/mono-threads.h
Original file line numberDiff line numberDiff line change
Expand Up@@ -848,7 +848,7 @@ typedef void (*background_job_cb)(void);
typedef gsize (*ds_job_cb)(void* data);
#ifdef DISABLE_THREADS
void SystemJS_ScheduleBackgroundJob (background_job_cb cb);
void mono_schedule_ds_job (ds_job_cb cb, void* data);
void SystemJS_DiagnosticServerQueueJob (ds_job_cb cb, void* data);
#else
void SystemJS_ScheduleSynchronizationContext(MonoNativeThreadId target_thread);
#endif // DISABLE_THREADS
Expand Down
9 changes: 9 additions & 0 deletions src/native/libs/Common/JavaScript/CMakeLists.txt
Original file line numberDiff line numberDiff line change
Expand Up@@ -58,14 +58,23 @@ set(ROLLUP_TS_SOURCES
"${CLR_SRC_NATIVE_DIR}/libs/Common/JavaScript/types/public-api.ts"
"${CLR_SRC_NATIVE_DIR}/libs/Common/JavaScript/types/v8.d.ts"

"${CLR_SRC_NATIVE_DIR}/libs/System.Native.Browser/diagnostics/client-commands.ts"
"${CLR_SRC_NATIVE_DIR}/libs/System.Native.Browser/diagnostics/common.ts"
"${CLR_SRC_NATIVE_DIR}/libs/System.Native.Browser/diagnostics/console-proxy.ts"
"${CLR_SRC_NATIVE_DIR}/libs/System.Native.Browser/diagnostics/cross-module.ts"
"${CLR_SRC_NATIVE_DIR}/libs/System.Native.Browser/diagnostics/diagnostic-server.ts"
"${CLR_SRC_NATIVE_DIR}/libs/System.Native.Browser/diagnostics/diagnostic-server-js.ts"
"${CLR_SRC_NATIVE_DIR}/libs/System.Native.Browser/diagnostics/diagnostic-server-ws.ts"
"${CLR_SRC_NATIVE_DIR}/libs/System.Native.Browser/diagnostics/dotnet-counters.ts"
"${CLR_SRC_NATIVE_DIR}/libs/System.Native.Browser/diagnostics/dotnet-cpu-profiler.ts"
"${CLR_SRC_NATIVE_DIR}/libs/System.Native.Browser/diagnostics/dotnet-gcdump.ts"
"${CLR_SRC_NATIVE_DIR}/libs/System.Native.Browser/diagnostics/exit.ts"
"${CLR_SRC_NATIVE_DIR}/libs/System.Native.Browser/diagnostics/index.ts"
"${CLR_SRC_NATIVE_DIR}/libs/System.Native.Browser/diagnostics/per-module.ts"
"${CLR_SRC_NATIVE_DIR}/libs/System.Native.Browser/diagnostics/symbolicate.ts"
"${CLR_SRC_NATIVE_DIR}/libs/System.Native.Browser/diagnostics/types.ts"
"${CLR_SRC_NATIVE_DIR}/libs/System.Native.Browser/native/crypto.ts"
"${CLR_SRC_NATIVE_DIR}/libs/System.Native.Browser/native/diagnostics.ts"
"${CLR_SRC_NATIVE_DIR}/libs/System.Native.Browser/native/globalization-locale.ts"
"${CLR_SRC_NATIVE_DIR}/libs/System.Native.Browser/native/index.ts"
"${CLR_SRC_NATIVE_DIR}/libs/System.Native.Browser/native/main.ts"
Expand Down
6 changes: 6 additions & 0 deletions src/native/libs/Common/JavaScript/cross-module/index.ts
Original file line numberDiff line numberDiff line change
Expand Up@@ -177,6 +177,7 @@ export function dotnetUpdateInternalsSubscriber() {
const interopLocal: NativeBrowserExports = {
getWasmMemory: table[0],
getWasmTable: table[1],
SystemJS_ScheduleDiagnosticServer: table[2],
};
Object.assign(interop, interopLocal);
}
Expand All@@ -186,6 +187,11 @@ export function dotnetUpdateInternalsSubscriber() {
const interopLocal: DiagnosticsExports = {
symbolicateStackTrace: table[0],
installNativeSymbols: table[1],
ds_rt_websocket_create: table[2],
ds_rt_websocket_send: table[3],
ds_rt_websocket_poll: table[4],
ds_rt_websocket_recv: table[5],
ds_rt_websocket_close: table[6],
};
Object.assign(interop, interopLocal);
}
Expand Down
2 changes: 1 addition & 1 deletion src/native/libs/Common/JavaScript/loader/dotnet.d.ts
Original file line numberDiff line numberDiff line change
Expand Up@@ -688,7 +688,7 @@ type DiagnosticsAPIType = {
type DiagnosticCommandProviderV2 = {
keywords: [number, number];
logLevel: number;
provider_name: string;
providerName: string;
arguments: string | null;
};
type DiagnosticCommandOptions = {
Expand Down
19 changes: 9 additions & 10 deletions src/native/libs/Common/JavaScript/loader/exit.ts
Original file line numberDiff line numberDiff line change
Expand Up@@ -88,19 +88,18 @@ export function exit(exitCode: number, reason: any): void {
reason.message = message;
}

// force stack property to be generated before we shut down managed code, or create current stack if it doesn't exist
const stack = "" + (reason.stack || (new Error().stack));
try {
Object.defineProperty(reason, "stack", {
get: () => stack
});
} catch (e) {
// ignore
}

// don't report this error twice
const alreadySilent = !!reason.silent;
const alreadyExisted = isExited();

// force stack property to be generated before we shut down managed code, or create current stack if it doesn't exist
let stack;
if (typeof reason["getManageStack"] === "function" && isRuntimeRunning()) {
stack = reason.getManageStack();
} else {
stack = reason.stack || new Error().stack || "";
}

reason.silent = true;
let shouldQuitNow = true;

Expand Down
2 changes: 1 addition & 1 deletion src/native/libs/Common/JavaScript/loader/logging.ts
Original file line numberDiff line numberDiff line change
Expand Up@@ -54,7 +54,7 @@ export function normalizeException(reason: any) {
let stack: string | undefined;
if (reason) {
if (typeof reason === "object" && reason.status === undefined) {
if (reason.stack === undefined) {
if (reason.stack !== undefined) {
stack = reason.stack + "";
} else {
stack = new Error().stack + "";
Expand Down
3 changes: 3 additions & 0 deletions src/native/libs/Common/JavaScript/types/ems-ambient.ts
Original file line numberDiff line numberDiff line change
Expand Up@@ -28,6 +28,8 @@ export type EmsAmbientSymbolsType = EmscriptenModuleInternal & {
_SystemJS_ExecuteTimerCallback: () => void;
_SystemJS_ExecuteBackgroundJobCallback: () => void;
_SystemJS_ExecuteFinalizationCallback: () => void;
_SystemJS_ExecuteDiagnosticServerCallback: () => void;
_SystemJS_ScheduleDiagnosticServer: () => void;
_BrowserHost_CreateHostContract: () => VoidPtr;
_BrowserHost_InitializeDotnet: (propertiesCount: number, propertyKeys: CharPtrPtr, propertyValues: CharPtrPtr) => number;
_BrowserHost_ExecuteAssembly: (mainAssemblyNamePtr: number, argsLength: number, argsPtr: number) => number;
Expand All@@ -51,6 +53,7 @@ export type EmsAmbientSymbolsType = EmscriptenModuleInternal & {
lastScheduledTimerId?: number;
lastScheduledThreadPoolId?: number;
lastScheduledFinalizationId?: number;
lastScheduledDiagnosticServerId?: number;
cryptoWarnOnce?: boolean;
isAborting?: boolean;
isAsyncMain?: boolean;
Expand Down
14 changes: 14 additions & 0 deletions src/native/libs/Common/JavaScript/types/exchange.ts
Original file line numberDiff line numberDiff line change
Expand Up@@ -24,6 +24,8 @@ import type { cancelPromise } from "../../../System.Runtime.InteropServices.Java
import type { abortInteropTimers } from "../../../System.Runtime.InteropServices.JavaScript.Native/interop/scheduling";

import type { installNativeSymbols, symbolicateStackTrace } from "../../../System.Native.Browser/diagnostics/symbolicate";
import type { SystemJS_ScheduleDiagnosticServer } from "../../../System.Native.Browser/native";
import type { ds_rt_websocket_close, ds_rt_websocket_create, ds_rt_websocket_poll, ds_rt_websocket_recv, ds_rt_websocket_send } from "../../../System.Native.Browser/diagnostics/diagnostic-server";


type getWasmMemoryType = () => WebAssembly.Memory;
Expand DownExpand Up@@ -144,11 +146,13 @@ export type InteropJavaScriptExportsTable = [
export type NativeBrowserExports = {
getWasmMemory: getWasmMemoryType,
getWasmTable: getWasmTableType,
SystemJS_ScheduleDiagnosticServer: typeof SystemJS_ScheduleDiagnosticServer,
}

export type NativeBrowserExportsTable = [
getWasmMemoryType,
getWasmTableType,
typeof SystemJS_ScheduleDiagnosticServer,
]

export type BrowserUtilsExports = {
Expand DownExpand Up@@ -186,9 +190,19 @@ export type BrowserUtilsExportsTable = [
export type DiagnosticsExportsTable = [
typeof symbolicateStackTrace,
typeof installNativeSymbols,
typeof ds_rt_websocket_create,
typeof ds_rt_websocket_send,
typeof ds_rt_websocket_poll,
typeof ds_rt_websocket_recv,
typeof ds_rt_websocket_close,
]

export type DiagnosticsExports = {
symbolicateStackTrace: typeof symbolicateStackTrace,
installNativeSymbols: typeof installNativeSymbols,
ds_rt_websocket_create: typeof ds_rt_websocket_create,
ds_rt_websocket_send: typeof ds_rt_websocket_send,
ds_rt_websocket_poll: typeof ds_rt_websocket_poll,
ds_rt_websocket_recv: typeof ds_rt_websocket_recv,
ds_rt_websocket_close: typeof ds_rt_websocket_close,
}
2 changes: 1 addition & 1 deletion src/native/libs/Common/JavaScript/types/public-api.ts
Original file line numberDiff line numberDiff line change
Expand Up@@ -658,7 +658,7 @@ export type DiagnosticsAPIType = {
export type DiagnosticCommandProviderV2 = {
keywords: [number, number];
logLevel: number;
provider_name: string;
providerName: string;
arguments: string | null;
};
Comment thread
pavelsavara marked this conversation as resolved.

Expand Down
Loading
Loading
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions src/mono/browser/runtime/cwraps.ts
Original file line numberDiff line numberDiff line change
Expand Up@@ -41,7 +41,7 @@ const fn_signatures: SigLine[] = [
[true, "mono_wasm_parse_runtime_options", null, ["number", "number"]],
[true, "mono_wasm_strdup", "number", ["string"]],
[true, "mono_background_exec", null, []],
[true, "mono_wasm_ds_exec", null, []],
[true, "SystemJS_ExecuteDiagnosticServerCallback", null, []],
[true, "mono_wasm_execute_timer", null, []],
[true, "wasm_load_icu_data", "number", ["number"]],
[false, "mono_wasm_add_assembly", "number", ["string", "number", "number"]],
Expand DownExpand Up@@ -168,7 +168,7 @@ export interface t_Cwraps {
mono_wasm_strdup(value: string): number;
mono_wasm_parse_runtime_options(length: number, argv: VoidPtr): void;
mono_background_exec(): void;
mono_wasm_ds_exec(): void;
SystemJS_ExecuteDiagnosticServerCallback(): void;
mono_wasm_execute_timer(): void;
wasm_load_icu_data(offset: VoidPtr): number;
mono_wasm_add_assembly(name: string, data: VoidPtr, size: number): number;
Expand Down
16 changes: 8 additions & 8 deletions src/mono/browser/runtime/diagnostics/client-commands.ts
Original file line numberDiff line numberDiff line change
Expand Up@@ -66,7 +66,7 @@ export function commandGcHeapDump (options:DiagnosticCommandOptions) {
// GC_KEYWORD 0x0000001
],
logLevel: 5,
provider_name: "Microsoft-Windows-DotNETRuntime",
providerName: "Microsoft-Windows-DotNETRuntime",
arguments: null
},
...options.extraProviders || [],
Expand All@@ -89,7 +89,7 @@ export function commandCounters (options:DiagnosticCommandOptions) {
{
keywords: [0, Keywords.GCHandle],
logLevel: 4,
provider_name: "System.Diagnostics.Metrics",
providerName: "System.Diagnostics.Metrics",
arguments: `SessionId=SHARED;Metrics=System.Runtime;RefreshInterval=${options.intervalSeconds || 1};MaxTimeSeries=1000;MaxHistograms=10;ClientId=${uuidv4()};`,
},
...options.extraProviders || [],
Expand All@@ -109,7 +109,7 @@ export function commandSampleProfiler (options:DiagnosticCommandOptions) {
0x0000_0000,
],
logLevel: 4,
provider_name: "Microsoft-DotNETCore-SampleProfiler",
providerName: "Microsoft-DotNETCore-SampleProfiler",
arguments: null
},
...options.extraProviders || [],
Expand All@@ -130,7 +130,7 @@ function commandCollectTracing2 (payload2:PayloadV2) {
for (const provider of payload2.providers) {
message.push(...serializeUint64(provider.keywords));
message.push(...serializeUint32(provider.logLevel));
message.push(...serializeString(provider.provider_name));
message.push(...serializeString(provider.providerName));
message.push(...serializeString(provider.arguments));
}
return Uint8Array.from(message);
Expand DownExpand Up@@ -199,7 +199,7 @@ const enum Keywords {
Exception = 0x8000,
//
// Summary:
// Log events associated with the threadpoo, and other threading events.
// Log events associated with the threadpool, and other threading events.
Threading = 0x10000,
//
// Summary:
Expand DownExpand Up@@ -259,7 +259,7 @@ const enum Keywords {
// This suppresses NGEN events on V4.0 (where you have NGEN PDBs), but not on V2.0
// (which does not know about this bit and also does not have NGEN PDBS).
// eslint-disable-next-line @typescript-eslint/no-duplicate-enum-values
SupressNGen = 0x40000,
SuppressNGen = 0x40000,
//
// Summary:
// TODO document
Expand DownExpand Up@@ -427,7 +427,7 @@ function computeCollectTracing2PayloadByteLength (payload2:PayloadV2) {
for (const provider of payload2.providers) {
len += 8; // keywords
len += 4; // level
len += computeStringByteLength(provider.provider_name);
len += computeStringByteLength(provider.providerName);
len += computeStringByteLength(provider.arguments);
}
return len;
Expand All@@ -436,7 +436,7 @@ function computeCollectTracing2PayloadByteLength (payload2:PayloadV2) {
type ProviderV2 ={
keywords: [ number, Keywords ],
logLevel: number,
provider_name: string,
providerName: string,
arguments: string|null
}

Expand Down
2 changes: 1 addition & 1 deletion src/mono/browser/runtime/diagnostics/common.ts
Original file line numberDiff line numberDiff line change
Expand Up@@ -16,7 +16,7 @@ export function diagnosticServerEventLoop () {
if (loaderHelpers.is_runtime_running()) {
try {
runtimeHelpers.mono_background_exec();// give GC chance to run
runtimeHelpers.mono_wasm_ds_exec();
runtimeHelpers.SystemJS_ExecuteDiagnosticServerCallback();
scheduleDiagnosticServerEventLoop(100);
} catch (ex) {
loaderHelpers.mono_exit(1, ex);
Expand Down
4 changes: 2 additions & 2 deletions src/mono/browser/runtime/diagnostics/diagnostics-ws.ts
Original file line numberDiff line numberDiff line change
Expand Up@@ -27,7 +27,7 @@ class DiagnosticConnectionWS extends DiagnosticConnectionBase implements IDiagno
};
ws.addEventListener("open", () => {
for (const data of this.messagesToSend) {
ws.send(data);
ws.send(data as any);
}
this.messagesToSend = [];
diagnosticServerEventLoop();
Expand All@@ -49,7 +49,7 @@ class DiagnosticConnectionWS extends DiagnosticConnectionBase implements IDiagno
return super.store(message);
}

this.ws!.send(message);
this.ws!.send(message as any);

return message.length;
}
Expand Down
2 changes: 1 addition & 1 deletion src/mono/browser/runtime/dotnet.d.ts
Original file line numberDiff line numberDiff line change
Expand Up@@ -718,7 +718,7 @@ type DiagnosticsAPIType = {
type DiagnosticCommandProviderV2 = {
keywords: [number, number];
logLevel: number;
provider_name: string;
providerName: string;
arguments: string | null;
};
type DiagnosticCommandOptions = {
Expand Down
2 changes: 1 addition & 1 deletion src/mono/browser/runtime/exports.ts
Original file line numberDiff line numberDiff line change
Expand Up@@ -44,7 +44,7 @@ function initializeExports (globalObjects: GlobalObjects): RuntimeAPI {
utf8ToString,
SystemJS_GetCurrentProcessId,
mono_background_exec: () => tcwraps.mono_background_exec(),
mono_wasm_ds_exec: () => tcwraps.mono_wasm_ds_exec(),
SystemJS_ExecuteDiagnosticServerCallback: () => tcwraps.SystemJS_ExecuteDiagnosticServerCallback(),
};
if (WasmEnableThreads) {
rh.dumpThreads = mono_wasm_dump_threads;
Expand Down
2 changes: 1 addition & 1 deletion src/mono/browser/runtime/types/index.ts
Original file line numberDiff line numberDiff line change
Expand Up@@ -703,7 +703,7 @@ export type DiagnosticsAPIType = {
export type DiagnosticCommandProviderV2 = {
keywords: [ number, number ],
logLevel: number,
provider_name: string,
providerName: string,
arguments: string|null
}

Expand Down
2 changes: 1 addition & 1 deletion src/mono/browser/runtime/types/internal.ts
Original file line numberDiff line numberDiff line change
Expand Up@@ -240,7 +240,7 @@ export type RuntimeHelpers = {
mono_wasm_print_thread_dump: () => void,
utf8ToString: (ptr: CharPtr) => string,
mono_background_exec: () => void,
mono_wasm_ds_exec: () => void,
SystemJS_ExecuteDiagnosticServerCallback: () => void,
SystemJS_GetCurrentProcessId: () => number,
}

Expand Down
4 changes: 2 additions & 2 deletions src/mono/mono/eventpipe/ep-rt-mono.h
Original file line numberDiff line numberDiff line change
Expand Up@@ -1011,7 +1011,7 @@ ep_rt_queue_job (
// see if it's done or needs to be scheduled again
if (!done) {
// self schedule again
mono_schedule_ds_job (cb, params);
SystemJS_DiagnosticServerQueueJob (cb, params);
}

return true;
Expand DownExpand Up@@ -1045,7 +1045,7 @@ ep_rt_thread_sleep (uint64_t ns)
g_usleep ((gulong)(ns / 1000));
MONO_EXIT_GC_SAFE;
}
#endif
#endif // PERFTRACING_DISABLE_THREADS
}

static
Expand Down
2 changes: 1 addition & 1 deletion src/mono/mono/mini/mini-wasm.c
Original file line numberDiff line numberDiff line change
Expand Up@@ -453,7 +453,7 @@ G_BEGIN_DECLS
#ifdef DISABLE_THREADS
EMSCRIPTEN_KEEPALIVE void mono_wasm_execute_timer (void);
EMSCRIPTEN_KEEPALIVE void mono_background_exec (void);
EMSCRIPTEN_KEEPALIVE void mono_wasm_ds_exec (void);
EMSCRIPTEN_KEEPALIVE void SystemJS_ExecuteDiagnosticServerCallback (void);
extern void SystemJS_ScheduleTimerImpl (int shortestDueTimeMs);
#else
extern void SystemJS_ScheduleSynchronizationContext(MonoNativeThreadId target_thread);
Expand Down
10 changes: 5 additions & 5 deletions src/mono/mono/utils/mono-threads-wasm.c
Original file line numberDiff line numberDiff line change
Expand Up@@ -342,7 +342,7 @@ typedef struct {
} DsJobRegistration;

void
mono_schedule_ds_job (ds_job_cb cb, void* data)
SystemJS_DiagnosticServerQueueJob (ds_job_cb cb, void* data)
{
g_assert (cb);
DsJobRegistration* reg = g_new0 (DsJobRegistration, 1);
Expand DownExpand Up@@ -372,7 +372,7 @@ mono_background_exec (void)

G_EXTERN_C
EMSCRIPTEN_KEEPALIVE void
mono_wasm_ds_exec (void)
SystemJS_ExecuteDiagnosticServerCallback (void)
{
MONO_ENTER_GC_UNSAFE;
GSList *j1 = jobs_ds, *cur1;
Expand All@@ -381,13 +381,13 @@ mono_wasm_ds_exec (void)
for (cur1 = j1; cur1; cur1 = cur1->next) {
DsJobRegistration* reg = (DsJobRegistration*)cur1->data;
g_assert (reg->cb);
THREADS_DEBUG ("mono_wasm_ds_exec running job %p \n", (gpointer)cb);
THREADS_DEBUG ("SystemJS_ExecuteDiagnosticServerCallback running job %p \n", (gpointer)reg->cb);
gsize done = reg->cb (reg->data);
if (done){
THREADS_DEBUG ("mono_wasm_ds_exec done job %p \n", (gpointer)cb);
THREADS_DEBUG ("SystemJS_ExecuteDiagnosticServerCallback done job %p \n", (gpointer)reg->cb);
g_free (reg);
} else {
THREADS_DEBUG ("mono_wasm_ds_exec scheduling job %p again \n", (gpointer)cb);
THREADS_DEBUG ("SystemJS_ExecuteDiagnosticServerCallback scheduling job %p again \n", (gpointer)reg->cb);
jobs_ds = g_slist_prepend (jobs_ds, (gpointer)reg);
}
}
Expand Down
2 changes: 1 addition & 1 deletion src/mono/mono/utils/mono-threads-wasm.h
Original file line numberDiff line numberDiff line change
Expand Up@@ -89,7 +89,7 @@ mono_wasm_atomic_wait_i32 (volatile int32_t *addr, int32_t expected, int32_t tim

#else /* DISABLE_THREADS */
void mono_background_exec (void);
void mono_wasm_ds_exec (void);
void SystemJS_ExecuteDiagnosticServerCallback (void);
#endif /* DISABLE_THREADS */

void
Expand Down
2 changes: 1 addition & 1 deletion src/mono/mono/utils/mono-threads.h
Original file line numberDiff line numberDiff line change
Expand Up@@ -848,7 +848,7 @@ typedef void (*background_job_cb)(void);
typedef gsize (*ds_job_cb)(void* data);
#ifdef DISABLE_THREADS
void SystemJS_ScheduleBackgroundJob (background_job_cb cb);
void mono_schedule_ds_job (ds_job_cb cb, void* data);
void SystemJS_DiagnosticServerQueueJob (ds_job_cb cb, void* data);
#else
void SystemJS_ScheduleSynchronizationContext(MonoNativeThreadId target_thread);
#endif // DISABLE_THREADS
Expand Down
9 changes: 9 additions & 0 deletions src/native/libs/Common/JavaScript/CMakeLists.txt
Original file line numberDiff line numberDiff line change
Expand Up@@ -58,14 +58,23 @@ set(ROLLUP_TS_SOURCES
"${CLR_SRC_NATIVE_DIR}/libs/Common/JavaScript/types/public-api.ts"
"${CLR_SRC_NATIVE_DIR}/libs/Common/JavaScript/types/v8.d.ts"

"${CLR_SRC_NATIVE_DIR}/libs/System.Native.Browser/diagnostics/client-commands.ts"
"${CLR_SRC_NATIVE_DIR}/libs/System.Native.Browser/diagnostics/common.ts"
"${CLR_SRC_NATIVE_DIR}/libs/System.Native.Browser/diagnostics/console-proxy.ts"
"${CLR_SRC_NATIVE_DIR}/libs/System.Native.Browser/diagnostics/cross-module.ts"
"${CLR_SRC_NATIVE_DIR}/libs/System.Native.Browser/diagnostics/diagnostic-server.ts"
"${CLR_SRC_NATIVE_DIR}/libs/System.Native.Browser/diagnostics/diagnostic-server-js.ts"
"${CLR_SRC_NATIVE_DIR}/libs/System.Native.Browser/diagnostics/diagnostic-server-ws.ts"
"${CLR_SRC_NATIVE_DIR}/libs/System.Native.Browser/diagnostics/dotnet-counters.ts"
"${CLR_SRC_NATIVE_DIR}/libs/System.Native.Browser/diagnostics/dotnet-cpu-profiler.ts"
"${CLR_SRC_NATIVE_DIR}/libs/System.Native.Browser/diagnostics/dotnet-gcdump.ts"
"${CLR_SRC_NATIVE_DIR}/libs/System.Native.Browser/diagnostics/exit.ts"
"${CLR_SRC_NATIVE_DIR}/libs/System.Native.Browser/diagnostics/index.ts"
"${CLR_SRC_NATIVE_DIR}/libs/System.Native.Browser/diagnostics/per-module.ts"
"${CLR_SRC_NATIVE_DIR}/libs/System.Native.Browser/diagnostics/symbolicate.ts"
"${CLR_SRC_NATIVE_DIR}/libs/System.Native.Browser/diagnostics/types.ts"
"${CLR_SRC_NATIVE_DIR}/libs/System.Native.Browser/native/crypto.ts"
"${CLR_SRC_NATIVE_DIR}/libs/System.Native.Browser/native/diagnostics.ts"
"${CLR_SRC_NATIVE_DIR}/libs/System.Native.Browser/native/globalization-locale.ts"
"${CLR_SRC_NATIVE_DIR}/libs/System.Native.Browser/native/index.ts"
"${CLR_SRC_NATIVE_DIR}/libs/System.Native.Browser/native/main.ts"
Expand Down
6 changes: 6 additions & 0 deletions src/native/libs/Common/JavaScript/cross-module/index.ts
Original file line numberDiff line numberDiff line change
Expand Up@@ -177,6 +177,7 @@ export function dotnetUpdateInternalsSubscriber() {
const interopLocal: NativeBrowserExports = {
getWasmMemory: table[0],
getWasmTable: table[1],
SystemJS_ScheduleDiagnosticServer: table[2],
};
Object.assign(interop, interopLocal);
}
Expand All@@ -186,6 +187,11 @@ export function dotnetUpdateInternalsSubscriber() {
const interopLocal: DiagnosticsExports = {
symbolicateStackTrace: table[0],
installNativeSymbols: table[1],
ds_rt_websocket_create: table[2],
ds_rt_websocket_send: table[3],
ds_rt_websocket_poll: table[4],
ds_rt_websocket_recv: table[5],
ds_rt_websocket_close: table[6],
};
Object.assign(interop, interopLocal);
}
Expand Down
2 changes: 1 addition & 1 deletion src/native/libs/Common/JavaScript/loader/dotnet.d.ts
Original file line numberDiff line numberDiff line change
Expand Up@@ -688,7 +688,7 @@ type DiagnosticsAPIType = {
type DiagnosticCommandProviderV2 = {
keywords: [number, number];
logLevel: number;
provider_name: string;
providerName: string;
arguments: string | null;
};
type DiagnosticCommandOptions = {
Expand Down
19 changes: 9 additions & 10 deletions src/native/libs/Common/JavaScript/loader/exit.ts
Original file line numberDiff line numberDiff line change
Expand Up@@ -88,19 +88,18 @@ export function exit(exitCode: number, reason: any): void {
reason.message = message;
}

// force stack property to be generated before we shut down managed code, or create current stack if it doesn't exist
const stack = "" + (reason.stack || (new Error().stack));
try {
Object.defineProperty(reason, "stack", {
get: () => stack
});
} catch (e) {
// ignore
}

// don't report this error twice
const alreadySilent = !!reason.silent;
const alreadyExisted = isExited();

// force stack property to be generated before we shut down managed code, or create current stack if it doesn't exist
let stack;
if (typeof reason["getManageStack"] === "function" && isRuntimeRunning()) {
stack = reason.getManageStack();
} else {
stack = reason.stack || new Error().stack || "";
}

reason.silent = true;
let shouldQuitNow = true;

Expand Down
2 changes: 1 addition & 1 deletion src/native/libs/Common/JavaScript/loader/logging.ts
Original file line numberDiff line numberDiff line change
Expand Up@@ -54,7 +54,7 @@ export function normalizeException(reason: any) {
let stack: string | undefined;
if (reason) {
if (typeof reason === "object" && reason.status === undefined) {
if (reason.stack === undefined) {
if (reason.stack !== undefined) {
stack = reason.stack + "";
} else {
stack = new Error().stack + "";
Expand Down
3 changes: 3 additions & 0 deletions src/native/libs/Common/JavaScript/types/ems-ambient.ts
Original file line numberDiff line numberDiff line change
Expand Up@@ -28,6 +28,8 @@ export type EmsAmbientSymbolsType = EmscriptenModuleInternal & {
_SystemJS_ExecuteTimerCallback: () => void;
_SystemJS_ExecuteBackgroundJobCallback: () => void;
_SystemJS_ExecuteFinalizationCallback: () => void;
_SystemJS_ExecuteDiagnosticServerCallback: () => void;
_SystemJS_ScheduleDiagnosticServer: () => void;
_BrowserHost_CreateHostContract: () => VoidPtr;
_BrowserHost_InitializeDotnet: (propertiesCount: number, propertyKeys: CharPtrPtr, propertyValues: CharPtrPtr) => number;
_BrowserHost_ExecuteAssembly: (mainAssemblyNamePtr: number, argsLength: number, argsPtr: number) => number;
Expand All@@ -51,6 +53,7 @@ export type EmsAmbientSymbolsType = EmscriptenModuleInternal & {
lastScheduledTimerId?: number;
lastScheduledThreadPoolId?: number;
lastScheduledFinalizationId?: number;
lastScheduledDiagnosticServerId?: number;
cryptoWarnOnce?: boolean;
isAborting?: boolean;
isAsyncMain?: boolean;
Expand Down
14 changes: 14 additions & 0 deletions src/native/libs/Common/JavaScript/types/exchange.ts
Original file line numberDiff line numberDiff line change
Expand Up@@ -24,6 +24,8 @@ import type { cancelPromise } from "../../../System.Runtime.InteropServices.Java
import type { abortInteropTimers } from "../../../System.Runtime.InteropServices.JavaScript.Native/interop/scheduling";

import type { installNativeSymbols, symbolicateStackTrace } from "../../../System.Native.Browser/diagnostics/symbolicate";
import type { SystemJS_ScheduleDiagnosticServer } from "../../../System.Native.Browser/native";
import type { ds_rt_websocket_close, ds_rt_websocket_create, ds_rt_websocket_poll, ds_rt_websocket_recv, ds_rt_websocket_send } from "../../../System.Native.Browser/diagnostics/diagnostic-server";


type getWasmMemoryType = () => WebAssembly.Memory;
Expand DownExpand Up@@ -144,11 +146,13 @@ export type InteropJavaScriptExportsTable = [
export type NativeBrowserExports = {
getWasmMemory: getWasmMemoryType,
getWasmTable: getWasmTableType,
SystemJS_ScheduleDiagnosticServer: typeof SystemJS_ScheduleDiagnosticServer,
}

export type NativeBrowserExportsTable = [
getWasmMemoryType,
getWasmTableType,
typeof SystemJS_ScheduleDiagnosticServer,
]

export type BrowserUtilsExports = {
Expand DownExpand Up@@ -186,9 +190,19 @@ export type BrowserUtilsExportsTable = [
export type DiagnosticsExportsTable = [
typeof symbolicateStackTrace,
typeof installNativeSymbols,
typeof ds_rt_websocket_create,
typeof ds_rt_websocket_send,
typeof ds_rt_websocket_poll,
typeof ds_rt_websocket_recv,
typeof ds_rt_websocket_close,
]

export type DiagnosticsExports = {
symbolicateStackTrace: typeof symbolicateStackTrace,
installNativeSymbols: typeof installNativeSymbols,
ds_rt_websocket_create: typeof ds_rt_websocket_create,
ds_rt_websocket_send: typeof ds_rt_websocket_send,
ds_rt_websocket_poll: typeof ds_rt_websocket_poll,
ds_rt_websocket_recv: typeof ds_rt_websocket_recv,
ds_rt_websocket_close: typeof ds_rt_websocket_close,
}
2 changes: 1 addition & 1 deletion src/native/libs/Common/JavaScript/types/public-api.ts
Original file line numberDiff line numberDiff line change
Expand Up@@ -658,7 +658,7 @@ export type DiagnosticsAPIType = {
export type DiagnosticCommandProviderV2 = {
keywords: [number, number];
logLevel: number;
provider_name: string;
providerName: string;
arguments: string | null;
};
Comment thread
pavelsavara marked this conversation as resolved.

Expand Down
Loading
Loading
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions src/mono/browser/runtime/cwraps.ts
Original file line numberDiff line numberDiff line change
Expand Up@@ -41,7 +41,7 @@ const fn_signatures: SigLine[] = [
[true, "mono_wasm_parse_runtime_options", null, ["number", "number"]],
[true, "mono_wasm_strdup", "number", ["string"]],
[true, "mono_background_exec", null, []],
[true, "mono_wasm_ds_exec", null, []],
[true, "SystemJS_ExecuteDiagnosticServerCallback", null, []],
[true, "mono_wasm_execute_timer", null, []],
[true, "wasm_load_icu_data", "number", ["number"]],
[false, "mono_wasm_add_assembly", "number", ["string", "number", "number"]],
Expand DownExpand Up@@ -168,7 +168,7 @@ export interface t_Cwraps {
mono_wasm_strdup(value: string): number;
mono_wasm_parse_runtime_options(length: number, argv: VoidPtr): void;
mono_background_exec(): void;
mono_wasm_ds_exec(): void;
SystemJS_ExecuteDiagnosticServerCallback(): void;
mono_wasm_execute_timer(): void;
wasm_load_icu_data(offset: VoidPtr): number;
mono_wasm_add_assembly(name: string, data: VoidPtr, size: number): number;
Expand Down
16 changes: 8 additions & 8 deletions src/mono/browser/runtime/diagnostics/client-commands.ts
Original file line numberDiff line numberDiff line change
Expand Up@@ -66,7 +66,7 @@ export function commandGcHeapDump (options:DiagnosticCommandOptions) {
// GC_KEYWORD 0x0000001
],
logLevel: 5,
provider_name: "Microsoft-Windows-DotNETRuntime",
providerName: "Microsoft-Windows-DotNETRuntime",
arguments: null
},
...options.extraProviders || [],
Expand All@@ -89,7 +89,7 @@ export function commandCounters (options:DiagnosticCommandOptions) {
{
keywords: [0, Keywords.GCHandle],
logLevel: 4,
provider_name: "System.Diagnostics.Metrics",
providerName: "System.Diagnostics.Metrics",
arguments: `SessionId=SHARED;Metrics=System.Runtime;RefreshInterval=${options.intervalSeconds || 1};MaxTimeSeries=1000;MaxHistograms=10;ClientId=${uuidv4()};`,
},
...options.extraProviders || [],
Expand All@@ -109,7 +109,7 @@ export function commandSampleProfiler (options:DiagnosticCommandOptions) {
0x0000_0000,
],
logLevel: 4,
provider_name: "Microsoft-DotNETCore-SampleProfiler",
providerName: "Microsoft-DotNETCore-SampleProfiler",
arguments: null
},
...options.extraProviders || [],
Expand All@@ -130,7 +130,7 @@ function commandCollectTracing2 (payload2:PayloadV2) {
for (const provider of payload2.providers) {
message.push(...serializeUint64(provider.keywords));
message.push(...serializeUint32(provider.logLevel));
message.push(...serializeString(provider.provider_name));
message.push(...serializeString(provider.providerName));
message.push(...serializeString(provider.arguments));
}
return Uint8Array.from(message);
Expand DownExpand Up@@ -199,7 +199,7 @@ const enum Keywords {
Exception = 0x8000,
//
// Summary:
// Log events associated with the threadpoo, and other threading events.
// Log events associated with the threadpool, and other threading events.
Threading = 0x10000,
//
// Summary:
Expand DownExpand Up@@ -259,7 +259,7 @@ const enum Keywords {
// This suppresses NGEN events on V4.0 (where you have NGEN PDBs), but not on V2.0
// (which does not know about this bit and also does not have NGEN PDBS).
// eslint-disable-next-line @typescript-eslint/no-duplicate-enum-values
SupressNGen = 0x40000,
SuppressNGen = 0x40000,
//
// Summary:
// TODO document
Expand DownExpand Up@@ -427,7 +427,7 @@ function computeCollectTracing2PayloadByteLength (payload2:PayloadV2) {
for (const provider of payload2.providers) {
len += 8; // keywords
len += 4; // level
len += computeStringByteLength(provider.provider_name);
len += computeStringByteLength(provider.providerName);
len += computeStringByteLength(provider.arguments);
}
return len;
Expand All@@ -436,7 +436,7 @@ function computeCollectTracing2PayloadByteLength (payload2:PayloadV2) {
type ProviderV2 ={
keywords: [ number, Keywords ],
logLevel: number,
provider_name: string,
providerName: string,
arguments: string|null
}

Expand Down
2 changes: 1 addition & 1 deletion src/mono/browser/runtime/diagnostics/common.ts
Original file line numberDiff line numberDiff line change
Expand Up@@ -16,7 +16,7 @@ export function diagnosticServerEventLoop () {
if (loaderHelpers.is_runtime_running()) {
try {
runtimeHelpers.mono_background_exec();// give GC chance to run
runtimeHelpers.mono_wasm_ds_exec();
runtimeHelpers.SystemJS_ExecuteDiagnosticServerCallback();
scheduleDiagnosticServerEventLoop(100);
} catch (ex) {
loaderHelpers.mono_exit(1, ex);
Expand Down
4 changes: 2 additions & 2 deletions src/mono/browser/runtime/diagnostics/diagnostics-ws.ts
Original file line numberDiff line numberDiff line change
Expand Up@@ -27,7 +27,7 @@ class DiagnosticConnectionWS extends DiagnosticConnectionBase implements IDiagno
};
ws.addEventListener("open", () => {
for (const data of this.messagesToSend) {
ws.send(data);
ws.send(data as any);
}
this.messagesToSend = [];
diagnosticServerEventLoop();
Expand All@@ -49,7 +49,7 @@ class DiagnosticConnectionWS extends DiagnosticConnectionBase implements IDiagno
return super.store(message);
}

this.ws!.send(message);
this.ws!.send(message as any);

return message.length;
}
Expand Down
2 changes: 1 addition & 1 deletion src/mono/browser/runtime/dotnet.d.ts
Original file line numberDiff line numberDiff line change
Expand Up@@ -718,7 +718,7 @@ type DiagnosticsAPIType = {
type DiagnosticCommandProviderV2 = {
keywords: [number, number];
logLevel: number;
provider_name: string;
providerName: string;
arguments: string | null;
};
type DiagnosticCommandOptions = {
Expand Down
2 changes: 1 addition & 1 deletion src/mono/browser/runtime/exports.ts
Original file line numberDiff line numberDiff line change
Expand Up@@ -44,7 +44,7 @@ function initializeExports (globalObjects: GlobalObjects): RuntimeAPI {
utf8ToString,
SystemJS_GetCurrentProcessId,
mono_background_exec: () => tcwraps.mono_background_exec(),
mono_wasm_ds_exec: () => tcwraps.mono_wasm_ds_exec(),
SystemJS_ExecuteDiagnosticServerCallback: () => tcwraps.SystemJS_ExecuteDiagnosticServerCallback(),
};
if (WasmEnableThreads) {
rh.dumpThreads = mono_wasm_dump_threads;
Expand Down
2 changes: 1 addition & 1 deletion src/mono/browser/runtime/types/index.ts
Original file line numberDiff line numberDiff line change
Expand Up@@ -703,7 +703,7 @@ export type DiagnosticsAPIType = {
export type DiagnosticCommandProviderV2 = {
keywords: [ number, number ],
logLevel: number,
provider_name: string,
providerName: string,
arguments: string|null
}

Expand Down
2 changes: 1 addition & 1 deletion src/mono/browser/runtime/types/internal.ts
Original file line numberDiff line numberDiff line change
Expand Up@@ -240,7 +240,7 @@ export type RuntimeHelpers = {
mono_wasm_print_thread_dump: () => void,
utf8ToString: (ptr: CharPtr) => string,
mono_background_exec: () => void,
mono_wasm_ds_exec: () => void,
SystemJS_ExecuteDiagnosticServerCallback: () => void,
SystemJS_GetCurrentProcessId: () => number,
}

Expand Down
4 changes: 2 additions & 2 deletions src/mono/mono/eventpipe/ep-rt-mono.h
Original file line numberDiff line numberDiff line change
Expand Up@@ -1011,7 +1011,7 @@ ep_rt_queue_job (
// see if it's done or needs to be scheduled again
if (!done) {
// self schedule again
mono_schedule_ds_job (cb, params);
SystemJS_DiagnosticServerQueueJob (cb, params);
}

return true;
Expand DownExpand Up@@ -1045,7 +1045,7 @@ ep_rt_thread_sleep (uint64_t ns)
g_usleep ((gulong)(ns / 1000));
MONO_EXIT_GC_SAFE;
}
#endif
#endif // PERFTRACING_DISABLE_THREADS
}

static
Expand Down
2 changes: 1 addition & 1 deletion src/mono/mono/mini/mini-wasm.c
Original file line numberDiff line numberDiff line change
Expand Up@@ -453,7 +453,7 @@ G_BEGIN_DECLS
#ifdef DISABLE_THREADS
EMSCRIPTEN_KEEPALIVE void mono_wasm_execute_timer (void);
EMSCRIPTEN_KEEPALIVE void mono_background_exec (void);
EMSCRIPTEN_KEEPALIVE void mono_wasm_ds_exec (void);
EMSCRIPTEN_KEEPALIVE void SystemJS_ExecuteDiagnosticServerCallback (void);
extern void SystemJS_ScheduleTimerImpl (int shortestDueTimeMs);
#else
extern void SystemJS_ScheduleSynchronizationContext(MonoNativeThreadId target_thread);
Expand Down
10 changes: 5 additions & 5 deletions src/mono/mono/utils/mono-threads-wasm.c
Original file line numberDiff line numberDiff line change
Expand Up@@ -342,7 +342,7 @@ typedef struct {
} DsJobRegistration;

void
mono_schedule_ds_job (ds_job_cb cb, void* data)
SystemJS_DiagnosticServerQueueJob (ds_job_cb cb, void* data)
{
g_assert (cb);
DsJobRegistration* reg = g_new0 (DsJobRegistration, 1);
Expand DownExpand Up@@ -372,7 +372,7 @@ mono_background_exec (void)

G_EXTERN_C
EMSCRIPTEN_KEEPALIVE void
mono_wasm_ds_exec (void)
SystemJS_ExecuteDiagnosticServerCallback (void)
{
MONO_ENTER_GC_UNSAFE;
GSList *j1 = jobs_ds, *cur1;
Expand All@@ -381,13 +381,13 @@ mono_wasm_ds_exec (void)
for (cur1 = j1; cur1; cur1 = cur1->next) {
DsJobRegistration* reg = (DsJobRegistration*)cur1->data;
g_assert (reg->cb);
THREADS_DEBUG ("mono_wasm_ds_exec running job %p \n", (gpointer)cb);
THREADS_DEBUG ("SystemJS_ExecuteDiagnosticServerCallback running job %p \n", (gpointer)reg->cb);
gsize done = reg->cb (reg->data);
if (done){
THREADS_DEBUG ("mono_wasm_ds_exec done job %p \n", (gpointer)cb);
THREADS_DEBUG ("SystemJS_ExecuteDiagnosticServerCallback done job %p \n", (gpointer)reg->cb);
g_free (reg);
} else {
THREADS_DEBUG ("mono_wasm_ds_exec scheduling job %p again \n", (gpointer)cb);
THREADS_DEBUG ("SystemJS_ExecuteDiagnosticServerCallback scheduling job %p again \n", (gpointer)reg->cb);
jobs_ds = g_slist_prepend (jobs_ds, (gpointer)reg);
}
}
Expand Down
2 changes: 1 addition & 1 deletion src/mono/mono/utils/mono-threads-wasm.h
Original file line numberDiff line numberDiff line change
Expand Up@@ -89,7 +89,7 @@ mono_wasm_atomic_wait_i32 (volatile int32_t *addr, int32_t expected, int32_t tim

#else /* DISABLE_THREADS */
void mono_background_exec (void);
void mono_wasm_ds_exec (void);
void SystemJS_ExecuteDiagnosticServerCallback (void);
#endif /* DISABLE_THREADS */

void
Expand Down
2 changes: 1 addition & 1 deletion src/mono/mono/utils/mono-threads.h
Original file line numberDiff line numberDiff line change
Expand Up@@ -848,7 +848,7 @@ typedef void (*background_job_cb)(void);
typedef gsize (*ds_job_cb)(void* data);
#ifdef DISABLE_THREADS
void SystemJS_ScheduleBackgroundJob (background_job_cb cb);
void mono_schedule_ds_job (ds_job_cb cb, void* data);
void SystemJS_DiagnosticServerQueueJob (ds_job_cb cb, void* data);
#else
void SystemJS_ScheduleSynchronizationContext(MonoNativeThreadId target_thread);
#endif // DISABLE_THREADS
Expand Down
9 changes: 9 additions & 0 deletions src/native/libs/Common/JavaScript/CMakeLists.txt
Original file line numberDiff line numberDiff line change
Expand Up@@ -58,14 +58,23 @@ set(ROLLUP_TS_SOURCES
"${CLR_SRC_NATIVE_DIR}/libs/Common/JavaScript/types/public-api.ts"
"${CLR_SRC_NATIVE_DIR}/libs/Common/JavaScript/types/v8.d.ts"

"${CLR_SRC_NATIVE_DIR}/libs/System.Native.Browser/diagnostics/client-commands.ts"
"${CLR_SRC_NATIVE_DIR}/libs/System.Native.Browser/diagnostics/common.ts"
"${CLR_SRC_NATIVE_DIR}/libs/System.Native.Browser/diagnostics/console-proxy.ts"
"${CLR_SRC_NATIVE_DIR}/libs/System.Native.Browser/diagnostics/cross-module.ts"
"${CLR_SRC_NATIVE_DIR}/libs/System.Native.Browser/diagnostics/diagnostic-server.ts"
"${CLR_SRC_NATIVE_DIR}/libs/System.Native.Browser/diagnostics/diagnostic-server-js.ts"
"${CLR_SRC_NATIVE_DIR}/libs/System.Native.Browser/diagnostics/diagnostic-server-ws.ts"
"${CLR_SRC_NATIVE_DIR}/libs/System.Native.Browser/diagnostics/dotnet-counters.ts"
"${CLR_SRC_NATIVE_DIR}/libs/System.Native.Browser/diagnostics/dotnet-cpu-profiler.ts"
"${CLR_SRC_NATIVE_DIR}/libs/System.Native.Browser/diagnostics/dotnet-gcdump.ts"
"${CLR_SRC_NATIVE_DIR}/libs/System.Native.Browser/diagnostics/exit.ts"
"${CLR_SRC_NATIVE_DIR}/libs/System.Native.Browser/diagnostics/index.ts"
"${CLR_SRC_NATIVE_DIR}/libs/System.Native.Browser/diagnostics/per-module.ts"
"${CLR_SRC_NATIVE_DIR}/libs/System.Native.Browser/diagnostics/symbolicate.ts"
"${CLR_SRC_NATIVE_DIR}/libs/System.Native.Browser/diagnostics/types.ts"
"${CLR_SRC_NATIVE_DIR}/libs/System.Native.Browser/native/crypto.ts"
"${CLR_SRC_NATIVE_DIR}/libs/System.Native.Browser/native/diagnostics.ts"
"${CLR_SRC_NATIVE_DIR}/libs/System.Native.Browser/native/globalization-locale.ts"
"${CLR_SRC_NATIVE_DIR}/libs/System.Native.Browser/native/index.ts"
"${CLR_SRC_NATIVE_DIR}/libs/System.Native.Browser/native/main.ts"
Expand Down
6 changes: 6 additions & 0 deletions src/native/libs/Common/JavaScript/cross-module/index.ts
Original file line numberDiff line numberDiff line change
Expand Up@@ -177,6 +177,7 @@ export function dotnetUpdateInternalsSubscriber() {
const interopLocal: NativeBrowserExports = {
getWasmMemory: table[0],
getWasmTable: table[1],
SystemJS_ScheduleDiagnosticServer: table[2],
};
Object.assign(interop, interopLocal);
}
Expand All@@ -186,6 +187,11 @@ export function dotnetUpdateInternalsSubscriber() {
const interopLocal: DiagnosticsExports = {
symbolicateStackTrace: table[0],
installNativeSymbols: table[1],
ds_rt_websocket_create: table[2],
ds_rt_websocket_send: table[3],
ds_rt_websocket_poll: table[4],
ds_rt_websocket_recv: table[5],
ds_rt_websocket_close: table[6],
};
Object.assign(interop, interopLocal);
}
Expand Down
2 changes: 1 addition & 1 deletion src/native/libs/Common/JavaScript/loader/dotnet.d.ts
Original file line numberDiff line numberDiff line change
Expand Up@@ -688,7 +688,7 @@ type DiagnosticsAPIType = {
type DiagnosticCommandProviderV2 = {
keywords: [number, number];
logLevel: number;
provider_name: string;
providerName: string;
arguments: string | null;
};
type DiagnosticCommandOptions = {
Expand Down
19 changes: 9 additions & 10 deletions src/native/libs/Common/JavaScript/loader/exit.ts
Original file line numberDiff line numberDiff line change
Expand Up@@ -88,19 +88,18 @@ export function exit(exitCode: number, reason: any): void {
reason.message = message;
}

// force stack property to be generated before we shut down managed code, or create current stack if it doesn't exist
const stack = "" + (reason.stack || (new Error().stack));
try {
Object.defineProperty(reason, "stack", {
get: () => stack
});
} catch (e) {
// ignore
}

// don't report this error twice
const alreadySilent = !!reason.silent;
const alreadyExisted = isExited();

// force stack property to be generated before we shut down managed code, or create current stack if it doesn't exist
let stack;
if (typeof reason["getManageStack"] === "function" && isRuntimeRunning()) {
stack = reason.getManageStack();
} else {
stack = reason.stack || new Error().stack || "";
}

reason.silent = true;
let shouldQuitNow = true;

Expand Down
2 changes: 1 addition & 1 deletion src/native/libs/Common/JavaScript/loader/logging.ts
Original file line numberDiff line numberDiff line change
Expand Up@@ -54,7 +54,7 @@ export function normalizeException(reason: any) {
let stack: string | undefined;
if (reason) {
if (typeof reason === "object" && reason.status === undefined) {
if (reason.stack === undefined) {
if (reason.stack !== undefined) {
stack = reason.stack + "";
} else {
stack = new Error().stack + "";
Expand Down
3 changes: 3 additions & 0 deletions src/native/libs/Common/JavaScript/types/ems-ambient.ts
Original file line numberDiff line numberDiff line change
Expand Up@@ -28,6 +28,8 @@ export type EmsAmbientSymbolsType = EmscriptenModuleInternal & {
_SystemJS_ExecuteTimerCallback: () => void;
_SystemJS_ExecuteBackgroundJobCallback: () => void;
_SystemJS_ExecuteFinalizationCallback: () => void;
_SystemJS_ExecuteDiagnosticServerCallback: () => void;
_SystemJS_ScheduleDiagnosticServer: () => void;
_BrowserHost_CreateHostContract: () => VoidPtr;
_BrowserHost_InitializeDotnet: (propertiesCount: number, propertyKeys: CharPtrPtr, propertyValues: CharPtrPtr) => number;
_BrowserHost_ExecuteAssembly: (mainAssemblyNamePtr: number, argsLength: number, argsPtr: number) => number;
Expand All@@ -51,6 +53,7 @@ export type EmsAmbientSymbolsType = EmscriptenModuleInternal & {
lastScheduledTimerId?: number;
lastScheduledThreadPoolId?: number;
lastScheduledFinalizationId?: number;
lastScheduledDiagnosticServerId?: number;
cryptoWarnOnce?: boolean;
isAborting?: boolean;
isAsyncMain?: boolean;
Expand Down
14 changes: 14 additions & 0 deletions src/native/libs/Common/JavaScript/types/exchange.ts
Original file line numberDiff line numberDiff line change
Expand Up@@ -24,6 +24,8 @@ import type { cancelPromise } from "../../../System.Runtime.InteropServices.Java
import type { abortInteropTimers } from "../../../System.Runtime.InteropServices.JavaScript.Native/interop/scheduling";

import type { installNativeSymbols, symbolicateStackTrace } from "../../../System.Native.Browser/diagnostics/symbolicate";
import type { SystemJS_ScheduleDiagnosticServer } from "../../../System.Native.Browser/native";
import type { ds_rt_websocket_close, ds_rt_websocket_create, ds_rt_websocket_poll, ds_rt_websocket_recv, ds_rt_websocket_send } from "../../../System.Native.Browser/diagnostics/diagnostic-server";


type getWasmMemoryType = () => WebAssembly.Memory;
Expand DownExpand Up@@ -144,11 +146,13 @@ export type InteropJavaScriptExportsTable = [
export type NativeBrowserExports = {
getWasmMemory: getWasmMemoryType,
getWasmTable: getWasmTableType,
SystemJS_ScheduleDiagnosticServer: typeof SystemJS_ScheduleDiagnosticServer,
}

export type NativeBrowserExportsTable = [
getWasmMemoryType,
getWasmTableType,
typeof SystemJS_ScheduleDiagnosticServer,
]

export type BrowserUtilsExports = {
Expand DownExpand Up@@ -186,9 +190,19 @@ export type BrowserUtilsExportsTable = [
export type DiagnosticsExportsTable = [
typeof symbolicateStackTrace,
typeof installNativeSymbols,
typeof ds_rt_websocket_create,
typeof ds_rt_websocket_send,
typeof ds_rt_websocket_poll,
typeof ds_rt_websocket_recv,
typeof ds_rt_websocket_close,
]

export type DiagnosticsExports = {
symbolicateStackTrace: typeof symbolicateStackTrace,
installNativeSymbols: typeof installNativeSymbols,
ds_rt_websocket_create: typeof ds_rt_websocket_create,
ds_rt_websocket_send: typeof ds_rt_websocket_send,
ds_rt_websocket_poll: typeof ds_rt_websocket_poll,
ds_rt_websocket_recv: typeof ds_rt_websocket_recv,
ds_rt_websocket_close: typeof ds_rt_websocket_close,
}
2 changes: 1 addition & 1 deletion src/native/libs/Common/JavaScript/types/public-api.ts
Original file line numberDiff line numberDiff line change
Expand Up@@ -658,7 +658,7 @@ export type DiagnosticsAPIType = {
export type DiagnosticCommandProviderV2 = {
keywords: [number, number];
logLevel: number;
provider_name: string;
providerName: string;
arguments: string | null;
};
Comment thread
pavelsavara marked this conversation as resolved.

Expand Down
Loading
Loading
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions src/mono/browser/runtime/cwraps.ts
Original file line numberDiff line numberDiff line change
Expand Up@@ -41,7 +41,7 @@ const fn_signatures: SigLine[] = [
[true, "mono_wasm_parse_runtime_options", null, ["number", "number"]],
[true, "mono_wasm_strdup", "number", ["string"]],
[true, "mono_background_exec", null, []],
[true, "mono_wasm_ds_exec", null, []],
[true, "SystemJS_ExecuteDiagnosticServerCallback", null, []],
[true, "mono_wasm_execute_timer", null, []],
[true, "wasm_load_icu_data", "number", ["number"]],
[false, "mono_wasm_add_assembly", "number", ["string", "number", "number"]],
Expand DownExpand Up@@ -168,7 +168,7 @@ export interface t_Cwraps {
mono_wasm_strdup(value: string): number;
mono_wasm_parse_runtime_options(length: number, argv: VoidPtr): void;
mono_background_exec(): void;
mono_wasm_ds_exec(): void;
SystemJS_ExecuteDiagnosticServerCallback(): void;
mono_wasm_execute_timer(): void;
wasm_load_icu_data(offset: VoidPtr): number;
mono_wasm_add_assembly(name: string, data: VoidPtr, size: number): number;
Expand Down
16 changes: 8 additions & 8 deletions src/mono/browser/runtime/diagnostics/client-commands.ts
Original file line numberDiff line numberDiff line change
Expand Up@@ -66,7 +66,7 @@ export function commandGcHeapDump (options:DiagnosticCommandOptions) {
// GC_KEYWORD 0x0000001
],
logLevel: 5,
provider_name: "Microsoft-Windows-DotNETRuntime",
providerName: "Microsoft-Windows-DotNETRuntime",
arguments: null
},
...options.extraProviders || [],
Expand All@@ -89,7 +89,7 @@ export function commandCounters (options:DiagnosticCommandOptions) {
{
keywords: [0, Keywords.GCHandle],
logLevel: 4,
provider_name: "System.Diagnostics.Metrics",
providerName: "System.Diagnostics.Metrics",
arguments: `SessionId=SHARED;Metrics=System.Runtime;RefreshInterval=${options.intervalSeconds || 1};MaxTimeSeries=1000;MaxHistograms=10;ClientId=${uuidv4()};`,
},
...options.extraProviders || [],
Expand All@@ -109,7 +109,7 @@ export function commandSampleProfiler (options:DiagnosticCommandOptions) {
0x0000_0000,
],
logLevel: 4,
provider_name: "Microsoft-DotNETCore-SampleProfiler",
providerName: "Microsoft-DotNETCore-SampleProfiler",
arguments: null
},
...options.extraProviders || [],
Expand All@@ -130,7 +130,7 @@ function commandCollectTracing2 (payload2:PayloadV2) {
for (const provider of payload2.providers) {
message.push(...serializeUint64(provider.keywords));
message.push(...serializeUint32(provider.logLevel));
message.push(...serializeString(provider.provider_name));
message.push(...serializeString(provider.providerName));
message.push(...serializeString(provider.arguments));
}
return Uint8Array.from(message);
Expand DownExpand Up@@ -199,7 +199,7 @@ const enum Keywords {
Exception = 0x8000,
//
// Summary:
// Log events associated with the threadpoo, and other threading events.
// Log events associated with the threadpool, and other threading events.
Threading = 0x10000,
//
// Summary:
Expand DownExpand Up@@ -259,7 +259,7 @@ const enum Keywords {
// This suppresses NGEN events on V4.0 (where you have NGEN PDBs), but not on V2.0
// (which does not know about this bit and also does not have NGEN PDBS).
// eslint-disable-next-line @typescript-eslint/no-duplicate-enum-values
SupressNGen = 0x40000,
SuppressNGen = 0x40000,
//
// Summary:
// TODO document
Expand DownExpand Up@@ -427,7 +427,7 @@ function computeCollectTracing2PayloadByteLength (payload2:PayloadV2) {
for (const provider of payload2.providers) {
len += 8; // keywords
len += 4; // level
len += computeStringByteLength(provider.provider_name);
len += computeStringByteLength(provider.providerName);
len += computeStringByteLength(provider.arguments);
}
return len;
Expand All@@ -436,7 +436,7 @@ function computeCollectTracing2PayloadByteLength (payload2:PayloadV2) {
type ProviderV2 ={
keywords: [ number, Keywords ],
logLevel: number,
provider_name: string,
providerName: string,
arguments: string|null
}

Expand Down
2 changes: 1 addition & 1 deletion src/mono/browser/runtime/diagnostics/common.ts
Original file line numberDiff line numberDiff line change
Expand Up@@ -16,7 +16,7 @@ export function diagnosticServerEventLoop () {
if (loaderHelpers.is_runtime_running()) {
try {
runtimeHelpers.mono_background_exec();// give GC chance to run
runtimeHelpers.mono_wasm_ds_exec();
runtimeHelpers.SystemJS_ExecuteDiagnosticServerCallback();
scheduleDiagnosticServerEventLoop(100);
} catch (ex) {
loaderHelpers.mono_exit(1, ex);
Expand Down
4 changes: 2 additions & 2 deletions src/mono/browser/runtime/diagnostics/diagnostics-ws.ts
Original file line numberDiff line numberDiff line change
Expand Up@@ -27,7 +27,7 @@ class DiagnosticConnectionWS extends DiagnosticConnectionBase implements IDiagno
};
ws.addEventListener("open", () => {
for (const data of this.messagesToSend) {
ws.send(data);
ws.send(data as any);
}
this.messagesToSend = [];
diagnosticServerEventLoop();
Expand All@@ -49,7 +49,7 @@ class DiagnosticConnectionWS extends DiagnosticConnectionBase implements IDiagno
return super.store(message);
}

this.ws!.send(message);
this.ws!.send(message as any);

return message.length;
}
Expand Down
2 changes: 1 addition & 1 deletion src/mono/browser/runtime/dotnet.d.ts
Original file line numberDiff line numberDiff line change
Expand Up@@ -718,7 +718,7 @@ type DiagnosticsAPIType = {
type DiagnosticCommandProviderV2 = {
keywords: [number, number];
logLevel: number;
provider_name: string;
providerName: string;
arguments: string | null;
};
type DiagnosticCommandOptions = {
Expand Down
2 changes: 1 addition & 1 deletion src/mono/browser/runtime/exports.ts
Original file line numberDiff line numberDiff line change
Expand Up@@ -44,7 +44,7 @@ function initializeExports (globalObjects: GlobalObjects): RuntimeAPI {
utf8ToString,
SystemJS_GetCurrentProcessId,
mono_background_exec: () => tcwraps.mono_background_exec(),
mono_wasm_ds_exec: () => tcwraps.mono_wasm_ds_exec(),
SystemJS_ExecuteDiagnosticServerCallback: () => tcwraps.SystemJS_ExecuteDiagnosticServerCallback(),
};
if (WasmEnableThreads) {
rh.dumpThreads = mono_wasm_dump_threads;
Expand Down
2 changes: 1 addition & 1 deletion src/mono/browser/runtime/types/index.ts
Original file line numberDiff line numberDiff line change
Expand Up@@ -703,7 +703,7 @@ export type DiagnosticsAPIType = {
export type DiagnosticCommandProviderV2 = {
keywords: [ number, number ],
logLevel: number,
provider_name: string,
providerName: string,
arguments: string|null
}

Expand Down
2 changes: 1 addition & 1 deletion src/mono/browser/runtime/types/internal.ts
Original file line numberDiff line numberDiff line change
Expand Up@@ -240,7 +240,7 @@ export type RuntimeHelpers = {
mono_wasm_print_thread_dump: () => void,
utf8ToString: (ptr: CharPtr) => string,
mono_background_exec: () => void,
mono_wasm_ds_exec: () => void,
SystemJS_ExecuteDiagnosticServerCallback: () => void,
SystemJS_GetCurrentProcessId: () => number,
}

Expand Down
4 changes: 2 additions & 2 deletions src/mono/mono/eventpipe/ep-rt-mono.h
Original file line numberDiff line numberDiff line change
Expand Up@@ -1011,7 +1011,7 @@ ep_rt_queue_job (
// see if it's done or needs to be scheduled again
if (!done) {
// self schedule again
mono_schedule_ds_job (cb, params);
SystemJS_DiagnosticServerQueueJob (cb, params);
}

return true;
Expand DownExpand Up@@ -1045,7 +1045,7 @@ ep_rt_thread_sleep (uint64_t ns)
g_usleep ((gulong)(ns / 1000));
MONO_EXIT_GC_SAFE;
}
#endif
#endif // PERFTRACING_DISABLE_THREADS
}

static
Expand Down
2 changes: 1 addition & 1 deletion src/mono/mono/mini/mini-wasm.c
Original file line numberDiff line numberDiff line change
Expand Up@@ -453,7 +453,7 @@ G_BEGIN_DECLS
#ifdef DISABLE_THREADS
EMSCRIPTEN_KEEPALIVE void mono_wasm_execute_timer (void);
EMSCRIPTEN_KEEPALIVE void mono_background_exec (void);
EMSCRIPTEN_KEEPALIVE void mono_wasm_ds_exec (void);
EMSCRIPTEN_KEEPALIVE void SystemJS_ExecuteDiagnosticServerCallback (void);
extern void SystemJS_ScheduleTimerImpl (int shortestDueTimeMs);
#else
extern void SystemJS_ScheduleSynchronizationContext(MonoNativeThreadId target_thread);
Expand Down
10 changes: 5 additions & 5 deletions src/mono/mono/utils/mono-threads-wasm.c
Original file line numberDiff line numberDiff line change
Expand Up@@ -342,7 +342,7 @@ typedef struct {
} DsJobRegistration;

void
mono_schedule_ds_job (ds_job_cb cb, void* data)
SystemJS_DiagnosticServerQueueJob (ds_job_cb cb, void* data)
{
g_assert (cb);
DsJobRegistration* reg = g_new0 (DsJobRegistration, 1);
Expand DownExpand Up@@ -372,7 +372,7 @@ mono_background_exec (void)

G_EXTERN_C
EMSCRIPTEN_KEEPALIVE void
mono_wasm_ds_exec (void)
SystemJS_ExecuteDiagnosticServerCallback (void)
{
MONO_ENTER_GC_UNSAFE;
GSList *j1 = jobs_ds, *cur1;
Expand All@@ -381,13 +381,13 @@ mono_wasm_ds_exec (void)
for (cur1 = j1; cur1; cur1 = cur1->next) {
DsJobRegistration* reg = (DsJobRegistration*)cur1->data;
g_assert (reg->cb);
THREADS_DEBUG ("mono_wasm_ds_exec running job %p \n", (gpointer)cb);
THREADS_DEBUG ("SystemJS_ExecuteDiagnosticServerCallback running job %p \n", (gpointer)reg->cb);
gsize done = reg->cb (reg->data);
if (done){
THREADS_DEBUG ("mono_wasm_ds_exec done job %p \n", (gpointer)cb);
THREADS_DEBUG ("SystemJS_ExecuteDiagnosticServerCallback done job %p \n", (gpointer)reg->cb);
g_free (reg);
} else {
THREADS_DEBUG ("mono_wasm_ds_exec scheduling job %p again \n", (gpointer)cb);
THREADS_DEBUG ("SystemJS_ExecuteDiagnosticServerCallback scheduling job %p again \n", (gpointer)reg->cb);
jobs_ds = g_slist_prepend (jobs_ds, (gpointer)reg);
}
}
Expand Down
2 changes: 1 addition & 1 deletion src/mono/mono/utils/mono-threads-wasm.h
Original file line numberDiff line numberDiff line change
Expand Up@@ -89,7 +89,7 @@ mono_wasm_atomic_wait_i32 (volatile int32_t *addr, int32_t expected, int32_t tim

#else /* DISABLE_THREADS */
void mono_background_exec (void);
void mono_wasm_ds_exec (void);
void SystemJS_ExecuteDiagnosticServerCallback (void);
#endif /* DISABLE_THREADS */

void
Expand Down
2 changes: 1 addition & 1 deletion src/mono/mono/utils/mono-threads.h
Original file line numberDiff line numberDiff line change
Expand Up@@ -848,7 +848,7 @@ typedef void (*background_job_cb)(void);
typedef gsize (*ds_job_cb)(void* data);
#ifdef DISABLE_THREADS
void SystemJS_ScheduleBackgroundJob (background_job_cb cb);
void mono_schedule_ds_job (ds_job_cb cb, void* data);
void SystemJS_DiagnosticServerQueueJob (ds_job_cb cb, void* data);
#else
void SystemJS_ScheduleSynchronizationContext(MonoNativeThreadId target_thread);
#endif // DISABLE_THREADS
Expand Down
9 changes: 9 additions & 0 deletions src/native/libs/Common/JavaScript/CMakeLists.txt
Original file line numberDiff line numberDiff line change
Expand Up@@ -58,14 +58,23 @@ set(ROLLUP_TS_SOURCES
"${CLR_SRC_NATIVE_DIR}/libs/Common/JavaScript/types/public-api.ts"
"${CLR_SRC_NATIVE_DIR}/libs/Common/JavaScript/types/v8.d.ts"

"${CLR_SRC_NATIVE_DIR}/libs/System.Native.Browser/diagnostics/client-commands.ts"
"${CLR_SRC_NATIVE_DIR}/libs/System.Native.Browser/diagnostics/common.ts"
"${CLR_SRC_NATIVE_DIR}/libs/System.Native.Browser/diagnostics/console-proxy.ts"
"${CLR_SRC_NATIVE_DIR}/libs/System.Native.Browser/diagnostics/cross-module.ts"
"${CLR_SRC_NATIVE_DIR}/libs/System.Native.Browser/diagnostics/diagnostic-server.ts"
"${CLR_SRC_NATIVE_DIR}/libs/System.Native.Browser/diagnostics/diagnostic-server-js.ts"
"${CLR_SRC_NATIVE_DIR}/libs/System.Native.Browser/diagnostics/diagnostic-server-ws.ts"
"${CLR_SRC_NATIVE_DIR}/libs/System.Native.Browser/diagnostics/dotnet-counters.ts"
"${CLR_SRC_NATIVE_DIR}/libs/System.Native.Browser/diagnostics/dotnet-cpu-profiler.ts"
"${CLR_SRC_NATIVE_DIR}/libs/System.Native.Browser/diagnostics/dotnet-gcdump.ts"
"${CLR_SRC_NATIVE_DIR}/libs/System.Native.Browser/diagnostics/exit.ts"
"${CLR_SRC_NATIVE_DIR}/libs/System.Native.Browser/diagnostics/index.ts"
"${CLR_SRC_NATIVE_DIR}/libs/System.Native.Browser/diagnostics/per-module.ts"
"${CLR_SRC_NATIVE_DIR}/libs/System.Native.Browser/diagnostics/symbolicate.ts"
"${CLR_SRC_NATIVE_DIR}/libs/System.Native.Browser/diagnostics/types.ts"
"${CLR_SRC_NATIVE_DIR}/libs/System.Native.Browser/native/crypto.ts"
"${CLR_SRC_NATIVE_DIR}/libs/System.Native.Browser/native/diagnostics.ts"
"${CLR_SRC_NATIVE_DIR}/libs/System.Native.Browser/native/globalization-locale.ts"
"${CLR_SRC_NATIVE_DIR}/libs/System.Native.Browser/native/index.ts"
"${CLR_SRC_NATIVE_DIR}/libs/System.Native.Browser/native/main.ts"
Expand Down
6 changes: 6 additions & 0 deletions src/native/libs/Common/JavaScript/cross-module/index.ts
Original file line numberDiff line numberDiff line change
Expand Up@@ -177,6 +177,7 @@ export function dotnetUpdateInternalsSubscriber() {
const interopLocal: NativeBrowserExports = {
getWasmMemory: table[0],
getWasmTable: table[1],
SystemJS_ScheduleDiagnosticServer: table[2],
};
Object.assign(interop, interopLocal);
}
Expand All@@ -186,6 +187,11 @@ export function dotnetUpdateInternalsSubscriber() {
const interopLocal: DiagnosticsExports = {
symbolicateStackTrace: table[0],
installNativeSymbols: table[1],
ds_rt_websocket_create: table[2],
ds_rt_websocket_send: table[3],
ds_rt_websocket_poll: table[4],
ds_rt_websocket_recv: table[5],
ds_rt_websocket_close: table[6],
};
Object.assign(interop, interopLocal);
}
Expand Down
2 changes: 1 addition & 1 deletion src/native/libs/Common/JavaScript/loader/dotnet.d.ts
Original file line numberDiff line numberDiff line change
Expand Up@@ -688,7 +688,7 @@ type DiagnosticsAPIType = {
type DiagnosticCommandProviderV2 = {
keywords: [number, number];
logLevel: number;
provider_name: string;
providerName: string;
arguments: string | null;
};
type DiagnosticCommandOptions = {
Expand Down
19 changes: 9 additions & 10 deletions src/native/libs/Common/JavaScript/loader/exit.ts
Original file line numberDiff line numberDiff line change
Expand Up@@ -88,19 +88,18 @@ export function exit(exitCode: number, reason: any): void {
reason.message = message;
}

// force stack property to be generated before we shut down managed code, or create current stack if it doesn't exist
const stack = "" + (reason.stack || (new Error().stack));
try {
Object.defineProperty(reason, "stack", {
get: () => stack
});
} catch (e) {
// ignore
}

// don't report this error twice
const alreadySilent = !!reason.silent;
const alreadyExisted = isExited();

// force stack property to be generated before we shut down managed code, or create current stack if it doesn't exist
let stack;
if (typeof reason["getManageStack"] === "function" && isRuntimeRunning()) {
stack = reason.getManageStack();
} else {
stack = reason.stack || new Error().stack || "";
}

reason.silent = true;
let shouldQuitNow = true;

Expand Down
2 changes: 1 addition & 1 deletion src/native/libs/Common/JavaScript/loader/logging.ts
Original file line numberDiff line numberDiff line change
Expand Up@@ -54,7 +54,7 @@ export function normalizeException(reason: any) {
let stack: string | undefined;
if (reason) {
if (typeof reason === "object" && reason.status === undefined) {
if (reason.stack === undefined) {
if (reason.stack !== undefined) {
stack = reason.stack + "";
} else {
stack = new Error().stack + "";
Expand Down
3 changes: 3 additions & 0 deletions src/native/libs/Common/JavaScript/types/ems-ambient.ts
Original file line numberDiff line numberDiff line change
Expand Up@@ -28,6 +28,8 @@ export type EmsAmbientSymbolsType = EmscriptenModuleInternal & {
_SystemJS_ExecuteTimerCallback: () => void;
_SystemJS_ExecuteBackgroundJobCallback: () => void;
_SystemJS_ExecuteFinalizationCallback: () => void;
_SystemJS_ExecuteDiagnosticServerCallback: () => void;
_SystemJS_ScheduleDiagnosticServer: () => void;
_BrowserHost_CreateHostContract: () => VoidPtr;
_BrowserHost_InitializeDotnet: (propertiesCount: number, propertyKeys: CharPtrPtr, propertyValues: CharPtrPtr) => number;
_BrowserHost_ExecuteAssembly: (mainAssemblyNamePtr: number, argsLength: number, argsPtr: number) => number;
Expand All@@ -51,6 +53,7 @@ export type EmsAmbientSymbolsType = EmscriptenModuleInternal & {
lastScheduledTimerId?: number;
lastScheduledThreadPoolId?: number;
lastScheduledFinalizationId?: number;
lastScheduledDiagnosticServerId?: number;
cryptoWarnOnce?: boolean;
isAborting?: boolean;
isAsyncMain?: boolean;
Expand Down
14 changes: 14 additions & 0 deletions src/native/libs/Common/JavaScript/types/exchange.ts
Original file line numberDiff line numberDiff line change
Expand Up@@ -24,6 +24,8 @@ import type { cancelPromise } from "../../../System.Runtime.InteropServices.Java
import type { abortInteropTimers } from "../../../System.Runtime.InteropServices.JavaScript.Native/interop/scheduling";

import type { installNativeSymbols, symbolicateStackTrace } from "../../../System.Native.Browser/diagnostics/symbolicate";
import type { SystemJS_ScheduleDiagnosticServer } from "../../../System.Native.Browser/native";
import type { ds_rt_websocket_close, ds_rt_websocket_create, ds_rt_websocket_poll, ds_rt_websocket_recv, ds_rt_websocket_send } from "../../../System.Native.Browser/diagnostics/diagnostic-server";


type getWasmMemoryType = () => WebAssembly.Memory;
Expand DownExpand Up@@ -144,11 +146,13 @@ export type InteropJavaScriptExportsTable = [
export type NativeBrowserExports = {
getWasmMemory: getWasmMemoryType,
getWasmTable: getWasmTableType,
SystemJS_ScheduleDiagnosticServer: typeof SystemJS_ScheduleDiagnosticServer,
}

export type NativeBrowserExportsTable = [
getWasmMemoryType,
getWasmTableType,
typeof SystemJS_ScheduleDiagnosticServer,
]

export type BrowserUtilsExports = {
Expand DownExpand Up@@ -186,9 +190,19 @@ export type BrowserUtilsExportsTable = [
export type DiagnosticsExportsTable = [
typeof symbolicateStackTrace,
typeof installNativeSymbols,
typeof ds_rt_websocket_create,
typeof ds_rt_websocket_send,
typeof ds_rt_websocket_poll,
typeof ds_rt_websocket_recv,
typeof ds_rt_websocket_close,
]

export type DiagnosticsExports = {
symbolicateStackTrace: typeof symbolicateStackTrace,
installNativeSymbols: typeof installNativeSymbols,
ds_rt_websocket_create: typeof ds_rt_websocket_create,
ds_rt_websocket_send: typeof ds_rt_websocket_send,
ds_rt_websocket_poll: typeof ds_rt_websocket_poll,
ds_rt_websocket_recv: typeof ds_rt_websocket_recv,
ds_rt_websocket_close: typeof ds_rt_websocket_close,
}
2 changes: 1 addition & 1 deletion src/native/libs/Common/JavaScript/types/public-api.ts
Original file line numberDiff line numberDiff line change
Expand Up@@ -658,7 +658,7 @@ export type DiagnosticsAPIType = {
export type DiagnosticCommandProviderV2 = {
keywords: [number, number];
logLevel: number;
provider_name: string;
providerName: string;
arguments: string | null;
};
Comment thread
pavelsavara marked this conversation as resolved.

Expand Down
Loading
Loading