Skip to content
This repository was archived by the owner on Feb 25, 2025. It is now read-only.
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 0 additions & 10 deletions .cirrus.yml
Original file line number Diff line number Diff line change
Expand Up @@ -126,16 +126,6 @@ task:
- name: web_tests-7_last-linux # last Web shard must end with _last
<< : *WEB_SHARD_TEMPLATE

- name: web_engine_analysis
compile_host_script: |
cd $ENGINE_PATH/src
./flutter/tools/gn --unoptimized --full-dart-sdk
ninja -C out/host_debug_unopt
script:
- cd $ENGINE_PATH/src/flutter/lib/web_ui
- $ENGINE_PATH/src/out/host_debug_unopt/dart-sdk/bin/pub get
- $ENGINE_PATH/src/out/host_debug_unopt/dart-sdk/bin/dartanalyzer --fatal-warnings --fatal-hints dev/ lib/ test/ tool/

- name: web_engine_integration_test_linux
compile_host_script: |
cd $ENGINE_PATH/src
Expand Down
88 changes: 1 addition & 87 deletions lib/web_ui/analysis_options.yaml
Original file line number Diff line number Diff line change
@@ -1,87 +1 @@
# This is copy of the root analysis_options.yaml. As we clean up the Web code,
# we'll be uncommenting rules and gradually fix the code. When all rules are
# uncommented, we'll delete this file and simply inherit the root options.

analyzer:
# TODO(uncomment) strong-mode:
# TODO(uncomment) implicit-casts: false
# TODO(uncomment) implicit-dynamic: false
errors:
missing_required_param: warning
missing_return: warning
native_function_body_in_non_sdk_code: ignore
todo: ignore

linter:
rules:
- always_declare_return_types
# TODO(uncomment) - always_put_control_body_on_new_line
# TODO(uncomment) - always_specify_types
# TODO(uncomment) - annotate_overrides
# TODO(uncomment) - avoid_classes_with_only_static_members
# TODO(uncomment) - avoid_empty_else
# TODO(uncomment) - avoid_function_literals_in_foreach_calls
# TODO(uncomment) - avoid_init_to_null
# TODO(uncomment) - avoid_null_checks_in_equality_operators
# TODO(uncomment) - avoid_relative_lib_imports
# TODO(uncomment) - avoid_renaming_method_parameters
# TODO(uncomment) - avoid_return_types_on_setters
# TODO(uncomment) - avoid_slow_async_io
# TODO(uncomment) - await_only_futures
# TODO(uncomment) - camel_case_types
# TODO(uncomment) - cancel_subscriptions
# TODO(uncomment) - control_flow_in_finally
# TODO(uncomment) - directives_ordering
# TODO(uncomment) - empty_catches
# TODO(uncomment) - empty_constructor_bodies
# TODO(uncomment) - empty_statements
# TODO(uncomment) - hash_and_equals
# TODO(uncomment) - implementation_imports
# TODO(uncomment) - iterable_contains_unrelated_type
# TODO(uncomment) - library_names
# TODO(uncomment) - library_prefixes
# TODO(uncomment) - list_remove_unrelated_type
# TODO(uncomment) - no_adjacent_strings_in_list
# TODO(uncomment) - no_duplicate_case_values
# TODO(uncomment) - non_constant_identifier_names
# TODO(uncomment) - overridden_fields
# TODO(uncomment) - package_api_docs
# TODO(uncomment) - package_names
# TODO(uncomment) - package_prefixed_library_names
# TODO(uncomment) - prefer_adjacent_string_concatenation
# TODO(uncomment) - prefer_asserts_in_initializer_lists
# TODO(uncomment) - prefer_collection_literals
# TODO(uncomment) - prefer_conditional_assignment
# TODO(uncomment) - prefer_const_constructors
# TODO(uncomment) - prefer_const_constructors_in_immutables
# TODO(uncomment) - prefer_const_declarations
# TODO(uncomment) - prefer_const_literals_to_create_immutables
# TODO(uncomment) - prefer_contains
# TODO(uncomment) - prefer_equal_for_default_values
# TODO(uncomment) - prefer_final_locals
# TODO(uncomment) - prefer_foreach
# TODO(uncomment) - prefer_generic_function_type_aliases
# TODO(uncomment) - prefer_initializing_formals
# TODO(uncomment) - prefer_is_empty
# TODO(uncomment) - prefer_is_not_empty
# TODO(uncomment) - prefer_single_quotes
# TODO(uncomment) - prefer_typing_uninitialized_variables
# TODO(uncomment) - public_member_api_docs
# TODO(uncomment) - recursive_getters
# TODO(uncomment) - slash_for_doc_comments
# TODO(uncomment) - sort_unnamed_constructors_first
# TODO(uncomment) - test_types_in_equals
# TODO(uncomment) - throw_in_finally
# TODO(uncomment) - type_init_formals
# TODO(uncomment) - unnecessary_brace_in_string_interps
# TODO(uncomment) - unnecessary_const
# TODO(uncomment) - unnecessary_getters_setters
# TODO(uncomment) - unnecessary_new
# TODO(uncomment) - unnecessary_null_aware_assignments
# TODO(uncomment) - unnecessary_null_in_if_null_operators
# TODO(uncomment) - unnecessary_overrides
# TODO(uncomment) - unnecessary_parenthesis
# TODO(uncomment) - unnecessary_this
# TODO(uncomment) - unrelated_type_equality_checks
# TODO(uncomment) - use_rethrow_when_possible
# TODO(uncomment) - valid_regexps
# Intentionally kept empty.
2 changes: 1 addition & 1 deletion lib/web_ui/dev/browser.dart
Original file line number Diff line number Diff line change
Expand Up @@ -72,7 +72,7 @@ abstract class Browser {
_processCompleter.complete(process);

var output = Uint8Buffer();
void drainOutput(Stream<List<int>> stream) {
drainOutput(Stream<List<int>> stream) {
try {
_ioSubscriptions
.add(stream.listen(output.addAll, cancelOnError: true));
Expand Down
2 changes: 1 addition & 1 deletion lib/web_ui/dev/firefox_installer_test.dart
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,9 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

// @dart = 2.6
@TestOn('vm && linux')

// @dart = 2.6
import 'dart:io' as io;

import 'package:path/path.dart' as path;
Expand Down
2 changes: 1 addition & 1 deletion lib/web_ui/dev/test_platform.dart
Original file line number Diff line number Diff line change
Expand Up @@ -744,7 +744,7 @@ class BrowserManager {

var suiteID = _suiteID++;
RunnerSuiteController controller;
void closeIframe() {
closeIframe() {
if (_closed) return;
_controllers.remove(controller);
_channel.sink.add({'command': 'closeSuite', 'id': suiteID});
Expand Down
2 changes: 1 addition & 1 deletion lib/web_ui/lib/src/engine/compositor/vertices.dart
Original file line number Diff line number Diff line change
Expand Up @@ -116,7 +116,7 @@ class SkVertices implements ui.Vertices {
}
}

static js.JsArray<js.JsArray<double>> _encodePoints(List<double> points) {
static _encodePoints(List<double> points) {
if (points == null) return null;

js.JsArray<js.JsArray<double>> encodedPoints =
Expand Down
1 change: 1 addition & 0 deletions lib/web_ui/lib/src/engine/surface/path_metrics.dart
Original file line number Diff line number Diff line change
Expand Up @@ -616,6 +616,7 @@ class SurfacePathMetricIterator implements Iterator<ui.PathMetric> {

SurfacePathMetric _pathMetric;
_SurfacePathMeasure _pathMeasure;
bool _firstTime = true;

@override
SurfacePathMetric get current => _pathMetric;
Expand Down
2 changes: 2 additions & 0 deletions lib/web_ui/lib/src/engine/window.dart
Original file line number Diff line number Diff line change
Expand Up @@ -555,7 +555,9 @@ class EngineWindow extends ui.Window {

bool _handleWebTestEnd2EndMessage(MethodCodec codec, ByteData data) {
final MethodCall decoded = codec.decodeMethodCall(data);
final Map<String, dynamic> message = decoded.arguments;
double ratio = double.parse(decoded.arguments);
bool result = false;
switch(decoded.method) {
case 'setDevicePixelRatio':
window.debugOverrideDevicePixelRatio(ratio);
Expand Down
2 changes: 2 additions & 0 deletions lib/web_ui/lib/src/ui/painting.dart
Original file line number Diff line number Diff line change
Expand Up @@ -1069,6 +1069,8 @@ abstract class Shader {
/// There are several types of gradients, represented by the various
/// constructors on this class.
abstract class Gradient extends Shader {
Gradient._() : super._();

/// Creates a linear gradient from `from` to `to`.
///
/// If `colorStops` is provided, `colorStops[i]` is a number from 0.0 to 1.0
Expand Down
8 changes: 8 additions & 0 deletions lib/web_ui/lib/src/ui/text.dart
Original file line number Diff line number Diff line change
Expand Up @@ -866,6 +866,14 @@ class TextBox {
this.direction,
);

TextBox._(
this.left,
this.top,
this.right,
this.bottom,
int directionIndex,
) : direction = TextDirection.values[directionIndex];

/// The left edge of the text box, irrespective of direction.
///
/// To get the leading edge (which may depend on the [direction]), consider [start].
Expand Down
2 changes: 1 addition & 1 deletion lib/web_ui/test/engine/image/html_image_codec_test.dart
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ Future<void> main() async {
chunkCallback: (int loaded, int total) {
buffer.write('$loaded/$total,');
});
await codec.getNextFrame();
final ui.FrameInfo frameInfo = await codec.getNextFrame();
expect(buffer.toString(), '0/100,100/100,');
});
});
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@

// @dart = 2.6
import 'dart:html' as html;
import 'dart:js_util' as js_util;

import 'package:ui/ui.dart' hide TextStyle;
import 'package:ui/src/engine.dart' as engine;
Expand Down
11 changes: 11 additions & 0 deletions lib/web_ui/test/golden_tests/engine/path_metrics_test.dart
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@

// @dart = 2.6
import 'dart:html' as html;
import 'dart:typed_data';

import 'package:ui/ui.dart' hide TextStyle;
import 'package:ui/src/engine.dart';
Expand Down Expand Up @@ -62,6 +63,8 @@ void main() async {

test('Should calculate tangent on cubic curve', () async {
final Path path = Path();
double p0x = 150;
double p0y = 20;
double p1x = 240;
double p1y = 120;
double p2x = 320;
Expand Down Expand Up @@ -109,6 +112,8 @@ void main() async {
final Path path = Path();
path.moveTo(50, 130);
path.lineTo(150, 20);
double p0x = 150;
double p0y = 20;
double p1x = 240;
double p1y = 120;
double p2x = 320;
Expand All @@ -117,6 +122,8 @@ void main() async {

rc.drawPath(path, paint);

final Float32List buffer = Float32List(6);
List<double> points = [p0x, p0y, p1x, p1y, p2x, p2y];
double t0 = 0.2;
double t1 = 0.7;

Expand Down Expand Up @@ -161,6 +168,8 @@ void main() async {
final Path path = Path();
path.moveTo(50, 130);
path.lineTo(150, 20);
double p0x = 150;
double p0y = 20;
double p1x = 40;
double p1y = 120;
double p2x = 300;
Expand All @@ -171,6 +180,8 @@ void main() async {

rc.drawPath(path, paint);

final Float32List buffer = Float32List(6);
List<double> points = [p0x, p0y, p1x, p1y, p2x, p2y, p3x, p3y];
double t0 = 0.2;
double t1 = 0.7;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
// found in the LICENSE file.

// @dart = 2.6
import 'package:test/test.dart';
import 'package:ui/ui.dart';
import 'package:ui/src/engine.dart';

Expand Down
1 change: 0 additions & 1 deletion lib/web_ui/test/text/measurement_test.dart
Original file line number Diff line number Diff line change
Expand Up @@ -1154,6 +1154,5 @@ EngineLineMetrics line(
width: width,
lineNumber: lineNumber,
left: left,
endIndexWithoutNewlines: -1,
);
}