Skip to content

Commit fe3f0e2

Browse files
committed
Merge branch 't/11780' into major
2 parents be3dc45 + 4d9d92f commit fe3f0e2

File tree

1 file changed

+12
-6
lines changed

1 file changed

+12
-6
lines changed

core/filter.js

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1570,9 +1570,10 @@
15701570
validClasses = status.validClasses,
15711571
attrs = element.attributes,
15721572
styles = element.styles,
1573+
classes = element.classes,
15731574
origClasses = element.classBackup,
15741575
origStyles = element.styleBackup,
1575-
name, origName,
1576+
name, origName, i,
15761577
stylesArr = [],
15771578
classesArr = [],
15781579
internalAttr = /^data-cke-/,
@@ -1585,7 +1586,7 @@
15851586
delete element.classBackup;
15861587
delete element.styleBackup;
15871588

1588-
if ( !status.allAttributes || status.hadInvalidAttribute ) {
1589+
if ( !status.allAttributes ) {
15891590
for ( name in attrs ) {
15901591
// If not valid and not internal attribute delete it.
15911592
if ( !validAttrs[ name ] ) {
@@ -1609,7 +1610,11 @@
16091610

16101611
if ( !status.allStyles || status.hadInvalidStyle ) {
16111612
for ( name in styles ) {
1612-
if ( validStyles[ name ] )
1613+
// We check status.allStyles because when there was a '*' ACR and some
1614+
// DACR we have now both properties true - status.allStyles and status.hadInvalidStyle.
1615+
// However unlike in the case when we only have '*' ACR, in which we can just copy original
1616+
// styles, in this case we must copy only those styles which were not removed by DACRs.
1617+
if ( status.allStyles || validStyles[ name ] )
16131618
stylesArr.push( name + ':' + styles[ name ] );
16141619
else
16151620
isModified = true;
@@ -1621,9 +1626,10 @@
16211626
attrs.style = origStyles;
16221627

16231628
if ( !status.allClasses || status.hadInvalidClass ) {
1624-
for ( name in validClasses ) {
1625-
if ( validClasses[ name ] )
1626-
classesArr.push( name );
1629+
for ( i = 0; i < classes.length; ++i ) {
1630+
// See comment for styles.
1631+
if ( status.allClasses || validClasses[ classes[ i ] ] )
1632+
classesArr.push( classes[ i ] );
16271633
}
16281634
if ( classesArr.length )
16291635
attrs[ 'class' ] = classesArr.sort().join( ' ' );

0 commit comments

Comments
 (0)