diff --git a/engine/src/flutter/lib/web_ui/analysis_options.yaml b/engine/src/flutter/lib/web_ui/analysis_options.yaml index 0938119b50..987c23cd9c 100644 --- a/engine/src/flutter/lib/web_ui/analysis_options.yaml +++ b/engine/src/flutter/lib/web_ui/analysis_options.yaml @@ -6,13 +6,17 @@ include: ../../analysis_options.yaml +analyzer: + errors: + avoid_print: ignore + avoid_setters_without_getters: ignore + library_private_types_in_public_api: ignore + no_default_cases: ignore + prefer_relative_imports: ignore + public_member_api_docs: ignore + use_setters_to_change_properties: ignore + linter: rules: - avoid_print: false - avoid_setters_without_getters: false - library_private_types_in_public_api: false - no_default_cases: false - prefer_relative_imports: false - public_member_api_docs: false - unawaited_futures: true - use_setters_to_change_properties: false + - directives_ordering + - unawaited_futures diff --git a/engine/src/flutter/lib/web_ui/lib/src/engine/canvaskit/text.dart b/engine/src/flutter/lib/web_ui/lib/src/engine/canvaskit/text.dart index 1f0d9adf0b..e8aa158d59 100644 --- a/engine/src/flutter/lib/web_ui/lib/src/engine/canvaskit/text.dart +++ b/engine/src/flutter/lib/web_ui/lib/src/engine/canvaskit/text.dart @@ -1081,7 +1081,7 @@ class CkParagraphBuilder implements ui.ParagraphBuilder { _placeholderCount++; _placeholderScales.add(scale); - final _CkParagraphPlaceholder placeholderStyle = toSkPlaceholderStyle( + final _CkParagraphPlaceholder placeholderStyle = _toSkPlaceholderStyle( width * scale, height * scale, alignment, @@ -1101,7 +1101,7 @@ class CkParagraphBuilder implements ui.ParagraphBuilder { ); } - static _CkParagraphPlaceholder toSkPlaceholderStyle( + static _CkParagraphPlaceholder _toSkPlaceholderStyle( double width, double height, ui.PlaceholderAlignment alignment, diff --git a/engine/src/flutter/lib/web_ui/lib/src/engine/dom.dart b/engine/src/flutter/lib/web_ui/lib/src/engine/dom.dart index 7ed8e21854..f9ed204f15 100644 --- a/engine/src/flutter/lib/web_ui/lib/src/engine/dom.dart +++ b/engine/src/flutter/lib/web_ui/lib/src/engine/dom.dart @@ -218,7 +218,7 @@ extension type DomDocument._(JSObject _) implements DomNode { @JS('querySelectorAll') external _DomList _querySelectorAll(String selectors); Iterable querySelectorAll(String selectors) => - createDomListWrapper(_querySelectorAll(selectors)); + _createDomListWrapper(_querySelectorAll(selectors)); @JS('createElement') external DomElement _createElement(String name, [JSAny? options]); @@ -249,7 +249,7 @@ extension type DomHTMLDocument._(JSObject _) implements DomDocument { @JS('getElementsByTagName') external _DomList _getElementsByTagName(String tag); Iterable getElementsByTagName(String tag) => - createDomListWrapper(_getElementsByTagName(tag)); + _createDomListWrapper(_getElementsByTagName(tag)); external DomElement? getElementById(String id); external String get visibilityState; @@ -366,7 +366,7 @@ extension type DomNode._(JSObject _) implements DomEventTarget { @JS('childNodes') external _DomList get _childNodes; - Iterable get childNodes => createDomListWrapper(_childNodes); + Iterable get childNodes => _createDomListWrapper(_childNodes); external DomDocument? get ownerDocument; void clearChildren() { @@ -380,7 +380,7 @@ extension type DomNode._(JSObject _) implements DomEventTarget { extension type DomElement._(JSObject _) implements DomNode { @JS('children') external _DomList get _children; - Iterable get children => createDomListWrapper(_children); + Iterable get children => _createDomListWrapper(_children); external DomElement? get firstElementChild; external DomElement? get lastElementChild; @@ -405,7 +405,7 @@ extension type DomElement._(JSObject _) implements DomNode { @JS('querySelectorAll') external _DomList _querySelectorAll(String selectors); Iterable querySelectorAll(String selectors) => - createDomListWrapper(_querySelectorAll(selectors)); + _createDomListWrapper(_querySelectorAll(selectors)); // TODO(srujzs): Adding @redeclare here is leading to some build failures. // ignore: annotate_redeclares @@ -451,12 +451,12 @@ extension type DomElement._(JSObject _) implements DomNode { @JS('getElementsByTagName') external _DomList _getElementsByTagName(String tag); Iterable getElementsByTagName(String tag) => - createDomListWrapper(_getElementsByTagName(tag)); + _createDomListWrapper(_getElementsByTagName(tag)); @JS('getElementsByClassName') external _DomList _getElementsByClassName(String className); Iterable getElementsByClassName(String className) => - createDomListWrapper(_getElementsByClassName(className)); + _createDomListWrapper(_getElementsByClassName(className)); external void click(); external bool hasAttribute(String name); @@ -1225,8 +1225,8 @@ class HttpFetchPayloadImpl implements HttpFetchPayload { @override Future read(HttpFetchReader callback) async { - final _DomReadableStream stream = _domResponse.body; - final _DomStreamReader reader = stream.getReader(); + final DomReadableStream stream = _domResponse.body; + final _DomStreamReader reader = stream._getReader(); while (true) { final _DomStreamChunk chunk = await reader.read(); @@ -1342,7 +1342,7 @@ extension type DomResponse._(JSObject _) implements JSObject { external DomHeaders get headers; - external _DomReadableStream get body; + external DomReadableStream get body; @JS('arrayBuffer') external JSPromise _arrayBuffer(); @@ -1363,8 +1363,9 @@ extension type DomHeaders._(JSObject _) implements JSObject { external String? get(String? headerName); } -extension type _DomReadableStream._(JSObject _) implements JSObject { - external _DomStreamReader getReader(); +extension type DomReadableStream._(JSObject _) implements JSObject { + @JS('getReader') + external _DomStreamReader _getReader(); } extension type _DomStreamReader._(JSObject _) implements JSObject { @@ -1654,7 +1655,7 @@ extension type DomMutationRecord._(JSObject _) implements JSObject { if (list == null) { return null; } - return createDomListWrapper(list); + return _createDomListWrapper(list); } @JS('removedNodes') @@ -1664,7 +1665,7 @@ extension type DomMutationRecord._(JSObject _) implements JSObject { if (list == null) { return null; } - return createDomListWrapper(list); + return _createDomListWrapper(list); } external String? get attributeName; @@ -1796,7 +1797,7 @@ extension type DomTouchEvent._(JSObject _) implements DomUIEvent { @JS('changedTouches') external _DomList get _changedTouches; - Iterable get changedTouches => createDomListWrapper(_changedTouches); + Iterable get changedTouches => _createDomListWrapper(_changedTouches); } @JS('Touch') @@ -1960,7 +1961,7 @@ extension type DomDocumentFragment._(JSObject _) implements DomNode { @JS('querySelectorAll') external _DomList _querySelectorAll(String selectors); Iterable querySelectorAll(String selectors) => - createDomListWrapper(_querySelectorAll(selectors)); + _createDomListWrapper(_querySelectorAll(selectors)); } @JS('ShadowRoot') @@ -1979,7 +1980,7 @@ extension type DomStyleSheet._(JSObject _) implements JSObject {} extension type DomCSSStyleSheet._(JSObject _) implements DomStyleSheet { @JS('cssRules') external _DomList get _cssRules; - Iterable get cssRules => createDomListWrapper(_cssRules); + Iterable get cssRules => _createDomListWrapper(_cssRules); @JS('insertRule') external double _insertRule(String rule, [int index]); @@ -2301,7 +2302,7 @@ class _DomListWrapper extends Iterable { /// This is a work around for a `TypeError` which can be triggered by calling /// `toList` on the `Iterable`. -Iterable createDomListWrapper(_DomList list) => _DomListWrapper._(list); +Iterable _createDomListWrapper(_DomList list) => _DomListWrapper._(list); @JS('Symbol') extension type DomSymbol._(JSObject _) implements JSObject { diff --git a/engine/src/flutter/lib/web_ui/pubspec.yaml b/engine/src/flutter/lib/web_ui/pubspec.yaml index d25e167879..38bd24d596 100644 --- a/engine/src/flutter/lib/web_ui/pubspec.yaml +++ b/engine/src/flutter/lib/web_ui/pubspec.yaml @@ -10,11 +10,12 @@ dependencies: web_locale_keymap: path: ../../third_party/web_locale_keymap + web_test_fonts: + path: ../../third_party/web_test_fonts + web_unicode: path: ../../third_party/web_unicode - web_test_fonts: - path: ../../third_party/web_test_fonts dev_dependencies: archive: 4.0.3 @@ -45,10 +46,10 @@ dev_dependencies: webdriver: 3.1.0 webkit_inspection_protocol: any yaml: 3.1.3 - web_test_utils: - path: ../../web_sdk/web_test_utils web_engine_tester: path: ../../web_sdk/web_engine_tester + web_test_utils: + path: ../../web_sdk/web_test_utils skia_gold_client: path: ../../testing/skia_gold_client diff --git a/engine/src/flutter/lib/web_ui/test/common/matchers.dart b/engine/src/flutter/lib/web_ui/test/common/matchers.dart index b04e6b87d2..f94e305311 100644 --- a/engine/src/flutter/lib/web_ui/test/common/matchers.dart +++ b/engine/src/flutter/lib/web_ui/test/common/matchers.dart @@ -10,9 +10,7 @@ import 'dart:math' as math; import 'package:html/dom.dart' as html; import 'package:html/parser.dart' as html; - import 'package:test/test.dart'; - import 'package:ui/src/engine.dart'; import 'package:ui/ui.dart'; @@ -273,7 +271,7 @@ class HtmlPatternMatcher extends Matcher { final html.Element element = html.parseFragment((object as DomElement).outerHTML).children.single; - matchElements(_Breadcrumbs.root, mismatches, element, pattern); + _matchElements(_Breadcrumbs.root, mismatches, element, pattern); return mismatches.isEmpty; } @@ -298,7 +296,7 @@ class HtmlPatternMatcher extends Matcher { return aName == bName; } - void matchElements( + void _matchElements( _Breadcrumbs parent, List mismatches, html.Element element, @@ -315,11 +313,11 @@ class HtmlPatternMatcher extends Matcher { return; } - matchAttributes(breadcrumb, mismatches, element, pattern); - matchChildren(breadcrumb, mismatches, element, pattern); + _matchAttributes(breadcrumb, mismatches, element, pattern); + _matchChildren(breadcrumb, mismatches, element, pattern); } - void matchAttributes( + void _matchAttributes( _Breadcrumbs parent, List mismatches, html.Element element, @@ -332,7 +330,7 @@ class HtmlPatternMatcher extends Matcher { if (expectedName == 'style') { // Style is a complex attribute that deserves a special comparison algorithm. - matchStyle(parent, mismatches, element, pattern); + _matchStyle(parent, mismatches, element, pattern); } else { if (!element.attributes.containsKey(expectedName)) { mismatches.add('$breadcrumb: attribute $expectedName="$expectedValue" missing.'); @@ -363,7 +361,7 @@ class HtmlPatternMatcher extends Matcher { return result; } - void matchStyle( + void _matchStyle( _Breadcrumbs parent, List mismatches, html.Element element, @@ -418,7 +416,7 @@ class HtmlPatternMatcher extends Matcher { return cleanNodes; } - void matchChildren( + void _matchChildren( _Breadcrumbs parent, List mismatches, html.Element element, @@ -439,7 +437,7 @@ class HtmlPatternMatcher extends Matcher { final html.Node actualChild = actualChildNodes[i]; if (expectedChild is html.Element && actualChild is html.Element) { - matchElements(parent, mismatches, actualChild, expectedChild); + _matchElements(parent, mismatches, actualChild, expectedChild); } else if (expectedChild is html.Text && actualChild is html.Text) { if (expectedChild.data != actualChild.data) { mismatches.add(