Skip to content

Commit c6fa543

Browse files
magomezpgorszkowski-igalia
authored andcommitted
Add env var to allow keeping the existent navigation on a fragment load
1 parent f4aae52 commit c6fa543

1 file changed

Lines changed: 9 additions & 1 deletion

File tree

Source/WebCore/loader/FrameLoader.cpp

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3542,8 +3542,16 @@ void FrameLoader::continueFragmentScrollAfterNavigationPolicy(const ResourceRequ
35423542
// frame to be deallocated.
35433543
Ref frame = m_frame.get();
35443544

3545+
static bool keepNavigationOnFragmentLoad = false;
3546+
static bool keepNavigationOnFragmentLoadInitialized = false;
3547+
3548+
if (!keepNavigationOnFragmentLoadInitialized) {
3549+
keepNavigationOnFragmentLoad = !!getenv("WPE_KEEP_NAVIGATION_ON_FRAGMENT_LOAD");
3550+
keepNavigationOnFragmentLoadInitialized = true;
3551+
}
3552+
35453553
// If we have a provisional request for a different document, a fragment scroll should cancel it.
3546-
if (m_provisionalDocumentLoader && !equalIgnoringFragmentIdentifier(m_provisionalDocumentLoader->request().url(), request.url())) {
3554+
if (m_provisionalDocumentLoader && !equalIgnoringFragmentIdentifier(m_provisionalDocumentLoader->request().url(), request.url()) && !keepNavigationOnFragmentLoad) {
35473555
protectedProvisionalDocumentLoader()->stopLoading();
35483556
FRAMELOADER_RELEASE_LOG(ResourceLoading, "continueFragmentScrollAfterNavigationPolicy: Clearing provisional document loader (m_provisionalDocumentLoader=%p)", m_provisionalDocumentLoader.get());
35493557
setProvisionalDocumentLoader(nullptr);

0 commit comments

Comments
 (0)