flypig.co.uk

Gecko-dev Diary

Starting in August 2023 I'll be upgrading the Sailfish OS browser from Gecko version ESR 78 to ESR 91. This page catalogues my progress.

Latest code changes are in the gecko-dev sailfishos-esr91 branch.

There is an index of all posts in case you want to jump to a particular day.

Gecko RSS feed Click the icon for the Gecko-dev Diary RSS feed.

Gecko

5 most recent items

29 Aug 2024 : Day 334 #
I'm continuing the process of patch rationalisation today. Yesterday I got through 24% of the patches, so I'm expecting this task to run up until the weekend. For a bit of context on this, if I were working full-time on the project I'd expect to spend a day doing this, but because I'm dipping in and out, it's inevitably taking a bit longer.

Nevertheless I've made good progress today. The following are the patches I've worked through:
f55057391ac0 Prevent errors from DownloadPrompter
eab04b8c0d80 Enable dconf
c6ea49286566 Disable SessionStore functionality
e035d6ff3a78 Add embedlite static prefs
5ae7644719f8 Allow file scheme when loading OpenSearch providers
1fe7c56c7363 Supress URLQueryStrippingListService.jsm error
80fa227aee92 [sailfishos][gecko] Fix gfxPlatform::AsyncPanZoomEnabled...
b58093d23fb2 Add patch to fix 32-bit builds
ad1b74f33c3d Drop swap_buffers_with_damage extension support...
249be020a9d3 Update EglDisplay pathway
cef201e30159 Make PresShell::SetIsActive() public
009c0fc0134c Avoid crash on theme change
49148b0b591a [PATCH] [sailfishos][egl] Do not create CreateFallbackSurface...
9882c3c821a9 Create EmbedLiteCompositorBridgeParent in...
78c9c07e4ffe Update GetBoostrap return value
f9505b8e3cc8 Split namespace into two blocks
bdb5a929ce64 Introduce EmbedInitGlue to the mozglue. JB#50788
2f6cdae7162d Fixup for f4c2a96b3363e7e64bd728126b5a1d9c720dea7b
aaed7ec58c1d Revert "Bug 1333826 - Remove a few references from .mk files..."
7ec6ebc30d76 Revert "Bug 1333826 - Remove the make-sdk build target, the..."
bf9598fdc451 Revert "Bug 1333826 - Remove SDK_FILES, SDK_LIBRARY, and..."
5f2f418800dc Revert "Bug 1427455 - Remove unused variables from..."
ab0a86414349 Revert "Bug 445128 - Stop putting the version number in the..."
a3dcc0d45a5a Force to build mozglue and xpcomglue static libraries
f05364dbad53 Allow gen_last_modified.py to complete
a0206e85d4ec Add support for aarch64 to elfhack. JB#57563
1257cda3f006 Restore nsAppShell.h
bb66c816d2e5 Revert "Bug 1567888 - remove unneeded QT-related rules and..."
4f87cfb7621c Revert "Remove reference to moc_nsAppShell.cpp"
efab5ee79c4d Revert "Remove build reference to moc_nsNativeAppSupportQt.cpp"
3733c9668313 Add Qt nsNativeBasicThemeQt class
b8069777e723 Fix nsLookAndFeel code
c31b0b87e992 Add missing GfxInfo methods
2fd26a23b173 Add gfxQtPlatform to method implementations
a7d148ce50d1 Add dom/system/qt directory to build
42c6aeccffab Fixup dbddd968a5eb Update nsLookAndFeel
cccc969f3668 Remove reference to moc_nsAppShell.cpp
52f8c2eb9c70 Fixup e31ed7aaa670 Update Qt implementaiton of nsPrintSettings
f8b62e39b45e Add missing methos to GfxInfo
e31ed7aaa670 Update Qt implementaiton of nsPrintSettings
dbddd968a5eb Update nsLookAndFeel
cea87136481f Rename MediaControlKeysEventSource to MediaControlKeySource
ff3f6467a771 Remove nsPrinterEnumeratorQt
87f95304afe3 Update ProcInfo
4626f98315b8 Remove build reference to moc_nsNativeAppSupportQt.cpp
24181a26e795 Fixup for 38be5c5c7302 [PATCH] Revert "Bug 1611386"
5dd03fbeaba4 Fix embedlite building. JB#50505
cea66a6b7aa0 Revert "Bug 1494175 - Remove unimplemented nsIWebBrowserChrome..."
51e18eb9b16e Restore GLContextProviderEGL::CreateWrappingExisting()
2642f0d8d1bc Remove NS_LITERAL_CSTRING usage
b7f6b44b8074 Revert "Bug 1706051 - Remove some IPC messages that are unused..."
7a9fa03f27b3 Hackish fix for preferences usage in Parent process (part 1)
f536dbf9f6f8 Switch GLScreenBuffer for SwapChain
48bbc655f6e3 Revert "Bug 1676576 - Remove unused functions of..."
0acadeba1ac3 Allow compositor specializations to override the composite...
6889dbfaabe5 Make it possible to extend CompositorBridgeParent
5a88215c32d6 Work around upstream membarrier changes
I've consolidated these 57 patches down into the following 36 patches:
c1b4d42cc6bd [sailfishos][gecko] Prevent errors from DownloadPrompter
e5d73eba9939 [sailfishos][gecko] Enable dconf
3c091af6fb4c [sailfishos][gecko] Disable SessionStore functionality
69cc843f6b5d [sailfishos][gecko] Add embedlite static prefs
76df2956569a [sailfishos][gecko] Allow file scheme when loading OpenSearch...
2a397ab1febd [sailfishos][gecko] Supress URLQueryStrippingListService.jsm error
be2dd5f7f549 [sailfishos][gecko] Fix gfxPlatform::AsyncPanZoomEnabled for...
6e1b47607843 [sailfishos][gecko] Add patch to fix 32-bit builds
f0199909b71f [sailfishos][egl] Drop swap_buffers_with_damage extension...
7ea1768c2aeb [sailfishos][gecko] Make PresShell::SetIsActive() public
d05693baba5f [sailfishos][egl] Do not create CreateFallbackSurface...
f6c1cf32effe [sailfishos][gecko] Create EmbedLiteCompositorBridgeParent in...
ce922a93b50a [sailfishos][gecko] Split namespace into two blocks
881758877c5d [sailfishos][gecko] Introduce EmbedInitGlue to the mozglue...
9e9430751d8b [sailfishos][gecko] Revert "Bug 1333826 - Remove a few..."
73ffb3a64c50 [sailfishos][gecko] Revert "Bug 1333826 - Remove the make-sdk..."
bffc049cab51 [sailfishos][gecko] Revert "Bug 1333826 - Remove SDK_FILES,..."
d27da57a5840 [sailfishos][gecko] Revert "Bug 1427455 - Remove unused..."
a1902a2f4a8b [sailfishos][gecko] Revert "Bug 445128 - Stop putting the..."
f67aeb2da728 [sailfishos][gecko] Force to build mozglue and xpcomglue static...
097ce48f8019 [sailfishos][gecko] Allow gen_last_modified.py to complete
73cb3c320c43 [sailfishos][gecko] Add support for aarch64 to elfhack. JB#57563
e184424c5a1d [sailfishos][gecko] Restore nsAppShell.h
d9d4edaae30a [sailfishos][gecko] Revert "Bug 1567888 - remove unneeded..."
aa5bf20f2893 [sailfishos][gecko] Update ProcInfo
1b7857d792bd [sailfishos][gecko] Fix embedlite building. JB#50505
4823c745e163 [sailfishos][gecko] Revert "Bug 1494175 - Remove unimplemented..."
e548b4bb2a87 [sailfishos][gecko] Remove NS_LITERAL_CSTRING usage
1106e80173ea [sailfishos][gecko] Revert "Bug 1706051 - Remove some IPC..."
4a89fad38f8c [sailfishos][gecko] Hackish fix for preferences usage in Parent...
9d5a1fc090d4 Update EglDisplay pathway
70af371328eb Restore GLContextProviderEGL::CreateWrappingExisting()
12cae7270918 Switch GLScreenBuffer for SwapChain
cba3155a76e3 [sailfishos][gecko] Revert "Bug 1676576 - Remove unused..."
5c198b5f1ae2 [sailfishos][gecko] Allow compositor specializations to...
0dd9598d9874 [sailfishos][gecko] Work around upstream membarrier changes
Apart from merging together patches that are related I've also ensured existing patches that carried over from ESR 78 have had their details (title, description, author, date) transferred over in full.

You'll notice there are three patches that don't have a topic prefix of [sailfishos][gecko] added. That's because these three patches related to the rendering pipeline. I'm planning to combine these together, but want to first batch them up so I can clearly see how many they are and what files they touch. With any luck, combining these should offer a nice opportunity to tidy things up as well.

I've not checked, but the plan with all of these changes is to ensure the final repository contents stays identical to what we have now. Moving, merging, rewording and re-attributing commits shouldn't have any impact on the final contents. The commit hashes will change, partly due to changes in the descriptions (which are included in the hash) and partly as a result of consolidating patches. But it's the final result that needs to stay the same so that should all be fine.

In summary, I've now worked through 86 of the original 126 commits. That's 68% of them. There are now just 92 patches in total which is already lower than the 98 patches needed to build ESR 78 and it's likely to go down further. The fewer the patches the easier the browser will be to maintain in the future, so this is a good sign.

If you'd like to read any of my other gecko diary entries, they're all available on my Gecko-dev Diary page.

Comments

Uncover Disqus comments