Title: [173528] trunk/Source/WebCore
- Revision
- 173528
- Author
- cdu...@apple.com
- Date
- 2014-09-11 12:26:16 -0700 (Thu, 11 Sep 2014)
Log Message
Use tighter typing for Document::ownerElement() return value
https://bugs.webkit.org/show_bug.cgi?id=136746
Reviewed by Ryosuke Niwa.
Use tighter typing for Document::ownerElement() return value at call
sites to increase code readability a bit and allow the compiler to
generate slightly more efficient code in some cases. In particular,
the more efficient HTMLElement::hasTagName(HTMLQualifiedName) is
now called in several cases instead of the one on Node. This bypasses
unnecessary isHTMLElement() checks.
No new tests, no behavior change.
* accessibility/AccessibilityNodeObject.cpp:
(WebCore::AccessibilityNodeObject::alternativeTextForWebArea):
* dom/Document.cpp:
(WebCore::Document::updateLayout):
(WebCore::Document::topDocument):
* html/HTMLBodyElement.cpp:
(WebCore::HTMLBodyElement::insertedInto):
* rendering/RenderBoxModelObject.cpp:
(WebCore::RenderBoxModelObject::paintFillLayerExtended):
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::scrollRectToVisible):
* rendering/RenderView.cpp:
(WebCore::RenderView::paintBoxDecorations):
Modified Paths
Diff
Modified: trunk/Source/WebCore/ChangeLog (173527 => 173528)
--- trunk/Source/WebCore/ChangeLog 2014-09-11 19:22:06 UTC (rev 173527)
+++ trunk/Source/WebCore/ChangeLog 2014-09-11 19:26:16 UTC (rev 173528)
@@ -1,3 +1,33 @@
+2014-09-11 Chris Dumez <cdu...@apple.com>
+
+ Use tighter typing for Document::ownerElement() return value
+ https://bugs.webkit.org/show_bug.cgi?id=136746
+
+ Reviewed by Ryosuke Niwa.
+
+ Use tighter typing for Document::ownerElement() return value at call
+ sites to increase code readability a bit and allow the compiler to
+ generate slightly more efficient code in some cases. In particular,
+ the more efficient HTMLElement::hasTagName(HTMLQualifiedName) is
+ now called in several cases instead of the one on Node. This bypasses
+ unnecessary isHTMLElement() checks.
+
+ No new tests, no behavior change.
+
+ * accessibility/AccessibilityNodeObject.cpp:
+ (WebCore::AccessibilityNodeObject::alternativeTextForWebArea):
+ * dom/Document.cpp:
+ (WebCore::Document::updateLayout):
+ (WebCore::Document::topDocument):
+ * html/HTMLBodyElement.cpp:
+ (WebCore::HTMLBodyElement::insertedInto):
+ * rendering/RenderBoxModelObject.cpp:
+ (WebCore::RenderBoxModelObject::paintFillLayerExtended):
+ * rendering/RenderLayer.cpp:
+ (WebCore::RenderLayer::scrollRectToVisible):
+ * rendering/RenderView.cpp:
+ (WebCore::RenderView::paintBoxDecorations):
+
2014-09-10 Roger Fong <roger_f...@apple.com>
Check for varying packing restrictions per program instead of per shader.
Modified: trunk/Source/WebCore/accessibility/AccessibilityNodeObject.cpp (173527 => 173528)
--- trunk/Source/WebCore/accessibility/AccessibilityNodeObject.cpp 2014-09-11 19:22:06 UTC (rev 173527)
+++ trunk/Source/WebCore/accessibility/AccessibilityNodeObject.cpp 2014-09-11 19:26:16 UTC (rev 173528)
@@ -1461,25 +1461,21 @@
return ariaLabel;
}
- Node* owner = document->ownerElement();
- if (owner) {
+ if (HTMLFrameOwnerElement* owner = document->ownerElement()) {
if (owner->hasTagName(frameTag) || owner->hasTagName(iframeTag)) {
- const AtomicString& title = toElement(owner)->getAttribute(titleAttr);
+ const AtomicString& title = owner->getAttribute(titleAttr);
if (!title.isEmpty())
return title;
- return toElement(owner)->getNameAttribute();
}
- if (owner->isHTMLElement())
- return toHTMLElement(owner)->getNameAttribute();
+ return owner->getNameAttribute();
}
String documentTitle = document->title();
if (!documentTitle.isEmpty())
return documentTitle;
- owner = document->body();
- if (owner && owner->isHTMLElement())
- return toHTMLElement(owner)->getNameAttribute();
+ if (HTMLElement* body = document->body())
+ return body->getNameAttribute();
return String();
}
Modified: trunk/Source/WebCore/dom/Document.cpp (173527 => 173528)
--- trunk/Source/WebCore/dom/Document.cpp 2014-09-11 19:22:06 UTC (rev 173527)
+++ trunk/Source/WebCore/dom/Document.cpp 2014-09-11 19:26:16 UTC (rev 173528)
@@ -1808,8 +1808,8 @@
RenderView::RepaintRegionAccumulator repaintRegionAccumulator(renderView());
- if (Element* oe = ownerElement())
- oe->document().updateLayout();
+ if (HTMLFrameOwnerElement* owner = ownerElement())
+ owner->document().updateLayout();
updateStyleIfNeeded();
@@ -4388,7 +4388,7 @@
}
Document* document = const_cast<Document*>(this);
- while (Element* element = document->ownerElement())
+ while (HTMLFrameOwnerElement* element = document->ownerElement())
document = &element->document();
return *document;
}
Modified: trunk/Source/WebCore/html/HTMLBodyElement.cpp (173527 => 173528)
--- trunk/Source/WebCore/html/HTMLBodyElement.cpp 2014-09-11 19:22:06 UTC (rev 173527)
+++ trunk/Source/WebCore/html/HTMLBodyElement.cpp 2014-09-11 19:26:16 UTC (rev 173528)
@@ -174,7 +174,7 @@
// FIXME: It's surprising this is web compatible since it means a marginwidth and marginheight attribute can
// magically appear on the <body> of all documents embedded through <iframe> or <frame>.
// FIXME: Perhaps this code should be in attach() instead of here.
- Element* ownerElement = document().ownerElement();
+ HTMLFrameOwnerElement* ownerElement = document().ownerElement();
if (ownerElement && isHTMLFrameElementBase(*ownerElement)) {
HTMLFrameElementBase& ownerFrameElement = toHTMLFrameElementBase(*ownerElement);
int marginWidth = ownerFrameElement.marginWidth();
Modified: trunk/Source/WebCore/rendering/RenderBoxModelObject.cpp (173527 => 173528)
--- trunk/Source/WebCore/rendering/RenderBoxModelObject.cpp 2014-09-11 19:22:06 UTC (rev 173527)
+++ trunk/Source/WebCore/rendering/RenderBoxModelObject.cpp 2014-09-11 19:26:16 UTC (rev 173528)
@@ -773,7 +773,7 @@
if (isRoot) {
isOpaqueRoot = true;
if (!bgLayer->next() && !(bgColor.isValid() && bgColor.alpha() == 255)) {
- Element* ownerElement = document().ownerElement();
+ HTMLFrameOwnerElement* ownerElement = document().ownerElement();
if (ownerElement) {
if (!ownerElement->hasTagName(frameTag)) {
// Locate the <body> element using the DOM. This is easier than trying
Modified: trunk/Source/WebCore/rendering/RenderLayer.cpp (173527 => 173528)
--- trunk/Source/WebCore/rendering/RenderLayer.cpp 2014-09-11 19:22:06 UTC (rev 173527)
+++ trunk/Source/WebCore/rendering/RenderLayer.cpp 2014-09-11 19:26:16 UTC (rev 173528)
@@ -2374,7 +2374,7 @@
newRect = LayoutRect(box->localToAbsoluteQuad(FloatQuad(FloatRect(localExposeRect)), UseTransforms).boundingBox());
}
} else if (!parentLayer && renderer().isBox() && renderBox()->canBeProgramaticallyScrolled()) {
- Element* ownerElement = renderer().document().ownerElement();
+ HTMLFrameOwnerElement* ownerElement = renderer().document().ownerElement();
if (ownerElement && ownerElement->renderer()) {
HTMLFrameElementBase* frameElementBase = nullptr;
Modified: trunk/Source/WebCore/rendering/RenderView.cpp (173527 => 173528)
--- trunk/Source/WebCore/rendering/RenderView.cpp 2014-09-11 19:22:06 UTC (rev 173527)
+++ trunk/Source/WebCore/rendering/RenderView.cpp 2014-09-11 19:26:16 UTC (rev 173528)
@@ -537,9 +537,8 @@
// layers with reflections, or transformed layers.
// FIXME: This needs to be dynamic. We should be able to go back to blitting if we ever stop being inside
// a transform, transparency layer, etc.
- Element* elt;
- for (elt = document().ownerElement(); elt && elt->renderer(); elt = elt->document().ownerElement()) {
- RenderLayer* layer = elt->renderer()->enclosingLayer();
+ for (HTMLFrameOwnerElement* element = document().ownerElement(); element && element->renderer(); element = element->document().ownerElement()) {
+ RenderLayer* layer = element->renderer()->enclosingLayer();
if (layer->cannotBlitToWindow()) {
frameView().setCannotBlitToWindow();
break;
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes