Sub6Resources / flutter_html

A Flutter widget for rendering static html as Flutter widgets (Will render over 80 different html tags!)
https://pub.dev/packages/flutter_html
MIT License
1.79k stars 860 forks source link

[BUG] LateError (LateInitializationError: Field '_currentProperty@340066930' has not been initialized. #1232

Closed FabienZE closed 1 year ago

FabienZE commented 1 year ago

Describe the bug: When loading HTML data with @media queries css parser failed with a lateinitialization error

HTML to reproduce the issue: The css that fails is :

@media all and (max-width: 480px){*[class].ib_t{min-width:100% !important}*[class].ib_row{display:block !important}*[class].ib_ext{display:block !important;padding:10px 0 5px 0;vertical-align:top !important;width:100% !important}*[class].ib_img,*[class].ib_mid{vertical-align:top !important}*[class].mb_blk{display:block !important;padding-bottom:10px;width:100% !important}*[class].mb_hide{display:none !important}*[class].mb_inl{display:inline !important}*[class].d_mb_flex{display:block !important}}.d_mb_show{display:none}.d_mb_flex{display:flex}@media only screen and (max-device-width: 480px){.d_mb_hide{display:none !important}.d_mb_show{display:block !important}.d_mb_flex{display:block !important}}.mb_text h1,.mb_text h2,.mb_text h3,.mb_text h4,.mb_text h5,.mb_text h6{line-height:normal}.mb_work_text h1{font-size:18px;line-height:normal;margin-top:4px}.mb_work_text h2,.mb_work_text h3{font-size:16px;line-height:normal;margin-top:4px}.mb_work_text h4,.mb_work_text h5,.mb_work_text h6{font-size:14px;line-height:normal}.mb_work_text a{color:#1270e9}.mb_work_text p{margin-top:4px}@media all{*{-webkit-font-smoothing:antialiased}p a[href],li a[href],li strong a[href]{color:#3578e5;text-decoration:none}span.im{color:#4e5665}}

The container html is :

<html><head><meta charset="utf-8"><title>Facebook</title><style nonce="owl9ZwfM">@media all and (max-width: 480px){*[class].ib_t{min-width:100% !important}*[class].ib_row{display:block !important}*[class].ib_ext{display:block !important;padding:10px 0 5px 0;vertical-align:top !important;width:100% !important}*[class].ib_img,*[class].ib_mid{vertical-align:top !important}*[class].mb_blk{display:block !important;padding-bottom:10px;width:100% !important}*[class].mb_hide{display:none !important}*[class].mb_inl{display:inline !important}*[class].d_mb_flex{display:block !important}}.d_mb_show{display:none}.d_mb_flex{display:flex}@media only screen and (max-device-width: 480px){.d_mb_hide{display:none !important}.d_mb_show{display:block !important}.d_mb_flex{display:block !important}}.mb_text h1,.mb_text h2,.mb_text h3,.mb_text h4,.mb_text h5,.mb_text h6{line-height:normal}.mb_work_text h1{font-size:18px;line-height:normal;margin-top:4px}.mb_work_text h2,.mb_work_text h3{font-size:16px;line-height:normal;margin-top:4px}.mb_work_text h4,.mb_work_text h5,.mb_work_text h6{font-size:14px;line-height:normal}.mb_work_text a{color:#1270e9}.mb_work_text p{margin-top:4px}@media all{*{-webkit-font-smoothing:antialiased}p a[href],li a[href],li strong a[href]{color:#3578e5;text-decoration:none}span.im{color:#4e5665}}</style></head><body style="max-width:700px;margin:0 auto;" dir="ltr" bgcolor="#ffffff"></body></html>

Stacktrace/Logcat DeclarationVisitor._currentProperty (hosted\pub.dev\flutter_html-3.0.0-alpha.6\lib\src\css_parser.dart:0) DeclarationVisitor.visitExpressions (\hosted\pub.dev\flutter_html-3.0.0-alpha.6\lib\src\css_parser.dart:620) Visitor.visitMediaExpression (\hosted\pub.dev\csslib-0.17.2\lib\visitor.dart:160) Visitor.visitMediaQuery (\hosted\pub.dev\csslib-0.17.2\lib\visitor.dart:166) MediaQuery.visit (\hosted\pub.dev\csslib-0.17.2\lib\src\tree.dart:737) Visitor._visitNodeList (\hosted\pub.dev\csslib-0.17.2\lib\visitor.dart:126) Visitor.visitMediaDirective (\hosted\pub.dev\csslib-0.17.2\lib\visitor.dart:209) MediaDirective.visit (\hosted\pub.dev\csslib-0.17.2\lib\src\tree.dart:760) DeclarationVisitor.getDeclarations (\hosted\pub.dev\flutter_html-3.0.0-alpha.6\lib\src\css_parser.dart:591) ....

Sub6Resources commented 1 year ago

Duplicate of #1060