Chromium Code Reviews| Index: Source/core/inspector/LayoutEditor.cpp |
| diff --git a/Source/core/inspector/LayoutEditor.cpp b/Source/core/inspector/LayoutEditor.cpp |
| index 49ad5c28db9bf9d9c6c66fbe9d433e3a27375a76..3efa1c44b0ce81d872f6bbed675a279dea8e1063 100644 |
| --- a/Source/core/inspector/LayoutEditor.cpp |
| +++ b/Source/core/inspector/LayoutEditor.cpp |
| @@ -18,7 +18,7 @@ namespace blink { |
| namespace { |
| -PassRefPtr<JSONObject> createAnchor(float x, float y, const String& propertyName, FloatPoint deltaVector) |
| +PassRefPtr<JSONObject> createAnchor(float x, float y, const String& propertyName, FloatPoint deltaVector, PassRefPtr<JSONObject> valueDescription) |
| { |
| RefPtr<JSONObject> object = JSONObject::create(); |
| object->setNumber("x", x); |
| @@ -29,7 +29,7 @@ PassRefPtr<JSONObject> createAnchor(float x, float y, const String& propertyName |
| deltaVectorJSON->setNumber("x", deltaVector.x()); |
| deltaVectorJSON->setNumber("y", deltaVector.y()); |
| object->setObject("deltaVector", deltaVectorJSON.release()); |
| - |
| + object->setObject("value", valueDescription); |
| return object.release(); |
| } |
| @@ -120,10 +120,38 @@ PassRefPtr<JSONObject> LayoutEditor::buildJSONInfo() const |
| RefPtr<JSONObject> object = JSONObject::create(); |
| RefPtr<JSONArray> anchors = JSONArray::create(); |
| - anchors->pushObject(createAnchor(xLeft, yLeft, "padding-left", orthoLeft)); |
| - anchors->pushObject(createAnchor(xRight, yRight, "padding-right", orthoRight)); |
| + |
| + RefPtr<JSONObject> paddingLeftDescription = createValueDescription("padding-left"); |
| + if (paddingLeftDescription) |
| + anchors->pushObject(createAnchor(xLeft, yLeft, "padding-left", orthoLeft, paddingLeftDescription.release())); |
| + |
| + RefPtr<JSONObject> paddingRightDescription = createValueDescription("padding-right"); |
| + if (paddingRightDescription) |
| + anchors->pushObject(createAnchor(xRight, yRight, "padding-right", orthoRight, paddingRightDescription.release())); |
| + |
| object->setArray("anchors", anchors.release()); |
| + return object.release(); |
| +} |
| +RefPtrWillBeRawPtr<CSSPrimitiveValue> LayoutEditor::getPropertyCSSValue(CSSPropertyID property) const |
| +{ |
| + RefPtrWillBeRawPtr<CSSComputedStyleDeclaration> computedStyleInfo = CSSComputedStyleDeclaration::create(m_node, true); |
| + RefPtrWillBeRawPtr<CSSValue> cssValue = computedStyleInfo->getPropertyCSSValue(property); |
| + if (!cssValue->isPrimitiveValue()) |
| + return nullptr; |
| + |
| + return toCSSPrimitiveValue(cssValue.get()); |
| +} |
| + |
| +PassRefPtr<JSONObject> LayoutEditor::createValueDescription(const String& propertyName) const |
| +{ |
| + RefPtrWillBeRawPtr<CSSPrimitiveValue> cssValue = getPropertyCSSValue(cssPropertyID(propertyName)); |
| + if (!cssValue) |
| + return nullptr; |
| + |
| + RefPtr<JSONObject> object = JSONObject::create(); |
| + object->setNumber("value", cssValue->getFloatValue()); |
| + object->setString("dimension", "px"); |
|
dgozman
2015/06/29 15:18:35
unit
sergeyv
2015/06/29 16:30:33
Done.
|
| return object.release(); |
| } |
| @@ -133,14 +161,13 @@ void LayoutEditor::overlayStartedPropertyChange(const String& anchorName) |
| if (!m_node || !m_changingProperty) |
| return; |
| - RefPtrWillBeRawPtr<CSSComputedStyleDeclaration> computedStyleInfo = CSSComputedStyleDeclaration::create(m_node, true); |
| - RefPtrWillBeRawPtr<CSSValue> cssValue = computedStyleInfo->getPropertyCSSValue(m_changingProperty); |
| - if (!cssValue->isPrimitiveValue()) { |
| + RefPtrWillBeRawPtr<CSSPrimitiveValue> cssValue = getPropertyCSSValue(m_changingProperty); |
| + if (!cssValue) { |
| m_changingProperty = CSSPropertyInvalid; |
| return; |
| } |
| - m_propertyInitialValue = toCSSPrimitiveValue(cssValue.get())->getFloatValue(); |
| + m_propertyInitialValue = cssValue->getFloatValue(); |
| } |
| void LayoutEditor::overlayPropertyChanged(float cssDelta) |