Closed Bug 221446 Opened 22 years ago Closed 20 years ago

Examine the usefulness of Mozilla as Managed Code / .NET / CLR

Categories

(SeaMonkey :: Build Config, enhancement)

x86
Windows XP
enhancement
Not set
normal

Tracking

(Not tracked)

RESOLVED WONTFIX

People

(Reporter: murphye, Unassigned)

Details

User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.5b) Gecko/20030827 Build Identifier: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.5b) Gecko/20030827 What does anyone here think of the possibility of building Mozilla as managed code (running in the .NET CLR)? I was able to do this (add /clr): CFLAGS="$CFLAGS -TC /clr -nologo" CXXFLAGS="$CXXFLAGS -TP /clr -nologo" and Mozilla compiled as managed code without any errors. When I ran it, I got an error about PRThread, but the CLR debugger (in VS.NET) popped up and showed me xpcom/glue/nsGenericFactory.cpp where it thinks the error(s) are. From the perpective of .NET developers, having Mozilla available as managed code would be a very powerful feature because now Mozilla could integrate with other .NET code. Here is a link that provides some brief insight into this thinking: http://www.vertigosoftware.com/Quake2.htm. They were able to extend Quake 2 with pure .NET code, which is very cool. Reproducible: Always Steps to Reproduce:
I will investigate this as soon as i can get my VC7 build to work :)
Status: NEW → ASSIGNED
I played around with this a little more in the debug mode, I got this: 'mozilla.exe': Loaded 'C:\mozilla\dist\bin\mozilla.exe', Symbols loaded. 'mozilla.exe': Loaded 'C:\WINDOWS\system32\ntdll.dll', No symbols loaded. 'mozilla.exe': Loaded 'C:\WINDOWS\system32\kernel32.dll', No symbols loaded. 'mozilla.exe': Loaded 'C:\mozilla\dist\bin\nspr4.dll', Symbols loaded. 'mozilla.exe': Loaded 'C:\WINDOWS\system32\advapi32.dll', No symbols loaded. 'mozilla.exe': Loaded 'C:\WINDOWS\system32\rpcrt4.dll', No symbols loaded. 'mozilla.exe': Loaded 'C:\WINDOWS\system32\wsock32.dll', No symbols loaded. 'mozilla.exe': Loaded 'C:\WINDOWS\system32\ws2_32.dll', No symbols loaded. 'mozilla.exe': Loaded 'C:\WINDOWS\system32\msvcrt.dll', No symbols loaded. 'mozilla.exe': Loaded 'C:\WINDOWS\system32\ws2help.dll', No symbols loaded. 'mozilla.exe': Loaded 'C:\WINDOWS\system32\msvcr71d.dll', Symbols loaded. 'mozilla.exe': Loaded 'C:\mozilla\dist\bin\plc4.dll', Symbols loaded. 'mozilla.exe': Loaded 'C:\WINDOWS\system32\user32.dll', No symbols loaded. 'mozilla.exe': Loaded 'C:\WINDOWS\system32\gdi32.dll', No symbols loaded. 'mozilla.exe': Loaded 'C:\WINDOWS\system32\shell32.dll', No symbols loaded. 'mozilla.exe': Loaded 'C:\WINDOWS\system32\shlwapi.dll', No symbols loaded. 'mozilla.exe': Loaded 'C:\WINDOWS\system32\msvcp71d.dll', Symbols loaded. 'mozilla.exe': Loaded 'C:\WINDOWS\WinSxS\x86_Microsoft.Windows.Common-Controls_6595b64144ccf1df_6.0.0.0_x-ww_1382d70a\comctl32.dll', No symbols loaded. 'mozilla.exe': Loaded 'C:\mozilla\dist\bin\xpcom.dll', Symbols loaded. 'mozilla.exe': Loaded 'C:\WINDOWS\system32\mscoree.dll', No symbols loaded. 'mozilla.exe': Loaded 'C:\mozilla\dist\bin\plds4.dll', Symbols loaded. 'mozilla.exe': Loaded 'C:\WINDOWS\system32\ole32.dll', No symbols loaded. 'mozilla.exe': Loaded 'C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\mscorwks.dll', No symbols loaded. 'mozilla.exe': Loaded 'C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\msvcr71.dll', Symbols loaded. 'mozilla.exe': Loaded 'C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\fusion.dll', No symbols loaded. 'mozilla.exe': Loaded 'C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\mscorlib.dll', No symbols loaded. 'mozilla.exe': Loaded 'C:\WINDOWS\assembly\NativeImages1_v1.1.4322\mscorlib\1.0.5000.0__b77a5c561934e089_75341187\mscorlib.dll', No symbols loaded. 'mozilla.exe': Loaded 'C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\mscorjit.dll', No symbols loaded. 'mozilla.exe': Loaded 'C:\WINDOWS\system32\nview.dll', No symbols loaded. 'mozilla.exe': Loaded 'C:\WINDOWS\system32\psapi.dll', No symbols loaded. 'mozilla.exe': Loaded 'C:\WINDOWS\system32\version.dll', No symbols loaded. 'mozilla.exe': Loaded 'C:\WINDOWS\system32\olepro32.dll', No symbols loaded. 'mozilla.exe': Loaded 'C:\WINDOWS\system32\oleaut32.dll', No symbols loaded. 'mozilla.exe': Loaded 'C:\WINDOWS\system32\ddraw.dll', No symbols loaded. 'mozilla.exe': Loaded 'C:\WINDOWS\system32\dciman32.dll', No symbols loaded. 'mozilla.exe': Loaded 'C:\WINDOWS\system32\clbcatq.dll', No symbols loaded. 'mozilla.exe': Loaded 'C:\WINDOWS\system32\comres.dll', No symbols loaded. First-chance exception at 0x77e6d756 in mozilla.exe: 0xE0434F4D: 0xe0434f4d. First-chance exception at 0x77e6d756 in mozilla.exe: 0xE0434F4D: 0xe0434f4d. First-chance exception at 0x77e6d756 in mozilla.exe: 0xE0434F4D: 0xe0434f4d. Unhandled exception at 0x77e6d756 in mozilla.exe: 0xE0434F4D: 0xe0434f4d. Error comes up at malloc.c line 212: > msvcr71d.dll!_heap_alloc_base(unsigned int size=0) Line 212 C That came from the call stack: kernel32.dll!77e6d756() kernel32.dll!77e6d756() mscorwks.dll!791b9d02() mscorwks.dll!791be271() mscorwks.dll!791be286() mscorwks.dll!7921020d() kernel32.dll!77e6d756() mscorwks.dll!79210190() mscorwks.dll!79210144() mscorwks.dll!79256dcb() ntdll.dll!77f588f5() > msvcr71d.dll!_heap_alloc_base(unsigned int size=0) Line 212 C mscorwks.dll!791d6a7e() xpcom.dll!RegisterGenericFactory(nsIComponentRegistrar * registrar=0x002ab378, const nsModuleComponentInfo * info=0x100a7f48) Line 210 + 0xd C++ xpcom.dll!NS_InitXPCOM2(nsIServiceManager * * result=0x0012ff3c, nsIFile * binDirectory=0x00000000, nsIDirectoryServiceProvider * appFileLocationProvider=0x002a5060) Line 558 + 0x1b C++ mozilla.exe!NS_InitXPCOM2(nsIServiceManager * * result=0x0012ff3c, nsIFile * binDirectory=0x00000000, nsIDirectoryServiceProvider * appFileLocationProvider=0x002a5060) Line 160 + 0x14 C++ mozilla.exe!GRE_Startup() Line 282 + 0x23 C++ mozilla.exe!main(int argc=1, char * * argv=0x002a4fa8) Line 1590 + 0x5 C++ mozilla.exe!mainCRTStartup() Line 398 + 0x11 C kernel32.dll!77e7eb69() I am not a C programmer, so I don't know what this means. Any insight would be appreciated.
Oops, I forgot this disassembly (where the fault is): ... #endif /* _WIN64 */ return HeapAlloc(_crtheap, 0, size); 1021A6A3 mov edx,dword ptr [size] 1021A6A6 push edx 1021A6A7 push 0 1021A6A9 mov eax,dword ptr [__crtheap (1027F5B4h)] 1021A6AE push eax 1021A6AF call dword ptr [__imp__HeapAlloc@12 (10267094h)] } ecx,dword ptr [ebp-10h] << Fault is here ...
Assignee: leaf → cmp
Status: ASSIGNED → NEW
Product: Browser → Seamonkey
Being able to extend Mozilla via pure-managed code doesn't require Mozilla itself to be built 100% managed. Some day I'll have time to return to xpcom.net, which should suffice. (I'm not really interested at all in mozilla-built-as-managed, removing from cc:)
Mass reassign of open bugs for chase@mozilla.org to build@mozilla-org.bugs.
Assignee: chase → build
Assignee: build → nobody
QA Contact: build-config
Status: NEW → RESOLVED
Closed: 20 years ago
Resolution: --- → WONTFIX
You need to log in before you can comment on or make changes to this bug.