WebKit Bugzilla
Attachment 342828 Details for
Bug 186683
: DisplayRefreshMonitorMac should hold a weak pointer to WebPage.
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
Remember
[x]
|
Forgot Password
Login:
[x]
[patch]
Patch
bug-186683-20180615104839.patch (text/plain), 3.12 KB, created by
Per Arne Vollan
on 2018-06-15 10:48:40 PDT
(
hide
)
Description:
Patch
Filename:
MIME Type:
Creator:
Per Arne Vollan
Created:
2018-06-15 10:48:40 PDT
Size:
3.12 KB
patch
obsolete
>Index: Source/WebKit/ChangeLog >=================================================================== >--- Source/WebKit/ChangeLog (revision 232882) >+++ Source/WebKit/ChangeLog (working copy) >@@ -1,3 +1,20 @@ >+2018-06-15 Per Arne Vollan <pvollan@apple.com> >+ >+ DisplayRefreshMonitorMac should hold a weak pointer to WebPage. >+ https://bugs.webkit.org/show_bug.cgi?id=186683 >+ >+ Reviewed by NOBODY (OOPS!). >+ >+ Instead of DisplayRefreshMonitorMac having a RefPtr to WebPage, it should have a weak pointer. >+ Having a RefPtr could in theory create reference cycles. This potential problem has not been >+ observed in practice, but it is safer to use a weak pointer. >+ >+ * WebProcess/WebPage/WebPage.h: >+ * WebProcess/WebPage/mac/DrawingAreaMac.cpp: >+ (WebKit::DisplayRefreshMonitorMac::DisplayRefreshMonitorMac): >+ (WebKit::DisplayRefreshMonitorMac::~DisplayRefreshMonitorMac): >+ (WebKit::DisplayRefreshMonitorMac::requestRefreshCallback): >+ > 2018-06-15 Carlos Alberto Lopez Perez <clopez@igalia.com> > > [GTK][WKE] Disable memory pressure handling when running layout tests (WTR) >Index: Source/WebKit/WebProcess/WebPage/WebPage.h >=================================================================== >--- Source/WebKit/WebProcess/WebPage/WebPage.h (revision 232882) >+++ Source/WebKit/WebProcess/WebPage/WebPage.h (working copy) >@@ -246,7 +246,7 @@ struct WebsitePoliciesData; > using SnapshotOptions = uint32_t; > using WKEventModifiers = uint32_t; > >-class WebPage : public API::ObjectImpl<API::Object::Type::BundlePage>, public IPC::MessageReceiver, public IPC::MessageSender { >+class WebPage : public API::ObjectImpl<API::Object::Type::BundlePage>, public IPC::MessageReceiver, public IPC::MessageSender, public CanMakeWeakPtr<WebPage> { > public: > static Ref<WebPage> create(uint64_t pageID, WebPageCreationParameters&&); > virtual ~WebPage(); >Index: Source/WebKit/WebProcess/WebPage/mac/DrawingAreaMac.cpp >=================================================================== >--- Source/WebKit/WebProcess/WebPage/mac/DrawingAreaMac.cpp (revision 232882) >+++ Source/WebKit/WebProcess/WebPage/mac/DrawingAreaMac.cpp (working copy) >@@ -57,7 +57,7 @@ private: > > bool hasRequestedRefreshCallback() const override { return m_hasSentMessage; } > >- Ref<WebPage> m_webPage; >+ WeakPtr<WebPage> m_webPage; > bool m_hasSentMessage { false }; > unsigned m_observerID; > static unsigned m_counterID; >@@ -69,18 +69,26 @@ unsigned DisplayRefreshMonitorMac::m_cou > > DisplayRefreshMonitorMac::DisplayRefreshMonitorMac(PlatformDisplayID displayID, WebPage& webPage) > : DisplayRefreshMonitor(displayID) >- , m_webPage(webPage) >+ , m_webPage(makeWeakPtr(webPage)) > , m_observerID(++m_counterID) > { > } > > DisplayRefreshMonitorMac::~DisplayRefreshMonitorMac() > { >+ ASSERT(m_webPage); >+ if (!m_webPage) >+ return; >+ > m_webPage->send(Messages::WebPageProxy::StopDisplayLink(m_observerID)); > } > > bool DisplayRefreshMonitorMac::requestRefreshCallback() > { >+ ASSERT(m_webPage); >+ if (!m_webPage) >+ return false; >+ > if (!isActive()) > return false; >
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Formatted Diff
|
Diff
Attachments on
bug 186683
: 342828