Comprensione del nuovo sanitizzante appendHTML di Dart 1.11

Ho appena aggiornato a Dart 1.11 e non riesco a capire cosa sta succedendo con .appendHTML() . Ho un progetto molto grande che usa dart e .appendHTML() è usato abbastanza spesso. Ho lavorato su questa app per oltre un anno e ora non funziona più. : /

La mia console sembra proprio questa:

 Removing disallowed attribute 
Removing disallowed attribute
Removing disallowed attribute
Removing disallowed attribute
Removing disallowed attribute
Removing disallowed attribute
Removing disallowed attribute
Removing disallowed attribute
Removing disallowed attribute

Il più delle volte creo elementi usando new Element() e impostazioni usando .style. … Ma a volte non è necessario e l’aggiunta di HTML come stringa è più veloce e più facile da leggere.

Qual è la ragione, che gli stili in linea vengono rimossi mentre vengono disinfettati? Potrei creare il mio NodeTreeSanitizer come menzionato qui: appendHtml () non aggiunge l’intero HTML – Dart

Ma non mi sembra un’ottima soluzione perché suppongo ci sia una ragione per cui ciò accada.

Ho usato il modello Über Simple Webapp e ho appena aggiunto questa riga di codice:

 querySelector('#output').appendHtml('
Test
');

E lo stile viene semplicemente rimosso:

 Removing disallowed attribute 

Ma mi sembra HTML valido. : /

Qualcuno può spiegarmi cosa succede qui e perché e come posso far ripartire il mio progetto.

Molte grazie!

MODIFICARE:

Anche gli elementi svg vengono rimossi:

 Removing disallowed element  Removing disallowed element  Removing disallowed element  Removing disallowed element  

La creazione del tuo NodeTreeSanitizer personalizzato è la strada da percorrere. Ovunque dove il testo può essere aggiunto al DOM come viene applicato il risanamento HTML. Era solo una svista che non era stato effettuato il .appenedHTML() in .appenedHTML() . Il punto è che dichiari esplicitamente quali elementi possono essere aggiunti al DOM e quali attributi possono essere aggiunti a questi elementi. Questo è fatto per garantire che nessun HTML o JS dannoso possa essere aggiunto alla pagina per errore.