2053 Commits

Author SHA1 Message Date
stuartmorgan
9ad81dae16
Wrap strdup to use compliant name on Windows (#16372)
A number of POSIX methods were renamed on Windows to match standards
requirements, giving deprecation warnings when calling strdup on Windows.
This adds a wrapper, to allow calling _strdup on Windows instead.

Part of #16256
2020-02-05 22:32:56 -08:00
stuartmorgan
28e663726a
Add explicit casts to printing of function pointers (#16370)
Compiling with clang on Windows fails here with a warning about implicit
cast from function pointer to object pointer. Rather than disable that
warning, this makes it an explicit cast. Since this is just test output,
it's not critical that this be a completely safe operation.

Part of #16256
2020-02-05 22:31:22 -08:00
stuartmorgan
473f55940f
Suppress some deprecation warnings on Windows (#16416)
Targeted suppression of some deprecation warnings that are build errors under
clang:
- Ignore the deprecation of codecvt's unicode conversion until we decide on
  a replacement strategy.
- Allow the deprecated posix names of functions in third_party/txt.

Part of https://github.com/flutter/flutter/issues/16256
2020-02-05 21:10:25 -08:00
Felipe Archondo
f25d325b1e
[fuchsia] change kMaxFramesInFlight to 3 (#16425)
To give more flexibility in scheduling, we change the number of frames
in flight we can have at one time to 3. We also introduce an offset from
VSync that Flutter can use to begin its work at. It is currently set at
0ms, matching previous behavior.
2020-02-05 23:58:05 -05:00
gaaclarke
76b291a659
Added a plugin method that gets called when the engine is about to be deleted (#16336) 2020-02-05 16:12:16 -08:00
stuartmorgan
925c60b38b
Fix Windows embedding issues caught by clang (#16369)
Clang has different warning settings, so catches different issues than
the VS compile. This fixes various minor issues caught by clang.

Part of https://github.com/flutter/flutter/issues/16256
2020-02-05 14:27:09 -08:00
Felipe Archondo
11b770489f
[fuchsia] Migrate flutter runner to use Present2 (#14162)
No change in behavior expected. We have 2 frames in flight as before. By switching to Present2 and specifying a kMaxFramesInFlight however, we allow us greater flexibility to change how Flutter schedules its frames.

This change also adds tests for SessionConnection and VsyncRecorder.
2020-02-05 13:51:04 -08:00
gaaclarke
036c370c34
Copied Apple's semantics for switches, made checkboxes the same. (#16211) 2020-02-05 10:13:31 -08:00
Dan Field
e24ec598e0
Fuchsia a11y actions (#16321) 2020-02-04 19:01:19 -08:00
Jonah Williams
7e1d1440a3
Expose enable-service-port-fallback switch (#16366) 2020-02-04 12:00:58 -08:00
Amir Hardon
7f6149cbdd
Revert "Remove use of the deprecated AccessibilityNodeInfo boundsInPa… (#16355) 2020-02-04 11:43:03 -08:00
George Wright
677b563b9a
Refactor of Vulkan GPUSurface code (#16224)
Co-authored-by: David Worsham <arbreng@gmail.com>
2020-02-04 10:44:35 -08:00
Matt Carroll
95468839a0
Added API guards to flags in PlatformPlugin that were introduced after Flutter's min SDK version. (#13965) 2020-02-03 16:25:27 -08:00
stuartmorgan
44f24bd980
Fix delete of entire selection in macOS text input (#16276)
Fixes a bug where deleteBackward was checking for being at the start of
the text before checking for a non-empty selection, breaking deletion
when the entire text field was selected.

Also removes an (incorrect) post-deletion position update that was
redundant with code in insertText:replacementRange:, and thus having no
effect.

Fixes https://github.com/flutter/flutter/issues/46150
2020-02-03 15:22:44 -08:00
Dan Field
447b022ae5
Change NSLog to FML_DLOG (#16331) 2020-02-03 10:07:59 -08:00
Dan Field
f2ade05de2
Revert "Modifies accessibility bridge to populate new node fields in semantic… (#15116)" (#16323)
This reverts commit 4a55b4fd2500bf96de93c4feb4172d88b93d52c3.
2020-01-31 23:31:27 -08:00
Chinmay Garde
f7b78e001d
Remove all uses of the redundant flutter_root variable. (#16311)
This was only necessary when the Engine had to build in multiple buildroots
where the sources where checked out at different paths relative to the
buildroot. This is no longer the case and there are already cases GN rules
have been written that mix and match variable usage with the direct
specification of the path to the Flutter sources relative to the sole buildroot.
2020-01-31 21:49:48 -08:00
Michael Klimushyn
0816c040fb
Deprecated FlutterView v1 points to FlutterView v2 (#16304)
FlutterView#enableTransparentBackground has been deprecated for some
time now since it breaks a11y highlighting in most cases. When the
warning was first added there was no known workaround, but now the v2
embedding is in stable and ready to support this usecase. Update the
warning to point to the v2 embedding.
2020-01-31 15:06:52 -08:00
Chinmay Garde
dffe3fb276
Isolate and move common portable ELF loading from fixtures into //flutter/testing. (#16305)
Also update all known test harnesses to use this and fixes the broken shell_unittests harness.

Fixes https://github.com/flutter/flutter/issues/49853
2020-01-31 12:52:00 -08:00
Jason Simmons
7c95cdada4
Ensure that Android embedding initialization always uses an application context (#16204)
Some parts of the embedding (e.g. VsyncWaiter) may hold global references to
system services obtained through the context used during initialization.
These must not be associated with an activity or other non-application context.

Fixes https://github.com/flutter/flutter/issues/49612
2020-01-31 12:09:38 -08:00
George Wright
6b8c150639
Use static constexpr for iphone_xs_times (#16264) 2020-01-31 10:04:39 -08:00
gaaclarke
71de21c7e7
Started coalescing updates to viewport metrics after foregrounding the app. (#16270) 2020-01-31 09:31:27 -08:00
George Wright
f5de1acf94
Revert "Migrate flutter_runner from flutter_runner::{Thread,Loop} to fml::{Thread,MessageLoop} (#15118)" (#16277)
This reverts commit 41e8ed071454cfd9ae02e34198250dea0edab9c4.
2020-01-30 17:19:13 -08:00
Matt Carroll
eecb5e5c25
Notify PlatformViewsController within FlutterEngine when a hot restart occurs. (#48518) (#16230) 2020-01-30 12:58:41 -08:00
Chinmay Garde
5c79a2d378
Remove buggy test to check if tasks can be posted on all native threads recursively from the emebdder. (#16214)
This was never thread safe to shutdown of the concurrent message loop.
2020-01-29 18:16:09 -08:00
Chinmay Garde
6061b804e3
In the test harness, don’t attempt to load AOT snapshots from non-existent dylibs. (#16210)
This condition may arise when the embedder passes in a path to a non-existent
dylib. Instead of crashing, the embedder will now return an error response.

Fixes https://github.com/flutter/flutter/issues/49732
2020-01-29 15:49:29 -08:00
Alexander Brusher
4a55b4fd25
Modifies accessibility bridge to populate new node fields in semantic… (#15116) 2020-01-29 10:38:21 -08:00
Jonah Williams
020222ddd0
Allow --enable-service-port-fallback as a whitelisted arg (#16167) 2020-01-29 09:17:45 -08:00
Chris Yang
ec32966e03
Revert "Always make gpu thread different from platform thread regardless of platform view (#16068)" (#16161)
This reverts commit 0889e97889c80adfc260ada8d0b3b78a8f63bc06.
2020-01-28 15:12:25 -08:00
Chris Yang
0889e97889
Always make gpu thread different from platform thread regardless of platform view (#16068) 2020-01-28 11:36:43 -08:00
Francisco Magdaleno
0de80f4e8a Gets the DPI for all awareness mode and older Windows versions (#15951) 2020-01-27 18:48:03 -08:00
Chinmay Garde
db96c1c8f5
Hold a mutex when updating all CanPostTaskToAllNativeThreads::Captures members. (#16085)
This is in the same vein as https://github.com/flutter/engine/pull/16081 but
includes holding the mutex when updating all members in the Captures struct
instead of just when tracking thread IDs.
2020-01-27 18:37:20 -08:00
Chinmay Garde
26fd7d0bc9
Fix flake by making thread ID tracking in CanPostTaskToAllNativeThreads thread safe. (#16081) 2020-01-27 17:34:56 -08:00
Chinmay Garde
aab316c62f
Remove buggy assertion in EmbedderTest::CanPostTaskToAllNativeThreads. (#16071)
This was introduced in
c5329ef5c4.

The assertion was originally written to check that more than 4 threads were
managed by the engine (UI, Platform, GPU, IO + ConcurrentWQWorkers). However,
the assertion actually only checked the count of workers in the ConcurrentWQ. As
written, this assertion would fail on all hosts with a hardware concurrency of
less than 4. Remove the assertion. The engine threads count and its assertions
already check callbacks on workers. So this check was incorrect and redundant.
2020-01-27 16:00:34 -08:00
Chinmay Garde
c5329ef5c4
Allow embedders to schedule a callback on all engine managed threads. (#15980)
`FlutterEnginePostCallbackOnAllNativeThreads` schedule a callback to be run on
all engine managed threads. The engine will attempt to service this callback the
next time the message loops for each managed thread is idle. Since the engine
manages the entire lifecycle of multiple threads, there is no opportunity for
the embedders to finely tune the priorities of threads directly, or, perform
other thread specific configuration (for example, setting thread names for
tracing). This callback gives embedders a chance to affect such tuning.

Fixes flutter/flutter#49551
Fixes b/143774406
Fixes b/148278215
Fixes b/148278931
2020-01-27 13:49:39 -08:00
Chinmay Garde
276481c4d3
Move tonic into //flutter/third_party. (#15895)
Tonic used to be used by multiple consumers outside of Flutter Engine. Due to
this, it has an unnecessary abstraction layer as well as utilities duplicated in
FML and other engine subsystems. The sole user of Tonic is now the Flutter
Engine. It is intended that the Flutter Engine team now owns this subsystem,
remove unnecessary utilities and document the headers. This is the first step in
the transition. No history is being imported as the initial history was already
lost in the transition of this component to fuchsia.googlesource. As this
component was unmaintained there, I could see no additional value in importing
the history of the patches there.

No functional change. Just moved the repo from //third_party to
//flutter/third_party and updates GN refs.
2020-01-25 17:01:56 -08:00
Michael Klimushyn
6fa1fcda8f
Register plugins at the right time, once (#15979)
Currently we're automatically registering plugins both when the
FlutterEngine is constructed and in the `flutter create` template, when
FlutterActivity#configureFlutterEngine is called. The initial
registration is too early to contain a reference to the activity and the
second registration can cause problems in some plugins.

This alters the flow so automatic registration happens in two discrete
places, and contains the `activity` in its first and only call for most
apps.

1. We're no longer automatically registering plugins on `FlutterEngine`
in any of our activities/fragments at construction time. But since the
FlutterEngine default constructor still automatically registers plugins,
anyone constructing the engine themselves (for example, in a service) is
still going to get automatic registration at `FlutterEngine`
instantiation time.
2. We now automatically register plugins in the base `FlutterActivity`'s
`configureFlutterEngine` hook. Anyone using `FlutterActivity` (or
`FlutterFragment`) should be automatically registered once that hook is
called. Right now the `flutter create` template overrides the base class
method with a subclass that registers everything manually in the same
spot. But with this in place we can safely recommend to remove the
subclass and rely on this hook to automatically register going forward.
Registering at this time means `activity` is set correctly.
2020-01-25 00:34:52 -08:00
Chris Bracken
d1b0883883
Eliminate unused import in Android embedding (#15975)
Eliminates an unused dependency on android.os.build. The last remaining
use of this was eliminated in 0615f45623224bd99ee3ceb8ba4a0d4d04f58d54
with the removal of an unused method that contained an android version
check.
2020-01-24 16:19:00 -08:00
Matt Carroll
fec9573786
Prevent duplicate plugin registration in FlutterEnginePluginRegistry. (#49365) (#15956) 2020-01-24 15:57:51 -08:00
Kaushik Iska
bd8c955502
[fuchsia] Expose view_ref as part of dart:fuchsia initialization (#15958)
fixes https://github.com/flutter/flutter/issues/47178
2020-01-24 13:42:19 -08:00
George Wright
abdf4bde63
Refactor ShellTest to allow for different ShellTestPlatformViews (#15972)
This paves the way for us to have shell_unittests backed by different rendering APIs (e.g. OpenGL, Vulkan, Metal).
2020-01-24 13:29:12 -08:00
Dan Field
89f3471fa7
the the fix (#15973) 2020-01-24 12:43:32 -08:00
George Wright
41e8ed0714 Migrate flutter_runner from flutter_runner::{Thread,Loop} to fml::{Thread,MessageLoop} (#15118) 2020-01-23 18:54:49 -08:00
Wu Zhong
45fe095d09 Fixes FlutterCallbackInfomation leaks (#15089)
See: flutter/flutter#46750
2020-01-23 16:33:26 -08:00
Wu Zhong
e9be397484 Fixes oc leaks in platform plugin (#15041)
Some objc objects are not released in the iOS embedder. This fixes a
subset of those leaks in FlutterPlatformPlugin.mm.
2020-01-23 16:32:31 -08:00
Miguel
e08ff745d2 [fuchsia] Add LogSink to flutter_[jit & aot]_product_runner (#15697) 2020-01-23 15:15:33 -08:00
Wu Zhong
439a21816e Fixes labelPrefix memory leak in FlutterEngine (#14674) 2020-01-23 14:07:51 -08:00
Matt Carroll
29e857ca2c
Release TextureView surface within FlutterTextureView when disconnected. (#48535) (#15899) 2020-01-23 13:19:42 -08:00
Kaushik Iska
5c9c6276c1
[fuchsia] Timeline events in profile mode to observatory (#15900)
This is to address fxb/44063

In all the other modes they will be sent to the systrace
2020-01-23 11:53:03 -08:00
George Wright
69bc783016
Revert "Migrate flutter_runner from flutter_runner::{Thread,Loop} to fml::{Thread,MessageLoop} (#15118)" (#15903)
This reverts commit a50f1ef56a05999bfa97a777cca14fd7a00e8454.
2020-01-22 20:35:41 -08:00