Portable Fonts Mode in Firefox

After reading the Bug 998844, I knew that Mozilla Firefox had supported a portable font mode since 32.0, but it was only enabled on Android, so now I use –enable-bundled-fonts to enable this feature for desktop firefox, here is the prebuilt test edition’s TEST LINK, of course, I haven’t applied most optimization for the test edition.

You can put some fonts to firefox/fonts directory to check whether the feature is effective.

And another thing, I try to add Google GEO API Key and Google Oauth API Key to this edition, and the custom build editions have lacked these keys for a long time, which cause some functions not to work. You can try the GEO link1 and GEO link2 to test Google GEO API. And you also can try to use Firefox Hello service import Contacts to test Google Oauth API.

Additionally, Mozilla has provided a new about:config option dom.ipc.plugins.flash.disable-protected-mode to configure Flash protected mode off since 35.0, and you can set it to true to test it. You can read the details from Bug 1108035 and Bug 1112709, I also use the Bug 1112709 patch.

I plan to add these features to my 35.x release edition, and after my 35.0 is finished, I will check it in order to make it pass virus total test, so that will cost me some time and may decrease some performance.

Rendering problems after Fx32

Someone encountered some rendering problems after fx32 is released, and some issues are caused by OMTC, and some issues are related with GPU. Mozilla continuously fixed the related bugs until present.

After Fx34 is released, I noticed someone on Win7+ also has the strange issue, their part of about:support is

AzureCanvasBackend          skia
AzureContentBackend         cairo
AzureFallbackCanvasBackend  cairo

And I think the normal value is

AzureCanvasBackend          direct2d
AzureContentBackend         direct2d
AzureFallbackCanvasBackend  cairo

I asked someone for their GPU hardware, which is Intel HD Graphics 4400 / AMD Radeon HD 8670M Driver Dual GPU.

I searched the type in Mozilla Bugzilla, it seemed Fx33 changes limited the Dual GPU type, which will disable some features and they caused some issues, you can see in Bug 1097321. It is fixed in Fx37, and I try to ask someone who has the issue use the edition, which solved their problems.

Maybe the custom builders should consider the Bug 1097321 patch next edition.

pcxFirefox 24.8.1 ESR_Final Edition

I plan to build ESR final edtion after the ESR editon reached the maintenance period ( including firefox and thunderbird ).

Here is firefox 24.8.1 ESR_Final Edition link, thunderbid 24.8.1 ESR_Final Edition is being testing for stablity at present.
Download pcxFirefox

And except SCR and SmartRAM feature, firefox 24.8.1 ESR_Final Edition has added the feature:
Add Google GEO API Key ( You can test it from http://mozqa.com/data/firefox/geolocation/position.html and https://developers.google.com/maps/documentation/javascript/examples/map-geolocation, other custom build may lack this feature )

Strange Anti-virus reports

It is said that my 34.0&34.0.5 is detected virus by some Anti-virus software, so I try to upload every module to virus total to detect.
The results:

File name Detection ratio Analysis
browsercomps.dll 0/55 link
AccessibleMarshal.dll 0/55 link
firefox.exe 13/55 link
freebl3.dll 0/55 link
gkmedias.dll 0/55 link
icudt52.dll 0/55 link
icuin52.dll 0/54 link
icuuc52.dll 0/55 link
libEGL.dll 0/55 link
libGLESv2.dll 0/54 link
mozalloc.dll 0/55 link
mozglue.dll 0/55 link
mozjs.dll 0/55 link
nss3.dll 0/55 link
nssckbi.dll 0/55 link
nssdbm3.dll 0/55 link
plugin-container.exe 0/55 link
plugin-hang-ui.exe 0/55 link
sandboxbroker.dll 0/55 link
softokn3.dll 0/55 link
tmemutil.dll 0/55 link
webapprt-stub.exe 0/55 link
webapp-uninstaller.exe 2/55 link
xul.dll 0/55 link

So only two files reported virus: firefox.exe and webapp-uninstaller.exe

How is firefox.exe generated, its link command line:

e:/mozilla/34.0/x86/sse2/obju-vc-pgo/_virtualenv/Scripts/python.exe e:/mozilla/34.0/x86/sse2/mozilla-release/config/expandlibs_exec.py --uselist -- link -NOLOGO -OUT:firefox.exe -PDB:firefox.pdb -ENTRY:wmainCRTStartup -SUBSYSTEM:WINDOWS,5.01 -LARGEADDRESSAWARE -NXCOMPAT -RELEASE -DYNAMICBASE -SAFESEH  -DEBUG -DEBUGTYPE:CV -DEBUG -OPT:REF -LTCG:PGUPDATE -DELAYLOAD:mozglue.dll /HEAP:0x40000  -opt:ref,icf -LARGEADDRESSAWARE e:/mozilla/mylib.lib  nsBrowserApp.obj ./module.res ../../xpcom/glue/standalone/staticruntime/xpcomglue_staticruntime.lib ../../mozglue/build/mozglue.lib  kernel32.lib user32.lib gdi32.lib winmm.lib wsock32.lib advapi32.lib secur32.lib netapi32.lib delayimp.lib

its related source code is nsBrowserApp.cpp, but I haven’t patched it.

I noticed PGO link: -LTCG:PGUPDATE, I try to link it using -LTCG:

e:/mozilla/34.0/x86/sse2/obju-vc-pgo/_virtualenv/Scripts/python.exe e:/mozilla/34.0/x86/sse2/mozilla-release/config/expandlibs_exec.py --uselist -- link -NOLOGO -OUT:firefox.exe -PDB:firefox.pdb -ENTRY:wmainCRTStartup -SUBSYSTEM:WINDOWS,5.01 -LARGEADDRESSAWARE -NXCOMPAT -RELEASE -DYNAMICBASE -SAFESEH  -DEBUG -DEBUGTYPE:CV -DEBUG -OPT:REF -LTCG -DELAYLOAD:mozglue.dll /HEAP:0x40000  -opt:ref,icf -LARGEADDRESSAWARE e:/mozilla/mylib.lib  nsBrowserApp.obj ./module.res ../../xpcom/glue/standalone/staticruntime/xpcomglue_staticruntime.lib ../../mozglue/build/mozglue.lib  kernel32.lib user32.lib gdi32.lib winmm.lib wsock32.lib advapi32.lib secur32.lib netapi32.lib delayimp.lib

And upload firefox.exe to virus total to detect it again, here is the link, oh, no one Anti-virus software report it a virus!
How mad! What do you do for MSVC2013 PGO!

And another module is webapp-uninstaller.exe ( McAfee-GW-Edition and Symantec reported ), which is generated by NSIS ( I can’t do anything for NSIS ), and it is the same with the official edition, but why the Anti-virus software didn’t report official edition’s webapp-uninstaller.exe?
The answer is that official’s webapp-uninstaller.exe is signed. Can the 3rd build sign it? You can if you have bought the expensive signed certificate!
So I try to adopt a hacker method to pass webapp-uninstaller.exe check. From the link, I know a module’s signed certificate is regular, so I can copy official’s signed certificate to my build’s webapp-uninstaller.exe, and this is the patched webapp-uninstaller.exe virus total report. You can see this will pass McAfee-GW-Edition and Symantec, and only AVG reported it as Mozilla Corporation. Of course it is correct, because I only copy the signed certificate and applying signed certificate to another different module can cause certificate signed fault, but passing the Antivirus test is enough.

So I copy two modified modules to my build, package them to 7zip, and the virus total report is here. It’s the same with the words above.

In the end, it is the Anti-virus software false positives. I upload the modified 34.0 x86 edition ( only modified firefox.exe and webapp-uninstaller.exe ) to here. Based on the analysis above, I won’t provide 34.0.5 x86 modified edition.