499 Commits

Author SHA1 Message Date
Dan Field
473358d93d
Revert dispose images when done (#67100)
* Revert "docs for image disposal (#67066)"

This reverts commit bcb2ac5a55b90b2ccfd50de4684c0cbb8aca9290.

* Revert "Dispose of images after using them (#66688)"

This reverts commit a7954691dad4788f985cf17e81ce6c474a72e84e.
2020-10-01 16:53:50 -07:00
Dan Field
a7954691da
Dispose of images after using them (#66688)
* Dispose of images after using them
Adds ImageInfo.clone, ImageInfo.dispose, and ImageInfo.isCloneOf.
Makes all stateful holders of ui.Image objects properly clone and dispose of them.
Behavior change for ImageStreamCompleter: Removing the last listener after registering at least one listener results in the object being disposed, and new listeners cannot be added, unless a keepAlive handle is created.
Makes all non-stateful holders of ui.Image (i.e. paintImage and RawImage) assert that whoever gave the image to them has not disposed it on them.
2020-10-01 09:48:54 -07:00
Jonah Williams
90d83e37a6
[flutter_tools] register service worker after first frame event (#66082)
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, I augmented the binding setup to dispatch an event on the document after the binding has initialized. I don't see any obvious risks with this setup.

Fixes #66066
2020-09-23 18:58:05 -07:00
LongCatIsLooong
525e76bc7c
Positioning IME bars on iOS (#61981) 2020-09-22 18:32:05 -07:00
Dan Field
7eb8447485
Allow new methods to be added to ui.Image for tests (#65876)
Remove fake image implementations, add createTestImage to flutter_test
2020-09-22 11:55:39 -07:00
Michael R Fairhurst
7f3c9b6bda
Remove unused 'dart:async' imports. (#65568) 2020-09-16 14:14:06 -07:00
Alexandre Ardhuin
b007a81ad4
Reland "Nnbd widgets" (#65528)
* Reland "Nnbd widgets (#64672)"

This reverts commit 127e67902e8bbb0dcbfb3351b8fd00f7cbdf0178.

* remove non-nullable enforcement on AsyncSnapshot

* make data param non-nullable for AsyncSnapshot.withData

* make some Text params non-nullable
2020-09-15 16:42:00 +02:00
Anatoly Pulyaevskiy
bb59993ac6
Expose 3 new methods with text metrics in RenderParagraph (#65150) 2020-09-09 15:45:03 -07:00
Michael Goderbauer
127e67902e
Revert "Nnbd widgets (#64672)" (#65488)
This reverts commit e682ec711a8c05fe78157595240b392de339fa32.
2020-09-09 15:18:54 -07:00
Alexandre Ardhuin
e682ec711a
Nnbd widgets (#64672)
* migrate widget to nullsafety

* remove double blank line after license

* address review comments in actions.dart

* nullable ObjectKey.value

* use local variable oldElement

* make State.build non-nullable

* make State.context non-nullable

* newline at eof

* make ProxyWidget.child non-nullable

* make _InactiveElements.debugContains non-nullable

* make Element.depth non-nullable

* make ProxyElement.build non-nullable

* make StatefulElement.state non-nullable

* remove 'Notice that'

* avoid cast of list in RenderObjectElement.updateChildren

* make IndexedSlot.value non-nullable

* avoid cast of list in MultiChildRenderObjectElement.mount

* make some WidgetsApp parameters non-nullable

* hitTest take non-nullable position

* make ScrollableState.position non-nullable

* use _pixels instead of pixels

* make ViewportOffset.pixels non-nullable

* make param and return type of IndexedWidgetBuilder non-nullable

* unused_import

* make context param non-nullable for Builder in animated_list.dart

* make ScrollMetrics.viewportDimension non-nullable

* make ScrollMetrics.{min,max}ScrollExtent non-nullable

* make _Location.file non-nullable

* _WidgetForTypeTests.createElement throw UnimplementedError

* update _NullWidget.build error message

* make _ShortcutsState.manager non-nullable

* Fix childCount issues for NNBD

* fix childCount computation on web

* increase max value on js side to compute childCount

* make aspect parameter of dependOnInheritedWidgetOfExactType nullable

* merge has{min,max}ScrollExtent into hasScrollExtents

* update focus_manager.dart

* address review comments in icon.dart

* address review comments in image.dart

* address review comments in routes.dart

* address review comments in scroll_activity.dart

* update doc comments

* make UserScrollNotification.direction non-nullable and required

* rename hasScrollExtents to hasContentDimensions

* unnecessary late

Co-authored-by: Ian Hickson <ian@hixie.ch>
2020-09-09 10:52:27 +02:00
Chris Bracken
c0ea00ed3f
Prefer moreOrLessEquals over closeTo (#64915)
Flutter's `moreOrLessEquals` has a few advantages over `closeTo` from
the `matcher` package:

   * It emits the epsilon value in the test result on failure.
   * It uses a named parameter for epsilon, which improves readability
     at the call site.
   * It has a reasonable default for epsilon in cases where something
     more specific isn't required.

Using it also has the nice property that it aids in its own discovery
when when people go looking for such functionality in new tests.

This change also includes a couple unrelated whitespace formatting cleanups.
2020-08-30 22:20:16 -07:00
Chris Bracken
8fa5c55e54
Match lerped values using moreOrLessEquals (#64908)
Several of our tests make use of numbers without an exact floating point
representation (frequently 0.x where x!=5) which, when scaled, also
scale the error. The end result is that some of these tests currently
implicitly rely on an implementation detail of floating point math and
are sensitive to differences in the ~15th decimal place.

This patch reduces the sensitivity of some of these tests, checking
values using `moreOrLessEquals` from the flutter_test package
rather than requiring en exact match.
2020-08-30 19:05:20 -07:00
LongCatIsLooong
fe55dc2b13
Reland "Prevent viewport.showOnScreen from scrolling the viewport if the specified Rect is already visible. (#56413)" reverted in #64091 (#64513) 2020-08-28 22:13:04 -07:00
Ian Hickson
8a6a76a334
migrate rendering to nullsafety (#64621) 2020-08-27 16:38:10 -07:00
LongCatIsLooong
6536f65048
Revert "Warns when single line text fields overflow (#63639)" (#64573)
This reverts commit 0ab5ecc86b1f13854ecc0cb4a89fbdc9938c5212.
2020-08-25 11:11:15 -07:00
chunhtai
39d7a019c1
Reland "fix wrap intrinsic height calculation (#63420)" (#64276) 2020-08-25 10:01:07 -07:00
LongCatIsLooong
0ab5ecc86b
Warns when single line text fields overflow (#63639) 2020-08-24 18:16:05 -07:00
LongCatIsLooong
7d6ffc7cc9
Add rect logic to getOffsetToReveal when onlySlivers is true (#64295) 2020-08-24 12:36:04 -07:00
Tong Mu
fb0b982324
Change MouseTracker's interface for clarity. Simplify MouseRegion's implementation. (#64119)
* Redesigns the interface between MouseTracker and RendererBinding&RenderView.
* Simplifies the structure of RenderMouseRegion.
* Extracts the common utility code between mouse_tracker_test and mouse_tracker_cursor_test.
2020-08-19 18:51:56 -07:00
Mehmet Fidanboylu
bd6252eb3a
Revert "Prevent viewport.showOnScreen from scrolling the viewport if the specified Rect is already visible. (#56413)" (#64091)
This reverts commit 64d76f2fb7ed5eb785c660084b18ed5a51fd926b.
2020-08-18 13:55:33 -07:00
Mehmet Fidanboylu
473744df2c
Revert "fix wrap intrinsic height calculation (#63420)" (#64046)
This reverts commit 72619b86421bfdbf4ef7b98cb893b168b89c8677.
2020-08-18 08:07:14 -07:00
LongCatIsLooong
64d76f2fb7
Prevent viewport.showOnScreen from scrolling the viewport if the specified Rect is already visible. (#56413) 2020-08-14 16:41:03 -07:00
chunhtai
72619b8642
fix wrap intrinsic height calculation (#63420) 2020-08-12 15:21:07 -07:00
chunhtai
58e839223d
reland fix intrinsic height and width for widget span #61485 (#63118) 2020-08-07 21:01:03 -07:00
Nolan Scobie
43c1b34cf5
Add punctuation for unterminated sentences in doc comments (#62755)
* Add punctuation for unterminated sentences in doc comments

* Addressing review nit
2020-08-06 19:18:52 -04:00
Jonah Williams
428be90768
[null-safety] revert export of Fake from test_api (#62894) 2020-08-04 14:31:05 -07:00
Jonah Williams
32144161ae
[null-safety] remove some usages of mockito (#62809) 2020-08-04 08:26:12 -07:00
Tong Mu
5398f5c566
Add tests for platform views' hover behavior (#61667) 2020-07-29 14:47:06 -07:00
chunhtai
3577da53ff
Revert "fix intrinsic height and width for widget span (#61485)" (#61876)
This reverts commit fc09119d0af589ade9c7e0609777a46ed773f5d7.
2020-07-20 09:54:50 -07:00
chunhtai
fc09119d0a
fix intrinsic height and width for widget span (#61485) 2020-07-16 09:36:09 -07:00
Todd Volkert
9e665e1d88
Update documentation for IntrinsicWidth & IntrinsicHeight (#61502)
https://github.com/flutter/flutter/issues/61496
2020-07-15 11:54:32 -07:00
Tong Mu
da8695d389
Mouse events report correct local positions (#61190) 2020-07-13 13:26:03 -07:00
Kate Lovett
ea777fea1b
Skip Audit - Rendering Library (#58640) 2020-07-09 13:36:03 -07:00
Jason Simmons
5cf0d73764
In layers_test create a canvas to start recording on the PictureRecorder (#60660) 2020-07-07 17:44:02 -07:00
Justin McCandless
2a573a32fe
Reland Characters Usage (#59778)
Use Dart's characters package to fix user-facing grapheme cluster bugs.
2020-06-23 15:28:26 -07:00
Jonah Williams
04ce9d288c
Revert "Fix outline button solid path when BorderSize.width is used (#51581)" (#60000)
This reverts commit 599566177736e6b30af922a8f06e8a260acafc36.
2020-06-22 10:13:37 -07:00
Ferhat
5995661777
Fix outline button solid path when BorderSize.width is used (#51581) 2020-06-19 16:15:58 -07:00
liyuqian
42e02d60d3
Reland non-breaking "Add clipBehavior to widgets with clipRect #55977" (#59364)
* Revert "Revert "Add clipBehavior to widgets with clipRect (#55977)" (#58344)"

This reverts commit 1d395c5e187370f2838bb043d3b438029b484bfc.

* Add missed Overflow
2020-06-17 10:57:40 -07:00
renyou
a99d146ba9
Revert "Characters Package (#53381)" (#59677)
This reverts commit e0ed12c73a3df00b72af6e5657d35035a76c90db.
2020-06-17 08:39:34 -07:00
Justin McCandless
e0ed12c73a
Characters Package (#53381) 2020-06-16 16:53:04 -07:00
Kate Lovett
64f42c0ea8
Support floating the header slivers of a NestedScrollView (#59187) 2020-06-12 09:15:02 -07:00
Alexandre Ardhuin
4d7525f05c
Opt out nnbd in packages/flutter (#59186)
* add language version 2.8 in packages/flutter

* enable non-nullable analyzer flag
2020-06-11 14:11:30 +02:00
Darren Austin
012cee2731
Typo fixing sweep through packages/flutter. (#59219) 2020-06-11 05:10:01 -07:00
Jason Simmons
5736def36c
Handle selection ranges where getBoxesForSelection returns an empty list (#59014) 2020-06-09 11:08:04 -07:00
Mehmet Fidanboylu
1d395c5e18
Revert "Add clipBehavior to widgets with clipRect (#55977)" (#58344)
This reverts commit cd593dae1961ca2bc5c045a310f16e6cdffc8294.
2020-05-31 07:41:50 -07:00
liyuqian
cd593dae19
Add clipBehavior to widgets with clipRect (#55977)
* Add clipBehavior to RenderFlex

* Add clipBehavior to FittedBox

* Add clipBehavior to Flex and FittedBox

* Add clipBehavior to UnconstrainedBox

* Add clipBehavior to Stack and Wrap

* Add clipBehavior to TextEditable

* Add clipBehavior to ListWheelScrollView

* Add clipBehavior to SingleChildScrollView

* Add clipBehavior to RenderViewportBase's widgets

Those widgets are NestedScrollView and ShrinkWrappingViewport.

* Fix tests

* Remove enum Overflow and fix typo

* Remove clipToSize

* Analyze fix

* Remove Mixin and other small fixes

* Fix tests and respect Stack's default clipBehavior

* Add Overflow back to make it non-breaking

* Restore clipBehavior to make it non-breaking

* Small fixes

* Fix rebase
2020-05-29 15:38:50 -07:00
Hansol Lee
e853155c7e
Error message when size has not been set in RenderBox's performLayout should be well versed (#58151) 2020-05-28 15:03:01 -07:00
Tong Mu
5fa1c60b17
MouseCursor uses a special class instead of null to defer (#57094)
* Uses a special cursor value MouseCursor.defer to mark deferring. MouseTrackerAnnotation.cursor is now non-null. The mouseCursor argument of widgets or render objects can be null, which indicates using the default value.
* Moves SystemMouseCursors.uncontrolled to MouseCursor.uncontrolled.
* Changes how MouseCursor.debugDescription is defined. Previously MouseCursor.toString returns $runtimeType($debugDescription), while now it returns $debugDescription. Implementations of classes are updated, except for the ones of MouseCursor.defer and MouseCursor.uncontrolled are simply "defer" and "uncontrolled".
2020-05-14 15:54:26 -07:00
LongCatIsLooong
1c13d665ea
remove redundant transform (#57085) 2020-05-14 11:17:03 -07:00
Tong Mu
7f8cb7f830
System mouse cursors (#54171)
Adds the basic framework for the mouse cursor system. 

* Adds MouseRegion.cursor
* Adds SystemMouseCursors
* Adds mouseCursor to some widgets
2020-05-11 13:34:20 -07:00