Expand RefPtr / Ref use in FrameLoader
https://bugs.webkit.org/show_bug.cgi?id=235551
rdar://87986840
Reviewed by Mark Lam.
Apply Ref / RefPtr instead of taking SerializedScriptValue*.
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::loadInSameDocument):
(WebCore::FrameLoader::continueFragmentScrollAfterNavigationPolicy):
* loader/FrameLoader.h:
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@288539 268f45cc-cd09-0410-ab3c-d52691b4dbfc
diff --git a/Source/WebCore/ChangeLog b/Source/WebCore/ChangeLog
index 88652e8..f946651 100644
--- a/Source/WebCore/ChangeLog
+++ b/Source/WebCore/ChangeLog
@@ -1,3 +1,18 @@
+2022-01-24 Yusuke Suzuki <ysuzuki@apple.com>
+
+ Expand RefPtr / Ref use in FrameLoader
+ https://bugs.webkit.org/show_bug.cgi?id=235551
+ rdar://87986840
+
+ Reviewed by Mark Lam.
+
+ Apply Ref / RefPtr instead of taking SerializedScriptValue*.
+
+ * loader/FrameLoader.cpp:
+ (WebCore::FrameLoader::loadInSameDocument):
+ (WebCore::FrameLoader::continueFragmentScrollAfterNavigationPolicy):
+ * loader/FrameLoader.h:
+
2022-01-24 Simon Fraser <simon.fraser@apple.com>
REGRESSION (r286932): Fixed position elements jiggle sometimes (Twitter, Facebook)
diff --git a/Source/WebCore/loader/FrameLoader.cpp b/Source/WebCore/loader/FrameLoader.cpp
index 2df4995..7254737 100644
--- a/Source/WebCore/loader/FrameLoader.cpp
+++ b/Source/WebCore/loader/FrameLoader.cpp
@@ -1093,7 +1093,7 @@
// This does the same kind of work that didOpenURL does, except it relies on the fact
// that a higher level already checked that the URLs match and the scrolling is the right thing to do.
-void FrameLoader::loadInSameDocument(const URL& url, SerializedScriptValue* stateObject, bool isNewNavigation)
+void FrameLoader::loadInSameDocument(URL url, RefPtr<SerializedScriptValue> stateObject, bool isNewNavigation)
{
FRAMELOADER_RELEASE_LOG(ResourceLoading, "loadInSameDocument: frame load started");
@@ -1155,7 +1155,7 @@
m_client->dispatchDidNavigateWithinPage();
- m_frame.document()->statePopped(stateObject ? Ref<SerializedScriptValue> { *stateObject } : SerializedScriptValue::nullValue());
+ m_frame.document()->statePopped(stateObject ? stateObject.releaseNonNull() : SerializedScriptValue::nullValue());
m_client->dispatchDidPopStateWithinPage();
if (hashChange) {
@@ -3229,7 +3229,7 @@
}
bool isRedirect = m_quickRedirectComing || policyChecker().loadType() == FrameLoadType::RedirectWithLockedBackForwardList;
- loadInSameDocument(request.url(), 0, !isRedirect);
+ loadInSameDocument(request.url(), nullptr, !isRedirect);
}
bool FrameLoader::shouldPerformFragmentNavigation(bool isFormSubmission, const String& httpMethod, FrameLoadType loadType, const URL& url)
diff --git a/Source/WebCore/loader/FrameLoader.h b/Source/WebCore/loader/FrameLoader.h
index 86fb175..ad5a380 100644
--- a/Source/WebCore/loader/FrameLoader.h
+++ b/Source/WebCore/loader/FrameLoader.h
@@ -393,7 +393,7 @@
WEBCORE_EXPORT void detachChildren();
void closeAndRemoveChild(Frame&);
- void loadInSameDocument(const URL&, SerializedScriptValue* stateObject, bool isNewNavigation);
+ void loadInSameDocument(URL, RefPtr<SerializedScriptValue> stateObject, bool isNewNavigation);
void prepareForLoadStart();
void provisionalLoadStarted();