Title: [191778] branches/safari-601-branch/Source/WebCore
- Revision
- 191778
- Author
- [email protected]
- Date
- 2015-10-29 22:47:21 -0700 (Thu, 29 Oct 2015)
Log Message
Merged r191756. rdar://problem/23322223
Modified Paths
Diff
Modified: branches/safari-601-branch/Source/WebCore/ChangeLog (191777 => 191778)
--- branches/safari-601-branch/Source/WebCore/ChangeLog 2015-10-30 05:37:05 UTC (rev 191777)
+++ branches/safari-601-branch/Source/WebCore/ChangeLog 2015-10-30 05:47:21 UTC (rev 191778)
@@ -1,3 +1,26 @@
+2015-10-29 Babak Shafiei <[email protected]>
+
+ Merge r191756.
+
+ 2015-10-29 Simon Fraser <[email protected]>
+
+ Very slow typing on pages with wheel event handlers on the body, and deep content
+ https://bugs.webkit.org/show_bug.cgi?id=150692
+ rdar://problem/23242631
+
+ Reviewed by Zalan Bujtas.
+
+ On a large page with a wheel event handler on the body, we would call
+ Element::absoluteEventHandlerBounds() for every element under the body,
+ and compute an absolute bounds for each one. This is very slow.
+
+ For now, optimize computing a region for the <body> by just using the document
+ bounds, which will always be as big or larger. It's OK for this region to
+ be an overestimate.
+
+ * dom/Document.cpp:
+ (WebCore::Document::absoluteRegionForEventTargets):
+
2015-10-29 Lucas Forschler <[email protected]>
Merge r191706. rdar://problem/23319292
Modified: branches/safari-601-branch/Source/WebCore/dom/Document.cpp (191777 => 191778)
--- branches/safari-601-branch/Source/WebCore/dom/Document.cpp 2015-10-30 05:37:05 UTC (rev 191777)
+++ branches/safari-601-branch/Source/WebCore/dom/Document.cpp 2015-10-30 05:47:21 UTC (rev 191778)
@@ -6190,7 +6190,12 @@
rootRelativeBounds = element->absoluteEventHandlerBounds(insideFixedPosition);
} else if (is<Element>(keyValuePair.key)) {
Element* element = downcast<Element>(keyValuePair.key);
- rootRelativeBounds = element->absoluteEventHandlerBounds(insideFixedPosition);
+ if (is<HTMLBodyElement>(element)) {
+ // For the body, just use the document bounds.
+ // The body may not cover this whole area, but it's OK for this region to be an overestimate.
+ rootRelativeBounds = absoluteEventHandlerBounds(insideFixedPosition);
+ } else
+ rootRelativeBounds = element->absoluteEventHandlerBounds(insideFixedPosition);
}
if (!rootRelativeBounds.isEmpty())
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes