mirror of
https://repo.dactyloidae.xyz/Dactyloidae/UXP.git
synced 2026-09-03 14:28:39 +09:00
Bug 1430034 - Fix attributeChangedCallback isn't fired with correct newValue when the attribute value is an empty string;
Tag UXP Issue #1344
This commit is contained in:
parent
a6339bef90
commit
2cdd48f819
2 changed files with 32 additions and 1 deletions
|
|
@ -11,6 +11,7 @@
|
|||
</head>
|
||||
<body>
|
||||
<div id="log"></div>
|
||||
<parser-created-element title></parser-created-element>
|
||||
<script>
|
||||
|
||||
var customElement = define_new_custom_element(['title', 'id', 'r']);
|
||||
|
|
@ -218,6 +219,36 @@ test(function () {
|
|||
assert_attribute_log_entry(calls[0], {name: 'title', oldValue: null, newValue: 'hello', namespace: null});
|
||||
}, 'attributedChangedCallback must not be enqueued when mutating inline style declaration if the style attribute is not observed');
|
||||
|
||||
test(function () {
|
||||
var calls = [];
|
||||
class CustomElement extends HTMLElement { }
|
||||
CustomElement.prototype.attributeChangedCallback = function (...args) {
|
||||
calls.push(create_attribute_changed_callback_log(this, ...args));
|
||||
}
|
||||
CustomElement.observedAttributes = ['title'];
|
||||
customElements.define('parser-created-element', CustomElement);
|
||||
assert_attribute_log_entry(calls[0], {name: 'title', oldValue: null, newValue: '', namespace: null});
|
||||
}, 'Upgrading a parser created element must enqueue and invoke attributeChangedCallback for an HTML attribute');
|
||||
|
||||
test(function () {
|
||||
var calls = [];
|
||||
class CustomElement extends HTMLElement { }
|
||||
CustomElement.prototype.attributeChangedCallback = function (...args) {
|
||||
calls.push(create_attribute_changed_callback_log(this, ...args));
|
||||
}
|
||||
CustomElement.observedAttributes = ['title'];
|
||||
customElements.define('cloned-element-with-attribute', CustomElement);
|
||||
|
||||
var instance = document.createElement('cloned-element-with-attribute');
|
||||
assert_equals(calls.length, 0);
|
||||
instance.title = '';
|
||||
assert_attribute_log_entry(calls[0], {name: 'title', oldValue: null, newValue: '', namespace: null});
|
||||
|
||||
calls = [];
|
||||
var clone = instance.cloneNode(false);
|
||||
assert_attribute_log_entry(calls[0], {name: 'title', oldValue: null, newValue: '', namespace: null});
|
||||
}, 'Upgrading a cloned element must enqueue and invoke attributeChangedCallback for an HTML attribute');
|
||||
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue