66 Commits

Author SHA1 Message Date
Ferhat
6988f01779
Add Path iterator tests, sync verbs with skia enums, fix PathIterator.peek. (#20381)
* Sync verb enum to skia. Fix PathIterator.peek, add tests
* Add constant for iterator buffer size
2020-08-10 17:24:28 -07:00
MichealReed
06c89cd1c8
Implemented web image codec instantiation for CanvasKit. (#20194) 2020-08-04 15:01:02 -07:00
Mouad Debbar
f288fe563d
[web] Enable canvas measurement by default (#19924) 2020-07-29 16:18:07 -07:00
nturgut
d2d02917d9
[a11y-web] Semantics fix (#19898)
* fixinf enable semantics

* fix unit tests

* fix indentation

* addressing reviewer comments

* fix comment

* make commnt starts upper case

* fix grammar in comment

* Add one more comment
2020-07-28 10:29:02 -07:00
Ferhat
37fa2850d1
[web] Prevent crash when restore is called incorrectly after recording ends. (#19948)
* Prevent crash when restore is called after picture recording ends
* Addressed reviewer comments
2020-07-22 12:55:22 -07:00
Ferhat
df23044897
[web] Implement ulps for path ops (#19711)
* Implement ulps for path ops
* Address review comments
* cache abs()
* dartfmt and update licenses
2020-07-13 13:43:11 -07:00
Ferhat
f10f172573
[web] Update SurfacePath to use PathRef (#19557)
* Update SurfacePath to use PathRef
* Fix test analysis errors
* Switch DDRect to use path to reduce paint time processing
* Implement toString() for debug mode
* Fix contains (bounds inclusive) edge case, add test
* Update recording canvas test for drawDRRect change
* Update diffrate for arc/conic render change
* Add test for winding for beveled border. Fix checkOnCurve
* Fix mono quad winding on curve check
* fix _chopCubicAtYExtrema and add test case
* Address reviewer comments / setAll API usage
2020-07-09 13:55:39 -07:00
Alexandre Ardhuin
218d98f4d8
Operator equals (#19303)
* use Object for operator==

* apply style guide for operator==
2020-06-30 23:16:31 +02:00
nturgut
3fcf5463b9
Run IOS unit tests on LUCI (#19141)
* change the version of simulator. luci bots only has 13.0

* skip failing pointer binding tests

* skip path_metrics (canvaskit) and a method from surface_test

* fix analyzer errors

* remove extra added touch event context test

* removing left overs for screenshot debugging

* apply reviewers suggestion for skipping tests
2020-06-23 15:22:01 -07:00
Yegor
00aa0bc071
take web_ui to null safety (#19027)
move web_ui to NNBD syntax
2020-06-16 15:28:06 -07:00
nturgut
03b7bad6d1
remove failing tests on safari (#18944) 2020-06-09 17:19:47 -07:00
Yegor
d30024829e
Minimize child DOM node moves in many-to-many update (#18648)
* minimize child DOM node moves in many-to-many update
2020-06-04 10:53:38 -07:00
Yegor
f49bd05014
implement SkPath.computeMetrics (#18667)
* implement SkPath.computeMetrics
2020-06-01 09:43:15 -07:00
Ferhat
4be3a031b6
[web] Reuse ImageElement(s) across frames (#18437)
* reuse images across frames
* Change implementation to CrossFrameCache at picture level
* Update licenses_flutter
2020-05-20 14:46:41 -07:00
Yegor
cd4b83d3db
auto-pop pushed layers (#18451) 2020-05-18 10:01:37 -07:00
Yegor
570b474728
Implement local, locales, and onLocaleChanged for the web (#18137)
* implement `locale`, `locales`, and `onLocaleChanged` in the web version of `Window.

Co-authored-by: Simon Lightfoot <simon@devangels.london>
2020-05-16 10:10:32 -07:00
Yegor
609519ec14
release previous canvas when picture is not painted (#18404) 2020-05-14 18:25:13 -07:00
Yegor
68bf137634
skip painting clipped out pictures (#18204) 2020-05-08 11:14:30 -07:00
Mouad Debbar
aa00d50396
[web] Don't allow empty initial route (#17936) 2020-04-27 13:54:07 -07:00
Yegor
deaf14ec7d
Use Float32List as Matrix storage inside the Web engine (#17856)
This change converts all Float64List matrices to Float32List at the dart:ui interface boundary. Internally, it only uses Float32List. Float32List requires less memory and is orders of magnitude faster to allocate, and it has sufficient precision as Flutter mobile engine and Skia use 32-bit floats anyway.

This change speeds up frame preroll by 50% on the bench_card_infinite_scroll benchmark.

For more details on Float64Array allocation in JS (which backs Float64List in Dart) see the following:

https://bugs.chromium.org/p/v8/issues/detail?id=9199
https://bugs.chromium.org/p/v8/issues/detail?id=2022
2020-04-22 11:08:23 -07:00
Yegor
dd87e3f944
Optimize static content scrolling (#17621)
* store paint command bounds
* do not apply commands outside the clip region
* better cull rect prediction
* enforce RecordingCanvas.endRecording
2020-04-14 20:08:10 -07:00
Mouad Debbar
7a591cf475
[web] Fix regression of pointer events on mobile browsers (#17595) 2020-04-08 14:48:56 -07:00
Mouad Debbar
b0b67ef9e2
[web] Fix window.defaultRouteName (#17580) 2020-04-08 13:51:38 -07:00
Mouad Debbar
bd760768c8
[web] Detect when the mouseup occurs outside of window (#17495) 2020-04-06 15:06:03 -07:00
Yegor
7bd8dee5be
fix implicit dynamic and two lints everywhere; implicit cast in dev/ (#17372) 2020-03-29 19:23:37 -07:00
Yegor
b2a7470748
Reland "add limited analysis options (#17332)" (#17374)
* Reland "add limited analysis options (#17332)"

This time I'm starting without Cirrus. Will add Cirrus serpartely from code changes.

This reverts commit 6d33ee1a2ca7d404ebd5cb434d8ab859bf8ac0b7.

* disable Cirrus analysis check
2020-03-27 11:06:10 -07:00
Chinmay Garde
6d33ee1a2c
Revert "add limited analysis options (#17332)" (#17368)
This reverts commit 5389159643fa26342580208b6a9de547ef4de406.
2020-03-27 02:38:50 -07:00
Yegor
5389159643
add limited analysis options (#17332)
add limited analysis options
2020-03-26 14:38:59 -07:00
Mouad Debbar
f0caace4fd
[web] Profile text layout and forward data to macrobenchmarks (#17276) 2020-03-26 09:37:14 -07:00
Yegor
5845d70b50
Preserve zones in Window callbacks (#17298)
preserve Window callback zones
2020-03-25 17:25:06 -07:00
Ferhat
04182cde5d
Switch ui.window.devicePixelRatio from browser logical to physical. (#17209)
* Switch ui.window.devicePixelRatio to browser dpi
* Add integration test for multi res image loading
* Update cirrus for new integration test
* update canvas golden test root transform
* Update compositing golden test with dpr transform
2020-03-25 12:41:17 -07:00
Mouad Debbar
4c41b14064
[web] Introduce js interop to enable experimental flags on web (#17099) 2020-03-23 13:22:10 -07:00
Ferhat
5a07488251
[web] Add HtmlCodec progress callback (#17139)
* Wire up htmlcodec chunkcallback for progress events

* Add test for HtmlCodec
2020-03-16 11:41:44 -07:00
Yegor
cb3237e255
Add more child lifecycle tests (#16689) 2020-03-09 16:26:06 -07:00
Mouad Debbar
971122b314
[web] Reduce the usage of unnecessary lists in pointer binding (#16745) 2020-02-24 14:21:04 -08:00
Nurhan Turgut
941aee35bd
[web] add comment to skipped safari test (#16737)
* add comment to skipped safari test

* test not running semantics on Mac

* disable semantics test which is unreliable
2020-02-21 13:03:29 -08:00
Nurhan Turgut
ab0dd12975
[web] Running safari tests on LUCI (#16715)
* Safari font collection tests skip failing methods

* add a clear to the semantics test to make sure no DOM elements are leaking to the other tests

* fix semantics_helper_test. skip for semantics_test. teardown didn't work

* skip test, the skipped method run for 8 minutes according to the logs

* history tests methods runs multiple times. only run them on linux for now. they were also already failing in edge/windows
2020-02-21 09:03:13 -08:00
vsmenon
0ef67b5e74
opt out dart:ui from nnbd (#16473)
* opt out dart:ui from nnbd

* Annotate tests as well
2020-02-20 11:04:00 -08:00
Nurhan Turgut
77c5812d48
[web] Skipping failing edge tests (#16626)
* making edge default test browser on windows. adding some skips (not all) for methods failing on edge

* skip failing tests. make egde default for testing

* skip one more test

* addressing reviewer comments. removing extra bat file
2020-02-18 09:36:04 -08:00
Yegor
8b0b6490ee
improve surface state assert error messages (#16595) 2020-02-14 08:04:31 -08:00
Nurhan Turgut
44e80fd619
skiping tests in Safari. LUCI recipe for Mac is ready. this is the only step left for stopping us running unit tests in Safari (#16550) 2020-02-11 15:31:57 -08:00
chunhtai
7e869faf52
Adds new route annoucement method. (#16523) 2020-02-10 13:59:02 -08:00
Yegor
1daba53187
Partially fix canvas vs text paint order when running on Blink/Webkit browsers (#16483)
fix canvas vs text paint order in Blink/Webkit
2020-02-10 13:41:50 -08:00
Ferhat
f30ff4fcbf
Use 2d matrix for transform to work around Safari clipping bug (#15976) 2020-01-24 20:40:12 -08:00
Yegor
8c855dba98
fix text blurriness in HTML-rendered text (#15649)
* fix text blurriness in HTML-rendered text
2020-01-15 14:20:28 -08:00
Mouad Debbar
6162c41d1b [web] Tests for browser history implementation (#15324) 2020-01-09 14:53:03 -08:00
Ferhat
27a221d6d0
Refactor BitmapCanvas, lazily allocate canvas, fix image composition bug. (#15153)
* Refactor BitmapCanvas. Fix image compositing bug. Allocate canvas lazily
* Fix recording canvas test by restoring context save
* Update recording canvas test for drawColor to show multiply blend
2020-01-07 15:36:48 -08:00
Mouad Debbar
eb139936eb
[web] Fix right click issues (#15103) 2020-01-03 09:21:04 -08:00
Tong Mu
f2e841d50a
[Web] Fix pointer binding (#14378)
Refactors pointer_binding, fixes a few issues related to the pointer data converter in Web, and adds a number of tests for all three adapters.
2019-12-18 13:33:16 -08:00
Yegor
6c71f89fb5
Introduce an auto-deletable SkiaObject; make SkPaint a SkiaObject (#14486)
* Introduce `SkiaObject` an object that's backed by Skia C++ objects that need to be explicitly deleted.
* Automatically delete `SkiaObject`s at the end of frame.
* Make `SkPaint` a `SkiaObject`.

Because `SkiaObject`s are deleted at the end of the frame, the object can be reused as many times as necessary within the frame. `SkPaint` in particular is a fairly expensive object. Reusing this object, for example, on `drawRRect` drops the canvas paint time by 30%.
2019-12-13 15:42:04 -08:00