Changeset 194584 in webkit


Ignore:
Timestamp:
Jan 5, 2016 8:10:25 AM (8 years ago)
Author:
Antti Koivisto
Message:

Move StyleChange enum into a separate file
https://bugs.webkit.org/show_bug.cgi?id=152730

Reviewed by Andreas Kling.

Fewer whole-world rebuilds.

  • CMakeLists.txt:
  • WebCore.vcxproj/WebCore.vcxproj:
  • WebCore.xcodeproj/project.pbxproj:
  • dom/CharacterData.cpp:
  • dom/ContainerNode.cpp:
  • dom/Document.cpp:
  • dom/Document.h:
  • dom/Element.cpp:
  • dom/Element.h:
  • style/StyleChange.h: Added.
  • style/StyleResolveTree.cpp:

(WebCore::Style::shouldCreateRenderer):
(WebCore::Style::determineChange): Deleted.

  • style/StyleResolveTree.h:
Location:
trunk/Source/WebCore
Files:
2 added
16 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebCore/CMakeLists.txt

    r194577 r194584  
    26042604    style/InlineTextBoxStyle.cpp
    26052605    style/RenderTreePosition.cpp
     2606    style/StyleChange.cpp
    26062607    style/StyleFontSizeFunctions.cpp
    26072608    style/StyleResolveForDocument.cpp
  • trunk/Source/WebCore/ChangeLog

    r194578 r194584  
     12016-01-05  Antti Koivisto  <antti@apple.com>
     2
     3        Move StyleChange enum into a separate file
     4        https://bugs.webkit.org/show_bug.cgi?id=152730
     5
     6        Reviewed by Andreas Kling.
     7
     8        Fewer whole-world rebuilds.
     9
     10        * CMakeLists.txt:
     11        * WebCore.vcxproj/WebCore.vcxproj:
     12        * WebCore.xcodeproj/project.pbxproj:
     13        * dom/CharacterData.cpp:
     14        * dom/ContainerNode.cpp:
     15        * dom/Document.cpp:
     16        * dom/Document.h:
     17        * dom/Element.cpp:
     18        * dom/Element.h:
     19        * style/StyleChange.h: Added.
     20        * style/StyleResolveTree.cpp:
     21        (WebCore::Style::shouldCreateRenderer):
     22        (WebCore::Style::determineChange): Deleted.
     23        * style/StyleResolveTree.h:
     24
    1252016-01-04  Zan Dobersek  <zdobersek@igalia.com>
    226
  • trunk/Source/WebCore/WebCore.vcxproj/WebCore.vcxproj

    r194447 r194584  
    1920019200    <ClCompile Include="..\style\InlineTextBoxStyle.cpp" />
    1920119201    <ClCompile Include="..\style\RenderTreePosition.cpp" />
     19202    <ClCompile Include="..\style\StyleChange.cpp" />
    1920219203    <ClCompile Include="..\style\StyleFontSizeFunctions.cpp" />
    1920319204    <ClCompile Include="..\style\StyleResolveForDocument.cpp" />
     
    2276322764    <ClInclude Include="..\style\InlineTextBoxStyle.h" />
    2276422765    <ClInclude Include="..\style\RenderTreePosition.h" />
     22766    <ClInclude Include="..\style\StyleChange.h" />
    2276522767    <ClInclude Include="..\style\StyleFontSizeFunctions.h" />
    2276622768    <ClInclude Include="..\style\StyleResolveForDocument.h" />
  • trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj

    r194447 r194584  
    64626462                E38838991BAD145F00D62EE3 /* JSModuleLoader.h in Headers */ = {isa = PBXBuildFile; fileRef = E38838951BAD145F00D62EE3 /* JSModuleLoader.h */; };
    64636463                E401C27517CE53EC00C41A35 /* ElementIteratorAssertions.h in Headers */ = {isa = PBXBuildFile; fileRef = E401C27417CE53EC00C41A35 /* ElementIteratorAssertions.h */; settings = {ATTRIBUTES = (Private, ); }; };
     6464                E401E0A41C3C0B8300F34D10 /* StyleChange.h in Headers */ = {isa = PBXBuildFile; fileRef = E401E0A31C3C0B8300F34D10 /* StyleChange.h */; settings = {ATTRIBUTES = (Private, ); }; };
     6465                E401E0A61C3C0CF700F34D10 /* StyleChange.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E401E0A51C3C0CF700F34D10 /* StyleChange.cpp */; };
    64646466                E424A39E1330DF0100CF6DC9 /* LegacyTileGridTile.h in Headers */ = {isa = PBXBuildFile; fileRef = E424A39D1330DF0100CF6DC9 /* LegacyTileGridTile.h */; };
    64656467                E424A3A01330DF1E00CF6DC9 /* LegacyTileGridTile.mm in Sources */ = {isa = PBXBuildFile; fileRef = E424A39F1330DF1E00CF6DC9 /* LegacyTileGridTile.mm */; };
     
    1436514367                E38838951BAD145F00D62EE3 /* JSModuleLoader.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSModuleLoader.h; sourceTree = "<group>"; };
    1436614368                E401C27417CE53EC00C41A35 /* ElementIteratorAssertions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ElementIteratorAssertions.h; sourceTree = "<group>"; };
     14369                E401E0A31C3C0B8300F34D10 /* StyleChange.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = StyleChange.h; sourceTree = "<group>"; };
     14370                E401E0A51C3C0CF700F34D10 /* StyleChange.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = StyleChange.cpp; sourceTree = "<group>"; };
    1436714371                E406F3FB1198307D009D59D6 /* ColorData.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ColorData.cpp; sourceTree = "<group>"; };
    1436814372                E41EA038119836DB00710BC5 /* CSSPropertyNames.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CSSPropertyNames.cpp; sourceTree = "<group>"; };
     
    2311123115                                5824ABA81AE849C8009074B7 /* RenderTreePosition.cpp */,
    2311223116                                5824ABA91AE849C8009074B7 /* RenderTreePosition.h */,
     23117                                E401E0A51C3C0CF700F34D10 /* StyleChange.cpp */,
     23118                                E401E0A31C3C0B8300F34D10 /* StyleChange.h */,
    2311323119                                E4D58EB617B4ED8900CBDCA8 /* StyleFontSizeFunctions.cpp */,
    2311423120                                E4D58EB717B4ED8900CBDCA8 /* StyleFontSizeFunctions.h */,
     
    2801328019                                FE0D84E910484348001A179E /* WebEvent.h in Headers */,
    2801428020                                225A16B50D5C11E900090295 /* WebEventRegion.h in Headers */,
     28021                                E401E0A41C3C0B8300F34D10 /* StyleChange.h in Headers */,
    2801528022                                A19D93471A9FEC7200B46C24 /* WebFilterEvaluatorSPI.h in Headers */,
    2801628023                                D3F3D36E1A69B7E00059FC2B /* WebGL2RenderingContext.h in Headers */,
     
    2905229059                                85ACAA8E0A9B759C00671E90 /* DOMNodeList.mm in Sources */,
    2905329060                                856C8AE50A912649005C687B /* DOMObject.mm in Sources */,
     29061                                E401E0A61C3C0CF700F34D10 /* StyleChange.cpp in Sources */,
    2905429062                                85C7F5D10AAFB8D9004014DD /* DOMOverflowEvent.mm in Sources */,
    2905529063                                E1284BD51044A01E00EAEB52 /* DOMPageTransitionEvent.mm in Sources */,
  • trunk/Source/WebCore/dom/CharacterData.cpp

    r189770 r194584  
    3333#include "RenderText.h"
    3434#include "StyleInheritedData.h"
     35#include "StyleResolveTree.h"
    3536#include "TextBreakIterator.h"
    3637#include <wtf/Ref.h>
  • trunk/Source/WebCore/dom/ContainerNode.cpp

    r194496 r194584  
    5555#include "SVGNames.h"
    5656#include "SelectorQuery.h"
     57#include "StyleResolveTree.h"
    5758#include "TemplateContentDocumentFragment.h"
    5859#include <algorithm>
  • trunk/Source/WebCore/dom/Document.cpp

    r194496 r194584  
    155155#include "StorageEvent.h"
    156156#include "StyleProperties.h"
     157#include "StyleResolveTree.h"
    157158#include "StyleResolver.h"
    158159#include "StyleSheetContents.h"
  • trunk/Source/WebCore/dom/Document.h

    r194397 r194584  
    4646#include "ScriptExecutionContext.h"
    4747#include "StringWithDirection.h"
    48 #include "StyleResolveTree.h"
     48#include "StyleChange.h"
    4949#include "TextResourceDecoder.h"
    5050#include "Timer.h"
  • trunk/Source/WebCore/dom/Element.cpp

    r194496 r194584  
    7878#include "Settings.h"
    7979#include "StyleProperties.h"
     80#include "StyleResolveTree.h"
    8081#include "StyleResolver.h"
    8182#include "TextIterator.h"
  • trunk/Source/WebCore/dom/Element.h

    r194466 r194584  
    3333#include "ScrollTypes.h"
    3434#include "SimulatedClickOptions.h"
    35 #include "StyleResolveTree.h"
     35#include "StyleChange.h"
    3636
    3737namespace WebCore {
  • trunk/Source/WebCore/html/HTMLFormControlElement.cpp

    r194496 r194584  
    3939#include "RenderBox.h"
    4040#include "RenderTheme.h"
     41#include "StyleResolveTree.h"
    4142#include "ValidationMessage.h"
    4243#include <wtf/NeverDestroyed.h>
  • trunk/Source/WebCore/html/HTMLFrameOwnerElement.cpp

    r174875 r194584  
    2929#include "ShadowRoot.h"
    3030#include "SVGDocument.h"
     31#include "StyleResolveTree.h"
    3132#include <wtf/Ref.h>
    3233
  • trunk/Source/WebCore/html/HTMLPlugInImageElement.cpp

    r194496 r194584  
    4949#include "Settings.h"
    5050#include "ShadowRoot.h"
     51#include "StyleResolveTree.h"
    5152#include "StyleResolver.h"
    5253#include "SubframeLoader.h"
  • trunk/Source/WebCore/mathml/MathMLSelectElement.cpp

    r194496 r194584  
    3636#include "SVGElement.h"
    3737#include "SVGNames.h"
     38#include "StyleResolveTree.h"
    3839
    3940namespace WebCore {
  • trunk/Source/WebCore/style/StyleResolveTree.cpp

    r194496 r194584  
    7171static void resolveTree(Element&, RenderStyle& inheritedStyle, RenderTreePosition&, Change);
    7272
    73 Change determineChange(const RenderStyle& s1, const RenderStyle& s2)
    74 {
    75     if (s1.display() != s2.display())
    76         return Detach;
    77     if (s1.hasPseudoStyle(FIRST_LETTER) != s2.hasPseudoStyle(FIRST_LETTER))
    78         return Detach;
    79     // We just detach if a renderer acquires or loses a column-span, since spanning elements
    80     // typically won't contain much content.
    81     if (s1.columnSpan() != s2.columnSpan())
    82         return Detach;
    83     if (!s1.contentDataEquivalent(&s2))
    84         return Detach;
    85     // When text-combine property has been changed, we need to prepare a separate renderer object.
    86     // When text-combine is on, we use RenderCombineText, otherwise RenderText.
    87     // https://bugs.webkit.org/show_bug.cgi?id=55069
    88     if (s1.hasTextCombine() != s2.hasTextCombine())
    89         return Detach;
    90     // We need to reattach the node, so that it is moved to the correct RenderFlowThread.
    91     if (s1.flowThread() != s2.flowThread())
    92         return Detach;
    93     // When the region thread has changed, we need to prepare a separate render region object.
    94     if (s1.regionThread() != s2.regionThread())
    95         return Detach;
    96     // FIXME: Multicolumn regions not yet supported (http://dev.w3.org/csswg/css-regions/#multi-column-regions)
    97     // When the node has region style and changed its multicol style, we have to prepare
    98     // a separate render region object.
    99     if (s1.hasFlowFrom() && (s1.specifiesColumns() != s2.specifiesColumns()))
    100         return Detach;
    101 
    102     if (s1 != s2) {
    103         if (s1.inheritedNotEqual(&s2))
    104             return Inherit;
    105         if (s1.hasExplicitlyInheritedProperties() || s2.hasExplicitlyInheritedProperties())
    106             return Inherit;
    107 
    108         return NoInherit;
    109     }
    110     // If the pseudoStyles have changed, we want any StyleChange that is not NoChange
    111     // because setStyle will do the right thing with anything else.
    112     if (s1.hasAnyPublicPseudoStyles()) {
    113         for (PseudoId pseudoId = FIRST_PUBLIC_PSEUDOID; pseudoId < FIRST_INTERNAL_PSEUDOID; pseudoId = static_cast<PseudoId>(pseudoId + 1)) {
    114             if (s1.hasPseudoStyle(pseudoId)) {
    115                 RenderStyle* ps2 = s2.getCachedPseudoStyle(pseudoId);
    116                 if (!ps2)
    117                     return NoInherit;
    118                 RenderStyle* ps1 = s1.getCachedPseudoStyle(pseudoId);
    119                 if (!ps1 || *ps1 != *ps2)
    120                     return NoInherit;
    121             }
    122         }
    123     }
    124 
    125     return NoChange;
    126 }
    127 
    12873static bool shouldCreateRenderer(const Element& element, const RenderElement& parentRenderer)
    12974{
  • trunk/Source/WebCore/style/StyleResolveTree.h

    r175583 r194584  
    2727#define StyleResolveTree_h
    2828
     29#include "StyleChange.h"
    2930#include <functional>
    3031
     
    3940namespace Style {
    4041
    41 enum Change { NoChange, NoInherit, Inherit, Detach, Force };
    42 
    4342void resolveTree(Document&, Change);
    4443
     
    4746
    4847void updateTextRendererAfterContentChange(Text&, unsigned offsetOfReplacedData, unsigned lengthOfReplacedData);
    49 
    50 Change determineChange(const RenderStyle&, const RenderStyle&);
    5148
    5249void queuePostResolutionCallback(std::function<void ()>);
Note: See TracChangeset for help on using the changeset viewer.