Changeset 286543 in webkit
- Timestamp:
- Dec 6, 2021, 6:35:01 AM (5 years ago)
- Location:
- trunk/Source
- Files:
-
- 5 edited
-
WTF/ChangeLog (modified) (1 diff)
-
WTF/Scripts/Preferences/WebPreferencesInternal.yaml (modified) (1 diff)
-
WebCore/ChangeLog (modified) (1 diff)
-
WebCore/page/SettingsBase.cpp (modified) (1 diff)
-
WebCore/page/SettingsBase.h (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WTF/ChangeLog
r286540 r286543 1 2021-12-06 Nikolas Zimmermann <nzimmermann@igalia.com> 2 3 [LBSE] Toggling the Settings -> Enabled LBSE flag has no immediate effect 4 https://bugs.webkit.org/show_bug.cgi?id=233871 5 6 Reviewed by Rob Buis. 7 8 Toggling "Enable layer-based SVG engine" in e.g. MiniBrowser or from JS has no immediate effect. 9 A relayout is not enough: a full style / render tree rebuild is needed. 10 11 * Scripts/Preferences/WebPreferencesInternal.yaml: When "LayerBasedSVGEngineEnabled" changes call 12 WebCore::SettingsBase::layerBasedSVGEngineEnabledChanged() to assure the switch from legacy to 13 LBSE engine and vice-versa is live and doesn't need reloads to take effect. 14 1 15 2021-12-06 Youenn Fablet <youenn@apple.com> 2 16 -
trunk/Source/WTF/Scripts/Preferences/WebPreferencesInternal.yaml
r286504 r286543 451 451 humanReadableDescription: "Enable next-generation layer-based SVG Engine (LBSE)" 452 452 condition: ENABLE(LAYER_BASED_SVG_ENGINE) 453 webcoreOnChange: setNeedsRelayoutAllFrames453 webcoreOnChange: layerBasedSVGEngineEnabledChanged 454 454 defaultValue: 455 455 WebCore: -
trunk/Source/WebCore/ChangeLog
r286542 r286543 1 2021-12-06 Nikolas Zimmermann <nzimmermann@igalia.com> 2 3 [LBSE] Toggling the Settings -> Enabled LBSE flag has no immediate effect 4 https://bugs.webkit.org/show_bug.cgi?id=233871 5 6 Reviewed by Rob Buis. 7 8 Toggling "Enable layer-based SVG engine" in e.g. MiniBrowser or from JS has no immediate effect. 9 A relayout is not enough: a full style / render tree rebuild is needed. 10 11 Covered by existing tests. 12 13 * page/SettingsBase.cpp: 14 (WebCore::SettingsBase::layerBasedSVGEngineEnabledChanged): Rebuild style / renderers upon changes. 15 * page/SettingsBase.h: 16 1 17 2021-12-06 Nikolas Zimmermann <nzimmermann@igalia.com> 2 18 -
trunk/Source/WebCore/page/SettingsBase.cpp
r275480 r286543 309 309 #endif 310 310 311 #if ENABLE(LAYER_BASED_SVG_ENGINE) 312 313 void SettingsBase::layerBasedSVGEngineEnabledChanged() 314 { 315 if (!m_page) 316 return; 317 318 for (auto* frame = &m_page->mainFrame(); frame; frame = frame->tree().traverseNext()) { 319 auto* document = frame->document(); 320 if (!document) 321 continue; 322 323 auto* documentElement = document->documentElement(); 324 if (!documentElement) 325 continue; 326 327 documentElement->invalidateStyleAndRenderersForSubtree(); 328 document->scheduleFullStyleRebuild(); 329 } 330 } 331 332 #endif 333 311 334 void SettingsBase::userStyleSheetLocationChanged() 312 335 { -
trunk/Source/WebCore/page/SettingsBase.h
r275480 r286543 140 140 void mockCaptureDevicesEnabledChanged(); 141 141 #endif 142 #if ENABLE(LAYER_BASED_SVG_ENGINE) 143 void layerBasedSVGEngineEnabledChanged(); 144 #endif 142 145 143 146 Page* m_page;
Note:
See TracChangeset
for help on using the changeset viewer.