- **[Singleton Removals]** Remove PlatformStrategies, replacing with per-page providers - **[Singleton Removals]** Remove RuntimeEnabledFeatures and DeprecatedGlobalSettings, replacing them with use of per-page Settings. - **[Singleton Removals]** Remove Theme (and related classes) singletons, replacing them with per-page Theme objects. - **[Moving]** Move remaining settings in Settings.yaml WTF/WebPreferences*.yaml - **[Moving]** Move WeCore/platform/ classes to PAL/ to enforce layering via the linker - **[Moving]** Move legacy loading code to WebKitLegacy. - **[CSSValue <-> Style Split]** Stop using CSSValue classes in Style code, creating new Style classes for remaining concepts and simplifying CSSValue classes to just be plain data - **[CSS]** Add "context" for CSS classes so they can access a relevant ScriptExecutionContext for Settings/Caches/etc. - **[Testing]** Split WebKit IPC code into a static library that we can test via unit tests. - **[Testing]** Add preferences generation to WebKitLegacy/win (needed so we can stop updating testing defaults for it every time) - **[Testing]** Move unit tests out of WebKitTools/TestWebKitAPI and into project specific directories (e.g. WTF tests go in Source/WTF/Tests, etc.) - **[Rationalize]** Rationalize how settings should work with Service Workers. Probably requires a concept in WebKit that a Service Worker can only be shared by pages that have the same WebPreferences/WebDataStore/WKUserContentController/applicationNameForUserAgent etc. - **[Rationalize]** Rationalize how WebPreferences and API::PageConfiguration specific settings interact. - **[Loading]** Unify loading classes using the Fetch naming and behavior. - **[RunLoop]** Unify runloop classes using the HTML EventLoop naming and behavior - **[Unify]** Add support for viewports to all ports. - **[Naming]** Replace usage of broad PLATFORM() macros with more targeted HAVE()/USE()/ENABLE()/OS() etc. Adding new predicates and predicate types when needed. - **[Unclear If Possible]** Find a way to get rid of Widget tree in WebCore.