Changeset 246816 in webkit


Ignore:
Timestamp:
Jun 25, 2019 4:40:14 PM (5 years ago)
Author:
Nikita Vasilyev
Message:

REGRESSION(r246621): Web Inspector: Styles: property may get removed when editing after deleting value
https://bugs.webkit.org/show_bug.cgi?id=199143
<rdar://problem/52042815>

Reviewed by Matt Baker.

r246621 affected when WI.CSSStyleDeclaration.Event.PropertiesChanged event is fired, which caused
SpreadsheetCSSStyleDeclarationEditor to possibly enter a state when focused property is
incorrectly set to false.

  • UserInterface/Views/SpreadsheetCSSStyleDeclarationEditor.js:

(WI.SpreadsheetCSSStyleDeclarationEditor.prototype.spreadsheetStylePropertyRemoved): Removed.
(WI.SpreadsheetCSSStyleDeclarationEditor.prototype.spreadsheetStylePropertyWillRemove): Added.
Renamed from "removed" to "willRemove" since we need to call it before the property DOM element
is detached from the document.

  • UserInterface/Views/SpreadsheetStyleProperty.js:

(WI.SpreadsheetStyleProperty.prototype.remove):
Don't set focused to false when the removed property wasn't focused.
This code need to exist because removing focused element from the DOM doesn't trigger blur event.

Location:
trunk/Source/WebInspectorUI
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebInspectorUI/ChangeLog

    r246798 r246816  
     12019-06-25  Nikita Vasilyev  <nvasilyev@apple.com>
     2
     3        REGRESSION(r246621): Web Inspector: Styles: property may get removed when editing after deleting value
     4        https://bugs.webkit.org/show_bug.cgi?id=199143
     5        <rdar://problem/52042815>
     6
     7        Reviewed by Matt Baker.
     8
     9        r246621 affected when WI.CSSStyleDeclaration.Event.PropertiesChanged event is fired, which caused
     10        SpreadsheetCSSStyleDeclarationEditor to possibly enter a state when `focused` property is
     11        incorrectly set to false.
     12
     13        * UserInterface/Views/SpreadsheetCSSStyleDeclarationEditor.js:
     14        (WI.SpreadsheetCSSStyleDeclarationEditor.prototype.spreadsheetStylePropertyRemoved): Removed.
     15        (WI.SpreadsheetCSSStyleDeclarationEditor.prototype.spreadsheetStylePropertyWillRemove): Added.
     16        Renamed from "removed" to "willRemove" since we need to call it before the property DOM element
     17        is detached from the document.
     18
     19        * UserInterface/Views/SpreadsheetStyleProperty.js:
     20        (WI.SpreadsheetStyleProperty.prototype.remove):
     21        Don't set focused to false when the removed property wasn't focused.
     22        This code need to exist because removing focused element from the DOM doesn't trigger blur event.
     23
    1242019-06-25  Joseph Pecoraro  <pecoraro@apple.com>
    225
  • trunk/Source/WebInspectorUI/UserInterface/Views/SpreadsheetCSSStyleDeclarationEditor.js

    r245991 r246816  
    488488    }
    489489
    490     spreadsheetStylePropertyRemoved(propertyView)
     490    spreadsheetStylePropertyWillRemove(propertyView)
    491491    {
    492492        this._propertyViews.remove(propertyView);
     
    495495            this._propertyViews[index].index = index;
    496496
    497         this.focused = false;
     497        let wasFocused = document.activeElement && propertyView.element.contains(document.activeElement);
     498        if (wasFocused)
     499            this.focused = false;
    498500    }
    499501
  • trunk/Source/WebInspectorUI/UserInterface/Views/SpreadsheetStyleProperty.js

    r246722 r246816  
    139139    remove(replacement = null)
    140140    {
     141        if (this._delegate && typeof this._delegate.spreadsheetStylePropertyWillRemove === "function")
     142            this._delegate.spreadsheetStylePropertyWillRemove(this);
     143
    141144        this.element.remove();
    142145
     
    147150
    148151        this.detached();
    149 
    150         if (this._delegate && typeof this._delegate.spreadsheetStylePropertyRemoved === "function")
    151             this._delegate.spreadsheetStylePropertyRemoved(this);
    152152    }
    153153
Note: See TracChangeset for help on using the changeset viewer.