Commit 0f4ee921 authored by philipj@opera.com's avatar philipj@opera.com

Outline Element::shouldIgnoreAttributeCase()

This allows the Document.h include to be removed from Element.h, which
reduces the amount of recompilation when touching Document.h by about
12%, from 1382 steps to 1214 steps locally.

The only place outside of Element.cpp that uses this function is
NamedNodeMap::removeNamedItem, which is very rarely used:
http://www.chromestatus.com/metrics/feature/timeline/popularity/308

In other words, the performance difference should not matter.

Review URL: https://codereview.chromium.org/334413005

git-svn-id: svn://svn.chromium.org/blink/trunk@176358 bbb929c8-8fbe-4397-9dbb-9b2b20218538
parent 1dd5d694
...@@ -33,6 +33,7 @@ ...@@ -33,6 +33,7 @@
#include "core/animation/Animation.h" #include "core/animation/Animation.h"
#include "core/animation/AnimationTimeline.h" #include "core/animation/AnimationTimeline.h"
#include "core/dom/Document.h"
#include "core/events/AnimationPlayerEvent.h" #include "core/events/AnimationPlayerEvent.h"
#include "core/frame/UseCounter.h" #include "core/frame/UseCounter.h"
......
...@@ -13,6 +13,7 @@ ...@@ -13,6 +13,7 @@
#include "core/animation/AnimationTimeline.h" #include "core/animation/AnimationTimeline.h"
#include "core/animation/KeyframeEffectModel.h" #include "core/animation/KeyframeEffectModel.h"
#include "core/animation/Timing.h" #include "core/animation/Timing.h"
#include "core/dom/Document.h"
#include <gtest/gtest.h> #include <gtest/gtest.h>
#include <v8.h> #include <v8.h>
......
...@@ -35,6 +35,7 @@ ...@@ -35,6 +35,7 @@
#include "core/animation/AnimationTimeline.h" #include "core/animation/AnimationTimeline.h"
#include "core/animation/EffectInput.h" #include "core/animation/EffectInput.h"
#include "core/animation/TimingInput.h" #include "core/animation/TimingInput.h"
#include "core/dom/Document.h"
#include "core/dom/Element.h" #include "core/dom/Element.h"
#include "platform/RuntimeEnabledFeatures.h" #include "platform/RuntimeEnabledFeatures.h"
......
...@@ -25,6 +25,7 @@ ...@@ -25,6 +25,7 @@
#include "bindings/v8/ExceptionState.h" #include "bindings/v8/ExceptionState.h"
#include "bindings/v8/ExceptionStatePlaceholder.h" #include "bindings/v8/ExceptionStatePlaceholder.h"
#include "core/dom/Document.h"
#include "core/dom/Element.h" #include "core/dom/Element.h"
#include "core/dom/Text.h" #include "core/dom/Text.h"
#include "core/events/ScopedEventQueue.h" #include "core/events/ScopedEventQueue.h"
......
...@@ -467,6 +467,11 @@ const AtomicString& Element::getAttribute(const QualifiedName& name) const ...@@ -467,6 +467,11 @@ const AtomicString& Element::getAttribute(const QualifiedName& name) const
return nullAtom; return nullAtom;
} }
bool Element::shouldIgnoreAttributeCase() const
{
return isHTMLElement() && document().isHTMLDocument();
}
void Element::scrollIntoView(bool alignToTop) void Element::scrollIntoView(bool alignToTop)
{ {
document().updateLayoutIgnorePendingStylesheets(); document().updateLayoutIgnorePendingStylesheets();
......
...@@ -29,7 +29,7 @@ ...@@ -29,7 +29,7 @@
#include "core/HTMLNames.h" #include "core/HTMLNames.h"
#include "core/css/CSSPrimitiveValue.h" #include "core/css/CSSPrimitiveValue.h"
#include "core/dom/Attribute.h" #include "core/dom/Attribute.h"
#include "core/dom/Document.h" #include "core/dom/ContainerNode.h"
#include "core/dom/ElementData.h" #include "core/dom/ElementData.h"
#include "core/dom/SpaceSplitString.h" #include "core/dom/SpaceSplitString.h"
#include "core/html/CollectionType.h" #include "core/html/CollectionType.h"
...@@ -42,11 +42,13 @@ namespace WebCore { ...@@ -42,11 +42,13 @@ namespace WebCore {
class ActiveAnimations; class ActiveAnimations;
class Attr; class Attr;
class Attribute; class Attribute;
class CSSStyleDeclaration;
class ClientRect; class ClientRect;
class ClientRectList; class ClientRectList;
class CustomElementDefinition; class CustomElementDefinition;
class DOMStringMap; class DOMStringMap;
class DOMTokenList; class DOMTokenList;
class Document;
class ElementRareData; class ElementRareData;
class ElementShadow; class ElementShadow;
class ExceptionState; class ExceptionState;
...@@ -750,11 +752,6 @@ inline const AtomicString& Element::getClassAttribute() const ...@@ -750,11 +752,6 @@ inline const AtomicString& Element::getClassAttribute() const
return fastGetAttribute(HTMLNames::classAttr); return fastGetAttribute(HTMLNames::classAttr);
} }
inline bool Element::shouldIgnoreAttributeCase() const
{
return isHTMLElement() && document().isHTMLDocument();
}
inline void Element::setIdAttribute(const AtomicString& value) inline void Element::setIdAttribute(const AtomicString& value)
{ {
setAttribute(HTMLNames::idAttr, value); setAttribute(HTMLNames::idAttr, value);
......
...@@ -28,6 +28,7 @@ ...@@ -28,6 +28,7 @@
#ifndef FullscreenElementStack_h #ifndef FullscreenElementStack_h
#define FullscreenElementStack_h #define FullscreenElementStack_h
#include "core/dom/Document.h"
#include "core/dom/DocumentLifecycleObserver.h" #include "core/dom/DocumentLifecycleObserver.h"
#include "core/dom/Element.h" #include "core/dom/Element.h"
#include "platform/Supplementable.h" #include "platform/Supplementable.h"
...@@ -39,12 +40,8 @@ ...@@ -39,12 +40,8 @@
namespace WebCore { namespace WebCore {
class Document;
class Element;
class Node;
class RenderFullScreen; class RenderFullScreen;
class RenderStyle; class RenderStyle;
class ExecutionContext;
class FullscreenElementStack FINAL class FullscreenElementStack FINAL
: public NoBaseWillBeGarbageCollectedFinalized<FullscreenElementStack> : public NoBaseWillBeGarbageCollectedFinalized<FullscreenElementStack>
......
...@@ -35,6 +35,7 @@ ...@@ -35,6 +35,7 @@
#include "core/dom/Attribute.h" #include "core/dom/Attribute.h"
#include "core/dom/Element.h" #include "core/dom/Element.h"
#include "core/html/HTMLInputElement.h" #include "core/html/HTMLInputElement.h"
#include "platform/Timer.h"
#include "wtf/HashFunctions.h" #include "wtf/HashFunctions.h"
#include "wtf/HashMap.h" #include "wtf/HashMap.h"
#include "wtf/text/CString.h" #include "wtf/text/CString.h"
......
...@@ -34,6 +34,7 @@ ...@@ -34,6 +34,7 @@
#include "core/HTMLNames.h" #include "core/HTMLNames.h"
#include "core/MathMLNames.h" #include "core/MathMLNames.h"
#include "core/SVGNames.h" #include "core/SVGNames.h"
#include "core/dom/Document.h"
#include "core/dom/Element.h" #include "core/dom/Element.h"
#include "core/dom/custom/CustomElementObserver.h" #include "core/dom/custom/CustomElementObserver.h"
#include "core/dom/custom/CustomElementScheduler.h" #include "core/dom/custom/CustomElementScheduler.h"
......
...@@ -31,6 +31,7 @@ ...@@ -31,6 +31,7 @@
#include "config.h" #include "config.h"
#include "core/dom/custom/CustomElementCallbackInvocation.h" #include "core/dom/custom/CustomElementCallbackInvocation.h"
#include "core/dom/Document.h"
#include "core/dom/Element.h" #include "core/dom/Element.h"
#include "core/dom/custom/CustomElementScheduler.h" #include "core/dom/custom/CustomElementScheduler.h"
......
...@@ -34,6 +34,7 @@ ...@@ -34,6 +34,7 @@
#include "bindings/v8/ExceptionState.h" #include "bindings/v8/ExceptionState.h"
#include "core/HTMLNames.h" #include "core/HTMLNames.h"
#include "core/SVGNames.h" #include "core/SVGNames.h"
#include "core/dom/Document.h"
#include "core/dom/Element.h" #include "core/dom/Element.h"
#include "core/dom/custom/CustomElement.h" #include "core/dom/custom/CustomElement.h"
#include "core/dom/custom/CustomElementDefinition.h" #include "core/dom/custom/CustomElementDefinition.h"
......
...@@ -43,6 +43,7 @@ namespace WebCore { ...@@ -43,6 +43,7 @@ namespace WebCore {
class CustomElementDescriptor; class CustomElementDescriptor;
class CustomElementMicrotaskImportStep; class CustomElementMicrotaskImportStep;
class CustomElementRegistrationContext;
class Element; class Element;
class HTMLImportChild; class HTMLImportChild;
......
...@@ -28,6 +28,7 @@ ...@@ -28,6 +28,7 @@
#include "bindings/v8/ExceptionStatePlaceholder.h" #include "bindings/v8/ExceptionStatePlaceholder.h"
#include "core/HTMLNames.h" #include "core/HTMLNames.h"
#include "core/dom/Document.h"
#include "core/dom/Element.h" #include "core/dom/Element.h"
#include "core/dom/ElementTraversal.h" #include "core/dom/ElementTraversal.h"
#include "core/editing/TextIterator.h" #include "core/editing/TextIterator.h"
......
...@@ -33,6 +33,7 @@ ...@@ -33,6 +33,7 @@
#include "core/XMLNames.h" #include "core/XMLNames.h"
#include "core/dom/CDATASection.h" #include "core/dom/CDATASection.h"
#include "core/dom/Comment.h" #include "core/dom/Comment.h"
#include "core/dom/Document.h"
#include "core/dom/DocumentFragment.h" #include "core/dom/DocumentFragment.h"
#include "core/dom/DocumentType.h" #include "core/dom/DocumentType.h"
#include "core/dom/ProcessingInstruction.h" #include "core/dom/ProcessingInstruction.h"
......
...@@ -25,6 +25,7 @@ ...@@ -25,6 +25,7 @@
#include "config.h" #include "config.h"
#include "core/html/ClassList.h" #include "core/html/ClassList.h"
#include "core/dom/Document.h"
namespace WebCore { namespace WebCore {
......
...@@ -26,6 +26,7 @@ ...@@ -26,6 +26,7 @@
#include "core/HTMLNames.h" #include "core/HTMLNames.h"
#include "core/dom/DOMURLUtils.h" #include "core/dom/DOMURLUtils.h"
#include "core/dom/Document.h"
#include "core/html/HTMLElement.h" #include "core/html/HTMLElement.h"
#include "platform/LinkHash.h" #include "platform/LinkHash.h"
......
...@@ -24,6 +24,7 @@ ...@@ -24,6 +24,7 @@
#ifndef HTMLBodyElement_h #ifndef HTMLBodyElement_h
#define HTMLBodyElement_h #define HTMLBodyElement_h
#include "core/dom/Document.h"
#include "core/html/HTMLElement.h" #include "core/html/HTMLElement.h"
namespace WebCore { namespace WebCore {
......
...@@ -28,6 +28,7 @@ ...@@ -28,6 +28,7 @@
#ifndef HTMLCanvasElement_h #ifndef HTMLCanvasElement_h
#define HTMLCanvasElement_h #define HTMLCanvasElement_h
#include "core/dom/Document.h"
#include "core/html/HTMLElement.h" #include "core/html/HTMLElement.h"
#include "core/html/canvas/CanvasImageSource.h" #include "core/html/canvas/CanvasImageSource.h"
#include "platform/geometry/FloatRect.h" #include "platform/geometry/FloatRect.h"
......
...@@ -21,6 +21,7 @@ ...@@ -21,6 +21,7 @@
#ifndef HTMLFrameOwnerElement_h #ifndef HTMLFrameOwnerElement_h
#define HTMLFrameOwnerElement_h #define HTMLFrameOwnerElement_h
#include "core/dom/Document.h"
#include "core/frame/FrameOwner.h" #include "core/frame/FrameOwner.h"
#include "core/html/HTMLElement.h" #include "core/html/HTMLElement.h"
#include "wtf/HashCountedSet.h" #include "wtf/HashCountedSet.h"
......
...@@ -24,6 +24,7 @@ ...@@ -24,6 +24,7 @@
#ifndef HTMLFrameSetElement_h #ifndef HTMLFrameSetElement_h
#define HTMLFrameSetElement_h #define HTMLFrameSetElement_h
#include "core/dom/Document.h"
#include "core/html/HTMLDimension.h" #include "core/html/HTMLDimension.h"
#include "core/html/HTMLElement.h" #include "core/html/HTMLElement.h"
......
...@@ -25,6 +25,7 @@ ...@@ -25,6 +25,7 @@
#include "core/dom/ActiveDOMObject.h" #include "core/dom/ActiveDOMObject.h"
#include "core/html/HTMLElement.h" #include "core/html/HTMLElement.h"
#include "platform/Timer.h"
namespace WebCore { namespace WebCore {
......
...@@ -23,6 +23,7 @@ ...@@ -23,6 +23,7 @@
#ifndef HTMLMetaElement_h #ifndef HTMLMetaElement_h
#define HTMLMetaElement_h #define HTMLMetaElement_h
#include "core/dom/ViewportDescription.h"
#include "core/html/HTMLElement.h" #include "core/html/HTMLElement.h"
namespace WebCore { namespace WebCore {
......
...@@ -27,6 +27,7 @@ ...@@ -27,6 +27,7 @@
#include "core/html/HTMLSourceElement.h" #include "core/html/HTMLSourceElement.h"
#include "core/HTMLNames.h" #include "core/HTMLNames.h"
#include "core/events/Event.h"
#include "core/events/EventSender.h" #include "core/events/EventSender.h"
#include "core/html/HTMLMediaElement.h" #include "core/html/HTMLMediaElement.h"
#include "core/html/HTMLPictureElement.h" #include "core/html/HTMLPictureElement.h"
......
...@@ -32,6 +32,7 @@ ...@@ -32,6 +32,7 @@
#include "core/html/HTMLTemplateElement.h" #include "core/html/HTMLTemplateElement.h"
#include "core/dom/Document.h"
#include "core/dom/DocumentFragment.h" #include "core/dom/DocumentFragment.h"
#include "core/dom/TemplateContentDocumentFragment.h" #include "core/dom/TemplateContentDocumentFragment.h"
......
...@@ -31,6 +31,7 @@ namespace WebCore { ...@@ -31,6 +31,7 @@ namespace WebCore {
class ExceptionState; class ExceptionState;
class Position; class Position;
class Range;
class RenderTextControl; class RenderTextControl;
class VisiblePosition; class VisiblePosition;
......
...@@ -32,6 +32,7 @@ ...@@ -32,6 +32,7 @@
#include "core/html/LinkResource.h" #include "core/html/LinkResource.h"
#include "core/HTMLNames.h" #include "core/HTMLNames.h"
#include "core/dom/Document.h"
#include "core/html/HTMLLinkElement.h" #include "core/html/HTMLLinkElement.h"
#include "core/html/imports/HTMLImportsController.h" #include "core/html/imports/HTMLImportsController.h"
......
...@@ -30,6 +30,7 @@ ...@@ -30,6 +30,7 @@
#include "bindings/v8/ExceptionState.h" #include "bindings/v8/ExceptionState.h"
#include "bindings/v8/ExceptionStatePlaceholder.h" #include "bindings/v8/ExceptionStatePlaceholder.h"
#include "core/dom/ExceptionCode.h" #include "core/dom/ExceptionCode.h"
#include "core/events/Event.h"
#include "core/events/GenericEventQueue.h" #include "core/events/GenericEventQueue.h"
#include "core/html/HTMLMediaElement.h" #include "core/html/HTMLMediaElement.h"
#include "core/html/TimeRanges.h" #include "core/html/TimeRanges.h"
......
...@@ -33,6 +33,7 @@ ...@@ -33,6 +33,7 @@
#include "core/html/forms/PasswordInputType.h" #include "core/html/forms/PasswordInputType.h"
#include "core/InputTypeNames.h" #include "core/InputTypeNames.h"
#include "core/dom/Document.h"
#include "core/html/HTMLInputElement.h" #include "core/html/HTMLInputElement.h"
#include "core/html/forms/FormController.h" #include "core/html/forms/FormController.h"
#include "wtf/Assertions.h" #include "wtf/Assertions.h"
......
...@@ -31,6 +31,7 @@ ...@@ -31,6 +31,7 @@
#ifndef HTMLImportsController_h #ifndef HTMLImportsController_h
#define HTMLImportsController_h #define HTMLImportsController_h
#include "core/dom/DocumentSupplementable.h"
#include "core/fetch/RawResource.h" #include "core/fetch/RawResource.h"
#include "core/html/LinkResource.h" #include "core/html/LinkResource.h"
#include "core/html/imports/HTMLImport.h" #include "core/html/imports/HTMLImport.h"
......
...@@ -26,12 +26,14 @@ ...@@ -26,12 +26,14 @@
#ifndef BackgroundHTMLParser_h #ifndef BackgroundHTMLParser_h
#define BackgroundHTMLParser_h #define BackgroundHTMLParser_h
#include "core/dom/DocumentEncodingData.h"
#include "core/html/parser/BackgroundHTMLInputStream.h" #include "core/html/parser/BackgroundHTMLInputStream.h"
#include "core/html/parser/CompactHTMLToken.h" #include "core/html/parser/CompactHTMLToken.h"
#include "core/html/parser/HTMLParserOptions.h" #include "core/html/parser/HTMLParserOptions.h"
#include "core/html/parser/HTMLPreloadScanner.h" #include "core/html/parser/HTMLPreloadScanner.h"
#include "core/html/parser/HTMLSourceTracker.h" #include "core/html/parser/HTMLSourceTracker.h"
#include "core/html/parser/HTMLTreeBuilderSimulator.h" #include "core/html/parser/HTMLTreeBuilderSimulator.h"
#include "core/html/parser/TextResourceDecoder.h"
#include "core/html/parser/XSSAuditorDelegate.h" #include "core/html/parser/XSSAuditorDelegate.h"
#include "wtf/PassOwnPtr.h" #include "wtf/PassOwnPtr.h"
#include "wtf/WeakPtr.h" #include "wtf/WeakPtr.h"
......
...@@ -27,6 +27,7 @@ ...@@ -27,6 +27,7 @@
#ifndef HTMLConstructionSite_h #ifndef HTMLConstructionSite_h
#define HTMLConstructionSite_h #define HTMLConstructionSite_h
#include "core/dom/Document.h"
#include "core/dom/ParserContentPolicy.h" #include "core/dom/ParserContentPolicy.h"
#include "core/html/parser/HTMLElementStack.h" #include "core/html/parser/HTMLElementStack.h"
#include "core/html/parser/HTMLFormattingElementList.h" #include "core/html/parser/HTMLFormattingElementList.h"
......
...@@ -29,6 +29,7 @@ ...@@ -29,6 +29,7 @@
#include "bindings/v8/ExceptionStatePlaceholder.h" #include "bindings/v8/ExceptionStatePlaceholder.h"
#include "core/HTMLNames.h" #include "core/HTMLNames.h"
#include "core/dom/Document.h"
#include "core/dom/Text.h" #include "core/dom/Text.h"
#include "core/events/MouseEvent.h" #include "core/events/MouseEvent.h"
#include "core/html/forms/DateTimeFieldsState.h" #include "core/html/forms/DateTimeFieldsState.h"
......
...@@ -28,6 +28,7 @@ ...@@ -28,6 +28,7 @@
#include "core/html/shadow/DateTimeFieldElement.h" #include "core/html/shadow/DateTimeFieldElement.h"
#include "core/HTMLNames.h" #include "core/HTMLNames.h"
#include "core/dom/Document.h"
#include "core/dom/Text.h" #include "core/dom/Text.h"
#include "core/events/KeyboardEvent.h" #include "core/events/KeyboardEvent.h"
#include "platform/text/PlatformLocale.h" #include "platform/text/PlatformLocale.h"
......
...@@ -29,6 +29,7 @@ ...@@ -29,6 +29,7 @@
#include "config.h" #include "config.h"
#include "core/loader/FormState.h" #include "core/loader/FormState.h"
#include "core/dom/Document.h"
#include "core/html/HTMLFormElement.h" #include "core/html/HTMLFormElement.h"
namespace WebCore { namespace WebCore {
......
...@@ -27,6 +27,7 @@ ...@@ -27,6 +27,7 @@
#include "core/CSSPropertyNames.h" #include "core/CSSPropertyNames.h"
#include "core/css/parser/BisonCSSParser.h" #include "core/css/parser/BisonCSSParser.h"
#include "core/css/StylePropertySet.h" #include "core/css/StylePropertySet.h"
#include "core/dom/Document.h"
#include "core/dom/QualifiedName.h" #include "core/dom/QualifiedName.h"
#include "core/svg/SVGAnimatedTypeAnimator.h" #include "core/svg/SVGAnimatedTypeAnimator.h"
#include "core/svg/SVGDocumentExtensions.h" #include "core/svg/SVGDocumentExtensions.h"
......
...@@ -27,6 +27,7 @@ ...@@ -27,6 +27,7 @@
#include "core/xml/XPathNodeSet.h" #include "core/xml/XPathNodeSet.h"
#include "core/dom/Attr.h" #include "core/dom/Attr.h"
#include "core/dom/Document.h"
#include "core/dom/Element.h" #include "core/dom/Element.h"
#include "core/dom/NodeTraversal.h" #include "core/dom/NodeTraversal.h"
......
...@@ -36,6 +36,7 @@ ...@@ -36,6 +36,7 @@
#include "bindings/v8/ExceptionState.h" #include "bindings/v8/ExceptionState.h"
#include "bindings/v8/ExceptionStatePlaceholder.h" #include "bindings/v8/ExceptionStatePlaceholder.h"
#include "core/dom/ExceptionCode.h" #include "core/dom/ExceptionCode.h"
#include "core/events/Event.h"
#include "core/events/GenericEventQueue.h" #include "core/events/GenericEventQueue.h"
#include "core/html/HTMLMediaElement.h" #include "core/html/HTMLMediaElement.h"
#include "core/html/TimeRanges.h" #include "core/html/TimeRanges.h"
......
...@@ -34,6 +34,7 @@ ...@@ -34,6 +34,7 @@
#include "bindings/v8/V8Binding.h" #include "bindings/v8/V8Binding.h"
#include "bindings/v8/V8GCController.h" #include "bindings/v8/V8GCController.h"
#include "core/dom/Document.h"
#include "core/fetch/MemoryCache.h" #include "core/fetch/MemoryCache.h"
#include "core/fetch/ResourceFetcher.h" #include "core/fetch/ResourceFetcher.h"
#include "core/inspector/InspectorCounters.h" #include "core/inspector/InspectorCounters.h"
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment