The implementation of CSS OM has been hindered by name collisions in the blink namespace between values that derive from CSSValue and values that are associated with CSS OM types. In extreme circumstances ambiguous type names have had to be used to avoid a collision (e.g. CSSKeywordValue).
The intention is to introduce the nested namespaces blink::cssvalue:: and blink::cssom:: to prevent collisions and correctly scope the types. Introducing the nested namespaces also makes it possible to simplify the class names (e.g. blink::CSSAngleValue can be blink::cssvalue::AngleValue or even blink::cssvalue::Angle).
The blink IDL generator does not support nested namespaces so some changes will be required, however the scope is small.
Design doc: https://docs.google.com/document/d/1gmWnBA7fUCx49MZkpdZeyauzPfqMk4aQSmGilATt5WY/edit?usp=sharing
Comment 1 by ericwilligers@chromium.org
, Feb 13 2017