1464 Commits

Author SHA1 Message Date
Jonah Williams
83c9d103ed
[web] dispatch browser event on flutter/service_worker channel (#21284)
Registering the service worker immediately after the documented has loaded may cause SW initialization to compete with framework initialization. It was recommended to us that we defer the service worker setup until after the framework is done with setup, which should be sometime after the first frame.

To implement this, the binding will dispatch a platform message on startup. This can be listened for in the html document
#66066
2020-09-22 07:37:23 -07:00
Dan Field
6a6d6d7593
Implement toString for Images on web (#21304) 2020-09-21 17:22:02 -07:00
Yegor
e3444d8955
Make SkCanvas types @anonymous; reduce logging noise (#21297)
* Make SkCanvas types @anonymous; reduce logging noise

* make SkParagraphBuilderNamespace anonymous

* make SkParagraphStyle anonymous
2020-09-21 15:49:09 -07:00
LongCatIsLooong
aa96b1ab75
Implement iOS [UITextInput firstRectForRange:] with markedText (#19929) 2020-09-18 14:31:36 -07:00
Mouad Debbar
3f01328edb
[web] Remove commented import (#21247) 2020-09-17 14:01:30 -07:00
nturgut
c5588af6fa
[web] run safari desktop tests on luci (#21228)
* run safari desktop tests on luci

* fix safari issue. focus on dom element when new transform is received. add transform to test cases

* Update text_editing.dart

minor change to retrigger tests (recipe change is merged)
2020-09-17 13:00:06 -07:00
Mouad Debbar
27691a5ec1
[web] Allow updating input configuration while connection is active (#21048) 2020-09-16 08:51:34 -07:00
Thore Goebel
f84e7a0196
Fix x-axis direction in Offset.direction doc (#21208)
Specify that the positive x direction is right, as opposed to left.
2020-09-16 07:57:44 -07:00
Mouad Debbar
7bda396b0f
[web] Fix mis-aligned widget spans (#21112) 2020-09-15 12:58:07 -07:00
nturgut
1cabedf8ac
running screenshot tests on ios-safari unit tests (#20963)
* running screenshot tests on ios-safari unit tests

* fixing the golden_smoke tests. changes to the documentation

* addressing reviewer comments

* cropping footer from the simulator screenshot. addressing some reviewer comments

* use .dart_tools for recording the screenshots

* fix the usage of the method

* adding TODO's for missing documentation and not supported windows tests

* addressing comments

* changing to incremental counter for file names

* add comment to the counter

* fix anaylze issues

* using takescreenshot method from the iosSimulator.

* address reviewer comments

* fix the scaling issue. disable eronous test

* change the smoke file for top gap 282

* change the variable name for scale factor
2020-09-15 12:36:00 -07:00
Chris Bracken
2a26bfba13
Define _USE_MATH_DEFINES on Windows where needed (#21166) 2020-09-15 08:37:02 -07:00
Chris Bracken
ba972db0bb
Remove suppression of null-related warnings (#21157) 2020-09-14 13:37:01 -07:00
Pragya
455a137171
Updated ColorMatrix to ColorFilter (#19905) 2020-09-14 11:59:57 -07:00
Chris Bracken
b92f788d90
[felt] Eliminate ninja-jobs argument (#21135)
Migrate to autoninja which works out the ideal level of parallelism.
2020-09-14 11:12:16 -07:00
Chris Bracken
1fa99cd618
[felt] Use autoninja instead of hardcoding threads (#21130)
autoninja is included as part of depot_tools and automatically
determines the optimal thread count.

Also applies quoting on the affected lines.
2020-09-12 12:14:05 -07:00
Chris Bracken
08dabe9601
Clean up C++ includes (#21127)
Cleans up header order/grouping for consistency: associated header, C/C++ system/standard library headers, library headers, platform-specific #includes.

Adds <cstring> where strlen, memcpy are being used: there are a bunch of places we use them transitively.

Applies linter-required cleanups. Disables linter on one file due to included RapidJson header. See https://github.com/flutter/flutter/issues/65676

This patch does not cover flutter/shell/platform/darwin. There's a separate, slightly more intensive cleanup for those in progress.
2020-09-11 21:18:35 -07:00
Chris Bracken
16b900b63e
Prefer C++ standard headers to their C counterpart (#21091)
We currently use a mix of C standard includes (e.g. limits.h) and their
C++ variants (e.g. climits). This migrates to a consistent style for all
cases where the C++ variants are acceptable, but leaves the C
equivalents in place where they are required, such as in the embedder
API and other headers that may be used from C.
2020-09-11 17:10:00 -07:00
Sam Rawlins
cda059e55c
Fix erroneous dartdoc @tool directive. (#21109) 2020-09-11 12:00:02 -07:00
chunhtai
833c6a2e00
Implement browser history class for router widget (#20794) 2020-09-10 21:00:02 -07:00
Harry Terkelsen
80049a7b91
Remove the type parameter from SkObjectFinalizationRegistry. (#21061) 2020-09-09 17:20:02 -07:00
Chris Bracken
404e9b7505
Check for dart2js on felt startup (#21046)
This adds a check for the presence of dart2js in the engine build.

Felt relies on an engine build with `--full-dart-sdk` set. Previously,
we checked for the presence of pub, but not for the presence of
web-specific tooling such as dart2js that felt relies on. Pub is built
as part of the default Dart SDK build when `--full-dart-sdk` is not set,
so its presence is insufficient to prove that other required tooling is
present.

Without this check, we get the following error on run:

    Unhandled exception:
    ProcessException: No such file or directory
      Command: /Users/cbracken/src/flutter/engine/src/out/host_debug_unopt/dart-sdk/bin/dart2js --no-minify --disable-inlining --enable-asserts --enable-experiment=non-nullable --no-sound-null-safety -O2 -o test/paragraph_builder_test.dart.browser_test.dart.js test/paragraph_builder_test.dart
2020-09-09 14:04:52 -07:00
Chris Bracken
cf8c6b8ba1
Update web lerpDouble to match C++ behaviour (#21010)
This updates the web_ui implementation of lerpDouble to match the
behaviour of the C++ engine implementation in dart:ui.

Specifically this covers the following changes:
* #20871: stricter handling of NaN and infinity
* #20879: Improve the precision of lerpDouble

lerpDouble: stricter handling of NaN and infinity (#20871)
----------------------------------------------------------

Previously, the behaviour of lerpDouble with respect to NaN and infinity
was relatively complex and difficult to reason about. This patch
simplifies the behaviour with respect to those conditions and adds
documentation and tests.

In general, if `a == b` or both values are null, infinite, or NaN, `a`
is returned. Otherwise we require `a` and `b` and `t` to be finite or
null and the result of the linear interpolation is returned.

Improve the precision of lerpDouble (#20879)
--------------------------------------------

Reduces errors caused by the loss of floating point precision when the
two extrema of the lerp differ significantly in magnitude. Previously,
we used the calculation:

    a + (b - a) * t

When the difference in magnitude between `a` and `b` exceeds the
precision representable by double-precision floating point math, `b - a`
results in the larger-magnitude value of `a` or `b`. The error between
the value produced and the correct value is then scaled by t.

A simple example of the impact can be seen when `a` is significantly
larger in magnitude than `b`. In that case, `b - a` results in `a` and
when `t` is 1.0, the resulting value is `a - (a) * 1.0 == 0`.

The patch transforms the computation to the mathematically-equivalent
expression:

    a * (1.0 - t) + b * t

By scaling each value independently, the behaviour is more accurate.
From the point of view of performance, this adds an extra
multiplication, but multiplication is relatively cheap and the behaviour
is significantly better.

This patch also adds a `precisionErrorTolerance` constant to
test_utils.dart and migrates existing tests to use `closeTo()` for
testing.

The tests themselves *do* currently use values that have an exact
floating-point representation, but we should allow for flexibility in
future implementation changes.
2020-09-08 16:04:11 -07:00
Chinmay Garde
f0fb74b8fb
Avoid crashing and display error if the process cannot be prepared for JIT mode Dart VM. (#20980) 2020-09-08 13:41:31 -07:00
Jim Graham
d77c4e540e
adjust blur radius for HTML to match CanvasKit (#20840)
* adjust blur radius for HTML to match CanvasKit

* switch to new goldens for new blur radius logic
2020-09-04 12:10:48 -07:00
Jim Graham
6a6986da47
improve sensitivity of BackdropFilter web tests (#20915) 2020-09-03 21:47:41 -07:00
Siva
d77dd31013
Manual roll of Dart b29f228f62...016e8880f0 (#20967)
dart-lang/sdk@016e8880f0 Version 2.10.0-90.0.dev
dart-lang/sdk@34f636ce1d Revert "[vm/io] Fix FileSystemWatcher enum name typo."
dart-lang/sdk@7a02118a41 [vm/fuchsia]: Safely shutdown the async message loop.
dart-lang/sdk@334d368146 [analyzer_plugin] Remove unused dart:async imports
dart-lang/sdk@047c0f860a [Analyzer] Support analyzing open files without open workspaces
dart-lang/sdk@f846d0e7ea [analyzer_cli] Remove unused dart:async imports
dart-lang/sdk@ba372d6e8a [dartdev] Remove unused dart:async import
dart-lang/sdk@30cfb228c0 [nnbd_migration] Remove unused dart:async imports
dart-lang/sdk@1134a0f17c [analysis_server] Remove unused dart:async imports
dart-lang/sdk@3317d47c7d [_fe_analyzer_shared] Remove unused dart:async import
dart-lang/sdk@0a036db596 [vm/io] Fix FileSystemWatcher enum name typo.
dart-lang/sdk@000f3135a5 [analyzer] Remove unused dart:async imports
dart-lang/sdk@7817aa1796 [dartfix] Remove unused dart:async imports
dart-lang/sdk@0144087619 Version 2.10.0-89.0.dev
dart-lang/sdk@42dfb9d304 Add `generateCallGraphWithDominators` method to generate a `CallGraph` from a precompiler trace.
dart-lang/sdk@01024dfa5a Issue 43200. Report ASSIGNMENT_TO_FINAL when 'final late' has an initializer.
dart-lang/sdk@ab16d79af9 Revert "Flow analysis changes to fix mixed-mode unsoundness loophole."
dart-lang/sdk@7363adca67 [infra] Update checked-in SDKs to 2.10.0-79.0.dev
dart-lang/sdk@d833f2f65c Flow analysis changes to fix mixed-mode unsoundness loophole.
dart-lang/sdk@33e4a6bc2a Revert "[vm] Have Read/WriteStream use (S)LEB128 for variable-length encoding."
dart-lang/sdk@d9dc24b53e Version 2.10.0-88.0.dev
dart-lang/sdk@7130dd4d3d [cfe] Report error on non-void setter return type
dart-lang/sdk@a7cb764aa4 [tests/ffi] Reinstate deleted test
dart-lang/sdk@39689eb07c [co19] Roll co19 to 9c07e26d67665de7972ba6f7e87369933a978545
dart-lang/sdk@1f92293fd5 Revert "[dart:html] Add 'creates' type description to JS calls"
dart-lang/sdk@e44cf969c6 Fix creates value for getStats
dart-lang/sdk@15201ebe5f Version 2.10.0-87.0.dev
dart-lang/sdk@eb8dfee107 [CFE] Clean up duplicate entries in spell checker lists
2020-09-03 20:50:59 -07:00
0xZero
ac8b9c4c52
Member variables should appear before the |WeakPtrFactory|. (#20899) 2020-09-03 14:34:01 -07:00
nturgut
80f4481d23
renaming e2e tests to integration (#20954)
* renaming e2e tests to integration

* change the name of the files in the blocked list
2020-09-02 14:52:09 -07:00
Dan Field
c700479db5
Revert external size changes to Picture (#20950) 2020-09-02 13:42:25 -07:00
Dan Field
634e499bcc
Use hint freed specifically for image disposal (#20754)
* Use hint freed specifically for image disposal
2020-09-02 13:41:58 -07:00
Jim Graham
96efe39272
Revert "Adds fuchsia node roles to accessibility bridge updates. (#20385)" (#20936)
This reverts commit 58a62076559585b167c89531dfb81092d744a552.
2020-09-01 21:21:07 -07:00
Gábor
d67bda725a
Image.toByteData and Picture.toImage implementations (#3) (#20750)
* `Image.toByteData()` was not implemented in either DomCanvas or CanvasKit. This PR covers **both.**
* `Picture.toImage()` was not implemented in either DomCanvas or CanvasKit. This PR covers **CanvasKit**
2020-09-01 17:01:18 -07:00
Alexander Brusher
58a6207655
Adds fuchsia node roles to accessibility bridge updates. (#20385) 2020-09-01 13:33:02 -07:00
Chris Bracken
784e6d746e
Improve the precision of lerpDouble (#20879)
Reduces errors caused by the loss of floating point precision when the
two extrema of the lerp differ significantly in magnitude. Previously,
we used the calculation:

    a + (b - a) * t

When the difference in magnitude between `a` and `b` exceeds the
precision representable by double-precision floating point math, `b - a`
results in the larger-magnitude value of `a` or `b`. The error between
the value produced and the correct value is then scaled by t.

A simple example of the impact can be seen when `a` is significantly
larger in magnitude than `b`. In that case, `b - a` results in `a` and
when `t` is 1.0, the resulting value is `a - (a) * 1.0 == 0`.

The patch transforms the computation to the mathematically-equivalent
expression:

    a * (1.0 - t) + b * t

By scaling each value independently, the behaviour is more accurate.
From the point of view of performance, this adds an extra
multiplication, but multiplication is relatively cheap and the behaviour
is significantly better.

This patch also adds a `precisionErrorTolerance` constant to
test_utils.dart and migrates existing tests to use `closeTo()` for
testing.

The tests themselves *do* currently use values that have an exact
floating-point representation, but we should allow for flexibility in
future implementation changes.
2020-08-30 22:26:10 -07:00
Ferhat
bada9fc5f3
[web] Fix path clip crash when reused (#20846) 2020-08-30 19:35:39 -07:00
Chris Bracken
dbc9b1a856
lerpDouble: stricter handling of NaN and infinity (#20871)
Previously, the behaviour of lerpDouble with respect to NaN and infinity
was relatively complex and difficult to reason about. This patch
simplifies the behaviour with respect to those conditions and adds
documentation and tests.

In general, if `a == b` or both values are null, infinite, or NaN, `a`
is returned. Otherwise we require `a` and `b` and `t` to be finite or
null and the result of the linear interpolation is returned.
2020-08-30 11:08:59 -07:00
Mouad Debbar
7a890f27ca
[web] Better format for line break tests (#20767) 2020-08-28 14:43:01 -07:00
nturgut
80a1cac4fc
Fix debugging issue (#20841) 2020-08-28 10:03:55 -07:00
Ferhat
3ccf1ed2ec
Cliprect op (#20837)
* Switched PathCommand apply parameter to non-nullable. Add clip op parameter to ClipCommand.
2020-08-27 22:38:03 -07:00
Ferhat
e67ae1e307
[web] Fix path rendering when addPolygon is chained with other verbs. (#20803) 2020-08-27 20:25:38 -07:00
Ferhat
97f9f712b0
[web] Fix analyzer warnings in web engine. (#20825) 2020-08-27 14:55:43 -07:00
Ferhat
f0a8230fca
[web] Implement SceneBuilder.pushColorFilter for html (#20821)
* Implement Color filter layer
* Add test with BlendMode color
* update licenses file
* Move blend functions into color_filter.dart
* dartfmt
* Add missing default clause
* Remove switch default
2020-08-27 12:06:22 -07:00
Zachary Anderson
fe0a995fdf
Revert "[web] Implement SceneBuilder.pushColorFilter for html (#20802)" (#20820)
This reverts commit 2decf195d2def7aa82b2d6e4c29ce932a78c73f2.
2020-08-27 10:12:55 -07:00
Ferhat
2decf195d2
[web] Implement SceneBuilder.pushColorFilter for html (#20802)
* Implement Color filter layer
* Add test with BlendMode color
* update licenses file
* Move blend functions into color_filter.dart
* dartfmt
2020-08-27 08:49:12 -07:00
Chris Bracken
388193a67b
Add tests for lerpDouble (#20778)
The behaviour of lerpDouble with respect to null inputs isn't entirely
obvious. In the case where both inputs are null, it returns null.
Otherwise, it defaults the null parameter to 0.0 and carries on.

Post non-null by default, it might be nice to strengthen the parameter
contract to require them to be non-null. While this would be a breaking
change, it seems likely that the framework either meets this guarantee
or can provide it without a framework breaking change.

https://github.com/flutter/flutter/issues/64617 tracks the above.

In the meantime, adding a test to lock in the current behaviour.
2020-08-26 11:32:15 -07:00
Ferhat
87fd0e497c
Guard recording_canvas against restore calls without ending recording (#20786) 2020-08-26 11:19:07 -07:00
Erick
b08c6b95e2
Fixing synthesizing keys for multiple keys pressed down on flutter web (#19632) 2020-08-26 10:33:03 -07:00
Mouad Debbar
282792ad38
[web] Make word boundary consistent with native flutter (#20747) 2020-08-25 17:05:18 -07:00
Siva
04b0422e69
Manual roll of Dart from 5ca1f32905 to 551e405d0b (#20758)
dart-lang/sdk@551e405d0b Version 2.10.0-57.0.dev
 dart-lang/sdk@ce494e7910 Add test for inference solving T? = dynamic.
 dart-lang/sdk@0e1d32f10c [fuchsia][time] Use C11 timespec APIs for UTC time
 dart-lang/sdk@08dd4b1faa Null-safe numbers: implement static typing rules, hook up for binary operators.
 dart-lang/sdk@9be24ce946 [benchmark] Import MD5/SHA1/SHA256/SkeletalAnimation/SkeletalAnimationSIMD benchmarks from benchmarks-internal
 dart-lang/sdk@675891ae0c Issue 43152. Use existing LineInfo in newDiagnosticMessage().
 dart-lang/sdk@e868d3076c Issue 43151. Fix crash when a field shadows a super-interface method.
2020-08-25 16:56:14 -07:00
Dan Field
4a88d5e109
Revert hint_freed (#20746)
This caused over-aggressive GCs, which vastly increased CPU usage benchmarks.

* Revert "fix build (#20644)"

This reverts commit b59793ee20be29463fac7a79635bf20253f04107.

* Revert "Hint freed (#19842)"

This reverts commit 3930ac1b25820baee3c67d921a0b009606cb3dae.
2020-08-25 11:55:40 -07:00