Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Commit 98e0676

Browse filesBrowse files
Alex Christensenwebkit-commit-queue
authored andcommitted
Add null checks effectively in UserInputBridge
https://bugs.webkit.org/show_bug.cgi?id=218622 <rdar://problem/70724960> Patch by Alex Christensen <achristensen@webkit.org> on 2020-11-05 Reviewed by Wenson Hsieh. Source/WebCore: * replay/UserInputBridge.cpp: (WebCore::UserInputBridge::reloadFrame): (WebCore::UserInputBridge::stopLoadingFrame): * replay/UserInputBridge.h: Source/WebKit: * WebProcess/WebPage/WebPage.cpp: (WebKit::WebPage::stopLoadingFrame): (WebKit::WebPage::stopLoading): (WebKit::WebPage::reload): Canonical link: https://commits.webkit.org/231298@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@269498 268f45cc-cd09-0410-ab3c-d52691b4dbfc
1 parent 209ecf7 commit 98e0676
Copy full SHA for 98e0676

5 files changed

+45-10Lines changed: 45 additions & 10 deletions

File tree

Expand file treeCollapse file tree
Open diff view settings
Filter options
Expand file treeCollapse file tree
Open diff view settings
Collapse file

‎Source/WebCore/ChangeLog‎

Copy file name to clipboardExpand all lines: Source/WebCore/ChangeLog
+13Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,16 @@
1+
2020-11-05 Alex Christensen <achristensen@webkit.org>
2+
3+
Add null checks effectively in UserInputBridge
4+
https://bugs.webkit.org/show_bug.cgi?id=218622
5+
<rdar://problem/70724960>
6+
7+
Reviewed by Wenson Hsieh.
8+
9+
* replay/UserInputBridge.cpp:
10+
(WebCore::UserInputBridge::reloadFrame):
11+
(WebCore::UserInputBridge::stopLoadingFrame):
12+
* replay/UserInputBridge.h:
13+
114
2020-11-05 Myles C. Maxfield <mmaxfield@apple.com>
215

316
[Cocoa] REGRESSION(r269211): Text with emoji can trigger drawing corruption
Collapse file

‎Source/WebCore/replay/UserInputBridge.cpp‎

Copy file name to clipboardExpand all lines: Source/WebCore/replay/UserInputBridge.cpp
+4-4Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -117,14 +117,14 @@ void UserInputBridge::loadRequest(FrameLoadRequest&& request, InputSource)
117117
m_page.mainFrame().loader().load(WTFMove(request));
118118
}
119119

120-
void UserInputBridge::reloadFrame(Frame* frame, OptionSet<ReloadOption> options, InputSource)
120+
void UserInputBridge::reloadFrame(Frame& frame, OptionSet<ReloadOption> options, InputSource)
121121
{
122-
frame->loader().reload(options);
122+
frame.loader().reload(options);
123123
}
124124

125-
void UserInputBridge::stopLoadingFrame(Frame* frame, InputSource)
125+
void UserInputBridge::stopLoadingFrame(Frame& frame, InputSource)
126126
{
127-
frame->loader().stopForUserCancel();
127+
frame.loader().stopForUserCancel();
128128
}
129129

130130
bool UserInputBridge::tryClosePage(InputSource)
Collapse file

‎Source/WebCore/replay/UserInputBridge.h‎

Copy file name to clipboardExpand all lines: Source/WebCore/replay/UserInputBridge.h
+2-2Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -76,8 +76,8 @@ class UserInputBridge {
7676

7777
// Navigation APIs.
7878
WEBCORE_EXPORT void loadRequest(FrameLoadRequest&&, InputSource = InputSource::User);
79-
WEBCORE_EXPORT void reloadFrame(Frame*, OptionSet<ReloadOption>, InputSource = InputSource::User);
80-
WEBCORE_EXPORT void stopLoadingFrame(Frame*, InputSource = InputSource::User);
79+
WEBCORE_EXPORT void reloadFrame(Frame&, OptionSet<ReloadOption>, InputSource = InputSource::User);
80+
WEBCORE_EXPORT void stopLoadingFrame(Frame&, InputSource = InputSource::User);
8181
WEBCORE_EXPORT bool tryClosePage(InputSource = InputSource::User);
8282

8383
private:
Collapse file

‎Source/WebKit/ChangeLog‎

Copy file name to clipboardExpand all lines: Source/WebKit/ChangeLog
+13Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,16 @@
1+
2020-11-05 Alex Christensen <achristensen@webkit.org>
2+
3+
Add null checks effectively in UserInputBridge
4+
https://bugs.webkit.org/show_bug.cgi?id=218622
5+
<rdar://problem/70724960>
6+
7+
Reviewed by Wenson Hsieh.
8+
9+
* WebProcess/WebPage/WebPage.cpp:
10+
(WebKit::WebPage::stopLoadingFrame):
11+
(WebKit::WebPage::stopLoading):
12+
(WebKit::WebPage::reload):
13+
114
2020-11-05 Brent Fulgham <bfulgham@apple.com>
215

316
[macOS] Remove mdnsresponder access from WebKit processes
Collapse file

‎Source/WebKit/WebProcess/WebPage/WebPage.cpp‎

Copy file name to clipboardExpand all lines: Source/WebKit/WebProcess/WebPage/WebPage.cpp
+13-4Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1708,14 +1708,20 @@ void WebPage::stopLoadingFrame(FrameIdentifier frameID)
17081708
if (!frame)
17091709
return;
17101710

1711-
corePage()->userInputBridge().stopLoadingFrame(frame->coreFrame());
1711+
auto* coreFrame = frame->coreFrame();
1712+
if (!coreFrame || !m_page)
1713+
return;
1714+
1715+
m_page->userInputBridge().stopLoadingFrame(*coreFrame);
17121716
}
17131717

17141718
void WebPage::stopLoading()
17151719
{
1716-
SendStopResponsivenessTimer stopper;
1720+
if (!m_page || !m_mainFrame->coreFrame())
1721+
return;
17171722

1718-
corePage()->userInputBridge().stopLoadingFrame(m_mainFrame->coreFrame());
1723+
SendStopResponsivenessTimer stopper;
1724+
m_page->userInputBridge().stopLoadingFrame(*m_mainFrame->coreFrame());
17191725
}
17201726

17211727
bool WebPage::defersLoading() const
@@ -1736,7 +1742,10 @@ void WebPage::reload(uint64_t navigationID, uint32_t reloadOptions, SandboxExten
17361742
m_pendingNavigationID = navigationID;
17371743

17381744
m_sandboxExtensionTracker.beginReload(m_mainFrame.ptr(), WTFMove(sandboxExtensionHandle));
1739-
corePage()->userInputBridge().reloadFrame(m_mainFrame->coreFrame(), OptionSet<ReloadOption>::fromRaw(reloadOptions));
1745+
if (m_page && m_mainFrame->coreFrame())
1746+
m_page->userInputBridge().reloadFrame(*m_mainFrame->coreFrame(), OptionSet<ReloadOption>::fromRaw(reloadOptions));
1747+
else
1748+
ASSERT_NOT_REACHED();
17401749

17411750
if (m_pendingNavigationID) {
17421751
// This can happen if FrameLoader::reload() returns early because the document URL is empty.

0 commit comments

Comments
0 (0)
Morty Proxy This is a proxified and sanitized view of the page, visit original site.