Index: third_party/WebKit/Source/core/css/CSSPrimitiveValue.cpp |
diff --git a/third_party/WebKit/Source/core/css/CSSPrimitiveValue.cpp b/third_party/WebKit/Source/core/css/CSSPrimitiveValue.cpp |
index 888ca97a67c350195d18c12fb2b5fbb94bf19434..937ad18caa62d8e881729676b8fb9b22269757a2 100644 |
--- a/third_party/WebKit/Source/core/css/CSSPrimitiveValue.cpp |
+++ b/third_party/WebKit/Source/core/css/CSSPrimitiveValue.cpp |
@@ -23,6 +23,7 @@ |
#include "core/css/CSSCalculationValue.h" |
#include "core/css/CSSHelper.h" |
#include "core/css/CSSMarkup.h" |
+#include "core/css/CSSPrimitiveValueUnitTrie.h" |
#include "core/css/CSSToLengthConversionData.h" |
#include "core/css/StyleSheetContents.h" |
#include "core/dom/Node.h" |
@@ -44,48 +45,6 @@ namespace { |
const int maxValueForCssLength = INT_MAX / kFixedPointDenominator - 2; |
const int minValueForCssLength = INT_MIN / kFixedPointDenominator + 2; |
-using StringToUnitTable = HashMap<String, CSSPrimitiveValue::UnitType>; |
- |
-StringToUnitTable createStringToUnitTable() |
-{ |
- StringToUnitTable table; |
- table.set(String("em"), CSSPrimitiveValue::UnitType::Ems); |
- table.set(String("ex"), CSSPrimitiveValue::UnitType::Exs); |
- table.set(String("px"), CSSPrimitiveValue::UnitType::Pixels); |
- table.set(String("cm"), CSSPrimitiveValue::UnitType::Centimeters); |
- table.set(String("mm"), CSSPrimitiveValue::UnitType::Millimeters); |
- table.set(String("in"), CSSPrimitiveValue::UnitType::Inches); |
- table.set(String("pt"), CSSPrimitiveValue::UnitType::Points); |
- table.set(String("pc"), CSSPrimitiveValue::UnitType::Picas); |
- table.set(String(""), CSSPrimitiveValue::UnitType::UserUnits); |
- table.set(String("deg"), CSSPrimitiveValue::UnitType::Degrees); |
- table.set(String("rad"), CSSPrimitiveValue::UnitType::Radians); |
- table.set(String("grad"), CSSPrimitiveValue::UnitType::Gradians); |
- table.set(String("ms"), CSSPrimitiveValue::UnitType::Milliseconds); |
- table.set(String("s"), CSSPrimitiveValue::UnitType::Seconds); |
- table.set(String("hz"), CSSPrimitiveValue::UnitType::Hertz); |
- table.set(String("khz"), CSSPrimitiveValue::UnitType::Kilohertz); |
- table.set(String("dpi"), CSSPrimitiveValue::UnitType::DotsPerInch); |
- table.set(String("dpcm"), CSSPrimitiveValue::UnitType::DotsPerCentimeter); |
- table.set(String("dppx"), CSSPrimitiveValue::UnitType::DotsPerPixel); |
- table.set(String("vw"), CSSPrimitiveValue::UnitType::ViewportWidth); |
- table.set(String("vh"), CSSPrimitiveValue::UnitType::ViewportHeight); |
- table.set(String("vmin"), CSSPrimitiveValue::UnitType::ViewportMin); |
- table.set(String("vmax"), CSSPrimitiveValue::UnitType::ViewportMax); |
- table.set(String("rem"), CSSPrimitiveValue::UnitType::Rems); |
- table.set(String("fr"), CSSPrimitiveValue::UnitType::Fraction); |
- table.set(String("turn"), CSSPrimitiveValue::UnitType::Turns); |
- table.set(String("ch"), CSSPrimitiveValue::UnitType::Chs); |
- table.set(String("__qem"), CSSPrimitiveValue::UnitType::QuirkyEms); |
- return table; |
-} |
- |
-StringToUnitTable& unitTable() |
-{ |
- DEFINE_STATIC_LOCAL(StringToUnitTable, unitTable, (createStringToUnitTable())); |
- return unitTable; |
-} |
- |
} // namespace |
float CSSPrimitiveValue::clampToCSSLengthRange(double value) |
@@ -93,18 +52,6 @@ float CSSPrimitiveValue::clampToCSSLengthRange(double value) |
return clampTo<float>(value, minValueForCssLength, maxValueForCssLength); |
} |
-void CSSPrimitiveValue::initUnitTable() |
-{ |
- // Make sure we initialize this during blink initialization |
- // to avoid racy static local initialization. |
- unitTable(); |
-} |
- |
-CSSPrimitiveValue::UnitType CSSPrimitiveValue::fromName(const String& unit) |
-{ |
- return unitTable().get(unit.lower()); |
-} |
- |
CSSPrimitiveValue::UnitCategory CSSPrimitiveValue::unitTypeToUnitCategory(UnitType type) |
{ |
switch (type) { |