1509 Commits

Author SHA1 Message Date
Chris Bracken
49c35b6177
Eliminate unnecessary linter opt-outs (#21935)
Eliminates FLUTTER_NOLINT where they can be landed without triggering
lint failures.
2020-10-16 17:24:23 -07:00
Harry Terkelsen
869d3c8c7a
Set strokeCap, strokeJoin, and strokeMiter when resurrecting Paint (#21926) 2020-10-16 16:08:46 -07:00
Chinmay Garde
5bd7260a1e
Enable loading snapshots with sound null safety enabled. (#21820)
Snapshots compiled with sound null-safety enabled require changes to the way in
which isolates are launched. Specifically, the `Dart_IsolateFlags::null_safety`
field needs to be known upfront. The value of this field can only be determined
once the kernel snapshot is available. This poses a problem in the engine
because the engine used to launch the isolate at shell initialization and only
need the kernel mappings later at isolate launch (when transitioning the root
isolate to the `DartIsolate::Phase::Running` phase). This patch delays launch of
the isolate on the UI task runner till a kernel mapping is available. The side
effects of this delay (callers no longer having access to the non-running
isolate handle) have been addressed in this patch. The DartIsolate API has also
been amended to hide the method that could return a non-running isolate to the
caller.  Instead, it has been replaced with a method that requires a valid
isolate configuration that returns a running root isolate. The isolate will be
launched by asking the isolate configuration for its null-safety
characteristics.

A side effect of enabling null-safety is that Dart APIs that work with legacy
types will now terminate the process if used with an isolate that has sound
null-safety enabled. These APIs may no longer be used in the engine. This
primarily affects the Dart Convertors in Tonic that convert certain C++ objects
into the Dart counterparts. All known Dart Converters have been updated to
convert C++ objects to non-nullable Dart types inferred using type traits of the
corresponding C++ object. The few spots in the engine that used the old Dart
APIs directly have been manually updated. To ensure that no usage of the legacy
APIs remain in the engine (as these would cause runtime process terminations),
the legacy APIs were prefixed with the `DART_LEGACY_API` macro and the macro
defined to `[[deprecated]]` in all engine translation units. While the engine
now primarily works with non-nullable Dart types, callers can still use
`Dart_TypeToNonNullableType` to acquire nullable types for use directly or with
Tonic. One use case that is not addressed with the Tonic Dart Convertors is the
creation of non-nullable lists of nullable types. This hasn’t come up so far in
the engine.

A minor related change is reworking tonic to define a single library target.
This allows the various tonic subsystems to depend on one another. Primarily,
this is used to make the Dart convertors use the logging utilities. This now
allows errors to be more descriptive as the presence of error handles is caught
(and logged) earlier.

Fixes https://github.com/flutter/flutter/issues/59879
2020-10-16 14:53:26 -07:00
Chris Bracken
c449c8ee50
Eliminate FLUTTER_NOLINT where possible (#21904)
This removes most of the remaining FLUTTER_NOLINT comments and opts
these files back into linter enforcement.

I've filed https://github.com/flutter/flutter/issues/68273 to require
that all FLUTTER_NOLINT comments be followed by a GitHub issue URL
describing the problem to be fixed.
2020-10-16 12:44:49 -07:00
Jason Simmons
c2080ec725
Check for null images in ImageFromCompressedData (#21891) 2020-10-15 16:57:02 -07:00
Harry Terkelsen
ddf978b8b9
Add more TextStyle support to Paragraph in CanvasKit mode (#21629)
* WIP on Paragraph

* WIP skparagraph

* Add more Paragraph features in CanvasKit mode

* Fix addRoundRect test

* Respond to review comments

* Remove unused (and potentially harmful) getters from Sk classes
2020-10-15 16:33:51 -07:00
nturgut
3b2da6be9f
[web] enabling firefox screenshot tests. adding to documentation (#21807)
* enabling firefox screenshot tests. adding to documentation

* test with correct goldens

* update goldens SHA

* change the goldens with flutter/goldens repo

* do not run preparation step twice. this will cause test_results to be deleted
2020-10-13 19:26:34 -07:00
Ferhat
d5c5a8ec61
[web] Fix Altgr keyboard crash (#21781)
* Fix AltGr modifier crash
* update integration test
2020-10-13 08:53:28 -07:00
Yuqian Li
c2938d06b1
Revert "Migration to PlatformDispatcher and multi-window #20496" (#21792)
* Revert "Fix documentation build for window changes. (#21780)"

This reverts commit 931a04683d6eb49fc92059b2384ac5b1618d5422.

* Revert "Migration to PlatformDispatcher and multi-window (#20496)"

This reverts commit 85b0031f73544e448354047dc6a236c0b0808252.
2020-10-12 19:26:41 -07:00
nturgut
38d8ebaa46
E2e screenshot tests2 (#21383)
* carrying code

* more changes for carrying the code

* rebase changes onto ios-screenshot tests

* adding screenshot capability to text_editing e2e test

* address some comments

* change enable flag for isUnitTestsScreenshotsAvailable

* addressing the reviewer comments

* change the dependency for path

* add to licencense file

* changing goldens commit no. the new commit has the screenshot goldens

* update readme file

* firefox tests needs LUCI changes

* change to release mode since screenshots were taken in release mode

* change window size

* some argument changes

* small comment change

* test the chrome linux tests again

* use roboto font instead of default font

* addressing reviewer comments

* change commit for goldens
2020-10-12 16:25:57 -07:00
Greg Spencer
931a04683d
Fix documentation build for window changes. (#21780)
* Fix documentation build for window changes.

* Add missing interfaces for web_ui
2020-10-12 16:04:05 -07:00
Greg Spencer
85b0031f73
Migration to PlatformDispatcher and multi-window (#20496)
This is a PR for converting the dart:ui code in the engine to use a multi-window API. The goal here is to convert from the window singleton to an API that has the concept of multiple windows. Also, I'm matching up the new PlatformDispatcher class to talk directly to the PlatformConfiguration class in the engine. I'm not attempting to actually enable creating multiple windows here, just migrate to an API that has a concept of multiple windows. The multi-window API in this PR currently only ever creates one window.

The design doc for this change is here.

The major changes in this PR:

Move the platfom-specific attributes out of Window, and into the new PlatformDispatcher class that holds all of the platform state, so that the platform code need only update the configuration on this class.
Create FlutterView, FlutterWindow, and SingletonFlutterWindow classes to separate out the concepts of a view (of which there may be multiple in a window), a window (of which there may be multiple on a screen, and they host views), and a window where there is only ever expected to be one (this hosts the entire API of the former Window class, and will eventually be the type of the window singleton).
Next step after this PR lands:

Remove the Window class entirely (it is replaced by SingletonFlutterWindow). Some minor changes in the Framework are needed to switch to using SingletonFlutterWindow directly first.

The Window class still exists in this PR, but will be removed as soon as the framework is converted to point to the SingletonFlutterWindow class instead. They share the same API, just have different names (Window is currently a subclass of SingletonFlutterWindow). The intention is that the Window name will be freed up to use as a widget class name in the framework for managing windows. The singleton called window will remain, and keep the same API it has now.
2020-10-09 16:29:16 -07:00
Ferhat
ec1d111171
[web] Add ShaderBuilder, change drawVertices to use builder. (#21716)
* Move shader.dart into shaders directory
* Add Shader builder basic structure and decls
* rewrite drawVertices with ShaderBuilder
* Fix in parameters in fragment shader to use varying for webgl1
2020-10-09 15:52:29 -07:00
Mouad Debbar
9ab40c2809
[web] Reland Support custom url strategies (#21702) 2020-10-08 14:30:02 -07:00
nturgut
83e18142e8
chrome driver for chrome 86 (#21705) 2020-10-08 13:41:05 -07:00
nturgut
eb939028f9
fixing the autofill overlay problem (blue area for chrome) (#21610)
* fixing the autofill overlay problem (blue area for chrome)

* addression comments
2020-10-08 10:10:12 -07:00
Dan Field
3905b9ec39
Revert "[web] Support custom url strategies (#19134)" (#21687)
This reverts commit 02324994a3f44a2777ade96b3d69aa61901fb9b4.
2020-10-07 21:42:20 -07:00
Mouad Debbar
02324994a3
[web] Support custom url strategies (#19134) 2020-10-07 17:19:07 -07:00
David Worsham
d5dddf32e7
fuchsia: Don't send ViewportMetrics w/ 0 DPR (#21392) 2020-10-06 17:57:28 -07:00
Ferhat
284ef2217d
[web] Fix CapsLock keyevent (#21584)
* Fix metaState for Key events for lock modifiers
2020-10-05 12:49:32 -07:00
Yegor
33515242ed
test CkPath.reset() (#21567) 2020-10-05 12:44:33 -07:00
Nolan Scobie
d92c42f349
Minor a11y documentation breadcrumbs (#20330)
Adds a reference to RenderObject.describeSemanticsClip to
`SemanticsFlag.isHidden` and a hint that lets readers know that the
`SemanticsNode` rect is specified in local coordinates.
2020-10-02 23:30:23 -07:00
Yegor
94af181af6
web: implement frame timings (#21552)
* web: implement frame timings
2020-10-02 22:05:07 -07:00
Yegor
de7c0b9b81
Respect the --debug option in Firefox (#21438) 2020-10-02 18:17:02 -07:00
Dan Field
89a46af119
Implement Image.clone for CanvasKit (#21555) 2020-10-02 12:57:01 -07:00
Luigi Rosso
a446aac02e
Fix for issue flutter/#66502. (#21372) 2020-10-02 09:10:11 -07:00
Ferhat
af5717eb10
[web] Fix setPreferredOrientations failure on iOS due to NNBD change. (#21531) 2020-10-01 14:00:01 -07:00
Ferhat
f37a0b12e8
Fix mono quad winding (#21530) 2020-10-01 13:51:38 -07:00
Yegor
93735c98ef
re-enable CanvasKit path ops test (#21520)
* re-enable CanvasKit path ops test

* also test Path.combine
2020-09-30 14:30:01 -07:00
Yegor
a17036ca1c
fix EnginePicture.toImage; implement rawRgba toByteData; add test (#21370) 2020-09-29 12:17:03 -07:00
Paul Berry
b133df3c95
Remove unnecessary ?s from web_ui. (#21444)
* Remove unnecessary `?`s from web_ui.

In https://dart-review.googlesource.com/c/sdk/+/163841, dart's flow
analysis is being changed so that an assignment like this:

    T? x = <non-nullable value>;

causes `x` to be immediately promoted to type `T`.  This exposed two
instances in which a variable was unnecessarily given a nullable type.
To avoid warnings, we need to fix these two types before
https://dart-review.googlesource.com/c/sdk/+/163841 can land.
2020-09-28 13:58:12 -07:00
Mouad Debbar
fc7d0fc905
[web] Respond with null for unimplemented method channels (#21423) 2020-09-25 18:49:41 -07:00
Dan Field
08cf7256d8
Fix getNextFrame (#21422) 2020-09-25 17:26:59 -07:00
nturgut
d877b830cb
[web] enable ios safari screenshot tests (#21226)
* enable ios safari screenshot tests

* this is the value used for screenshots in the repo.

* change revision

* fix the error made in the gaps

* do not try to fetch on LUCI

* lunix luci migth break existing prs. only skip fetching for mac

* add a placeholder tests for shadow golden test

* try to use iPhone 11 Pro on LUCI

* change the scale and the smoke test image

* add unmerged goldens PR to tests all the screenshots. will be removed later

* change the goldens lock back to flutter/goldens

* change wrong comment on screenshot tests block

* address reviewer comments

* change the commit number for goldens file

* skip canvas blend mode tests

* debugging LUCI error

* debugging LUCI error printing directory contents

* skip one test, remove the debug logs

* change the revision number to include the correct chrome files
2020-09-25 12:30:57 -07:00
Alexander Brusher
de5f2b48fb
Revert "Revert "Adds fuchsia node roles to accessibility bridge updates. (#20385)" (#20936)" (#21367)
This reverts commit 96efe39272a2850092c9a1445dc5406dbe1fb645.
2020-09-25 11:07:10 -07:00
Dan Field
aa8d5d4b9b
Avoid sending a 0 DPR to framework (#21389)
* Avoid sending a 0 DPR to framework

* check width and height as well
2020-09-25 10:35:57 -07:00
Ian Hickson
ee71df706a
Revert "Make drain() consistently asynchronous. (#21062)" (#21391)
This reverts commit cdc631c4338455f292f68c110d584870753e0160.
2020-09-24 18:19:53 -07:00
Ian Hickson
cdc631c433
Make drain() consistently asynchronous. (#21062) 2020-09-23 22:17:02 -07:00
David Iglesias
3d0f12974d
[web] Add canUpdateAsMatch to PersistedPlatformView. (#21313) 2020-09-23 21:47:02 -07:00
Dan Field
c0e1df65e5
implement decodeFromPixels (#21298) 2020-09-23 21:42:01 -07:00
Dan Field
2ea7e5230b
isCloneOf for Image (#21371)
* isCloneOf for Image

* Update docs, add missing impl
2020-09-23 21:09:44 -07:00
Yegor
b4fb5bb8be
web: make a few variables non-null (#21115)
* web: make a few variables non-null
2020-09-23 15:30:57 -07:00
Dan Field
b49de93b33
Create an ImageHandle wrapper (#21057)
Allows for reference counting of images before disposal.

This will allow multiple callers to hold a reference to an image and dispose of their reference without disposing the underlying image until all handles have been disposed.

This will be used by the framework to help resolve some of the kludge I was trying to introduce in flutter/flutter#64582
2020-09-23 14:33:29 -07:00
Richard Cai
515f339838
Update docs specifying addPlatformView offset param is not used (#21331)
for Android and iOS and remove offset from scenario_app test for iOS and Android.
2020-09-23 10:37:57 -07:00
nturgut
6e42b54d59
creating test result directory before running tests (#21324)
* creating test result directory. adding a prepare method to test runner

* addressing reviewer comments
2020-09-22 12:51:14 -07:00
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