WebKit Bugzilla
Attachment 361180 Details for
Bug 194284
: REGRESSION (r240579): com.apple.WebKit.WebContent at WebCore: WebCore::Document::absoluteEventRegionForNode
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
Remember
[x]
|
Forgot Password
Login:
[x]
[patch]
Patch
bug-194284-20190205115722.patch (text/plain), 3.15 KB, created by
Antoine Quint
on 2019-02-05 02:57:24 PST
(
hide
)
Description:
Patch
Filename:
MIME Type:
Creator:
Antoine Quint
Created:
2019-02-05 02:57:24 PST
Size:
3.15 KB
patch
obsolete
>Subversion Revision: 240967 >diff --git a/Source/WebCore/ChangeLog b/Source/WebCore/ChangeLog >index dc74493baf6e8e464b5ec2dae7b0f514cf2747a6..3768f89bc0645d474e5cb3a2ff709bd4a980d760 100644 >--- a/Source/WebCore/ChangeLog >+++ b/Source/WebCore/ChangeLog >@@ -1,3 +1,21 @@ >+2019-02-05 Antoine Quint <graouts@apple.com> >+ >+ REGRESSION (r240579): com.apple.WebKit.WebContent at WebCore: WebCore::Document::absoluteEventRegionForNode >+ https://bugs.webkit.org/show_bug.cgi?id=194284 >+ <rdar://problem/47774298> >+ >+ Reviewed by NOBODY (OOPS!). >+ >+ The m_touchActionElements list needs to be HashSet<RefPtr<Element>> instead of HashSet<Element*>. It was initially storing raw pointers based on m_touchEventTargets >+ which is an EventTargetSet (typedefâd to HashCountedSet<Node*>), but that's because these nodes have an event listener registered for them and as such are kept alive, >+ whereas elements with a touch-action property arenât. Elements are removed from this list from Document::nodeWillBeRemoved() and from Document::updateTouchActionElements(), >+ the latter being called from Style::TreeResolver::resolveElement(). >+ >+ * dom/Document.cpp: >+ (WebCore::Document::updateTouchActionElements): >+ * dom/Document.h: >+ (WebCore::Document::touchActionElements const): >+ > 2019-02-04 Yusuke Suzuki <ysuzuki@apple.com> > > [JSC] Shrink size of VM by lazily allocating IsoSubspaces for non-common types >diff --git a/Source/WebCore/dom/Document.cpp b/Source/WebCore/dom/Document.cpp >index 50bccefcde471977ce9bf431e310104a809b9e2a..31f442bf75292b1c30bbf9ad2c2a234e8fd1b00d 100644 >--- a/Source/WebCore/dom/Document.cpp >+++ b/Source/WebCore/dom/Document.cpp >@@ -8690,7 +8690,7 @@ void Document::updateTouchActionElements(Element& element, const RenderStyle& st > > if (style.touchActions() != TouchAction::Auto) { > if (!m_touchActionElements) >- m_touchActionElements = std::make_unique<HashSet<Element*>>(); >+ m_touchActionElements = std::make_unique<HashSet<RefPtr<Element>>>(); > changed |= m_touchActionElements->add(&element).isNewEntry; > } else if (m_touchActionElements) > changed |= m_touchActionElements->remove(&element); >diff --git a/Source/WebCore/dom/Document.h b/Source/WebCore/dom/Document.h >index 8e2878f4d15ab8515067a3aa5da3f25731102d03..18fefe50a93b913ee03e9c2c5eb23ddebda6a721 100644 >--- a/Source/WebCore/dom/Document.h >+++ b/Source/WebCore/dom/Document.h >@@ -1278,7 +1278,7 @@ public: > #endif > #if ENABLE(POINTER_EVENTS) > void updateTouchActionElements(Element&, const RenderStyle&); >- const HashSet<Element*>* touchActionElements() const { return m_touchActionElements.get(); } >+ const HashSet<RefPtr<Element>>* touchActionElements() const { return m_touchActionElements.get(); } > #endif > > void didAddTouchEventHandler(Node&); >@@ -1881,7 +1881,7 @@ private: > std::unique_ptr<EventTargetSet> m_touchEventTargets; > #endif > #if ENABLE(POINTER_EVENTS) >- std::unique_ptr<HashSet<Element*>> m_touchActionElements; >+ std::unique_ptr<HashSet<RefPtr<Element>>> m_touchActionElements; > #endif > std::unique_ptr<EventTargetSet> m_wheelEventTargets; >
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 194284
:
361180
|
361182