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 2016
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 2016
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 2016
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 2016
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 2016
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 2016
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 2016
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 2016
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 2016
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 31 by bugdroid1@chromium.org, Nov 28 2016
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 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
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
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, Apr 26
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, Apr 26
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, Apr 26
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, Apr 27
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, Apr 27
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, Apr 27
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, Apr 27
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, Apr 27
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, Apr 28
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, Apr 28
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

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

commit a7bdae0c8fc2af8615d676c546cef735a131a8f1
Author: shend <shend@chromium.org>
Date: Mon May 01 04:12:53 2017

Remove the concept of 'nonproperties' from ComputedStyle generator.

When we generate ComputedStyle, we differentiate between properties
(which are meant to correspond to CSS properties) and nonproperties
(everything else). However, this terminology is confusing:

- Some nonproperties are derived from real CSS properties (e.g.
  hasSimpleUnderline).
- The generator code contains a lot of "for property_ in nonproperties"
  which is quite confusing.
- The name does not reveal the actual difference between properties
  and nonproperties in terms of code generation.

This patch removes the field role of 'nonproperty' in favour of the
parameter 'has_custom_compare_and_copy'. So there are only two field
roles: 'property' (which includes flags like 'unique' and 'emptyState')
and 'inherited_flag'.

BUG=628043

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

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

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

commit e8abebbc560bc64554c06e0480c2c9e75b0d3d32
Author: shend <shend@chromium.org>
Date: Mon May 01 05:53:20 2017

Add heuristic to order non bit fields in ComputedStyleBase.

Currently, when we generate non bit fields, we order them in
alphabetical order. This may result in unnecessary padding, e.g.

struct {
  char a;
  /* char padding[3] */
  int b;
  char c;
  /* char padding[3] */
};

See [1] for an explanation.

This patch defines an ordering on field types so that we can sort
non bit fields from largest alignment size to smallest. This heuristic
minimises the padding most of the time:

struct {
  int b;
  char a;
  char c;
  /* char padding[2] */
};

This is purely a memory optimisation, not speed. It does not take into
account data access patterns and cache locality. We use the data from
[2] to define the order of types.

With this heuristic, some of the generated code has changed, but it is
unlikely to have changed the size of any structs.

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

[1] http://www.drdobbs.com/cpp/padding-and-rearranging-structure-member/240007649?pgno=2
[2] https://codereview.chromium.org/2841413002

BUG=628043

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

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

Project Member Comment 177 by bugdroid1@chromium.org, May 2
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/0784842ece8911097e2675e08666b44896ee7ab2

commit 0784842ece8911097e2675e08666b44896ee7ab2
Author: shend <shend@chromium.org>
Date: Tue May 02 04:30:44 2017

Revert of Generate StyleBackgroundData in ComputedStyleBase. (patchset #2 id:20001 of https://codereview.chromium.org/2841433002/ )

Reason for revert:
testing

Original issue's description:
> 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}
> Committed: https://chromium.googlesource.com/chromium/src/+/9cd2845fb2b733d9d3852839d47f4dc93bdec090

TBR=nainar@chromium.org,rune@opera.com
# Not skipping CQ checks because original CL landed more than 1 days ago.
BUG=628043

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

[modify] https://crrev.com/0784842ece8911097e2675e08666b44896ee7ab2/third_party/WebKit/Source/core/css/ComputedStyleExtraFields.json5
[modify] https://crrev.com/0784842ece8911097e2675e08666b44896ee7ab2/third_party/WebKit/Source/core/style/BUILD.gn
[modify] https://crrev.com/0784842ece8911097e2675e08666b44896ee7ab2/third_party/WebKit/Source/core/style/ComputedStyle.cpp
[modify] https://crrev.com/0784842ece8911097e2675e08666b44896ee7ab2/third_party/WebKit/Source/core/style/ComputedStyle.h
[add] https://crrev.com/0784842ece8911097e2675e08666b44896ee7ab2/third_party/WebKit/Source/core/style/StyleBackgroundData.cpp
[add] https://crrev.com/0784842ece8911097e2675e08666b44896ee7ab2/third_party/WebKit/Source/core/style/StyleBackgroundData.h

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

commit b70096349a396a97f3cc663c316f7ff259102c40
Author: shend <shend@chromium.org>
Date: Wed May 03 06:30:29 2017

Clean up StyleBackgroundData.

This patch:
- Removes its getters.
- Makes it inherit from RefCountedCopyable.
- Renames color_ to background_color

This is to set up for generating StyleBackgroundData.

BUG=628043

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

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

Project Member Comment 179 by bugdroid1@chromium.org, May 3
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/9c87e10d5fb83551260b6c48de694eb7946b98a8

commit 9c87e10d5fb83551260b6c48de694eb7946b98a8
Author: nainar <nainar@chromium.org>
Date: Wed May 03 06:39:50 2017

Move LengthSizes border-*-radius out of BorderData

In StyleSurroundData, the border longhand properties are stored in a
single BorderData. This makes it difficult to generate because the
generator assumes that properties don't share storage.

This patch splits the LenthSize objects maintaining the border-*-radius
into individual properties stored directly on the surround group
instead.

Generated files diff here: https://gist.github.com/nainar/3192118aab7de3831137a4ae2cc73958/revisions

BUG=628043

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

[modify] https://crrev.com/9c87e10d5fb83551260b6c48de694eb7946b98a8/third_party/WebKit/Source/build/scripts/make_computed_style_base.py
[modify] https://crrev.com/9c87e10d5fb83551260b6c48de694eb7946b98a8/third_party/WebKit/Source/core/css/CSSProperties.json5
[modify] https://crrev.com/9c87e10d5fb83551260b6c48de694eb7946b98a8/third_party/WebKit/Source/core/css/resolver/StyleResolver.cpp
[modify] https://crrev.com/9c87e10d5fb83551260b6c48de694eb7946b98a8/third_party/WebKit/Source/core/layout/LayoutBox.cpp
[modify] https://crrev.com/9c87e10d5fb83551260b6c48de694eb7946b98a8/third_party/WebKit/Source/core/layout/LayoutTableBoxComponent.cpp
[modify] https://crrev.com/9c87e10d5fb83551260b6c48de694eb7946b98a8/third_party/WebKit/Source/core/style/BorderData.h
[modify] https://crrev.com/9c87e10d5fb83551260b6c48de694eb7946b98a8/third_party/WebKit/Source/core/style/CachedUAStyle.h
[modify] https://crrev.com/9c87e10d5fb83551260b6c48de694eb7946b98a8/third_party/WebKit/Source/core/style/ComputedStyle.cpp
[modify] https://crrev.com/9c87e10d5fb83551260b6c48de694eb7946b98a8/third_party/WebKit/Source/core/style/ComputedStyle.h

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

commit fa4d44124befc9b262884ea7af6e53b87f0baf03
Author: shend <shend@chromium.org>
Date: Wed May 03 07:07:17 2017

Omit .Get() on calls to DataEquivalent in StyleRareInheritedData.

StyleRareInheritedData contains a few members stored as RefPtr<> or
Persistent<>. To compare these members, we can't use == because that
performs a pointer comparison, so instead we use a helper method called
DataEquivalent that checks both the pointer and the data itself.

For some members, DataEquivalent is being used like this:

  DataEquivalent(foo.Get(), o.foo.Get())

However, DataEquivalent is overloaded for RefPtr and Persistent, so we
can do this instead:

  DataEquivalent(foo, o.foo)

This patch removes .Get() calls on DataEquivalent to take advantage of
the overloads.

BUG=628043

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

[modify] https://crrev.com/fa4d44124befc9b262884ea7af6e53b87f0baf03/third_party/WebKit/Source/core/style/StyleRareInheritedData.cpp

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

commit b79cca1258ae31a889df207ce5f2548cf0f540d5
Author: shend <shend@chromium.org>
Date: Wed May 03 11:13:36 2017

Move StyleBackgroundData.cpp to be inline in StyleBackgroundData.h

This patch removes StyleBackgroundData.cpp, and moves all its contents
to be inline in StyleBackgroundData.h

This is prework for generating StyleBackgroundData.

BUG=628043

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

[modify] https://crrev.com/b79cca1258ae31a889df207ce5f2548cf0f540d5/third_party/WebKit/Source/core/style/BUILD.gn
[delete] https://crrev.com/41da09b543495010a2836b82ee7273d298183d47/third_party/WebKit/Source/core/style/StyleBackgroundData.cpp
[modify] https://crrev.com/b79cca1258ae31a889df207ce5f2548cf0f540d5/third_party/WebKit/Source/core/style/StyleBackgroundData.h

Project Member Comment 182 by bugdroid1@chromium.org, May 3
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/0e30fd46d65b9955fa61a528efae5bf43adec2b5

commit 0e30fd46d65b9955fa61a528efae5bf43adec2b5
Author: shend <shend@chromium.org>
Date: Wed May 03 13:12:49 2017

Move StyleBackgroundData.h to a nested class in ComputedStyle.

This patch removes StyleBackgroundData.h, moving its contents to a
nested class inside ComputedStyle.

BUG=628043

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

[modify] https://crrev.com/0e30fd46d65b9955fa61a528efae5bf43adec2b5/third_party/WebKit/Source/core/style/BUILD.gn
[modify] https://crrev.com/0e30fd46d65b9955fa61a528efae5bf43adec2b5/third_party/WebKit/Source/core/style/ComputedStyle.h
[delete] https://crrev.com/656ba920a74cb5e83d65712d1f97b3cdde335197/third_party/WebKit/Source/core/style/StyleBackgroundData.h

Project Member Comment 183 by bugdroid1@chromium.org, May 5
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/8976caef37205d31c6b73aec7f008a652671f076

commit 8976caef37205d31c6b73aec7f008a652671f076
Author: shend <shend@chromium.org>
Date: Fri May 05 01:31:19 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.

All deleted code are correspondingly generated in
ComputedStyleBase, apart from the line

  background_data_(o.background_data_)

which is implicit in the compiler generated ComputedStyleBase
copy constructor.

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

BUG=628043

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

[modify] https://crrev.com/8976caef37205d31c6b73aec7f008a652671f076/third_party/WebKit/Source/core/css/ComputedStyleExtraFields.json5
[modify] https://crrev.com/8976caef37205d31c6b73aec7f008a652671f076/third_party/WebKit/Source/core/style/ComputedStyle.cpp
[modify] https://crrev.com/8976caef37205d31c6b73aec7f008a652671f076/third_party/WebKit/Source/core/style/ComputedStyle.h

Project Member Comment 184 by bugdroid1@chromium.org, May 8
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/60bc5e0281871949b67b8d7d3a2f0bc3db72f98c

commit 60bc5e0281871949b67b8d7d3a2f0bc3db72f98c
Author: shend <shend@chromium.org>
Date: Mon May 08 09:45:11 2017

Generate StyleVisualData in ComputedStyleBase.

This patch generates the following fields as part of a group:
- clip ('storage_only' of type LengthBox)
- HasAutoClip ('storage_only' of type bool)
- text-decoration ('storage_only' of enum type TextDecoration)
- zoom ('storage_only' of type float)

Since HasAutoClip doesn't correspond to a CSS property, we specify
it in ComputedStyleExtraFields.json5.

Furthermore, text-decoration is a keyword CSS property, but it
can take on any subset of values from a set of keywords. We can't
generate this kind of fields yet. Instead of complicating this
patch with the generation of text-decoration, we will specify it as
a storage_only field in ComputedStyleExtraFields.json5 with a
field size of 4 bits (we can't specify it in CSSProperties.json5
since that file doesn't support field sizes).

A future patch will generate text-decoration properly.

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

BUG=628043

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

[modify] https://crrev.com/60bc5e0281871949b67b8d7d3a2f0bc3db72f98c/third_party/WebKit/Source/core/css/CSSProperties.json5
[modify] https://crrev.com/60bc5e0281871949b67b8d7d3a2f0bc3db72f98c/third_party/WebKit/Source/core/css/ComputedStyleExtraFields.json5
[modify] https://crrev.com/60bc5e0281871949b67b8d7d3a2f0bc3db72f98c/third_party/WebKit/Source/core/style/BUILD.gn
[modify] https://crrev.com/60bc5e0281871949b67b8d7d3a2f0bc3db72f98c/third_party/WebKit/Source/core/style/ComputedStyle.cpp
[modify] https://crrev.com/60bc5e0281871949b67b8d7d3a2f0bc3db72f98c/third_party/WebKit/Source/core/style/ComputedStyle.h
[delete] https://crrev.com/fb894618a7d0a2145e16513223e18f8f2d50b1bf/third_party/WebKit/Source/core/style/StyleVisualData.cpp
[delete] https://crrev.com/fb894618a7d0a2145e16513223e18f8f2d50b1bf/third_party/WebKit/Source/core/style/StyleVisualData.h

Project Member Comment 185 by bugdroid1@chromium.org, May 9
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/5a563421457c31c1bb6cdac72c899db056f1adc7

commit 5a563421457c31c1bb6cdac72c899db056f1adc7
Author: nainar <nainar@chromium.org>
Date: Tue May 09 10:04:48 2017

Move border-*-width out of BorderValue and store on SurroundData in ComputedStyle instead

This patch moves the storage of border-*-width away from BorderValue.
We instead store them on the generated SurroundData group on
ComputedStyle instead.

Since BorderValue is used by other classes such as OutlineValue and
MultiColData we have changed BorderData to store the
border-*-(style/color) information on BorderColorAndStyle which is the
BorderValue class without the border-*-width information.

The long term intention is to move all information away from
BorderColorAndStyle - it is a temporary class to store information as
we generate border-*-* iteratively.

Please note that we convert BorderColorAndStyle to a BorderValue when we
send information over to the Layout system to make the interfacing easy.
This will be changed to creating a new BorderValue from the individual
values in the long run or something along those lines
(pending discussion.)

Generated diff: https://gist.github.com/nainar/296dda6afe541b6ca6da18a2923d0ef9/revisions

BUG=628043

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

[modify] https://crrev.com/5a563421457c31c1bb6cdac72c899db056f1adc7/third_party/WebKit/Source/build/scripts/make_computed_style_base.py
[modify] https://crrev.com/5a563421457c31c1bb6cdac72c899db056f1adc7/third_party/WebKit/Source/build/scripts/templates/ComputedStyleBase.cpp.tmpl
[modify] https://crrev.com/5a563421457c31c1bb6cdac72c899db056f1adc7/third_party/WebKit/Source/build/scripts/templates/ComputedStyleBase.h.tmpl
[modify] https://crrev.com/5a563421457c31c1bb6cdac72c899db056f1adc7/third_party/WebKit/Source/core/css/CSSProperties.json5
[modify] https://crrev.com/5a563421457c31c1bb6cdac72c899db056f1adc7/third_party/WebKit/Source/core/css/ComputedStyleExtraFields.json5
[modify] https://crrev.com/5a563421457c31c1bb6cdac72c899db056f1adc7/third_party/WebKit/Source/core/css/resolver/StyleResolver.cpp
[modify] https://crrev.com/5a563421457c31c1bb6cdac72c899db056f1adc7/third_party/WebKit/Source/core/layout/LayoutBox.cpp
[modify] https://crrev.com/5a563421457c31c1bb6cdac72c899db056f1adc7/third_party/WebKit/Source/core/layout/LayoutTable.cpp
[modify] https://crrev.com/5a563421457c31c1bb6cdac72c899db056f1adc7/third_party/WebKit/Source/core/layout/LayoutTable.h
[modify] https://crrev.com/5a563421457c31c1bb6cdac72c899db056f1adc7/third_party/WebKit/Source/core/layout/LayoutTableBoxComponent.cpp
[modify] https://crrev.com/5a563421457c31c1bb6cdac72c899db056f1adc7/third_party/WebKit/Source/core/layout/LayoutTableCell.h
[modify] https://crrev.com/5a563421457c31c1bb6cdac72c899db056f1adc7/third_party/WebKit/Source/core/layout/LayoutTableCol.cpp
[modify] https://crrev.com/5a563421457c31c1bb6cdac72c899db056f1adc7/third_party/WebKit/Source/core/layout/LayoutTableCol.h
[modify] https://crrev.com/5a563421457c31c1bb6cdac72c899db056f1adc7/third_party/WebKit/Source/core/layout/LayoutTableRow.cpp
[modify] https://crrev.com/5a563421457c31c1bb6cdac72c899db056f1adc7/third_party/WebKit/Source/core/layout/LayoutTableRow.h
[modify] https://crrev.com/5a563421457c31c1bb6cdac72c899db056f1adc7/third_party/WebKit/Source/core/layout/LayoutTableSection.cpp
[modify] https://crrev.com/5a563421457c31c1bb6cdac72c899db056f1adc7/third_party/WebKit/Source/core/layout/LayoutTableSection.h
[modify] https://crrev.com/5a563421457c31c1bb6cdac72c899db056f1adc7/third_party/WebKit/Source/core/style/BUILD.gn
[add] https://crrev.com/5a563421457c31c1bb6cdac72c899db056f1adc7/third_party/WebKit/Source/core/style/BorderColorAndStyle.h
[modify] https://crrev.com/5a563421457c31c1bb6cdac72c899db056f1adc7/third_party/WebKit/Source/core/style/BorderData.h
[modify] https://crrev.com/5a563421457c31c1bb6cdac72c899db056f1adc7/third_party/WebKit/Source/core/style/BorderValue.h
[modify] https://crrev.com/5a563421457c31c1bb6cdac72c899db056f1adc7/third_party/WebKit/Source/core/style/CachedUAStyle.h
[modify] https://crrev.com/5a563421457c31c1bb6cdac72c899db056f1adc7/third_party/WebKit/Source/core/style/ComputedStyle.cpp
[modify] https://crrev.com/5a563421457c31c1bb6cdac72c899db056f1adc7/third_party/WebKit/Source/core/style/ComputedStyle.h
[modify] https://crrev.com/5a563421457c31c1bb6cdac72c899db056f1adc7/third_party/WebKit/Source/core/style/ComputedStyleConstants.h
[modify] https://crrev.com/5a563421457c31c1bb6cdac72c899db056f1adc7/third_party/WebKit/Source/core/style/OutlineValue.h

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

commit fc17a86b6a7a678a7125b0caa7c0aa1c1bee6713
Author: shend <shend@chromium.org>
Date: Thu May 11 08:03:51 2017

Move StyleBoxData.cpp to be inline in StyleBoxData.h.

This patch removes StyleBoxData.cpp, and moves all its contents to be
inline in StyleBoxData.h

This is prework for generating StyleBoxData.

BUG=628043

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

[modify] https://crrev.com/fc17a86b6a7a678a7125b0caa7c0aa1c1bee6713/third_party/WebKit/Source/core/style/BUILD.gn
[delete] https://crrev.com/cb4e6a04496ddfff77976950c620fb3448abcd96/third_party/WebKit/Source/core/style/StyleBoxData.cpp
[modify] https://crrev.com/fc17a86b6a7a678a7125b0caa7c0aa1c1bee6713/third_party/WebKit/Source/core/style/StyleBoxData.h

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

commit e8e5df6b838075a0dc6e584853f1f795ac5af0b3
Author: shend <shend@chromium.org>
Date: Thu May 11 08:13:34 2017

Check if value changed when setting nested fields in ComputedStyleBase.

Many of the setters in ComputedStyle use a macro called SET_VAR, which
sets the value of a field stored in a subgroup on ComputedStyle. SET_VAR
first checks if the new value is different to the old value. Only when
the value changes does it modify the field using the Access() method on
the subgroup. Since Access() could potentially do a copy, we would like
to call it as rarely as possible. Hence, SET_VAR is an optimisation that
skips a call to Access() when it is not necessary.

For example, the setter for the 'left' property might look like:

void SetLeft(const Length& v) {
  if (surround_data_->left_ != v)
    surround_data_->Access()->left_ = v;
}

As we can see, we only call Access() when the values are different,
potentially saving a copy.

However, the generated setters on ComputedStyleBase do not perform this
optimisation. This patch changes the generator to use the same
optimisation in ComputedStyleBase.

No behavioural changes are expected, but there should be less memory
allocations in ComputedStyle.

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

BUG=628043

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

[modify] https://crrev.com/e8e5df6b838075a0dc6e584853f1f795ac5af0b3/third_party/WebKit/Source/build/scripts/templates/fields/base.tmpl
[modify] https://crrev.com/e8e5df6b838075a0dc6e584853f1f795ac5af0b3/third_party/WebKit/Source/build/scripts/templates/fields/external.tmpl
[modify] https://crrev.com/e8e5df6b838075a0dc6e584853f1f795ac5af0b3/third_party/WebKit/Source/build/scripts/templates/fields/field.tmpl
[modify] https://crrev.com/e8e5df6b838075a0dc6e584853f1f795ac5af0b3/third_party/WebKit/Source/build/scripts/templates/fields/monotonic_flag.tmpl

Project Member Comment 188 by bugdroid1@chromium.org, May 11
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/7201468ffddd08c6893769c4a0616df7e9bedcad

commit 7201468ffddd08c6893769c4a0616df7e9bedcad
Author: nainar <nainar@chromium.org>
Date: Thu May 11 10:44:13 2017

Store border-*-color on SurroundData in ComputedStyle not BorderColorAndStyle

This patch moves the storage of border-*-color away from BorderColorAndStyle.
We instead store them on the generated SurroundData group on
ComputedStyle instead.

Since BorderValue is used by other classes such as OutlineValue and
MultiColData we have changed BorderData to store the
border-*-style information on BorderStyle which is the
BorderValue class without the border-*-(width/color) information.

The long term intention is to move all information away from
BorderStyle - it is a temporary class to store information as
we generate border-*-* iteratively.

Please note that we convert BorderStyle to a BorderValue when we
send information over to the Layout system to make the interfacing easy.
This will be changed to creating a new BorderValue from the individual
values in the long run or something along those lines
(pending discussion.)

Diff: https://gist.github.com/cf8735baa30e27a2dc945b6485c85a74/revisions

BUG=628043

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

[modify] https://crrev.com/7201468ffddd08c6893769c4a0616df7e9bedcad/third_party/WebKit/Source/core/css/CSSProperties.json5
[modify] https://crrev.com/7201468ffddd08c6893769c4a0616df7e9bedcad/third_party/WebKit/Source/core/css/ComputedStyleExtraFields.json5
[modify] https://crrev.com/7201468ffddd08c6893769c4a0616df7e9bedcad/third_party/WebKit/Source/core/css/resolver/StyleResolver.cpp
[modify] https://crrev.com/7201468ffddd08c6893769c4a0616df7e9bedcad/third_party/WebKit/Source/core/layout/LayoutTableBoxComponent.cpp
[modify] https://crrev.com/7201468ffddd08c6893769c4a0616df7e9bedcad/third_party/WebKit/Source/core/style/BUILD.gn
[modify] https://crrev.com/7201468ffddd08c6893769c4a0616df7e9bedcad/third_party/WebKit/Source/core/style/BorderData.h
[rename] https://crrev.com/7201468ffddd08c6893769c4a0616df7e9bedcad/third_party/WebKit/Source/core/style/BorderStyle.h
[modify] https://crrev.com/7201468ffddd08c6893769c4a0616df7e9bedcad/third_party/WebKit/Source/core/style/BorderValue.h
[modify] https://crrev.com/7201468ffddd08c6893769c4a0616df7e9bedcad/third_party/WebKit/Source/core/style/CachedUAStyle.h
[modify] https://crrev.com/7201468ffddd08c6893769c4a0616df7e9bedcad/third_party/WebKit/Source/core/style/ComputedStyle.cpp
[modify] https://crrev.com/7201468ffddd08c6893769c4a0616df7e9bedcad/third_party/WebKit/Source/core/style/ComputedStyle.h

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

commit c16f9ff9695525a663e586c269685624e403d674
Author: shend <shend@chromium.org>
Date: Thu May 11 11:13:58 2017

Move StyleBoxData.h to a nested class in ComputedStyle.

This patch removes StyleBoxData.h, moving its contents to a nested class
inside ComputedStyle.

BUG=628043

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

[modify] https://crrev.com/c16f9ff9695525a663e586c269685624e403d674/third_party/WebKit/Source/core/style/BUILD.gn
[modify] https://crrev.com/c16f9ff9695525a663e586c269685624e403d674/third_party/WebKit/Source/core/style/ComputedStyle.h
[delete] https://crrev.com/c3daf2708acac918554319be74a152821bb7feec/third_party/WebKit/Source/core/style/StyleBoxData.h

Project Member Comment 190 by bugdroid1@chromium.org, May 11
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/409ff448dc2fdf77c1de19b39cfafd8780066136

commit 409ff448dc2fdf77c1de19b39cfafd8780066136
Author: shend <shend@chromium.org>
Date: Thu May 11 22:30:38 2017

Update SameSizeAsComputedStyle to reflect new changes.

SameSizeAsComputedStyle is meant to be tracking the data layout of
ComputedStyle. Recently, we've moved three DataRefs from ComputedStyle
to ComputedStyleBase without updating the size assert. This was a
silent issue because we changed only the layout, not the size.

This patch updates SameSizeAsComputedStyle to reflect the current state
of ComputedStyle.

BUG=628043

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

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

Project Member Comment 191 by bugdroid1@chromium.org, May 11
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/2389662b9fb0735446c5c8235bcdc1b0ff505366

commit 2389662b9fb0735446c5c8235bcdc1b0ff505366
Author: shend <shend@chromium.org>
Date: Thu May 11 22:36:01 2017

Make ComputedStyle::InheritFrom group independent.

In ComputedStyle::InheritFrom, we assume that the UserModify() field is
always stored in RareInheritedData. After we generate the user-modify
property, we might want to change where it is stored, so UserModify may
no longer be in RareInheritedData. This patch rearranges the logic in
the function so that UserModify can be stored in any subgroup without
breaking the code. There are no changes in behaviour.

BUG=628043

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

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

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

commit a1ca535f232d0b1910a5041dd6167d6ebe08a0ea
Author: shend <shend@chromium.org>
Date: Fri May 12 03:04:39 2017

Generate StyleBoxData in ComputedStyleBase.

This patch generates the following fields as part of a group:
- width and height ('storage_only' of type Length)
- min-width and min-height ('storage_only' of type Length)
- max-width and max-height ('storage_only' of type Length)
- VerticalAlignLength ('storage_only' of type Length)
- z-index ('storage_only' of type int)
- HasAutoZIndex ('storage_only' of type bool)
- box-sizing ('storage_only' of type EBoxSizing)
- box-decoration-break ('storage_only' of type EBoxSizing)

A few CSS properties are specified in ComputedStyleExtraFields.json5
rather than CSSProperties.json5:
- VerticalAlignLength, since we can't generate unions yet.
- box-sizing, will specify in CSSProperties.json5 in a separate patch
- box-decoration-break, will specify in CSSProperties.json5 in a
  separate patch

Future patches will also:
- Change (/min/max)(width/height) to be external fields so their
  getters/setters can be generated.
- Change box-sizing to be a keyword field so their getters/setters can
  be generated.
- Change box-decoration-break to be a keyword field so their
  getters/setters can be generated.

Diff of generated files:
https://gist.github.com/85b78bfcaf9ec0d78ea33eea24a49d9f/revisions

BUG=628043

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

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

Project Member Comment 193 by bugdroid1@chromium.org, May 12
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/8ddfef7806bcbedb9582efc385088603b200d2d9

commit 8ddfef7806bcbedb9582efc385088603b200d2d9
Author: shend <shend@chromium.org>
Date: Fri May 12 04:44:00 2017

Move StyleRareInheritedData accessors to be inline in ComputedStyle.

Currently, ComputedStyle has getters and setters to some members in
StyleRareInheritedData. These getters and setters simply delegate to
getters and setters on StyleRareInheritedData. When we generate
StyleRareInheritedData, the generator does not generate these
getters and setters. Hence, this patch simply moves these accessors to
be inline in the getters/setters in ComputedStyle.

This is preparation for generating StyleRareInheritedData.

BUG=628043

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

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

Project Member Comment 194 by bugdroid1@chromium.org, May 15
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/762e2d87addf15f32ac5bda17b1ad9a8fb25dee2

commit 762e2d87addf15f32ac5bda17b1ad9a8fb25dee2
Author: shend <shend@chromium.org>
Date: Mon May 15 03:04:28 2017

Move AppliedTextDecorationList to its own file.

When we generate external types like Length in ComputedStyle, we specify
the path to the type (e.g. "platform/Length"). We then deduce the name
of the type from the path ("Length"). This means that the type must be
stored in a file with the same name.

This patch moves AppliedTextDecorationList to its own file so that it
can be generated.

BUG=628043

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

[add] https://crrev.com/762e2d87addf15f32ac5bda17b1ad9a8fb25dee2/third_party/WebKit/Source/core/style/AppliedTextDecorationList.h
[modify] https://crrev.com/762e2d87addf15f32ac5bda17b1ad9a8fb25dee2/third_party/WebKit/Source/core/style/StyleRareInheritedData.h

Project Member Comment 195 by bugdroid1@chromium.org, May 15
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/79e3cc6d695903af9f32b770fd80f67e878587e7

commit 79e3cc6d695903af9f32b770fd80f67e878587e7
Author: shend <shend@chromium.org>
Date: Mon May 15 03:21:29 2017

Move CursorList to its own file.

When we generate external types like Length in ComputedStyle, we specify
the path to the type (e.g. "platform/Length"). We then deduce the name
of the type from the path ("Length"). This means that the type must be
stored in a file with the same name.

This patch moves CursorList to its own file so that it can be generated.

BUG=628043

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

[add] https://crrev.com/79e3cc6d695903af9f32b770fd80f67e878587e7/third_party/WebKit/Source/core/style/CursorList.h
[modify] https://crrev.com/79e3cc6d695903af9f32b770fd80f67e878587e7/third_party/WebKit/Source/core/style/StyleRareInheritedData.h

Project Member Comment 196 by bugdroid1@chromium.org, May 15
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/9d45549ee7fdd99b2c8d536c1c18dd0e008dce5a

commit 9d45549ee7fdd99b2c8d536c1c18dd0e008dce5a
Author: nainar <nainar@chromium.org>
Date: Mon May 15 03:42:16 2017

Revert of Move CursorList to its own file. (patchset #2 id:20001 of https://codereview.chromium.org/2880963002/ )

Reason for revert:
Reverting since the BUILD file wasn't updated. Author is aware

Original issue's description:
> Move CursorList to its own file.
>
> When we generate external types like Length in ComputedStyle, we specify
> the path to the type (e.g. "platform/Length"). We then deduce the name
> of the type from the path ("Length"). This means that the type must be
> stored in a file with the same name.
>
> This patch moves CursorList to its own file so that it can be generated.
>
> BUG=628043
>
> Review-Url: https://codereview.chromium.org/2880963002
> Cr-Commit-Position: refs/heads/master@{#471654}
> Committed: https://chromium.googlesource.com/chromium/src/+/79e3cc6d695903af9f32b770fd80f67e878587e7

TBR=suzyh@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/2878353002
Cr-Commit-Position: refs/heads/master@{#471655}

[delete] https://crrev.com/79e3cc6d695903af9f32b770fd80f67e878587e7/third_party/WebKit/Source/core/style/CursorList.h
[modify] https://crrev.com/9d45549ee7fdd99b2c8d536c1c18dd0e008dce5a/third_party/WebKit/Source/core/style/StyleRareInheritedData.h

Project Member Comment 197 by bugdroid1@chromium.org, May 15
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/79f466d744b7c279c939c27877ae261d02f966b2

commit 79f466d744b7c279c939c27877ae261d02f966b2
Author: nainar <nainar@chromium.org>
Date: Mon May 15 03:43:27 2017

Revert of Move AppliedTextDecorationList to its own file. (patchset #2 id:20001 of https://codereview.chromium.org/2884553002/ )

Reason for revert:
Reverting since the BUILD file wasn't updated. Author is aware

Original issue's description:
> Move AppliedTextDecorationList to its own file.
>
> When we generate external types like Length in ComputedStyle, we specify
> the path to the type (e.g. "platform/Length"). We then deduce the name
> of the type from the path ("Length"). This means that the type must be
> stored in a file with the same name.
>
> This patch moves AppliedTextDecorationList to its own file so that it
> can be generated.
>
> BUG=628043
>
> Review-Url: https://codereview.chromium.org/2884553002
> Cr-Commit-Position: refs/heads/master@{#471653}
> Committed: https://chromium.googlesource.com/chromium/src/+/762e2d87addf15f32ac5bda17b1ad9a8fb25dee2

TBR=suzyh@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/2880963003
Cr-Commit-Position: refs/heads/master@{#471656}

[delete] https://crrev.com/9d45549ee7fdd99b2c8d536c1c18dd0e008dce5a/third_party/WebKit/Source/core/style/AppliedTextDecorationList.h
[modify] https://crrev.com/79f466d744b7c279c939c27877ae261d02f966b2/third_party/WebKit/Source/core/style/StyleRareInheritedData.h

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

commit fe5ff7fddaf55aa6edfdad13f192089d25e7e3a8
Author: shend <shend@chromium.org>
Date: Mon May 15 04:09:59 2017

Generate getters/setters for (/min/max)(width/height).

Currently, width, height, min-width, max-width, min-height, max-height
are generated as 'storage_only' fields, so they have no generated public
getters/setters. This patch changes them to 'external' fields so that
their getters/setters can be generated as well.

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

BUG=628043

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

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

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

commit e0255eded6d4fb960323b8aa66065783ea9ae5e1
Author: shend <shend@chromium.org>
Date: Mon May 15 04:18:38 2017

Generate enum/getters/setters/mappings for box-sizing.

Currently, the box-sizing property is a 'storage_only' field, so
it has no generated public getters/setters. This patch changes it to a
'keyword' field so that their getters/setters can be generated as well.
We also generate the EBoxSizing enum and use the generated CSSValueID
<-> EBoxSizing mappings.

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

BUG=628043

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

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

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

commit b7a5c55bb3f841ff77446c65edfe56bcc1f893a4
Author: shend <shend@chromium.org>
Date: Mon May 15 05:24:24 2017

Clean up StyleInheritedData.

In preparation to generate StyleInheritedData, this patch removes the
StyleInherited destructor and copy constructor, since they are generated
by the compiler anyway.

BUG=628043

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

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

Project Member Comment 201 by bugdroid1@chromium.org, May 15
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/85a9925c6310cf115ea694e08d1ad332bfc1e09a

commit 85a9925c6310cf115ea694e08d1ad332bfc1e09a
Author: shend <shend@chromium.org>
Date: Mon May 15 05:31:31 2017

Generate enum/getters/setters/mappings for box-decoration-break.

Currently, the box-decoration-break property is a 'storage_only' field,
so it has no generated public getters/setters. This patch changes it to
a 'keyword' field so that its getters/setters can be generated as well.
We also generate the EBoxDecorationBreak enum and use the generated
CSSValueID <-> EBoxDecorationBreak mappings.

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

BUG=628043

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

[modify] https://crrev.com/85a9925c6310cf115ea694e08d1ad332bfc1e09a/third_party/WebKit/Source/core/css/CSSPrimitiveValueMappings.h
[modify] https://crrev.com/85a9925c6310cf115ea694e08d1ad332bfc1e09a/third_party/WebKit/Source/core/css/CSSProperties.json5
[modify] https://crrev.com/85a9925c6310cf115ea694e08d1ad332bfc1e09a/third_party/WebKit/Source/core/css/ComputedStyleExtraFields.json5
[modify] https://crrev.com/85a9925c6310cf115ea694e08d1ad332bfc1e09a/third_party/WebKit/Source/core/style/ComputedStyle.h
[modify] https://crrev.com/85a9925c6310cf115ea694e08d1ad332bfc1e09a/third_party/WebKit/Source/core/style/ComputedStyleConstants.h

Project Member Comment 202 by bugdroid1@chromium.org, May 15
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/1d5c7897e427cf28b15c6c4aa995f2fe7d16162c

commit 1d5c7897e427cf28b15c6c4aa995f2fe7d16162c
Author: shend <shend@chromium.org>
Date: Mon May 15 05:48:19 2017

Move AppliedTextDecorationList to its own file.

When we generate external types like Length in ComputedStyle, we specify
the path to the type (e.g. "platform/Length"). We then deduce the name
of the type from the path ("Length"). This means that the type must be
stored in a file with the same name.

This patch moves AppliedTextDecorationList to its own file so that it
can be generated.

BUG=628043

Review-Url: https://codereview.chromium.org/2884553002
Cr-Original-Commit-Position: refs/heads/master@{#471653}
Committed: https://chromium.googlesource.com/chromium/src/+/762e2d87addf15f32ac5bda17b1ad9a8fb25dee2
Review-Url: https://codereview.chromium.org/2884553002
Cr-Commit-Position: refs/heads/master@{#471677}

[add] https://crrev.com/1d5c7897e427cf28b15c6c4aa995f2fe7d16162c/third_party/WebKit/Source/core/style/AppliedTextDecorationList.h
[modify] https://crrev.com/1d5c7897e427cf28b15c6c4aa995f2fe7d16162c/third_party/WebKit/Source/core/style/BUILD.gn
[modify] https://crrev.com/1d5c7897e427cf28b15c6c4aa995f2fe7d16162c/third_party/WebKit/Source/core/style/StyleRareInheritedData.h

Project Member Comment 203 by bugdroid1@chromium.org, May 15
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/9f9fcf0ea74f3184b59b09dc5a3ef9f684e3af64

commit 9f9fcf0ea74f3184b59b09dc5a3ef9f684e3af64
Author: shend <shend@chromium.org>
Date: Mon May 15 06:26:20 2017

Move CursorList to its own file.

When we generate external types like Length in ComputedStyle, we specify
the path to the type (e.g. "platform/Length"). We then deduce the name
of the type from the path ("Length"). This means that the type must be
stored in a file with the same name.

This patch moves CursorList to its own file so that it can be generated.

BUG=628043

Review-Url: https://codereview.chromium.org/2880963002
Cr-Original-Commit-Position: refs/heads/master@{#471654}
Committed: https://chromium.googlesource.com/chromium/src/+/79e3cc6d695903af9f32b770fd80f67e878587e7
Review-Url: https://codereview.chromium.org/2880963002
Cr-Commit-Position: refs/heads/master@{#471682}

[modify] https://crrev.com/9f9fcf0ea74f3184b59b09dc5a3ef9f684e3af64/third_party/WebKit/Source/core/style/BUILD.gn
[add] https://crrev.com/9f9fcf0ea74f3184b59b09dc5a3ef9f684e3af64/third_party/WebKit/Source/core/style/CursorList.h
[modify] https://crrev.com/9f9fcf0ea74f3184b59b09dc5a3ef9f684e3af64/third_party/WebKit/Source/core/style/StyleRareInheritedData.h

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

commit c0cd99cb52e33e76170b3bb7936233fbb85fa3ad
Author: shend <shend@chromium.org>
Date: Mon May 15 07:56:17 2017

Move StyleInheritedData.cpp to be inline in StyleInheritedData.h.

This patch removes StyleInheritedData.cpp, and moves all its contents to be
inline in StyleInheritedData.h

This is prework for generating StyleInheritedData.

BUG=628043

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

[modify] https://crrev.com/c0cd99cb52e33e76170b3bb7936233fbb85fa3ad/third_party/WebKit/Source/core/style/BUILD.gn
[delete] https://crrev.com/5893160c627b1b9e36c451ce7542c76254b844d6/third_party/WebKit/Source/core/style/StyleInheritedData.cpp
[modify] https://crrev.com/c0cd99cb52e33e76170b3bb7936233fbb85fa3ad/third_party/WebKit/Source/core/style/StyleInheritedData.h

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

commit dc8b3ef5667dfec73a697d1115e19832ea6341bb
Author: shend <shend@chromium.org>
Date: Mon May 15 23:51:36 2017

Move TextJustify to its own file.

When we generate external types like Length in ComputedStyle, we specify
the path to the type (e.g. "platform/Length"). We then deduce the name
of the type from the path ("Length"). This means that the type must be
stored in a file with the same name.

This patch moves TextJustify to its own file so that it
can be generated.

BUG=628043

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

[modify] https://crrev.com/dc8b3ef5667dfec73a697d1115e19832ea6341bb/third_party/WebKit/Source/platform/BUILD.gn
[add] https://crrev.com/dc8b3ef5667dfec73a697d1115e19832ea6341bb/third_party/WebKit/Source/platform/text/TextJustify.h
[modify] https://crrev.com/dc8b3ef5667dfec73a697d1115e19832ea6341bb/third_party/WebKit/Source/platform/text/TextRun.h

Project Member Comment 207 by bugdroid1@chromium.org, May 16
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/885a5dea20c9790ed62081a7909b8f675da54eac

commit 885a5dea20c9790ed62081a7909b8f675da54eac
Author: shend <shend@chromium.org>
Date: Tue May 16 22:47:22 2017

Cleanup StyleRareInheritedData.

This patch changes StyleRareInheritedData to make it easier to generate:
- Remove unused destructor
- Replace explicit copy constructor with RefCountedCopyable
- Replace forward declarations with #includes.

This is in preparation for generating StyleRareInheritedData. While this
patch may increase compile times, we would have to pay this cost anyway
when we generate StyleRareInheritedData in ComputedStyleBase.

BUG=628043

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

[modify] https://crrev.com/885a5dea20c9790ed62081a7909b8f675da54eac/third_party/WebKit/Source/core/style/StyleRareInheritedData.cpp
[modify] https://crrev.com/885a5dea20c9790ed62081a7909b8f675da54eac/third_party/WebKit/Source/core/style/StyleRareInheritedData.h

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

commit ae9de50e595b29c947d00c8f652e8ac3ab41f768
Author: shend <shend@chromium.org>
Date: Wed May 17 11:50:17 2017

Move RareInheritedData (Quotes|Shadow)DataEquivalent to ComputedStyle.

Currently, RareInheritedData has two helper functions:
QuotesDataEquivalent and ShadowDataEquivalent. When we generate
RareInheritedData, these helpers will no longer exist, so we need
to move them to CopmutedStyle.

This patch moves RareInheritedData::QuotesDataEquivalent and
RareInheritedData::ShadowDataEquivalent to ComputedStyle. It also
renames ShadowDataEquivalent to TextShadowDataEquivalent since it is
comparing text-shadow.

BUG=628043

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

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

Project Member Comment 210 by bugdroid1@chromium.org, May 17
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/1f524da250c870845b077299d2a0ebda85bf90d9

commit 1f524da250c870845b077299d2a0ebda85bf90d9
Author: shend <shend@chromium.org>
Date: Wed May 17 22:38:45 2017

Add generated InheritedDataShared in ComputedStyleBase.

ComputedStyle::InheritedDataShared is a handwritten function that
compares subgroup pointers. This makes it difficult to change the group
that a field belongs to, as it might break the correctness of the
function.

This patch adds a generated function InheritedDataShared in
ComputedStyleBase that works no matter where fields are stored.

There are no behavioural changes in this patch.

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

BUG=628043

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

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

Cc: -esprehn@chromium.org
Project Member Comment 212 by bugdroid1@chromium.org, May 17
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/48dacf962778b8fb9c0d8b49921d21c9163ba88c

commit 48dacf962778b8fb9c0d8b49921d21c9163ba88c
Author: shend <shend@chromium.org>
Date: Wed May 17 23:21:25 2017

Generate StyleInheritedData in ComputedStyleBase.

This patch generates the following fields as part of a group:
- horizontal-border-spacing (short)
- vertical-border-spacing (short)
- line-height (Length)
- font (Font)
- color (Color)
- VisitedLinkColor (Color)
- TextAutoSizingMultiplier (float)

All fields are generated as storage_only in this patch, but future patches
may change that.

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

BUG=628043

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

[modify] https://crrev.com/48dacf962778b8fb9c0d8b49921d21c9163ba88c/third_party/WebKit/Source/build/scripts/make_computed_style_base.py
[modify] https://crrev.com/48dacf962778b8fb9c0d8b49921d21c9163ba88c/third_party/WebKit/Source/core/css/CSSProperties.json5
[modify] https://crrev.com/48dacf962778b8fb9c0d8b49921d21c9163ba88c/third_party/WebKit/Source/core/css/ComputedStyleExtraFields.json5
[modify] https://crrev.com/48dacf962778b8fb9c0d8b49921d21c9163ba88c/third_party/WebKit/Source/core/style/ComputedStyle.cpp
[modify] https://crrev.com/48dacf962778b8fb9c0d8b49921d21c9163ba88c/third_party/WebKit/Source/core/style/ComputedStyle.h

Project Member Comment 213 by bugdroid1@chromium.org, May 17
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/01d27a05ed3a1e5c29015632e463eb938306adbe

commit 01d27a05ed3a1e5c29015632e463eb938306adbe
Author: shend <shend@chromium.org>
Date: Wed May 17 23:43:42 2017

Generate getters/setters for border-spacing.

Currently, the border-spacing properties: border-horizontal-spacing and
border-vertical-spacing are 'storage_only' fields, so they don't have
generated public getters/setters. This patch changes them to 'primitive'
so that their getters/setters can be generated as well.

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

BUG=628043

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

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

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

commit c09d13d92f688a3110968dbc2ecad29be8d24e80
Author: shend <shend@chromium.org>
Date: Thu May 18 07:19:28 2017

Replace CSSTransitionData::Create(CSSTransition) with clone method.

To copy a CSSTransitionData, we use CSSTransitionData::Create(o).
However, this interface is inconsistent with many other classes that
instead provide a clone method to do the same thing. This patch replaces
the Create method with a Clone method to be consistent.

BUG=628043

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

[modify] https://crrev.com/c09d13d92f688a3110968dbc2ecad29be8d24e80/third_party/WebKit/Source/core/animation/css/CSSTransitionData.h
[modify] https://crrev.com/c09d13d92f688a3110968dbc2ecad29be8d24e80/third_party/WebKit/Source/core/style/StyleRareNonInheritedData.cpp

Project Member Comment 215 by bugdroid1@chromium.org, May 18
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/2cc0e2bbd1160f43d3400c6cc7c67c5a92a62aff

commit 2cc0e2bbd1160f43d3400c6cc7c67c5a92a62aff
Author: shend <shend@chromium.org>
Date: Thu May 18 08:14:25 2017

Add internal move setter for storage_only fields in ComputedStyle

This patch adds a protected rvalue reference setter for storage_only
fields in ComputedStyle. This will allow handwritten setters to take
advantage of move semantics (e.g. Length fields, pointer fields).

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

BUG=628043

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

[modify] https://crrev.com/2cc0e2bbd1160f43d3400c6cc7c67c5a92a62aff/third_party/WebKit/Source/build/scripts/templates/fields/storage_only.tmpl

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

commit e82ba08821352cde479db52f3b9379ea23d2b54b
Author: shend <shend@chromium.org>
Date: Thu May 18 09:29:52 2017

Remove unused handwritten StyleInheritedData in ComputedStyle.

In an earlier patch [1], we generated StyleInheritedData in
ComputedStyleBase. Unfortunately, we did not remove the corresponding
handwritten StyleInheritedData in ComputedStyle. This follow up patch
removes the unused handwritten nested class.

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

BUG=628043

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

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

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

commit b72ebe3be808b64ca15ebff036511450b4a8fcff
Author: nainar <nainar@chromium.org>
Date: Fri May 19 00:53:00 2017

Store border-*-style on SurroundData in ComputedStyle

This patch moves the storage of border-*-style away from BorderStyle.
We instead store them on the generated SurroundData group on
ComputedStyle instead.

We generate a BorderValue to pass to Layout in
ComputedStyle from all the border information stored
there.

Diff: https://gist.github.com/nainar/fd091fc658aebc3f5676f16e545e975a/revisions

BUG=628043

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

[modify] https://crrev.com/b72ebe3be808b64ca15ebff036511450b4a8fcff/third_party/WebKit/Source/core/css/CSSPrimitiveValueMappings.h
[modify] https://crrev.com/b72ebe3be808b64ca15ebff036511450b4a8fcff/third_party/WebKit/Source/core/css/CSSProperties.json5
[modify] https://crrev.com/b72ebe3be808b64ca15ebff036511450b4a8fcff/third_party/WebKit/Source/core/css/resolver/StyleBuilderCustom.cpp
[modify] https://crrev.com/b72ebe3be808b64ca15ebff036511450b4a8fcff/third_party/WebKit/Source/core/css/resolver/StyleResolver.cpp
[modify] https://crrev.com/b72ebe3be808b64ca15ebff036511450b4a8fcff/third_party/WebKit/Source/core/layout/LayoutTableBoxComponent.cpp
[modify] https://crrev.com/b72ebe3be808b64ca15ebff036511450b4a8fcff/third_party/WebKit/Source/core/style/BorderData.h
[modify] https://crrev.com/b72ebe3be808b64ca15ebff036511450b4a8fcff/third_party/WebKit/Source/core/style/BorderValue.h
[modify] https://crrev.com/b72ebe3be808b64ca15ebff036511450b4a8fcff/third_party/WebKit/Source/core/style/CachedUAStyle.h
[modify] https://crrev.com/b72ebe3be808b64ca15ebff036511450b4a8fcff/third_party/WebKit/Source/core/style/ComputedStyle.cpp
[modify] https://crrev.com/b72ebe3be808b64ca15ebff036511450b4a8fcff/third_party/WebKit/Source/core/style/ComputedStyle.h
[modify] https://crrev.com/b72ebe3be808b64ca15ebff036511450b4a8fcff/third_party/WebKit/Source/core/style/ComputedStyleConstants.h

Project Member Comment 218 by bugdroid1@chromium.org, May 19
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/5e2a9eb0941bd44c21096357eedee2c6e4985ac2

commit 5e2a9eb0941bd44c21096357eedee2c6e4985ac2
Author: shend <shend@chromium.org>
Date: Fri May 19 01:23:29 2017

Generate getters/setters for VisitedLinkColor.

Currently, the VisitedLinkColor property is a 'storage_only' field, so
it has no generated public getters/setters. This patch changes it to an
'external' field so that their getters/setters can be generated as well.

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

BUG=628043

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

[modify] https://crrev.com/5e2a9eb0941bd44c21096357eedee2c6e4985ac2/third_party/WebKit/Source/core/css/ComputedStyleExtraFields.json5
[modify] https://crrev.com/5e2a9eb0941bd44c21096357eedee2c6e4985ac2/third_party/WebKit/Source/core/style/ComputedStyle.cpp
[modify] https://crrev.com/5e2a9eb0941bd44c21096357eedee2c6e4985ac2/third_party/WebKit/Source/core/style/ComputedStyle.h

Project Member Comment 219 by bugdroid1@chromium.org, May 19
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/9f0d5e6a0694f57b9a0df2c0336f506bcf5de9e1

commit 9f0d5e6a0694f57b9a0df2c0336f506bcf5de9e1
Author: shend <shend@chromium.org>
Date: Fri May 19 02:06:39 2017

Do not use overridden getter names for internal getters.

Currently, we append the word 'internal' to the name of a field's getter
to form the name of the internal getter. However, there are cases where
this forms a bad name. For example, the getter for 'line-height' is
overridden to be SpecifiedLineHeight, which contains complex logic.
This means that the internal getter will be called
SpecifiedLineHeightInternal. This is bad because the internal getter
does not have any logic to do with specified line height. A more apt
name would be just LineHeightInternal.

This patch changes the internal getters to be <field name> + 'internal'.

Diff of generated files:
https://gist.github.com/780cea9912e024f157a97fba24ee5a0e/revisions

BUG=628043

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

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

Project Member Comment 220 by bugdroid1@chromium.org, May 19
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/6ba38ebb11493db01fdd044a9a7cefbc332bc31e

commit 6ba38ebb11493db01fdd044a9a7cefbc332bc31e
Author: shend <shend@chromium.org>
Date: Fri May 19 02:57:35 2017

Replace CSSAnimationData::Create(CSSAnimation) with clone method.

To copy a CSSAnimationData, we use CSSAnimationData::Create(o).
However, this interface is inconsistent with many other classes that
instead provide a clone method to do the same thing. This patch replaces
the Create method with a Clone method to be consistent.

BUG=628043

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

[modify] https://crrev.com/6ba38ebb11493db01fdd044a9a7cefbc332bc31e/third_party/WebKit/Source/core/animation/css/CSSAnimationData.h
[modify] https://crrev.com/6ba38ebb11493db01fdd044a9a7cefbc332bc31e/third_party/WebKit/Source/core/style/StyleRareNonInheritedData.cpp

Project Member Comment 221 by bugdroid1@chromium.org, May 19
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/08b8ccad61fb9dd45f25aac7aab06dd8bbdb1856

commit 08b8ccad61fb9dd45f25aac7aab06dd8bbdb1856
Author: nainar <nainar@chromium.org>
Date: Fri May 19 13:13:23 2017

Store border-image-* on SurroundData in ComputedStyle

This patch moves the storage of border-image-* away from BorderStyle.
We instead store them on the generated SurroundData group on
ComputedStyle instead.

We generate a BorderValue to pass to Layout in
ComputedStyle from all the border information stored
there.

Diff: https://gist.github.com/a0eeb1d1383e4b502604b449867f9619/revisions

BUG=628043

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

[modify] https://crrev.com/08b8ccad61fb9dd45f25aac7aab06dd8bbdb1856/third_party/WebKit/Source/build/scripts/make_computed_style_base.py
[modify] https://crrev.com/08b8ccad61fb9dd45f25aac7aab06dd8bbdb1856/third_party/WebKit/Source/core/css/ComputedStyleExtraFields.json5
[modify] https://crrev.com/08b8ccad61fb9dd45f25aac7aab06dd8bbdb1856/third_party/WebKit/Source/core/css/resolver/StyleResolver.cpp
[modify] https://crrev.com/08b8ccad61fb9dd45f25aac7aab06dd8bbdb1856/third_party/WebKit/Source/core/style/BUILD.gn
[delete] https://crrev.com/b6fa2c513e2b0f9275b13fa48eda48c5351d6c1b/third_party/WebKit/Source/core/style/BorderData.h
[modify] https://crrev.com/08b8ccad61fb9dd45f25aac7aab06dd8bbdb1856/third_party/WebKit/Source/core/style/CachedUAStyle.h
[modify] https://crrev.com/08b8ccad61fb9dd45f25aac7aab06dd8bbdb1856/third_party/WebKit/Source/core/style/ComputedStyle.cpp
[modify] https://crrev.com/08b8ccad61fb9dd45f25aac7aab06dd8bbdb1856/third_party/WebKit/Source/core/style/ComputedStyle.h

Project Member Comment 222 by bugdroid1@chromium.org, May 20
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/1e84b2ec2023742abc275f116a4ac54fdea6ebac

commit 1e84b2ec2023742abc275f116a4ac54fdea6ebac
Author: nainar <nainar@chromium.org>
Date: Sat May 20 03:00:27 2017

Generate getters/setters for border-image.

Currently, the border-image property is a 'storage_only' field, so
it has no generated public getters/setters. This patch changes it to an
'external' field so that their getters/setters can be generated as well.

Diff: https://gist.github.com/dc683ef590e3d4e88e1ed7f3a54ff16f/revisions

BUG=628043

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

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

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

commit eca71d2d20a47358b8e0b7931b70d796264acbe1
Author: shend <shend@chromium.org>
Date: Tue May 23 10:51:56 2017

Move StyleRareInheritedData.cpp to be inline in StyleRareInheritedData.h

This patch removes StyleRareInheritedData.cpp, and moves all its contents to be
inline in StyleRareInheritedData.h

This is prework for generating StyleRareInheritedData.

BUG=628043

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

[modify] https://crrev.com/eca71d2d20a47358b8e0b7931b70d796264acbe1/third_party/WebKit/Source/core/style/BUILD.gn
[delete] https://crrev.com/f22c112e0e74aa001c68b93b95824a8a5b554921/third_party/WebKit/Source/core/style/StyleRareInheritedData.cpp
[modify] https://crrev.com/eca71d2d20a47358b8e0b7931b70d796264acbe1/third_party/WebKit/Source/core/style/StyleRareInheritedData.h

Project Member Comment 224 by bugdroid1@chromium.org, May 23
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/2945762ef57ed4d63f04c0744ff5eff70115e7af

commit 2945762ef57ed4d63f04c0744ff5eff70115e7af
Author: shend <shend@chromium.org>
Date: Tue May 23 22:23:54 2017

Move StyleRareInheritedData.h to a nested class in ComputedStyle.

This patch removes StyleRareInheritedData.h, moving its contents to a
nested class inside ComputedStyle.

BUG=628043

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

[modify] https://crrev.com/2945762ef57ed4d63f04c0744ff5eff70115e7af/third_party/WebKit/Source/core/style/BUILD.gn
[modify] https://crrev.com/2945762ef57ed4d63f04c0744ff5eff70115e7af/third_party/WebKit/Source/core/style/ComputedStyle.h
[delete] https://crrev.com/ad4e51a7f1fba29cbfa755b3dfa6b0d2a283ea4c/third_party/WebKit/Source/core/style/StyleRareInheritedData.h

Project Member Comment 225 by bugdroid1@chromium.org, May 24
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/43a17a2ec583e217c93c9895cfe90388b7c8ed2e

commit 43a17a2ec583e217c93c9895cfe90388b7c8ed2e
Author: shend <shend@chromium.org>
Date: Wed May 24 05:48:46 2017

Replace NinePieceImage.setMaskDefault with static method.

For NinePieceImages that are used as masks, we currently create a
default NinePieceImage and then call setMaskDefault on it. This is
unnecessarily complicated. Instead, we could just have a static method
on NinePieceImage that creates a mask NinePieceImage. This patch adds
a static method NinePieceImage::MaskDefaults() that returns a
NinePieceImage with its members initialised to mask defaults.

BUG=628043

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

[modify] https://crrev.com/43a17a2ec583e217c93c9895cfe90388b7c8ed2e/third_party/WebKit/Source/core/css/resolver/StyleBuilderConverter.cpp
[modify] https://crrev.com/43a17a2ec583e217c93c9895cfe90388b7c8ed2e/third_party/WebKit/Source/core/style/NinePieceImage.h
[modify] https://crrev.com/43a17a2ec583e217c93c9895cfe90388b7c8ed2e/third_party/WebKit/Source/core/style/StyleRareNonInheritedData.cpp
[modify] https://crrev.com/43a17a2ec583e217c93c9895cfe90388b7c8ed2e/third_party/WebKit/Source/core/style/StyleReflection.h

Project Member Comment 226 by bugdroid1@chromium.org, May 24
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/03e6bc737f164bf673e4676f1e673eb669525288

commit 03e6bc737f164bf673e4676f1e673eb669525288
Author: nainar <nainar@chromium.org>
Date: Wed May 24 06:08:45 2017

Use LayoutUnit for all border-*-width logic

This patch uses LayoutUnit for the logic of converting back and
forth between the stored int and the returned float value
instead of having this logic in main ComputedStyle.

Diff: https://gist.github.com/nainar/5d4e8db04884cb0dccb4874a0b23ef0d/revisions

BUG=628043

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

[modify] https://crrev.com/03e6bc737f164bf673e4676f1e673eb669525288/third_party/WebKit/Source/build/scripts/make_computed_style_base.py
[modify] https://crrev.com/03e6bc737f164bf673e4676f1e673eb669525288/third_party/WebKit/Source/core/css/CSSProperties.json5
[modify] https://crrev.com/03e6bc737f164bf673e4676f1e673eb669525288/third_party/WebKit/Source/core/style/ComputedStyle.h

Project Member Comment 227 by bugdroid1@chromium.org, May 24
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/aae42e696973ff14132cb94ef1cc304c2deb0f9b

commit aae42e696973ff14132cb94ef1cc304c2deb0f9b
Author: shend <shend@chromium.org>
Date: Wed May 24 06:10:15 2017

Move StyleRareNonInheritedData::has* methods to ComputedStyle.

When we generate StyleRareNonInheritedData, we would no longer have
handwritten helper functions on the class. Hence, we need to move all
the helper functions on StyleRareNonInheritedData to ComputedStyle.

This patch concerns three helper functions in ComputedStyle:
- HasFilters: Moved to ComputedStyle.
- HasBackdropFilters: Deleted as it was unused.
- HasOpacity: Same helper already exists on ComputedStyle, deleted.

BUG=628043

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

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

Project Member Comment 228 by bugdroid1@chromium.org, May 24
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/b69b3599eedc856b722158672add9095a518440c

commit b69b3599eedc856b722158672add9095a518440c
Author: nainar <nainar@chromium.org>
Date: Wed May 24 09:40:28 2017

Move LayoutUnit to correct alignment

LayoutUnit only contains an int so it alignment belongs on the same
line as an int

BUG=628043

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

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

Project Member Comment 229 by bugdroid1@chromium.org, May 24
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/77a0c5f701d4bf72cb998c69496a65725fbb719e

commit 77a0c5f701d4bf72cb998c69496a65725fbb719e
Author: shend <shend@chromium.org>
Date: Wed May 24 10:24:09 2017

Add operator== to CSSAnimationData.

This patch adds an operator== to CSSAnimationData that is used by
ComputedStyle to check equality for style resolve. Note this is
different to a full, memberwise equality.

BUG=628043

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

[modify] https://crrev.com/77a0c5f701d4bf72cb998c69496a65725fbb719e/third_party/WebKit/Source/core/animation/css/CSSAnimationData.h
[modify] https://crrev.com/77a0c5f701d4bf72cb998c69496a65725fbb719e/third_party/WebKit/Source/core/style/StyleRareNonInheritedData.cpp

Project Member Comment 230 by bugdroid1@chromium.org, May 24
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/e452a38ed13a4b9c472196221494d228a8be7f30

commit e452a38ed13a4b9c472196221494d228a8be7f30
Author: shend <shend@chromium.org>
Date: Wed May 24 20:43:50 2017

Change ContentData::operator== to iterate through whole list.

ContentData is a class that has a linked list structure. To compare two
ContentDatas, ComputedStyle iterates through the two lists and checks
that each element is equal using operator==, which calls through to
ContentData::Equals.

Instead of leaving the iteration logic in ComputedStyle, this patch
moves it to operator==, so that operator== iterates through the two
linked lists and compares each element using ContentData::Equals. This
allows ComputedStyle to just use operator== on ContentData.

This transformation causes no behavioural changes as ContentData's
operator== was only used by ComputedStyle.

BUG=628043

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

[modify] https://crrev.com/e452a38ed13a4b9c472196221494d228a8be7f30/third_party/WebKit/Source/core/style/ContentData.h
[modify] https://crrev.com/e452a38ed13a4b9c472196221494d228a8be7f30/third_party/WebKit/Source/core/style/StyleRareNonInheritedData.cpp

Project Member Comment 231 by bugdroid1@chromium.org, May 25
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/e66a502427e1744331aef5edf65c417dc244ae0c

commit e66a502427e1744331aef5edf65c417dc244ae0c
Author: shend <shend@chromium.org>
Date: Thu May 25 01:24:30 2017

Generate StyleRareInheritedData in ComputedStyleBase.

This patch generates StyleRareInheritedData in ComputedStyleBase. Because some
fields are stored as smart pointers, we have to introduce a new parameter
in the JSON file called "pointer_type_name", which is the name of the
smart pointer type. As with the handwritten code, pointer fields are
compared using DataEquivalent, not ==.

All fields are generated as storage_only in this patch, but future patches
may change that.

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

BUG=628043

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

[modify] https://crrev.com/e66a502427e1744331aef5edf65c417dc244ae0c/third_party/WebKit/Source/build/scripts/make_computed_style_base.py
[modify] https://crrev.com/e66a502427e1744331aef5edf65c417dc244ae0c/third_party/WebKit/Source/build/scripts/templates/ComputedStyleBase.h.tmpl
[modify] https://crrev.com/e66a502427e1744331aef5edf65c417dc244ae0c/third_party/WebKit/Source/build/scripts/templates/fields/field.tmpl
[modify] https://crrev.com/e66a502427e1744331aef5edf65c417dc244ae0c/third_party/WebKit/Source/build/scripts/templates/fields/group.tmpl
[modify] https://crrev.com/e66a502427e1744331aef5edf65c417dc244ae0c/third_party/WebKit/Source/core/css/CSSProperties.json5
[modify] https://crrev.com/e66a502427e1744331aef5edf65c417dc244ae0c/third_party/WebKit/Source/core/css/ComputedStyleExtraFields.json5
[modify] https://crrev.com/e66a502427e1744331aef5edf65c417dc244ae0c/third_party/WebKit/Source/core/style/ComputedStyle.cpp
[modify] https://crrev.com/e66a502427e1744331aef5edf65c417dc244ae0c/third_party/WebKit/Source/core/style/ComputedStyle.h

Project Member Comment 232 by bugdroid1@chromium.org, May 25
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/b2f8ce3799042b20855abda1cf3a62cdd8180f45

commit b2f8ce3799042b20855abda1cf3a62cdd8180f45
Author: shend <shend@chromium.org>
Date: Thu May 25 04:42:03 2017

Add operator== to CSSTransitionData.

This patch adds an operator== to CSSTransitionData that is used by
ComputedStyle to check equality for style resolve. Note this is
different to a full, memberwise equality.

BUG=628043

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

[modify] https://crrev.com/b2f8ce3799042b20855abda1cf3a62cdd8180f45/third_party/WebKit/Source/core/animation/css/CSSTransitionData.h
[modify] https://crrev.com/b2f8ce3799042b20855abda1cf3a62cdd8180f45/third_party/WebKit/Source/core/style/StyleRareNonInheritedData.cpp

Project Member Comment 233 by bugdroid1@chromium.org, May 25
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/da75ab7764c7e666793460ec09acacdf0dbb3172

commit da75ab7764c7e666793460ec09acacdf0dbb3172
Author: shend <shend@chromium.org>
Date: Thu May 25 06:32:58 2017

Generate getters/setters for line-height-step.

Currently, the line-height-step property is a 'storage_only' field, so
it has no generated public getters/setters. This patch changes it to an
'primitive' field so that their getters/setters can be generated as well.

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

BUG=628043

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

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

Project Member Comment 234 by bugdroid1@chromium.org, May 25
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/b1187d4dc292bec2734979125c72c26394c5c768

commit b1187d4dc292bec2734979125c72c26394c5c768
Author: shend <shend@chromium.org>
Date: Thu May 25 06:37:46 2017

Generate getters/setters for subtree_is_sticky.

Currently, the subtree_is_sticky field is 'storage_only', so
it has no generated public getters/setters. This patch changes it to a
'primitive' field so that its getters/setters can be generated as well.

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

BUG=628043

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

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

Project Member Comment 235 by bugdroid1@chromium.org, May 25
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/d1573db133006bac1f7f43a90b93be8e64b721de

commit d1573db133006bac1f7f43a90b93be8e64b721de
Author: shend <shend@chromium.org>
Date: Thu May 25 06:45:05 2017

Generate getters/setters for tab-size.

Currently, the tab-size property is a 'storage_only' field, so
it has no generated public getters/setters. This patch changes it to an
'external' field so that its getters/setters can be generated as well.

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

BUG=628043

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

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

Project Member Comment 236 by bugdroid1@chromium.org, May 25
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/0ae95b2247726145ecab341fd01c12b4bb2dfb04

commit 0ae95b2247726145ecab341fd01c12b4bb2dfb04
Author: shend <shend@chromium.org>
Date: Thu May 25 06:57:26 2017

Generate getters/setters for orphans and widows.

Currently, the orphans and widows property are 'storage_only' fields, so
they have no generated public getters/setters. This patch changes them to
'primitive' fields so that their getters/setters can be generated as well.

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

BUG=628043

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

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

Project Member Comment 237 by bugdroid1@chromium.org, May 25
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/8e06b59b53c3e02a64471ca3fb40f2e592b3d90d

commit 8e06b59b53c3e02a64471ca3fb40f2e592b3d90d
Author: shend <shend@chromium.org>
Date: Thu May 25 08:26:31 2017

Generate enum/getters/setters/mappings for overflow-wrap.

Currently, the overflow-wrap property is a 'storage_only' field,
so it has no generated public getters/setters. This patch changes it to
a 'keyword' field so that its getters/setters can be generated as well.
We also generate the EOverflowWrap enum and use the generated
CSSValueID <-> EOverflowWrap mappings.

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

BUG=628043

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

[modify] https://crrev.com/8e06b59b53c3e02a64471ca3fb40f2e592b3d90d/third_party/WebKit/Source/core/css/CSSPrimitiveValueMappings.h
[modify] https://crrev.com/8e06b59b53c3e02a64471ca3fb40f2e592b3d90d/third_party/WebKit/Source/core/css/CSSProperties.json5
[modify] https://crrev.com/8e06b59b53c3e02a64471ca3fb40f2e592b3d90d/third_party/WebKit/Source/core/style/ComputedStyleConstants.h

Project Member Comment 238 by bugdroid1@chromium.org, May 25
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/1a15411c6cb0dcc1d3108f00179ff88f8a7368f3

commit 1a15411c6cb0dcc1d3108f00179ff88f8a7368f3
Author: shend <shend@chromium.org>
Date: Thu May 25 08:53:22 2017

Rename StyleNonInheritedVariables::Copy to Clone.

This patch renames StyleNonInheritedVariables::Copy to Clone to match
convention.

BUG=628043

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

[modify] https://crrev.com/1a15411c6cb0dcc1d3108f00179ff88f8a7368f3/third_party/WebKit/Source/core/style/StyleNonInheritedVariables.h
[modify] https://crrev.com/1a15411c6cb0dcc1d3108f00179ff88f8a7368f3/third_party/WebKit/Source/core/style/StyleRareNonInheritedData.cpp

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

commit ea2ef980b38e4a7f741f9f8220f48841ddd71df7
Author: shend <shend@chromium.org>
Date: Fri May 26 05:31:17 2017

Replace pointers in ComputedStyle::*DataEquivalent functions with refs.

Currently, there are a few *DataEquivalent functions in ComputedStyle
that take a pointer. All these functions assume that the pointers are
not null, so we can simply replace them with references.

BUG=628043

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

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

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

commit e076f00974fd76585a9a922d3674144d577271c5
Author: shend <shend@chromium.org>
Date: Fri May 26 05:42:07 2017

Replace "field_type_path" with "include_paths" in CSSProperties.json5.

In CSSProperties.json5, to deal with type_names that are defined in
other files, we use the "field_type_path" parameter. For example, if we
wanted to use "Length" as the type_name, we can specify
"field_type_path" as "platform/Length" and the generator will
automatically include "platform/Length.h". We would also deduce that
the type_name is Length. However, this does not cater for type_names
like "Vector<String>", where multiple files need to be included.

This patch generalises "field_type_path" to "include_paths", which is
simply a list of files containing definitions for the types in
type_name. Since "include_paths" can contain multiple files, we can no
longer deduce the type_name, so we have to explicitly specify the
type_name.

BUG=628043

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

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

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

commit c1148176d6794fff0fd8dba2b9f7ed71ec52fed8
Author: shend <shend@chromium.org>
Date: Fri May 26 06:06:48 2017

Generate enum/getters/setters/mappings for speak.

Currently, the speak property is a 'storage_only' field,
so it has no generated public getters/setters. This patch changes it to
a 'keyword' field so that its getters/setters can be generated as well.
We also generate the ESpeak enum and use the generated
CSSValueID <-> ESpeak mappings.

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

BUG=628043

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

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

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

commit ba14aca6388c04464822fb5ce91604b92c3d92a4
Author: shend <shend@chromium.org>
Date: Fri May 26 06:59:53 2017

Generate enum/getters/setters/mappings for word-break.

Currently, the word-break property is a 'storage_only' field,
so it has no generated public getters/setters. This patch changes it to
a 'keyword' field so that its getters/setters can be generated as well.
We also generate the EWordBreak enum and use the generated
CSSValueID <-> EWordBreak mappings.

Diff of generated files:
https://gist.github.com/0d411e2cb2db07f1d076383656211816/revisions

BUG=628043

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

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

Project Member Comment 243 by bugdroid1@chromium.org, May 26
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/99af26c7d6c7f9d7843ab1f55b265556aabd6497

commit 99af26c7d6c7f9d7843ab1f55b265556aabd6497
Author: shend <shend@chromium.org>
Date: Fri May 26 07:49:47 2017

Move RareNonInheritedData::*DataEquivalent to ComputedStyle.

When we generate RareNonInheritedData, we would no longer generate
helper methods like ReflectionDataEquivalent. These need to be
handwritten in ComputedStyle. This patch moves these helper methods
from RareNonInheritedData to ComputedStyle.

This is preparation for generating RareNonInheritedData.

BUG=628043

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

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

Project Member Comment 244 by bugdroid1@chromium.org, May 29
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/8cb8d28de8f2c439a50307ddc142c533c5b79e2c

commit 8cb8d28de8f2c439a50307ddc142c533c5b79e2c
Author: shend <shend@chromium.org>
Date: Mon May 29 00:20:37 2017

DCHECK style is cacheable in ComputedStyle::CopyNonInheritedFromCached.

In ComputedStyle::CopyNonInheritedFromCached, we copy computed values
of non inherited properties from another ComputedStyle to the current
ComputedStyle. There are several DCHECKS in this function to make
sure that the style we're copying from is cacheable.

This patch replaces those DCHECKS with a single DCHECK on a new
function called MatchedPropertiesCache::IsStyleCacheable.

BUG=628043

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

[modify] https://crrev.com/8cb8d28de8f2c439a50307ddc142c533c5b79e2c/third_party/WebKit/Source/core/css/resolver/MatchedPropertiesCache.cpp
[modify] https://crrev.com/8cb8d28de8f2c439a50307ddc142c533c5b79e2c/third_party/WebKit/Source/core/css/resolver/MatchedPropertiesCache.h
[modify] https://crrev.com/8cb8d28de8f2c439a50307ddc142c533c5b79e2c/third_party/WebKit/Source/core/style/ComputedStyle.cpp

Project Member Comment 245 by bugdroid1@chromium.org, May 29
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/bc9f245e0196fd1597d504f0e6edcd1e868a45e3

commit bc9f245e0196fd1597d504f0e6edcd1e868a45e3
Author: shend <shend@chromium.org>
Date: Mon May 29 02:04:35 2017

Generate getters/setters for Highlight.

Currently, the Highlight property is a 'storage_only' field, so
it has no generated public getters/setters. This patch changes it to an
'external' field so that their getters/setters can be generated as well.

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

BUG=628043

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

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

Project Member Comment 246 by bugdroid1@chromium.org, May 29
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/9453f30a545c2125da8fc2aac5aa9b329c6fe438

commit 9453f30a545c2125da8fc2aac5aa9b329c6fe438
Author: shend <shend@chromium.org>
Date: Mon May 29 05:06:58 2017

Split has_custom_compare_and_copy in ComputedStyleExtraFields.json5.

There are some fields in ComputedStyleBase that do not appear in
CopyNonInheritedFromCached and NonInheritedEqual. The way we prevented
these fields from being generated in these functions is through a
parameter called has_custom_compare_and_copy in ComputedStyleExtraFields
.json5. When it is true, we do not generate code for these fields
inside those functions.

However, some fields, such as HasViewportUnits, do not appear in
NonInheritedEqual but appear in CopyNonInheritedFromCached, or vice
versa. Setting has_custom_compare_and_copy to true would've removed
generated code for both functions, which is not ideal.

This patch splits has_custom_compare_and_copy into custom_copy and
custom_compare. This allows a field to have no generated compare or
copy, or have neither.

This patch also sets the fields HasViewportUnits and HasRemUnits
to have generated copy but not compare, allowing us to remove the
corresponding handwritten code in ComputedStyle.

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

BUG=628043

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

[modify] https://crrev.com/9453f30a545c2125da8fc2aac5aa9b329c6fe438/third_party/WebKit/Source/build/scripts/make_computed_style_base.py
[modify] https://crrev.com/9453f30a545c2125da8fc2aac5aa9b329c6fe438/third_party/WebKit/Source/build/scripts/templates/ComputedStyleBase.h.tmpl
[modify] https://crrev.com/9453f30a545c2125da8fc2aac5aa9b329c6fe438/third_party/WebKit/Source/build/scripts/templates/fields/field.tmpl
[modify] https://crrev.com/9453f30a545c2125da8fc2aac5aa9b329c6fe438/third_party/WebKit/Source/core/css/ComputedStyleExtraFields.json5
[modify] https://crrev.com/9453f30a545c2125da8fc2aac5aa9b329c6fe438/third_party/WebKit/Source/core/style/ComputedStyle.cpp

Project Member Comment 248 by bugdroid1@chromium.org, May 30
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/de1b3604290f911cf4fc76988ee4d5b11a4f07f9

commit de1b3604290f911cf4fc76988ee4d5b11a4f07f9
Author: nainar <nainar@chromium.org>
Date: Tue May 30 05:50:47 2017

Retain is_current_color information in BorderValue constructor

This CL fixes the BorderValue constructor to retain the is_current_color
information which it was losing due to us resolving the StyleColor to
Color but still using it as a StyleColor. This meant we didn't have
the is_current_color information.

This fixes a bug in the code where we are losing information when
constructing BorderValue.

A unit test is also added to the effect.

BUG=628043

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

[modify] https://crrev.com/de1b3604290f911cf4fc76988ee4d5b11a4f07f9/third_party/WebKit/Source/core/style/BorderValue.h
[modify] https://crrev.com/de1b3604290f911cf4fc76988ee4d5b11a4f07f9/third_party/WebKit/Source/core/style/BorderValueTest.cpp

Project Member Comment 249 by bugdroid1@chromium.org, May 30
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/67dc05043dfa234b336708114248949e601be0e3

commit 67dc05043dfa234b336708114248949e601be0e3
Author: shend <shend@chromium.org>
Date: Tue May 30 06:11:44 2017

Remove unused overflow-wrap getters/setters.

This patch removes unused getters/setters for overflow-wrap in
ComputedStyle.

BUG=628043

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

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

Project Member Comment 250 by bugdroid1@chromium.org, May 30
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/cc3ce27bea5c64c7f049adf2b6c378a5b0009242

commit cc3ce27bea5c64c7f049adf2b6c378a5b0009242
Author: shend <shend@chromium.org>
Date: Tue May 30 06:33:49 2017

Remove unused speak getters/setters in ComputedStyle.

This patch removes unused getters/setters for speak in
ComputedStyle.

BUG=628043

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

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

Project Member Comment 251 by bugdroid1@chromium.org, May 30
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/e6fa9ad53a68ce6204ade3cb16b0d8cf7090858a

commit e6fa9ad53a68ce6204ade3cb16b0d8cf7090858a
Author: shend <shend@chromium.org>
Date: Tue May 30 07:05:37 2017

Make StyleRareNonInheritedData::draggable_regions a bit field.

This patch changes the enum field draggable_regions in
StyleRareNonInheritedData a bit field so that it can be generated as
a keyword field.

The field is stored as an unsigned so that it can pack efficiently
on Windows.

BUG=628043

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

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

Project Member Comment 252 by bugdroid1@chromium.org, May 30
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/06c4e174ed940045202174b231ff02225088395d

commit 06c4e174ed940045202174b231ff02225088395d
Author: shend <shend@chromium.org>
Date: Tue May 30 07:15:55 2017

Remove unused word-break getters/setters.

This patch removes unused getters/setters for word-break in
ComputedStyle.

BUG=628043

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

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

Project Member Comment 253 by bugdroid1@chromium.org, May 30
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/fe4dab40075a213e695cd2a3a503356c2e6e8333

commit fe4dab40075a213e695cd2a3a503356c2e6e8333
Author: nainar <nainar@chromium.org>
Date: Tue May 30 08:14:45 2017

Generate getters/setters for text-stroke-width.

Currently, the text-stroke-width property is a 'storage_only' field, so
it has no generated public getters/setters. This patch changes it to an
'primitive' field so that its getters/setters can be generated as well.

BUG=628043

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

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

Project Member Comment 254 by bugdroid1@chromium.org, May 30
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/a4026e4cc7c9a518e6153065cb0b19d8f1b288c0

commit a4026e4cc7c9a518e6153065cb0b19d8f1b288c0
Author: shend <shend@chromium.org>
Date: Tue May 30 08:23:11 2017

Remove unused text-security getters/setters.

This patch removes unused getters/setters for text-security in
ComputedStyle.

BUG=628043

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

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

Project Member Comment 255 by bugdroid1@chromium.org, May 30
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/dbe5728de7fe5209b8590934f52af68c619a1cd1

commit dbe5728de7fe5209b8590934f52af68c619a1cd1
Author: nainar <nainar@chromium.org>
Date: Tue May 30 08:36:17 2017

Generate getters/setters for TapHighlightColor.

Currently, the TapHighlightColor property is a 'storage_only' field, so
it has no generated public getters/setters. This patch changes it to an
'external' field so that its getters/setters can be generated as well.

Diff: https://gist.github.com/nainar/7b476927a266bee61d682c2dc0527ed2/revisions

BUG=628043

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

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

Project Member Comment 256 by bugdroid1@chromium.org, May 30
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/36d3ee32727627fb3bde2990eb43de8c85879183

commit 36d3ee32727627fb3bde2990eb43de8c85879183
Author: shend <shend@chromium.org>
Date: Tue May 30 10:42:46 2017

Move PageSizeAuto to ComputedStyleConstants.h.

StyleRareNonInheritedData.h has an enum called PageSizeAuto. When we
generate StyleRareNonInheritedData.h, this enum can no longer be defined
in that file. This patch moves PageSizeAuto to ComputedStyleConstants.h
so that we can continue to ues it after we've generated
StyleRareNonInheritedData.

BUG=628043

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

[modify] https://crrev.com/36d3ee32727627fb3bde2990eb43de8c85879183/third_party/WebKit/Source/core/style/ComputedStyleConstants.h
[modify] https://crrev.com/36d3ee32727627fb3bde2990eb43de8c85879183/third_party/WebKit/Source/core/style/StyleRareNonInheritedData.h

Project Member Comment 258 by bugdroid1@chromium.org, May 30
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/f003932c6720ec1b62d30928d25ebc6bd9c73de9

commit f003932c6720ec1b62d30928d25ebc6bd9c73de9
Author: nainar <nainar@chromium.org>
Date: Tue May 30 11:29:29 2017

Generate enum/getters/setters/mappings for text-align-last.

Currently, the text-align-last property is a 'storage_only' field,
so it has no generated public getters/setters. This patch changes it to
a 'keyword' field so that its getters/setters can be generated as well.
We also generate the ETextAlignLast enum and use the generated
CSSValueID <-> ETextAlignLast mappings.

Diff: https://gist.github.com/7ebcc52951f3abdb9e1fd8f23bdb3e71/revisions

BUG=628043

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

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

Project Member Comment 259 by bugdroid1@chromium.org, May 30
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/f0b43318558028fe42bc12bf1d1096849d205455

commit f0b43318558028fe42bc12bf1d1096849d205455
Author: nainar <nainar@chromium.org>
Date: Tue May 30 11:30:26 2017

Generate getters/setters for TextSizeAdjust.

Currently, the TextSizeAdjust property is a 'storage_only' field, so
it has no generated public getters/setters. This patch changes it to an
'external' field so that its getters/setters can be generated as well.

Diff: https://gist.github.com/nainar/649eeb3c1dc02dc231fb5f9a75da44ac/revisions

BUG=628043

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

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

Project Member Comment 260 by bugdroid1@chromium.org, May 31
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/4345e38cd114d781b630039d2cc0f18c7514f626

commit 4345e38cd114d781b630039d2cc0f18c7514f626
Author: shend <shend@chromium.org>
Date: Wed May 31 04:05:33 2017

Explicitly generate ComputedStyleBase subgroup copy constructors.

We currently use the default copy constructor for subgroups under
ComputedStyleBase like StyleSurroundData. We've been able to do so
because all fields had default copying behaviour. Now we want to
generate StyleRareNonInheritedData, which has std::unique_ptr fields
that cannot be copied by default. This means we have to explicitly
generate user-defined copy constructors for these subgroups.

This is in preparation for supporting custom copying behaviour for
fields.

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

BUG=628043

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

[modify] https://crrev.com/4345e38cd114d781b630039d2cc0f18c7514f626/third_party/WebKit/Source/build/scripts/templates/fields/group.tmpl

Project Member Comment 263 by bugdroid1@chromium.org, May 31
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/4e4c61cfefb77952159dae7efab12914e9f4e56f

commit 4e4c61cfefb77952159dae7efab12914e9f4e56f
Author: shend <shend@chromium.org>
Date: Wed May 31 05:50:44 2017

Generate enum/getters/setters/mappings for ruby-position.

Currently, the ruby-position property is a 'storage_only' field,
so it has no generated public getters/setters. This patch changes it to
a 'keyword' field so that its getters/setters can be generated as well.
We also generate the ERubyPosition enum and use the generated
CSSValueID <-> ERubyPosition mappings.

BUG=628043

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

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

Project Member Comment 264 by bugdroid1@chromium.org, May 31
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/51bbe33ffd7411539815a5f7e554b39b5e26eefd

commit 51bbe33ffd7411539815a5f7e554b39b5e26eefd
Author: shend <shend@chromium.org>
Date: Wed May 31 06:39:20 2017

Generate enum/getters/setters/mappings for line-break.

Currently, the line-break property is a 'storage_only' field,
so it has no generated public getters/setters. This patch changes it to
a 'keyword' field so that its getters/setters can be generated as well.
We also generate the ELineBreak enum and use the generated
CSSValueID <-> ELineBreak mappings.

BUG=628043

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

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

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

commit adccf92c92a9fa6094191e3938b3bd42948751fd
Author: shend <shend@chromium.org>
Date: Wed May 31 10:22:42 2017

Generate enum/getters/setters/mappings for user-select.

Currently, the user-select property is a 'storage_only' field,
so it has no generated public getters/setters. This patch changes it to
a 'keyword' field so that its getters/setters can be generated as well.
We also generate the EUserSelect enum and use the generated
CSSValueID <-> EUserSelect mappings.

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

BUG=628043

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

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

Project Member Comment 266 by bugdroid1@chromium.org, May 31
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/960ae7f16addc69a2369cda1d8462f0b1850a77e

commit 960ae7f16addc69a2369cda1d8462f0b1850a77e
Author: nainar <nainar@chromium.org>
Date: Wed May 31 11:29:50 2017

Generate enum/getters/setters/mappings for text-combine-upright.

Currently, the text-combine-upright/{webkit,epub}-combine property is a
'storage_only' field, so it has no generated public getters/setters.
This patch changes it to a 'keyword' field so that its getters/setters
can be generated as well. We also generate the ETextCombine enum and
use the generated CSSValueID <-> ETextCombine mappings.

Diff: https://gist.github.com/nainar/c2f36a25584d2f298ab9090fe308c6e5/revisions

BUG=628043

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

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

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

commit f3833029711d581ebebedaeaf3412b2463c857ea
Author: nainar <nainar@chromium.org>
Date: Wed May 31 11:52:01 2017

Generate enum/getters/setters/mappings for text-orientation.

Currently, the text-orientation property is a 'storage_only' field,
so it has no generated public getters/setters. This patch changes it to
a 'keyword' field so that its getters/setters can be generated as well.
We also generate the ETextOrientation enum and use the generated
CSSValueID <-> ETextOrientation mappings.

Diff: https://gist.github.com/nainar/257662e77043a84cf3def269576e534a/revisions

BUG=628043

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

[modify] https://crrev.com/f3833029711d581ebebedaeaf3412b2463c857ea/third_party/WebKit/Source/core/css/CSSPrimitiveValueMappings.h
[modify] https://crrev.com/f3833029711d581ebebedaeaf3412b2463c857ea/third_party/WebKit/Source/core/css/CSSProperties.json5
[modify] https://crrev.com/f3833029711d581ebebedaeaf3412b2463c857ea/third_party/WebKit/Source/core/css/CSSValueIDMappings.h
[modify] https://crrev.com/f3833029711d581ebebedaeaf3412b2463c857ea/third_party/WebKit/Source/core/css/ComputedStyleCSSValueMapping.cpp
[modify] https://crrev.com/f3833029711d581ebebedaeaf3412b2463c857ea/third_party/WebKit/Source/core/css/resolver/FontBuilder.cpp
[modify] https://crrev.com/f3833029711d581ebebedaeaf3412b2463c857ea/third_party/WebKit/Source/core/css/resolver/StyleBuilderCustom.cpp
[modify] https://crrev.com/f3833029711d581ebebedaeaf3412b2463c857ea/third_party/WebKit/Source/core/css/resolver/StyleResolverState.h
[modify] https://crrev.com/f3833029711d581ebebedaeaf3412b2463c857ea/third_party/WebKit/Source/core/style/ComputedStyle.h
[modify] https://crrev.com/f3833029711d581ebebedaeaf3412b2463c857ea/third_party/WebKit/Source/core/style/ComputedStyleConstants.h

Project Member Comment 268 by bugdroid1@chromium.org, May 31
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/09c379de358b916213f0591a5214b60e76dfb224

commit 09c379de358b916213f0591a5214b60e76dfb224
Author: shend <shend@chromium.org>
Date: Wed May 31 12:13:24 2017

Make CounterDirectiveMap a class and implement a Clone() method.

CounterDirectiveMap is currently a typedef of a HashMap, which means
it can't be extended with the Clone method that is required by
StyleRareNonInheritedData when it becomes generated. This patch
makes it into a class and adds a Clone method so that it can be
copied by a generated StyleRareNonInheritedData.

BUG=628043

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

[modify] https://crrev.com/09c379de358b916213f0591a5214b60e76dfb224/third_party/WebKit/Source/core/style/CounterDirectives.cpp
[modify] https://crrev.com/09c379de358b916213f0591a5214b60e76dfb224/third_party/WebKit/Source/core/style/CounterDirectives.h
[modify] https://crrev.com/09c379de358b916213f0591a5214b60e76dfb224/third_party/WebKit/Source/core/style/StyleRareNonInheritedData.cpp

Project Member Comment 269 by bugdroid1@chromium.org, May 31
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/9a4d00a687e0cf0ea029a68b2dd44f5814d539d0

commit 9a4d00a687e0cf0ea029a68b2dd44f5814d539d0
Author: nainar <nainar@chromium.org>
Date: Wed May 31 13:34:07 2017

Replace call sites to BorderValue functions to save the BorderValue construction cost

Currently we construct BorderValues via functions
ComputedStyle::Border{Left,Right,Start,End} only to access two methods
at most (Style and Width) or perform comparison. This patch splits out
the accessors for Style and Width and adds comparison functions to
ComputedStyle to save this construction cost.

We haven't removed the callsites in Layout land that return a
BorderValue and are saving it for a future patch to reduce complexity.

BUG=628043,  721287 

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

[modify] https://crrev.com/9a4d00a687e0cf0ea029a68b2dd44f5814d539d0/third_party/WebKit/Source/core/layout/CollapsedBorderValue.h
[modify] https://crrev.com/9a4d00a687e0cf0ea029a68b2dd44f5814d539d0/third_party/WebKit/Source/core/layout/LayoutTable.cpp
[modify] https://crrev.com/9a4d00a687e0cf0ea029a68b2dd44f5814d539d0/third_party/WebKit/Source/core/layout/LayoutTableCell.cpp
[modify] https://crrev.com/9a4d00a687e0cf0ea029a68b2dd44f5814d539d0/third_party/WebKit/Source/core/layout/LayoutTableSection.cpp
[modify] https://crrev.com/9a4d00a687e0cf0ea029a68b2dd44f5814d539d0/third_party/WebKit/Source/core/layout/LayoutTreeAsText.cpp
[modify] https://crrev.com/9a4d00a687e0cf0ea029a68b2dd44f5814d539d0/third_party/WebKit/Source/core/style/ComputedStyle.cpp
[modify] https://crrev.com/9a4d00a687e0cf0ea029a68b2dd44f5814d539d0/third_party/WebKit/Source/core/style/ComputedStyle.h

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

commit b4e5b1d42138414abcef8816f6af08fbebdbccd2
Author: shend <shend@chromium.org>
Date: Thu Jun 01 01:50:50 2017

Generate enum/getters/setters/mappings for user-modify.

Currently, the user-modify property is a 'storage_only' field,
so it has no generated public getters/setters. This patch changes it to
a 'keyword' field so that its getters/setters can be generated as well.
We also generate the EUserModify enum and use the generated
CSSValueID <-> EUserModify mappings.

Diff of generated files:
https://gist.github.com/21e3b6343b06a190a48ab3e22c9e10bc/revisions

BUG=628043

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

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

Project Member Comment 271 by bugdroid1@chromium.org, Jun 2
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/88112f9e6ce26835980ae32867c5cdbbe36840a5

commit 88112f9e6ce26835980ae32867c5cdbbe36840a5
Author: shend <shend@chromium.org>
Date: Fri Jun 02 04:10:57 2017

Move StyleMultiColData::RuleWidth to ComputedStyle.

When we generate StyleMultiColData, we would no longer have the
RuleWidth method because it is handwritten on StyleMultiColData.
This patch moves RuleWidth to be inline in ComputedStyle so that we
can generate StyleMultiColData.

BUG=628043

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

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

Project Member Comment 273 by bugdroid1@chromium.org, Jun 2
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/399dd8b1e55cfa495e75fcf03b3e65ef3188c82b

commit 399dd8b1e55cfa495e75fcf03b3e65ef3188c82b
Author: shend <shend@chromium.org>
Date: Fri Jun 02 05:15:49 2017

Add missing data members in StyleRareNonInheritedData copy constructor.

Two data members are missing from the StyleRareNonInheritedData copy
constructor. This can be problematic because StyleRareNonInheritedData
is stored with copy-on-write semantics: when two ComputedStyles share
the same StyleRareNonInheritedData, modifying one of them will create
a copy without copying those two data members.

This patch adds callback_selectors and paint_images into the copy
constructor.

BUG=628043

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

[modify] https://crrev.com/399dd8b1e55cfa495e75fcf03b3e65ef3188c82b/third_party/WebKit/Source/core/style/StyleRareNonInheritedData.cpp

Project Member Comment 274 by bugdroid1@chromium.org, Jun 2
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/9e887928f5fc67b86d3d2bf951c3022caaa2314e

commit 9e887928f5fc67b86d3d2bf951c3022caaa2314e
Author: shend <shend@chromium.org>
Date: Fri Jun 02 05:29:00 2017

Make PaintImages a class and implement a Clone() method.

Currently we use Vector<Persistent<StyleImage>> to represent a list
of paint images. When we generate StyleRareNonInheritedData, we need
this type to have a Clone method because it is stored inside a
std::unique_ptr. This patch makes this type its own class so that
it can be extended with a Clone method.

BUG=628043

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

[modify] https://crrev.com/9e887928f5fc67b86d3d2bf951c3022caaa2314e/third_party/WebKit/Source/core/style/BUILD.gn
[modify] https://crrev.com/9e887928f5fc67b86d3d2bf951c3022caaa2314e/third_party/WebKit/Source/core/style/ComputedStyle.cpp
[add] https://crrev.com/9e887928f5fc67b86d3d2bf951c3022caaa2314e/third_party/WebKit/Source/core/style/PaintImages.h
[modify] https://crrev.com/9e887928f5fc67b86d3d2bf951c3022caaa2314e/third_party/WebKit/Source/core/style/StyleRareNonInheritedData.cpp
[modify] https://crrev.com/9e887928f5fc67b86d3d2bf951c3022caaa2314e/third_party/WebKit/Source/core/style/StyleRareNonInheritedData.h

Project Member Comment 275 by bugdroid1@chromium.org, Jun 2
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/359a15605f7907df8909b75dfac49dfd5d98f6ae

commit 359a15605f7907df8909b75dfac49dfd5d98f6ae
Author: shend <shend@chromium.org>
Date: Fri Jun 02 05:44:08 2017

Generate enum/getters/setters/mappings for image-rendering.

Currently, the image-rendering property is a 'storage_only' field,
so it has no generated public getters/setters. This patch changes it to
a 'keyword' field so that its getters/setters can be generated as well.
We also generate the ImageRendering enum and use the generated
CSSValueID <-> ImageRendering mappings.

We also rename ImageRendering::kOptimizeContrast to
kWebkitOptimizeContrast to match the keywords.

Diff of generated files:
https://gist.github.com/51d00263e744ea52b3b8cc419f54314f/revisions

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

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

[modify] https://crrev.com/359a15605f7907df8909b75dfac49dfd5d98f6ae/third_party/WebKit/Source/core/css/CSSPrimitiveValueMappings.h
[modify] https://crrev.com/359a15605f7907df8909b75dfac49dfd5d98f6ae/third_party/WebKit/Source/core/css/CSSProperties.json5
[modify] https://crrev.com/359a15605f7907df8909b75dfac49dfd5d98f6ae/third_party/WebKit/Source/core/layout/ImageQualityController.cpp
[modify] https://crrev.com/359a15605f7907df8909b75dfac49dfd5d98f6ae/third_party/WebKit/Source/core/paint/HTMLCanvasPainter.cpp
[modify] https://crrev.com/359a15605f7907df8909b75dfac49dfd5d98f6ae/third_party/WebKit/Source/core/style/ComputedStyle.h
[modify] https://crrev.com/359a15605f7907df8909b75dfac49dfd5d98f6ae/third_party/WebKit/Source/core/style/ComputedStyleConstants.h

Project Member Comment 276 by bugdroid1@chromium.org, Jun 2
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/e7c31a19402ec496651ee9c6b0177234fda7d600

commit e7c31a19402ec496651ee9c6b0177234fda7d600
Author: shend <shend@chromium.org>
Date: Fri Jun 02 08:37:13 2017

Move fixed point constants from ComputedStyleConstants to BorderValue.

This patch moves these constants because they are no longer used by
ComputedStyle nor ComputedStyleBase, but only by BorderValue.

BUG=628043

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

[modify] https://crrev.com/e7c31a19402ec496651ee9c6b0177234fda7d600/third_party/WebKit/Source/build/scripts/templates/ComputedStyleBase.h.tmpl
[modify] https://crrev.com/e7c31a19402ec496651ee9c6b0177234fda7d600/third_party/WebKit/Source/core/style/BorderValue.h
[modify] https://crrev.com/e7c31a19402ec496651ee9c6b0177234fda7d600/third_party/WebKit/Source/core/style/ComputedStyleConstants.h

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

commit f7b7f0ee69149ccc0bf5a903d6086b114626dda8
Author: shend <shend@chromium.org>
Date: Mon Jun 05 22:18:58 2017

Rename RareInheritedData::variables and RareNonInheritedData::variables.

When we generate fields in ComputedStyleBase, the name of the fields
must be distinct. Sometimes, existing handwritten data members share
the same name because they are stored on different groups. This may not
be true when they become generated. Hence, we have to rename these
members with a distinct name.

This patch renames:
- StyleRareInheritedData::variables_ -> inherited_variables_
- StyleRareNonInheritedData::variables_ -> non_inherited_variables_

There are no changes in behaviour.

BUG=628043

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

[modify] https://crrev.com/f7b7f0ee69149ccc0bf5a903d6086b114626dda8/third_party/WebKit/Source/core/css/ComputedStyleExtraFields.json5
[modify] https://crrev.com/f7b7f0ee69149ccc0bf5a903d6086b114626dda8/third_party/WebKit/Source/core/style/ComputedStyle.cpp
[modify] https://crrev.com/f7b7f0ee69149ccc0bf5a903d6086b114626dda8/third_party/WebKit/Source/core/style/StyleRareNonInheritedData.cpp
[modify] https://crrev.com/f7b7f0ee69149ccc0bf5a903d6086b114626dda8/third_party/WebKit/Source/core/style/StyleRareNonInheritedData.h

Project Member Comment 278 by bugdroid1@chromium.org, Jun 5
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/525a0e6f0d79296a4da4f109f7a704ebbcf7f20a

commit 525a0e6f0d79296a4da4f109f7a704ebbcf7f20a
Author: shend <shend@chromium.org>
Date: Mon Jun 05 22:50:32 2017

Make ComputedStyleBase internal pointer setters move-only.

This patch removes the const ref overload for setters on pointer types.
This means that the internal setter can only be used with an rvalue ref.

This has two consequences:
- We can generate code that works for RefPtrs and std::unique_ptrs
  (since std::unique_ptrs are not copyable, the const ref overload is
   meaningless [*]).
- RefPtrs are passed to internal setters using std::move, which avoids
  ref churn.

[*] Whilst we could make the const ref overload copy the unique_ptr, we
feel that this implicit copying behaviour is bad.

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

This patch does not change behaviour, only the internal API for
ComputedStyleBase.

BUG=628043

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

[modify] https://crrev.com/525a0e6f0d79296a4da4f109f7a704ebbcf7f20a/third_party/WebKit/Source/build/scripts/templates/fields/storage_only.tmpl
[modify] https://crrev.com/525a0e6f0d79296a4da4f109f7a704ebbcf7f20a/third_party/WebKit/Source/core/style/ComputedStyle.cpp

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

commit ba2889de7991c1f5162cd12dd6cc6e4de3bc3ac0
Author: shend <shend@chromium.org>
Date: Tue Jun 06 05:48:54 2017

Make ComputedStyleBase use DataCopy when copying pointer fields.

ComputedStyleBase has a constructor that copies every field using the
default copy behaviour. However, when we generate RareNonInheritedData,
some of the pointer fields require special copying behaviour (e.g.
those stored in a std::unique_ptr). To inject custom copying behaviour,
we copy pointer fields with a new function called MemberCopy. MemberCopy
is a function that takes a variable of some type and returns a copy of
it. It can be overloaded to have custom copying behaviour for some type.
Since ComputedStyleBase currently has no special copying behaviour,
we simply overload MemberCopy with RefPtr and Persistent to use the
default copying behaviour.

When we generate RareNonInheritedData, we will need to introduce
overloads for std::unique_ptr and DataPersistent.

This patch does not introduce changes in behaviour.

Diff of generated files:
https://gist.github.com/7a2b410da029e4ed71af5509c511cba2/revisions

BUG=628043

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

[modify] https://crrev.com/ba2889de7991c1f5162cd12dd6cc6e4de3bc3ac0/third_party/WebKit/Source/build/scripts/templates/ComputedStyleBase.h.tmpl
[modify] https://crrev.com/ba2889de7991c1f5162cd12dd6cc6e4de3bc3ac0/third_party/WebKit/Source/build/scripts/templates/fields/group.tmpl
[modify] https://crrev.com/ba2889de7991c1f5162cd12dd6cc6e4de3bc3ac0/third_party/WebKit/Source/core/style/BUILD.gn
[add] https://crrev.com/ba2889de7991c1f5162cd12dd6cc6e4de3bc3ac0/third_party/WebKit/Source/core/style/MemberCopy.h

Project Member Comment 280 by bugdroid1@chromium.org, Jun 6
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/61e48d3a97f36c56ad4c9b0d694d4ae52f458a87

commit 61e48d3a97f36c56ad4c9b0d694d4ae52f458a87
Author: Darren Shen <shend@chromium.org>
Date: Tue Jun 06 06:15:42 2017

Rename DataRefs in RareNonInheritedData.

The generator will generate DataRefs with the _data_ suffix in the name.
This patch renames the handwritten DataRefs in RareNonInheritedData to
conform to this style.

Bug: 628043
Change-Id: I66e0991eb6767fc3da9895c4372ec921b9efb9e5
Reviewed-on: https://chromium-review.googlesource.com/525274
Commit-Queue: Naina Raisinghani <nainar@chromium.org>
Commit-Queue: Darren Shen <shend@chromium.org>
Reviewed-by: Naina Raisinghani <nainar@chromium.org>
Cr-Commit-Position: refs/heads/master@{#477209}
[modify] https://crrev.com/61e48d3a97f36c56ad4c9b0d694d4ae52f458a87/third_party/WebKit/Source/core/style/ComputedStyle.cpp
[modify] https://crrev.com/61e48d3a97f36c56ad4c9b0d694d4ae52f458a87/third_party/WebKit/Source/core/style/ComputedStyle.h
[modify] https://crrev.com/61e48d3a97f36c56ad4c9b0d694d4ae52f458a87/third_party/WebKit/Source/core/style/StyleRareNonInheritedData.cpp
[modify] https://crrev.com/61e48d3a97f36c56ad4c9b0d694d4ae52f458a87/third_party/WebKit/Source/core/style/StyleRareNonInheritedData.h

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

commit d68f294b5c23f5b973d9391007c872751cfe49b3
Author: Darren Shen <shend@chromium.org>
Date: Tue Jun 06 07:56:56 2017

Rename StyleWillChangeData members.

When we generate fields in ComputedStyleBase, the name of the fields
must be distinct. Sometimes, existing handwritten data members share
the same name because they are stored on different groups. This may not
be true when they become generated. Hence, we have to rename these
members with a distinct name.

This patch adds the "will_change" prefix to the names of all the
StyleWillChange data members.

There are no changes in behaviour.

Bug=628043

Change-Id: I5f7d484a2afedb4aa64e33dd1ea2665a2dc44611
Reviewed-on: https://chromium-review.googlesource.com/525252
Commit-Queue: Darren Shen <shend@chromium.org>
Reviewed-by: Eddy Mead <meade@chromium.org>
Cr-Commit-Position: refs/heads/master@{#477230}
[modify] https://crrev.com/d68f294b5c23f5b973d9391007c872751cfe49b3/third_party/WebKit/Source/core/style/ComputedStyle.cpp
[modify] https://crrev.com/d68f294b5c23f5b973d9391007c872751cfe49b3/third_party/WebKit/Source/core/style/ComputedStyle.h
[modify] https://crrev.com/d68f294b5c23f5b973d9391007c872751cfe49b3/third_party/WebKit/Source/core/style/StyleWillChangeData.cpp
[modify] https://crrev.com/d68f294b5c23f5b973d9391007c872751cfe49b3/third_party/WebKit/Source/core/style/StyleWillChangeData.h

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

commit c5ccd757d6645405106fffc4c79f9697a7ec4da3
Author: Darren Shen <shend@chromium.org>
Date: Tue Jun 06 22:26:14 2017

Generate methods for SubtreeWillChangeContents in ComputedStyleBase.

This patch generates getters/setters for SubtreeWillChangeContents.

Diff of generated files:
https://gist.github.com/46ddf3dfedfbbc8a990e1c3acff6507d/revisions

Bug: 628043
Change-Id: I411be4511953bb15e9b626439179a8ea8ca1684a
Reviewed-on: https://chromium-review.googlesource.com/525214
Commit-Queue: Darren Shen <shend@chromium.org>
Reviewed-by: Naina Raisinghani <nainar@chromium.org>
Cr-Commit-Position: refs/heads/master@{#477437}
[modify] https://crrev.com/c5ccd757d6645405106fffc4c79f9697a7ec4da3/third_party/WebKit/Source/core/css/ComputedStyleExtraFields.json5
[modify] https://crrev.com/c5ccd757d6645405106fffc4c79f9697a7ec4da3/third_party/WebKit/Source/core/style/ComputedStyle.h

Project Member Comment 284 by bugdroid1@chromium.org, Jun 6
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/97bec63d0193db10f8e31fdad38ea8886d73e00f

commit 97bec63d0193db10f8e31fdad38ea8886d73e00f
Author: Darren Shen <shend@chromium.org>
Date: Tue Jun 06 23:45:40 2017

Generate enum/getters/setters/mappings for text-underline-position.

Currently, the text-underline-position property is a 'storage_only' field,
so it has no generated public getters/setters. This patch changes it to
a 'keyword' field so that its getters/setters can be generated as well.
We also generate the TextUnderlinePosition enum and use the generated
CSSValueID <-> TextUnderlinePosition mappings.

Diff of generated files:
https://gist.github.com/660ef70abac1536136fccb33ecf0905a/revisions

Bug: 628043
Change-Id: Ida488dc25572ad5ede5c5f97a7f44a375de4f29b
Reviewed-on: https://chromium-review.googlesource.com/525272
Commit-Queue: Darren Shen <shend@chromium.org>
Reviewed-by: Rune Lillesveen <rune@opera.com>
Reviewed-by: Naina Raisinghani <nainar@chromium.org>
Cr-Commit-Position: refs/heads/master@{#477466}
[modify] https://crrev.com/97bec63d0193db10f8e31fdad38ea8886d73e00f/third_party/WebKit/Source/core/css/CSSPrimitiveValueMappings.h
[modify] https://crrev.com/97bec63d0193db10f8e31fdad38ea8886d73e00f/third_party/WebKit/Source/core/css/CSSProperties.json5
[modify] https://crrev.com/97bec63d0193db10f8e31fdad38ea8886d73e00f/third_party/WebKit/Source/core/style/ComputedStyle.h
[modify] https://crrev.com/97bec63d0193db10f8e31fdad38ea8886d73e00f/third_party/WebKit/Source/core/style/ComputedStyleConstants.h

Project Member Comment 285 by bugdroid1@chromium.org, Jun 7
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/93dba2909d46c4ec7dbb94fe666480a7486b7f39

commit 93dba2909d46c4ec7dbb94fe666480a7486b7f39
Author: shend <shend@chromium.org>
Date: Wed Jun 07 08:21:04 2017

Remove template parameter on ComputedStyleBase.

In a previous patch, we made ComputedStyleBase a template class. This
allowed ComputedStyle to pass itself as a template parameter so that
ComputedStyleBase can access methods on ComputedStyle.

However, this meant that all the ComputedStyleBase code were in a
single header file. Whenever it calls a non-inlined function declared
without CORE_EXPORT, it would cause a linker error. This is because
ComputedStyleBase functions were being inlined in different translation
units that did not have the necessary symbols.

Whilst we could make an explicit instantiation of ComputedStyleBase
with ComputedStyle, it is much easier to go back to the original .h/cpp
split. To make this work, we forward declare ComputedStyle in
ComputedStyleBase.h. Whenever we call methods on ComputedStyle, we do
that in ComputedStyleBase.cpp. We also have to make diffing functions
static functions that took two ComputedStyles instead of an "other"
ComputedStyleBase.

This patch does not change behaviour.

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

BUG=628043

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

[modify] https://crrev.com/93dba2909d46c4ec7dbb94fe666480a7486b7f39/third_party/WebKit/Source/build/scripts/make_computed_style_base.py
[add] https://crrev.com/93dba2909d46c4ec7dbb94fe666480a7486b7f39/third_party/WebKit/Source/build/scripts/templates/ComputedStyleBase.cpp.tmpl
[modify] https://crrev.com/93dba2909d46c4ec7dbb94fe666480a7486b7f39/third_party/WebKit/Source/build/scripts/templates/ComputedStyleBase.h.tmpl
[modify] https://crrev.com/93dba2909d46c4ec7dbb94fe666480a7486b7f39/third_party/WebKit/Source/build/scripts/templates/fields/field.tmpl
[modify] https://crrev.com/93dba2909d46c4ec7dbb94fe666480a7486b7f39/third_party/WebKit/Source/build/scripts/templates/fields/group.tmpl
[modify] https://crrev.com/93dba2909d46c4ec7dbb94fe666480a7486b7f39/third_party/WebKit/Source/core/BUILD.gn
[modify] https://crrev.com/93dba2909d46c4ec7dbb94fe666480a7486b7f39/third_party/WebKit/Source/core/css/ComputedStyleDiffFunctions.json5
[modify] https://crrev.com/93dba2909d46c4ec7dbb94fe666480a7486b7f39/third_party/WebKit/Source/core/style/ComputedStyle.cpp
[modify] https://crrev.com/93dba2909d46c4ec7dbb94fe666480a7486b7f39/third_party/WebKit/Source/core/style/ComputedStyle.h

Project Member Comment 286 by bugdroid1@chromium.org, Jun 8
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/6fdc5809ac78b966c6dc873e936efaa365f873f5

commit 6fdc5809ac78b966c6dc873e936efaa365f873f5
Author: Darren Shen <shend@chromium.org>
Date: Thu Jun 08 04:02:47 2017

Move NamedGridLinesMap and OrderedNamedGridLines to their own files.

StyleGridData.h contains two typedefs: NamedGridLinesMap and
OrderedNamedGridLines. When we generate StyleGridData, StyleGridData.h
will be deleted, so those two typedefs can't stay in that file. This
patch moves the typedefs to their own files so that they still work
after we delete StyleGridData.h.

Bug: 628043
Change-Id: I7590b267ae532d23cf808117a096ff52a377c655
Reviewed-on: https://chromium-review.googlesource.com/527733
Reviewed-by: Bugs Nash <bugsnash@chromium.org>
Commit-Queue: Darren Shen <shend@chromium.org>
Cr-Commit-Position: refs/heads/master@{#477879}
[modify] https://crrev.com/6fdc5809ac78b966c6dc873e936efaa365f873f5/third_party/WebKit/Source/core/style/BUILD.gn
[add] https://crrev.com/6fdc5809ac78b966c6dc873e936efaa365f873f5/third_party/WebKit/Source/core/style/NamedGridLinesMap.h
[add] https://crrev.com/6fdc5809ac78b966c6dc873e936efaa365f873f5/third_party/WebKit/Source/core/style/OrderedNamedGridLines.h
[modify] https://crrev.com/6fdc5809ac78b966c6dc873e936efaa365f873f5/third_party/WebKit/Source/core/style/StyleGridData.h

Project Member Comment 287 by bugdroid1@chromium.org, Jun 8
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/59f59f22c954b04d3282a566c4c64eac2cf49ee8

commit 59f59f22c954b04d3282a566c4c64eac2cf49ee8
Author: Darren Shen <shend@chromium.org>
Date: Thu Jun 08 06:16:06 2017

Add public operator== to TransformOperations.

Currently, the equality operator on the following classes are private:
- TranslateTransformOperation
- RotateTransformOperation
- ScaleTransformOperation

So two Translate/Rotate/ScaleTransformOperations cannot be directly
compared. We need to first static_cast them both into TransformOperation
and use the public equality operator on TransformOperation. The equality
operator on TransformOperation is a pure virtual function that just
calls the private equality operators on Translate/Rotate/
ScaleTransformOperations anyway.

To make comparing two Translate/Rotate/ScaleTransformOperations easier,
this patch adds public equality operators to each of those files.
Each of these equality operators only compare with the same type and
simply call the private equality operators.

This allows two Translate/Rotate/ScaleTransformOperations of the same
type to be compared without needing static_cast to a TransformOperation.

Alternatively we could make the private equality operators public, but
I assume there was some reason that they were private. If there's no
particular reason then just making them public is probably better.

This patch also makes a change in StyleTransformData to show that it
works.

Bug: 628043
Change-Id: Ie74931a04f829e5f74348feeca17a75e68046f99
Reviewed-on: https://chromium-review.googlesource.com/527836
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Commit-Queue: Darren Shen <shend@chromium.org>
Cr-Commit-Position: refs/heads/master@{#477911}
[modify] https://crrev.com/59f59f22c954b04d3282a566c4c64eac2cf49ee8/third_party/WebKit/Source/core/style/StyleTransformData.cpp
[modify] https://crrev.com/59f59f22c954b04d3282a566c4c64eac2cf49ee8/third_party/WebKit/Source/platform/transforms/RotateTransformOperation.h
[modify] https://crrev.com/59f59f22c954b04d3282a566c4c64eac2cf49ee8/third_party/WebKit/Source/platform/transforms/ScaleTransformOperation.h
[modify] https://crrev.com/59f59f22c954b04d3282a566c4c64eac2cf49ee8/third_party/WebKit/Source/platform/transforms/TranslateTransformOperation.h

Project Member Comment 288 by bugdroid1@chromium.org, Jun 8
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/80fa201c33eb5854193f652ea64adc68620ce70d

commit 80fa201c33eb5854193f652ea64adc68620ce70d
Author: shend <shend@chromium.org>
Date: Thu Jun 08 07:54:57 2017

Remove unused include in CSSSelectorWatch.

StyleRareNonInheritedData.h will no longer exist once we generate it.
This removes an unused include of StyleRareNonInheritedData.h.

BUG=628043

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

[modify] https://crrev.com/80fa201c33eb5854193f652ea64adc68620ce70d/third_party/WebKit/Source/core/dom/CSSSelectorWatch.cpp

Project Member Comment 289 by bugdroid1@chromium.org, Jun 8
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/020c1992c67d99bd0a6d994ce6d14d450a639ed7

commit 020c1992c67d99bd0a6d994ce6d14d450a639ed7
Author: Darren Shen <shend@chromium.org>
Date: Thu Jun 08 08:20:59 2017

Move Has3DTransform to ComputedStyle.

When we generate StyleTransformData, we would no longer have the
Has3DTransform method because it is handwritten on StyleTransform.
This patch moves Has3DTransform to be inline in ComputedStyle so that we
can generate StyleTransformData.

Bug: 628043
Change-Id: Ie636886293ca39ff0f643066879ca1dfa90f22d8
Reviewed-on: https://chromium-review.googlesource.com/526814
Reviewed-by: Eddy Mead <meade@chromium.org>
Commit-Queue: Darren Shen <shend@chromium.org>
Cr-Commit-Position: refs/heads/master@{#477924}
[modify] https://crrev.com/020c1992c67d99bd0a6d994ce6d14d450a639ed7/third_party/WebKit/Source/core/style/ComputedStyle.h
[modify] https://crrev.com/020c1992c67d99bd0a6d994ce6d14d450a639ed7/third_party/WebKit/Source/core/style/StyleTransformData.cpp
[modify] https://crrev.com/020c1992c67d99bd0a6d994ce6d14d450a639ed7/third_party/WebKit/Source/core/style/StyleTransformData.h

Project Member Comment 290 by bugdroid1@chromium.org, Jun 8
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/7e6d5f46eea93a97d69d6d5194c163353c528a99

commit 7e6d5f46eea93a97d69d6d5194c163353c528a99
Author: Darren Shen <shend@chromium.org>
Date: Thu Jun 08 10:49:41 2017

Generate getters/setters/mappings for text-justify.

Currently, the text-justify property is a 'storage_only' field,
so it has no generated public getters/setters. This patch changes it to
a 'keyword' field so that its getters/setters can be generated as well.

TextJustify is in platform/text, so we can't generate the enum itself.
However, we can also generate the CSSValueID <-> TextJustify mappings.

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

Bug: 628043
Change-Id: I158f503cf747957434bc6a0580ec5922480d154e
Reviewed-on: https://chromium-review.googlesource.com/527842
Reviewed-by: Alan Cutter <alancutter@chromium.org>
Commit-Queue: Darren Shen <shend@chromium.org>
Cr-Commit-Position: refs/heads/master@{#477938}
[modify] https://crrev.com/7e6d5f46eea93a97d69d6d5194c163353c528a99/third_party/WebKit/Source/core/css/CSSPrimitiveValueMappings.h
[modify] https://crrev.com/7e6d5f46eea93a97d69d6d5194c163353c528a99/third_party/WebKit/Source/core/css/CSSProperties.json5
[modify] https://crrev.com/7e6d5f46eea93a97d69d6d5194c163353c528a99/third_party/WebKit/Source/core/style/ComputedStyle.h

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

commit