Jump to content

My Browser Builds (Part 1)


Recommended Posts

Off Topic:

For getting idea how Firefox 57 is incompatible with older Windows, I tried to compile it from source.

There is a list of Missing APIs in XP (* in front of DLL = missing DLL)

In MOZGLUE.DLL:
KERNEL32.DLL
InitializeConditionVariable
WakeConditionVariable
WakeAllConditionVariable
SleepConditionVariableCS
InitializeCriticalSectionEx
GetTickCount64

In XUL.DLL:
KERNEL32.DLL
SleepConditionVariableSRW
WakeConditionVariable
InitializeConditionVariable
SleepConditionVariableCS
WakeAllConditionVariable
K32QueryWorkingSet
K32GetProcessMemoryInfo
GetCurrencyFormatEx
GetNumberFormatEx
ResolveLocaleName
GetDateFormatEx
GetTimeFormatEx
GetUserDefaultLocaleName
LocaleNameToLCID
GetLocaleInfoEx
GetUserPreferredUILanguages
LCIDToLocaleName
InitializeCriticalSectionEx
AcquireSRWLockShared
AcquireSRWLockExclusive
ReleaseSRWLockShared
ReleaseSRWLockExclusive
InitializeSRWLock
TryAcquireSRWLockExclusive
K32EnumProcessModules
K32GetModuleFileNameExW
K32GetProcessImageFileNameW
GetFinalPathNameByHandleW
InitOnceExecuteOnce
GetProcessIdOfThread
QueryFullProcessImageNameW
K32GetModuleInformation

USER32.DLL
GetTouchInputInfo
RegisterTouchWindow
GetGestureInfo
CloseGestureInfoHandle
SetGestureConfig
UnregisterPowerSettingNotification
RegisterPowerSettingNotification
CloseTouchInputHandle

ADVAPI32.DLL
RegGetValueW

SHELL32.DLL
SHGetKnownFolderPath
SHOpenWithDialog
SHQueryUserNotificationState
SHGetPropertyStoreForWindow
SetCurrentProcessExplicitAppUserModelID
SHCreateItemFromParsingName
SHGetStockIconInfo

*AVRT.DLL
AvRevertMmThreadCharacteristics
AvSetMmThreadCharacteristicsA

OLE32.DLL
CoGetApartmentType

WS2_32.DLL
inet_pton
inet_ntop

*DWMAPI.DLL
DwmSetIconicThumbnail
DwmSetIconicLivePreviewBitmap
DwmInvalidateIconicBitmaps
DwmGetCompositionTimingInfo
DwmIsCompositionEnabled
DwmFlush
DwmSetWindowAttribute
DwmDefWindowProc
DwmExtendFrameIntoClientArea
DwmGetWindowAttribute

UXTHEME.DLL
BeginPanningFeedback
EndPanningFeedback
UpdatePanningFeedback

*API-MS-WIN-CORE-WINRT-L1-1-0.DLL
RoGetActivationFactory

*API-MS-WIN-CORE-WINRT-STRING-L1-1-0.DLL
WindowsCreateStringReference

And for example, grepping K32GetModuleInformation in source tree shows:

Roy@roy-srv /d/test/firefox-57.0 $ grep -r K32GetModuleInformation *
Binary file obj-i686-pc-mingw32/dist/bin/xul.dll matches
Binary file obj-i686-pc-mingw32/toolkit/library/i686-pc-windows-msvc/release/deps/libkernel32-84f4ad81dbbcb414.rlib matches
Binary file obj-i686-pc-mingw32/toolkit/library/release/deps/libkernel32-7fb45f562450be31.rlib matches
Binary file obj-i686-pc-mingw32/toolkit/library/xul.dll matches
Binary file obj-i686-pc-mingw32/toolkit/library/xul.pdb matches
Binary file obj-i686-pc-mingw32/tools/profiler/generated.pdb matches
Binary file obj-i686-pc-mingw32/tools/profiler/shared-libraries-win32.obj matches
third_party/rust/kernel32-sys/src/lib.rs:    pub fn K32GetModuleInformation(
third_party/rust/kernel32-sys-0.1.4/src/lib.rs:    pub fn K32GetModuleInformation(

So I have no clue how to deal with it. :(

Link to comment
Share on other sites


All user32/uxtheme function can be stubbed out. You already know how to fix dwmapi codes. Avrt don't make sense to me I hope it can be stubbed.

inet_ntop & inet_pton implementation from xompie are good one.

CoGetApartmentType can be replaced with a XP function which I forgotten.

K32 function can redirected to psapi by removing word k32 from beginning.

Preferred UI languages can be stubbed with out any issue.

LCIDToLocaleName Can be stubbed.

For other API one core API has implementation.

https://github.com/Skulltrail192/One-Core-Api

Just some little concern from my poor knowledge.

 

Link to comment
Share on other sites

@dencorso

You might still be in to something with NT 5.x. I assume that New Moon still is compatible with Server 2003 R2 since it shares code with XP. Of course there's no guarantee New Moon works with vanilla Server 2003.

Perhaps New Moon XP/03? Pronounced "XP-oh-three"?

Or, "XP-oh-three-are-2"? It kind of rolls off the tongue.

Link to comment
Share on other sites

@roytam1

Could you please share your source code for a portable launcher?

Also, seems like last version (2017-11-21) of New Moon doesn't like it for some reason, e.g. bookmark tab disappears after start. But the same version with PortableApps launcher isn't affected.

Link to comment
Share on other sites

I've been a fan of Pale Moon since before it became more widely known (been using it since around the end of 2015) and I must say this is some great work that has been put into making it compatible with ol' NT 5.1! :)

I'm having no problems on NT 5.1.2600.5512 fully updated - no POSready 2009 patches - using a build from around last Friday or so.

Thanks, now my XP netbook is ready to go and works rather well with the Internet, and also means I don't have to deal with deprecated Chrome backports (SlimJet), the odd forced ClearType glitch (Firefox/SeaMonkey) and spyware (Maxthon).

I really appreciate the work you put in this. Thanks again, I don't think I can thank you enough ^.^

Link to comment
Share on other sites

> NewMoonXP? It emphasizes New Moon's mission to serve XP, just as TenFourFox serves Mac OS X 10.4 users.

A new moon can't be seen (it's below the horizon) so:
FauxMoon -> FOMoon -> FiveOneMoon

> third_party/rust/kernel32-sys/src/lib.rs: pub fn K32GetModuleInformation(

Most of these new dependencies are likely in third party code, not the core code. Or they might be generated by newer compilers.

Link to comment
Share on other sites

2 hours ago, jumper said:

> NewMoonXP? It emphasizes New Moon's mission to serve XP, just as TenFourFox serves Mac OS X 10.4 users.

A new moon can't be seen (it's below the horizon) so:
FauxMoon -> FOMoon -> FiveOneMoon

> third_party/rust/kernel32-sys/src/lib.rs: pub fn K32GetModuleInformation(

Most of these new dependencies are likely in third party code, not the core code. Or they might be generated by newer compilers.
 

How to avoid such dependency?

Link to comment
Share on other sites

15 hours ago, sdfox7 said:

@dencorso

You might still be in to something with NT 5.x. I assume that New Moon still is compatible with Server 2003 R2 since it shares code with XP. Of course there's no guarantee New Moon works with vanilla Server 2003.

Perhaps New Moon XP/03? Pronounced "XP-oh-three"?

Or, "XP-oh-three-are-2"? It kind of rolls off the tongue.

It most likely is compatible with Server 2003, as it works on XP x64 (which shares its kernel version 5.2 and its APIs with Server 2003). That's what the 64-bit build is for anyway: XP x64 and Server 2003 x64, as there are no 64-bit NT 5.1 systems, that's all NT 5.2.

Edit: I just tested the 32-bit and 64-bit versions of New Moon on Windows Server 2003 x64 Standard. Works fine, as expected.

Edited by GrandAdmiralThrawn
Link to comment
Share on other sites

15 hours ago, Flame. said:

@roytam1

Could you please share your source code for a portable launcher?

Also, seems like last version (2017-11-21) of New Moon doesn't like it for some reason, e.g. bookmark tab disappears after start. But the same version with PortableApps launcher isn't affected.

Already posted.

And my portable launcher is just the same as running ' start "" palemoon.exe -no-remote -profile .\profile ' batch file, but works without the help of cmd.exe.

Link to comment
Share on other sites

> > > third_party/rust/kernel32-sys/src/lib.rs: pub fn K32GetModuleInformation(
> > Most of these new dependencies are likely in third party code, not the core code. Or they might be generated by newer compilers.
> How to avoid such dependency?
Rather than create an OS stub, modify the source to assume failure (or success) and remove the call. If an api is called multiple times, it might be easier to redefine it:

#define IsUserWin10Fanboy() FALSE
if (IsUserWin10Fanboy()) {...}



Or remove the third-party module entirely.

Link to comment
Share on other sites

On 11/25/2017 at 6:24 AM, jumper said:

> > > third_party/rust/kernel32-sys/src/lib.rs: pub fn K32GetModuleInformation(
> > Most of these new dependencies are likely in third party code, not the core code. Or they might be generated by newer compilers.
> How to avoid such dependency?
Rather than create an OS stub, modify the source to assume failure (or success) and remove the call. If an api is called multiple times, it might be easier to redefine it:


#define IsUserWin10Fanboy() FALSE
if (IsUserWin10Fanboy()) {...}

Or remove the third-party module entirely.
 

Actually you can't get rid of this (rust) because it is mandatory since 55.0 release.

Link to comment
Share on other sites

New Build!

32bit https://o.rthost.cf/palemoon/palemoon-27.7.0a2.win32-git-20171126-6bb8c4459-xpmod.7z

64bit https://o.rthost.cf/palemoon/palemoon-27.7.0a2.win64-git-20171126-6bb8c4459-xpmod.7z

Official repo changes since my last build:
- DefineOSFileConstants should return false if OSFileConstants service is not initialized. (f10270102)
- Remove display: contents pseudo frames. The content insertion frame may be tagged instead of the primary frame. (44d3d5c28)
- Force punycode display for IDNs with a <dotless-i/j, combining mark above> sequence. (a8592dc85)
- Special-case typed arrays in PropertyReadNeedsTypeBarrier. (8adb3321f)
- Explicitly cancel channel after mixed content redirect. (2fef22132)
- In order to not leak properties, ensure all the properties of adopted nodes are removed in case the adopt call fails. (e8afb1976)
- Fix a crash by setting a flag to true. (8e23c4300)
- Use ARGS_LENGTH_MAX as upper bound in MArgumentsLength::computeRange. (d179228e8)
- If we have XCTO: nosniff, we should have a content-type as well. (8167b87bc)
- Skip `XCTO: nosniff` check in case of 30x response (2788d6de8)
- Merge pull request #1489 from JustOff/PR_nosniff_skip_redirects (2a6078186)
- Revert "Add shortcut key for Browser Restart command" (abcc6a93a)
- Revert "If we have XCTO: nosniff, we should have a content-type as well." (400c32b2a)
- Cancel timer in TLSFilterTransaction if a transaction is canceled. (e88411b6a)
- Confirm we actually have a PKCS#7 signedData content info. (8579abc0e)
- Add missing sanitization for HTML exporting of bookmarks. (2e348d07f)
- Don't propagate LOAD_FROM_CACHE to the whole load group on charset reload. (6bb8c4459)

Link to comment
Share on other sites

basilisk/moebius new build for XP!

Test binary:
Win32 http://o.rthost.cf/gpc/files1.rt/basilisk-55.0.0a1.win32-git-20171126-2c7948df3-xpmod.7z
Win64 http://o.rthost.cf/gpc/files1.rt/basilisk-55.0.0a1.win64-git-20171126-2c7948df3-xpmod.7z

diff: http://o.rthost.cf/gpc/files1.rt/moebius_restoreXP_20171113.7z

source patch of ffvpx H264/HEVC/AAC/MP3 Addition: http://o.rthost.cf/gpc/files1.rt/moebius-ffvpx-h264-aac-hevc-mp3-addition.7z

Official repo changes since my last build:
- DefineOSFileConstants should return false if OSFileConstants service is not initialized. (2460215d3)
- Remove display: contents pseudo frames. The content insertion frame may be tagged instead of the primary frame. (6717ddc80)
- Force punycode display for IDNs with a <dotless-i/j, combining mark above> sequence. (58da163c8)
- Special-case typed arrays in PropertyReadNeedsTypeBarrier. (1078d5a88)
- Add extra check for the http performance object's origin. (385875d58)
- Explicitly cancel channel after mixed content redirect. (fc7702866)
- Keep an extra reference. (bd714564d)
- In order to not leak properties, ensure all the properties of adopted nodes are removed in case the adopt call fails. (01301c0ce)
- Avoid rooting the object twice in EnumerableOwnProperties. (136ece224)
- Fix a crash by setting a flag to true. (178a122ae)
- Use ARGS_LENGTH_MAX as upper bound in MArgumentsLength::computeRange. (89ffb02a4)
- Reorder when GPUProcessHosts are destroyed. (3e7a2e393)
- Only fetch mPresShell after flushing the relevant content pres shell. (c4d1b228d)
- Make decoding of IDN ACE more robust. (76210dcf5)
- Make the url bar strip javascript even when preceded by control characters. (9665b74c4)
- Address misc. SnprintfLiteral correctness nits. (b6b47654e)
- Mark Heap<T> and barrier classes as MOZ_NON_MEMMOVABLE. (05282b01d)
- Clear gApplicationReputationService in the dtor. (f9e1f08ff)
- Use GetStyleContextNoFlush in UpdateCurrentStyleSources, and avoid flushing mPresShell twice. (6551515c1)
- Hold Windows AudioSession object while recycling registration. (f1a7d83b3)
- Fix double definition. Follow-up to 6551515c1a042f9b0f904b1fe64069cf237296e4 (9bfd5c0ee)
- Use a static mutex for getting deviceId keys in MediaParent. (cdf744019)
- Hold reference to layers in ContainerLayerComposite::mPrepared. (3604ebbce)
- C++ Promises: Stop using optimized path for non-PromiseObject. (0b55b89d3)
- Cancel timer in TLSFilterTransaction if a transaction is canceled. (79c4a1717)
- Bug 1343147 - Part 1. Do not double-apply transform vector of the root frame in a glyph mask into the target context. (b4a5912d2)
- Bug 1343147 - Part 2. A crash test of painting elements with both perspective and transform in generating a text mask for background-clip:text. (15a52123a)
- Confirm we actually have a PKCS#7 signedData content info. (acc8df46a)
- Remove unnecessary InvalidateCompilerOutputsForScript call. (1c2b117fd)
- Set MAX_COMBINED_TEXTURE_IMAGE_UNITS to 0 if GetIntegeriv fails. (66729e90b)
- Add missing sanitization for HTML exporting of bookmarks. (d0ea81c17)
- Fix up toolkit about: page. This resolves #173. (0325689cc)
- Use our provisioned blocklist server. (d2546bc38)
- Stop trying to be a CRL provider. (25b0783cd)
- Update names in installer defines. (a1685e0e9)
- Stop building EME support by default on desktop browser builds. (57383bda7)
- Remove rust conditional leftovers. (b7d249766)
- Revert "Stop building EME support by default on desktop browser builds." (68bde621e)
- Make use of configured EME module defines to set UI/CDM prefs. (d083dcacf)
- Reinstate comment. (c8707d112)
- Reconfigure building EME. (f1a8302e6)

Link to comment
Share on other sites

Is there any build only with SSE, without SSE2, for CPU's like AthlonXP, with LAV codec ?

I currentry use 3dsparty SSE version  26.5.0 from official site, but there is seems no LAV codecs support for HTML5 video, even if I copy these dll from first post.

Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...