Project: chromium Issues People Development process History Sign in
New issue
Advanced search Search tips
Issue 628043 Clean up and/or generate ComputedStyle
Starred by 3 users Project Member Reported by sashab@chromium.org, Jul 13 2016 Back to list
Status: Started
Owner:
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: All
Pri: 3
Type: Feature


Sign in to add a comment
The ComputedStyle object provides an interface between style and the rest of the Blink engine. Right now it is a confusing mess of logic and data, with methods organized in an way that made sense 10 years ago when properties were few and WebKit supported multiple browsers but is no longer useful for developers. The current design makes it hard to reason about improvements to ComputedStyle and makes it easy to make mistakes since code and logic duplication is high. This is frustrating for developers and slows down innovation to our engine.

Cleaning up ComputedStyle involves a few ideas:
 1. Renaming methods and fields to conform to Blink's style guidelines
 2. Moving towards a property-centric design, with getters/setters sorted and organised by property
 3. Moving as much property logic out of ComputedStyle as possible, leaving just a highly-optimized container
 4. Finding a way to make ComputedStyle generic and generating field storage at compile or runtime
 5. Thinking of ways to optimize ComputedStyle for memory and inherited changes, e.g.:
    (a) Packing fields better
    (b) Data-driven field layout in memory (less pointer hops for more frequently accessed data, even a live cache)
    (c) Re-thinking style sharing to share pieces of ComputedStyle
    (d) Rather than storing the whole style, storing only diffs from a parent/ancestor element
    (e) Storing pointers to expressions as well as resolved values
    (f) Storing pointers to where a property was inherited from
    (g) Store the layout-dependent properties (for example) separately to the other properties
    (h) etc.

As a parallel goal, we should also aim to make ComputedStyle const after style resolution.

Other than 5, these should be mostly mechanical changes that make it easier to analyze and reason about ComputedStyle and pave the way to more complex optimizations and improvements.

Design doc: https://docs.google.com/document/d/1LcH2GAI_0_c4MtBUjYqcokQASXne-DFDy4fZ3Apy25I/edit#
 
Comment 1 by sashab@chromium.org, Jul 14 2016
Cc: meade@chromium.org
Comment 2 by sashab@chromium.org, Jul 15 2016
Cc: -bugsnash@chromium.org sashab@chromium.org
Owner: bugsnash@chromium.org
Oops, meant to assign this to bugs sorry. :)
Status: Assigned
Comment 4 by sashab@chromium.org, Jul 19 2016
Cc: -sashab@chromium.org bugsnash@chromium.org
Owner: sashab@chromium.org
Project Member Comment 5 by bugdroid1@chromium.org, Jul 29 2016
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/a64e4958441c43f0bafc5c71d54fd259589598b1

commit a64e4958441c43f0bafc5c71d54fd259589598b1
Author: sashab <sashab@chromium.org>
Date: Fri Jul 29 08:06:57 2016

Organize public ComputedStyle methods by property

Organized ComputedStyle public methods by property. This is part of a
larger effort to clean up ComputedStyle and ultimately generate it. Also
added a comment to the top of ComputedStyle explaining the new style, as
well as TODOs to classes used by ComputedStyle to merge their logic into
ComputedStyle.

BUG=628043

Review-Url: https://codereview.chromium.org/2174703002
Cr-Commit-Position: refs/heads/master@{#408603}

[modify] https://crrev.com/a64e4958441c43f0bafc5c71d54fd259589598b1/third_party/WebKit/Source/core/style/ComputedStyle.h
[modify] https://crrev.com/a64e4958441c43f0bafc5c71d54fd259589598b1/third_party/WebKit/Source/core/style/SVGComputedStyle.h
[modify] https://crrev.com/a64e4958441c43f0bafc5c71d54fd259589598b1/third_party/WebKit/Source/core/style/StyleBackgroundData.h
[modify] https://crrev.com/a64e4958441c43f0bafc5c71d54fd259589598b1/third_party/WebKit/Source/core/style/StyleBoxData.h
[modify] https://crrev.com/a64e4958441c43f0bafc5c71d54fd259589598b1/third_party/WebKit/Source/core/style/StyleInheritedData.h
[modify] https://crrev.com/a64e4958441c43f0bafc5c71d54fd259589598b1/third_party/WebKit/Source/core/style/StyleRareInheritedData.h
[modify] https://crrev.com/a64e4958441c43f0bafc5c71d54fd259589598b1/third_party/WebKit/Source/core/style/StyleRareNonInheritedData.h
[modify] https://crrev.com/a64e4958441c43f0bafc5c71d54fd259589598b1/third_party/WebKit/Source/core/style/StyleSurroundData.h
[modify] https://crrev.com/a64e4958441c43f0bafc5c71d54fd259589598b1/third_party/WebKit/Source/core/style/StyleVisualData.h

Project Member Comment 6 by bugdroid1@chromium.org, Aug 9 2016
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/9418458ddfa80b213daa5357bfe21372dbd7565c

commit 9418458ddfa80b213daa5357bfe21372dbd7565c
Author: sashab <sashab@chromium.org>
Date: Tue Aug 09 23:56:31 2016

Changed ComputedStyle's EVisibility to be an enum class and fixed naming

Changed ComputedStyle's EVisibility to be an enum class and fixed naming
to be consistent with Blink style. This is part of a larger effort to
convert ComputedStyle's enums to enum classes.

Design doc:
https://docs.google.com/document/d/1BfjMEXIzvY1WZEn_nESBxyqkazkfa0sBSEvm-F89YwM/edit#

BUG=628043

Review-Url: https://codereview.chromium.org/2181953004
Cr-Commit-Position: refs/heads/master@{#410880}

[modify] https://crrev.com/9418458ddfa80b213daa5357bfe21372dbd7565c/third_party/WebKit/Source/core/animation/CSSVisibilityInterpolationType.cpp
[modify] https://crrev.com/9418458ddfa80b213daa5357bfe21372dbd7565c/third_party/WebKit/Source/core/animation/animatable/AnimatableValueTestHelper.cpp
[modify] https://crrev.com/9418458ddfa80b213daa5357bfe21372dbd7565c/third_party/WebKit/Source/core/animation/animatable/AnimatableValueTestHelperTest.cpp
[modify] https://crrev.com/9418458ddfa80b213daa5357bfe21372dbd7565c/third_party/WebKit/Source/core/animation/animatable/AnimatableVisibility.cpp
[modify] https://crrev.com/9418458ddfa80b213daa5357bfe21372dbd7565c/third_party/WebKit/Source/core/css/CSSPrimitiveValueMappings.h
[modify] https://crrev.com/9418458ddfa80b213daa5357bfe21372dbd7565c/third_party/WebKit/Source/core/dom/Document.cpp
[modify] https://crrev.com/9418458ddfa80b213daa5357bfe21372dbd7565c/third_party/WebKit/Source/core/dom/DocumentStatisticsCollector.cpp
[modify] https://crrev.com/9418458ddfa80b213daa5357bfe21372dbd7565c/third_party/WebKit/Source/core/dom/Element.cpp
[modify] https://crrev.com/9418458ddfa80b213daa5357bfe21372dbd7565c/third_party/WebKit/Source/core/editing/EditingUtilities.cpp
[modify] https://crrev.com/9418458ddfa80b213daa5357bfe21372dbd7565c/third_party/WebKit/Source/core/editing/VisibleUnits.cpp
[modify] https://crrev.com/9418458ddfa80b213daa5357bfe21372dbd7565c/third_party/WebKit/Source/core/editing/iterators/SimplifiedBackwardsTextIterator.cpp
[modify] https://crrev.com/9418458ddfa80b213daa5357bfe21372dbd7565c/third_party/WebKit/Source/core/editing/iterators/TextIterator.cpp
[modify] https://crrev.com/9418458ddfa80b213daa5357bfe21372dbd7565c/third_party/WebKit/Source/core/html/HTMLAreaElement.cpp
[modify] https://crrev.com/9418458ddfa80b213daa5357bfe21372dbd7565c/third_party/WebKit/Source/core/html/forms/InputType.cpp
[modify] https://crrev.com/9418458ddfa80b213daa5357bfe21372dbd7565c/third_party/WebKit/Source/core/layout/LayoutBlock.cpp
[modify] https://crrev.com/9418458ddfa80b213daa5357bfe21372dbd7565c/third_party/WebKit/Source/core/layout/LayoutBox.cpp
[modify] https://crrev.com/9418458ddfa80b213daa5357bfe21372dbd7565c/third_party/WebKit/Source/core/layout/LayoutDeprecatedFlexibleBox.cpp
[modify] https://crrev.com/9418458ddfa80b213daa5357bfe21372dbd7565c/third_party/WebKit/Source/core/layout/LayoutInline.cpp
[modify] https://crrev.com/9418458ddfa80b213daa5357bfe21372dbd7565c/third_party/WebKit/Source/core/layout/LayoutObject.cpp
[modify] https://crrev.com/9418458ddfa80b213daa5357bfe21372dbd7565c/third_party/WebKit/Source/core/layout/LayoutObject.h
[modify] https://crrev.com/9418458ddfa80b213daa5357bfe21372dbd7565c/third_party/WebKit/Source/core/layout/LayoutPart.cpp
[modify] https://crrev.com/9418458ddfa80b213daa5357bfe21372dbd7565c/third_party/WebKit/Source/core/layout/LayoutText.cpp
[modify] https://crrev.com/9418458ddfa80b213daa5357bfe21372dbd7565c/third_party/WebKit/Source/core/layout/LayoutTreeAsText.cpp
[modify] https://crrev.com/9418458ddfa80b213daa5357bfe21372dbd7565c/third_party/WebKit/Source/core/layout/svg/LayoutSVGImage.cpp
[modify] https://crrev.com/9418458ddfa80b213daa5357bfe21372dbd7565c/third_party/WebKit/Source/core/layout/svg/LayoutSVGResourceClipper.cpp
[modify] https://crrev.com/9418458ddfa80b213daa5357bfe21372dbd7565c/third_party/WebKit/Source/core/layout/svg/LayoutSVGResourceMasker.cpp
[modify] https://crrev.com/9418458ddfa80b213daa5357bfe21372dbd7565c/third_party/WebKit/Source/core/layout/svg/LayoutSVGRoot.cpp
[modify] https://crrev.com/9418458ddfa80b213daa5357bfe21372dbd7565c/third_party/WebKit/Source/core/layout/svg/LayoutSVGShape.cpp
[modify] https://crrev.com/9418458ddfa80b213daa5357bfe21372dbd7565c/third_party/WebKit/Source/core/layout/svg/LayoutSVGText.cpp
[modify] https://crrev.com/9418458ddfa80b213daa5357bfe21372dbd7565c/third_party/WebKit/Source/core/layout/svg/SVGLayoutSupport.cpp
[modify] https://crrev.com/9418458ddfa80b213daa5357bfe21372dbd7565c/third_party/WebKit/Source/core/layout/svg/line/SVGInlineTextBox.cpp
[modify] https://crrev.com/9418458ddfa80b213daa5357bfe21372dbd7565c/third_party/WebKit/Source/core/paint/BlockPainter.cpp
[modify] https://crrev.com/9418458ddfa80b213daa5357bfe21372dbd7565c/third_party/WebKit/Source/core/paint/BoxPainter.cpp
[modify] https://crrev.com/9418458ddfa80b213daa5357bfe21372dbd7565c/third_party/WebKit/Source/core/paint/DetailsMarkerPainter.cpp
[modify] https://crrev.com/9418458ddfa80b213daa5357bfe21372dbd7565c/third_party/WebKit/Source/core/paint/FieldsetPainter.cpp
[modify] https://crrev.com/9418458ddfa80b213daa5357bfe21372dbd7565c/third_party/WebKit/Source/core/paint/FileUploadControlPainter.cpp
[modify] https://crrev.com/9418458ddfa80b213daa5357bfe21372dbd7565c/third_party/WebKit/Source/core/paint/InlineFlowBoxPainter.cpp
[modify] https://crrev.com/9418458ddfa80b213daa5357bfe21372dbd7565c/third_party/WebKit/Source/core/paint/InlineTextBoxPainter.cpp
[modify] https://crrev.com/9418458ddfa80b213daa5357bfe21372dbd7565c/third_party/WebKit/Source/core/paint/ListMarkerPainter.cpp
[modify] https://crrev.com/9418458ddfa80b213daa5357bfe21372dbd7565c/third_party/WebKit/Source/core/paint/MultiColumnSetPainter.cpp
[modify] https://crrev.com/9418458ddfa80b213daa5357bfe21372dbd7565c/third_party/WebKit/Source/core/paint/ObjectPainter.cpp
[modify] https://crrev.com/9418458ddfa80b213daa5357bfe21372dbd7565c/third_party/WebKit/Source/core/paint/PaintLayer.cpp
[modify] https://crrev.com/9418458ddfa80b213daa5357bfe21372dbd7565c/third_party/WebKit/Source/core/paint/ReplacedPainter.cpp
[modify] https://crrev.com/9418458ddfa80b213daa5357bfe21372dbd7565c/third_party/WebKit/Source/core/paint/RootInlineBoxPainter.cpp
[modify] https://crrev.com/9418458ddfa80b213daa5357bfe21372dbd7565c/third_party/WebKit/Source/core/paint/SVGContainerPainter.cpp
[modify] https://crrev.com/9418458ddfa80b213daa5357bfe21372dbd7565c/third_party/WebKit/Source/core/paint/SVGImagePainter.cpp
[modify] https://crrev.com/9418458ddfa80b213daa5357bfe21372dbd7565c/third_party/WebKit/Source/core/paint/SVGInlineTextBoxPainter.cpp
[modify] https://crrev.com/9418458ddfa80b213daa5357bfe21372dbd7565c/third_party/WebKit/Source/core/paint/SVGShapePainter.cpp
[modify] https://crrev.com/9418458ddfa80b213daa5357bfe21372dbd7565c/third_party/WebKit/Source/core/paint/TableCellPainter.cpp
[modify] https://crrev.com/9418458ddfa80b213daa5357bfe21372dbd7565c/third_party/WebKit/Source/core/paint/TablePainter.cpp
[modify] https://crrev.com/9418458ddfa80b213daa5357bfe21372dbd7565c/third_party/WebKit/Source/core/style/ComputedStyle.cpp
[modify] https://crrev.com/9418458ddfa80b213daa5357bfe21372dbd7565c/third_party/WebKit/Source/core/style/ComputedStyle.h
[modify] https://crrev.com/9418458ddfa80b213daa5357bfe21372dbd7565c/third_party/WebKit/Source/core/style/ComputedStyleConstants.h
[modify] https://crrev.com/9418458ddfa80b213daa5357bfe21372dbd7565c/third_party/WebKit/Source/core/svg/SVGUseElement.cpp
[modify] https://crrev.com/9418458ddfa80b213daa5357bfe21372dbd7565c/third_party/WebKit/Source/modules/accessibility/AXLayoutObject.cpp
[modify] https://crrev.com/9418458ddfa80b213daa5357bfe21372dbd7565c/third_party/WebKit/Source/modules/accessibility/AXMediaControls.cpp
[modify] https://crrev.com/9418458ddfa80b213daa5357bfe21372dbd7565c/third_party/WebKit/Source/modules/accessibility/AXObject.cpp
[modify] https://crrev.com/9418458ddfa80b213daa5357bfe21372dbd7565c/third_party/WebKit/Source/modules/plugins/PluginOcclusionSupport.cpp
[modify] https://crrev.com/9418458ddfa80b213daa5357bfe21372dbd7565c/third_party/WebKit/Source/web/PopupMenuImpl.cpp
[modify] https://crrev.com/9418458ddfa80b213daa5357bfe21372dbd7565c/third_party/WebKit/Source/web/WebFrameContentDumper.cpp
[modify] https://crrev.com/9418458ddfa80b213daa5357bfe21372dbd7565c/third_party/WebKit/Source/web/WebLocalFrameImpl.cpp

Description: Show this description
Project Member Comment 9 by bugdroid1@chromium.org, Sep 22 2016
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/8439075a9356236aa3f893f67f23faab867baccf

commit 8439075a9356236aa3f893f67f23faab867baccf
Author: sashab <sashab@chromium.org>
Date: Thu Sep 22 23:53:29 2016

Add a generated ComputedStyleBase class that ComputedStyle extends

Add a generated ComputedStyleBase class that ComputedStyle extends from,
as well as a generated ComputedStyleBaseConstants file that
ComputedStyleConstants includes. Moved the 'visibility' field to be
generated in ComputedStyleBase and it's type, the EVisibility enum, to
be generated as well.

This patch adds the 'keyword_only' field to CSSProperties.in, which is
used to detect keyword-only properties that can be stored as bitfields,
as well as enough generation code to generate enum bitfields. Other
field types, as well as support for custom storage and methods, will be
added in future patches.

This is the beginning of an effort to move properties across to
ComputedStyleBase and then, eventually, remove ComputedStyle and rename
the base to ComputedStyle.

Design doc:
https://docs.google.com/document/d/1sWf_kCtVSokx8oDJZwTrUk2JNqrgTZDV0Z-jsy6tWxg/edit

BUG=628043

Review-Url: https://codereview.chromium.org/2187493004
Cr-Commit-Position: refs/heads/master@{#420508}

[modify] https://crrev.com/8439075a9356236aa3f893f67f23faab867baccf/third_party/WebKit/Source/build/scripts/css_properties.py
[add] https://crrev.com/8439075a9356236aa3f893f67f23faab867baccf/third_party/WebKit/Source/build/scripts/make_computed_style_base.py
[add] https://crrev.com/8439075a9356236aa3f893f67f23faab867baccf/third_party/WebKit/Source/build/scripts/templates/ComputedStyleBase.cpp.tmpl
[add] https://crrev.com/8439075a9356236aa3f893f67f23faab867baccf/third_party/WebKit/Source/build/scripts/templates/ComputedStyleBase.h.tmpl
[add] https://crrev.com/8439075a9356236aa3f893f67f23faab867baccf/third_party/WebKit/Source/build/scripts/templates/ComputedStyleBaseConstants.h.tmpl
[modify] https://crrev.com/8439075a9356236aa3f893f67f23faab867baccf/third_party/WebKit/Source/core/BUILD.gn
[modify] https://crrev.com/8439075a9356236aa3f893f67f23faab867baccf/third_party/WebKit/Source/core/css/CSSProperties.in
[modify] https://crrev.com/8439075a9356236aa3f893f67f23faab867baccf/third_party/WebKit/Source/core/css/resolver/StyleResolver.cpp
[modify] https://crrev.com/8439075a9356236aa3f893f67f23faab867baccf/third_party/WebKit/Source/core/style/ComputedStyle.cpp
[modify] https://crrev.com/8439075a9356236aa3f893f67f23faab867baccf/third_party/WebKit/Source/core/style/ComputedStyle.h
[modify] https://crrev.com/8439075a9356236aa3f893f67f23faab867baccf/third_party/WebKit/Source/core/style/ComputedStyleConstants.h

Project Member Comment 10 by bugdroid1@chromium.org, Sep 23 2016
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/333a7dd429e44a6562112fc29c667474fa2e92f9

commit 333a7dd429e44a6562112fc29c667474fa2e92f9
Author: sashab <sashab@chromium.org>
Date: Fri Sep 23 01:41:03 2016

Changed EFloat to an enum class

Changed EFloat to an enum class and gave it an unsigned underlying type.
This is pre-work to move it to be generated in ComputedStyleBase.

BUG=628043

Review-Url: https://codereview.chromium.org/2354843002
Cr-Commit-Position: refs/heads/master@{#420536}

[modify] https://crrev.com/333a7dd429e44a6562112fc29c667474fa2e92f9/third_party/WebKit/Source/core/css/CSSPrimitiveValueMappings.h
[modify] https://crrev.com/333a7dd429e44a6562112fc29c667474fa2e92f9/third_party/WebKit/Source/core/css/resolver/StyleAdjuster.cpp
[modify] https://crrev.com/333a7dd429e44a6562112fc29c667474fa2e92f9/third_party/WebKit/Source/core/layout/FloatingObjects.cpp
[modify] https://crrev.com/333a7dd429e44a6562112fc29c667474fa2e92f9/third_party/WebKit/Source/core/layout/LayoutBlock.cpp
[modify] https://crrev.com/333a7dd429e44a6562112fc29c667474fa2e92f9/third_party/WebKit/Source/core/layout/LayoutBlockFlow.cpp
[modify] https://crrev.com/333a7dd429e44a6562112fc29c667474fa2e92f9/third_party/WebKit/Source/core/layout/LayoutBlockFlowLine.cpp
[modify] https://crrev.com/333a7dd429e44a6562112fc29c667474fa2e92f9/third_party/WebKit/Source/core/layout/TextAutosizer.cpp
[modify] https://crrev.com/333a7dd429e44a6562112fc29c667474fa2e92f9/third_party/WebKit/Source/core/style/ComputedStyle.h
[modify] https://crrev.com/333a7dd429e44a6562112fc29c667474fa2e92f9/third_party/WebKit/Source/core/style/ComputedStyleConstants.h

Project Member Comment 11 by bugdroid1@chromium.org, Sep 23 2016
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/7fbbe61b09447cc20ef89c3f1b21bde45b6c8bac

commit 7fbbe61b09447cc20ef89c3f1b21bde45b6c8bac
Author: sashab <sashab@chromium.org>
Date: Fri Sep 23 01:53:03 2016

Renamed EFloat members to match keywords

Renamed EFloat members to match its keywords (none, left, right). This
is pre-work to move it to be generated in ComputedStyleBase.

BUG=628043

Review-Url: https://codereview.chromium.org/2358473002
Cr-Commit-Position: refs/heads/master@{#420540}

[modify] https://crrev.com/7fbbe61b09447cc20ef89c3f1b21bde45b6c8bac/third_party/WebKit/Source/core/css/CSSPrimitiveValueMappings.h
[modify] https://crrev.com/7fbbe61b09447cc20ef89c3f1b21bde45b6c8bac/third_party/WebKit/Source/core/css/resolver/StyleAdjuster.cpp
[modify] https://crrev.com/7fbbe61b09447cc20ef89c3f1b21bde45b6c8bac/third_party/WebKit/Source/core/layout/FloatingObjects.cpp
[modify] https://crrev.com/7fbbe61b09447cc20ef89c3f1b21bde45b6c8bac/third_party/WebKit/Source/core/layout/LayoutBlock.cpp
[modify] https://crrev.com/7fbbe61b09447cc20ef89c3f1b21bde45b6c8bac/third_party/WebKit/Source/core/layout/LayoutBlockFlow.cpp
[modify] https://crrev.com/7fbbe61b09447cc20ef89c3f1b21bde45b6c8bac/third_party/WebKit/Source/core/layout/LayoutBlockFlowLine.cpp
[modify] https://crrev.com/7fbbe61b09447cc20ef89c3f1b21bde45b6c8bac/third_party/WebKit/Source/core/style/ComputedStyle.h
[modify] https://crrev.com/7fbbe61b09447cc20ef89c3f1b21bde45b6c8bac/third_party/WebKit/Source/core/style/ComputedStyleConstants.h

Project Member Comment 12 by bugdroid1@chromium.org, Sep 29 2016
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/3c28edb5c5e9778fabb3642537b8138d5f5f1b83

commit 3c28edb5c5e9778fabb3642537b8138d5f5f1b83
Author: sashab <sashab@chromium.org>
Date: Thu Sep 29 05:07:31 2016

Added isComputedStyle::isDisplayTableType() and made it static

Removed EDisplay FIRST_TABLE_DISPLAY and LAST_TABLE_DISPLAY from
EDisplay, and moved them to a static function isDisplayTableType() on
ComputedStyle. Also made the similar functions like this static
functions, since they should have been static all along.

BUG=628043

Review-Url: https://codereview.chromium.org/2365263002
Cr-Commit-Position: refs/heads/master@{#421749}

[modify] https://crrev.com/3c28edb5c5e9778fabb3642537b8138d5f5f1b83/third_party/WebKit/Source/core/style/ComputedStyle.cpp
[modify] https://crrev.com/3c28edb5c5e9778fabb3642537b8138d5f5f1b83/third_party/WebKit/Source/core/style/ComputedStyle.h
[modify] https://crrev.com/3c28edb5c5e9778fabb3642537b8138d5f5f1b83/third_party/WebKit/Source/core/style/ComputedStyleConstants.h

Project Member Comment 13 by bugdroid1@chromium.org, Sep 29 2016
Project Member Comment 14 by bugdroid1@chromium.org, Sep 30 2016
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/524f39aaebe8cae07b34925fca8a981e93432d92

commit 524f39aaebe8cae07b34925fca8a981e93432d92
Author: sashab <sashab@chromium.org>
Date: Fri Sep 30 04:09:29 2016

Changed EDisplay to an enum class and renamed its members to be keywords

Changed EDisplay to an enum class and gave it an unsigned underlying
type. Also renamed its members to match its keywords (e.g. inline,
block, listItem)  This is pre-work to move EDisplay to be generated in
ComputedStyleBase.

BUG=628043

Review-Url: https://codereview.chromium.org/2370673002
Cr-Commit-Position: refs/heads/master@{#422023}

[modify] https://crrev.com/524f39aaebe8cae07b34925fca8a981e93432d92/third_party/WebKit/Source/core/animation/css/CSSAnimations.cpp
[modify] https://crrev.com/524f39aaebe8cae07b34925fca8a981e93432d92/third_party/WebKit/Source/core/css/CSSPrimitiveValueMappings.h
[modify] https://crrev.com/524f39aaebe8cae07b34925fca8a981e93432d92/third_party/WebKit/Source/core/css/ComputedStyleCSSValueMapping.cpp
[modify] https://crrev.com/524f39aaebe8cae07b34925fca8a981e93432d92/third_party/WebKit/Source/core/css/resolver/StyleAdjuster.cpp
[modify] https://crrev.com/524f39aaebe8cae07b34925fca8a981e93432d92/third_party/WebKit/Source/core/css/resolver/StyleResolver.cpp
[modify] https://crrev.com/524f39aaebe8cae07b34925fca8a981e93432d92/third_party/WebKit/Source/core/dom/DocumentStatisticsCollector.cpp
[modify] https://crrev.com/524f39aaebe8cae07b34925fca8a981e93432d92/third_party/WebKit/Source/core/dom/Element.cpp
[modify] https://crrev.com/524f39aaebe8cae07b34925fca8a981e93432d92/third_party/WebKit/Source/core/dom/PseudoElement.h
[modify] https://crrev.com/524f39aaebe8cae07b34925fca8a981e93432d92/third_party/WebKit/Source/core/dom/Text.cpp
[modify] https://crrev.com/524f39aaebe8cae07b34925fca8a981e93432d92/third_party/WebKit/Source/core/editing/EditingUtilities.cpp
[modify] https://crrev.com/524f39aaebe8cae07b34925fca8a981e93432d92/third_party/WebKit/Source/core/html/HTMLFormElement.cpp
[modify] https://crrev.com/524f39aaebe8cae07b34925fca8a981e93432d92/third_party/WebKit/Source/core/html/HTMLImageFallbackHelper.cpp
[modify] https://crrev.com/524f39aaebe8cae07b34925fca8a981e93432d92/third_party/WebKit/Source/core/html/HTMLOptionElement.cpp
[modify] https://crrev.com/524f39aaebe8cae07b34925fca8a981e93432d92/third_party/WebKit/Source/core/html/HTMLRTElement.cpp
[modify] https://crrev.com/524f39aaebe8cae07b34925fca8a981e93432d92/third_party/WebKit/Source/core/html/HTMLRubyElement.cpp
[modify] https://crrev.com/524f39aaebe8cae07b34925fca8a981e93432d92/third_party/WebKit/Source/core/html/HTMLSelectElement.cpp
[modify] https://crrev.com/524f39aaebe8cae07b34925fca8a981e93432d92/third_party/WebKit/Source/core/html/forms/MultipleFieldsTemporalInputTypeView.cpp
[modify] https://crrev.com/524f39aaebe8cae07b34925fca8a981e93432d92/third_party/WebKit/Source/core/html/shadow/TextControlInnerElements.cpp
[modify] https://crrev.com/524f39aaebe8cae07b34925fca8a981e93432d92/third_party/WebKit/Source/core/layout/LayoutBlock.cpp
[modify] https://crrev.com/524f39aaebe8cae07b34925fca8a981e93432d92/third_party/WebKit/Source/core/layout/LayoutBlock.h
[modify] https://crrev.com/524f39aaebe8cae07b34925fca8a981e93432d92/third_party/WebKit/Source/core/layout/LayoutBox.cpp
[modify] https://crrev.com/524f39aaebe8cae07b34925fca8a981e93432d92/third_party/WebKit/Source/core/layout/LayoutBoxModelObject.cpp
[modify] https://crrev.com/524f39aaebe8cae07b34925fca8a981e93432d92/third_party/WebKit/Source/core/layout/LayoutFullScreen.cpp
[modify] https://crrev.com/524f39aaebe8cae07b34925fca8a981e93432d92/third_party/WebKit/Source/core/layout/LayoutInline.cpp
[modify] https://crrev.com/524f39aaebe8cae07b34925fca8a981e93432d92/third_party/WebKit/Source/core/layout/LayoutMultiColumnFlowThread.cpp
[modify] https://crrev.com/524f39aaebe8cae07b34925fca8a981e93432d92/third_party/WebKit/Source/core/layout/LayoutMultiColumnSet.cpp
[modify] https://crrev.com/524f39aaebe8cae07b34925fca8a981e93432d92/third_party/WebKit/Source/core/layout/LayoutMultiColumnSpannerPlaceholder.cpp
[modify] https://crrev.com/524f39aaebe8cae07b34925fca8a981e93432d92/third_party/WebKit/Source/core/layout/LayoutObject.cpp
[modify] https://crrev.com/524f39aaebe8cae07b34925fca8a981e93432d92/third_party/WebKit/Source/core/layout/LayoutObject.h
[modify] https://crrev.com/524f39aaebe8cae07b34925fca8a981e93432d92/third_party/WebKit/Source/core/layout/LayoutPagedFlowThread.cpp
[modify] https://crrev.com/524f39aaebe8cae07b34925fca8a981e93432d92/third_party/WebKit/Source/core/layout/LayoutRubyRun.cpp
[modify] https://crrev.com/524f39aaebe8cae07b34925fca8a981e93432d92/third_party/WebKit/Source/core/layout/LayoutScrollbar.cpp
[modify] https://crrev.com/524f39aaebe8cae07b34925fca8a981e93432d92/third_party/WebKit/Source/core/layout/LayoutTable.cpp
[modify] https://crrev.com/524f39aaebe8cae07b34925fca8a981e93432d92/third_party/WebKit/Source/core/layout/LayoutTableCell.cpp
[modify] https://crrev.com/524f39aaebe8cae07b34925fca8a981e93432d92/third_party/WebKit/Source/core/layout/LayoutTableCol.cpp
[modify] https://crrev.com/524f39aaebe8cae07b34925fca8a981e93432d92/third_party/WebKit/Source/core/layout/LayoutTableCol.h
[modify] https://crrev.com/524f39aaebe8cae07b34925fca8a981e93432d92/third_party/WebKit/Source/core/layout/LayoutTableRow.cpp
[modify] https://crrev.com/524f39aaebe8cae07b34925fca8a981e93432d92/third_party/WebKit/Source/core/layout/LayoutTableSection.cpp
[modify] https://crrev.com/524f39aaebe8cae07b34925fca8a981e93432d92/third_party/WebKit/Source/core/layout/LayoutTextControlMultiLine.cpp
[modify] https://crrev.com/524f39aaebe8cae07b34925fca8a981e93432d92/third_party/WebKit/Source/core/layout/LayoutTextControlSingleLine.cpp
[modify] https://crrev.com/524f39aaebe8cae07b34925fca8a981e93432d92/third_party/WebKit/Source/core/layout/LayoutTextTrackContainer.cpp
[modify] https://crrev.com/524f39aaebe8cae07b34925fca8a981e93432d92/third_party/WebKit/Source/core/layout/LayoutTheme.cpp
[modify] https://crrev.com/524f39aaebe8cae07b34925fca8a981e93432d92/third_party/WebKit/Source/core/layout/TextAutosizer.cpp
[modify] https://crrev.com/524f39aaebe8cae07b34925fca8a981e93432d92/third_party/WebKit/Source/core/layout/line/InlineFlowBox.h
[modify] https://crrev.com/524f39aaebe8cae07b34925fca8a981e93432d92/third_party/WebKit/Source/core/layout/svg/LayoutSVGResourceClipper.cpp
[modify] https://crrev.com/524f39aaebe8cae07b34925fca8a981e93432d92/third_party/WebKit/Source/core/layout/svg/LayoutSVGResourceMasker.cpp
[modify] https://crrev.com/524f39aaebe8cae07b34925fca8a981e93432d92/third_party/WebKit/Source/core/style/ComputedStyle.cpp
[modify] https://crrev.com/524f39aaebe8cae07b34925fca8a981e93432d92/third_party/WebKit/Source/core/style/ComputedStyle.h
[modify] https://crrev.com/524f39aaebe8cae07b34925fca8a981e93432d92/third_party/WebKit/Source/core/style/ComputedStyleConstants.h
[modify] https://crrev.com/524f39aaebe8cae07b34925fca8a981e93432d92/third_party/WebKit/Source/core/svg/SVGGElement.cpp
[modify] https://crrev.com/524f39aaebe8cae07b34925fca8a981e93432d92/third_party/WebKit/Source/modules/accessibility/AXObject.cpp
[modify] https://crrev.com/524f39aaebe8cae07b34925fca8a981e93432d92/third_party/WebKit/Source/web/PopupMenuImpl.cpp

Project Member Comment 15 by bugdroid1@chromium.org, Sep 30 2016
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/fdc8d0ce1cd52ee647079b8a71d6871a87cf1fdc

commit fdc8d0ce1cd52ee647079b8a71d6871a87cf1fdc
Author: sashab <sashab@chromium.org>
Date: Fri Sep 30 04:39:36 2016

Changed ECaptionSide to an enum class and renamed its members to keywords

Changed ECaptionSide to an enum class and gave it an unsigned underlying
type so it can be stored in a bitfield in the future. Also renamed its
members to match its keywords from CSSValueKeywords.in. This is pre-work
to move ECaptionSide to be generated in ComputedStyleBase.

BUG=628043

Review-Url: https://codereview.chromium.org/2366263002
Cr-Commit-Position: refs/heads/master@{#422029}

[modify] https://crrev.com/fdc8d0ce1cd52ee647079b8a71d6871a87cf1fdc/third_party/WebKit/Source/core/css/CSSPrimitiveValueMappings.h
[modify] https://crrev.com/fdc8d0ce1cd52ee647079b8a71d6871a87cf1fdc/third_party/WebKit/Source/core/layout/LayoutTable.cpp
[modify] https://crrev.com/fdc8d0ce1cd52ee647079b8a71d6871a87cf1fdc/third_party/WebKit/Source/core/style/ComputedStyle.h
[modify] https://crrev.com/fdc8d0ce1cd52ee647079b8a71d6871a87cf1fdc/third_party/WebKit/Source/core/style/ComputedStyleConstants.h

Project Member Comment 16 by bugdroid1@chromium.org, Sep 30 2016
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/058937513b328bdf63adfec95f0bfa8cc2c25f99

commit 058937513b328bdf63adfec95f0bfa8cc2c25f99
Author: sashab <sashab@chromium.org>
Date: Fri Sep 30 14:21:32 2016

Changed EEmptyCells to an enum class and renamed its members to keywords

Changed EEmptyCells to an enum class and gave it an unsigned underlying
type. Also renamed its members to match its keywords from
CSSValueKeywords.in. This is pre-work to move EEmptyCells to be
generated in ComputedStyleBase.

BUG=628043
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2

Review-Url: https://codereview.chromium.org/2367273003
Cr-Commit-Position: refs/heads/master@{#422106}

[modify] https://crrev.com/058937513b328bdf63adfec95f0bfa8cc2c25f99/third_party/WebKit/Source/core/css/CSSPrimitiveValueMappings.h
[modify] https://crrev.com/058937513b328bdf63adfec95f0bfa8cc2c25f99/third_party/WebKit/Source/core/paint/TableCellPainter.cpp
[modify] https://crrev.com/058937513b328bdf63adfec95f0bfa8cc2c25f99/third_party/WebKit/Source/core/style/ComputedStyle.h
[modify] https://crrev.com/058937513b328bdf63adfec95f0bfa8cc2c25f99/third_party/WebKit/Source/core/style/ComputedStyleConstants.h
[modify] https://crrev.com/058937513b328bdf63adfec95f0bfa8cc2c25f99/third_party/WebKit/Source/modules/accessibility/AXTable.cpp

Project Member Comment 17 by bugdroid1@chromium.org, Oct 5
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/063379e6b1aa01de3f305c5343925d9d926e8cd0

commit 063379e6b1aa01de3f305c5343925d9d926e8cd0
Author: sashab <sashab@chromium.org>
Date: Wed Oct 05 01:26:22 2016

Changed EListStylePosition to an enum class and renamed its members to keywords

Changed EListStylePosition to an enum class and gave it an unsigned underlying
type so it can be stored in a bitfield in the future. Also renamed its
members to match its keywords from CSSValueKeywords.in. This is pre-work
to move EListStylePosition to be generated in ComputedStyleBase.

BUG=628043

Review-Url: https://codereview.chromium.org/2380233002
Cr-Commit-Position: refs/heads/master@{#423038}

[modify] https://crrev.com/063379e6b1aa01de3f305c5343925d9d926e8cd0/third_party/WebKit/Source/core/css/CSSPrimitiveValueMappings.h
[modify] https://crrev.com/063379e6b1aa01de3f305c5343925d9d926e8cd0/third_party/WebKit/Source/core/layout/LayoutListMarker.cpp
[modify] https://crrev.com/063379e6b1aa01de3f305c5343925d9d926e8cd0/third_party/WebKit/Source/core/style/ComputedStyle.h
[modify] https://crrev.com/063379e6b1aa01de3f305c5343925d9d926e8cd0/third_party/WebKit/Source/core/style/ComputedStyleConstants.h

Blockedon: 665272
Description: Show this description
Project Member Comment 21 by bugdroid1@chromium.org, Nov 16
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/ff0c1a487b941b11478790642d92e94a1e765248

commit ff0c1a487b941b11478790642d92e94a1e765248
Author: sashab <sashab@chromium.org>
Date: Wed Nov 16 06:11:44 2016

Changed EListStyleType to an enum class and renamed its members to keywords

Changed EListStyleType to an enum class and gave it an unsigned
underlying type. Also renamed its members to match its keywords from
CSSValueKeywords.in.

Changing it to an enum class enforces better namespacing and code
practices. Adding the unsigned underlying type is pre-work for when the
class is eventually stored as an enum bitfield (it would be done in this
patch, except a presubmit warning already exists that prevents that. The
presubmit warning needs to be updated before that change can occur.)

This is also pre-work to move EListStyleType to be generated in
ComputedStyleBase.

BUG=628043
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2

Review-Url: https://codereview.chromium.org/2367293002
Cr-Commit-Position: refs/heads/master@{#432376}

[modify] https://crrev.com/ff0c1a487b941b11478790642d92e94a1e765248/third_party/WebKit/Source/core/css/CSSPrimitiveValueMappings.h
[modify] https://crrev.com/ff0c1a487b941b11478790642d92e94a1e765248/third_party/WebKit/Source/core/css/ComputedStyleCSSValueMapping.cpp
[modify] https://crrev.com/ff0c1a487b941b11478790642d92e94a1e765248/third_party/WebKit/Source/core/css/resolver/StyleBuilderCustom.cpp
[modify] https://crrev.com/ff0c1a487b941b11478790642d92e94a1e765248/third_party/WebKit/Source/core/layout/LayoutListItem.cpp
[modify] https://crrev.com/ff0c1a487b941b11478790642d92e94a1e765248/third_party/WebKit/Source/core/layout/LayoutListMarker.cpp
[modify] https://crrev.com/ff0c1a487b941b11478790642d92e94a1e765248/third_party/WebKit/Source/core/layout/ListMarkerText.cpp
[modify] https://crrev.com/ff0c1a487b941b11478790642d92e94a1e765248/third_party/WebKit/Source/core/paint/ListMarkerPainter.cpp
[modify] https://crrev.com/ff0c1a487b941b11478790642d92e94a1e765248/third_party/WebKit/Source/core/style/ComputedStyle.h
[modify] https://crrev.com/ff0c1a487b941b11478790642d92e94a1e765248/third_party/WebKit/Source/core/style/ComputedStyleConstants.h

Project Member Comment 22 by bugdroid1@chromium.org, Nov 17
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/8ecb25cb8788703f601a88c5fa6d7e640a698966

commit 8ecb25cb8788703f601a88c5fa6d7e640a698966
Author: sashab <sashab@chromium.org>
Date: Thu Nov 17 03:29:19 2016

Changed ECursor to an enum class and renamed its members to keywords

Changed ECursor to an enum class and gave it an unsigned underlying
type. Also renamed its members to match its keywords from
CSSValueKeywords.in.

Changing it to an enum class enforces better namespacing and code
practices. Adding the unsigned underlying type is pre-work for when the
class is eventually stored as an enum bitfield (it would be done in this
patch, except a presubmit warning already exists that prevents that. The
presubmit warning needs to be updated before that change can occur.)

This is also pre-work to move ECursor to be generated in
ComputedStyleBase.

BUG=628043

Review-Url: https://codereview.chromium.org/2505853002
Cr-Commit-Position: refs/heads/master@{#432724}

[modify] https://crrev.com/8ecb25cb8788703f601a88c5fa6d7e640a698966/third_party/WebKit/Source/core/css/CSSPrimitiveValueMappings.h
[modify] https://crrev.com/8ecb25cb8788703f601a88c5fa6d7e640a698966/third_party/WebKit/Source/core/css/resolver/StyleBuilderCustom.cpp
[modify] https://crrev.com/8ecb25cb8788703f601a88c5fa6d7e640a698966/third_party/WebKit/Source/core/input/EventHandler.cpp
[modify] https://crrev.com/8ecb25cb8788703f601a88c5fa6d7e640a698966/third_party/WebKit/Source/core/style/ComputedStyle.h
[modify] https://crrev.com/8ecb25cb8788703f601a88c5fa6d7e640a698966/third_party/WebKit/Source/core/style/ComputedStyleConstants.h
[modify] https://crrev.com/8ecb25cb8788703f601a88c5fa6d7e640a698966/third_party/WebKit/Source/web/WebViewImpl.cpp

Project Member Comment 23 by bugdroid1@chromium.org, Nov 17
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/8ecb25cb8788703f601a88c5fa6d7e640a698966

commit 8ecb25cb8788703f601a88c5fa6d7e640a698966
Author: sashab <sashab@chromium.org>
Date: Thu Nov 17 03:29:19 2016

Changed ECursor to an enum class and renamed its members to keywords

Changed ECursor to an enum class and gave it an unsigned underlying
type. Also renamed its members to match its keywords from
CSSValueKeywords.in.

Changing it to an enum class enforces better namespacing and code
practices. Adding the unsigned underlying type is pre-work for when the
class is eventually stored as an enum bitfield (it would be done in this
patch, except a presubmit warning already exists that prevents that. The
presubmit warning needs to be updated before that change can occur.)

This is also pre-work to move ECursor to be generated in
ComputedStyleBase.

BUG=628043

Review-Url: https://codereview.chromium.org/2505853002
Cr-Commit-Position: refs/heads/master@{#432724}

[modify] https://crrev.com/8ecb25cb8788703f601a88c5fa6d7e640a698966/third_party/WebKit/Source/core/css/CSSPrimitiveValueMappings.h
[modify] https://crrev.com/8ecb25cb8788703f601a88c5fa6d7e640a698966/third_party/WebKit/Source/core/css/resolver/StyleBuilderCustom.cpp
[modify] https://crrev.com/8ecb25cb8788703f601a88c5fa6d7e640a698966/third_party/WebKit/Source/core/input/EventHandler.cpp
[modify] https://crrev.com/8ecb25cb8788703f601a88c5fa6d7e640a698966/third_party/WebKit/Source/core/style/ComputedStyle.h
[modify] https://crrev.com/8ecb25cb8788703f601a88c5fa6d7e640a698966/third_party/WebKit/Source/core/style/ComputedStyleConstants.h
[modify] https://crrev.com/8ecb25cb8788703f601a88c5fa6d7e640a698966/third_party/WebKit/Source/web/WebViewImpl.cpp

Project Member Comment 24 by bugdroid1@chromium.org, Nov 18
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/5d6e4ab16eadee1c051891651cebc1473a07bfc0

commit 5d6e4ab16eadee1c051891651cebc1473a07bfc0
Author: sashab <sashab@chromium.org>
Date: Fri Nov 18 03:10:06 2016

Changed ETextAlign to an enum class and renamed its members to keywords

Changed ETextAlign to an enum class and gave it an unsigned underlying
type. Also renamed its members to match its keywords from
CSSValueKeywords.in.

Changing it to an enum class enforces better namespacing and code
practices. Adding the unsigned underlying type is pre-work for when the
class is eventually stored as an enum bitfield (it would be done in this
patch, except a presubmit warning already exists that prevents that. The
presubmit warning needs to be updated before that change can occur.)

This is also pre-work to move ETextAlign to be generated in
ComputedStyleBase.

BUG=628043

Review-Url: https://codereview.chromium.org/2507383002
Cr-Commit-Position: refs/heads/master@{#433044}

[modify] https://crrev.com/5d6e4ab16eadee1c051891651cebc1473a07bfc0/third_party/WebKit/Source/core/css/CSSPrimitiveValueMappings.h
[modify] https://crrev.com/5d6e4ab16eadee1c051891651cebc1473a07bfc0/third_party/WebKit/Source/core/css/resolver/StyleAdjuster.cpp
[modify] https://crrev.com/5d6e4ab16eadee1c051891651cebc1473a07bfc0/third_party/WebKit/Source/core/css/resolver/StyleBuilderCustom.cpp
[modify] https://crrev.com/5d6e4ab16eadee1c051891651cebc1473a07bfc0/third_party/WebKit/Source/core/layout/LayoutBlockFlow.cpp
[modify] https://crrev.com/5d6e4ab16eadee1c051891651cebc1473a07bfc0/third_party/WebKit/Source/core/layout/LayoutBlockFlowLine.cpp
[modify] https://crrev.com/5d6e4ab16eadee1c051891651cebc1473a07bfc0/third_party/WebKit/Source/core/layout/LayoutBox.cpp
[modify] https://crrev.com/5d6e4ab16eadee1c051891651cebc1473a07bfc0/third_party/WebKit/Source/core/layout/LayoutBoxModelObject.cpp
[modify] https://crrev.com/5d6e4ab16eadee1c051891651cebc1473a07bfc0/third_party/WebKit/Source/core/layout/LayoutFieldset.cpp
[modify] https://crrev.com/5d6e4ab16eadee1c051891651cebc1473a07bfc0/third_party/WebKit/Source/core/layout/LayoutMenuList.cpp
[modify] https://crrev.com/5d6e4ab16eadee1c051891651cebc1473a07bfc0/third_party/WebKit/Source/core/layout/LayoutRubyBase.cpp
[modify] https://crrev.com/5d6e4ab16eadee1c051891651cebc1473a07bfc0/third_party/WebKit/Source/core/layout/LayoutRubyRun.cpp
[modify] https://crrev.com/5d6e4ab16eadee1c051891651cebc1473a07bfc0/third_party/WebKit/Source/core/layout/LayoutRubyText.cpp
[modify] https://crrev.com/5d6e4ab16eadee1c051891651cebc1473a07bfc0/third_party/WebKit/Source/core/layout/LayoutText.cpp
[modify] https://crrev.com/5d6e4ab16eadee1c051891651cebc1473a07bfc0/third_party/WebKit/Source/core/style/ComputedStyle.h
[modify] https://crrev.com/5d6e4ab16eadee1c051891651cebc1473a07bfc0/third_party/WebKit/Source/core/style/ComputedStyleConstants.h
[modify] https://crrev.com/5d6e4ab16eadee1c051891651cebc1473a07bfc0/third_party/WebKit/Source/web/WebFormControlElement.cpp

Project Member Comment 25 by bugdroid1@chromium.org, Nov 21
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/521551f2e6bd230ff54adf9fdcdc4fd837598fd1

commit 521551f2e6bd230ff54adf9fdcdc4fd837598fd1
Author: sashab <sashab@chromium.org>
Date: Mon Nov 21 04:59:32 2016

Changed EWhiteSpace to an enum class and renamed its members to keywords

Changed EWhiteSpace to an enum class and gave it an unsigned underlying
type. Also renamed its members to match its keywords from
CSSValueKeywords.in.

Changing it to an enum class enforces better namespacing and code
practices. Adding the unsigned underlying type is pre-work for when the
class is eventually stored as an enum bitfield (it would be done in this
patch, except a presubmit warning already exists that prevents that. The
presubmit warning needs to be updated before that change can occur.)

This is also pre-work to move EWhiteSpace to be generated in
ComputedStyleBase.

BUG=628043

Review-Url: https://codereview.chromium.org/2508743002
Cr-Commit-Position: refs/heads/master@{#433476}

[modify] https://crrev.com/521551f2e6bd230ff54adf9fdcdc4fd837598fd1/third_party/WebKit/Source/core/css/CSSPrimitiveValueMappings.h
[modify] https://crrev.com/521551f2e6bd230ff54adf9fdcdc4fd837598fd1/third_party/WebKit/Source/core/css/resolver/StyleAdjuster.cpp
[modify] https://crrev.com/521551f2e6bd230ff54adf9fdcdc4fd837598fd1/third_party/WebKit/Source/core/dom/Text.cpp
[modify] https://crrev.com/521551f2e6bd230ff54adf9fdcdc4fd837598fd1/third_party/WebKit/Source/core/editing/iterators/TextIterator.cpp
[modify] https://crrev.com/521551f2e6bd230ff54adf9fdcdc4fd837598fd1/third_party/WebKit/Source/core/layout/LayoutBlock.cpp
[modify] https://crrev.com/521551f2e6bd230ff54adf9fdcdc4fd837598fd1/third_party/WebKit/Source/core/layout/LayoutBlockFlowLine.cpp
[modify] https://crrev.com/521551f2e6bd230ff54adf9fdcdc4fd837598fd1/third_party/WebKit/Source/core/layout/LayoutText.cpp
[modify] https://crrev.com/521551f2e6bd230ff54adf9fdcdc4fd837598fd1/third_party/WebKit/Source/core/layout/LayoutTextControlSingleLine.cpp
[modify] https://crrev.com/521551f2e6bd230ff54adf9fdcdc4fd837598fd1/third_party/WebKit/Source/core/layout/LayoutTheme.cpp
[modify] https://crrev.com/521551f2e6bd230ff54adf9fdcdc4fd837598fd1/third_party/WebKit/Source/core/layout/LayoutThemeMac.mm
[modify] https://crrev.com/521551f2e6bd230ff54adf9fdcdc4fd837598fd1/third_party/WebKit/Source/core/layout/line/BreakingContext.cpp
[modify] https://crrev.com/521551f2e6bd230ff54adf9fdcdc4fd837598fd1/third_party/WebKit/Source/core/layout/line/BreakingContextInlineHeaders.h
[modify] https://crrev.com/521551f2e6bd230ff54adf9fdcdc4fd837598fd1/third_party/WebKit/Source/core/layout/svg/LayoutSVGInlineText.cpp
[modify] https://crrev.com/521551f2e6bd230ff54adf9fdcdc4fd837598fd1/third_party/WebKit/Source/core/style/ComputedStyle.h
[modify] https://crrev.com/521551f2e6bd230ff54adf9fdcdc4fd837598fd1/third_party/WebKit/Source/core/style/ComputedStyleConstants.h

Project Member Comment 26 by bugdroid1@chromium.org, Nov 21
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/dfd37d2b7b9be6fcc2da32d58ee83a1bcaad0990

commit dfd37d2b7b9be6fcc2da32d58ee83a1bcaad0990
Author: sashab <sashab@chromium.org>
Date: Mon Nov 21 05:06:09 2016

Changed PrintColorAdjust to an enum class and renamed its members

Changed PrintColorAdjust to an enum class and gave it an unsigned
underlying type. Also renamed its members to match its keywords from
CSSValueKeywords.in, and removed PrintColorAdjustBits which will be
generated.

Changing it to an enum class enforces better namespacing and code
practices. Adding the unsigned underlying type is pre-work for when the
class is eventually stored as an enum bitfield (it would be done in this
patch, except a presubmit warning already exists that prevents that. The
presubmit warning needs to be updated before that change can occur.)

This is also pre-work to move PrintColorAdjust to be generated in
ComputedStyleBase.

BUG=628043
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2

Review-Url: https://codereview.chromium.org/2514273002
Cr-Commit-Position: refs/heads/master@{#433477}

[modify] https://crrev.com/dfd37d2b7b9be6fcc2da32d58ee83a1bcaad0990/third_party/WebKit/Source/core/css/CSSPrimitiveValueMappings.h
[modify] https://crrev.com/dfd37d2b7b9be6fcc2da32d58ee83a1bcaad0990/third_party/WebKit/Source/core/paint/BoxPainter.cpp
[modify] https://crrev.com/dfd37d2b7b9be6fcc2da32d58ee83a1bcaad0990/third_party/WebKit/Source/core/style/ComputedStyle.h
[modify] https://crrev.com/dfd37d2b7b9be6fcc2da32d58ee83a1bcaad0990/third_party/WebKit/Source/core/style/ComputedStyleConstants.h

Project Member Comment 28 by bugdroid1@chromium.org, Nov 22
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/24335db82807d6544f5c3e3f8ae01c6796ca16c9

commit 24335db82807d6544f5c3e3f8ae01c6796ca16c9
Author: sashab <sashab@chromium.org>
Date: Tue Nov 22 02:55:52 2016

Changed ETextTransform to an enum class and renamed its members

Changed ETextTransform to an enum class and gave it an unsigned
underlying type. Also renamed its members to match its keywords from
CSSValueKeywords.in.

Changing it to an enum class enforces better namespacing and code
practices. Adding the unsigned underlying type is pre-work for when the
class is eventually stored as an enum bitfield (it would be done in this
patch, except a presubmit warning already exists that prevents that. The
presubmit warning needs to be updated before that change can occur.)

This is also pre-work to move ETextTransform to be generated in
ComputedStyleBase.

BUG=628043

Review-Url: https://codereview.chromium.org/2516263002
Cr-Commit-Position: refs/heads/master@{#433758}

[modify] https://crrev.com/24335db82807d6544f5c3e3f8ae01c6796ca16c9/third_party/WebKit/Source/core/css/CSSPrimitiveValueMappings.h
[modify] https://crrev.com/24335db82807d6544f5c3e3f8ae01c6796ca16c9/third_party/WebKit/Source/core/layout/LayoutObject.cpp
[modify] https://crrev.com/24335db82807d6544f5c3e3f8ae01c6796ca16c9/third_party/WebKit/Source/core/layout/LayoutText.cpp
[modify] https://crrev.com/24335db82807d6544f5c3e3f8ae01c6796ca16c9/third_party/WebKit/Source/core/style/ComputedStyle.h
[modify] https://crrev.com/24335db82807d6544f5c3e3f8ae01c6796ca16c9/third_party/WebKit/Source/core/style/ComputedStyleConstants.h
[modify] https://crrev.com/24335db82807d6544f5c3e3f8ae01c6796ca16c9/third_party/WebKit/Source/web/PopupMenuImpl.cpp

Project Member Comment 29 by bugdroid1@chromium.org, Nov 22
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/0385165cc191fe42f960c852357744ca1ecae1f0

commit 0385165cc191fe42f960c852357744ca1ecae1f0
Author: sashab <sashab@chromium.org>
Date: Tue Nov 22 04:17:41 2016

Changed EBoxDirection to an enum class and renamed its members to keywords

Changed EBoxDirection to an enum class and gave it an unsigned
underlying type. Also renamed its members to match its keywords from
CSSValueKeywords.in.

Changing it to an enum class enforces better namespacing and code
practices. Adding the unsigned underlying type is pre-work for when the
class is eventually stored as an enum bitfield (it would be done in this
patch, except a presubmit warning already exists that prevents that. The
presubmit warning needs to be updated before that change can occur.)

This is also pre-work to move EBoxDirection to be generated in
ComputedStyleBase.

BUG=628043

Review-Url: https://codereview.chromium.org/2521463002
Cr-Commit-Position: refs/heads/master@{#433786}

[modify] https://crrev.com/0385165cc191fe42f960c852357744ca1ecae1f0/third_party/WebKit/Source/core/css/CSSPrimitiveValueMappings.h
[modify] https://crrev.com/0385165cc191fe42f960c852357744ca1ecae1f0/third_party/WebKit/Source/core/layout/LayoutDeprecatedFlexibleBox.cpp
[modify] https://crrev.com/0385165cc191fe42f960c852357744ca1ecae1f0/third_party/WebKit/Source/core/style/ComputedStyle.h
[modify] https://crrev.com/0385165cc191fe42f960c852357744ca1ecae1f0/third_party/WebKit/Source/core/style/ComputedStyleConstants.h

Project Member Comment 30 by bugdroid1@chromium.org, Nov 23
Project Member Comment 31 by bugdroid1@chromium.org, Nov 28
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/ae3bbc4f69ea52e4b505c8fcaffe4d4dca484c0c

commit ae3bbc4f69ea52e4b505c8fcaffe4d4dca484c0c
Author: sashab <sashab@chromium.org>
Date: Mon Nov 28 04:33:13 2016

Changed EBorderCollapse to an enum class and renamed its members

Changed EBorderCollapse to an enum class and gave it an unsigned
underlying type. Also renamed its members to match its keywords from
CSSValueKeywords.in.

Changing it to an enum class enforces better namespacing and code
practices. Adding the unsigned underlying type is pre-work for when the
class is eventually stored as an enum bitfield (it would be done in this
patch, except a presubmit warning already exists that prevents that. The
presubmit warning needs to be updated before that change can occur.)

This is also pre-work to move EBorderCollapse to be generated in
ComputedStyleBase.

BUG=628043

Review-Url: https://codereview.chromium.org/2528573002
Cr-Commit-Position: refs/heads/master@{#434602}

[modify] https://crrev.com/ae3bbc4f69ea52e4b505c8fcaffe4d4dca484c0c/third_party/WebKit/Source/core/css/CSSPrimitiveValueMappings.h
[modify] https://crrev.com/ae3bbc4f69ea52e4b505c8fcaffe4d4dca484c0c/third_party/WebKit/Source/core/css/ComputedStyleCSSValueMapping.cpp
[modify] https://crrev.com/ae3bbc4f69ea52e4b505c8fcaffe4d4dca484c0c/third_party/WebKit/Source/core/layout/LayoutTable.h
[modify] https://crrev.com/ae3bbc4f69ea52e4b505c8fcaffe4d4dca484c0c/third_party/WebKit/Source/core/style/ComputedStyle.h
[modify] https://crrev.com/ae3bbc4f69ea52e4b505c8fcaffe4d4dca484c0c/third_party/WebKit/Source/core/style/ComputedStyleConstants.h

Project Member Comment 33 by bugdroid1@chromium.org, Dec 1
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/f3cfe7729123c2dd2dcba3048b57696f325cf5a1

commit f3cfe7729123c2dd2dcba3048b57696f325cf5a1
Author: sashab <sashab@chromium.org>
Date: Thu Dec 01 04:13:03 2016

Added initial_keyword flag to CSSProperties.in

Added initial_keyword flag to CSSProperties.in, which specifies the
initial value for keyword-only properties generated in ComputedStyle.

BUG=628043

Review-Url: https://codereview.chromium.org/2538493005
Cr-Commit-Position: refs/heads/master@{#435549}

[modify] https://crrev.com/f3cfe7729123c2dd2dcba3048b57696f325cf5a1/third_party/WebKit/Source/build/scripts/css_properties.py
[modify] https://crrev.com/f3cfe7729123c2dd2dcba3048b57696f325cf5a1/third_party/WebKit/Source/build/scripts/make_computed_style_base.py
[modify] https://crrev.com/f3cfe7729123c2dd2dcba3048b57696f325cf5a1/third_party/WebKit/Source/core/css/CSSProperties.in

Project Member Comment 34 by bugdroid1@chromium.org, Dec 5
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/7288d286aaf11b6c4a6da25b8dc6209f64908f97

commit 7288d286aaf11b6c4a6da25b8dc6209f64908f97
Author: napper <napper@chromium.org>
Date: Mon Dec 05 04:35:39 2016

Changed EPointerEvents to an enum class and renamed its members to keywords

Changed EPointerEvents to an enum class and gave it an unsigned
underlying type.

Changing it to an enum class enforces better namespacing and code
practices. Adding the unsigned underlying type is pre-work for when the
class is eventually stored as an enum bitfield (it would be done in this
patch, except a presubmit warning already exists that prevents that. The
presubmit warning needs to be updated before that change can occur.)

This is also pre-work to move EPointerEvents to be generated in
ComputedStyleBase.

BUG=628043

Review-Url: https://codereview.chromium.org/2542843002
Cr-Commit-Position: refs/heads/master@{#436232}

[modify] https://crrev.com/7288d286aaf11b6c4a6da25b8dc6209f64908f97/third_party/WebKit/Source/core/css/CSSPrimitiveValueMappings.h
[modify] https://crrev.com/7288d286aaf11b6c4a6da25b8dc6209f64908f97/third_party/WebKit/Source/core/layout/LayoutObject.h
[modify] https://crrev.com/7288d286aaf11b6c4a6da25b8dc6209f64908f97/third_party/WebKit/Source/core/layout/PointerEventsHitRules.cpp
[modify] https://crrev.com/7288d286aaf11b6c4a6da25b8dc6209f64908f97/third_party/WebKit/Source/core/layout/svg/LayoutSVGContainer.cpp
[modify] https://crrev.com/7288d286aaf11b6c4a6da25b8dc6209f64908f97/third_party/WebKit/Source/core/style/ComputedStyle.h
[modify] https://crrev.com/7288d286aaf11b6c4a6da25b8dc6209f64908f97/third_party/WebKit/Source/core/style/ComputedStyleConstants.h
[modify] https://crrev.com/7288d286aaf11b6c4a6da25b8dc6209f64908f97/third_party/WebKit/Source/core/svg/SVGSVGElement.cpp
[modify] https://crrev.com/7288d286aaf11b6c4a6da25b8dc6209f64908f97/third_party/WebKit/Source/web/WebRemoteFrameImpl.cpp

Project Member Comment 35 by bugdroid1@chromium.org, Dec 5
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/5fcf8dbc81c32665ab015b7f0cf303f3427a3d93

commit 5fcf8dbc81c32665ab015b7f0cf303f3427a3d93
Author: sashab <sashab@chromium.org>
Date: Mon Dec 05 04:39:40 2016

Changed Order to an enum class and renamed its members

Changed Order to an enum class and gave it an unsigned underlying type.
Also renamed it from Order to EOrder to match the other ComputedStyle
enums, and renamed its members to match its keywords from
CSSValueKeywords.in. Also removed the '= 0' value setter for Logical and
the one callsite where this was used (implicit int conversion is not
allowed for enum classes anyway).

Changing it to an enum class enforces better namespacing and code
practices. Adding the unsigned underlying type is pre-work for when the
class is eventually stored as an enum bitfield (it would be done in this
patch, except a presubmit warning already exists that prevents that. The
presubmit warning needs to be updated before that change can occur.)

This is also pre-work to move EOrder to be generated in
ComputedStyleBase.

BUG=628043

Review-Url: https://codereview.chromium.org/2546333002
Cr-Commit-Position: refs/heads/master@{#436233}

[modify] https://crrev.com/5fcf8dbc81c32665ab015b7f0cf303f3427a3d93/third_party/WebKit/Source/core/css/CSSPrimitiveValueMappings.h
[modify] https://crrev.com/5fcf8dbc81c32665ab015b7f0cf303f3427a3d93/third_party/WebKit/Source/core/css/CSSProperties.in
[modify] https://crrev.com/5fcf8dbc81c32665ab015b7f0cf303f3427a3d93/third_party/WebKit/Source/core/css/ComputedStyleCSSValueMapping.cpp
[modify] https://crrev.com/5fcf8dbc81c32665ab015b7f0cf303f3427a3d93/third_party/WebKit/Source/core/css/resolver/StyleResolver.cpp
[modify] https://crrev.com/5fcf8dbc81c32665ab015b7f0cf303f3427a3d93/third_party/WebKit/Source/core/dom/Document.cpp
[modify] https://crrev.com/5fcf8dbc81c32665ab015b7f0cf303f3427a3d93/third_party/WebKit/Source/core/layout/LayoutBlockFlowLine.cpp
[modify] https://crrev.com/5fcf8dbc81c32665ab015b7f0cf303f3427a3d93/third_party/WebKit/Source/core/layout/TextRunConstructor.cpp
[modify] https://crrev.com/5fcf8dbc81c32665ab015b7f0cf303f3427a3d93/third_party/WebKit/Source/core/layout/line/InlineFlowBox.cpp
[modify] https://crrev.com/5fcf8dbc81c32665ab015b7f0cf303f3427a3d93/third_party/WebKit/Source/core/layout/line/InlineIterator.h
[modify] https://crrev.com/5fcf8dbc81c32665ab015b7f0cf303f3427a3d93/third_party/WebKit/Source/core/layout/line/InlineTextBox.cpp
[modify] https://crrev.com/5fcf8dbc81c32665ab015b7f0cf303f3427a3d93/third_party/WebKit/Source/core/layout/svg/line/SVGInlineTextBox.cpp
[modify] https://crrev.com/5fcf8dbc81c32665ab015b7f0cf303f3427a3d93/third_party/WebKit/Source/core/style/ComputedStyle.h
[modify] https://crrev.com/5fcf8dbc81c32665ab015b7f0cf303f3427a3d93/third_party/WebKit/Source/core/style/ComputedStyleConstants.h

Project Member Comment 36 by bugdroid1@chromium.org, Dec 6
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/2e622f7aad97866963d8784950fa8a72555519d5

commit 2e622f7aad97866963d8784950fa8a72555519d5
Author: napper <napper@chromium.org>
Date: Tue Dec 06 02:59:34 2016

Renamed members of EPointerEvents to match CSSValueKeywords.in.

Renamed members of EPointerEvents to match the keywords to the
values in CSSValueKeywords.in. This is a rename only - there are
no logic changes.

This is pre-work to move EPointerEvents to be generated in
ComputedStyleBase.

BUG=628043

Review-Url: https://codereview.chromium.org/2554673002
Cr-Commit-Position: refs/heads/master@{#436503}

[modify] https://crrev.com/2e622f7aad97866963d8784950fa8a72555519d5/third_party/WebKit/Source/core/css/CSSPrimitiveValueMappings.h
[modify] https://crrev.com/2e622f7aad97866963d8784950fa8a72555519d5/third_party/WebKit/Source/core/layout/LayoutObject.h
[modify] https://crrev.com/2e622f7aad97866963d8784950fa8a72555519d5/third_party/WebKit/Source/core/layout/PointerEventsHitRules.cpp
[modify] https://crrev.com/2e622f7aad97866963d8784950fa8a72555519d5/third_party/WebKit/Source/core/layout/svg/LayoutSVGContainer.cpp
[modify] https://crrev.com/2e622f7aad97866963d8784950fa8a72555519d5/third_party/WebKit/Source/core/style/ComputedStyle.h
[modify] https://crrev.com/2e622f7aad97866963d8784950fa8a72555519d5/third_party/WebKit/Source/core/style/ComputedStyleConstants.h
[modify] https://crrev.com/2e622f7aad97866963d8784950fa8a72555519d5/third_party/WebKit/Source/core/svg/SVGSVGElement.cpp
[modify] https://crrev.com/2e622f7aad97866963d8784950fa8a72555519d5/third_party/WebKit/Source/web/WebRemoteFrameImpl.cpp

Project Member Comment 37 by bugdroid1@chromium.org, Dec 6
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/d6b2bca0a7e2347eebb2749d8723c10efb9b6778

commit d6b2bca0a7e2347eebb2749d8723c10efb9b6778
Author: napper <napper@chromium.org>
Date: Tue Dec 06 04:31:18 2016

Move border-collapse to be generated in ComputedStyleBase

Move the inherited property caption-side and its enum, EBorderCollapse,
to be generated in ComputedStyleBase. Also removed the explicit value
setters for EBorderCollapse and the one callsite where this was used
(implicit int conversion is not allowed for enum classes anyway).

BUG=628043

Review-Url: https://codereview.chromium.org/2550343002
Cr-Commit-Position: refs/heads/master@{#436523}

[modify] https://crrev.com/d6b2bca0a7e2347eebb2749d8723c10efb9b6778/third_party/WebKit/Source/core/css/CSSProperties.in
[modify] https://crrev.com/d6b2bca0a7e2347eebb2749d8723c10efb9b6778/third_party/WebKit/Source/core/style/ComputedStyle.cpp
[modify] https://crrev.com/d6b2bca0a7e2347eebb2749d8723c10efb9b6778/third_party/WebKit/Source/core/style/ComputedStyle.h
[modify] https://crrev.com/d6b2bca0a7e2347eebb2749d8723c10efb9b6778/third_party/WebKit/Source/core/style/ComputedStyleConstants.h

Project Member Comment 38 by bugdroid1@chromium.org, Dec 6
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/3dd00af7d6f27106b11f718190331d290a9f9240

commit 3dd00af7d6f27106b11f718190331d290a9f9240
Author: sashab <sashab@chromium.org>
Date: Tue Dec 06 04:37:42 2016

Added support for isInherited flags to ComputedStyleBase

Added support for isInherited flags to ComputedStyleBase, and moved
visibilityIsInherited to ComputedStyleBase. This involved adding
additional code to generate the new inherited flag fields, as well as
adding a version of propagateIndependentInheritedProperties() to
ComputedStyleBase.

Visibility was already a generated field, but the inherited flag of its
generation was not yet being generated in ComputedStyleBase, so this
patch moves that field to be generated as well.

BUG=628043

Review-Url: https://codereview.chromium.org/2547403002
Cr-Commit-Position: refs/heads/master@{#436527}

[modify] https://crrev.com/3dd00af7d6f27106b11f718190331d290a9f9240/third_party/WebKit/Source/build/scripts/make_computed_style_base.py
[modify] https://crrev.com/3dd00af7d6f27106b11f718190331d290a9f9240/third_party/WebKit/Source/build/scripts/templates/ComputedStyleBase.cpp.tmpl
[modify] https://crrev.com/3dd00af7d6f27106b11f718190331d290a9f9240/third_party/WebKit/Source/build/scripts/templates/ComputedStyleBase.h.tmpl
[modify] https://crrev.com/3dd00af7d6f27106b11f718190331d290a9f9240/third_party/WebKit/Source/core/style/ComputedStyle.cpp
[modify] https://crrev.com/3dd00af7d6f27106b11f718190331d290a9f9240/third_party/WebKit/Source/core/style/ComputedStyle.h

Project Member Comment 39 by bugdroid1@chromium.org, Dec 7
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/472c0e40aeb583e2638eb45c79f7ae931d10bceb

commit 472c0e40aeb583e2638eb45c79f7ae931d10bceb
Author: napper <napper@chromium.org>
Date: Wed Dec 07 05:02:36 2016

Made border-collapse property independent.

Made border-collapse property independent. Also updated
independent-inheritance-fast-path.html to include borderCollapse.

Tested using independent-inheritance-fast-path.html.

BUG=628043

Review-Url: https://codereview.chromium.org/2553703003
Cr-Commit-Position: refs/heads/master@{#436867}

[modify] https://crrev.com/472c0e40aeb583e2638eb45c79f7ae931d10bceb/third_party/WebKit/LayoutTests/fast/css/invalidation/independent-inheritance-fast-path.html
[modify] https://crrev.com/472c0e40aeb583e2638eb45c79f7ae931d10bceb/third_party/WebKit/Source/core/css/CSSProperties.in
[modify] https://crrev.com/472c0e40aeb583e2638eb45c79f7ae931d10bceb/third_party/WebKit/Source/core/style/ComputedStyle.h

Project Member Comment 40 by bugdroid1@chromium.org, Dec 8
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/66e559603ea31d8aad74779fae2e1b6d375833eb

commit 66e559603ea31d8aad74779fae2e1b6d375833eb
Author: sashab <sashab@chromium.org>
Date: Thu Dec 08 01:18:48 2016

Cleaned up make_computed_style_base.py to be better self-documenting

Cleaned up make_computed_style_base.py to have more explicit
dependencies between fields, explain fields and field families, and
generally be better self-documented.

BUG=628043

Review-Url: https://codereview.chromium.org/2549373002
Cr-Commit-Position: refs/heads/master@{#437107}

[modify] https://crrev.com/66e559603ea31d8aad74779fae2e1b6d375833eb/third_party/WebKit/Source/build/scripts/make_computed_style_base.py

Cc: -bugsnash@chromium.org
Project Member Comment 42 by bugdroid1@chromium.org, Dec 8
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/b6cb04f1dbef1277a5a51b3ae3f5e6cb0341a614

commit b6cb04f1dbef1277a5a51b3ae3f5e6cb0341a614
Author: napper <napper@chromium.org>
Date: Thu Dec 08 20:35:36 2016

Move white-space to be generated in ComputedStyleBase.

Move white-space to be generated in ComputedStyleBase. Also removed the
explicit value setters for EWhiteSpace. Also updated
SameSizeAsComputedStyle() to reflect the change in inherited data
bitfield size. This CL has reduced the size of ComputedStyle by 8 bytes.

BUG=628043

Review-Url: https://codereview.chromium.org/2555423002
Cr-Commit-Position: refs/heads/master@{#437322}

[modify] https://crrev.com/b6cb04f1dbef1277a5a51b3ae3f5e6cb0341a614/third_party/WebKit/Source/core/css/CSSProperties.in
[modify] https://crrev.com/b6cb04f1dbef1277a5a51b3ae3f5e6cb0341a614/third_party/WebKit/Source/core/style/ComputedStyle.cpp
[modify] https://crrev.com/b6cb04f1dbef1277a5a51b3ae3f5e6cb0341a614/third_party/WebKit/Source/core/style/ComputedStyle.h
[modify] https://crrev.com/b6cb04f1dbef1277a5a51b3ae3f5e6cb0341a614/third_party/WebKit/Source/core/style/ComputedStyleConstants.h

Project Member Comment 43 by bugdroid1@chromium.org, Dec 9
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/7c4945f1f56993bbeec9cf73141d1d5ccf932061

commit 7c4945f1f56993bbeec9cf73141d1d5ccf932061
Author: sashab <sashab@chromium.org>
Date: Fri Dec 09 02:20:12 2016

Made empty-cells property independent.

Made empty-cells property independent. Also updated
independent-inheritance-fast-path.html to include emptyCells.

Tested using independent-inheritance-fast-path.html.

BUG=628043

Review-Url: https://codereview.chromium.org/2555103003
Cr-Commit-Position: refs/heads/master@{#437434}

[modify] https://crrev.com/7c4945f1f56993bbeec9cf73141d1d5ccf932061/third_party/WebKit/LayoutTests/fast/css/invalidation/independent-inheritance-fast-path.html
[modify] https://crrev.com/7c4945f1f56993bbeec9cf73141d1d5ccf932061/third_party/WebKit/Source/core/css/CSSProperties.in

Project Member Comment 44 by bugdroid1@chromium.org, Dec 9
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/c2ff63fad7483656ea28d0d9e35267add5fd29f6

commit c2ff63fad7483656ea28d0d9e35267add5fd29f6
Author: sashab <sashab@chromium.org>
Date: Fri Dec 09 03:46:46 2016

Removed property object from make_computed_style_base.py templates

Removed references to the property object from templates used in
make_computed_style_base.py. This is important pre-work for adding
fields that don't have a property object associated with them, but even
if those aren't added, reducing the amount of information sent to the
templates makes the code easier to follow and understand.

BUG=628043

Review-Url: https://codereview.chromium.org/2554243002
Cr-Commit-Position: refs/heads/master@{#437456}

[modify] https://crrev.com/c2ff63fad7483656ea28d0d9e35267add5fd29f6/third_party/WebKit/Source/build/scripts/make_computed_style_base.py
[modify] https://crrev.com/c2ff63fad7483656ea28d0d9e35267add5fd29f6/third_party/WebKit/Source/build/scripts/templates/ComputedStyleBase.cpp.tmpl
[modify] https://crrev.com/c2ff63fad7483656ea28d0d9e35267add5fd29f6/third_party/WebKit/Source/build/scripts/templates/ComputedStyleBase.h.tmpl

Project Member Comment 45 by bugdroid1@chromium.org, Dec 9
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/c262d7951ee6e85df9221f8004e57b9783bd2bbc

commit c262d7951ee6e85df9221f8004e57b9783bd2bbc
Author: sashab <sashab@chromium.org>
Date: Fri Dec 09 06:49:49 2016

Made caption-side property independent.

Made caption-side property independent. Also updated
independent-inheritance-fast-path.html to include captionSide.

Tested using independent-inheritance-fast-path.html.

BUG=628043

Review-Url: https://codereview.chromium.org/2563443006
Cr-Commit-Position: refs/heads/master@{#437486}

[modify] https://crrev.com/c262d7951ee6e85df9221f8004e57b9783bd2bbc/third_party/WebKit/LayoutTests/fast/css/invalidation/independent-inheritance-fast-path.html
[modify] https://crrev.com/c262d7951ee6e85df9221f8004e57b9783bd2bbc/third_party/WebKit/Source/core/css/CSSProperties.in

Project Member Comment 46 by bugdroid1@chromium.org, Dec 12
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/a642f81bd7da2c6b02bd288c443c8e42416baa58

commit a642f81bd7da2c6b02bd288c443c8e42416baa58
Author: sashab <sashab@chromium.org>
Date: Mon Dec 12 03:17:49 2016

Sort fields in ComputedStyleBase in decreasing order of size

Sort fields in ComputedStyleBase in decreasing order of size. This is
a micro optimization that improves field alignment and minimizes wasted
memory space.

From Intel on 'Coding for Performance':
https://software.intel.com/en-us/articles/coding-for-performance-data-alignment-and-structures
"One can try to minimize this memory wastage by ordering the structure
elements such that the widest (largest) element comes first, followed by
the second widest, and so on."

Another good explanation article:
https://msdn.microsoft.com/en-us/library/ewwyfdbe.aspx

BUG=628043

Review-Url: https://codereview.chromium.org/2558733002
Cr-Commit-Position: refs/heads/master@{#437813}

[modify] https://crrev.com/a642f81bd7da2c6b02bd288c443c8e42416baa58/third_party/WebKit/Source/build/scripts/make_computed_style_base.py

Project Member Comment 47 by bugdroid1@chromium.org, Dec 13
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/06340ec1a7ea945a8c0442be9cb4cb154e32aa6b

commit 06340ec1a7ea945a8c0442be9cb4cb154e32aa6b
Author: sashab <sashab@chromium.org>
Date: Tue Dec 13 03:00:14 2016

Made list-style-position property independent.

Made list-style-position property independent. Also updated
independent-inheritance-fast-path.html to include listStylePosition.

Tested using independent-inheritance-fast-path.html.

BUG=628043

Review-Url: https://codereview.chromium.org/2566923002
Cr-Commit-Position: refs/heads/master@{#438008}

[modify] https://crrev.com/06340ec1a7ea945a8c0442be9cb4cb154e32aa6b/third_party/WebKit/LayoutTests/fast/css/invalidation/independent-inheritance-fast-path.html
[modify] https://crrev.com/06340ec1a7ea945a8c0442be9cb4cb154e32aa6b/third_party/WebKit/Source/core/css/CSSProperties.in

Project Member Comment 48 by bugdroid1@chromium.org, Dec 13
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/a0c2bf8d4b53aaace5bb38f4b7cb7078c7c2bf2d

commit a0c2bf8d4b53aaace5bb38f4b7cb7078c7c2bf2d
Author: sashab <sashab@chromium.org>
Date: Tue Dec 13 03:23:29 2016

Renamed 'type' to 'storage_type' in make_computed_style_base.py

Renamed the Field attribute 'type' to 'storage_type' in
make_computed_style_base.py and the ComputedStyleBase template files.

This is pre-work for when Fields can have both an internal storage and
external type (new attribute 'external_type'), and these types need to
be distinguished without being confusing.

BUG=628043

Review-Url: https://codereview.chromium.org/2563853002
Cr-Commit-Position: refs/heads/master@{#438022}

[modify] https://crrev.com/a0c2bf8d4b53aaace5bb38f4b7cb7078c7c2bf2d/third_party/WebKit/Source/build/scripts/make_computed_style_base.py
[modify] https://crrev.com/a0c2bf8d4b53aaace5bb38f4b7cb7078c7c2bf2d/third_party/WebKit/Source/build/scripts/templates/ComputedStyleBase.h.tmpl

Project Member Comment 49 by bugdroid1@chromium.org, Dec 13
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/ad2fe04892fed522eb67cd054f8696a5cfb1ba3f

commit ad2fe04892fed522eb67cd054f8696a5cfb1ba3f
Author: sashab <sashab@chromium.org>
Date: Tue Dec 13 06:02:23 2016

Changed EOverflowAnchor to an enum class and renamed its members

Changed EOverflowAnchor to an enum class and gave it an unsigned
underlying type.

Changing it to an enum class enforces better namespacing and code
practices. Adding the unsigned underlying type is pre-work for when the
class is eventually stored as an enum bitfield (it would be done in this
patch, except a presubmit warning already exists that prevents that. The
presubmit warning needs to be updated before that change can occur.)

This is also pre-work to move EOverflowAnchor to be generated in
ComputedStyleBase.

BUG=628043
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2

Review-Url: https://codereview.chromium.org/2561973002
Cr-Commit-Position: refs/heads/master@{#438072}

[modify] https://crrev.com/ad2fe04892fed522eb67cd054f8696a5cfb1ba3f/third_party/WebKit/Source/core/css/CSSPrimitiveValueMappings.h
[modify] https://crrev.com/ad2fe04892fed522eb67cd054f8696a5cfb1ba3f/third_party/WebKit/Source/core/dom/Document.cpp
[modify] https://crrev.com/ad2fe04892fed522eb67cd054f8696a5cfb1ba3f/third_party/WebKit/Source/core/frame/FrameView.cpp
[modify] https://crrev.com/ad2fe04892fed522eb67cd054f8696a5cfb1ba3f/third_party/WebKit/Source/core/layout/ScrollAnchor.cpp
[modify] https://crrev.com/ad2fe04892fed522eb67cd054f8696a5cfb1ba3f/third_party/WebKit/Source/core/paint/PaintLayerScrollableArea.cpp
[modify] https://crrev.com/ad2fe04892fed522eb67cd054f8696a5cfb1ba3f/third_party/WebKit/Source/core/style/ComputedStyle.h
[modify] https://crrev.com/ad2fe04892fed522eb67cd054f8696a5cfb1ba3f/third_party/WebKit/Source/core/style/ComputedStyleConstants.h

Project Member Comment 50 by bugdroid1@chromium.org, Dec 14
Project Member Comment 51 by bugdroid1@chromium.org, Dec 14
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/5fb8c41aea7e2a5a7ec8f33a3c6bee46eb86d95d

commit 5fb8c41aea7e2a5a7ec8f33a3c6bee46eb86d95d
Author: sashab <sashab@chromium.org>
Date: Wed Dec 14 06:23:45 2016

Change ComputedStyle::setWritingMode() to return void instead of bool

Change ComputedStyle::setWritingMode() to return void instead of bool,
and updated the 2 callsites that use this functionality to match.

There is overhead from checking whether writingMode has changed and
returning instead of setting the value, and this patch removes that
overhead for callers that don't need this functionality.

Also, this is pre-work to generating writing-mode in ComputedStyleBase,
which aims to make all properties regular and share the same getter and
setter patterns where possible.

BUG=628043

Review-Url: https://codereview.chromium.org/2567963002
Cr-Commit-Position: refs/heads/master@{#438448}

[modify] https://crrev.com/5fb8c41aea7e2a5a7ec8f33a3c6bee46eb86d95d/third_party/WebKit/Source/core/css/resolver/StyleResolverState.h
[modify] https://crrev.com/5fb8c41aea7e2a5a7ec8f33a3c6bee46eb86d95d/third_party/WebKit/Source/core/layout/LayoutObject.cpp
[modify] https://crrev.com/5fb8c41aea7e2a5a7ec8f33a3c6bee46eb86d95d/third_party/WebKit/Source/core/style/ComputedStyle.h

Project Member Comment 52 by bugdroid1@chromium.org, Dec 14
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/604db4a0dc2613b803899d22ccfe76ed262c6207

commit 604db4a0dc2613b803899d22ccfe76ed262c6207
Author: napper <napper@chromium.org>
Date: Wed Dec 14 07:53:20 2016

Move the inherited property pointer-events and its enum, EPointerEvents,
to be generated in ComputedStyleBase. Also removed the explicit value
setters for EPointerEvents, and the now empty compareEqualIndependent()
method.

BUG=628043

Review-Url: https://codereview.chromium.org/2563753003
Cr-Commit-Position: refs/heads/master@{#438457}

[modify] https://crrev.com/604db4a0dc2613b803899d22ccfe76ed262c6207/third_party/WebKit/Source/core/css/CSSProperties.in
[modify] https://crrev.com/604db4a0dc2613b803899d22ccfe76ed262c6207/third_party/WebKit/Source/core/style/ComputedStyle.cpp
[modify] https://crrev.com/604db4a0dc2613b803899d22ccfe76ed262c6207/third_party/WebKit/Source/core/style/ComputedStyle.h
[modify] https://crrev.com/604db4a0dc2613b803899d22ccfe76ed262c6207/third_party/WebKit/Source/core/style/ComputedStyleConstants.h

Project Member Comment 53 by bugdroid1@chromium.org, Dec 14
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/c72f1a22b9c407f6e1132fe43682b15e2de221fe

commit c72f1a22b9c407f6e1132fe43682b15e2de221fe
Author: sashab <sashab@chromium.org>
Date: Wed Dec 14 07:54:35 2016

Changed EOverflow to an enum class and renamed its members

Changed EOverflow to an enum class and gave it an unsigned underlying
type.

Changing it to an enum class enforces better namespacing and code
practices. Adding the unsigned underlying type is pre-work for when the
class is eventually stored as an enum bitfield (it would be done in this
patch, except a presubmit warning already exists that prevents that. The
presubmit warning needs to be updated before that change can occur.)

This is also pre-work to move EOverflow to be generated in
ComputedStyleBase.

BUG=628043
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2

Review-Url: https://codereview.chromium.org/2569013006
Cr-Commit-Position: refs/heads/master@{#438458}

[modify] https://crrev.com/c72f1a22b9c407f6e1132fe43682b15e2de221fe/third_party/WebKit/Source/core/css/CSSPrimitiveValueMappings.h
[modify] https://crrev.com/c72f1a22b9c407f6e1132fe43682b15e2de221fe/third_party/WebKit/Source/core/css/resolver/StyleAdjuster.cpp
[modify] https://crrev.com/c72f1a22b9c407f6e1132fe43682b15e2de221fe/third_party/WebKit/Source/core/dom/Document.cpp
[modify] https://crrev.com/c72f1a22b9c407f6e1132fe43682b15e2de221fe/third_party/WebKit/Source/core/editing/commands/EditorCommand.cpp
[modify] https://crrev.com/c72f1a22b9c407f6e1132fe43682b15e2de221fe/third_party/WebKit/Source/core/frame/FrameView.cpp
[modify] https://crrev.com/c72f1a22b9c407f6e1132fe43682b15e2de221fe/third_party/WebKit/Source/core/layout/LayoutBox.cpp
[modify] https://crrev.com/c72f1a22b9c407f6e1132fe43682b15e2de221fe/third_party/WebKit/Source/core/layout/LayoutBox.h
[modify] https://crrev.com/c72f1a22b9c407f6e1132fe43682b15e2de221fe/third_party/WebKit/Source/core/layout/LayoutFlexibleBox.cpp
[modify] https://crrev.com/c72f1a22b9c407f6e1132fe43682b15e2de221fe/third_party/WebKit/Source/core/layout/LayoutGrid.cpp
[modify] https://crrev.com/c72f1a22b9c407f6e1132fe43682b15e2de221fe/third_party/WebKit/Source/core/layout/LayoutTableSection.cpp
[modify] https://crrev.com/c72f1a22b9c407f6e1132fe43682b15e2de221fe/third_party/WebKit/Source/core/layout/LayoutTextControl.cpp
[modify] https://crrev.com/c72f1a22b9c407f6e1132fe43682b15e2de221fe/third_party/WebKit/Source/core/layout/LayoutTextControlSingleLine.cpp
[modify] https://crrev.com/c72f1a22b9c407f6e1132fe43682b15e2de221fe/third_party/WebKit/Source/core/layout/TextAutosizer.cpp
[modify] https://crrev.com/c72f1a22b9c407f6e1132fe43682b15e2de221fe/third_party/WebKit/Source/core/layout/ng/ng_constraint_space.cc
[modify] https://crrev.com/c72f1a22b9c407f6e1132fe43682b15e2de221fe/third_party/WebKit/Source/core/layout/svg/LayoutSVGRoot.cpp
[modify] https://crrev.com/c72f1a22b9c407f6e1132fe43682b15e2de221fe/third_party/WebKit/Source/core/layout/svg/SVGLayoutSupport.cpp
[modify] https://crrev.com/c72f1a22b9c407f6e1132fe43682b15e2de221fe/third_party/WebKit/Source/core/page/SpatialNavigation.cpp
[modify] https://crrev.com/c72f1a22b9c407f6e1132fe43682b15e2de221fe/third_party/WebKit/Source/core/paint/PaintLayerScrollableArea.cpp
[modify] https://crrev.com/c72f1a22b9c407f6e1132fe43682b15e2de221fe/third_party/WebKit/Source/core/style/ComputedStyle.h
[modify] https://crrev.com/c72f1a22b9c407f6e1132fe43682b15e2de221fe/third_party/WebKit/Source/core/style/ComputedStyleConstants.h
[modify] https://crrev.com/c72f1a22b9c407f6e1132fe43682b15e2de221fe/third_party/WebKit/Source/core/style/ComputedStyleTest.cpp

Project Member Comment 54 by bugdroid1@chromium.org, Dec 15
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/52fa8397a15c91bf315303370bbffcf05f807f8d

commit 52fa8397a15c91bf315303370bbffcf05f807f8d
Author: napper <napper@chromium.org>
Date: Thu Dec 15 03:11:54 2016

Moved -webkit-print-color-adjust property to be generated.

Moved -webkit-print-color-adjust property to be generated, so now the
getter/setter methods for print-color-adjust are generated. This means that
getPrintColorAdjust() has been renamed to printColorAdjust(). Also renamed
PrintColorAdjust enum to EPrintColorAdjust for consistency with other
generated enums.

BUG=628043
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2

Review-Url: https://codereview.chromium.org/2570463002
Cr-Commit-Position: refs/heads/master@{#438723}

[modify] https://crrev.com/52fa8397a15c91bf315303370bbffcf05f807f8d/third_party/WebKit/Source/core/css/CSSPrimitiveValueMappings.h
[modify] https://crrev.com/52fa8397a15c91bf315303370bbffcf05f807f8d/third_party/WebKit/Source/core/css/CSSProperties.in
[modify] https://crrev.com/52fa8397a15c91bf315303370bbffcf05f807f8d/third_party/WebKit/Source/core/css/ComputedStyleCSSValueMapping.cpp
[modify] https://crrev.com/52fa8397a15c91bf315303370bbffcf05f807f8d/third_party/WebKit/Source/core/paint/BoxPainter.cpp
[modify] https://crrev.com/52fa8397a15c91bf315303370bbffcf05f807f8d/third_party/WebKit/Source/core/style/ComputedStyle.cpp
[modify] https://crrev.com/52fa8397a15c91bf315303370bbffcf05f807f8d/third_party/WebKit/Source/core/style/ComputedStyle.h
[modify] https://crrev.com/52fa8397a15c91bf315303370bbffcf05f807f8d/third_party/WebKit/Source/core/style/ComputedStyleConstants.h

Project Member Comment 55 by bugdroid1@chromium.org, Dec 15
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/1198e2d38d4f0d66852a11c6f2453fe067de3296

commit 1198e2d38d4f0d66852a11c6f2453fe067de3296
Author: sashab <sashab@chromium.org>
Date: Thu Dec 15 04:47:48 2016

Made -webkit-box-direction property independent.

Made -webkit-box-direction property independent. Also updated
independent-inheritance-fast-path.html to include webkitBoxDirection.

Also updated make_computed_style_base.py to use 'name_for_methods'
instead of 'upper_camel_name' so that Webkit is removed from the front
of the name when generating method names.

Tested using independent-inheritance-fast-path.html.

BUG=628043

Review-Url: https://codereview.chromium.org/2574063002
Cr-Commit-Position: refs/heads/master@{#438746}

[modify] https://crrev.com/1198e2d38d4f0d66852a11c6f2453fe067de3296/third_party/WebKit/LayoutTests/fast/css/invalidation/independent-inheritance-fast-path.html
[modify] https://crrev.com/1198e2d38d4f0d66852a11c6f2453fe067de3296/third_party/WebKit/Source/build/scripts/make_computed_style_base.py
[modify] https://crrev.com/1198e2d38d4f0d66852a11c6f2453fe067de3296/third_party/WebKit/Source/core/css/CSSProperties.in

Project Member Comment 56 by bugdroid1@chromium.org, Dec 15
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/8b4b629e3b72663debb34643c16f4b32787bbfdf

commit 8b4b629e3b72663debb34643c16f4b32787bbfdf
Author: napper <napper@chromium.org>
Date: Thu Dec 15 08:10:10 2016

Moved text-align to be generated in ComputedStyleBase.

Move the inherited property text-align and its enum, ETextAlign,
to be generated in ComputedStyleBase. Also moved getter / setter /
initial value methods to be generated in ComputedStyleBase.

BUG=628043

Review-Url: https://codereview.chromium.org/2577973002
Cr-Commit-Position: refs/heads/master@{#438781}

[modify] https://crrev.com/8b4b629e3b72663debb34643c16f4b32787bbfdf/third_party/WebKit/Source/core/css/CSSProperties.in
[modify] https://crrev.com/8b4b629e3b72663debb34643c16f4b32787bbfdf/third_party/WebKit/Source/core/style/ComputedStyle.cpp
[modify] https://crrev.com/8b4b629e3b72663debb34643c16f4b32787bbfdf/third_party/WebKit/Source/core/style/ComputedStyle.h
[modify] https://crrev.com/8b4b629e3b72663debb34643c16f4b32787bbfdf/third_party/WebKit/Source/core/style/ComputedStyleConstants.h

Project Member Comment 57 by bugdroid1@chromium.org, Dec 15
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/e316115a42ac56384c89562cd1923014a850290b

commit e316115a42ac56384c89562cd1923014a850290b
Author: napper <napper@chromium.org>
Date: Thu Dec 15 09:59:14 2016

Made -webkit-print-color-adjust property independent.

Made -webkit-print-color-adjust property independent. Also updated
independent-inheritance-fast-path.html to include webkitPrintColorAdjust.
Also minor cleanup of make_computed_style_base.py, including removing a
redundant if and assignment to property_name.

Tested using independent-inheritance-fast-path.html.

BUG=628043

Review-Url: https://codereview.chromium.org/2578903002
Cr-Commit-Position: refs/heads/master@{#438797}

[modify] https://crrev.com/e316115a42ac56384c89562cd1923014a850290b/third_party/WebKit/LayoutTests/fast/css/invalidation/independent-inheritance-fast-path.html
[modify] https://crrev.com/e316115a42ac56384c89562cd1923014a850290b/third_party/WebKit/Source/build/scripts/make_computed_style_base.py
[modify] https://crrev.com/e316115a42ac56384c89562cd1923014a850290b/third_party/WebKit/Source/core/css/CSSProperties.in

Project Member Comment 58 by bugdroid1@chromium.org, Dec 21
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/2f0c2019085dfcf95005bb54b9eb483893e8cb1d

commit 2f0c2019085dfcf95005bb54b9eb483893e8cb1d
Author: sashab <sashab@chromium.org>
Date: Wed Dec 21 04:12:14 2016

Changed EVerticalAlign to an enum class and renamed its members

Changed EVerticalAlign to an enum class and gave it an unsigned
underlying type.

Changing it to an enum class enforces better namespacing and code
practices. Adding the unsigned underlying type is pre-work for when the
class is eventually stored as an enum bitfield (it would be done in this
patch, except a presubmit warning already exists that prevents that. The
presubmit warning needs to be updated before that change can occur.)

This is also pre-work to move EVerticalAlign to be generated in
ComputedStyleBase.

BUG=628043

Review-Url: https://codereview.chromium.org/2578403002
Cr-Commit-Position: refs/heads/master@{#440009}

[modify] https://crrev.com/2f0c2019085dfcf95005bb54b9eb483893e8cb1d/third_party/WebKit/Source/core/animation/LengthPropertyFunctions.cpp
[modify] https://crrev.com/2f0c2019085dfcf95005bb54b9eb483893e8cb1d/third_party/WebKit/Source/core/animation/css/CSSAnimatableValueFactory.cpp
[modify] https://crrev.com/2f0c2019085dfcf95005bb54b9eb483893e8cb1d/third_party/WebKit/Source/core/css/CSSPrimitiveValueMappings.h
[modify] https://crrev.com/2f0c2019085dfcf95005bb54b9eb483893e8cb1d/third_party/WebKit/Source/core/css/CSSPropertyEquality.cpp
[modify] https://crrev.com/2f0c2019085dfcf95005bb54b9eb483893e8cb1d/third_party/WebKit/Source/core/css/ComputedStyleCSSValueMapping.cpp
[modify] https://crrev.com/2f0c2019085dfcf95005bb54b9eb483893e8cb1d/third_party/WebKit/Source/core/css/resolver/StyleBuilderCustom.cpp
[modify] https://crrev.com/2f0c2019085dfcf95005bb54b9eb483893e8cb1d/third_party/WebKit/Source/core/layout/LayoutInline.cpp
[modify] https://crrev.com/2f0c2019085dfcf95005bb54b9eb483893e8cb1d/third_party/WebKit/Source/core/layout/LayoutTableCell.cpp
[modify] https://crrev.com/2f0c2019085dfcf95005bb54b9eb483893e8cb1d/third_party/WebKit/Source/core/layout/LayoutTableCell.h
[modify] https://crrev.com/2f0c2019085dfcf95005bb54b9eb483893e8cb1d/third_party/WebKit/Source/core/layout/LayoutTableSection.cpp
[modify] https://crrev.com/2f0c2019085dfcf95005bb54b9eb483893e8cb1d/third_party/WebKit/Source/core/layout/line/InlineFlowBox.cpp
[modify] https://crrev.com/2f0c2019085dfcf95005bb54b9eb483893e8cb1d/third_party/WebKit/Source/core/layout/line/RootInlineBox.cpp
[modify] https://crrev.com/2f0c2019085dfcf95005bb54b9eb483893e8cb1d/third_party/WebKit/Source/core/style/ComputedStyle.h
[modify] https://crrev.com/2f0c2019085dfcf95005bb54b9eb483893e8cb1d/third_party/WebKit/Source/core/style/ComputedStyleConstants.h

Project Member Comment 59 by bugdroid1@chromium.org, Dec 21
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/6ed7bd96eb762abd8c2ea7821ee5ec9d5948a592

commit 6ed7bd96eb762abd8c2ea7821ee5ec9d5948a592
Author: sashab <sashab@chromium.org>
Date: Wed Dec 21 06:24:40 2016

Changed TextDirection to an enum class and renamed its members

Changed TextDirection to an enum class and gave it an unsigned
underlying type. Also renamed its members to use proper CamelCase
instead of all-caps.

Changing it to an enum class enforces better namespacing and code
practices. Adding the unsigned underlying type is pre-work for when the
class is eventually stored as an enum bitfield (it would be done in this
patch, except a presubmit warning already exists that prevents that. The
presubmit warning needs to be updated before that change can occur.)

Unlike the other enums in ComputedStyleBase, TextDirection will not be
generated. Instead, the enum from platform/ will be included and used.

This patch has no logic changes -- only renames, braces added to long
if-statements, static_casts to unsigned where the old enum type was
implicitly converted, and ASSERTs changed to DCHECKs.

BUG=628043
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2

Review-Url: https://codereview.chromium.org/2555923002
Cr-Commit-Position: refs/heads/master@{#440043}

[modify] https://crrev.com/6ed7bd96eb762abd8c2ea7821ee5ec9d5948a592/third_party/WebKit/Source/core/css/CSSPrimitiveValueMappings.h
[modify] https://crrev.com/6ed7bd96eb762abd8c2ea7821ee5ec9d5948a592/third_party/WebKit/Source/core/css/CSSProperty.cpp
[modify] https://crrev.com/6ed7bd96eb762abd8c2ea7821ee5ec9d5948a592/third_party/WebKit/Source/core/css/resolver/StyleResolver.cpp
[modify] https://crrev.com/6ed7bd96eb762abd8c2ea7821ee5ec9d5948a592/third_party/WebKit/Source/core/editing/EditingUtilities.cpp
[modify] https://crrev.com/6ed7bd96eb762abd8c2ea7821ee5ec9d5948a592/third_party/WebKit/Source/core/editing/EditingUtilitiesTest.cpp
[modify] https://crrev.com/6ed7bd96eb762abd8c2ea7821ee5ec9d5948a592/third_party/WebKit/Source/core/editing/SelectionModifier.cpp
[modify] https://crrev.com/6ed7bd96eb762abd8c2ea7821ee5ec9d5948a592/third_party/WebKit/Source/core/editing/VisibleUnits.cpp
[modify] https://crrev.com/6ed7bd96eb762abd8c2ea7821ee5ec9d5948a592/third_party/WebKit/Source/core/frame/FrameView.cpp
[modify] https://crrev.com/6ed7bd96eb762abd8c2ea7821ee5ec9d5948a592/third_party/WebKit/Source/core/html/HTMLElement.cpp
[modify] https://crrev.com/6ed7bd96eb762abd8c2ea7821ee5ec9d5948a592/third_party/WebKit/Source/core/html/HTMLFormControlElement.cpp
[modify] https://crrev.com/6ed7bd96eb762abd8c2ea7821ee5ec9d5948a592/third_party/WebKit/Source/core/html/HTMLFormControlElementTest.cpp
[modify] https://crrev.com/6ed7bd96eb762abd8c2ea7821ee5ec9d5948a592/third_party/WebKit/Source/core/html/HTMLImageFallbackHelper.cpp
[modify] https://crrev.com/6ed7bd96eb762abd8c2ea7821ee5ec9d5948a592/third_party/WebKit/Source/core/html/HTMLInputElement.cpp
[modify] https://crrev.com/6ed7bd96eb762abd8c2ea7821ee5ec9d5948a592/third_party/WebKit/Source/core/html/TextControlElement.cpp
[modify] https://crrev.com/6ed7bd96eb762abd8c2ea7821ee5ec9d5948a592/third_party/WebKit/Source/core/html/forms/MultipleFieldsTemporalInputTypeView.cpp
[modify] https://crrev.com/6ed7bd96eb762abd8c2ea7821ee5ec9d5948a592/third_party/WebKit/Source/core/html/forms/RadioInputType.cpp
[modify] https://crrev.com/6ed7bd96eb762abd8c2ea7821ee5ec9d5948a592/third_party/WebKit/Source/core/html/forms/RangeInputType.cpp
[modify] https://crrev.com/6ed7bd96eb762abd8c2ea7821ee5ec9d5948a592/third_party/WebKit/Source/core/html/shadow/TextControlInnerElements.cpp
[modify] https://crrev.com/6ed7bd96eb762abd8c2ea7821ee5ec9d5948a592/third_party/WebKit/Source/core/html/track/vtt/VTTCue.cpp
[modify] https://crrev.com/6ed7bd96eb762abd8c2ea7821ee5ec9d5948a592/third_party/WebKit/Source/core/layout/HitTestResult.cpp
[modify] https://crrev.com/6ed7bd96eb762abd8c2ea7821ee5ec9d5948a592/third_party/WebKit/Source/core/layout/LayoutBlockFlowLine.cpp
[modify] https://crrev.com/6ed7bd96eb762abd8c2ea7821ee5ec9d5948a592/third_party/WebKit/Source/core/layout/LayoutBox.cpp
[modify] https://crrev.com/6ed7bd96eb762abd8c2ea7821ee5ec9d5948a592/third_party/WebKit/Source/core/layout/LayoutDeprecatedFlexibleBox.cpp
[modify] https://crrev.com/6ed7bd96eb762abd8c2ea7821ee5ec9d5948a592/third_party/WebKit/Source/core/layout/LayoutFlexibleBox.cpp
[modify] https://crrev.com/6ed7bd96eb762abd8c2ea7821ee5ec9d5948a592/third_party/WebKit/Source/core/layout/LayoutMenuList.cpp
[modify] https://crrev.com/6ed7bd96eb762abd8c2ea7821ee5ec9d5948a592/third_party/WebKit/Source/core/layout/LayoutReplaced.cpp
[modify] https://crrev.com/6ed7bd96eb762abd8c2ea7821ee5ec9d5948a592/third_party/WebKit/Source/core/layout/LayoutSliderContainer.cpp
[modify] https://crrev.com/6ed7bd96eb762abd8c2ea7821ee5ec9d5948a592/third_party/WebKit/Source/core/layout/LayoutText.cpp
[modify] https://crrev.com/6ed7bd96eb762abd8c2ea7821ee5ec9d5948a592/third_party/WebKit/Source/core/layout/LayoutTextTest.cpp
[modify] https://crrev.com/6ed7bd96eb762abd8c2ea7821ee5ec9d5948a592/third_party/WebKit/Source/core/layout/LayoutThemeMac.mm
[modify] https://crrev.com/6ed7bd96eb762abd8c2ea7821ee5ec9d5948a592/third_party/WebKit/Source/core/layout/TextAutosizer.cpp
[modify] https://crrev.com/6ed7bd96eb762abd8c2ea7821ee5ec9d5948a592/third_party/WebKit/Source/core/layout/TextRunConstructor.cpp
[modify] https://crrev.com/6ed7bd96eb762abd8c2ea7821ee5ec9d5948a592/third_party/WebKit/Source/core/layout/line/AbstractInlineTextBox.cpp
[modify] https://crrev.com/6ed7bd96eb762abd8c2ea7821ee5ec9d5948a592/third_party/WebKit/Source/core/layout/line/BreakingContextInlineHeaders.h
[modify] https://crrev.com/6ed7bd96eb762abd8c2ea7821ee5ec9d5948a592/third_party/WebKit/Source/core/layout/line/InlineBox.h
[modify] https://crrev.com/6ed7bd96eb762abd8c2ea7821ee5ec9d5948a592/third_party/WebKit/Source/core/layout/line/InlineIterator.h
[modify] https://crrev.com/6ed7bd96eb762abd8c2ea7821ee5ec9d5948a592/third_party/WebKit/Source/core/layout/line/InlineTextBox.cpp
[modify] https://crrev.com/6ed7bd96eb762abd8c2ea7821ee5ec9d5948a592/third_party/WebKit/Source/core/layout/ng/ng_absolute_utils.cc
[modify] https://crrev.com/6ed7bd96eb762abd8c2ea7821ee5ec9d5948a592/third_party/WebKit/Source/core/layout/ng/ng_absolute_utils_test.cc
[modify] https://crrev.com/6ed7bd96eb762abd8c2ea7821ee5ec9d5948a592/third_party/WebKit/Source/core/layout/ng/ng_bidi_paragraph.cc
[modify] https://crrev.com/6ed7bd96eb762abd8c2ea7821ee5ec9d5948a592/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm_test.cc
[modify] https://crrev.com/6ed7bd96eb762abd8c2ea7821ee5ec9d5948a592/third_party/WebKit/Source/core/layout/ng/ng_constraint_space.cc
[modify] https://crrev.com/6ed7bd96eb762abd8c2ea7821ee5ec9d5948a592/third_party/WebKit/Source/core/layout/ng/ng_constraint_space_builder.cc
[modify] https://crrev.com/6ed7bd96eb762abd8c2ea7821ee5ec9d5948a592/third_party/WebKit/Source/core/layout/ng/ng_constraint_space_test.cc
[modify] https://crrev.com/6ed7bd96eb762abd8c2ea7821ee5ec9d5948a592/third_party/WebKit/Source/core/layout/ng/ng_fragment_base.h
[modify] https://crrev.com/6ed7bd96eb762abd8c2ea7821ee5ec9d5948a592/third_party/WebKit/Source/core/layout/ng/ng_fragment_builder.cc
[modify] https://crrev.com/6ed7bd96eb762abd8c2ea7821ee5ec9d5948a592/third_party/WebKit/Source/core/layout/ng/ng_inline_node.h
[modify] https://crrev.com/6ed7bd96eb762abd8c2ea7821ee5ec9d5948a592/third_party/WebKit/Source/core/layout/ng/ng_inline_node_test.cc
[modify] https://crrev.com/6ed7bd96eb762abd8c2ea7821ee5ec9d5948a592/third_party/WebKit/Source/core/layout/ng/ng_layout_inline_items_builder.cc
[modify] https://crrev.com/6ed7bd96eb762abd8c2ea7821ee5ec9d5948a592/third_party/WebKit/Source/core/layout/ng/ng_layout_inline_items_builder_test.cc
[modify] https://crrev.com/6ed7bd96eb762abd8c2ea7821ee5ec9d5948a592/third_party/WebKit/Source/core/layout/ng/ng_length_utils_test.cc
[modify] https://crrev.com/6ed7bd96eb762abd8c2ea7821ee5ec9d5948a592/third_party/WebKit/Source/core/layout/ng/ng_text_layout_algorithm.cc
[modify] https://crrev.com/6ed7bd96eb762abd8c2ea7821ee5ec9d5948a592/third_party/WebKit/Source/core/layout/ng/ng_units.cc
[modify] https://crrev.com/6ed7bd96eb762abd8c2ea7821ee5ec9d5948a592/third_party/WebKit/Source/core/layout/ng/ng_units_test.cc
[modify] https://crrev.com/6ed7bd96eb762abd8c2ea7821ee5ec9d5948a592/third_party/WebKit/Source/core/layout/svg/LayoutSVGInlineText.cpp
[modify] https://crrev.com/6ed7bd96eb762abd8c2ea7821ee5ec9d5948a592/third_party/WebKit/Source/core/page/ChromeClient.cpp
[modify] https://crrev.com/6ed7bd96eb762abd8c2ea7821ee5ec9d5948a592/third_party/WebKit/Source/core/paint/InlineFlowBoxPainter.cpp
[modify] https://crrev.com/6ed7bd96eb762abd8c2ea7821ee5ec9d5948a592/third_party/WebKit/Source/core/paint/InlineTextBoxPainter.cpp
[modify] https://crrev.com/6ed7bd96eb762abd8c2ea7821ee5ec9d5948a592/third_party/WebKit/Source/core/paint/ThemePainterDefault.cpp
[modify] https://crrev.com/6ed7bd96eb762abd8c2ea7821ee5ec9d5948a592/third_party/WebKit/Source/core/paint/ThemePainterMac.mm
[modify] https://crrev.com/6ed7bd96eb762abd8c2ea7821ee5ec9d5948a592/third_party/WebKit/Source/core/style/ComputedStyle.h
[modify] https://crrev.com/6ed7bd96eb762abd8c2ea7821ee5ec9d5948a592/third_party/WebKit/Source/core/testing/Internals.cpp
[modify] https://crrev.com/6ed7bd96eb762abd8c2ea7821ee5ec9d5948a592/third_party/WebKit/Source/modules/accessibility/AXLayoutObject.cpp
[modify] https://crrev.com/6ed7bd96eb762abd8c2ea7821ee5ec9d5948a592/third_party/WebKit/Source/modules/canvas2d/CanvasRenderingContext2D.cpp
[modify] https://crrev.com/6ed7bd96eb762abd8c2ea7821ee5ec9d5948a592/third_party/WebKit/Source/platform/DragImage.cpp
[modify] https://crrev.com/6ed7bd96eb762abd8c2ea7821ee5ec9d5948a592/third_party/WebKit/Source/platform/exported/WebTextRun.cpp
[modify] https://crrev.com/6ed7bd96eb762abd8c2ea7821ee5ec9d5948a592/third_party/WebKit/Source/platform/fonts/Font.cpp
[modify] https://crrev.com/6ed7bd96eb762abd8c2ea7821ee5ec9d5948a592/third_party/WebKit/Source/platform/fonts/shaping/CachingWordShaperTest.cpp
[modify] https://crrev.com/6ed7bd96eb762abd8c2ea7821ee5ec9d5948a592/third_party/WebKit/Source/platform/fonts/shaping/HarfBuzzShaper.cpp
[modify] https://crrev.com/6ed7bd96eb762abd8c2ea7821ee5ec9d5948a592/third_party/WebKit/Source/platform/fonts/shaping/HarfBuzzShaperTest.cpp
[modify] https://crrev.com/6ed7bd96eb762abd8c2ea7821ee5ec9d5948a592/third_party/WebKit/Source/platform/fonts/shaping/ShapeCache.h
[modify] https://crrev.com/6ed7bd96eb762abd8c2ea7821ee5ec9d5948a592/third_party/WebKit/Source/platform/fonts/shaping/ShapeResult.cpp
[modify] https://crrev.com/6ed7bd96eb762abd8c2ea7821ee5ec9d5948a592/third_party/WebKit/Source/platform/fonts/shaping/ShapeResult.h
[modify] https://crrev.com/6ed7bd96eb762abd8c2ea7821ee5ec9d5948a592/third_party/WebKit/Source/platform/fonts/shaping/ShapeResultBuffer.cpp
[modify] https://crrev.com/6ed7bd96eb762abd8c2ea7821ee5ec9d5948a592/third_party/WebKit/Source/platform/text/BidiCharacterRun.h
[modify] https://crrev.com/6ed7bd96eb762abd8c2ea7821ee5ec9d5948a592/third_party/WebKit/Source/platform/text/BidiResolver.h
[modify] https://crrev.com/6ed7bd96eb762abd8c2ea7821ee5ec9d5948a592/third_party/WebKit/Source/platform/text/BidiResolverTest.cpp
[modify] https://crrev.com/6ed7bd96eb762abd8c2ea7821ee5ec9d5948a592/third_party/WebKit/Source/platform/text/BidiTextRun.cpp
[modify] https://crrev.com/6ed7bd96eb762abd8c2ea7821ee5ec9d5948a592/third_party/WebKit/Source/platform/text/Character.cpp
[modify] https://crrev.com/6ed7bd96eb762abd8c2ea7821ee5ec9d5948a592/third_party/WebKit/Source/platform/text/TextDirection.h
[modify] https://crrev.com/6ed7bd96eb762abd8c2ea7821ee5ec9d5948a592/third_party/WebKit/Source/platform/text/TextRun.h
[modify] https://crrev.com/6ed7bd96eb762abd8c2ea7821ee5ec9d5948a592/third_party/WebKit/Source/web/ExternalPopupMenu.cpp
[modify] https://crrev.com/6ed7bd96eb762abd8c2ea7821ee5ec9d5948a592/third_party/WebKit/Source/web/PopupMenuImpl.cpp
[modify] https://crrev.com/6ed7bd96eb762abd8c2ea7821ee5ec9d5948a592/third_party/WebKit/public/web/WebTextDirection.h

Project Member Comment 60 by bugdroid1@chromium.org, Dec 22
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/a5b97bd742ab2fbf7946c15aef175fe72ffaebae

commit a5b97bd742ab2fbf7946c15aef175fe72ffaebae
Author: sashab <sashab@chromium.org>
Date: Thu Dec 22 02:39:19 2016

Replaced usages of WritingMode to use inline utility functions instead

Replaced simple usages of WritingMode to use inline utility functions
instead of the enums directly. This is preparing to rename the values of
WritingMode to match the writing-mode keywords, which are less self-
documenting.

BUG=628043

Review-Url: https://codereview.chromium.org/2595833002
Cr-Commit-Position: refs/heads/master@{#440317}

[modify] https://crrev.com/a5b97bd742ab2fbf7946c15aef175fe72ffaebae/third_party/WebKit/Source/core/css/CSSProperty.cpp
[modify] https://crrev.com/a5b97bd742ab2fbf7946c15aef175fe72ffaebae/third_party/WebKit/Source/core/layout/LayoutBox.cpp
[modify] https://crrev.com/a5b97bd742ab2fbf7946c15aef175fe72ffaebae/third_party/WebKit/Source/core/layout/LayoutFlexibleBox.cpp
[modify] https://crrev.com/a5b97bd742ab2fbf7946c15aef175fe72ffaebae/third_party/WebKit/Source/core/layout/LayoutTableCell.cpp
[modify] https://crrev.com/a5b97bd742ab2fbf7946c15aef175fe72ffaebae/third_party/WebKit/Source/core/layout/LayoutVTTCue.cpp

Project Member Comment 61 by bugdroid1@chromium.org, Dec 22
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/983b113dc5903d650ca0804e35caffb79f003d0e

commit 983b113dc5903d650ca0804e35caffb79f003d0e
Author: sashab <sashab@chromium.org>
Date: Thu Dec 22 05:04:31 2016

Changed WritingMode to an enum class and renamed its members

Changed WritingMode to an enum class and gave it an unsigned underlying
type. Also renamed its members to match the CSS keywords they
represent (although these names are not as self-documenting as they
were previously, so pre-work in crrev.com/2595833002 replaced as many
callsites as possible with helper functions with more descriptive
names).

Changing it to an enum class enforces better namespacing and code
practices. Adding the unsigned underlying type is pre-work for when the
class is eventually stored as an enum bitfield (it would be done in this
patch, except a presubmit warning already exists that prevents that. The
presubmit warning needs to be updated before that change can occur.)

This is also pre-work to allow WritingMode to be used by generated
fields in ComputedStyleBase.

BUG=628043

Review-Url: https://codereview.chromium.org/2591373003
Cr-Commit-Position: refs/heads/master@{#440343}

[modify] https://crrev.com/983b113dc5903d650ca0804e35caffb79f003d0e/third_party/WebKit/Source/core/css/CSSPrimitiveValueMappings.h
[modify] https://crrev.com/983b113dc5903d650ca0804e35caffb79f003d0e/third_party/WebKit/Source/core/css/resolver/StyleAdjuster.cpp
[modify] https://crrev.com/983b113dc5903d650ca0804e35caffb79f003d0e/third_party/WebKit/Source/core/layout/LayoutDetailsMarker.cpp
[modify] https://crrev.com/983b113dc5903d650ca0804e35caffb79f003d0e/third_party/WebKit/Source/core/layout/LayoutFlexibleBox.cpp
[modify] https://crrev.com/983b113dc5903d650ca0804e35caffb79f003d0e/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm_test.cc
[modify] https://crrev.com/983b113dc5903d650ca0804e35caffb79f003d0e/third_party/WebKit/Source/core/layout/ng/ng_length_utils_test.cc
[modify] https://crrev.com/983b113dc5903d650ca0804e35caffb79f003d0e/third_party/WebKit/Source/core/layout/ng/ng_writing_mode.cc
[modify] https://crrev.com/983b113dc5903d650ca0804e35caffb79f003d0e/third_party/WebKit/Source/core/layout/shapes/BoxShapeTest.cpp
[modify] https://crrev.com/983b113dc5903d650ca0804e35caffb79f003d0e/third_party/WebKit/Source/core/layout/shapes/ShapeOutsideInfo.cpp
[modify] https://crrev.com/983b113dc5903d650ca0804e35caffb79f003d0e/third_party/WebKit/Source/core/style/ComputedStyle.cpp
[modify] https://crrev.com/983b113dc5903d650ca0804e35caffb79f003d0e/third_party/WebKit/Source/core/style/ComputedStyle.h
[modify] https://crrev.com/983b113dc5903d650ca0804e35caffb79f003d0e/third_party/WebKit/Source/platform/LengthBox.cpp
[modify] https://crrev.com/983b113dc5903d650ca0804e35caffb79f003d0e/third_party/WebKit/Source/platform/geometry/LayoutRectOutsets.cpp
[modify] https://crrev.com/983b113dc5903d650ca0804e35caffb79f003d0e/third_party/WebKit/Source/platform/geometry/LayoutRectOutsetsTest.cpp
[modify] https://crrev.com/983b113dc5903d650ca0804e35caffb79f003d0e/third_party/WebKit/Source/platform/text/WritingMode.h

Project Member Comment 62 by bugdroid1@chromium.org, Jan 3
Project Member Comment 63 by bugdroid1@chromium.org, Jan 4
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/45275e78b2a5100be570bb8ca1e79989b9db00ff

commit 45275e78b2a5100be570bb8ca1e79989b9db00ff
Author: sashab <sashab@chromium.org>
Date: Wed Jan 04 00:52:49 2017

Generated writing-mode in ComputedStyleBase

Moved writing-mode to be generated in ComputedStyleBase, which uses the
external type platform/text/WritingMode. Also added functionality to
add 'get' to the front of getters that have names that will conflict
with type names once the Blink rename has happened (and all methods
start with a capital letter).

BUG=628043

Review-Url: https://codereview.chromium.org/2609133002
Cr-Commit-Position: refs/heads/master@{#441271}

[modify] https://crrev.com/45275e78b2a5100be570bb8ca1e79989b9db00ff/third_party/WebKit/Source/build/scripts/make_computed_style_base.py
[modify] https://crrev.com/45275e78b2a5100be570bb8ca1e79989b9db00ff/third_party/WebKit/Source/core/css/CSSProperties.in
[modify] https://crrev.com/45275e78b2a5100be570bb8ca1e79989b9db00ff/third_party/WebKit/Source/core/style/ComputedStyle.cpp
[modify] https://crrev.com/45275e78b2a5100be570bb8ca1e79989b9db00ff/third_party/WebKit/Source/core/style/ComputedStyle.h

Project Member Comment 64 by bugdroid1@chromium.org, Jan 5
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/b319a2f99e630380875c015a50fd20d5dd41ac3a

commit b319a2f99e630380875c015a50fd20d5dd41ac3a
Author: sashab <sashab@chromium.org>
Date: Thu Jan 05 06:01:20 2017

Improved bitfield packing behavior in ComputedStyleBase

Improved bitfield packing behavior in ComputedStyleBase to greedily
group fields into buckets of 32 bits, and place those fields adjacently.
This prevents against padding bits added from the naive implementation
of just sorting the fields in decreasing order of size.

Also added an ASSERT_SIZE to ComputedStyleBase to ensure this packing
has produced the optimal solution.

BUG=628043

Review-Url: https://codereview.chromium.org/2611633003
Cr-Commit-Position: refs/heads/master@{#441594}

[modify] https://crrev.com/b319a2f99e630380875c015a50fd20d5dd41ac3a/third_party/WebKit/Source/build/scripts/make_computed_style_base.py
[modify] https://crrev.com/b319a2f99e630380875c015a50fd20d5dd41ac3a/third_party/WebKit/Source/build/scripts/templates/ComputedStyleBase.cpp.tmpl

Project Member Comment 65 by bugdroid1@chromium.org, Jan 10
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/d8b62ea53246ab528786b9a8d312d0a3733e46e9

commit d8b62ea53246ab528786b9a8d312d0a3733e46e9
Author: napper <napper@chromium.org>
Date: Tue Jan 10 05:43:57 2017

Made text-align property independent.

Made text-align property independent. Also updated
independent-inheritance-fast-path.html to include textAlign.

Tested using independent-inheritance-fast-path.html.

BUG=628043

Review-Url: https://codereview.chromium.org/2628503002
Cr-Commit-Position: refs/heads/master@{#442500}

[modify] https://crrev.com/d8b62ea53246ab528786b9a8d312d0a3733e46e9/third_party/WebKit/LayoutTests/fast/css/invalidation/independent-inheritance-fast-path.html
[modify] https://crrev.com/d8b62ea53246ab528786b9a8d312d0a3733e46e9/third_party/WebKit/Source/core/css/CSSProperties.in

Project Member Comment 66 by bugdroid1@chromium.org, Jan 10
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/eb5e40651ca7d137d9b4840a61ce050b5ac04f12

commit eb5e40651ca7d137d9b4840a61ce050b5ac04f12
Author: sashab <sashab@chromium.org>
Date: Tue Jan 10 06:15:10 2017

Removed ComputedStyle::inheritUnicodeBidiFrom

Removed ComputedStyle::inheritUnicodeBidiFrom, which only had one
callsite in ComputedStyle.cpp, and replaced the callsite with the
method's implementation.

BUG=628043

Review-Url: https://codereview.chromium.org/2624703002
Cr-Commit-Position: refs/heads/master@{#442514}

[modify] https://crrev.com/eb5e40651ca7d137d9b4840a61ce050b5ac04f12/third_party/WebKit/Source/core/style/ComputedStyle.cpp
[modify] https://crrev.com/eb5e40651ca7d137d9b4840a61ce050b5ac04f12/third_party/WebKit/Source/core/style/ComputedStyle.h

Project Member Comment 67 by bugdroid1@chromium.org, Jan 10
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/7be243c1bc4d31b76d2ce7ea120057c9f5e662bd

commit 7be243c1bc4d31b76d2ce7ea120057c9f5e662bd
Author: napper <napper@chromium.org>
Date: Tue Jan 10 08:02:47 2017

Made text-transform property independent.

Made text-transform property independent. Also updated
independent-inheritance-fast-path.html to include textTransform.

Tested using independent-inheritance-fast-path.html.

BUG=628043

Review-Url: https://codereview.chromium.org/2619813004
Cr-Commit-Position: refs/heads/master@{#442530}

[modify] https://crrev.com/7be243c1bc4d31b76d2ce7ea120057c9f5e662bd/third_party/WebKit/LayoutTests/fast/css/invalidation/independent-inheritance-fast-path.html
[modify] https://crrev.com/7be243c1bc4d31b76d2ce7ea120057c9f5e662bd/third_party/WebKit/Source/core/css/CSSProperties.in

Project Member Comment 68 by bugdroid1@chromium.org, Jan 10
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/fba6c12e687130b2c3fe4d812d51e52592e701e1

commit fba6c12e687130b2c3fe4d812d51e52592e701e1
Author: napper <napper@chromium.org>
Date: Tue Jan 10 19:37:36 2017

Moved -webkit-rtl-ordering to be generated in ComputedStyleBase.

Move the inherited property -webkit-rtl-ordering and its enum, EOrder,
to be generated in ComputedStyleBase, and updated enum values to the
new k-prefix style. Also moved getter / setter /
initial value methods to be generated in ComputedStyleBase, and changed
the naming from RTLOrdering to RtlOrdering to be consistent with the
naming of other methods.

BUG=628043

Review-Url: https://codereview.chromium.org/2622623003
Cr-Commit-Position: refs/heads/master@{#442659}

[modify] https://crrev.com/fba6c12e687130b2c3fe4d812d51e52592e701e1/third_party/WebKit/Source/core/css/CSSPrimitiveValueMappings.h
[modify] https://crrev.com/fba6c12e687130b2c3fe4d812d51e52592e701e1/third_party/WebKit/Source/core/css/CSSProperties.in
[modify] https://crrev.com/fba6c12e687130b2c3fe4d812d51e52592e701e1/third_party/WebKit/Source/core/css/ComputedStyleCSSValueMapping.cpp
[modify] https://crrev.com/fba6c12e687130b2c3fe4d812d51e52592e701e1/third_party/WebKit/Source/core/css/resolver/StyleResolver.cpp
[modify] https://crrev.com/fba6c12e687130b2c3fe4d812d51e52592e701e1/third_party/WebKit/Source/core/dom/Document.cpp
[modify] https://crrev.com/fba6c12e687130b2c3fe4d812d51e52592e701e1/third_party/WebKit/Source/core/layout/LayoutBlockFlowLine.cpp
[modify] https://crrev.com/fba6c12e687130b2c3fe4d812d51e52592e701e1/third_party/WebKit/Source/core/layout/TextRunConstructor.cpp
[modify] https://crrev.com/fba6c12e687130b2c3fe4d812d51e52592e701e1/third_party/WebKit/Source/core/layout/line/InlineFlowBox.cpp
[modify] https://crrev.com/fba6c12e687130b2c3fe4d812d51e52592e701e1/third_party/WebKit/Source/core/layout/line/InlineIterator.h
[modify] https://crrev.com/fba6c12e687130b2c3fe4d812d51e52592e701e1/third_party/WebKit/Source/core/layout/line/InlineTextBox.cpp
[modify] https://crrev.com/fba6c12e687130b2c3fe4d812d51e52592e701e1/third_party/WebKit/Source/core/layout/svg/line/SVGInlineTextBox.cpp
[modify] https://crrev.com/fba6c12e687130b2c3fe4d812d51e52592e701e1/third_party/WebKit/Source/core/style/ComputedStyle.cpp
[modify] https://crrev.com/fba6c12e687130b2c3fe4d812d51e52592e701e1/third_party/WebKit/Source/core/style/ComputedStyle.h
[modify] https://crrev.com/fba6c12e687130b2c3fe4d812d51e52592e701e1/third_party/WebKit/Source/core/style/ComputedStyleConstants.h

Project Member Comment 69 by bugdroid1@chromium.org, Jan 11
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/a22b359aaf415967f333e0a24adcf422e40a4024

commit a22b359aaf415967f333e0a24adcf422e40a4024
Author: napper <napper@chromium.org>
Date: Wed Jan 11 05:19:18 2017

Made -webkit-rtl-ordering property independent.

Made -webkit-rtl-ordering property independent. Also updated
independent-inheritance-fast-path.html to include webkitRtlOrdering.

Tested using independent-inheritance-fast-path.html.

BUG=628043

Review-Url: https://codereview.chromium.org/2626893002
Cr-Commit-Position: refs/heads/master@{#442808}

[modify] https://crrev.com/a22b359aaf415967f333e0a24adcf422e40a4024/third_party/WebKit/LayoutTests/fast/css/invalidation/independent-inheritance-fast-path.html
[modify] https://crrev.com/a22b359aaf415967f333e0a24adcf422e40a4024/third_party/WebKit/Source/core/css/CSSProperties.in

Project Member Comment 70 by bugdroid1@chromium.org, Jan 11
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/bcbe36cce42ae13bee7b03a6e037237676959935

commit bcbe36cce42ae13bee7b03a6e037237676959935
Author: sashab <sashab@chromium.org>
Date: Wed Jan 11 23:08:00 2017

Renamed EUnicodeBidi to just UnicodeBidi

Renamed EUnicodeBidi to just UnicodeBidi to match the name of the file,
UnicodeBidi.h. This is pre-work to allow UnicodeBidi to be used by
generated fields in ComputedStyleBase, and also better matches the
style guidelines (class names should have the same name as the file).

BUG=628043

Review-Url: https://codereview.chromium.org/2620873002
Cr-Commit-Position: refs/heads/master@{#443041}

[modify] https://crrev.com/bcbe36cce42ae13bee7b03a6e037237676959935/third_party/WebKit/Source/core/css/CSSPrimitiveValueMappings.h
[modify] https://crrev.com/bcbe36cce42ae13bee7b03a6e037237676959935/third_party/WebKit/Source/core/css/CSSProperties.in
[modify] https://crrev.com/bcbe36cce42ae13bee7b03a6e037237676959935/third_party/WebKit/Source/core/css/ComputedStyleCSSValueMapping.cpp
[modify] https://crrev.com/bcbe36cce42ae13bee7b03a6e037237676959935/third_party/WebKit/Source/core/editing/VisibleUnits.cpp
[modify] https://crrev.com/bcbe36cce42ae13bee7b03a6e037237676959935/third_party/WebKit/Source/core/layout/BidiRunForLine.cpp
[modify] https://crrev.com/bcbe36cce42ae13bee7b03a6e037237676959935/third_party/WebKit/Source/core/layout/LayoutBlockFlowLine.cpp
[modify] https://crrev.com/bcbe36cce42ae13bee7b03a6e037237676959935/third_party/WebKit/Source/core/layout/LayoutMenuList.cpp
[modify] https://crrev.com/bcbe36cce42ae13bee7b03a6e037237676959935/third_party/WebKit/Source/core/layout/LayoutText.cpp
[modify] https://crrev.com/bcbe36cce42ae13bee7b03a6e037237676959935/third_party/WebKit/Source/core/layout/LayoutTextControl.cpp
[modify] https://crrev.com/bcbe36cce42ae13bee7b03a6e037237676959935/third_party/WebKit/Source/core/layout/TextRunConstructor.cpp
[modify] https://crrev.com/bcbe36cce42ae13bee7b03a6e037237676959935/third_party/WebKit/Source/core/layout/line/InlineIterator.h
[modify] https://crrev.com/bcbe36cce42ae13bee7b03a6e037237676959935/third_party/WebKit/Source/core/layout/ng/ng_bidi_paragraph.cc
[modify] https://crrev.com/bcbe36cce42ae13bee7b03a6e037237676959935/third_party/WebKit/Source/core/layout/ng/ng_layout_inline_items_builder.cc
[modify] https://crrev.com/bcbe36cce42ae13bee7b03a6e037237676959935/third_party/WebKit/Source/core/layout/ng/ng_layout_inline_items_builder_test.cc
[modify] https://crrev.com/bcbe36cce42ae13bee7b03a6e037237676959935/third_party/WebKit/Source/core/layout/svg/LayoutSVGInlineText.cpp
[modify] https://crrev.com/bcbe36cce42ae13bee7b03a6e037237676959935/third_party/WebKit/Source/core/style/ComputedStyle.cpp
[modify] https://crrev.com/bcbe36cce42ae13bee7b03a6e037237676959935/third_party/WebKit/Source/core/style/ComputedStyle.h
[modify] https://crrev.com/bcbe36cce42ae13bee7b03a6e037237676959935/third_party/WebKit/Source/modules/canvas2d/CanvasRenderingContext2D.cpp
[modify] https://crrev.com/bcbe36cce42ae13bee7b03a6e037237676959935/third_party/WebKit/Source/platform/text/UnicodeBidi.h
[modify] https://crrev.com/bcbe36cce42ae13bee7b03a6e037237676959935/third_party/WebKit/Source/web/ExternalPopupMenu.cpp
[modify] https://crrev.com/bcbe36cce42ae13bee7b03a6e037237676959935/third_party/WebKit/Source/web/PopupMenuImpl.cpp

Project Member Comment 71 by bugdroid1@chromium.org, Jan 12
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/19df4a657a408440594776000848d096feffe5d7

commit 19df4a657a408440594776000848d096feffe5d7
Author: napper <napper@chromium.org>
Date: Thu Jan 12 01:09:52 2017

Revert of Made text-align property independent. (patchset #2 id:20001 of https://codereview.chromium.org/2628503002/ )

Reason for revert:
Misaligned text elements found in manual testing.

BUG= 680009 

Original issue's description:
> Made text-align property independent.
>
> Made text-align property independent. Also updated
> independent-inheritance-fast-path.html to include textAlign.
>
> Tested using independent-inheritance-fast-path.html.
>
> BUG=628043
>
> Review-Url: https://codereview.chromium.org/2628503002
> Cr-Commit-Position: refs/heads/master@{#442500}
> Committed: https://chromium.googlesource.com/chromium/src/+/d8b62ea53246ab528786b9a8d312d0a3733e46e9

TBR=sashab@chromium.org
# Not skipping CQ checks because original CL landed more than 1 days ago.
BUG=628043

Review-Url: https://codereview.chromium.org/2627833003
Cr-Commit-Position: refs/heads/master@{#443101}

[modify] https://crrev.com/19df4a657a408440594776000848d096feffe5d7/third_party/WebKit/LayoutTests/fast/css/invalidation/independent-inheritance-fast-path.html
[modify] https://crrev.com/19df4a657a408440594776000848d096feffe5d7/third_party/WebKit/Source/core/css/CSSProperties.in

Project Member Comment 72 by bugdroid1@chromium.org, Jan 13
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/5db4d106559db54bf67baf7dc6cce91b41dca812

commit 5db4d106559db54bf67baf7dc6cce91b41dca812
Author: napper <napper@chromium.org>
Date: Fri Jan 13 00:29:11 2017

Fixed text-align keywords in CSSProperties.in.

Fixed text-align keywords in CSSProperties.in to match the values in
CSSValueKeywords.in. This will not actually change the generated values
at this time since "webkitLeft", and "-webkit-left" will both result
in the enum value "kWebkitLeft" being generated. However, long term
it is important that the values exactly match those in
CSSValueKeywords.in.

BUG=628043

Review-Url: https://codereview.chromium.org/2631473002
Cr-Commit-Position: refs/heads/master@{#443410}

[modify] https://crrev.com/5db4d106559db54bf67baf7dc6cce91b41dca812/third_party/WebKit/Source/core/css/CSSProperties.in

Project Member Comment 73 by bugdroid1@chromium.org, Jan 13
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/b3ed3fda96b01e3447617f65c660c2eb6eeabdab

commit b3ed3fda96b01e3447617f65c660c2eb6eeabdab
Author: napper <napper@chromium.org>
Date: Fri Jan 13 03:54:05 2017

Updated independent-inheritance-fast-path.html to test all keywords.

Updated independent-inheritance-fast-path.html to test all keywords
instead of just testing a single keyword. Updated the independent
properties table to include all keywords for the independent properties.

BUG=628043

Review-Url: https://codereview.chromium.org/2620383008
Cr-Commit-Position: refs/heads/master@{#443482}

[modify] https://crrev.com/b3ed3fda96b01e3447617f65c660c2eb6eeabdab/third_party/WebKit/LayoutTests/fast/css/invalidation/independent-inheritance-fast-path.html

Project Member Comment 74 by bugdroid1@chromium.org, Jan 17
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/38cfdb247bfbe1d7438173ce3cf46e19394ca53e

commit 38cfdb247bfbe1d7438173ce3cf46e19394ca53e
Author: napper <napper@chromium.org>
Date: Tue Jan 17 03:38:58 2017

Changed EInsideLink to an enum class with an unsigned type.

Changed EInsideLink to an enum class with an unsigned type, and added
'k' prefix to enum values as per the style convention.

Changing it to an enum class enforces better namespacing and code
practices. Adding the unsigned underlying type is pre-work for when the
class is eventually stored as an enum bitfield.

This is also pre-work to move EInsideLink to be generated in
ComputedStyleBase.

BUG=628043

Review-Url: https://codereview.chromium.org/2633633003
Cr-Commit-Position: refs/heads/master@{#443980}

[modify] https://crrev.com/38cfdb247bfbe1d7438173ce3cf46e19394ca53e/third_party/WebKit/Source/core/css/resolver/ElementResolveContext.cpp
[modify] https://crrev.com/38cfdb247bfbe1d7438173ce3cf46e19394ca53e/third_party/WebKit/Source/core/css/resolver/StyleResolver.cpp
[modify] https://crrev.com/38cfdb247bfbe1d7438173ce3cf46e19394ca53e/third_party/WebKit/Source/core/dom/VisitedLinkState.cpp
[modify] https://crrev.com/38cfdb247bfbe1d7438173ce3cf46e19394ca53e/third_party/WebKit/Source/core/dom/VisitedLinkState.h
[modify] https://crrev.com/38cfdb247bfbe1d7438173ce3cf46e19394ca53e/third_party/WebKit/Source/core/layout/svg/LayoutSVGResourcePaintServer.cpp
[modify] https://crrev.com/38cfdb247bfbe1d7438173ce3cf46e19394ca53e/third_party/WebKit/Source/core/style/ComputedStyle.cpp
[modify] https://crrev.com/38cfdb247bfbe1d7438173ce3cf46e19394ca53e/third_party/WebKit/Source/core/style/ComputedStyle.h
[modify] https://crrev.com/38cfdb247bfbe1d7438173ce3cf46e19394ca53e/third_party/WebKit/Source/core/style/ComputedStyleConstants.h
[modify] https://crrev.com/38cfdb247bfbe1d7438173ce3cf46e19394ca53e/third_party/WebKit/Source/modules/accessibility/AXLayoutObject.cpp

Project Member Comment 75 by bugdroid1@chromium.org, Jan 18
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/dabe54f6a65efa95a6587d88c2745fac3188c80c

commit dabe54f6a65efa95a6587d88c2745fac3188c80c
Author: sashab <sashab@chromium.org>
Date: Wed Jan 18 04:59:57 2017

Changed EBoxSizing to an enum class and renamed its members

Changed EBoxSizing to an enum class and gave it an unsigned underlying
type. Also renamed its members to match the CSS keywords they
represent, and added the 'k' prefix in line with the Blink rename to
match Chromium style.

Changing it to an enum class enforces better namespacing and code
practices. Adding the unsigned underlying type is pre-work for when the
class is eventually stored as an enum bitfield (it would be done in this
patch, except a presubmit warning already exists that prevents that. The
presubmit warning needs to be updated before that change can occur.)

This is also pre-work to allow EBoxSizing to be used by generated
fields in ComputedStyleBase.

BUG=628043

Review-Url: https://codereview.chromium.org/2625553005
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2

Review-Url: https://codereview.chromium.org/2635143002
Cr-Commit-Position: refs/heads/master@{#444278}

[modify] https://crrev.com/dabe54f6a65efa95a6587d88c2745fac3188c80c/third_party/WebKit/Source/core/css/CSSPrimitiveValueMappings.h
[modify] https://crrev.com/dabe54f6a65efa95a6587d88c2745fac3188c80c/third_party/WebKit/Source/core/css/ComputedStyleCSSValueMapping.cpp
[modify] https://crrev.com/dabe54f6a65efa95a6587d88c2745fac3188c80c/third_party/WebKit/Source/core/layout/LayoutBlock.cpp
[modify] https://crrev.com/dabe54f6a65efa95a6587d88c2745fac3188c80c/third_party/WebKit/Source/core/layout/LayoutBox.cpp
[modify] https://crrev.com/dabe54f6a65efa95a6587d88c2745fac3188c80c/third_party/WebKit/Source/core/layout/LayoutTable.cpp
[modify] https://crrev.com/dabe54f6a65efa95a6587d88c2745fac3188c80c/third_party/WebKit/Source/core/layout/LayoutTableCell.h
[modify] https://crrev.com/dabe54f6a65efa95a6587d88c2745fac3188c80c/third_party/WebKit/Source/core/layout/ng/ng_absolute_utils_test.cc
[modify] https://crrev.com/dabe54f6a65efa95a6587d88c2745fac3188c80c/third_party/WebKit/Source/core/layout/ng/ng_length_utils.cc
[modify] https://crrev.com/dabe54f6a65efa95a6587d88c2745fac3188c80c/third_party/WebKit/Source/core/layout/ng/ng_length_utils_test.cc
[modify] https://crrev.com/dabe54f6a65efa95a6587d88c2745fac3188c80c/third_party/WebKit/Source/core/paint/BoxPaintInvalidator.cpp
[modify] https://crrev.com/dabe54f6a65efa95a6587d88c2745fac3188c80c/third_party/WebKit/Source/core/paint/PaintLayerScrollableArea.cpp
[modify] https://crrev.com/dabe54f6a65efa95a6587d88c2745fac3188c80c/third_party/WebKit/Source/core/style/ComputedStyle.h
[modify] https://crrev.com/dabe54f6a65efa95a6587d88c2745fac3188c80c/third_party/WebKit/Source/core/style/ComputedStyleConstants.h
[modify] https://crrev.com/dabe54f6a65efa95a6587d88c2745fac3188c80c/third_party/WebKit/Source/core/style/StyleBoxData.cpp

Blockedon: 684966
Blockedon: 686585
Project Member Comment 79 by bugdroid1@chromium.org, Jan 31
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/7f4313ab6f2a84dffb7394c6311afa8e1e0a5667

commit 7f4313ab6f2a84dffb7394c6311afa8e1e0a5667
Author: shend <shend@chromium.org>
Date: Tue Jan 31 03:07:06 2017

Change setIsLink to conform with other nonproperty setters.

In ComputedStyle, there are a few fields that are not CSS properties.
They are mostly boolean fields, with getters and setters. The setters
take no arguments and simply sets the boolean field to true. One
exception is the isLink field, whose setter takes an argument and assigns
the field to the argument (like a normal setter). However, we only use
the setter as 'setIsLink(true)'. This patch changes the setIsLink setter
to conform to the other nonproperty setters.

This is prework for generating nonproperty fields in ComputedStyle. This
patch allows us to generate the setter for isLink like the other
nonproperty fields.

BUG=628043

Review-Url: https://codereview.chromium.org/2665603002
Cr-Commit-Position: refs/heads/master@{#447173}

[modify] https://crrev.com/7f4313ab6f2a84dffb7394c6311afa8e1e0a5667/third_party/WebKit/Source/core/css/resolver/StyleResolver.cpp
[modify] https://crrev.com/7f4313ab6f2a84dffb7394c6311afa8e1e0a5667/third_party/WebKit/Source/core/style/ComputedStyle.h

Project Member Comment 80 by bugdroid1@chromium.org, Jan 31
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/660b3866aba5c7195935ba0987ee3af9ea5a0649

commit 660b3866aba5c7195935ba0987ee3af9ea5a0649
Author: shend <shend@chromium.org>
Date: Tue Jan 31 07:48:46 2017

Moved clear property to be generated in ComputedStyleBase.

Move the inherited property clear and its enum, EClear,
to be generated in ComputedStyleBase. Also moved getter / setter /
initial value methods to be generated in ComputedStyleBase.

This also reduces the size of ComputedStyle by 8 bytes.

BUG=628043

Review-Url: https://codereview.chromium.org/2656733002
Cr-Commit-Position: refs/heads/master@{#447206}

[modify] https://crrev.com/660b3866aba5c7195935ba0987ee3af9ea5a0649/third_party/WebKit/Source/core/css/CSSProperties.json5
[modify] https://crrev.com/660b3866aba5c7195935ba0987ee3af9ea5a0649/third_party/WebKit/Source/core/style/ComputedStyle.cpp
[modify] https://crrev.com/660b3866aba5c7195935ba0987ee3af9ea5a0649/third_party/WebKit/Source/core/style/ComputedStyle.h
[modify] https://crrev.com/660b3866aba5c7195935ba0987ee3af9ea5a0649/third_party/WebKit/Source/core/style/ComputedStyleConstants.h

Cc: -meade@chromium.org sashab@chromium.org
Owner: meade@chromium.org
Status: Started
Transitioning to meade@ as new owner.
Project Member Comment 82 by bugdroid1@chromium.org, Feb 3
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/14a1ac0a3d3be32ac70c9cf16b8f9405355e5d79

commit 14a1ac0a3d3be32ac70c9cf16b8f9405355e5d79
Author: shend <shend@chromium.org>
Date: Fri Feb 03 04:34:57 2017

Moved table-layout property to be generated in ComputedStyleBase.

Move the property table-layout and its enum, ETableLayout,
to be generated in ComputedStyleBase. Also moved getter / setter /
initial value methods to be generated in ComputedStyleBase.

BUG=628043

Review-Url: https://codereview.chromium.org/2669433002
Cr-Commit-Position: refs/heads/master@{#447937}

[modify] https://crrev.com/14a1ac0a3d3be32ac70c9cf16b8f9405355e5d79/third_party/WebKit/Source/core/css/CSSProperties.json5
[modify] https://crrev.com/14a1ac0a3d3be32ac70c9cf16b8f9405355e5d79/third_party/WebKit/Source/core/style/ComputedStyle.cpp
[modify] https://crrev.com/14a1ac0a3d3be32ac70c9cf16b8f9405355e5d79/third_party/WebKit/Source/core/style/ComputedStyle.h
[modify] https://crrev.com/14a1ac0a3d3be32ac70c9cf16b8f9405355e5d79/third_party/WebKit/Source/core/style/ComputedStyleConstants.h

Blockedon: 689330
Project Member Comment 84 by bugdroid1@chromium.org, Feb 7
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/25b1de1a5da3dbe754e4461cdd5c7ca2b3502ab6

commit 25b1de1a5da3dbe754e4461cdd5c7ca2b3502ab6
Author: shend <shend@chromium.org>
Date: Tue Feb 07 23:13:42 2017

Change ComputedStyle::setUnique to take bool parameter.

Currently setUnique() takes no arguments and sets the corresponding
nonproperty flag to be true. However, this is different to the
traditional setters of property fields, where they set the field to an
argument value. Instead of handling setUnique as a special case in the
generator, we change setUnique to a normal setter that takes a boolean
parameter. This decision was discussed in crrev.com/2667543002.

This is prework for generating 'unique'.

BUG=628043

Review-Url: https://codereview.chromium.org/2677843002
Cr-Commit-Position: refs/heads/master@{#448774}

[modify] https://crrev.com/25b1de1a5da3dbe754e4461cdd5c7ca2b3502ab6/third_party/WebKit/Source/core/css/ElementRuleCollector.cpp
[modify] https://crrev.com/25b1de1a5da3dbe754e4461cdd5c7ca2b3502ab6/third_party/WebKit/Source/core/css/SelectorChecker.cpp
[modify] https://crrev.com/25b1de1a5da3dbe754e4461cdd5c7ca2b3502ab6/third_party/WebKit/Source/core/css/resolver/StyleAdjuster.cpp
[modify] https://crrev.com/25b1de1a5da3dbe754e4461cdd5c7ca2b3502ab6/third_party/WebKit/Source/core/css/resolver/StyleBuilderCustom.cpp
[modify] https://crrev.com/25b1de1a5da3dbe754e4461cdd5c7ca2b3502ab6/third_party/WebKit/Source/core/css/resolver/StyleResolver.cpp
[modify] https://crrev.com/25b1de1a5da3dbe754e4461cdd5c7ca2b3502ab6/third_party/WebKit/Source/core/html/forms/MultipleFieldsTemporalInputTypeView.cpp
[modify] https://crrev.com/25b1de1a5da3dbe754e4461cdd5c7ca2b3502ab6/third_party/WebKit/Source/core/html/shadow/DateTimeEditElement.cpp
[modify] https://crrev.com/25b1de1a5da3dbe754e4461cdd5c7ca2b3502ab6/third_party/WebKit/Source/core/html/shadow/TextControlInnerElements.cpp
[modify] https://crrev.com/25b1de1a5da3dbe754e4461cdd5c7ca2b3502ab6/third_party/WebKit/Source/core/layout/LayoutTextControlMultiLine.cpp
[modify] https://crrev.com/25b1de1a5da3dbe754e4461cdd5c7ca2b3502ab6/third_party/WebKit/Source/core/layout/LayoutTextControlSingleLine.cpp
[modify] https://crrev.com/25b1de1a5da3dbe754e4461cdd5c7ca2b3502ab6/third_party/WebKit/Source/core/layout/TextAutosizer.cpp
[modify] https://crrev.com/25b1de1a5da3dbe754e4461cdd5c7ca2b3502ab6/third_party/WebKit/Source/core/style/ComputedStyle.h

Project Member Comment 85 by bugdroid1@chromium.org, Feb 8
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/b66eb61f525f914b1b478b56e7b4792db7b4c4e5

commit b66eb61f525f914b1b478b56e7b4792db7b4c4e5
Author: shend <shend@chromium.org>
Date: Wed Feb 08 07:01:23 2017

Support generating enums shared by multiple ComputedStyle fields.

When we generate fields in ComputedStyleBase, we generate both a new
enum type and a corresponding member variable with that type. So every
generated enum can only have one corresponding member. Unfortunately,
there are some enums (like EOverflow) that are shared by several
members.

The current solution is to explicitly specify the type_name flag, which
allows multiple fields to have the same enum type name. However, the
script currently will break if there's two fields with the same name
but different keywords.

This patch prevents such name conflicts by checking that enums with the
same name have the exact same keywords.

This is prework for generating the overflow-x and overflow-y fields
in ComputedStyle.

BUG=628043

Review-Url: https://codereview.chromium.org/2669973002
Cr-Commit-Position: refs/heads/master@{#448926}

[modify] https://crrev.com/b66eb61f525f914b1b478b56e7b4792db7b4c4e5/third_party/WebKit/Source/build/scripts/make_computed_style_base.py

Project Member Comment 86 by bugdroid1@chromium.org, Feb 9
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/446e9444ff7dd64a3afff530b5224069d14f72a5

commit 446e9444ff7dd64a3afff530b5224069d14f72a5
Author: amoylan <amoylan@chromium.org>
Date: Thu Feb 09 23:56:29 2017

Remove BreakAlways from EBreak enum

This change is the first step in preparing EBreak for automatic
generation.

The EBreak enum currently has three kinds of values:
* Values applicable to break-before & break-after property
* A subset of these applicable to break-inline
* A single value BreakAlways applicable to neither and only used
  temporarily in the code path for computing values for the properties
  page-break-before|after|inline and
  -webkit-column-break-before|after|inline.

This change removes the last bullet point. The next stage will split the
other two into separate enum classes with standardized naming.

Reasons to feel confident about removing BreakAlways:
* There are existing DCHECKs ensuring that it is never set in
  ComputedStyle (removed in this CL).
* CSSValueAlways (the only thing that maps to it) is excluded from the
  list of allowed values for break-before|after|inline in
  CSSParserFastPaths.cpp.
* For the legacy properties (page|-webkit-column)-break-(before|after),
  CSSPropertyParser.cpp converts CSSValueAlways to either CSSValuePage
  or CSSValueColumn as appropriate (and CSSValueInvalid for
  *-inside properties).

I have replaced the temporary use of BreakAlways within
ComputedStyleCSSValueMapping.cpp with an equivalent direct conversion to
appropriate CSSValues. (This seems more consistent with the rest of
ComputedStyleCSSValueMapping.cpp anyway.)

BUG=628043

Review-Url: https://codereview.chromium.org/2677033002
Cr-Commit-Position: refs/heads/master@{#449474}

[modify] https://crrev.com/446e9444ff7dd64a3afff530b5224069d14f72a5/third_party/WebKit/Source/core/css/CSSPrimitiveValueMappings.h
[modify] https://crrev.com/446e9444ff7dd64a3afff530b5224069d14f72a5/third_party/WebKit/Source/core/css/ComputedStyleCSSValueMapping.cpp
[modify] https://crrev.com/446e9444ff7dd64a3afff530b5224069d14f72a5/third_party/WebKit/Source/core/style/ComputedStyle.h
[modify] https://crrev.com/446e9444ff7dd64a3afff530b5224069d14f72a5/third_party/WebKit/Source/core/style/ComputedStyleConstants.h

Project Member Comment 87 by bugdroid1@chromium.org, Feb 10
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/7b2c17a81e500d85c26b4836eb88c62095b6f109

commit 7b2c17a81e500d85c26b4836eb88c62095b6f109
Author: shend <shend@chromium.org>
Date: Fri Feb 10 01:04:02 2017

Moved overflow-x and overflow-y to be generated in ComputedStyleBase.

Move the property overflow-x and overflow-y to be generated in
ComputedStyleBase. Both properties share the same enum type, which is
generated in ComputedStyleBaseConstants. Also moved getter / setter /
initial value methods to be generated in ComputedStyleBase.

BUG=628043

Review-Url: https://codereview.chromium.org/2673533002
Cr-Commit-Position: refs/heads/master@{#449499}

[modify] https://crrev.com/7b2c17a81e500d85c26b4836eb88c62095b6f109/third_party/WebKit/Source/core/css/CSSProperties.json5
[modify] https://crrev.com/7b2c17a81e500d85c26b4836eb88c62095b6f109/third_party/WebKit/Source/core/style/ComputedStyle.cpp
[modify] https://crrev.com/7b2c17a81e500d85c26b4836eb88c62095b6f109/third_party/WebKit/Source/core/style/ComputedStyle.h
[modify] https://crrev.com/7b2c17a81e500d85c26b4836eb88c62095b6f109/third_party/WebKit/Source/core/style/ComputedStyleConstants.h

Labels: Objective Update-Monthly
Project Member Comment 89 by bugdroid1@chromium.org, Feb 13
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/cc78776e3214ce8cd60288796a20baf7f98e7b52

commit cc78776e3214ce8cd60288796a20baf7f98e7b52
Author: amoylan <amoylan@chromium.org>
Date: Mon Feb 13 00:39:39 2017

Split EBreak enum into EBreakBetween & EBreakInside

This change splits EBreak into two enums that are ready for automatic
generation.

Before this change:
* The EBreak enum includes all values applicable to break-before &
  break-after properties.
* A subset of these values are applicable to break-inside & this
  subset is enforced with some asserts.

After this change:
* EBreakBetween includes all values applicable to break-before &
  break-after.
* EBreakInside includes values applicable to break-inside.

Client code working with EBreak has been made specific to the
appropriate new enum. I burrowed upwards through the call chain using
code search to find out / verify whether each client was using EBreak to
store EBreakBetween-like values (most often), EBreakInside-like values
(sometimes), or both (rarely).

I chose the name "EBreakBetween" because the main clients in /layout use
"Between" for the same thing.

BUG=628043

Review-Url: https://codereview.chromium.org/2682573002
Cr-Commit-Position: refs/heads/master@{#449903}

[modify] https://crrev.com/cc78776e3214ce8cd60288796a20baf7f98e7b52/third_party/WebKit/Source/core/css/CSSPrimitiveValueMappings.h
[modify] https://crrev.com/cc78776e3214ce8cd60288796a20baf7f98e7b52/third_party/WebKit/Source/core/css/CSSProperties.json5
[modify] https://crrev.com/cc78776e3214ce8cd60288796a20baf7f98e7b52/third_party/WebKit/Source/core/css/ComputedStyleCSSValueMapping.cpp
[modify] https://crrev.com/cc78776e3214ce8cd60288796a20baf7f98e7b52/third_party/WebKit/Source/core/layout/ColumnBalancer.cpp
[modify] https://crrev.com/cc78776e3214ce8cd60288796a20baf7f98e7b52/third_party/WebKit/Source/core/layout/ColumnBalancer.h
[modify] https://crrev.com/cc78776e3214ce8cd60288796a20baf7f98e7b52/third_party/WebKit/Source/core/layout/LayoutBlockFlow.cpp
[modify] https://crrev.com/cc78776e3214ce8cd60288796a20baf7f98e7b52/third_party/WebKit/Source/core/layout/LayoutBlockFlow.h
[modify] https://crrev.com/cc78776e3214ce8cd60288796a20baf7f98e7b52/third_party/WebKit/Source/core/layout/LayoutBox.cpp
[modify] https://crrev.com/cc78776e3214ce8cd60288796a20baf7f98e7b52/third_party/WebKit/Source/core/layout/LayoutBox.h
[modify] https://crrev.com/cc78776e3214ce8cd60288796a20baf7f98e7b52/third_party/WebKit/Source/core/style/ComputedStyle.h
[modify] https://crrev.com/cc78776e3214ce8cd60288796a20baf7f98e7b52/third_party/WebKit/Source/core/style/ComputedStyleConstants.h

Project Member Comment 90 by bugdroid1@chromium.org, Feb 13
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/062539120d0c3585f8a0a393246c5b98e0cd26f7

commit 062539120d0c3585f8a0a393246c5b98e0cd26f7
Author: shend <shend@chromium.org>
Date: Mon Feb 13 08:22:20 2017

Revert of Change ComputedStyle::setUnique to take bool parameter. (patchset #1 id:1 of https://codereview.chromium.org/2677843002/ )

Reason for revert:
After discussion, it makes more sense for setUnique to take no arguments.

Original issue's description:
> Change ComputedStyle::setUnique to take bool parameter.
>
> Currently setUnique() takes no arguments and sets the corresponding
> nonproperty flag to be true. However, this is different to the
> traditional setters of property fields, where they set the field to an
> argument value. Instead of handling setUnique as a special case in the
> generator, we change setUnique to a normal setter that takes a boolean
> parameter. This decision was discussed in crrev.com/2667543002.
>
> This is prework for generating 'unique'.
>
> BUG=628043
>
> Review-Url: https://codereview.chromium.org/2677843002
> Cr-Commit-Position: refs/heads/master@{#448774}
> Committed: https://chromium.googlesource.com/chromium/src/+/25b1de1a5da3dbe754e4461cdd5c7ca2b3502ab6

TBR=sashab@chromium.org,esprehn@chromium.org
# Not skipping CQ checks because original CL landed more than 1 days ago.
BUG=628043

Review-Url: https://codereview.chromium.org/2689983002
Cr-Commit-Position: refs/heads/master@{#449918}

[modify] https://crrev.com/062539120d0c3585f8a0a393246c5b98e0cd26f7/third_party/WebKit/Source/core/css/ElementRuleCollector.cpp
[modify] https://crrev.com/062539120d0c3585f8a0a393246c5b98e0cd26f7/third_party/WebKit/Source/core/css/SelectorChecker.cpp
[modify] https://crrev.com/062539120d0c3585f8a0a393246c5b98e0cd26f7/third_party/WebKit/Source/core/css/resolver/StyleAdjuster.cpp
[modify] https://crrev.com/062539120d0c3585f8a0a393246c5b98e0cd26f7/third_party/WebKit/Source/core/css/resolver/StyleBuilderCustom.cpp
[modify] https://crrev.com/062539120d0c3585f8a0a393246c5b98e0cd26f7/third_party/WebKit/Source/core/css/resolver/StyleResolver.cpp
[modify] https://crrev.com/062539120d0c3585f8a0a393246c5b98e0cd26f7/third_party/WebKit/Source/core/html/forms/MultipleFieldsTemporalInputTypeView.cpp
[modify] https://crrev.com/062539120d0c3585f8a0a393246c5b98e0cd26f7/third_party/WebKit/Source/core/html/shadow/DateTimeEditElement.cpp
[modify] https://crrev.com/062539120d0c3585f8a0a393246c5b98e0cd26f7/third_party/WebKit/Source/core/html/shadow/TextControlInnerElements.cpp
[modify] https://crrev.com/062539120d0c3585f8a0a393246c5b98e0cd26f7/third_party/WebKit/Source/core/layout/LayoutTextControlMultiLine.cpp
[modify] https://crrev.com/062539120d0c3585f8a0a393246c5b98e0cd26f7/third_party/WebKit/Source/core/layout/LayoutTextControlSingleLine.cpp
[modify] https://crrev.com/062539120d0c3585f8a0a393246c5b98e0cd26f7/third_party/WebKit/Source/core/layout/TextAutosizer.cpp
[modify] https://crrev.com/062539120d0c3585f8a0a393246c5b98e0cd26f7/third_party/WebKit/Source/core/style/ComputedStyle.h

Project Member Comment 91 by bugdroid1@chromium.org, Feb 13
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/1b4d28430e901f64aa5727490a3768bb25f3139e

commit 1b4d28430e901f64aa5727490a3768bb25f3139e
Author: amoylan <amoylan@chromium.org>
Date: Mon Feb 13 22:36:57 2017

Automatically generate EBreakBetween & EBreakInside

The change updates CSSProperties.json5 to cause the EBreakBetween &
EBreakInside enums to be automatically generated in
ComputedStyleBase.cpp.

The manual definition of these enums and any relevant getters, setters,
initializers, and comparitors in ComputedStyle.h/cpp are removed.

BUG=628043

Review-Url: https://codereview.chromium.org/2681833004
Cr-Commit-Position: refs/heads/master@{#450124}

[modify] https://crrev.com/1b4d28430e901f64aa5727490a3768bb25f3139e/third_party/WebKit/Source/core/css/CSSProperties.json5
[modify] https://crrev.com/1b4d28430e901f64aa5727490a3768bb25f3139e/third_party/WebKit/Source/core/style/ComputedStyle.cpp
[modify] https://crrev.com/1b4d28430e901f64aa5727490a3768bb25f3139e/third_party/WebKit/Source/core/style/ComputedStyle.h
[modify] https://crrev.com/1b4d28430e901f64aa5727490a3768bb25f3139e/third_party/WebKit/Source/core/style/ComputedStyleConstants.h

Project Member Comment 92 by bugdroid1@chromium.org, Feb 14
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/c0a8bdbcd693f00a522afa34e5bdceb3129bb1da

commit c0a8bdbcd693f00a522afa34e5bdceb3129bb1da
Author: shend <shend@chromium.org>
Date: Tue Feb 14 00:40:02 2017

Add Jinja2 macro for adding trailing strings.

There's a lot of repetitive code in ComputedStyleBase.h.tmpl to handle
formatting. For example, the member initialiser list in the generated
constructor needs a trailing comma for every member except the last one.
This patch moves such code into a generic macro in macros.tmpl, which
which makes it available for other templates.

This will be used more frequently when we start introducing more
complexity to the ComputedStyle templates.

BUG=628043

Review-Url: https://codereview.chromium.org/2680123002
Cr-Commit-Position: refs/heads/master@{#450173}

[modify] https://crrev.com/c0a8bdbcd693f00a522afa34e5bdceb3129bb1da/third_party/WebKit/Source/build/scripts/templates/ComputedStyleBase.h.tmpl
[modify] https://crrev.com/c0a8bdbcd693f00a522afa34e5bdceb3129bb1da/third_party/WebKit/Source/build/scripts/templates/macros.tmpl

Project Member Comment 93 by bugdroid1@chromium.org, Feb 14
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/dfb72e700f9603d638fb9510d9c2f015c26cb8e8

commit dfb72e700f9603d638fb9510d9c2f015c26cb8e8
Author: shend <shend@chromium.org>
Date: Tue Feb 14 04:12:27 2017

Moved nonproperty 'unique' to be generated in ComputedStyleBase.

Currently we are generating some CSS property fields in ComputedStyle.
This patch allows the code generator to generate nonproperty fields as
well. Nonproperty fields are member variables in ComputedStyle that
are not actually CSS properties (e.g. m_isLink, m_unique). Property
fields are mostly enums, whereas most nonproperty fields are boolean
flags.

To show that this is working, this patch move the nonproperty field
'unique' to be generated in ComputedStyleBase. Also moved getter /
setter methods to be generated in ComputedStyleBase.

BUG=628043

Review-Url: https://codereview.chromium.org/2667543002
Cr-Commit-Position: refs/heads/master@{#450238}

[modify] https://crrev.com/dfb72e700f9603d638fb9510d9c2f015c26cb8e8/third_party/WebKit/Source/build/scripts/make_computed_style_base.py
[modify] https://crrev.com/dfb72e700f9603d638fb9510d9c2f015c26cb8e8/third_party/WebKit/Source/build/scripts/templates/ComputedStyleBase.h.tmpl
[modify] https://crrev.com/dfb72e700f9603d638fb9510d9c2f015c26cb8e8/third_party/WebKit/Source/core/style/ComputedStyle.cpp
[modify] https://crrev.com/dfb72e700f9603d638fb9510d9c2f015c26cb8e8/third_party/WebKit/Source/core/style/ComputedStyle.h

Project Member Comment 94 by bugdroid1@chromium.org, Feb 20
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/e3c137153d7e9995c53612e071d3afe094de39e2

commit e3c137153d7e9995c53612e071d3afe094de39e2
Author: shend <shend@chromium.org>
Date: Mon Feb 20 00:06:41 2017

Clean up type handling in make_computed_style_base.py.

Currently, the way we specify the types of fields in ComputedStyleBase
is confusing and inconsistent. This makes it difficult to extend the
generator to support non-enum types like ints and platform types.

This patch renames:
- storage_type -> type_name (not really storage related)
- storage_type_path -> field_type_path (not really storage related)
- field_family -> field_role (family is vague, role is better IMO)
- keyword_only -> field_template (field_template generalises
  keyword_only to more than just enums).

so that, as of this patch:
- Every field picks a 'template' which for now can only be 'keyword',
  but can be 'primitive' or 'external' when we support those later.
  This affects what the generated API for that field looks like.
- Every field has a 'type_name', which is the actual C++ type used in
  the generated code. For 'keyword' fields, this is the enum name.
  For 'primitive', it'll be int/bool etc. Previously, 'storage_type'
  was same as 'type_name', which means templates could not tell
  whether the field is a enum or something else.

This patch does not change behaviour.

BUG=628043

Review-Url: https://codereview.chromium.org/2692803002
Cr-Commit-Position: refs/heads/master@{#451534}

[modify] https://crrev.com/e3c137153d7e9995c53612e071d3afe094de39e2/third_party/WebKit/Source/build/scripts/make_computed_style_base.py
[modify] https://crrev.com/e3c137153d7e9995c53612e071d3afe094de39e2/third_party/WebKit/Source/build/scripts/templates/ComputedStyleBase.h.tmpl
[modify] https://crrev.com/e3c137153d7e9995c53612e071d3afe094de39e2/third_party/WebKit/Source/core/css/CSSProperties.json5

Project Member Comment 95 by bugdroid1@chromium.org, Feb 20
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/97670d39c3a534c68f5ec0131c6baefbccc99602

commit 97670d39c3a534c68f5ec0131c6baefbccc99602
Author: shend <shend@chromium.org>
Date: Mon Feb 20 03:36:34 2017

Only include unique files in generated ComputedStyleBase.h

Currently files included in ComputedStyleBase.h can be duplicated. When
we introduce platform types, we expect lots of duplicate includes.
Duplicates don't won't break things, but does slow down compilation.
This patch makes sure that the include files are unique and sorted
alphabetically.

As a nice side-effect, we can remove type_path from the Field class
since it's only used to obtain the include files.

BUG=628043

Review-Url: https://codereview.chromium.org/2692943006
Cr-Commit-Position: refs/heads/master@{#451554}

[modify] https://crrev.com/97670d39c3a534c68f5ec0131c6baefbccc99602/third_party/WebKit/Source/build/scripts/make_computed_style_base.py
[modify] https://crrev.com/97670d39c3a534c68f5ec0131c6baefbccc99602/third_party/WebKit/Source/build/scripts/templates/ComputedStyleBase.h.tmpl

Project Member Comment 96 by bugdroid1@chromium.org, Feb 20
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/f6f56fb3cadf1933dbc1b9f3419f13399287bc5d

commit f6f56fb3cadf1933dbc1b9f3419f13399287bc5d
Author: shend <shend@chromium.org>
Date: Mon Feb 20 22:40:16 2017

Remove ComputedStyleBase::setBitsDefault().

ComputedStyle::setBitDefaults() resets its members to their initial
value. Since part of ComputedStyle is generated in ComputedStyleBase,
this method also calls ComputedStyleBase::setBitDefaults(), which resets
the generated members as well.

However, ComputedStyle::setBitDefaults() is only called in the
ComputedStyle constructors, so the generated members are initialised
once in the ComputedStyleBase constructor (since its a base class), and
then re-initialised a second time by a setBitDefaults() call in the
constructor body.

This patch removes ComputedStyleBase::setBitDefaults() so that
generated members are only initialised once, not twice. It also renames
ComputedStyle::setBitDefaults() to initializeBitDefaults() so it's
clearer that it's meant to be used inside the constructor.

BUG=628043

Review-Url: https://codereview.chromium.org/2699843002
Cr-Commit-Position: refs/heads/master@{#451666}

[modify] https://crrev.com/f6f56fb3cadf1933dbc1b9f3419f13399287bc5d/third_party/WebKit/Source/build/scripts/templates/ComputedStyleBase.h.tmpl
[modify] https://crrev.com/f6f56fb3cadf1933dbc1b9f3419f13399287bc5d/third_party/WebKit/Source/core/style/ComputedStyle.cpp
[modify] https://crrev.com/f6f56fb3cadf1933dbc1b9f3419f13399287bc5d/third_party/WebKit/Source/core/style/ComputedStyle.h

Project Member Comment 97 by bugdroid1@chromium.org, Feb 27
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/92131be1f24ca5fa037afb835c4df358269a113c

commit 92131be1f24ca5fa037afb835c4df358269a113c
Author: shend <shend@chromium.org>
Date: Mon Feb 27 21:34:55 2017

Remove inheritance on SameSizeAsComputedStyle.

Currently there is a static assert that checks the size of ComputedStyle
against a comparison struct of known size. However, the comparison
struct inherits from ComputedStyleBase, so the size of ComputedStyleBase
is hidden from view. This patch explicitly declares the size of
ComputedStyleBase in the comparison struct so that we can get a better
sense of how big ComputedStyle is.

BUG=628043

Review-Url: https://codereview.chromium.org/2716813002
Cr-Commit-Position: refs/heads/master@{#453345}

[modify] https://crrev.com/92131be1f24ca5fa037afb835c4df358269a113c/third_party/WebKit/Source/core/style/ComputedStyle.cpp

Project Member Comment 98 by bugdroid1@chromium.org, Feb 28
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/21ca7c7f71295c31a418e6dfe5dc03148e7bb9b9

commit 21ca7c7f71295c31a418e6dfe5dc03148e7bb9b9
Author: rune <rune@opera.com>
Date: Tue Feb 28 01:06:47 2017

Use independent property inheritance fast-path for text-align.

This was originally attempted in [1], but the custom function for
applying text-align values did not clear the inherited bit.

Added a test to the framework to catch the case for trying to propagate
a value down to a descendant with the property explicitly set.

[1] https://codereview.chromium.org/2628503002/

R=sashab@chromium.org,napper@chromium.org
BUG=628043, 686585 

Review-Url: https://codereview.chromium.org/2715213003
Cr-Commit-Position: refs/heads/master@{#453430}

[modify] https://crrev.com/21ca7c7f71295c31a418e6dfe5dc03148e7bb9b9/third_party/WebKit/LayoutTests/fast/css/invalidation/independent-inheritance-fast-path.html
[modify] https://crrev.com/21ca7c7f71295c31a418e6dfe5dc03148e7bb9b9/third_party/WebKit/Source/core/css/CSSProperties.json5
[modify] https://crrev.com/21ca7c7f71295c31a418e6dfe5dc03148e7bb9b9/third_party/WebKit/Source/core/css/resolver/StyleBuilderCustom.cpp

Project Member Comment 99 by bugdroid1@chromium.org, Mar 1
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/3597c98b66546aa1dd3dea707570a3384dc7b922

commit 3597c98b66546aa1dd3dea707570a3384dc7b922
Author: alancutter <alancutter@chromium.org>
Date: Wed Mar 01 03:38:29 2017

Minor tweak to ComputedStyleBase.h.tmpl formatting

This patch changes the generated ComputedStyleBase.h code from:
    return true &&
        m_listStyleType == o.m_listStyleType &&
        m_textAlign == o.m_textAlign &&
        m_writingMode == o.m_writingMode &&
        m_direction == o.m_direction
    ;
to:
    return (
        m_listStyleType == o.m_listStyleType &&
        m_textAlign == o.m_textAlign &&
        m_writingMode == o.m_writingMode &&
        m_direction == o.m_direction
    );

BUG=628043

Review-Url: https://codereview.chromium.org/2718323002
Cr-Commit-Position: refs/heads/master@{#453828}

[modify] https://crrev.com/3597c98b66546aa1dd3dea707570a3384dc7b922/third_party/WebKit/Source/build/scripts/templates/ComputedStyleBase.h.tmpl

Project Member Comment 100 by bugdroid1@chromium.org, Mar 1
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/2f8222f7704a78f4a3ada84c1fdd915b6da2b219

commit 2f8222f7704a78f4a3ada84c1fdd915b6da2b219
Author: shend <shend@chromium.org>
Date: Wed Mar 01 15:12:49 2017

Moved nonproperties 'affectedBy*' to be generated in ComputedStyleBase.

Move the nonproperty fields:
- affectedByFocus
- affectedByHover
- affectedByActive
- affectedByDrag
to be generated in ComputedStyleBase.  Also moved getter / setter
methods to be generated in ComputedStyleBase.

BUG=628043

Review-Url: https://codereview.chromium.org/2669453002
Cr-Commit-Position: refs/heads/master@{#453935}

[modify] https://crrev.com/2f8222f7704a78f4a3ada84c1fdd915b6da2b219/third_party/WebKit/Source/build/scripts/make_computed_style_base.py
[modify] https://crrev.com/2f8222f7704a78f4a3ada84c1fdd915b6da2b219/third_party/WebKit/Source/core/style/ComputedStyle.h

Project Member Comment 101 by bugdroid1@chromium.org, Mar 2
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/600391d1b460f14000ea7035144f1d5d3460a9a5

commit 600391d1b460f14000ea7035144f1d5d3460a9a5
Author: shend <shend@chromium.org>
Date: Thu Mar 02 15:42:25 2017

Remove non-generated member 'm_unique' from ComputedStyle.

In a previous patch (crrev.com/2667543002), the nonproperty 'unique'
became generated in ComputedStyleBase. However, the original handwritten
'unique' was not removed from ComputedStyle, so we currently have two
declarations of 'unique', one of which is not used.

This patch removes the handwritten version which is unused.

BUG=628043

Review-Url: https://codereview.chromium.org/2725853003
Cr-Commit-Position: refs/heads/master@{#454269}

[modify] https://crrev.com/600391d1b460f14000ea7035144f1d5d3460a9a5/third_party/WebKit/Source/core/style/ComputedStyle.h

Project Member Comment 102 by bugdroid1@chromium.org, Mar 2
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/37a76369eb0ad7176c613023f29a16fde58f8b97

commit 37a76369eb0ad7176c613023f29a16fde58f8b97
Author: shend <shend@chromium.org>
Date: Thu Mar 02 16:00:21 2017

Generate nonproperty 'variableReference' in ComputedStyleBase.

Move the nonproperty field 'variableReference' to be generated in
ComputedStyleBase. Also moved getter / setter methods to be generated in
ComputedStyleBase.

Note that this renames m_variableReference to something much longer.
This shouldn't affect anything since the member is private and only used
within the generated class.

BUG=628043

Review-Url: https://codereview.chromium.org/2676513002
Cr-Commit-Position: refs/heads/master@{#454271}

[modify] https://crrev.com/37a76369eb0ad7176c613023f29a16fde58f8b97/third_party/WebKit/Source/build/scripts/make_computed_style_base.py
[modify] https://crrev.com/37a76369eb0ad7176c613023f29a16fde58f8b97/third_party/WebKit/Source/core/style/ComputedStyle.cpp
[modify] https://crrev.com/37a76369eb0ad7176c613023f29a16fde58f8b97/third_party/WebKit/Source/core/style/ComputedStyle.h

Project Member Comment 103 by bugdroid1@chromium.org, Mar 3
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/c26572689b73d3ecee94cd96257f4822d6e21950

commit c26572689b73d3ecee94cd96257f4822d6e21950
Author: shend <shend@chromium.org>
Date: Fri Mar 03 05:39:37 2017

Generate nonproperty 'explicitInheritance' in ComputedStyleBase.

Move the nonproperty field 'explicitInheritance' to be generated in
ComputedStyleBase. Also moved getter / setter methods to be generated in
ComputedStyleBase.

Note that this renames m_explicitInheritance to something much longer.
This shouldn't affect anything since the member is private and only used
within the generated class.

Also, after this patch, ComputedStyle returns to its original size.

BUG=628043

Review-Url: https://codereview.chromium.org/2672703002
Cr-Commit-Position: refs/heads/master@{#454520}

[modify] https://crrev.com/c26572689b73d3ecee94cd96257f4822d6e21950/third_party/WebKit/Source/build/scripts/make_computed_style_base.py
[modify] https://crrev.com/c26572689b73d3ecee94cd96257f4822d6e21950/third_party/WebKit/Source/core/style/ComputedStyle.cpp
[modify] https://crrev.com/c26572689b73d3ecee94cd96257f4822d6e21950/third_party/WebKit/Source/core/style/ComputedStyle.h

Cc: meade@chromium.org
Owner: shend@chromium.org
Description: Show this description
Project Member Comment 106 by bugdroid1@chromium.org, Mar 9
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/483a632594b00e8cbaa061aeb86c9f9fd965e2ba

commit 483a632594b00e8cbaa061aeb86c9f9fd965e2ba
Author: shend <shend@chromium.org>
Date: Thu Mar 09 00:16:53 2017

Remove unused equality operator from ComputedStyleBase.

ComputedStyleBase::operator== is generated incorrectly since it includes
nonproperty fields as well. Fortunately, the equality operator is never
called anywhere, so it didn't cause any issues. This patch removes this
operator so that we don't accidentally use it in the future.

ComputedStyle has a correct equality implementation that should be used
instead.

BUG=628043

Review-Url: https://codereview.chromium.org/2736563002
Cr-Commit-Position: refs/heads/master@{#455606}

[modify] https://crrev.com/483a632594b00e8cbaa061aeb86c9f9fd965e2ba/third_party/WebKit/Source/build/scripts/templates/ComputedStyleBase.h.tmpl

Project Member Comment 107 by bugdroid1@chromium.org, Mar 10
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/6ce2feb35c970fe7d9557c851c016c6d6c8b1d39

commit 6ce2feb35c970fe7d9557c851c016c6d6c8b1d39
Author: shend <shend@chromium.org>
Date: Fri Mar 10 17:45:34 2017

Move field-dependent code in ComputedStyleBase to Jinja macros.

When we're generating fields in ComputedStyleBase, there are cases
where the generated code depends on the field template. For example,
keyword fields may have different getters than platform type fields.
Instead of doing if-else statements inside the template which makes
it quite ugly, this patch moves that logic out into their own files
as Jinja macros. Each file defines Jinja macros that specify how a
field should be generated.

This patch adds a 'keyword' template for enums, 'flag' template for
bools, and 'monotonic_flag' for nonproperty flags that can't be set
to false.

Link to generated code:
https://gist.github.com/anonymous/93f5d3907e3515d0b50adf0107f3000e

Link to diff (see differences in 'initialUnique' and 'resetUnique'):
https://www.diffchecker.com/mikllVbf

BUG=628043

Review-Url: https://codereview.chromium.org/2693933003
Cr-Commit-Position: refs/heads/master@{#456095}

[modify] https://crrev.com/6ce2feb35c970fe7d9557c851c016c6d6c8b1d39/third_party/WebKit/Source/build/scripts/make_computed_style_base.py
[modify] https://crrev.com/6ce2feb35c970fe7d9557c851c016c6d6c8b1d39/third_party/WebKit/Source/build/scripts/templates/ComputedStyleBase.h.tmpl
[add] https://crrev.com/6ce2feb35c970fe7d9557c851c016c6d6c8b1d39/third_party/WebKit/Source/build/scripts/templates/fields/base.tmpl
[add] https://crrev.com/6ce2feb35c970fe7d9557c851c016c6d6c8b1d39/third_party/WebKit/Source/build/scripts/templates/fields/flag.tmpl
[add] https://crrev.com/6ce2feb35c970fe7d9557c851c016c6d6c8b1d39/third_party/WebKit/Source/build/scripts/templates/fields/keyword.tmpl
[add] https://crrev.com/6ce2feb35c970fe7d9557c851c016c6d6c8b1d39/third_party/WebKit/Source/build/scripts/templates/fields/monotonic_flag.tmpl
[modify] https://crrev.com/6ce2feb35c970fe7d9557c851c016c6d6c8b1d39/third_party/WebKit/Source/core/BUILD.gn
[modify] https://crrev.com/6ce2feb35c970fe7d9557c851c016c6d6c8b1d39/third_party/WebKit/Source/core/css/CSSProperties.json5

Project Member Comment 108 by bugdroid1@chromium.org, Mar 10
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/db0b85bc46d4602f7b275001f26cbf6052267d35

commit db0b85bc46d4602f7b275001f26cbf6052267d35
Author: shend <shend@chromium.org>
Date: Fri Mar 10 21:53:09 2017

Add TODO to deprecate ComputedStyle::operator==.

ComputedStyle::operator== excludes some data members in the comparison,
and it's not clear what members are compared and what are not. Ideally,
the equality operator would be replaced with a named method that better
describes which data members are compared.

BUG=628043

Review-Url: https://codereview.chromium.org/2740953003
Cr-Commit-Position: refs/heads/master@{#456177}

[modify] https://crrev.com/db0b85bc46d4602f7b275001f26cbf6052267d35/third_party/WebKit/Source/core/style/ComputedStyle.h

Project Member Comment 109 by bugdroid1@chromium.org, Mar 14
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/fc3b987e456edc71cb5b4286ce0fa90599468468

commit fc3b987e456edc71cb5b4286ce0fa90599468468
Author: shend <shend@chromium.org>
Date: Tue Mar 14 21:21:49 2017

Combine ComputedStyle default ctor with initial style ctor.

ComputedStyle has two constructors. The default constructor initialises
all the fields and copies the DataRefs from initialStyle(). The other
constructor creates the initial style, which initialises all the fields
and also allocates the memory for each of the DataRefs.

Having two constructors makes it more difficult to maintain and think
about, so this patch removes the default constructor, which can be
implemented instead by copying from the initial style.

BUG=628043

Review-Url: https://codereview.chromium.org/2735283002
Cr-Commit-Position: refs/heads/master@{#456836}

[modify] https://crrev.com/fc3b987e456edc71cb5b4286ce0fa90599468468/third_party/WebKit/Source/core/style/ComputedStyle.cpp
[modify] https://crrev.com/fc3b987e456edc71cb5b4286ce0fa90599468468/third_party/WebKit/Source/core/style/ComputedStyle.h

Project Member Comment 110 by bugdroid1@chromium.org, Mar 15
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/335e4d5926d1360df2a0f973a760ae9a9abe054a

commit 335e4d5926d1360df2a0f973a760ae9a9abe054a
Author: shend <shend@chromium.org>
Date: Wed Mar 15 02:08:09 2017

Moved nonproperty isLink to be generated in ComputedStyleBase.

Move the nonproperty field isLink to be generated in ComputedStyleBase.
Also moved getter / setter methods to be generated in ComputedStyleBase.

Diff: https://gist.github.com/76592244b306fb4f5c953e0f67687d53/revisions

BUG=628043

Review-Url: https://codereview.chromium.org/2657423004
Cr-Commit-Position: refs/heads/master@{#456948}

[modify] https://crrev.com/335e4d5926d1360df2a0f973a760ae9a9abe054a/third_party/WebKit/Source/build/scripts/make_computed_style_base.py
[modify] https://crrev.com/335e4d5926d1360df2a0f973a760ae9a9abe054a/third_party/WebKit/Source/core/style/ComputedStyle.h

Project Member Comment 111 by bugdroid1@chromium.org, Mar 15
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/44a3e217dedd16eea0ac435e1444e7980586f634

commit 44a3e217dedd16eea0ac435e1444e7980586f634
Author: shend <shend@chromium.org>
Date: Wed Mar 15 04:31:16 2017

Simplify ComputedStyleBase::inheritedEqual.

Currently ComputedStyleBase::inheritedEqual just does a pairwise compare
over all inherited properties. A more concise implementation is to use
the existing independentInheritedEqual and nonIndependentInheritedEqual
methods. This is what ComputedStyle does. We can switch to a more
efficient when we can think of one.

BUG=628043

Review-Url: https://codereview.chromium.org/2741103003
Cr-Commit-Position: refs/heads/master@{#456995}

[modify] https://crrev.com/44a3e217dedd16eea0ac435e1444e7980586f634/third_party/WebKit/Source/build/scripts/templates/ComputedStyleBase.h.tmpl

Project Member Comment 112 by bugdroid1@chromium.org, Mar 16
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/ffd34d347dc1889ae692610c4d35cc2fc97ca9c0

commit ffd34d347dc1889ae692610c4d35cc2fc97ca9c0
Author: shend <shend@chromium.org>
Date: Thu Mar 16 22:13:33 2017

Make ComputedStyleBase abstract.

Currently ComputedStyleBase can be instantiated, and a ComputedStyle can
be deleted via a pointer to ComputedStyleBase. Both of these could cause
issues since ComputedStyleBase should be an abstract class.

This patch moves the ComputedStyleBase constructor and destructor to be
protected so that only ComputedStyle can call them.

BUG=628043

Review-Url: https://codereview.chromium.org/2739553003
Cr-Commit-Position: refs/heads/master@{#457579}

[modify] https://crrev.com/ffd34d347dc1889ae692610c4d35cc2fc97ca9c0/third_party/WebKit/Source/build/scripts/templates/ComputedStyleBase.h.tmpl

Project Member Comment 113 by bugdroid1@chromium.org, Mar 17
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/9fa493ef60bc0a4d61858f644b1095cf2a0f6a52

commit 9fa493ef60bc0a4d61858f644b1095cf2a0f6a52
Author: shend <shend@chromium.org>
Date: Fri Mar 17 00:55:11 2017

Use default copy constructor for ComputedStyleBase.

The current copy constructor ComputedStyleBase doesn't do anything
special. This patch removes it so we can just let C++ generate the
default copy constructor instead. When we have opportunities for faster
copy in the future (e.g. using memcpy), we will generate the copy
constructor explicitly.

BUG=628043

Review-Url: https://codereview.chromium.org/2744693002
Cr-Commit-Position: refs/heads/master@{#457637}

[modify] https://crrev.com/9fa493ef60bc0a4d61858f644b1095cf2a0f6a52/third_party/WebKit/Source/build/scripts/templates/ComputedStyleBase.h.tmpl

Project Member Comment 114 by bugdroid1@chromium.org, Mar 17
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/d56884370eecac968f54c5826958938d7c8f1a4c

commit d56884370eecac968f54c5826958938d7c8f1a4c
Author: shend <shend@chromium.org>
Date: Fri Mar 17 05:26:06 2017

Use CSSProperties.json5 format for nonproperties as well.

This patch modifies make_computed_style_base.py so that hardcoded
nonproperties use the same JSON format as CSSProperties.json5. The
list of dicts in NONPROPERTY_FIELDS has the same format and meaning
as the data in CSSProperties.json5.

This allows us to specify different templates for nonproperties.

This is prework for combining the code logic for properties and
nonproperties.

BUG=628043

Review-Url: https://codereview.chromium.org/2745023002
Cr-Commit-Position: refs/heads/master@{#457694}

[modify] https://crrev.com/d56884370eecac968f54c5826958938d7c8f1a4c/third_party/WebKit/Source/build/scripts/make_computed_style_base.py

Project Member Comment 115 by bugdroid1@chromium.org, Mar 19
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/8f1b6debc47bc4c5e528fe56a7941c36b04c7f1a

commit 8f1b6debc47bc4c5e528fe56a7941c36b04c7f1a
Author: shend <shend@chromium.org>
Date: Sun Mar 19 23:47:51 2017

Remove ComputedStyle::initializeBitDefaults().

Previously, the data members in ComputedStyle were initialized using
a method called initializeBitDefaults(). This was to avoid duplicating
code for the two constructors in ComputedStyle. Now that there is only
one constructor in ComputedStyle (that initializes the initial style),
we can remove this method.

This patch replaces the initializeBitDefaults() method with proper
initializer lists in ComputedStyle, InheritedData and NonInheritedData.
It also removes the initial style tag from the ComputedStyle
constructor since we no longer have to differentiate between two
constructors.

BUG=628043

Review-Url: https://codereview.chromium.org/2755043002
Cr-Commit-Position: refs/heads/master@{#458006}

[modify] https://crrev.com/8f1b6debc47bc4c5e528fe56a7941c36b04c7f1a/third_party/WebKit/Source/core/style/ComputedStyle.cpp
[modify] https://crrev.com/8f1b6debc47bc4c5e528fe56a7941c36b04c7f1a/third_party/WebKit/Source/core/style/ComputedStyle.h

Project Member Comment 116 by bugdroid1@chromium.org, Mar 20
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/9101b588bd21687dac9f733f817d283dcac0d1de

commit 9101b588bd21687dac9f733f817d283dcac0d1de
Author: shend <shend@chromium.org>
Date: Mon Mar 20 02:17:45 2017

Move cursor property to be generated in ComputedStyleBase.

Move the inherited property 'cursor' and its enum, ECursor,
to be generated in ComputedStyleBase. Also moved getter / setter /
initial value methods to be generated in ComputedStyleBase. Finally
replaced handwritten conversion between CSSValueID and ECursor with
generated code.

Note that this renames m_cursorStyle to m_cursor to match
the name of the getter/setter. This shouldn't affect anything
since the member is private and only used within the generated
class.

The changes in generated code is triggered by adding the 'keyword'
field_template to the cursor property in CSSProperties.json5.

Diff: https://gist.github.com/darrnshn/2a3770b1721a7354110633a5ea6fcec1/revisions

BUG=628043

Review-Url: https://codereview.chromium.org/2742253002
Cr-Commit-Position: refs/heads/master@{#458012}

[modify] https://crrev.com/9101b588bd21687dac9f733f817d283dcac0d1de/third_party/WebKit/Source/core/css/CSSPrimitiveValueMappings.h
[modify] https://crrev.com/9101b588bd21687dac9f733f817d283dcac0d1de/third_party/WebKit/Source/core/css/CSSProperties.json5
[modify] https://crrev.com/9101b588bd21687dac9f733f817d283dcac0d1de/third_party/WebKit/Source/core/css/CSSValueIDMappings.h
[modify] https://crrev.com/9101b588bd21687dac9f733f817d283dcac0d1de/third_party/WebKit/Source/core/style/ComputedStyle.h
[modify] https://crrev.com/9101b588bd21687dac9f733f817d283dcac0d1de/third_party/WebKit/Source/core/style/ComputedStyleConstants.h

Project Member Comment 117 by bugdroid1@chromium.org, Mar 20
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/2b588924dbe2205d5f52f4cb453d8d2dc20afb0b

commit 2b588924dbe2205d5f52f4cb453d8d2dc20afb0b
Author: shend <shend@chromium.org>
Date: Mon Mar 20 21:28:18 2017

Add 'storage_only' template to make_computed_style_base.py.

As part of generating ComputedStyle, we would like to move all fields to
from ComputedStyle to ComputedStyleBase. Currently there are several
fields which remain in ComputedStyle because their interfaces are
difficult to generate.

The problem is that the current state of ComputedStyle is undesirable.
For example, the fact that some fields are in ComputedStyle and some are
in ComputedStyleBase can increase memory usage. Although we would like
to generate the interfaces for those fields properly, this will take a
long time. So trying to generate the interfaces for the remaining fields
may block progress.

This patch introduces the 'storage_only' field template, which only
generates the storage part of the field. This allows us to move the
remaining fields to ComputedStyleBase and have handwritten interfaces.

This is temporary. We would like to eventually replace 'storage_only'
with proper templates that generate actual interfaces. But for the
time being, moving all the storage to ComputedStyleBase first is a
priority.

To test this, we move the storage of 'm_emptyState' to be generated in
ComputedStyleBase, but keeping the handwritten interface in
ComputedStyle. This property is hard to generate because it has custom
logic in its setter.

BUG=628043

Review-Url: https://codereview.chromium.org/2742263002
Cr-Commit-Position: refs/heads/master@{#458193}

[modify] https://crrev.com/2b588924dbe2205d5f52f4cb453d8d2dc20afb0b/third_party/WebKit/Source/build/scripts/make_computed_style_base.py
[modify] https://crrev.com/2b588924dbe2205d5f52f4cb453d8d2dc20afb0b/third_party/WebKit/Source/build/scripts/templates/ComputedStyleBase.h.tmpl
[add] https://crrev.com/2b588924dbe2205d5f52f4cb453d8d2dc20afb0b/third_party/WebKit/Source/build/scripts/templates/fields/storage_only.tmpl
[modify] https://crrev.com/2b588924dbe2205d5f52f4cb453d8d2dc20afb0b/third_party/WebKit/Source/core/BUILD.gn
[modify] https://crrev.com/2b588924dbe2205d5f52f4cb453d8d2dc20afb0b/third_party/WebKit/Source/core/style/ComputedStyle.h

Project Member Comment 118 by bugdroid1@chromium.org, Mar 21
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/937b793358b743d046d2038b9fe979056f660465

commit 937b793358b743d046d2038b9fe979056f660465
Author: shend <shend@chromium.org>
Date: Tue Mar 21 22:15:23 2017

Remove non-generated member 'm_emptyState' from ComputedStyle.

In a previous patch (crrev.com/2742263002), the member 'm_emptyState'
became generated in ComputedStyleBase. However, the original handwritten
'm_emptyState' was not removed from ComputedStyle due to a bad merge.

This patch removes the handwritten version which is unused.

BUG=628043

Review-Url: https://codereview.chromium.org/2761263002
Cr-Commit-Position: refs/heads/master@{#458577}

[modify] https://crrev.com/937b793358b743d046d2038b9fe979056f660465/third_party/WebKit/Source/core/style/ComputedStyle.h

Project Member Comment 119 by bugdroid1@chromium.org, Mar 22
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/a6bfb94ddcb95eef883d62b3d65de8e13192e90c

commit a6bfb94ddcb95eef883d62b3d65de8e13192e90c
Author: shend <shend@chromium.org>
Date: Wed Mar 22 05:10:50 2017

Move naming related code in make_computed_style_base to name_utilities.

Currently make_computed_style_base is sprinkled with a lot of code
related to variable names and method names. These are common pieces of
logic that can be reused by other generators as well.

This patch tidies up make_computed_style_base by moving naming logic
to name_utilities.py.

BUG=628043

Review-Url: https://codereview.chromium.org/2756113002
Cr-Commit-Position: refs/heads/master@{#458635}

[modify] https://crrev.com/a6bfb94ddcb95eef883d62b3d65de8e13192e90c/third_party/WebKit/Source/build/scripts/css_properties.py
[modify] https://crrev.com/a6bfb94ddcb95eef883d62b3d65de8e13192e90c/third_party/WebKit/Source/build/scripts/make_computed_style_base.py
[modify] https://crrev.com/a6bfb94ddcb95eef883d62b3d65de8e13192e90c/third_party/WebKit/Source/build/scripts/name_utilities.py

Project Member Comment 120 by bugdroid1@chromium.org, Mar 22
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/a0ca178033ce1a45919921fa67a050b808d706de

commit a0ca178033ce1a45919921fa67a050b808d706de
Author: shend <shend@chromium.org>
Date: Wed Mar 22 22:44:11 2017

Simplify handling of names in make_computed_style_base.py.

There is a lot of duplicate code in make_computed_style_base.py used to
handle names. This patch refactors the code so that the Field class
handles most of the naming logic.

BUG=628043

Review-Url: https://codereview.chromium.org/2762573005
Cr-Commit-Position: refs/heads/master@{#458906}

[modify] https://crrev.com/a0ca178033ce1a45919921fa67a050b808d706de/third_party/WebKit/Source/build/scripts/make_computed_style_base.py

Project Member Comment 121 by bugdroid1@chromium.org, Mar 23
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/bc0808a25d54a0138ce2d61e838191a5b1f4f3e0

commit bc0808a25d54a0138ce2d61e838191a5b1f4f3e0
Author: shend <shend@chromium.org>
Date: Thu Mar 23 21:34:57 2017

Unify logic for properties and nonproperties in computed_style_base.py

As nonproperty fields get more complex, the logic to create nonproperty
fields becomes very similar to property fields. This patch merges the
two code paths so that properties and nonproperties share as much logic
as possible.

BUG=628043

Review-Url: https://codereview.chromium.org/2766933002
Cr-Commit-Position: refs/heads/master@{#459231}

[modify] https://crrev.com/bc0808a25d54a0138ce2d61e838191a5b1f4f3e0/third_party/WebKit/Source/build/scripts/make_computed_style_base.py

Project Member Comment 122 by bugdroid1@chromium.org, Mar 24
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/6b815d45f10ca1b8fb208647f2a0576bdf31e006

commit 6b815d45f10ca1b8fb208647f2a0576bdf31e006
Author: shend <shend@chromium.org>
Date: Fri Mar 24 00:06:47 2017

Generate the storage of pseudoBits and styleType in ComputedStyleBase.

In ComputedStyle, pseudoBits and styleType are two data members used for
storing psuedoelement styles. Their interface is difficult to generate
because:
1) They share the same enum, but not all enum values are valid for
   styleType.
2) pseudoBits is a bit set, which we can't generate yet.

This patch uses the 'storage_only' template to move the storage of both
fields to ComputedStyleBase first, and keep the interfaces handwritten.

This is prework for either generating those fields properly or removing
pseudo style information from ComputedStyle entirely.

Diff of generated files: https://gist.github.com/darrnshn/1044b3bd2822c62072ab6f0e22f43104/revisions

BUG=628043

Review-Url: https://codereview.chromium.org/2755053002
Cr-Commit-Position: refs/heads/master@{#459290}

[modify] https://crrev.com/6b815d45f10ca1b8fb208647f2a0576bdf31e006/third_party/WebKit/Source/build/scripts/make_computed_style_base.py
[modify] https://crrev.com/6b815d45f10ca1b8fb208647f2a0576bdf31e006/third_party/WebKit/Source/build/scripts/templates/ComputedStyleBase.h.tmpl
[modify] https://crrev.com/6b815d45f10ca1b8fb208647f2a0576bdf31e006/third_party/WebKit/Source/build/scripts/templates/fields/storage_only.tmpl
[modify] https://crrev.com/6b815d45f10ca1b8fb208647f2a0576bdf31e006/third_party/WebKit/Source/core/style/ComputedStyle.cpp
[modify] https://crrev.com/6b815d45f10ca1b8fb208647f2a0576bdf31e006/third_party/WebKit/Source/core/style/ComputedStyle.h

Project Member Comment 123 by bugdroid1@chromium.org, Mar 24
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/8a7ed1bc6c96fa8ce4da4c7d80eb064a74265aff

commit 8a7ed1bc6c96fa8ce4da4c7d80eb064a74265aff
Author: shend <shend@chromium.org>
Date: Fri Mar 24 00:31:01 2017

Generate inherited nonproperties insideLink and hasSimpleUnderline.

This patch moves insideLink and hasSimpleUnderline to be generated in
ComputedStyleBase. Both are inherited nonproperties. To generate them,
this patch allows nonproperties to be inherited and have arbitrary
field_templates.

Since these are the last two remaining inherited fields stored directly
in ComputedStyle, this patch also removes the InheritedData struct from
ComputedStyle.

Diff of generated code:
https://gist.github.com/darrnshn/81e60b88825691200d681a1927040167/revisions

BUG=628043

Review-Url: https://codereview.chromium.org/2759343002
Cr-Commit-Position: refs/heads/master@{#459301}

[modify] https://crrev.com/8a7ed1bc6c96fa8ce4da4c7d80eb064a74265aff/third_party/WebKit/Source/build/scripts/make_computed_style_base.py
[modify] https://crrev.com/8a7ed1bc6c96fa8ce4da4c7d80eb064a74265aff/third_party/WebKit/Source/build/scripts/templates/ComputedStyleBase.cpp.tmpl
[modify] https://crrev.com/8a7ed1bc6c96fa8ce4da4c7d80eb064a74265aff/third_party/WebKit/Source/build/scripts/templates/ComputedStyleBase.h.tmpl
[modify] https://crrev.com/8a7ed1bc6c96fa8ce4da4c7d80eb064a74265aff/third_party/WebKit/Source/core/style/ComputedStyle.cpp
[modify] https://crrev.com/8a7ed1bc6c96fa8ce4da4c7d80eb064a74265aff/third_party/WebKit/Source/core/style/ComputedStyle.h
[modify] https://crrev.com/8a7ed1bc6c96fa8ce4da4c7d80eb064a74265aff/third_party/WebKit/Source/core/style/ComputedStyleConstants.h

Project Member Comment 124 by bugdroid1@chromium.org, Mar 27
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/4efed9fa047ba47f6f4849a597c49a741fafbd18

commit 4efed9fa047ba47f6f4849a597c49a741fafbd18
Author: shend <shend@chromium.org>
Date: Mon Mar 27 00:11:53 2017

Moved display property to be generated in ComputedStyleBase.

Move the noninherited property display and its enum, EDisplay,
to be generated in ComputedStyleBase. Also moved getter / setter /
initial value methods to be generated in ComputedStyleBase.

Note that this renames m_effectiveDisplay to m_display to match
the name of the getter/setter. This shouldn't affect anything
since the member is private and only used within the generated
class.

BUG=628043

Review-Url: https://codereview.chromium.org/2672693002
Cr-Commit-Position: refs/heads/master@{#459683}

[modify] https://crrev.com/4efed9fa047ba47f6f4849a597c49a741fafbd18/third_party/WebKit/Source/core/css/CSSPrimitiveValueMappings.h
[modify] https://crrev.com/4efed9fa047ba47f6f4849a597c49a741fafbd18/third_party/WebKit/Source/core/css/CSSProperties.json5
[modify] https://crrev.com/4efed9fa047ba47f6f4849a597c49a741fafbd18/third_party/WebKit/Source/core/css/CSSValueIDMappings.h
[modify] https://crrev.com/4efed9fa047ba47f6f4849a597c49a741fafbd18/third_party/WebKit/Source/core/style/ComputedStyle.cpp
[modify] https://crrev.com/4efed9fa047ba47f6f4849a597c49a741fafbd18/third_party/WebKit/Source/core/style/ComputedStyle.h
[modify] https://crrev.com/4efed9fa047ba47f6f4849a597c49a741fafbd18/third_party/WebKit/Source/core/style/ComputedStyleConstants.h

Project Member Comment 125 by bugdroid1@chromium.org, Mar 27
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/eef3d4234dc4399e0b1192dd9af1e74b590d36ee

commit eef3d4234dc4399e0b1192dd9af1e74b590d36ee
Author: shend <shend@chromium.org>
Date: Mon Mar 27 07:17:38 2017

Document why ComputedStyle constructor and destructor are protected.

In a previous patch https://codereview.chromium.org/2739553003, the
constructor and destructor of ComputedStyle were moved to be protected,
but it was not clear in the code why this was done. This patch adds a
comment explain it.

BUG=628043

Review-Url: https://codereview.chromium.org/2775153002
Cr-Commit-Position: refs/heads/master@{#459713}

[modify] https://crrev.com/eef3d4234dc4399e0b1192dd9af1e74b590d36ee/third_party/WebKit/Source/build/scripts/templates/ComputedStyleBase.h.tmpl

Project Member Comment 126 by bugdroid1@chromium.org, Mar 28
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/564f08807c0a1721eabe2a76f20d42020d94cf48

commit 564f08807c0a1721eabe2a76f20d42020d94cf48
Author: shend <shend@chromium.org>
Date: Tue Mar 28 22:10:57 2017

Generate nonproperty originalDisplay in ComputedStyleBase.

The nonproperty originalDisplay has the same behaviour as
effectiveDisplay. It is used to save the value of effectiveDisplay
before we mutate ComputedStyle. This patch moves this field to be
generated in ComputedStyleBase.

Diff of generated files:
https://gist.github.com/darrnshn/fbb2854779c4c6e232036b86bed581e4/revisions

BUG=628043

Review-Url: https://codereview.chromium.org/2766973002
Cr-Commit-Position: refs/heads/master@{#460220}

[modify] https://crrev.com/564f08807c0a1721eabe2a76f20d42020d94cf48/third_party/WebKit/Source/build/scripts/make_computed_style_base.py
[modify] https://crrev.com/564f08807c0a1721eabe2a76f20d42020d94cf48/third_party/WebKit/Source/core/style/ComputedStyle.cpp
[modify] https://crrev.com/564f08807c0a1721eabe2a76f20d42020d94cf48/third_party/WebKit/Source/core/style/ComputedStyle.h

Project Member Comment 127 by bugdroid1@chromium.org, Mar 29
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/18d53b4dbb62b07ff63391b11519ab4b8332a93b

commit 18d53b4dbb62b07ff63391b11519ab4b8332a93b
Author: shend <shend@chromium.org>
Date: Wed Mar 29 05:13:53 2017

Generate keyword part of vertical-align property in ComputedStyleBase.

The vertical-align property can either have a keyword value or a length
value. The two values are stored separately in ComputedStyle. The
keyword part is stored directly in ComputedStyle, but the length part is
stored in StyleBoxData. Hence, generating this property is quite
difficult.

This patch generates just the keyword part of vertical-align. To make it
clear that this is not generating the whole of vertical-align properly,
we generate it as a 'storage_only' nonproperty.

Diff of generated files:
https://gist.github.com/3e52ce1e0e38fd208196ed0621f6c0b3/revisions

BUG=628043

Review-Url: https://codereview.chromium.org/2775573002
Cr-Commit-Position: refs/heads/master@{#460283}

[modify] https://crrev.com/18d53b4dbb62b07ff63391b11519ab4b8332a93b/third_party/WebKit/Source/build/scripts/make_computed_style_base.py
[modify] https://crrev.com/18d53b4dbb62b07ff63391b11519ab4b8332a93b/third_party/WebKit/Source/core/style/ComputedStyle.cpp
[modify] https://crrev.com/18d53b4dbb62b07ff63391b11519ab4b8332a93b/third_party/WebKit/Source/core/style/ComputedStyle.h

Project Member Comment 128 by bugdroid1@chromium.org, Mar 31
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/73670040884ced3d736cde3c452a1fab82e68f70

commit 73670040884ced3d736cde3c452a1fab82e68f70
Author: shend <shend@chromium.org>
Date: Fri Mar 31 00:46:35 2017

Add support for generating external types in ComputedStyleBase.

Many members in ComputedStyle are platform types like Length or
LengthBox. We currently can't generate them because they cannot be
bitfields. This patch does several things:
1) Generate different code based on whether a field is a bitfield or not.
   This allows us to store external types without packing.
2) Add a new field template 'external' which creates getter/setters that
   return/accept references and do not do any static_casts. This allows
   us to expose external types efficiently.
3) Change "initial-keyword" to "default-value" in CSSProperties.json5 to
   make keyword fields consistent with external fields.

BUG=628043

Review-Url: https://codereview.chromium.org/2697953004
Cr-Commit-Position: refs/heads/master@{#460958}

[modify] https://crrev.com/73670040884ced3d736cde3c452a1fab82e68f70/third_party/WebKit/Source/build/scripts/make_computed_style_base.py
[modify] https://crrev.com/73670040884ced3d736cde3c452a1fab82e68f70/third_party/WebKit/Source/build/scripts/templates/ComputedStyleBase.cpp.tmpl
[modify] https://crrev.com/73670040884ced3d736cde3c452a1fab82e68f70/third_party/WebKit/Source/build/scripts/templates/ComputedStyleBase.h.tmpl
[modify] https://crrev.com/73670040884ced3d736cde3c452a1fab82e68f70/third_party/WebKit/Source/build/scripts/templates/fields/base.tmpl
[add] https://crrev.com/73670040884ced3d736cde3c452a1fab82e68f70/third_party/WebKit/Source/build/scripts/templates/fields/external.tmpl
[add] https://crrev.com/73670040884ced3d736cde3c452a1fab82e68f70/third_party/WebKit/Source/build/scripts/templates/fields/field.tmpl
[modify] https://crrev.com/73670040884ced3d736cde3c452a1fab82e68f70/third_party/WebKit/Source/build/scripts/templates/fields/monotonic_flag.tmpl
[modify] https://crrev.com/73670040884ced3d736cde3c452a1fab82e68f70/third_party/WebKit/Source/core/BUILD.gn
[modify] https://crrev.com/73670040884ced3d736cde3c452a1fab82e68f70/third_party/WebKit/Source/core/css/CSSProperties.json5

Project Member Comment 129 by bugdroid1@chromium.org, Mar 31
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/e12d70fb8a80561804cf6b033cb355ca6fc74aed

commit e12d70fb8a80561804cf6b033cb355ca6fc74aed
Author: shend <shend@chromium.org>
Date: Fri Mar 31 05:42:12 2017

Add utility for joining names in generated code.

One common task in code generators is to append/prepend a suffix/prefix
to a name. For example, in make_computed_style_base.py, we prepend the
prefix 'set' to a name to form a setter name. Currently, we simply
concatenate the two strings together and then pass it through a name
utility like CamelCase that makes sure the final name is in the right
format. However, this is fragile, because if the name was in lower camel
case, say 'fooBar', then the concatenation is 'setfooBar', and now
'setfoo' is one word so using a name utility like CamelCase would only
produce 'SetfooBar' and not 'SetFooBar'.

This patch adds a utility function called join_name, which takes
multiple names and combines them into one name irrespective of their
individual formats.

BUG=628043

Review-Url: https://codereview.chromium.org/2785013002
Cr-Commit-Position: refs/heads/master@{#461050}

[modify] https://crrev.com/e12d70fb8a80561804cf6b033cb355ca6fc74aed/third_party/WebKit/Source/build/scripts/make_computed_style_base.py
[modify] https://crrev.com/e12d70fb8a80561804cf6b033cb355ca6fc74aed/third_party/WebKit/Source/build/scripts/name_utilities.py

Project Member Comment 130 by bugdroid1@chromium.org, Apr 3
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/542dc4c9f70f7c9e1a3ec096c6b62bceceb5e47f

commit 542dc4c9f70f7c9e1a3ec096c6b62bceceb5e47f
Author: shend <shend@chromium.org>
Date: Mon Apr 03 01:11:03 2017

Split StyleSurroundData::offset into separate members.

In generating ComputedStyle, every generated data member must
correspond to a CSS property (whether long hand or short hand).
StyleSurroundData is part of ComputedStyle and we would like to generate
it as well. Unfortunately, the 'left', 'right', 'top' and 'bottom' CSS
properties are grouped as one data member 'offset', which does not
actually correspond to either a long or short hand CSS property, unlike
'margin' and 'padding'. Thus, we cannot generate this data member
directly.

This patch splits 'offset' into 'left', 'right', 'top' and 'bottom'
so that every data member in StyleSurroundData corresponds to a CSS
property. This allows us to generate it in a later patch.

BUG=628043

Review-Url: https://codereview.chromium.org/2705143002
Cr-Commit-Position: refs/heads/master@{#461356}

[modify] https://crrev.com/542dc4c9f70f7c9e1a3ec096c6b62bceceb5e47f/third_party/WebKit/Source/core/style/ComputedStyle.cpp
[modify] https://crrev.com/542dc4c9f70f7c9e1a3ec096c6b62bceceb5e47f/third_party/WebKit/Source/core/style/ComputedStyle.h
[modify] https://crrev.com/542dc4c9f70f7c9e1a3ec096c6b62bceceb5e47f/third_party/WebKit/Source/core/style/StyleSurroundData.cpp
[modify] https://crrev.com/542dc4c9f70f7c9e1a3ec096c6b62bceceb5e47f/third_party/WebKit/Source/core/style/StyleSurroundData.h
[modify] https://crrev.com/542dc4c9f70f7c9e1a3ec096c6b62bceceb5e47f/third_party/WebKit/Source/platform/LengthBox.cpp
[modify] https://crrev.com/542dc4c9f70f7c9e1a3ec096c6b62bceceb5e47f/third_party/WebKit/Source/platform/LengthBox.h

Project Member Comment 131 by bugdroid1@chromium.org, Apr 3
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/a7b895068b5c1ec56ae5097b3310a6d5d013732f

commit a7b895068b5c1ec56ae5097b3310a6d5d013732f
Author: shend <shend@chromium.org>
Date: Mon Apr 03 03:05:28 2017

Rename members of StyleSurroundData and ComputedStyle.

This patch renames:
- StyleSurroundData::margin -> m_margin
- StyleSurroundData::padding -> m_padding
- StyleSurroundData::border -> m_border
- ComputedStyle::paddingBox() -> ComputedStyle::padding()
- ComputedStyle::setPaddingBox() -> ComputedStyle::setPadding()

This is prework for generating StyleSurroundData.

BUG=628043

Review-Url: https://codereview.chromium.org/2787183002
Cr-Commit-Position: refs/heads/master@{#461364}

[modify] https://crrev.com/a7b895068b5c1ec56ae5097b3310a6d5d013732f/third_party/WebKit/Source/core/layout/LayoutTheme.cpp
[modify] https://crrev.com/a7b895068b5c1ec56ae5097b3310a6d5d013732f/third_party/WebKit/Source/core/style/ComputedStyle.cpp
[modify] https://crrev.com/a7b895068b5c1ec56ae5097b3310a6d5d013732f/third_party/WebKit/Source/core/style/ComputedStyle.h
[modify] https://crrev.com/a7b895068b5c1ec56ae5097b3310a6d5d013732f/third_party/WebKit/Source/core/style/StyleSurroundData.cpp
[modify] https://crrev.com/a7b895068b5c1ec56ae5097b3310a6d5d013732f/third_party/WebKit/Source/core/style/StyleSurroundData.h

Project Member Comment 132 by bugdroid1@chromium.org, Apr 4
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/de33c94cc211c5ee1994ce3fa0d43abc355a4e9c

commit de33c94cc211c5ee1994ce3fa0d43abc355a4e9c
Author: shend <shend@chromium.org>
Date: Tue Apr 04 08:02:26 2017

Implement RefCountedCopyable<T>.

Currently, subclasses of RefCounted<T> must explicitly handwrite their
copy constructors because RefCounted<T> has a deleted copy constructor.
This is tedious for subclasses that have a lot of members (e.g.
StyleRareNonInheritedData).

RefCountedCopyable<T> is a base class for ref-counted classes that
want to be copyable as well. RefCountedCopyable<T> implements a
protected copy constructor that resets the ref count to zero. Because
the copy constructor is protected, the compiler is able to generate a
default copy constructor for subclasses.

This patch moves StyleBoxData to RefCountedCopyable as an example.

BUG=628043

Review-Url: https://codereview.chromium.org/2781313004
Cr-Commit-Position: refs/heads/master@{#461656}

[modify] https://crrev.com/de33c94cc211c5ee1994ce3fa0d43abc355a4e9c/third_party/WebKit/Source/core/style/StyleBoxData.cpp
[modify] https://crrev.com/de33c94cc211c5ee1994ce3fa0d43abc355a4e9c/third_party/WebKit/Source/core/style/StyleBoxData.h
[modify] https://crrev.com/de33c94cc211c5ee1994ce3fa0d43abc355a4e9c/third_party/WebKit/Source/platform/wtf/RefCounted.h

Project Member Comment 133 by bugdroid1@chromium.org, Apr 5
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/fe7b8a3b74de1097ffc1ff819c6b2109dcb6800b

commit fe7b8a3b74de1097ffc1ff819c6b2109dcb6800b
Author: shend <shend@chromium.org>
Date: Wed Apr 05 02:53:24 2017

Make ComputedStyle generation deterministic.

Since Python dicts are unordered, it is possible that, when we generate
ComputedStyle with no changes to CSSProperties, the generated code is
different (e.g. different order of enum declarations). This is bad
when we start showing diffs for generated code.

This patch enforces an ordering on the generate code so that the
generated code should always be the same given the same input. Namely:

- Enum type declarations are ordered in alphabetical order by name.
- Fields are ordered first by size (for packing), and then in
  alphabetical order by name when there's a tie.

BUG=628043

Review-Url: https://codereview.chromium.org/2686473004
Cr-Commit-Position: refs/heads/master@{#461956}

[modify] https://crrev.com/fe7b8a3b74de1097ffc1ff819c6b2109dcb6800b/third_party/WebKit/Source/build/scripts/make_computed_style_base.py

Project Member Comment 134 by bugdroid1@chromium.org, Apr 5
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/5b97f21d9cd473b57b8ce169f75d9cdc135184fc

commit 5b97f21d9cd473b57b8ce169f75d9cdc135184fc
Author: shend <shend@chromium.org>
Date: Wed Apr 05 23:09:28 2017

Remove mutable from ComputedStyle by const_cast.

This patch removes mutable from ComputedStyle::hasViewportUnits and
hasRemUnits. The only case where this mutability is required is in
CSSToLengthConversionData, where resolving a viewport/rem unit would
set those two members to true on a const ComputedStyle. Instead of
having mutable in ComputedStyle, which is hard to generate, we perform
const_cast on the computed style in CSSToLengthConversionData. This is
safe as all computed styles are initially nonconst.

This patch does not change any behaviour.

This is prework for generating the two fields in ComputedStyleBase.

BUG=628043

Review-Url: https://codereview.chromium.org/2793193004
Cr-Commit-Position: refs/heads/master@{#462258}

[modify] https://crrev.com/5b97f21d9cd473b57b8ce169f75d9cdc135184fc/third_party/WebKit/Source/core/css/CSSToLengthConversionData.cpp
[modify] https://crrev.com/5b97f21d9cd473b57b8ce169f75d9cdc135184fc/third_party/WebKit/Source/core/style/ComputedStyle.h

Project Member Comment 135 by bugdroid1@chromium.org, Apr 5
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/369fddb8128986e11c9485342635999297d97e96

commit 369fddb8128986e11c9485342635999297d97e96
Author: shend <shend@chromium.org>
Date: Wed Apr 05 23:29:14 2017

Remove default argument on ComputedStyle::setHasViewportUnits().

Currently ComputedStyle::setHasViewportUnits() takes a boolean argument,
which defaults to true. We would like to generate this field in a future
patch, but we can't generate this type of setter yet. This patch removes
the default argument on setHasViewportUnits() so that this setter can be
generated without changing the generator. All the callers are updated to
explicitly specify an argument as well.

This is prework for generating setHasViewportUnits.

BUG=628043

Review-Url: https://codereview.chromium.org/2767853002
Cr-Commit-Position: refs/heads/master@{#462270}

[modify] https://crrev.com/369fddb8128986e11c9485342635999297d97e96/third_party/WebKit/Source/core/css/CSSToLengthConversionData.cpp
[modify] https://crrev.com/369fddb8128986e11c9485342635999297d97e96/third_party/WebKit/Source/core/style/ComputedStyle.h

Project Member Comment 136 by bugdroid1@chromium.org, Apr 5
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/369fddb8128986e11c9485342635999297d97e96

commit 369fddb8128986e11c9485342635999297d97e96
Author: shend <shend@chromium.org>
Date: Wed Apr 05 23:29:14 2017

Remove default argument on ComputedStyle::setHasViewportUnits().

Currently ComputedStyle::setHasViewportUnits() takes a boolean argument,
which defaults to true. We would like to generate this field in a future
patch, but we can't generate this type of setter yet. This patch removes
the default argument on setHasViewportUnits() so that this setter can be
generated without changing the generator. All the callers are updated to
explicitly specify an argument as well.

This is prework for generating setHasViewportUnits.

BUG=628043

Review-Url: https://codereview.chromium.org/2767853002
Cr-Commit-Position: refs/heads/master@{#462270}

[modify] https://crrev.com/369fddb8128986e11c9485342635999297d97e96/third_party/WebKit/Source/core/css/CSSToLengthConversionData.cpp
[modify] https://crrev.com/369fddb8128986e11c9485342635999297d97e96/third_party/WebKit/Source/core/style/ComputedStyle.h

Project Member Comment 137 by bugdroid1@chromium.org, Apr 6
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/e8890d72e9824fce593382d5eb23210e4d7db177

commit e8890d72e9824fce593382d5eb23210e4d7db177
Author: shend <shend@chromium.org>
Date: Thu Apr 06 03:34:09 2017

Generalise 'flag' template to 'primitive' when generating ComputedStyle.

Currently we have 'flag' fields which represent boolean fields inside
ComputedStyle. We can generalise this to not only booleans, but any
primitive value such as int or float. This patch renames the 'flag'
template to 'primitive' and adds a special case for 'bool' fields which
allows them to be packed as a single bit.

This is prework for generating fields that are stored as ints or floats.

This patch does not affect generated code.

BUG=628043

Review-Url: https://codereview.chromium.org/2793843002
Cr-Commit-Position: refs/heads/master@{#462344}

[modify] https://crrev.com/e8890d72e9824fce593382d5eb23210e4d7db177/third_party/WebKit/Source/build/scripts/make_computed_style_base.py
[modify] https://crrev.com/e8890d72e9824fce593382d5eb23210e4d7db177/third_party/WebKit/Source/build/scripts/templates/ComputedStyleBase.h.tmpl
[rename] https://crrev.com/e8890d72e9824fce593382d5eb23210e4d7db177/third_party/WebKit/Source/build/scripts/templates/fields/primitive.tmpl
[modify] https://crrev.com/e8890d72e9824fce593382d5eb23210e4d7db177/third_party/WebKit/Source/core/BUILD.gn
[modify] https://crrev.com/e8890d72e9824fce593382d5eb23210e4d7db177/third_party/WebKit/Source/core/css/CSSProperties.json5

Project Member Comment 138 by bugdroid1@chromium.org, Apr 6
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/25809e1270b9eb4103f1efcc089c781df8465e39

commit 25809e1270b9eb4103f1efcc089c781df8465e39
Author: shend <shend@chromium.org>
Date: Thu Apr 06 06:58:14 2017

Generate ComputedStyle::hasViewportUnits and hasRemUnits.

This patch moves hasViewportUnits and hasRemUnits to be generated in
ComputedStyleBase. Both are noninherited nonproperties.

hasRemUnits is generated as a monotonic_flag field, but
hasViewportUnits needs to be a boolean flag field because there are
places where it gets set to false.

Since these are the two remaining noninherited fields stored directly
in ComputedStyle, this patch also removes the NonInheritedData struct
from ComputedStyle.

Diff of generated files:
https://gist.github.com/47fd74b4a54917d0413367227dcb962a/revisions

BUG=628043

Review-Url: https://codereview.chromium.org/2797963002
Cr-Commit-Position: refs/heads/master@{#462377}

[modify] https://crrev.com/25809e1270b9eb4103f1efcc089c781df8465e39/third_party/WebKit/Source/build/scripts/make_computed_style_base.py
[modify] https://crrev.com/25809e1270b9eb4103f1efcc089c781df8465e39/third_party/WebKit/Source/core/style/ComputedStyle.cpp
[modify] https://crrev.com/25809e1270b9eb4103f1efcc089c781df8465e39/third_party/WebKit/Source/core/style/ComputedStyle.h

Project Member Comment 139 by bugdroid1@chromium.org, Apr 12
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/83e9ff4b5ed44bf5c2196f3bdfdde63a07c6072e

commit 83e9ff4b5ed44bf5c2196f3bdfdde63a07c6072e
Author: shend <shend@chromium.org>
Date: Wed Apr 12 01:21:31 2017

Allow ComputedStyleBase property fields to be storage_only.

Currently the 'storage_only' template can only be applied to nonproperty
fields because 'storage_only' is not a valid value for 'template' in
CSSProperties.json5. However, there are cases when we want a property
field to be 'storage_only' (e.g. for color related properties whose
getters are very complex).

This patch adds 'storage_only' as a valid template option in
CSSProperties.json5.

BUG=628043

Review-Url: https://codereview.chromium.org/2801523002
Cr-Commit-Position: refs/heads/master@{#463874}

[modify] https://crrev.com/83e9ff4b5ed44bf5c2196f3bdfdde63a07c6072e/third_party/WebKit/Source/build/scripts/make_computed_style_base.py
[modify] https://crrev.com/83e9ff4b5ed44bf5c2196f3bdfdde63a07c6072e/third_party/WebKit/Source/core/css/CSSProperties.json5

Project Member Comment 140 by bugdroid1@chromium.org, Apr 12
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/dea75f9603af994dd10370ddd25a0dc6af7b93cd

commit dea75f9603af994dd10370ddd25a0dc6af7b93cd
Author: shend <shend@chromium.org>
Date: Wed Apr 12 08:03:36 2017

Separate CSSValueID mappings generator from ComputedStyleBase generator.

We currently generate mappings between CSSValueID and platform enums
inside the ComputedStyleBase generator. However, because such mappings
do not exist for nonproperty fields, it no longer makes sense for us
to generate these mappings inside make_computed_style_base.py.

This patch moves the generator for CSSValueIDMappingsGenerated to
its own file, so that it is not affected by nonproperty fields.

BUG=628043

Review-Url: https://codereview.chromium.org/2794853002
Cr-Commit-Position: refs/heads/master@{#463955}

[modify] https://crrev.com/dea75f9603af994dd10370ddd25a0dc6af7b93cd/third_party/WebKit/Source/build/scripts/make_computed_style_base.py
[add] https://crrev.com/dea75f9603af994dd10370ddd25a0dc6af7b93cd/third_party/WebKit/Source/build/scripts/make_css_value_id_mappings.py
[modify] https://crrev.com/dea75f9603af994dd10370ddd25a0dc6af7b93cd/third_party/WebKit/Source/core/BUILD.gn

Project Member Comment 141 by bugdroid1@chromium.org, Apr 12
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/2b7de53bdbe24c3d8088d23862abdd35de67f711

commit 2b7de53bdbe24c3d8088d23862abdd35de67f711
Author: jdoerrie <jdoerrie@chromium.org>
Date: Wed Apr 12 08:40:29 2017

Revert of Separate CSSValueID mappings generator from ComputedStyleBase generator. (patchset #3 id:40001 of https://codereview.chromium.org/2794853002/ )

Reason for revert:
Broke compilation on Google Chrome Mac bot

BUG= 710778 

Original issue's description:
> Separate CSSValueID mappings generator from ComputedStyleBase generator.
>
> We currently generate mappings between CSSValueID and platform enums
> inside the ComputedStyleBase generator. However, because such mappings
> do not exist for nonproperty fields, it no longer makes sense for us
> to generate these mappings inside make_computed_style_base.py.
>
> This patch moves the generator for CSSValueIDMappingsGenerated to
> its own file, so that it is not affected by nonproperty fields.
>
> BUG=628043
>
> Review-Url: https://codereview.chromium.org/2794853002
> Cr-Commit-Position: refs/heads/master@{#463955}
> Committed: https://chromium.googlesource.com/chromium/src/+/dea75f9603af994dd10370ddd25a0dc6af7b93cd

TBR=bugsnash@chromium.org,meade@chromium.org,shend@chromium.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=628043

Review-Url: https://codereview.chromium.org/2812823004
Cr-Commit-Position: refs/heads/master@{#463966}

[modify] https://crrev.com/2b7de53bdbe24c3d8088d23862abdd35de67f711/third_party/WebKit/Source/build/scripts/make_computed_style_base.py
[delete] https://crrev.com/2122b4d005c760e6acef72c241c3d91821140dbf/third_party/WebKit/Source/build/scripts/make_css_value_id_mappings.py
[modify] https://crrev.com/2b7de53bdbe24c3d8088d23862abdd35de67f711/third_party/WebKit/Source/core/BUILD.gn

Blockedon: 710938
Project Member Comment 143 by bugdroid1@chromium.org, Apr 13
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/f6d6371a3b819d5ad6a31f25cca18e952e28d621

commit f6d6371a3b819d5ad6a31f25cca18e952e28d621
Author: shend <shend@chromium.org>
Date: Thu Apr 13 04:59:51 2017

Separate CSSValueID mappings generator from ComputedStyleBase generator.

We currently generate mappings between CSSValueID and platform enums
inside the ComputedStyleBase generator. However, because such mappings
do not exist for nonproperty fields, it no longer makes sense for us
to generate these mappings inside make_computed_style_base.py.

This patch moves the generator for CSSValueIDMappingsGenerated to
its own file, so that it is not affected by nonproperty fields.

BUG=628043

Review-Url: https://codereview.chromium.org/2794853002
Cr-Original-Commit-Position: refs/heads/master@{#463955}
Committed: https://chromium.googlesource.com/chromium/src/+/dea75f9603af994dd10370ddd25a0dc6af7b93cd
Review-Url: https://codereview.chromium.org/2794853002
Cr-Commit-Position: refs/heads/master@{#464303}

[modify] https://crrev.com/f6d6371a3b819d5ad6a31f25cca18e952e28d621/third_party/WebKit/Source/build/scripts/make_computed_style_base.py
[add] https://crrev.com/f6d6371a3b819d5ad6a31f25cca18e952e28d621/third_party/WebKit/Source/build/scripts/make_css_value_id_mappings.py
[modify] https://crrev.com/f6d6371a3b819d5ad6a31f25cca18e952e28d621/third_party/WebKit/Source/core/BUILD.gn

Project Member Comment 144 by bugdroid1@chromium.org, Apr 13
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/ff28dbc9cb80d5f00fd39c3bd780c7cd83d8089a

commit ff28dbc9cb80d5f00fd39c3bd780c7cd83d8089a
Author: shend <shend@chromium.org>
Date: Thu Apr 13 05:16:40 2017

Filter out shorthands for make_computed_style_base.py.

This patch filters out shorthands from the input of
make_computed_style_base. This is to explictly prevent shorthands being
treated like CSS properties in ComputedStyle.

Currently there are no shorthands being generated as properties, so this
patch does not affect behaviour.

BUG=628043

Review-Url: https://codereview.chromium.org/2809053002
Cr-Commit-Position: refs/heads/master@{#464307}

[modify] https://crrev.com/ff28dbc9cb80d5f00fd39c3bd780c7cd83d8089a/third_party/WebKit/Source/build/scripts/make_computed_style_base.py

Project Member Comment 145 by bugdroid1@chromium.org, Apr 13
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/68c508188787079d0400260ee4dff6ef6814c40c

commit 68c508188787079d0400260ee4dff6ef6814c40c
Author: shend <shend@chromium.org>
Date: Thu Apr 13 05:38:36 2017

Split initial methods of left/right/top/bottom on ComputedStyle.

Currently the left, right, top and bottom share the same method for
the initial value: initialOffset(). This makes it difficult to generate
because the generator will generate four copies of initialOffset(),
causing a name conflict.

This patch splits the initialOffset() method into four separate methods,
one for each property.

Diff of generated files:
https://gist.github.com/darrnshn/88a94abf4e37e26b7fdcc4126beb11fa/revisions

BUG=628043

Review-Url: https://codereview.chromium.org/2815033002
Cr-Commit-Position: refs/heads/master@{#464313}

[modify] https://crrev.com/68c508188787079d0400260ee4dff6ef6814c40c/third_party/WebKit/Source/core/css/CSSProperties.json5
[modify] https://crrev.com/68c508188787079d0400260ee4dff6ef6814c40c/third_party/WebKit/Source/core/style/ComputedStyle.h

Project Member Comment 146 by bugdroid1@chromium.org, Apr 18
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/00ef28764c3fcbc09c08259a871a481cb2b34d89

commit 00ef28764c3fcbc09c08259a871a481cb2b34d89
Author: shend <shend@chromium.org>
Date: Tue Apr 18 02:38:37 2017

Add snake_case name utility.

With the Blink rename, member variables use snake case followed by an
underscore. This patch adds snake_case to name utilities so that this
logic is clearer and can be reused.

BUG=628043

Review-Url: https://codereview.chromium.org/2813483002
Cr-Commit-Position: refs/heads/master@{#465112}

[modify] https://crrev.com/00ef28764c3fcbc09c08259a871a481cb2b34d89/third_party/WebKit/Source/build/scripts/name_utilities.py

Cc: -sashab@chromium.org
Project Member Comment 148 by bugdroid1@chromium.org, Apr 18
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/20be06ee11375df67a4bcdb0e9716fbb343f2e48

commit 20be06ee11375df67a4bcdb0e9716fbb343f2e48
Author: shend <shend@chromium.org>
Date: Tue Apr 18 02:53:47 2017

Use getters for StyleSurroundData members in ComputedStyle.cpp

In ComputedStyle, we directly access StyleSurroundData members via the
m_surround pointer (e.g. m_surround->m_border), but this assumes that
these members will always be stored in StyleSurroundData. As part of
clockwork, we may change where these members are stored, so this patch
uses getter methods instead, which are independent of where these
members are stored.

Places not affected by this patch:
- Getters/setters, since these will be eventually generated.
- When the surround pointer is used directly (e.g. for fast
  comparisons), since these are unavoidable.
- Modifying variables via m_surround.access(), since they're
  setters not getters. Setters will be refactored in a separate
  patch.

BUG=628043

Review-Url: https://codereview.chromium.org/2785343002
Cr-Commit-Position: refs/heads/master@{#465119}

[modify] https://crrev.com/20be06ee11375df67a4bcdb0e9716fbb343f2e48/third_party/WebKit/Source/core/style/ComputedStyle.cpp
[modify] https://crrev.com/20be06ee11375df67a4bcdb0e9716fbb343f2e48/third_party/WebKit/Source/core/style/ComputedStyle.h

Project Member Comment 149 by bugdroid1@chromium.org, Apr 18
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/20e570ab5950d95673078e4edd1653faf97812b0

commit 20e570ab5950d95673078e4edd1653faf97812b0
Author: shend <shend@chromium.org>
Date: Tue Apr 18 03:58:41 2017

Make NinePieceImageData use RefCountedCopyable.

NinePieceImageData is RefCounted and copyable. This patch makes it
inherit from RefCountedCopyable so that it can use the compiler
generated copy constructor.

BUG=628043

Review-Url: https://codereview.chromium.org/2808703002
Cr-Commit-Position: refs/heads/master@{#465133}

[modify] https://crrev.com/20e570ab5950d95673078e4edd1653faf97812b0/third_party/WebKit/Source/core/style/NinePieceImage.cpp
[modify] https://crrev.com/20e570ab5950d95673078e4edd1653faf97812b0/third_party/WebKit/Source/core/style/NinePieceImage.h

Project Member Comment 150 by bugdroid1@chromium.org, Apr 19
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/c0abb68d248b76ecae92ad893db3886edd3aa59d

commit c0abb68d248b76ecae92ad893db3886edd3aa59d
Author: shend <shend@chromium.org>
Date: Wed Apr 19 04:32:44 2017

Split initial methods of margin on ComputedStyle.

Currently the margin properties share the same method for the initial
value: initialMargin(). This makes it difficult to generate
because the generator will generate four copies of initialMargin(),
causing a name conflict.

This patch splits the initialMargin() method into four separate methods,
one for each property.

BUG=628043

Review-Url: https://codereview.chromium.org/2825663002
Cr-Commit-Position: refs/heads/master@{#465490}

[modify] https://crrev.com/c0abb68d248b76ecae92ad893db3886edd3aa59d/third_party/WebKit/Source/core/css/CSSProperties.json5
[modify] https://crrev.com/c0abb68d248b76ecae92ad893db3886edd3aa59d/third_party/WebKit/Source/core/style/ComputedStyle.h

Project Member Comment 151 by bugdroid1@chromium.org, Apr 20
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/6a3a1f8d359249a0c9abd5e9630c14a63afebf66

commit 6a3a1f8d359249a0c9abd5e9630c14a63afebf66
Author: shend <shend@chromium.org>
Date: Thu Apr 20 00:34:51 2017

Remove json5_generator.Writer parameters with specification None.

There are a few places where the parameter specification is None. This
is intended to indicate that this parameter has no restrictions on its
values. However, in actual JSON files, this is expressed by using an
empty dictionary '{}' instead of None. This patch changes None to '{}'
to be consistent with JSON files.

BUG=628043

Review-Url: https://codereview.chromium.org/2806153002
Cr-Commit-Position: refs/heads/master@{#465825}

[modify] https://crrev.com/6a3a1f8d359249a0c9abd5e9630c14a63afebf66/third_party/WebKit/Source/build/scripts/json5_generator.py
[modify] https://crrev.com/6a3a1f8d359249a0c9abd5e9630c14a63afebf66/third_party/WebKit/Source/build/scripts/make_event_factory.py
[modify] https://crrev.com/6a3a1f8d359249a0c9abd5e9630c14a63afebf66/third_party/WebKit/Source/build/scripts/make_names.py

Project Member Comment 152 by bugdroid1@chromium.org, Apr 20
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/8879a4bb7e30c99c71fe7a68936a168f7204462a

commit 8879a4bb7e30c99c71fe7a68936a168f7204462a
Author: shend <shend@chromium.org>
Date: Thu Apr 20 00:42:03 2017

Split initial methods of padding on ComputedStyle.

Currently the padding properties share the same method for the initial
value: initialPadding(). This makes it difficult to generate
because the generator will generate four copies of initialPadding(),
causing a name conflict.

This patch splits the initialPadding() method into four separate methods,
one for each property.

BUG=628043

Review-Url: https://codereview.chromium.org/2825653002
Cr-Commit-Position: refs/heads/master@{#465827}

[modify] https://crrev.com/8879a4bb7e30c99c71fe7a68936a168f7204462a/third_party/WebKit/Source/core/css/CSSProperties.json5
[modify] https://crrev.com/8879a4bb7e30c99c71fe7a68936a168f7204462a/third_party/WebKit/Source/core/style/ComputedStyle.h

Project Member Comment 153 by bugdroid1@chromium.org, Apr 20
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/3852131aac93102979746cc4fe4fd28ff0729903

commit 3852131aac93102979746cc4fe4fd28ff0729903
Author: shend <shend@chromium.org>
Date: Thu Apr 20 02:52:27 2017

Don't use return_type macro on base initial methods in ComputedStyle.

There is a Jinja macro called return_type that takes a field, and
returns the ref version of field.type_name if the field is not a
bitfield. However, this macro is being used as the return type for
initial methods like InitialWidth(). This is is bad because if the
field is not a bitfield, then we would generate some code like:

static const Width& InitialPosition() {
   return Length();
}

instead of the correct:

static Width InitialPosition() {
   return Length();
}

BUG=628043

Review-Url: https://codereview.chromium.org/2830973002
Cr-Commit-Position: refs/heads/master@{#465871}

[modify] https://crrev.com/3852131aac93102979746cc4fe4fd28ff0729903/third_party/WebKit/Source/build/scripts/templates/fields/base.tmpl

Project Member Comment 154 by bugdroid1@chromium.org, Apr 20
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/ecbdd0c68e34edbb28283db17f52cb3fa7f95afc

commit ecbdd0c68e34edbb28283db17f52cb3fa7f95afc
Author: shend <shend@chromium.org>
Date: Thu Apr 20 03:00:27 2017

Don't decode move setter on external fields in ComputedStyle.

External fields such as 'width' have non bitfield types such as Length.
We generate move setters for these fields that take its argument by
rvalue reference:

void SetWidth(Length&& v) {
  width_ = std::move(v);
}

However, in the Jinja template, we use the Jinja macro decode on the
value v. The decode macro tries to perform a static_cast if the field
is a bitfield. But since external fields can never be a bitfield, this
is a no-op.

This patch removes the call to the decode macro.

BUG=628043

Review-Url: https://codereview.chromium.org/2830793003
Cr-Commit-Position: refs/heads/master@{#465876}

[modify] https://crrev.com/ecbdd0c68e34edbb28283db17f52cb3fa7f95afc/third_party/WebKit/Source/build/scripts/templates/fields/external.tmpl

Project Member Comment 155 by bugdroid1@chromium.org, Apr 20
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/c695cc71ebc3348aa9db521f7f4324502a0134e3

commit c695cc71ebc3348aa9db521f7f4324502a0134e3
Author: shend <shend@chromium.org>
Date: Thu Apr 20 03:44:49 2017

Remove 'name' parameter from CSSPropertyAPIMethods.json5.

In the parameters section of CSSPropertyAPIMethods.json5, there is an
entry for 'name'. However, 'name' is a special parameter that is
used by the json5 reader. In this case, the 'name' entry is superfluous.
This patch removes the 'name' entry and adds an assert to prevent
future uses of 'name'.

BUG=628043

Review-Url: https://codereview.chromium.org/2806163002
Cr-Commit-Position: refs/heads/master@{#465891}

[modify] https://crrev.com/c695cc71ebc3348aa9db521f7f4324502a0134e3/third_party/WebKit/Source/build/scripts/json5_generator.py
[modify] https://crrev.com/c695cc71ebc3348aa9db521f7f4324502a0134e3/third_party/WebKit/Source/core/css/properties/CSSPropertyAPIMethods.json5

Project Member Comment 156 by bugdroid1@chromium.org, Apr 20
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/efefb24c1c0d9c7af36c2af86933e5e6e312c5a8

commit efefb24c1c0d9c7af36c2af86933e5e6e312c5a8
Author: shend <shend@chromium.org>
Date: Thu Apr 20 08:11:58 2017

Extract default naming logic in StyleBuilderWriter to a method.

Currently, StyleBuilderWriter augments its input with attributes related
to naming, which are used in its subclasses. However, this logic is in
the StyleBuilderWriter constructor, which makes it difficult to invok .
For example, it's difficult for a subclass to read a separate JSON file
and apply this naming logic on it.

This patch moves the naming logic out into a separate method that
subclasses can invoke at anytime. The separate method assumes the
existence of keys like 'getter' and 'custom_all', which do not exist
in NONPROPERTIES. Instead of going through all those keys and setting
their value to None, we just use a defaultdict so that any access to
missing keys returns None.

To show that it's working, we apply the same naming logic on both
properties and nonproperties in make_computed_style_base, despite the
two being stored separately.

BUG=628043

Review-Url: https://codereview.chromium.org/2811253002
Cr-Commit-Position: refs/heads/master@{#465944}

[modify] https://crrev.com/efefb24c1c0d9c7af36c2af86933e5e6e312c5a8/third_party/WebKit/Source/build/scripts/make_computed_style_base.py
[modify] https://crrev.com/efefb24c1c0d9c7af36c2af86933e5e6e312c5a8/third_party/WebKit/Source/build/scripts/make_style_builder.py

Project Member Comment 157 by bugdroid1@chromium.org, Apr 20
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/c8b65a9c8a99a53561f8fd337f98e0bf5ac98f96

commit c8b65a9c8a99a53561f8fd337f98e0bf5ac98f96
Author: nainar <nainar@chromium.org>
Date: Thu Apr 20 11:37:06 2017

Use generated getters/setters in ComputedStyle instead of directly accessing fields

Use generated getters/setters from
https://codereview.chromium.org/2786883002 in ComputedStyle instead of directly
accessing fields.

It also marks all generated fields as private to ensure no direct usage.

BUG=628043

Review-Url: https://codereview.chromium.org/2830573002
Cr-Commit-Position: refs/heads/master@{#465973}

[modify] https://crrev.com/c8b65a9c8a99a53561f8fd337f98e0bf5ac98f96/third_party/WebKit/Source/build/scripts/templates/ComputedStyleBase.h.tmpl
[modify] https://crrev.com/c8b65a9c8a99a53561f8fd337f98e0bf5ac98f96/third_party/WebKit/Source/core/style/ComputedStyle.cpp
[modify] https://crrev.com/c8b65a9c8a99a53561f8fd337f98e0bf5ac98f96/third_party/WebKit/Source/core/style/ComputedStyle.h

Project Member Comment 158 by bugdroid1@chromium.org, Apr 20
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/abefb698e5e6ad81853ffdd0560c9efa4740464d

commit abefb698e5e6ad81853ffdd0560c9efa4740464d
Author: shend <shend@chromium.org>
Date: Thu Apr 20 22:34:42 2017

Allow (non)property fields to be hardcoded in make_computed_style_base.

Currently we divide ComputedStyle fields into two groups: properties
and nonproperties. Properties represent actual CSS properties and are
read from CSSProperties.json5. Nonproperties represent fields that do
not correspond to a CSS property and are read from a hardcoded list in
the generator script.

However, some fields act like properties, but do not correspond to
CSS properties (e.g. margin is a combination of four properties, but it
itself is not a CSS property). These need to be stored in the hardcoded
list. But since everything in the hardcoded list is considered a
nonproperty, this will not generate the right code.

Hence, this patch changes the hardcoded list to be rather a list of
"extra" fields which can be property or nonproperty fields. To
distinguish between properties and nonproperties, we introduce a
has_custom_compare_and_copy parameter. If true, the field is a
nonproperty.

This is prework for replacing the concept of nonproperties with
has_custom_compare_and_copy entirely.

This patch does not affect existing behaviour.

BUG=628043

Review-Url: https://codereview.chromium.org/2811273003
Cr-Commit-Position: refs/heads/master@{#466166}

[modify] https://crrev.com/abefb698e5e6ad81853ffdd0560c9efa4740464d/third_party/WebKit/Source/build/scripts/make_computed_style_base.py

Project Member Comment 159 by bugdroid1@chromium.org, Apr 20
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/3c3d810d9753f4c0138a84e0a4965880866304ed

commit 3c3d810d9753f4c0138a84e0a4965880866304ed
Author: shend <shend@chromium.org>
Date: Thu Apr 20 22:55:42 2017

Make json5_generator.Writer always take a list of files.

The json5_generator.Writer constructor has a convenient interface where
you can specify either the name of a single file you want to read from,
or a list of files. However, this requires a branch in Writer that
checks if the argument is a string or a list, which is not Pythonic.

This patch makes Writer always take a list of files.

BUG=628043

Review-Url: https://codereview.chromium.org/2815773003
Cr-Commit-Position: refs/heads/master@{#466175}

[modify] https://crrev.com/3c3d810d9753f4c0138a84e0a4965880866304ed/third_party/WebKit/Source/build/scripts/json5_generator.py
[modify] https://crrev.com/3c3d810d9753f4c0138a84e0a4965880866304ed/third_party/WebKit/Source/build/scripts/make_css_property_apis.py

Project Member Comment 160 by bugdroid1@chromium.org, Apr 20
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/4187e7d068935829eb5a914b7f3f2b8144e3bb98

commit 4187e7d068935829eb5a914b7f3f2b8144e3bb98
Author: shend <shend@chromium.org>
Date: Thu Apr 20 23:01:35 2017

Move hardcoded extra fields to its own JSON5 file.

For extra fields in ComputedStyle, we have been hardcoding their
values in the generator script. However, this is ugly and not
sustainable. This patch moves them into its own JSON file.

This patch does not change generated code.

BUG=628043

Review-Url: https://codereview.chromium.org/2788353002
Cr-Commit-Position: refs/heads/master@{#466178}

[modify] https://crrev.com/4187e7d068935829eb5a914b7f3f2b8144e3bb98/third_party/WebKit/Source/build/scripts/make_computed_style_base.py
[modify] https://crrev.com/4187e7d068935829eb5a914b7f3f2b8144e3bb98/third_party/WebKit/Source/core/BUILD.gn
[add] https://crrev.com/4187e7d068935829eb5a914b7f3f2b8144e3bb98/third_party/WebKit/Source/core/css/ComputedStyleExtraFields.json5

Project Member Comment 161 by bugdroid1@chromium.org, Apr 21
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/786615ba373b0e7a6e488364c49f2cf56942de3f

commit 786615ba373b0e7a6e488364c49f2cf56942de3f
Author: shend <shend@chromium.org>
Date: Fri Apr 21 02:26:14 2017

Split StyleSurroundData::margin into four individual Lengths.

In StyleSurroundData, the margin longhand properties are stored in a
single LengthBox. This makes it difficult to generate because the
generator assumes that properties don't share storage.

This patch splits the LengthBox margin into four Lengths: margin_left,
margin_right, margin_top, margin_bottom. This enables us to generate
the margin properties properly.

This patch also adds a MarginEqual helper function to check if two
margins have the same value.

BUG=628043

Review-Url: https://codereview.chromium.org/2824973002
Cr-Commit-Position: refs/heads/master@{#466233}

[modify] https://crrev.com/786615ba373b0e7a6e488364c49f2cf56942de3f/third_party/WebKit/Source/core/style/ComputedStyle.cpp
[modify] https://crrev.com/786615ba373b0e7a6e488364c49f2cf56942de3f/third_party/WebKit/Source/core/style/ComputedStyle.h
[modify] https://crrev.com/786615ba373b0e7a6e488364c49f2cf56942de3f/third_party/WebKit/Source/core/style/StyleSurroundData.cpp
[modify] https://crrev.com/786615ba373b0e7a6e488364c49f2cf56942de3f/third_party/WebKit/Source/core/style/StyleSurroundData.h
[modify] https://crrev.com/786615ba373b0e7a6e488364c49f2cf56942de3f/third_party/WebKit/Source/platform/LengthBox.cpp
[modify] https://crrev.com/786615ba373b0e7a6e488364c49f2cf56942de3f/third_party/WebKit/Source/platform/LengthBox.h

Project Member Comment 162 by bugdroid1@chromium.org, Apr 21
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/a83d36d99006b177f36fccbe214fdc3614ec8486

commit a83d36d99006b177f36fccbe214fdc3614ec8486
Author: shend <shend@chromium.org>
Date: Fri Apr 21 04:09:47 2017

Clean up ComputedStyle field templates.

This patch reduces code duplication by making the macros in field.tmpl
and base.tmpl more generic and granular.

- Rename argument_type(field) -> const_ref(field)
- Rename return_type(field) -> nonconst_ref(field)
- Split base.decl_public_methods into:
  - base.decl_initial_method
  - base.decl_getter_method
  - base.decl_setter_method
  - base.decl_resetter_method
- Split base.decl_protected_methods into:
  - base.decl_mutable_method
  - base.decl_internal_getter_method
  - base.decl_internal_setter_method

Diff of generated files:
https://gist.github.com/darrnshn/a4f1071f9901d5d4b321ebd166c10dfa/revisions

BUG=628043

Review-Url: https://codereview.chromium.org/2829213002
Cr-Commit-Position: refs/heads/master@{#466255}

[modify] https://crrev.com/a83d36d99006b177f36fccbe214fdc3614ec8486/third_party/WebKit/Source/build/scripts/templates/fields/base.tmpl
[modify] https://crrev.com/a83d36d99006b177f36fccbe214fdc3614ec8486/third_party/WebKit/Source/build/scripts/templates/fields/external.tmpl
[modify] https://crrev.com/a83d36d99006b177f36fccbe214fdc3614ec8486/third_party/WebKit/Source/build/scripts/templates/fields/field.tmpl
[modify] https://crrev.com/a83d36d99006b177f36fccbe214fdc3614ec8486/third_party/WebKit/Source/build/scripts/templates/fields/keyword.tmpl
[modify] https://crrev.com/a83d36d99006b177f36fccbe214fdc3614ec8486/third_party/WebKit/Source/build/scripts/templates/fields/monotonic_flag.tmpl
[modify] https://crrev.com/a83d36d99006b177f36fccbe214fdc3614ec8486/third_party/WebKit/Source/build/scripts/templates/fields/primitive.tmpl
[modify] https://crrev.com/a83d36d99006b177f36fccbe214fdc3614ec8486/third_party/WebKit/Source/build/scripts/templates/fields/storage_only.tmpl

Project Member Comment 163 by bugdroid1@chromium.org, Apr 24 (4 days ago)
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/7d5e129a2deae3313aa912575ff90faba8583b61

commit 7d5e129a2deae3313aa912575ff90faba8583b61
Author: nainar <nainar@chromium.org>
Date: Mon Apr 24 02:58:23 2017

Split StyleSurroundData::padding into four individual Lengths.

In StyleSurroundData, the padding longhand properties are stored in a
single LengthBox. This makes it difficult to generate because the
generator assumes that properties don't share storage.

This patch splits the LengthBox padding into four Lengths:
padding_{left/right/top/bottom}. This enables us to generate
the padding properties properly.

This patch also adds PaddingEqual helper functions to check if two
margins have the same value and changes the callsites to
ComputedStyle::Padding() to cater for the fact that the LengthBox has
been broken into its individual Length components.

BUG=628043

Review-Url: https://codereview.chromium.org/2834603003
Cr-Commit-Position: refs/heads/master@{#466582}

[modify] https://crrev.com/7d5e129a2deae3313aa912575ff90faba8583b61/third_party/WebKit/Source/core/layout/LayoutTheme.cpp
[modify] https://crrev.com/7d5e129a2deae3313aa912575ff90faba8583b61/third_party/WebKit/Source/core/style/ComputedStyle.cpp
[modify] https://crrev.com/7d5e129a2deae3313aa912575ff90faba8583b61/third_party/WebKit/Source/core/style/ComputedStyle.h
[modify] https://crrev.com/7d5e129a2deae3313aa912575ff90faba8583b61/third_party/WebKit/Source/core/style/StyleSurroundData.cpp
[modify] https://crrev.com/7d5e129a2deae3313aa912575ff90faba8583b61/third_party/WebKit/Source/core/style/StyleSurroundData.h
[modify] https://crrev.com/7d5e129a2deae3313aa912575ff90faba8583b61/third_party/WebKit/Source/platform/Theme.cpp
[modify] https://crrev.com/7d5e129a2deae3313aa912575ff90faba8583b61/third_party/WebKit/Source/platform/Theme.h
[modify] https://crrev.com/7d5e129a2deae3313aa912575ff90faba8583b61/third_party/WebKit/Source/platform/mac/ThemeMac.h
[modify] https://crrev.com/7d5e129a2deae3313aa912575ff90faba8583b61/third_party/WebKit/Source/platform/mac/ThemeMac.mm

Project Member Comment 164 by bugdroid1@chromium.org, Apr 26 (2 days ago)
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/cb7ad92fe2a8bd9561264169b6765c75e82eea23

commit cb7ad92fe2a8bd9561264169b6765c75e82eea23
Author: shend <shend@chromium.org>
Date: Wed Apr 26 00:59:12 2017

Give consistent names to subgroups of ComputedStyle.

ComputedStyle has several DataRef members that are named inconsistently.
This patch changes the following names:
- surround_ -> surround_data_
- box_ -> box_data_
- visual_ -> visual_data_
- background_ -> background_data_

This makes the members consistent, so that they can be easily generated.

BUG=628043

Review-Url: https://codereview.chromium.org/2834543007
Cr-Commit-Position: refs/heads/master@{#467189}

[modify] https://crrev.com/cb7ad92fe2a8bd9561264169b6765c75e82eea23/third_party/WebKit/Source/core/style/ComputedStyle.cpp
[modify] https://crrev.com/cb7ad92fe2a8bd9561264169b6765c75e82eea23/third_party/WebKit/Source/core/style/ComputedStyle.h

Project Member Comment 165 by bugdroid1@chromium.org, Yesterday (47 hours ago)
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/2692eeb5bf7dd77e68141dd9d80ff40f24c170f2

commit 2692eeb5bf7dd77e68141dd9d80ff40f24c170f2
Author: shend <shend@chromium.org>
Date: Wed Apr 26 05:16:14 2017

Generate subgroup StyleSurroundData in ComputedStyle.

StyleSurroundData is a class that contains the values of the offset,
margin, padding and border properties. This patch generates this class
as a nested class inside ComputedStyle. We add an extra key in
CSSProperties.json5 called 'field_group' that specifies the name of the
group that the field is in. Fields with the same field_group are grouped
together into a nested class.

A few caveats:
- Causes perf regression because it doesn't exploit sharing of groups.
  The fix is in a dependent patch (to avoid bloating this CL). We
  will land the fix right after this patch is landed.
  https://codereview.chromium.org/2826633002
- We generate 'border' as 'storage_only', because it is a shorthand
  and not a CSS property.
- Subgroups are currently generated as nested classes of ComputedStyle,
  but this makes the code difficult to read. This may change in the
  future (such as putting subgroups in a ::detail namespace).
- We don't ASSERT_SIZE on subgroups yet.

Diff of generated files:
https://gist.github.com/darrnshn/876c8171fd134b373f28ca23e821d28f/revisions

BUG=628043

Review-Url: https://codereview.chromium.org/2786883002
Cr-Commit-Position: refs/heads/master@{#467239}

[modify] https://crrev.com/2692eeb5bf7dd77e68141dd9d80ff40f24c170f2/third_party/WebKit/Source/build/scripts/make_computed_style_base.py
[modify] https://crrev.com/2692eeb5bf7dd77e68141dd9d80ff40f24c170f2/third_party/WebKit/Source/build/scripts/name_utilities.py
[modify] https://crrev.com/2692eeb5bf7dd77e68141dd9d80ff40f24c170f2/third_party/WebKit/Source/build/scripts/templates/ComputedStyleBase.cpp.tmpl
[modify] https://crrev.com/2692eeb5bf7dd77e68141dd9d80ff40f24c170f2/third_party/WebKit/Source/build/scripts/templates/ComputedStyleBase.h.tmpl
[modify] https://crrev.com/2692eeb5bf7dd77e68141dd9d80ff40f24c170f2/third_party/WebKit/Source/build/scripts/templates/fields/base.tmpl
[modify] https://crrev.com/2692eeb5bf7dd77e68141dd9d80ff40f24c170f2/third_party/WebKit/Source/build/scripts/templates/fields/external.tmpl
[modify] https://crrev.com/2692eeb5bf7dd77e68141dd9d80ff40f24c170f2/third_party/WebKit/Source/build/scripts/templates/fields/field.tmpl
[add] https://crrev.com/2692eeb5bf7dd77e68141dd9d80ff40f24c170f2/third_party/WebKit/Source/build/scripts/templates/fields/group.tmpl
[modify] https://crrev.com/2692eeb5bf7dd77e68141dd9d80ff40f24c170f2/third_party/WebKit/Source/build/scripts/templates/fields/monotonic_flag.tmpl
[modify] https://crrev.com/2692eeb5bf7dd77e68141dd9d80ff40f24c170f2/third_party/WebKit/Source/core/BUILD.gn
[modify] https://crrev.com/2692eeb5bf7dd77e68141dd9d80ff40f24c170f2/third_party/WebKit/Source/core/css/CSSProperties.json5
[modify] https://crrev.com/2692eeb5bf7dd77e68141dd9d80ff40f24c170f2/third_party/WebKit/Source/core/css/ComputedStyleExtraFields.json5
[modify] https://crrev.com/2692eeb5bf7dd77e68141dd9d80ff40f24c170f2/third_party/WebKit/Source/core/style/BUILD.gn
[modify] https://crrev.com/2692eeb5bf7dd77e68141dd9d80ff40f24c170f2/third_party/WebKit/Source/core/style/ComputedStyle.cpp
[modify] https://crrev.com/2692eeb5bf7dd77e68141dd9d80ff40f24c170f2/third_party/WebKit/Source/core/style/ComputedStyle.h
[delete] https://crrev.com/b546eb97eb9f5c8683f0560a625208d5217a3d16/third_party/WebKit/Source/core/style/StyleSurroundData.cpp
[delete] https://crrev.com/b546eb97eb9f5c8683f0560a625208d5217a3d16/third_party/WebKit/Source/core/style/StyleSurroundData.h

Project Member Comment 166 by bugdroid1@chromium.org, Yesterday (47 hours ago)
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/51ad943c5fac355ab0166e1f47a104e8bc0b3bc6

commit 51ad943c5fac355ab0166e1f47a104e8bc0b3bc6
Author: shend <shend@chromium.org>
Date: Wed Apr 26 05:26:24 2017

Exploit sharing when comparing and copying groups in ComputedStyle.

Groups inside ComputedStyle, such as StyleSurroundData, are stored as
pointers. When we copy the StyleSurroundData of a ComputedStyle, instead
of copying each member inside StyleSurroundData, we can copy the pointer
itself and do a copy when we write to it (copy-on-write). Similarly,
when we compare two StyleSurroundData pointers, we can first check if
they're pointing to the same object. If so, then we know that the two
StyleSurroundDatas are equal without having to compare each member
inside StyleSurroundData.

This patch introduces two macros: fieldwise_compare and fieldwise_copy,
which generate the code to do this optimisation. These macros take a
a list of fields to compare/copy and generate the cheapest set of code
for that task, taking advantage of group sharing.

This patch removes the perf cost of:
https://codereview.chromium.org/2786883002

by generating the exact same code as what was originally handwritten.

Diff of generated code:
https://gist.github.com/darrnshn/fe97404e680016753030fc788fcf24ff/revisions

BUG=628043

Review-Url: https://codereview.chromium.org/2826633002
Cr-Commit-Position: refs/heads/master@{#467243}

[modify] https://crrev.com/51ad943c5fac355ab0166e1f47a104e8bc0b3bc6/third_party/WebKit/Source/build/scripts/make_computed_style_base.py
[modify] https://crrev.com/51ad943c5fac355ab0166e1f47a104e8bc0b3bc6/third_party/WebKit/Source/build/scripts/template_expander.py
[modify] https://crrev.com/51ad943c5fac355ab0166e1f47a104e8bc0b3bc6/third_party/WebKit/Source/build/scripts/templates/ComputedStyleBase.cpp.tmpl
[modify] https://crrev.com/51ad943c5fac355ab0166e1f47a104e8bc0b3bc6/third_party/WebKit/Source/build/scripts/templates/ComputedStyleBase.h.tmpl
[modify] https://crrev.com/51ad943c5fac355ab0166e1f47a104e8bc0b3bc6/third_party/WebKit/Source/build/scripts/templates/fields/field.tmpl

Project Member Comment 167 by bugdroid1@chromium.org, Yesterday (44 hours ago)
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/1d9e0b92b0a9552cd17b3956232842484415da31

commit 1d9e0b92b0a9552cd17b3956232842484415da31
Author: shend <shend@chromium.org>
Date: Wed Apr 26 07:32:15 2017

Make generated field groups inherit from RefCountedCopyable.

Currently generated groups such as StyleSurroundData inherit from
RefCounted, which means we have to explicitly specify a copy
constructor. Inheriting from RefCountedCopyable instead means we can
just use the compiler generated copy constructor.

Diff of generated files:
https://gist.github.com/darrnshn/b3f3492858caedc6359a0507dc173dff/revisions

BUG=628043

Review-Url: https://codereview.chromium.org/2799363002
Cr-Commit-Position: refs/heads/master@{#467262}

[modify] https://crrev.com/1d9e0b92b0a9552cd17b3956232842484415da31/third_party/WebKit/Source/build/scripts/templates/fields/group.tmpl

Project Member Comment 168 by bugdroid1@chromium.org, Yesterday (25 hours ago)
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/9cd2845fb2b733d9d3852839d47f4dc93bdec090

commit 9cd2845fb2b733d9d3852839d47f4dc93bdec090
Author: shend <shend@chromium.org>
Date: Thu Apr 27 03:08:44 2017

Generate StyleBackgroundData in ComputedStyleBase.

This patch generates the following fields as part of a group:
- background ('storage_only' of type FillLayer)
- background_color ('storage_only' of type Color)

Since both fields correspond to shorthands, we specify them in
ComputedStyleExtraFields.json5.

Diff of generated files:
https://gist.github.com/darrnshn/48a62d4ef7efe9f7a8c2b707eb57644f/revisions

BUG=628043

Review-Url: https://codereview.chromium.org/2841433002
Cr-Commit-Position: refs/heads/master@{#467561}

[modify] https://crrev.com/9cd2845fb2b733d9d3852839d47f4dc93bdec090/third_party/WebKit/Source/core/css/ComputedStyleExtraFields.json5
[modify] https://crrev.com/9cd2845fb2b733d9d3852839d47f4dc93bdec090/third_party/WebKit/Source/core/style/BUILD.gn
[modify] https://crrev.com/9cd2845fb2b733d9d3852839d47f4dc93bdec090/third_party/WebKit/Source/core/style/ComputedStyle.cpp
[modify] https://crrev.com/9cd2845fb2b733d9d3852839d47f4dc93bdec090/third_party/WebKit/Source/core/style/ComputedStyle.h
[delete] https://crrev.com/5ecb75c280ef3f9b1840a19305d6d9b5482ffe76/third_party/WebKit/Source/core/style/StyleBackgroundData.cpp
[delete] https://crrev.com/5ecb75c280ef3f9b1840a19305d6d9b5482ffe76/third_party/WebKit/Source/core/style/StyleBackgroundData.h

Project Member Comment 169 by bugdroid1@chromium.org, Today (22 hours ago)
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/a1db173fa4473293335929920dcb90c13f2390d4

commit a1db173fa4473293335929920dcb90c13f2390d4
Author: shend <shend@chromium.org>
Date: Thu Apr 27 05:52:41 2017

Rename StyleInheritedData members.

This patch renames:
- ComputedStyle::style_inherited_data_ -> ComputedStyle::inherited_data_
  (to be consistent with the other data refs like box_data_)
- Members of StyleInheritedData to have trailing underscore.

so that StyleInheritedData can be generated without name changes showing
up in the diff.

BUG=628043

Review-Url: https://codereview.chromium.org/2845463003
Cr-Commit-Position: refs/heads/master@{#467595}

[modify] https://crrev.com/a1db173fa4473293335929920dcb90c13f2390d4/third_party/WebKit/Source/core/style/ComputedStyle.cpp
[modify] https://crrev.com/a1db173fa4473293335929920dcb90c13f2390d4/third_party/WebKit/Source/core/style/ComputedStyle.h
[modify] https://crrev.com/a1db173fa4473293335929920dcb90c13f2390d4/third_party/WebKit/Source/core/style/StyleInheritedData.cpp
[modify] https://crrev.com/a1db173fa4473293335929920dcb90c13f2390d4/third_party/WebKit/Source/core/style/StyleInheritedData.h

Project Member Comment 170 by bugdroid1@chromium.org, Today (22 hours ago)
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/e965dad365db87339dfcfdf7d2d98c7eff17712c

commit e965dad365db87339dfcfdf7d2d98c7eff17712c
Author: shend <shend@chromium.org>
Date: Thu Apr 27 06:25:42 2017

Split initial methods of (/max/min)(width/height) on ComputedStyle.

Currently:
- width and height share the same initial method InitialSize
- minWidth and minHeight share the same initial method InitialMinSize
- maxWidth and maxHeight share the same initial method InitialMaxSize

This patch makes each of those properties use its own initial method so
that they can be more easily generated (the generator does not support
sharing of initial methods).

Diff of generated files:
https://gist.github.com/d058699c786d95762067b28ccfbc1774/revisions

BUG=628043

Review-Url: https://codereview.chromium.org/2841353002
Cr-Commit-Position: refs/heads/master@{#467603}

[modify] https://crrev.com/e965dad365db87339dfcfdf7d2d98c7eff17712c/third_party/WebKit/Source/core/css/CSSProperties.json5
[modify] https://crrev.com/e965dad365db87339dfcfdf7d2d98c7eff17712c/third_party/WebKit/Source/core/layout/LayoutBox.cpp
[modify] https://crrev.com/e965dad365db87339dfcfdf7d2d98c7eff17712c/third_party/WebKit/Source/core/style/ComputedStyle.h
[modify] https://crrev.com/e965dad365db87339dfcfdf7d2d98c7eff17712c/third_party/WebKit/Source/core/style/StyleBoxData.cpp

Project Member Comment 171 by bugdroid1@chromium.org, Today (21 hours ago)
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/2b61f1cbbd44c6ada5f7022ff3a55493f54836f5

commit 2b61f1cbbd44c6ada5f7022ff3a55493f54836f5
Author: shend <shend@chromium.org>
Date: Thu Apr 27 06:31:11 2017

Remove public methods on StyleBoxData and rename member.

This patch does two things:
- Remove public methods on StyleBoxData. This is because these methods
  will no longer exist once we generate StyleBoxData.
- Rename vertical_align_ -> vertical_align_length_, to differentiate it
  from the keyword part of vertical-align (also called vertical_align_,
  stored in ComputedStyleBase)

This is preparation for generating StyleBoxData.

BUG=628043

Review-Url: https://codereview.chromium.org/2844163002
Cr-Commit-Position: refs/heads/master@{#467606}

[modify] https://crrev.com/2b61f1cbbd44c6ada5f7022ff3a55493f54836f5/third_party/WebKit/Source/core/style/ComputedStyle.cpp
[modify] https://crrev.com/2b61f1cbbd44c6ada5f7022ff3a55493f54836f5/third_party/WebKit/Source/core/style/ComputedStyle.h
[modify] https://crrev.com/2b61f1cbbd44c6ada5f7022ff3a55493f54836f5/third_party/WebKit/Source/core/style/StyleBoxData.cpp
[modify] https://crrev.com/2b61f1cbbd44c6ada5f7022ff3a55493f54836f5/third_party/WebKit/Source/core/style/StyleBoxData.h

Project Member Comment 172 by bugdroid1@chromium.org, Today (21 hours ago)
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/2c6e211f16b282ce819a1c63e78ec2bfba7280f5

commit 2c6e211f16b282ce819a1c63e78ec2bfba7280f5
Author: shend <shend@chromium.org>
Date: Thu Apr 27 07:27:27 2017

Remove unused includes of StyleInheritedData.

Before we can generate StyleInheritedData, we must first remove any
references to it outside of ComputedStyle. A lot of files include the
header file for StyleInheritedData, but do not use it. This will cause
a compile error when we remove the file to generate it instead.

This patch removes the unused includes, as lead-up to generating
StyleInheritedData.

BUG=628043

Review-Url: https://codereview.chromium.org/2844613002
Cr-Commit-Position: refs/heads/master@{#467616}

[modify] https://crrev.com/2c6e211f16b282ce819a1c63e78ec2bfba7280f5/third_party/WebKit/Source/core/css/CSSCalculationValueTest.cpp
[modify] https://crrev.com/2c6e211f16b282ce819a1c63e78ec2bfba7280f5/third_party/WebKit/Source/core/css/CSSMatrix.cpp
[modify] https://crrev.com/2c6e211f16b282ce819a1c63e78ec2bfba7280f5/third_party/WebKit/Source/core/css/resolver/StyleResolverState.h
[modify] https://crrev.com/2c6e211f16b282ce819a1c63e78ec2bfba7280f5/third_party/WebKit/Source/core/html/HTMLTitleElement.cpp
[modify] https://crrev.com/2c6e211f16b282ce819a1c63e78ec2bfba7280f5/third_party/WebKit/Source/core/html/forms/DateTimeEditElement.cpp
[modify] https://crrev.com/2c6e211f16b282ce819a1c63e78ec2bfba7280f5/third_party/WebKit/Source/core/layout/LayoutFullScreen.h
[modify] https://crrev.com/2c6e211f16b282ce819a1c63e78ec2bfba7280f5/third_party/WebKit/Source/core/layout/LayoutInline.cpp
[modify] https://crrev.com/2c6e211f16b282ce819a1c63e78ec2bfba7280f5/third_party/WebKit/Source/core/layout/LayoutTable.cpp
[modify] https://crrev.com/2c6e211f16b282ce819a1c63e78ec2bfba7280f5/third_party/WebKit/Source/core/layout/LayoutTableRow.cpp
[modify] https://crrev.com/2c6e211f16b282ce819a1c63e78ec2bfba7280f5/third_party/WebKit/Source/web/WebLocalFrameImpl.cpp

Project Member Comment 173 by bugdroid1@chromium.org, Today (2 hours ago)
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/a0d005f4f1d364bb312aeb25cbbea0d82a980a26

commit a0d005f4f1d364bb312aeb25cbbea0d82a980a26
Author: shend <shend@chromium.org>
Date: Fri Apr 28 01:52:33 2017

Use generated copy and compare for OriginalDisplay in ComputedStyle.

The original_display_ field in ComputedStyle currently has generated
storage, but not copy and compare. This patch makes it use generated
copy and compare. Previously, 'has_custom_compare_and_copy' was set
to true, so the generator did not generate a compare and copy for
OriginalDisplay. By removing that line, we fall back to the default
value of false, which means the generator will now generate a
compare and copy.

This patch does not change behaviour, as the newly generated code is
the same as the code being removed.

Diff of generated files:
https://gist.github.com/darrnshn/942c8c2b4a5e42fe9b5c214388f0901f/revisions

BUG=628043

Review-Url: https://codereview.chromium.org/2831933003
Cr-Commit-Position: refs/heads/master@{#467818}

[modify] https://crrev.com/a0d005f4f1d364bb312aeb25cbbea0d82a980a26/third_party/WebKit/Source/core/css/ComputedStyleExtraFields.json5
[modify] https://crrev.com/a0d005f4f1d364bb312aeb25cbbea0d82a980a26/third_party/WebKit/Source/core/style/ComputedStyle.cpp

Project Member Comment 174 by bugdroid1@chromium.org, Today (55 minutes ago)
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/b68f094954f3a2173d54f748535c62528e1a6f35

commit b68f094954f3a2173d54f748535c62528e1a6f35
Author: shend <shend@chromium.org>
Date: Fri Apr 28 03:35:02 2017

Use generated copy and compare for VerticalAlign in ComputedStyle.

The vertical_align_ field in ComputedStyle currently has generated
storage, but not copy and compare. This patch makes it use generated
copy and compare. We are able to do this now because we have added
the 'has_custom_compare_and_copy' parameter in a previous patch.

Diff of generated files:
https://gist.github.com/183fa3073f5de347a685b1834913ee2e/revisions

BUG=628043

Review-Url: https://codereview.chromium.org/2834583004
Cr-Commit-Position: refs/heads/master@{#467874}

[modify] https://crrev.com/b68f094954f3a2173d54f748535c62528e1a6f35/third_party/WebKit/Source/core/css/ComputedStyleExtraFields.json5
[modify] https://crrev.com/b68f094954f3a2173d54f748535c62528e1a6f35/third_party/WebKit/Source/core/style/ComputedStyle.cpp

Sign in to add a comment