Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

dart:mirrors changes broke package rpc #35009

Closed
jcollins-g opened this issue Oct 31, 2018 · 31 comments
Closed

dart:mirrors changes broke package rpc #35009

jcollins-g opened this issue Oct 31, 2018 · 31 comments
Assignees
Labels
area-core-library SDK core library issues (core, async, ...); use area-vm or area-web for platform specific libraries. crash Process exits with SIGSEGV, SIGABRT, etc. An unhandled exception is not a crash. P1 A high priority bug; for example, a single project is unusable or has many test failures
Milestone

Comments

@jcollins-g
Copy link
Contributor

jcollins-g commented Oct 31, 2018

Something seems to have changed after 2.1.0-dev.7.1 (Linux) with respect to type promotion in the VM, and it breaks tests in the http://github.com/dart-lang/rpc package in such a way that it is not immediately obvious what to do about it. 2.1.0-dev.7.1 passes the tests fine, but now they error out. This is now consistently breaking tests in the dart-services package as well and although I think dart-pad does not depend on this particular code path, I'm guessing other clients of the rpc package will.

To reproduce:

~/dart/clean
$ git clone git@github.com:dart-lang/rpc.git
Cloning into 'rpc'...
remote: Enumerating objects: 1, done.
remote: Counting objects: 100% (1/1), done.
remote: Total 2224 (delta 0), reused 0 (delta 0), pack-reused 2223
Receiving objects: 100% (2224/2224), 578.11 KiB | 1.58 MiB/s, done.
Resolving deltas: 100% (1342/1342), done.
~/dart/clean
$ cd rpc
~/dart/clean/rpc
$ pub get
Resolving dependencies... (5.9s)
+ _discoveryapis_commons 0.1.8+1
+ analyzer 0.33.1
+ args 1.5.0
+ async 2.0.8
+ boolean_selector 1.0.4
+ charcode 1.1.2
+ collection 1.14.11
+ convert 2.0.2
+ crypto 2.0.6
+ csslib 0.14.6
+ dart_style 1.2.0
+ discoveryapis_generator 0.9.10
+ front_end 0.1.6+1
+ gcloud 0.6.0+1
+ glob 1.1.7
+ googleapis 0.52.0+1
+ googleapis_beta 0.47.0+1
+ html 0.13.3+3
+ http 0.11.3+17 (0.12.0 available)
+ http_multi_server 2.0.5
+ http_parser 3.1.3
+ io 0.3.3
+ js 0.6.1+1
+ json_rpc_2 2.0.9
+ kernel 0.3.6+1
+ logging 0.11.3+2
+ matcher 0.12.3+1 (0.12.4 available)
+ meta 1.1.6
+ mime 0.9.6+2
+ multi_server_socket 1.0.2
+ node_preamble 1.4.4
+ package_config 1.0.5
+ package_resolver 1.0.6
+ path 1.6.2
+ plugin 0.2.0+3
+ pool 1.3.6
+ pub_semver 1.4.2
+ quiver 2.0.1
+ shelf 0.7.3+3
+ shelf_packages_handler 1.0.4
+ shelf_static 0.2.8
+ shelf_web_socket 0.2.2+4
+ source_map_stack_trace 1.1.5
+ source_maps 0.10.8
+ source_span 1.4.1
+ stack_trace 1.9.3
+ stream_channel 1.6.8
+ string_scanner 1.0.4
+ term_glyph 1.0.1
+ test 1.4.0
+ test_api 0.1.1
+ typed_data 1.1.6
+ uri 0.11.3+1
+ utf 0.9.0+5
+ vm_service_client 0.2.6
+ watcher 0.9.7+10
+ web_socket_channel 1.0.9
+ yaml 2.1.15
Changed 58 dependencies!
Precompiling executables... (8.8s)
Precompiled discoveryapis_generator:generate.
Precompiled test:test.
~/dart/clean/rpc
$ pub run test
00:09 +59 -1: test/src/invocation/invoke_test.dart: api-invoke-post reverse-list [E]                                                                             
  Expected: <200>
    Actual: <500>
  
  package:test_api                            expect
  test/src/invocation/invoke_test.dart 635:7  main.<fn>.<fn>
  ===== asynchronous gap ===========================
  dart:async                                  _AsyncAwaitCompleter.completeError
  test/src/invocation/invoke_test.dart        main.<fn>.<fn>
  ===== asynchronous gap ===========================
  dart:async                                  _asyncThenWrapperHelper
  test/src/invocation/invoke_test.dart        main.<fn>.<fn>
  
00:09 +59 -2: test/src/invocation/invoke_test.dart: api-invoke-post add-resource [E]                                                                             
  Expected: <201>
    Actual: <500>
  
  package:test_api                            expect
  test/src/invocation/invoke_test.dart 643:7  main.<fn>.<fn>
  ===== asynchronous gap ===========================
  dart:async                                  _AsyncAwaitCompleter.completeError
  test/src/invocation/invoke_test.dart        main.<fn>.<fn>
  ===== asynchronous gap ===========================
  dart:async                                  _asyncThenWrapperHelper
  test/src/invocation/invoke_test.dart        main.<fn>.<fn>
  
00:09 +92 -3: test/api_config_test.dart: api_config_schema request-parsing [E]                                                                                   
  RPC Error with status: 400 and message: Field messages has wrong type:  type 'List<dynamic>' is not a subtype of type 'List<String>' of 'value'
  lib/src/config/schema.dart 78:9   ApiConfigSchema.fromRequest
  test/api_config_test.dart 664:21  main.<fn>.<fn>
  
00:09 +92 -4: test/api_config_test.dart: api_config_schema request-parsing-map-list [E]                                                                          
  RPC Error with status: 400 and message: Field myStrings has wrong type:  type 'List<dynamic>' is not a subtype of type 'List<String>' of 'value'
  lib/src/config/schema.dart 78:9   ApiConfigSchema.fromRequest
  test/api_config_test.dart 716:35  main.<fn>.<fn>
  
02:20 +150 -4: Some tests failed.                                                                                                                                
~/dart/clean/rpc
$

The problem seems to be that types are not being promoted the same way as they were in 2.1.0-dev.7.1, and without that I'm not sure the rpc package can be fixed. It seems to depend greatly on the prior behavior to constrain types. Manually converting the types seems to help things get farther, like in this patch (only for illustrative purposes, I don't think things like this are a good idea):

~/dart/rpc
$ git diff
diff --git a/lib/src/config/property.dart b/lib/src/config/property.dart
index a9886a3..4ba1f71 100644
--- a/lib/src/config/property.dart
+++ b/lib/src/config/property.dart
@@ -355,7 +355,15 @@ class ListProperty extends ApiConfigSchemaProperty<List, List> {
   }
 
   List _fromRequest(List encodedList) {
-    return encodedList.map(_itemsProperty._fromRequest).toList();
+    List result = encodedList.map(_itemsProperty._fromRequest).toList();
+    if (result.every((dynamic value) => value is Map)) {
+      return new List<Map>.from(result);
+    } else if (result.every((dynamic value) => value is List)) {
+      return new List<List>.from(result);
+    } else if (result.every((dynamic value) => value is String)) {
+      return new List<String>.from(result);
+    }
+    return result;
   }
 }
 
@@ -387,6 +395,13 @@ class MapProperty extends ApiConfigSchemaProperty<Map<String, dynamic>,
     encodedMap.forEach((String key, encodedObject) {
       result[key] = _additionalProperty._fromRequest(encodedObject);
     });
+    if (result.values.every((dynamic v) => v is Map)) {
+      return new Map<String, Map>.from(result);
+    } else if (result.values.every((dynamic v) => v is List)) {
+      return new Map<String, List>.from(result);
+    } else if (result.values.every((dynamic v) => v is String)) {
+      return new Map<String, String>.from(result);
+    }
     return result;
   }
 }

However even if somehow done better, the RPC package seems to depend greatly on the prior automatic constraining of types and so I don't think specifying them by hand in this way is likely to produce good results longer term.

Attempting to set breakpoints and/or use the debugger in this area crashes the VM with stack traces similar to this one:

Testing started at 1:53 PM ...
/usr/local/google/home/jcollins/dart/all_sdks/current/bin/dart --pause_isolates_on_start --enable-vm-service:35641 /usr/local/google/home/jcollins/dart/all_sdks/current/bin/snapshots/pub.dart.snapshot run test -r json /usr/local/google/home/jcollins/dart/rpc/test/api_config_test.dart
Observatory listening on http://127.0.0.1:35641/
../../runtime/platform/utils_linux.cc: 32: error: Fatal error in Utils::VSNPrint with format 'data:application/dart;charset=utf-8,%20%20%20%20import%20%22dart:isolate%22;%0A%0A%20%20%20%20import%20%22package:stream_channel/stream_channel.dart%22;%0A%0A%20%20%20%20import%20%22package:test/src/runner/plugin/remote_platform_helpers.dart%22;%0A%20%20%20%20import%20%22package:test/src/runner/vm/catch_isolate_errors.dart%22;%0A%0A%20%20%20%20import%20%22file:///usr/local/google/home/jcollins/dart/rpc/test/api_config_test.dart%22%20as%20test;%0A%0A%20%20%20%20void%20main(_,%20SendPort%20message)%20%7B%0A%20%20%20%20%20%20var%20channel%20=%20serializeSuite(()%20%7B%0A%20%20%20%20%20%20%20%20catchIsolateErrors();%0A%20%20%20%20%20%20%20%20return%20test.main;%0A%20%20%20%20%20%20%7D);%0A%20%20%20%20%20%20new%20IsolateChannel.connectSend(message).pipe(channel);%0A%20%20%20%20%7D%0A%20%20:1: Error: Can't access platform private library.'
Dumping native stack trace for thread 53a6
  [0x000055d0755e66df] dart::Profiler::DumpStackTrace(void*)
  [0x000055d0755e66df] dart::Profiler::DumpStackTrace(void*)
  [0x000055d07581e1d2] dart::Assert::Fail(char const*, ...)
  [0x000055d07581f613] Unknown symbol
  [0x000055d075520292] dart::JSONStream::PrintError(long, char const*, ...)
  [0x000055d075653fa0] Unknown symbol
  [0x000055d075650478] dart::Service::InvokeMethod(dart::Isolate*, dart::Array const&, bool)
  [0x000055d075650c05] dart::Service::HandleIsolateMessage(dart::Isolate*, dart::Array const&)
  [0x000055d0755065a3] dart::IsolateMessageHandler::HandleMessage(dart::Message*)
  [0x000055d0755381de] dart::MessageHandler::HandleMessages(dart::MonitorLocker*, bool, bool)
  [0x000055d075538437] dart::MessageHandler::HandleOOBMessages()
  [0x000055d0757f5d8a] Dart_HandleServiceMessages
  [0x000055d07550e5e0] dart::Isolate::PauseEventHandler()
  [0x000055d0754d79bb] dart::Debugger::Pause(dart::ServiceEvent*)
  [0x000055d0754e13a3] dart::Debugger::PauseException(dart::Instance const&)
  [0x000055d0754f0d7a] dart::Exceptions::Throw(dart::Thread*, dart::Instance const&)
  [0x000055d0754f0d33] Unknown symbol
  [0x000055d0754f0bc6] dart::Exceptions::CreateAndThrowTypeError(dart::TokenPosition, dart::AbstractType const&, dart::AbstractType const&, dart::String const&, dart::String const&)
  [0x000055d07543219e] Unknown symbol
  [0x000055d0754320e3] Unknown symbol
  [0x00007f3170c00bf9] Unknown symbol
  [0x00007f3158588ad0] Unknown symbol
  [0x00007f3170c00ee3] Unknown symbol
  [0x000055d0754cfe05] dart::DartEntry::InvokeFunction(dart::Function const&, dart::Array const&, dart::Array const&, unsigned long)
  [0x000055d0755a7bf5] Unknown symbol
  [0x000055d0755a8108] dart::Instance::InvokeSetter(dart::String const&, dart::Instance const&, bool) const
  [0x000055d07545f98f] dart::BootstrapNatives::DN_InstanceMirror_invokeSetter(_Dart_NativeArguments*)
  [0x00007f3170c00bf9] Unknown symbol
  [0x00007f31589bac51] Unknown symbol
  [0x00007f31589bab98] Unknown symbol
  [0x00007f31589b0020] Unknown symbol
  [0x00007f3158582145] Unknown symbol
  [0x00007f31646ff756] Unknown symbol
  [0x00007f3159090df9] Unknown symbol
  [0x00007f315e63389f] Unknown symbol
  [0x00007f315e633782] Unknown symbol
  [0x00007f31646c9bb9] Unknown symbol
  [0x00007f3159092eb8] Unknown symbol
  [0x00007f31646ff756] Unknown symbol
  [0x00007f315908a8eb] Unknown symbol
  [0x00007f3159092d02] Unknown symbol
  [0x00007f315e62c1e8] Unknown symbol
  [0x00007f315e62bfcd] Unknown symbol
  [0x00007f315e62b905] Unknown symbol
  [0x00007f315e63337b] Unknown symbol
  [0x00007f315e632fc5] Unknown symbol
  [0x00007f315e632099] Unknown symbol
  [0x00007f315deec6ec] Unknown symbol
  [0x00007f315deec22d] Unknown symbol
  [0x00007f315deebb6f] Unknown symbol
  [0x00007f315deeb707] Unknown symbol
  [0x00007f3159091bad] Unknown symbol
  [0x00007f315e63389f] Unknown symbol
  [0x00007f315e633782] Unknown symbol
  [0x00007f31646c9bb9] Unknown symbol
  [0x00007f3159092eb8] Unknown symbol
  [0x00007f31646ff756] Unknown symbol
  [0x00007f315908a8eb] Unknown symbol
  [0x00007f3159092d02] Unknown symbol
  [0x00007f315e62c1e8] Unknown symbol
  [0x00007f315e62bfcd] Unknown symbol
  [0x00007f315e62b905] Unknown symbol
  [0x00007f315e63337b] Unknown symbol
  [0x00007f315e632fc5] Unknown symbol
  [0x00007f315e632099] Unknown symbol
  [0x00007f315e2124e0] Unknown symbol
  [0x00007f31646ff756] Unknown symbol
  [0x00007f315908a8eb] Unknown symbol
  [0x00007f315908a6e7] Unknown symbol
  [0x00007f315e60e4df] Unknown symbol
  [0x00007f315e60e25f] Unknown symbol
  [0x00007f315e60d8a2] Unknown symbol
  [0x00007f315e63093f] Unknown symbol
  [0x00007f315e630800] Unknown symbol
  [0x00007f315e625c89] Unknown symbol
  [0x00007f315e62583f] Unknown symbol
  [0x00007f315e625717] Unknown symbol
  [0x00007f31590896a7] Unknown symbol
  [0x00007f3159087a78] Unknown symbol
  [0x00007f315908765a] Unknown symbol
  [0x00007f31646c9bb9] Unknown symbol
  [0x00007f31646eb470] Unknown symbol
  [0x00007f3170c00ee3] Unknown symbol
  [0x000055d0754cfe05] dart::DartEntry::InvokeFunction(dart::Function const&, dart::Array const&, dart::Array const&, unsigned long)
  [0x000055d0754d3e18] dart::DartLibraryCalls::HandleMessage(dart::Object const&, dart::Instance const&)
  [0x000055d0755063bb] dart::IsolateMessageHandler::HandleMessage(dart::Message*)
  [0x000055d07553810a] dart::MessageHandler::HandleMessages(dart::MonitorLocker*, bool, bool)
  [0x000055d07553889c] dart::MessageHandler::TaskCallback()
  [0x000055d075687b6d] dart::ThreadPool::Worker::Loop()
  [0x000055d075687a04] dart::ThreadPool::Worker::Main(unsigned long)
  [0x000055d0755e2cc9] Unknown symbol
-- End of DumpStackTrace

Process finished with exit code 134 (interrupted by signal 6: SIGABRT)
@jcollins-g jcollins-g added area-vm Use area-vm for VM related issues, including code coverage, and the AOT and JIT backends. area-observatory labels Oct 31, 2018
@jcollins-g
Copy link
Contributor Author

I'm wondering if there's some change in the behavior of the Dart json decoder that could explain this, too.

@jcollins-g jcollins-g added P1 A high priority bug; for example, a single project is unusable or has many test failures crash Process exits with SIGSEGV, SIGABRT, etc. An unhandled exception is not a crash. and removed area-observatory labels Oct 31, 2018
@jcollins-g
Copy link
Contributor Author

While 2.1.0-dev.7.1 passes the tests, there are still similar debugger crashes when attempting to inspect the same list. Unfortunately this means it is going to be hard for me to figure out what changed just by inspection with the debugger.

Example crash from 2.1.0-dev.7.1:

Testing started at 3:45 PM ...
/usr/local/google/home/jcollins/dart/all_sdks/current/bin/dart --pause_isolates_on_start --enable-vm-service:45125 /usr/local/google/home/jcollins/dart/all_sdks/current/bin/snapshots/pub.dart.snapshot run test -r json /usr/local/google/home/jcollins/dart/rpc/test/api_config_test.dart
Observatory listening on http://127.0.0.1:45125/
../../runtime/platform/utils_linux.cc: 32: error: Fatal error in Utils::VSNPrint with format 'data:application/dart;charset=utf-8,%20%20%20%20import%20%22dart:isolate%22;%0A%0A%20%20%20%20import%20%22package:stream_channel/stream_channel.dart%22;%0A%0A%20%20%20%20import%20%22package:test/src/runner/plugin/remote_platform_helpers.dart%22;%0A%20%20%20%20import%20%22package:test/src/runner/vm/catch_isolate_errors.dart%22;%0A%0A%20%20%20%20import%20%22file:///usr/local/google/home/jcollins/dart/rpc/test/api_config_test.dart%22%20as%20test;%0A%0A%20%20%20%20void%20main(_,%20SendPort%20message)%20%7B%0A%20%20%20%20%20%20var%20channel%20=%20serializeSuite(()%20%7B%0A%20%20%20%20%20%20%20%20catchIsolateErrors();%0A%20%20%20%20%20%20%20%20return%20test.main;%0A%20%20%20%20%20%20%7D);%0A%20%20%20%20%20%20new%20IsolateChannel.connectSend(message).pipe(channel);%0A%20%20%20%20%7D%0A%20%20:1: Error: Can't access platform private library.'
Dumping native stack trace for thread 176bc
  [0x000055aeaefcfb0f] dart::Profiler::DumpStackTrace(void*)
  [0x000055aeaefcfb0f] dart::Profiler::DumpStackTrace(void*)
  [0x000055aeaf220ca2] dart::Assert::Fail(char const*, ...)
  [0x000055aeaf2220e3] Unknown symbol
  [0x000055aeaef04cb2] dart::JSONStream::PrintError(long, char const*, ...)
  [0x000055aeaf03c710] Unknown symbol
  [0x000055aeaf038be8] dart::Service::InvokeMethod(dart::Isolate*, dart::Array const&, bool)
  [0x000055aeaf039375] dart::Service::HandleIsolateMessage(dart::Isolate*, dart::Array const&)
  [0x000055aeaeeeb703] dart::IsolateMessageHandler::HandleMessage(dart::Message*)
  [0x000055aeaef1cb0e] dart::MessageHandler::HandleMessages(dart::MonitorLocker*, bool, bool)
  [0x000055aeaef1cd67] dart::MessageHandler::HandleOOBMessages()
  [0x000055aeaf1f86fa] Dart_HandleServiceMessages
  [0x000055aeaeef3850] dart::Isolate::PauseEventHandler()
  [0x000055aeaeebd28b] dart::Debugger::Pause(dart::ServiceEvent*)
  [0x000055aeaeecc5ca] dart::Debugger::PauseBreakpoint()
  [0x000055aeaf023930] dart::DRT_BreakpointRuntimeHandler(dart::NativeArguments)
  [0x00007f0fe7ec0a82] [Stub] CallToRuntime
  [0x00007f0fe7ec19c1] [Stub] ICCallBreakpoint
  [0x00007f0fd3822318] ApiConfigSchemaProperty._fromRequest
  [0x00007f0fd380f5a1] ApiConfigSchemaProperty.fromRequest
  [0x00007f0fd380daef] ApiConfigSchema.fromRequest
  [0x00007f0fd38216ba] main.<anonymous closure>.<anonymous closure>
  [0x00007f0fcdb43538] _Closure.call
  [0x00007f0fd4624b7b] Declarer.test.<anonymous closure>.<anonymous closure>.<anonymous closure>
  [0x00007f0fcdb799a1] _Closure.call
  [0x00007f0fcdb7987c] _asyncThenWrapperHelper.<anonymous closure>
  [0x00007f0fd8fc0dfb] _Closure.call
  [0x00007f0fd4626d52] StackZoneSpecification._registerUnaryCallback.<anonymous closure>.<anonymous closure>
  [0x00007f0fcdb43538] _Closure.call
  [0x00007f0fd461de97] StackZoneSpecification._run
  [0x00007f0fd4626b81] StackZoneSpecification._registerUnaryCallback.<anonymous closure>
  [0x00007f0fcdb71ed8] _rootRunUnary
  [0x00007f0fcdb71c96] _rootRunUnary
  [0x00007f0fcdb71612] _CustomZone.runUnary
  [0x00007f0fcdb79449] _FutureListener.handleValue
  [0x00007f0fcdb790a2] _Future._propagateToListeners.handleValueCallback
  [0x00007f0fcdb78058] _Future._propagateToListeners
  [0x00007f0fcd5bc466] _Future._complete
  [0x00007f0fcd5bbfbd] _SyncCompleter.complete
  [0x00007f0fcd5bb931] _AsyncAwaitCompleter.complete
  [0x00007f0fcd5bb553] _completeOnAsyncReturn
  [0x00007f0fd4625a39] Declarer._runSetUps
  [0x00007f0fcdb799a1] _Closure.call
  [0x00007f0fcdb7987c] _asyncThenWrapperHelper.<anonymous closure>
  [0x00007f0fd8fc0dfb] _Closure.call
  [0x00007f0fd4626d52] StackZoneSpecification._registerUnaryCallback.<anonymous closure>.<anonymous closure>
  [0x00007f0fcdb43538] _Closure.call
  [0x00007f0fd461de97] StackZoneSpecification._run
  [0x00007f0fd4626b81] StackZoneSpecification._registerUnaryCallback.<anonymous closure>
  [0x00007f0fcdb71ed8] _rootRunUnary
  [0x00007f0fcdb71c96] _rootRunUnary
  [0x00007f0fcdb71612] _CustomZone.runUnary
  [0x00007f0fcdb79449] _FutureListener.handleValue
  [0x00007f0fcdb790a2] _Future._propagateToListeners.handleValueCallback
  [0x00007f0fcdb78058] _Future._propagateToListeners
  [0x00007f0fcd85953a] _Future._addListener.<anonymous closure>
  [0x00007f0fcdb43538] _Closure.call
  [0x00007f0fd461de97] StackZoneSpecification._run
  [0x00007f0fd461dc47] StackZoneSpecification._registerCallback.<anonymous closure>
  [0x00007f0fcdb5316a] _rootRun
  [0x00007f0fcdb52e85] _rootRun
  [0x00007f0fcdb524cf] _CustomZone.run
  [0x00007f0fcdb76793] _CustomZone.runGuarded
  [0x00007f0fcdb7663a] _CustomZone.bindCallbackGuarded.<anonymous closure>
  [0x00007f0fcdb6b8c3] _microtaskLoop
  [0x00007f0fcdb6b3dd] _startMicrotaskLoop
  [0x00007f0fcdb6b279] _startMicrotaskLoop
  [0x00007f0fd461cba0] _Timer._runTimers
  [0x00007f0fd461ad3b] _Timer._handleMessage
  [0x00007f0fd461a87c] _Timer._handleMessage
  [0x00007f0fd8fc0dfb] _Closure.call
  [0x00007f0fd8fee102] _RawReceivePortImpl._handleMessage
  [0x00007f0fe7ec0ee3] [Stub] InvokeDartCode
  [0x000055aeaeeb58a5] dart::DartEntry::InvokeFunction(dart::Function const&, dart::Array const&, dart::Array const&, unsigned long)
  [0x000055aeaeeb98b8] dart::DartLibraryCalls::HandleMessage(dart::Object const&, dart::Instance const&)
  [0x000055aeaeeeb51b] dart::IsolateMessageHandler::HandleMessage(dart::Message*)
  [0x000055aeaef1ca3a] dart::MessageHandler::HandleMessages(dart::MonitorLocker*, bool, bool)
  [0x000055aeaef1d1cc] dart::MessageHandler::TaskCallback()
  [0x000055aeaf06ef5d] dart::ThreadPool::Worker::Loop()
  [0x000055aeaf06edf4] dart::ThreadPool::Worker::Main(unsigned long)
  [0x000055aeaefcbff9] Unknown symbol
-- End of DumpStackTrace

Process finished with exit code 134 (interrupted by signal 6: SIGABRT)

@kevmoo kevmoo added this to the Dart2.1 milestone Nov 1, 2018
@rmacnak-google
Copy link
Contributor

At least the second order bug: https://dart-review.googlesource.com/c/sdk/+/82460

@leafpetersen
Copy link
Member

  List _fromRequest(List encodedList) {
-    return encodedList.map(_itemsProperty._fromRequest).toList();
+    List result = encodedList.map(_itemsProperty._fromRequest).toList();
+    if (result.every((dynamic value) => value is Map)) {
+      return new List<Map>.from(result);
+    } else if (result.every((dynamic value) => value is List)) {
+      return new List<List>.from(result);
+    } else if (result.every((dynamic value) => value is String)) {
+      return new List<String>.from(result);
+    }
+    return result;
   }
 }

I suspect this is a bandaid around some other issue (possibly a change in other APIs?). I looked at the RPC code, and the semantics of the pre-patch code is definitely not the same as the semantics of the post-patch code, unless encodedList is an instance of your own list class that is doing something special in .map to set the reified type. But if encodedList is a standard list (or something with standard list type semantics), the result of the .map call will be a List<dynamic> in the original code.

dart-bot pushed a commit that referenced this issue Nov 1, 2018
Bug: #35009
Change-Id: I6b509e1eb8e76e07f60a086c67358d65d2a1fae4
Reviewed-on: https://dart-review.googlesource.com/c/82460
Reviewed-by: Vyacheslav Egorov <vegorov@google.com>
Reviewed-by: Martin Kustermann <kustermann@google.com>
Reviewed-by: Siva Annamalai <asiva@google.com>
Commit-Queue: Ryan Macnak <rmacnak@google.com>
@jcollins-g
Copy link
Contributor Author

@leafpetersen Yes, that patch is completely a band-aid around something else going on. Exactly what is going on is hard to tell due to the VM crashes when I am poking around in the debugger; maybe a651838 will fix that. @rmacnak-google Can you have that merged to stable for 2.1? The debugger crashed an awful lot with this problem.

It's still a blocker that types aren't coming out of those methods like they used to in 7.1, it's just the problems with the debugger made me resort to strange contortions like that patch and printf to read the tea leaves as to what changed. Will take a look when I'm feeling better (out sick today), or if someone else would like to try I would appreciate the support.

@mit-mit
Copy link
Member

mit-mit commented Nov 5, 2018

cc @rmacnak-google @a-siva any news about this one? This sounds like an unwanted breaking change?

@kmillikin
Copy link

It bisects to this CL: https://dart-review.googlesource.com/c/sdk/+/79081

@a-siva
Copy link
Contributor

a-siva commented Nov 6, 2018

The change listed above introduces strong mode semantics when dart:mirrors API is used. Does the rpc package use dart:mirrors?

@a-siva
Copy link
Contributor

a-siva commented Nov 6, 2018

/cc @bkonyi

@bkonyi
Copy link
Contributor

bkonyi commented Nov 6, 2018

It looks like in invokeWithBody in config/method.dart an exception is being thrown. Here's the exception for the api-invoke-post reverse-list test:

invocation(symbol: Symbol("reverseListPost"), pos: [[1, 2, 3]], named: {})
CAUGHT: type 'List<dynamic>' is not a subtype of type 'List<String>' of 'request'

As you can see, the positional arguments don't match the type of reverseListPost. This was valid before since we weren't correctly performing type checks for invocations make using mirrors, which was fixed in the CL @kmillikin found during his bisect.

@jcollins-g
Copy link
Contributor Author

@a-siva Yes, the RPC package makes extensive use of mirrors.

@jcollins-g
Copy link
Contributor Author

@bkonyi That makes sense. I'm kind of surprised we're the only one bumping into this, but it might just be a quirk of how the package is implemented. Given that the debugger is fixed at head, I should have a shot at working out a solution if one is possible without extensive client modifications. I'll work on that ASAP.

@jcollins-g
Copy link
Contributor Author

jcollins-g commented Nov 6, 2018

Now that I have the debugger (thanks!) I'm understanding a lot more how we get into the situation that @bkonyi refers to in the rpc package. At a high level, the rpc package is doing some tasks similar to the protocol buffer compiler. Except where the protocol buffer compiler uses generated source code files, rpc is using mirrors and class metadata. This runs into limitations in a world of strong-mode mirrors.

One example of the dilemma:

https://github.com/dart-lang/rpc/blob/5ad1009b1c4ec5771cef7c67de74ee43328e164a/lib/src/parser.dart#L1013

What we really need to do is be able to pass an appropriate type parameter to the ListProperty constructor (so we eventually get List<String> instead of List<dynamic>), but we can't vivify a type parameter to pass from the mirror because we can't handle types in the same way as other objects in Dart. This all worked before precisely because there were no strong mode checks in mirrors.

I'm pretty sure we're toast in the general case unless we do one of the following:

  1. Stop using mirrors in a way that results in us constructing objects that are supposed to be compatible with the mirrored types. (That would break the rpc package for many non-trivial and some trivial use cases.) I believe I could hack up DartPad and/or rpc to make that combination work for 2.1, but any other non-trivial users will be forced to migrate.
  2. We revert SDK CL https://dart-review.googlesource.com/c/sdk/+/79081 and maybe try again to make this breaking change in 2.2 -- might be viable if the rpc package really is the only one that cares and we successfully turn it down by then.
  3. We extend the language and/or the mirrors library to make it possible to vivify working type parameters from mirrors. This doesn't seem to be the direction Dart is headed, but would technically work.

If I'm right here it's my opinion #2 is safest, and we can have more time to get clients off the rpc package. If I understand right @mit-mit is planning to turn it down soon.

@leafpetersen
Copy link
Member

A couple of comments:

  • Would this really require language changes? Mirrors is already outside of the language, what stops it from just supporting this use case? It's not clear to me why instantiating a class reflectively is supportable but instantiating a generic class reflectively is not, but then I don't know much about mirrors.
  • There is some limited support for this in the language now for Map and List if you have an existing instance, but it's an experimental stopgap measure and not really encouraged: https://pub.dartlang.org/packages/dart_internal
  • We have considered adding language based support for functionality like dart_internal, and could move it up the priority queue, but that would still be a ways out, and again, it really would require an instance to work from (which it's not clear to me that you have here).

@jcollins-g
Copy link
Contributor Author

@leafpetersen I'm not aware of anything preventing it from being incorporated in the mirrors library, as long as we could pass some parameters to an API and have it instantiate a user-defined class with the type parameters from a mirror. I hedged there only due to lack of knowledge.

Unfortunately we're not starting from an existing instance, so I don't think dart_internal based options will work.

@a-siva
Copy link
Contributor

a-siva commented Nov 6, 2018

The general idea was that 'dart:mirrors' would be supported to the extent it was used in google3 for the testing infrastructure. Flutter itself does not use 'dart:mirrors'. Somebody pointed out that invocations using mirrors was not doing the correct type checks and that was fixed recently.
Enhancing 'dart:mirrors' to enable all potential use scenarios would be a larger project and I am not sure it is the right investment of our time.

@jcollins-g
Copy link
Contributor Author

jcollins-g commented Nov 6, 2018

@a-siva Seems reasonable. I doubted that extending dart:mirrors would be the path we'd take.

I do still think that reverting the breaking change and making that a change for 2.2 to give clients time to migrate is the best option here.

dart-bot pushed a commit that referenced this issue Nov 7, 2018
…irrors behaviour that is not valid for Dart 2, so these type checks cause the package to crash.

Revert "[ VM / Mirrors ] Added type checking to enforce strong mode semantics when using dart:mirrors"

This reverts commit 9f00eec.

Change-Id: I82ce07d388ba9402f20caf700815b39c9bc418f6
Reviewed-on: https://dart-review.googlesource.com/c/83225
Reviewed-by: Ben Konyi <bkonyi@google.com>
Reviewed-by: Siva Annamalai <asiva@google.com>
Commit-Queue: Ben Konyi <bkonyi@google.com>
dart-bot pushed a commit that referenced this issue Nov 7, 2018
…emantics when using dart:mirrors"

Was reverted to temporarily fix issue #35009 for 2.1.

This reverts commit 65ffd0f7190f04dd0a8f94b7941e1ab706b0b084.

Change-Id: I71fe094b24f882cd942634557c9c43af06058842
Reviewed-on: https://dart-review.googlesource.com/c/83226
Reviewed-by: Siva Annamalai <asiva@google.com>
@athomas
Copy link
Member

athomas commented Nov 7, 2018

This is a blocker for the first 2.2 dev release. The revert was cherry-picked into the 2.1 release branch but the change was then re-landed on master. The re-land wasn't cherry-picked into 2.1, so 2.1 is fine as far as this issue is concerned.

@a-siva
Copy link
Contributor

a-siva commented Nov 7, 2018

Yes that was the intent, we want this issue resolved before the next release as not doing type checks is not a good option.

@a-siva
Copy link
Contributor

a-siva commented Nov 7, 2018

Assigning issue to mit to figure out how we want to proceed on this

  • deprecate use of this rpc package
  • rework this package to stop using 'dart:mirrors'
  • enhance 'dart:mirrors' to support this use case

@jcollins-g
Copy link
Contributor Author

@rmacnak-google You've given me some ideas for new exploration... I didn't connect that I could use reflectees on the list of TypeMirrors to create a ClassMirror and then call newInstance on it until I saw your example -- that could conceivably be enough to patch this up. I'll get back to you on that, but in the meantime I'm glad the behavior has been reverted to buy some time.

In the meantime, here is an example of more debugger crashiness while exploring mirrors (SDK at head yesterday, before the revert of the type checking). Modified parseListProperty to be the following, with a breakpoint on the return and I tried to have the debugger evaluate the expression at that line.

  ListProperty parseListProperty(String propertyName, ApiProperty metadata,
      ClassMirror listPropertyType, bool isRequest) {
    // If List<T> is a superclass, the way to get T is different.
    var listTypeArguments;
    if (listPropertyType.originalDeclaration != reflectClass(List)) {
      listTypeArguments = listPropertyType.superinterfaces
          .firstWhere((interface) =>
              interface.originalDeclaration == reflectClass(List))
          .typeArguments;
    } else {
      listTypeArguments = listPropertyType.typeArguments;
    }
    assert(listTypeArguments.length == 1);
    assert(metadata != null);
    var listTypeName = MirrorSystem.getName(listTypeArguments[0].simpleName);
    _checkValidFields(propertyName, 'List<$listTypeName>', metadata, []);
    // TODO: Figure out what to do about metadata for the items property.
    var listItemsProperty = parseProperty(
        listTypeArguments[0], propertyName, new ApiProperty(), isRequest);

    ClassMirror listProperty = reflectType(ListProperty, listTypeArguments.map<Type>((TypeMirror f) => f.reflectedType).toList());
    return listProperty.newInstance(const Symbol(''), [propertyName, metadata.description, metadata.required, listItemsProperty]).reflectee;
    //return new ListProperty(propertyName, metadata.description,
    //    metadata.required, listItemsProperty);
  }
Testing started at 9:53 AM ...
/usr/local/google/home/jcollins/dart/all_sdks/current/bin/dart --pause_isolates_on_start --enable-vm-service:39605 /usr/local/google/home/jcollins/dart/all_sdks/current/bin/snapshots/pub.dart.snapshot run test -r json /usr/local/google/home/jcollins/dart/rpc/test/api_config_test.dart -N request-parsing
Observatory listening on http://127.0.0.1:39605/

===== CRASH =====
version=2.1.0-edge.e58560548881093042a59faba2e074af44d63f11 (Tue Nov 6 17:43:40 2018 +0000) on "linux_x64"
si_signo=Segmentation fault(11), si_code=2, si_addr=0x7f7ea0ec0041
Dumping native stack trace for thread 3a8b7
  [0x00007f7ea0ec0041] Unknown symbol
  [0x00007f7ea0ec0041] Unknown symbol
  [0x000055c8f9fab955] dart::DartEntry::InvokeFunction(dart::Function const&, dart::Array const&, dart::Array const&, unsigned long)
  [0x000055c8fa236e1f] dart::kernel::ConstantEvaluator::RunFunction(dart::TokenPosition, dart::Function const&, dart::Array const&, dart::Array const&)
  [0x000055c8fa236cc6] dart::kernel::ConstantEvaluator::RunFunction(dart::TokenPosition, dart::Function const&, long, dart::Instance const*, dart::TypeArguments const*)
  [0x000055c8fa2335a0] dart::kernel::ConstantEvaluator::EvaluateStaticInvocation()
  [0x000055c8fa23624c] dart::kernel::ConstantEvaluator::EvaluateStaticInvocation(long, bool)
  [0x000055c8fa248826] dart::kernel::StreamingFlowGraphBuilder::BuildStaticInvocation(bool, dart::TokenPosition*)
  [0x000055c8fa23b38e] dart::kernel::StreamingFlowGraphBuilder::BuildExpression(dart::TokenPosition*)
  [0x000055c8fa25133a] dart::kernel::StreamingFlowGraphBuilder::BuildArgumentsFromActualArguments(dart::Array*, bool, bool)
  [0x000055c8fa2472d7] dart::kernel::StreamingFlowGraphBuilder::BuildMethodInvocation(dart::TokenPosition*)
  [0x000055c8fa23b36c] dart::kernel::StreamingFlowGraphBuilder::BuildExpression(dart::TokenPosition*)
  [0x000055c8fa2447c3] dart::kernel::StreamingFlowGraphBuilder::BuildPropertyGet(dart::TokenPosition*)
  [0x000055c8fa23b0fd] dart::kernel::StreamingFlowGraphBuilder::BuildExpression(dart::TokenPosition*)
  [0x000055c8fa24e8b0] dart::kernel::StreamingFlowGraphBuilder::BuildReturnStatement()
  [0x000055c8fa23d39e] dart::kernel::StreamingFlowGraphBuilder::BuildStatement()
  [0x000055c8fa242c03] dart::kernel::StreamingFlowGraphBuilder::BuildFunctionBody(dart::Function const&, dart::LocalVariable*, bool)
  [0x000055c8fa243902] dart::kernel::StreamingFlowGraphBuilder::BuildGraphOfFunction(bool)
  [0x000055c8fa244107] dart::kernel::StreamingFlowGraphBuilder::BuildGraph()
  [0x000055c8fa259149] dart::kernel::FlowGraphBuilder::BuildGraph()
  [0x000055c8fa28ca3a] dart::DartCompilationPipeline::BuildFlowGraph(dart::Zone*, dart::ParsedFunction*, dart::ZoneGrowableArray<dart::ICData const*>*, long, bool)
  [0x000055c8fa28f7e1] dart::CompileParsedFunctionHelper::Compile(dart::CompilationPipeline*)
  [0x000055c8fa290820] Unknown symbol
  [0x000055c8fa290198] dart::Compiler::CompileFunction(dart::Thread*, dart::Function const&)
  [0x000055c8f9fab79d] dart::DartEntry::InvokeFunction(dart::Function const&, dart::Array const&, dart::Array const&, unsigned long)
  [0x000055c8fa03cd0d] Unknown symbol
  [0x000055c8f9fb8161] dart::ActivationFrame::EvaluateCompiledExpression(unsigned char const*, long, dart::Array const&, dart::Array const&, dart::TypeArguments const&)
  [0x000055c8fa131013] Unknown symbol
  [0x000055c8fa126be8] dart::Service::InvokeMethod(dart::Isolate*, dart::Array const&, bool)
  [0x000055c8fa127375] dart::Service::HandleIsolateMessage(dart::Isolate*, dart::Array const&)
  [0x000055c8f9fe01e3] dart::IsolateMessageHandler::HandleMessage(dart::Message*)
  [0x000055c8fa011efe] dart::MessageHandler::HandleMessages(dart::MonitorLocker*, bool, bool)
  [0x000055c8fa012157] dart::MessageHandler::HandleOOBMessages()
  [0x000055c8fa2ca84a] Dart_HandleServiceMessages
  [0x000055c8f9fe79f0] dart::Isolate::PauseEventHandler()
  [0x000055c8f9fb281b] dart::Debugger::Pause(dart::ServiceEvent*)
  [0x000055c8f9fc105a] dart::Debugger::PauseBreakpoint()
  [0x000055c8fa111910] dart::DRT_BreakpointRuntimeHandler(dart::NativeArguments)
  [0x00007f7ea0e40f02] Unknown symbol
  [0x00007f7ea0e41e41] Unknown symbol
  [0x00007f7e8ebf25ce] Unknown symbol
  [0x00007f7e8ebe9596] Unknown symbol
  [0x00007f7e8ebe6230] Unknown symbol
  [0x00007f7e8ebe5a9c] Unknown symbol
  [0x00007f7e8ebe5584] Unknown symbol
  [0x00007f7e8ebd959a] Unknown symbol
  [0x00007f7e8ebd3cb6] Unknown symbol
  [0x00007f7e9437f4b6] Unknown symbol
  [0x00007f7e8ebcfe79] Unknown symbol
  [0x00007f7e87af317f] Unknown symbol
  [0x00007f7e87af3062] Unknown symbol
  [0x00007f7e943498b9] Unknown symbol
  [0x00007f7e8ebd1eb8] Unknown symbol
  [0x00007f7e9437f4b6] Unknown symbol
  [0x00007f7e8ebc994b] Unknown symbol
  [0x00007f7e8ebd1cfe] Unknown symbol
  [0x00007f7e87aebaa8] Unknown symbol
  [0x00007f7e87aeb895] Unknown symbol
  [0x00007f7e87aeb1b6] Unknown symbol
  [0x00007f7e87af2c66] Unknown symbol
  [0x00007f7e87af28a5] Unknown symbol
  [0x00007f7e87af1979] Unknown symbol
  [0x00007f7e8732d5ac] Unknown symbol
  [0x00007f7e8732cbe5] Unknown symbol
  [0x00007f7e8732c527] Unknown symbol
  [0x00007f7e8732c0c7] Unknown symbol
  [0x00007f7e8ebd0c2d] Unknown symbol
  [0x00007f7e87af317f] Unknown symbol
  [0x00007f7e87af3062] Unknown symbol
  [0x00007f7e943498b9] Unknown symbol
  [0x00007f7e8ebd1eb8] Unknown symbol
  [0x00007f7e9437f4b6] Unknown symbol
  [0x00007f7e8ebc994b] Unknown symbol
  [0x00007f7e8ebd1cfe] Unknown symbol
  [0x00007f7e87aebaa8] Unknown symbol
  [0x00007f7e87aeb895] Unknown symbol
  [0x00007f7e87aeb1b6] Unknown symbol
  [0x00007f7e87af2c66] Unknown symbol
  [0x00007f7e87af28a5] Unknown symbol
  [0x00007f7e87af1979] Unknown symbol
  [0x00007f7e876d0f80] Unknown symbol
  [0x00007f7e9437f4b6] Unknown symbol
  [0x00007f7e8ebc994b] Unknown symbol
  [0x00007f7e8ebc973e] Unknown symbol
  [0x00007f7e87ace07f] Unknown symbol
  [0x00007f7e87acddff] Unknown symbol
  [0x00007f7e87acd453] Unknown symbol
  [0x00007f7e87af01ff] Unknown symbol
  [0x00007f7e87af00c0] Unknown symbol
  [0x00007f7e87ae5589] Unknown symbol
  [0x00007f7e87ae513f] Unknown symbol
  [0x00007f7e87ae5017] Unknown symbol
  [0x00007f7e8ebc87e7] Unknown symbol
  [0x00007f7e8ebc6bb8] Unknown symbol
  [0x00007f7e8ebc679a] Unknown symbol
  [0x00007f7e943498b9] Unknown symbol
  [0x00007f7e9436b250] Unknown symbol
  [0x00007f7ea0e41363] Unknown symbol
  [0x000055c8f9fab955] dart::DartEntry::InvokeFunction(dart::Function const&, dart::Array const&, dart::Array const&, unsigned long)
  [0x000055c8f9faedb0] dart::DartLibraryCalls::HandleMessage(dart::Object const&, dart::Instance const&)
  [0x000055c8f9fdfffb] dart::IsolateMessageHandler::HandleMessage(dart::Message*)
  [0x000055c8fa011e2a] dart::MessageHandler::HandleMessages(dart::MonitorLocker*, bool, bool)
  [0x000055c8fa0125bc] dart::MessageHandler::TaskCallback()
  [0x000055c8fa15f10d] dart::ThreadPool::Worker::Loop()
  [0x000055c8fa15efa4] dart::ThreadPool::Worker::Main(unsigned long)
  [0x000055c8fa0ba6f9] Unknown symbol
-- End of DumpStackTrace

Process finished with exit code 134 (interrupted by signal 6: SIGABRT)

@a-siva
Copy link
Contributor

a-siva commented Nov 7, 2018

@jcollins-g I am going to open a new issue for the debugger exception that you saw so we can track that separately from the above 'dart:mirrors' issue.

@jcollins-g
Copy link
Contributor Author

Update: it now looks possible to convert the rpc package. I've completed an ugly proof-of-concept conversion (only for the List type), here: https://github.com/dart-lang/rpc/compare/experimental-mirrors-refactor. It won't be a quick fix, but there's enough support in the mirrors library to make it happen.

a-siva added a commit to a-siva/engine that referenced this issue Nov 7, 2018
This hash corresponds to 2.10-dev.9.2

Changes in this roll include:
- Fix for flutter/flutter#23879 (Revert
"[vm/compiler] Fine tune operator and phi handling.)
- Fix for Dart issue dart-lang/sdk#35009
- Recover from default values in function types
- [vm, reload] On the path for no shape changes, defer freeing the old
- [vm] Fix misc printf format bugs.
- [VM] Added cleanup for Dart IO API
a-siva added a commit to flutter/engine that referenced this issue Nov 8, 2018
This hash corresponds to 2.10-dev.9.2

Changes in this roll include:
- Fix for flutter/flutter#23879 (Revert
"[vm/compiler] Fine tune operator and phi handling.)
- Fix for Dart issue dart-lang/sdk#35009
- Recover from default values in function types
- [vm, reload] On the path for no shape changes, defer freeing the old
- [vm] Fix misc printf format bugs.
- [VM] Added cleanup for Dart IO API
@mit-mit
Copy link
Member

mit-mit commented Nov 14, 2018

@jcollins-g any news on the rpc package?

@mit-mit mit-mit assigned jcollins-g and unassigned mit-mit Nov 14, 2018
@jcollins-g
Copy link
Contributor Author

@mit-mit I think it's possible to close this out now for 2.1. The rpc package will be broken for 2.2 but there's a pathway out via a large-scale refactor (probably a week or so of intense hacking + testing time).

@mit-mit
Copy link
Member

mit-mit commented Nov 14, 2018

Is there a second bug tracking fixing it in 2.2? I though the present bug was tracking that now...

@jcollins-g
Copy link
Contributor Author

dart-archive/rpc#133 is now tracking the issue for the rpc package (and I just updated it with the latest status), but if you prefer it to be tracked here as well we can repurpose this. It probably should be out of area-vm, assuming we're satisfied with requiring the rpc package to be changed for 2.2.

@mit-mit mit-mit changed the title type problem apparently introduced by 2.1.0-dev.8.0 with debugger/vm crash dart:mirrors changes broke package rpc Nov 14, 2018
@mit-mit mit-mit added area-core-library SDK core library issues (core, async, ...); use area-vm or area-web for platform specific libraries. and removed area-vm Use area-vm for VM related issues, including code coverage, and the AOT and JIT backends. labels Nov 14, 2018
@Pareshoct7
Copy link

Still issue is not resolved I tried with dev channel also.

here is the error:

Steps to Reproduce

flutter build ios --release

Logs

Running pod install...                                      22.6s
Starting Xcode build...                                          
 ├─Building Dart code...                             11.3s                                                                                                                                                                                                           
Xcode build done.                                           21.0s
Failed to build iOS app
Error output from Xcode build:
↳
    ** BUILD FAILED **


Xcode's output:
↳
    === BUILD TARGET Runner OF PROJECT Runner WITH CONFIGURATION Release ===
    The use of Swift 3 @objc inference in Swift 4 mode is deprecated. Please address deprecated @objc inference warnings, test your code with “Use of deprecated Swift 3 @objc inference” logging enabled, and then disable inference by changing the "Swift 3 @objc
    Inference" build setting to "Default" for the "Runner" target.
    The use of Swift 3 @objc inference in Swift 4 mode is deprecated. Please address deprecated @objc inference warnings, test your code with “Use of deprecated Swift 3 @objc inference” logging enabled, and then disable inference by changing the "Swift 3 @objc
    Inference" build setting to "Default" for the "Runner" target.
    === BUILD TARGET Runner OF PROJECT Runner WITH CONFIGURATION Release ===
    Building AOT snapshot in release mode (ios-release)...          

    Compiler message:
    lib/screens/ProfileViewScreen.dart:1:8: Error: Can't access platform private library.
    import 'dart:_http';
           ^
    lib/screens/swipe/cards_section_draggable.dart:1:8: Error: Can't access platform private library.
    import 'dart:_http';
           ^
    Compiler terminated unexpectedly.
    Failed to build /Users/pareshpatil/workspace/kaledate/mobile.

Encountered error while building for device. 

flutter doctor -v

[✓] Flutter (Channel dev, v0.11.9, on Mac OS X 10.13.6 17G65, locale en-IN)
    • Flutter version 0.11.9 at /Users/pareshpatil/sdk/flutter
    • Framework revision d48e6e433c (2 days ago), 2018-11-20 22:05:23 -0500
    • Engine revision 5c8147450d
    • Dart version 2.1.0 (build 2.1.0-dev.9.4 f9ebf21297)

[✓] Android toolchain - develop for Android devices (Android SDK 28.0.3)
    • Android SDK at /Users/pareshpatil/Library/Android/sdk
    • Android NDK location not configured (optional; useful for native profiling support)
    • Platform android-28, build-tools 28.0.3
    • Java binary at: /Applications/Android Studio.app/Contents/jre/jdk/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 1.8.0_152-release-1136-b06)
    • All Android licenses accepted.

[✓] iOS toolchain - develop for iOS devices (Xcode 10.1)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Xcode 10.1, Build version 10B61
    • ios-deploy 2.0.0
    • CocoaPods version 1.5.3

[✓] Android Studio (version 3.2)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin version 29.1.1
    • Dart plugin version 181.5656
    • Java version OpenJDK Runtime Environment (build 1.8.0_152-release-1136-b06)

[✓] IntelliJ IDEA Community Edition (version 2018.2.6)
    • IntelliJ at /Applications/IntelliJ IDEA CE.app
    • Flutter plugin version 30.0.2
    • Dart plugin version 182.5124

[✓] Connected device (1 available)
    • iPhone XR • 21381D8F-7EEA-4E74-91AE-1302FC4615D2 • ios • iOS 12.1 (simulator)

• No issues found!

@mraleph
Copy link
Member

mraleph commented Nov 23, 2018

@Pareshoct7 your issue has no connection to this bug.

matthew-carroll added a commit to flutter/engine that referenced this issue Dec 5, 2018
* TextField is only a live region when it has input focus (#6649)

* Roll src/third_party/skia dfca8f6adb6b..a2272ef92640 (4 commits) (#6659)


https://skia.googlesource.com/skia.git/+log/dfca8f6adb6b..a2272ef92640


Created with:
  gclient setdep -r src/third_party/skia@a2272ef92640

The AutoRoll server is located here: https://autoroll.skia.org/r/skia-flutter-autoroll

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+/master/autoroll/README.md

If the roll is causing failures, please contact the current sheriff, who should
be CC'd on the roll, and stop the roller if necessary.

* Dart SDK roll for 2018-10-25

bf26f760b1 [infra] Ensure that core dump upload triggers on main builders
cdf6dde807 [gardening] bigint_test may still time out when interpreted (2nd try).
d3498a81be [vm] Cleanup int overflow checking
9e9746a83c [gardening] bigint_test may still time out when interpreted.
7de2510339 [VM interpreter] Do not interpret some Bigint intrinsics (fixes #34901).
816ab3208c Fix versions in spec titles to match the description below
c7c81af74e [vm/bytecode] Check for overflow of bytecode limits
655310ddf2 Add ArgumentError.checkNotNull utility
0170b8d529 Revert "[vm/compiler] Use loop framework for AOT inline heuristics"
9aff930924 Move test_methodCallTypeInference_mixinType into mixin_test.dart
3e750a7e79 [vm] Add test for certain cases of unreachable code
daae20d32e [vm/compiler] Use loop framework for AOT inline heuristics
28a8fa50f6 Upgrade package:http to 0.12.0.
b3055a1482 [gardening] Mark co19 LibTest/io/RawDatagramSocket/any_A01_t03 flaky
b8fd29e0bb Remove dartfix dependencies on analysis server
8a5405fc40 [build] Add //third_party/android_tools BUILD file needed by zlib
82c1f2aaa8 [vm] Eliminate dart_zlib_path from BUILD files
11ad25a1c3 Reland "[VM runtime] Support Smi instances in type test cache."
3dc911909b Generate analysis_server_client protocol_generated.dart and related protocol files
a902fc351f [gardening] Mark co19 LibTest/io/Stdin/readByteSync_A02_t01 flaky
cfecec5eec Fix yet another cloning bug
d8cb60d746 [infra] Improve clone command in analyze-flutter.sh script (#34739)
34d0801008 Generate analysis server protocol consts in analysis_server_client
2c83eb550e [vm] Integrate dart binary with Crashpad on Windows.
b9999b6c27 [gardening] Mark co19 LibTest/io/RawDatagramSocket/lastWhere_A01_t02 flaky
0b15595913 [gardening] Mark co19 LibTest/io/Link/rename_A02_t01 flaky
57f895c7a4 Bounds of a generic type alias ensure the body is regular-bounded
6efc58f069 [vm] Pass member name as a symbol in instantiateInvocation.
cf0a99a89b [fasta] Check type arguments in method invocations while doing inference
d693742648 Specify for all literals whether the object overrides `Object.==`.
5c9060283b Change parameter 'silent' => 'instrumented'
e4e82da85d Changed dartLangSpec errors to warnings
4695b5f138 Add "convert to int literal" to dartfix
0009ca7b1b In _matchInterfaceSubtypeOf, account for mixins having null superclass.
1d10e037ef [vm/bytecode] Remove unreachable bytecode
03eafc0b2e Add fromEntries on HashMap and LinkedHashMap
4f2a4e69a8 new convert-to-int-literal assist
58d73e08f4 [vm] Remove incorrect assert in Script::GetSnippet
6134ac8648 Revert "[VM runtime] Support Smi instances in type test cache."
4e49d19bd6 [gardening] Update status for #34901
6ba3e55ecc [VM runtime] Support Smi instances in type test cache.
e4566d3dbd LSP: Fix nulls and missing fromJson calls in unions
d91e0ad3d7 [VM] Make method extractors call a stub for creation of tear-off closure
4c9684f735 [vm] Ignore compilation errors in CorelibCompileAll
b73f7ed3d4 [infra] Add tools/bots/find_base_commit.dart
6443a8036d Remove flaky markers for standalone_2/io tests, MacOS upgrade seemed to have getten rid underlying OS issue
c04215d5f6 [fasta] Add a test case for issue #34899
03765ed6ec Update old mixin tests. Remove the --super-mixins flag from the tests.
a394e4f492 Fix handling of JSON with interfaces nested within Unions
2f90f8d0ef Issue 34896. Verify the superconstraint signature invoked by a mixin, not the mixin's one.
b82c1f979f Revert "[VM] Fix for issue 34839 - Dart_Cleanup may hang while shutting down"
289d2b003a [vm] Don't re-enqueue functions after unoptimized compiles
33accb510b [VM] : Cleanup the file modified and service stream callbacks in        Dart_Cleanup so that the Flutter engine can restart the VM.
89c845eba2 [VM] Fix for issue 34839 - Dart_Cleanup may hang while shutting down      the service isolate.
e648d63bed Revert "Compute unlinked API signatures without unlinked summaries."
74792f4b9c Revert "[vm] Revert service isolate setup in main.cc"
b4fbf1a065 [vm/bytecode] Wire up bytecode generation in kernel service
914065d80b [vm/compiler] Use loop framework for register allocator
7fd78ed5b6 [infra] Add analyzer branch alias for flutter-analyze builder (#34739)
9406b7b44e [vm/bytecode] Add versioning to bytecode format
a82e025739 Move dartfix to its own package
872e90106e Set to publish new analyzer_plugin.
2d14d9a313 Improve how dartfix finds the analysis server pkg root
a342cecffd Disable support for the old super mixins
cddc2d42e1 Handle generic types in LSP spec parsing
8b6f8969a6 Support post-inference serialization/deserialization
9c3834d41c Remove unused import that shows a warning
a1d61371d3 Exposes VM and Isolate Metrics in the API.
2c6eabd3c4 Compute substitution map on kernel objects instead of builders
704a43558d Move getSubstitutionMap to KernelClassBuilder
af8e29142b Respecify where type promotion happens.
393fe44f8f Resolve types from the class header earlier
1515d4fe34 [Gardening] Mark LibTest/io/RawDatagramSocket/timeout_A06_t01 as flaky
11adb81a77 Remove the last references to the analyzer package from kernel.
02651515eb Fix identifyWidgetExpression() for Flutter.
f5cd6ccfb7 More shared fasta/analyzer error codes
cecda9043b Update analyzer docs based on previous feedback
ab6eb9332f [VM] Fix flaky crash when unwinding the mutator stack during GC

* Update contributing.md for xcode_backend refactor notes (#6642)

* Update contributing.md for xcode_backend refactor notes

* Roll src/third_party/skia a2272ef92640..2cf29ce4dbbf (8 commits) (#6661)


https://skia.googlesource.com/skia.git/+log/a2272ef92640..2cf29ce4dbbf


Created with:
  gclient setdep -r src/third_party/skia@2cf29ce4dbbf

The AutoRoll server is located here: https://autoroll.skia.org/r/skia-flutter-autoroll

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+/master/autoroll/README.md

If the roll is causing failures, please contact the current sheriff, who should
be CC'd on the roll, and stop the roller if necessary.

* Roll src/third_party/skia 2cf29ce4dbbf..f5eaee917bb7 (4 commits) (#6664)


https://skia.googlesource.com/skia.git/+log/2cf29ce4dbbf..f5eaee917bb7


Created with:
  gclient setdep -r src/third_party/skia@f5eaee917bb7

The AutoRoll server is located here: https://autoroll.skia.org/r/skia-flutter-autoroll

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+/master/autoroll/README.md

If the roll is causing failures, please contact the current sheriff, who should
be CC'd on the roll, and stop the roller if necessary.

* Roll src/third_party/skia f5eaee917bb7..3f5b4ee4adfd (1 commits) (#6666)


https://skia.googlesource.com/skia.git/+log/f5eaee917bb7..3f5b4ee4adfd


Created with:
  gclient setdep -r src/third_party/skia@3f5b4ee4adfd

The AutoRoll server is located here: https://autoroll.skia.org/r/skia-flutter-autoroll

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+/master/autoroll/README.md

If the roll is causing failures, please contact the current sheriff, who should
be CC'd on the roll, and stop the roller if necessary.

* Roll src/third_party/skia 3f5b4ee4adfd..603c5da17491 (1 commits) (#6667)


https://skia.googlesource.com/skia.git/+log/3f5b4ee4adfd..603c5da17491


Created with:
  gclient setdep -r src/third_party/skia@603c5da17491

The AutoRoll server is located here: https://autoroll.skia.org/r/skia-flutter-autoroll

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+/master/autoroll/README.md

If the roll is causing failures, please contact the current sheriff, who should
be CC'd on the roll, and stop the roller if necessary.

* Roll src/third_party/skia 603c5da17491..e2fd74b48f6f (1 commits) (#6668)


https://skia.googlesource.com/skia.git/+log/603c5da17491..e2fd74b48f6f


Created with:
  gclient setdep -r src/third_party/skia@e2fd74b48f6f

The AutoRoll server is located here: https://autoroll.skia.org/r/skia-flutter-autoroll

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+/master/autoroll/README.md

If the roll is causing failures, please contact the current sheriff, who should
be CC'd on the roll, and stop the roller if necessary.

* Roll src/third_party/skia e2fd74b48f6f..a944142412cd (9 commits) (#6669)


https://skia.googlesource.com/skia.git/+log/e2fd74b48f6f..a944142412cd


Created with:
  gclient setdep -r src/third_party/skia@a944142412cd

The AutoRoll server is located here: https://autoroll.skia.org/r/skia-flutter-autoroll

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+/master/autoroll/README.md

If the roll is causing failures, please contact the current sheriff, who should
be CC'd on the roll, and stop the roller if necessary.

* Propagate pointer size from Android MotionEvent (#6662)

* Add missing includes (#6670)

* Roll src/third_party/skia a944142412cd..3b79aa3a5ad0 (15 commits) (#6671)


https://skia.googlesource.com/skia.git/+log/a944142412cd..3b79aa3a5ad0


Created with:
  gclient setdep -r src/third_party/skia@3b79aa3a5ad0

The AutoRoll server is located here: https://autoroll.skia.org/r/skia-flutter-autoroll

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+/master/autoroll/README.md

If the roll is causing failures, please contact the current sheriff, who should
be CC'd on the roll, and stop the roller if necessary.

* iOS Embedding Refactor (#6447)

* Create FlutterEngine to manage a Shell to support maintaining execution state across instances of FlutterViewControllers
* Refactor PlatformViewIOS to support adding or removing a FlutterViewController dynamically
* Refactor FlutterDartHeadlessCodeRunner to implement FlutterEngine
* Refactor FlutterViewController to accept a FlutterEngine at initialization or to create one for backwards compatibility; any Shell related responsibilities are now passed through to the Engine instance
* Remove FlutterNavigationController (unused)
* Update all public Objective C doc comments to be consistent and formatable
* Add public documentation to all public headers

* Plumb the iOS PlatformViewsController into flow. (#6603)

For flow to manipulate the embedded UIViews during the paint traversal
it needs some hook in PaintContext.
This PR introduces a ViewEmbeder interface that is implemented by the
iOS PlatformViewsController and plumbs it into PaintContext.

The ViewEmbedder interface is mainly a place holder at this point, as
this PR is focused on just the plumbing.

* Attach and position embedded UIVIews (#6614)

* Update FlutterPlugin.h docs, suppress warning for older API (#6672)

* Update FlutterPlugin.h docs, suppress warning for older API

* Undefine ERROR in platform_view_layer.cc (#6675)

On Windows the ERROR macro is defined by some headers which breaks the
FML_LOG(ERROR).

* Roll buildroot to pick up updates to custom toolchains. (#6674)

* Handle Windows headers defining ERROR to 0 in log levels. (#6677)

* Roll buildroot to pick up Mac toolchain updates. (#6678)

* Roll src/third_party/skia 3b79aa3a5ad0..b53f1f46982d (13 commits) (#6679)


https://skia.googlesource.com/skia.git/+log/3b79aa3a5ad0..b53f1f46982d


Created with:
  gclient setdep -r src/third_party/skia@b53f1f46982d

The AutoRoll server is located here: https://autoroll.skia.org/r/skia-flutter-autoroll

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+/master/autoroll/README.md

If the roll is causing failures, please contact the current sheriff, who should
be CC'd on the roll, and stop the roller if necessary.

* Fix inconsistent include syntax (#6680)

* Roll src/third_party/skia b53f1f46982d..38e4fd0c5654 (1 commits) (#6681)


https://skia.googlesource.com/skia.git/+log/b53f1f46982d..38e4fd0c5654


Created with:
  gclient setdep -r src/third_party/skia@38e4fd0c5654

The AutoRoll server is located here: https://autoroll.skia.org/r/skia-flutter-autoroll

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+/master/autoroll/README.md

If the roll is causing failures, please contact the current sheriff, who should
be CC'd on the roll, and stop the roller if necessary.

* Roll src/third_party/skia 38e4fd0c5654..79c96811863f (1 commits) (#6682)


https://skia.googlesource.com/skia.git/+log/38e4fd0c5654..79c96811863f


Created with:
  gclient setdep -r src/third_party/skia@79c96811863f

The AutoRoll server is located here: https://autoroll.skia.org/r/skia-flutter-autoroll

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+/master/autoroll/README.md

If the roll is causing failures, please contact the current sheriff, who should
be CC'd on the roll, and stop the roller if necessary.

* Roll src/third_party/skia 79c96811863f..797197a772b8 (1 commits) (#6683)


https://skia.googlesource.com/skia.git/+log/79c96811863f..797197a772b8


Created with:
  gclient setdep -r src/third_party/skia@797197a772b8

The AutoRoll server is located here: https://autoroll.skia.org/r/skia-flutter-autoroll

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+/master/autoroll/README.md

If the roll is causing failures, please contact the current sheriff, who should
be CC'd on the roll, and stop the roller if necessary.

* Roll src/third_party/skia 797197a772b8..1de48d8040aa (2 commits) (#6684)


https://skia.googlesource.com/skia.git/+log/797197a772b8..1de48d8040aa


Created with:
  gclient setdep -r src/third_party/skia@1de48d8040aa

The AutoRoll server is located here: https://autoroll.skia.org/r/skia-flutter-autoroll

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+/master/autoroll/README.md

If the roll is causing failures, please contact the current sheriff, who should
be CC'd on the roll, and stop the roller if necessary.

* Roll src/third_party/skia 1de48d8040aa..68825776f4b4 (1 commits) (#6685)


https://skia.googlesource.com/skia.git/+log/1de48d8040aa..68825776f4b4


Created with:
  gclient setdep -r src/third_party/skia@68825776f4b4

The AutoRoll server is located here: https://autoroll.skia.org/r/skia-flutter-autoroll

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+/master/autoroll/README.md

If the roll is causing failures, please contact the current sheriff, who should
be CC'd on the roll, and stop the roller if necessary.

* Don't populate the external view embedder in PaintContext. (#6686)

The platform views embedding is still WIP, and until we dynamically
merge the gpu and platform threads based on the presence of an embedded
view in the scene fetching the view embedder is not thread safe.

This PR essentially disables iOS platform views embedding, we will
re-enable once dynamic thread merging is supported.

* Roll src/third_party/skia 68825776f4b4..ab18c8e6cc20 (11 commits) (#6688)


https://skia.googlesource.com/skia.git/+log/68825776f4b4..ab18c8e6cc20


Created with:
  gclient setdep -r src/third_party/skia@ab18c8e6cc20

The AutoRoll server is located here: https://autoroll.skia.org/r/skia-flutter-autoroll

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+/master/autoroll/README.md

If the roll is causing failures, please contact the current sheriff, who should
be CC'd on the roll, and stop the roller if necessary.

* Roll buildroot to 11a934e99eaa4aa8e278cd2772aff4f51f1f3c41 (#6687)

This reverts a change in buildroot that caused regressions (see https://github.com/flutter/flutter/issues/23678).

* Flutter tester default locales (#6689)

* Roll src/third_party/skia ab18c8e6cc20..d48b7a881b24 (5 commits) (#6690)


https://skia.googlesource.com/skia.git/+log/ab18c8e6cc20..d48b7a881b24


Created with:
  gclient setdep -r src/third_party/skia@d48b7a881b24

The AutoRoll server is located here: https://autoroll.skia.org/r/skia-flutter-autoroll

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+/master/autoroll/README.md

If the roll is causing failures, please contact the current sheriff, who should
be CC'd on the roll, and stop the roller if necessary.

* Add Locale.fromSubtags and support for scriptCode. (#6518)

* Add Locale.fromComponents.

* Change toString from underscores to dashes. Expand the unit tests.

* Rename 'fromComponents' to 'create'. Change variants from String to List<String>.

* Use default for language parameter. Use hashCode/hashList.

* Have toString() stick with old (underscore) behaviour.

* Demonstrate empty-list bug in assert code.

* Fix empty-list assert bug.

* Add ignores for lint issues. Unsure about 71340 though.

* Fix operator== via _listEquals.

* Remove length-checking asserts: we're anyway not checking characters in fields.

* Documentation update.

* Change reasoning for ignore:prefer_initializing_formals.

* Try 'fromSubtags' as new constructor name.

* Documentation improvements based on Pull Request review.

* Assert-fail for invalid-length subtags and drop bad subtags in production code.

* Revert "Assert-fail for invalid-length subtags and drop bad subtags in production code."

This reverts commit d6f06f5e7b3537d60000c47641580475ef16abbe.

* Re-fix Locale.toString() for variants=[].

* Tear out variants, in case we want to have one fewer pointer in the future.

* Make named parameters' names consistent with member names.

* Also remove _listEquals: no longer in use.

* Lint fix.

* Fix code review nits.

* Lint fix for assert, and a couple more not-zero-length-string asserts.

* Code Review: two of three nits addressed...

* Review fix: change 'should' to 'must' for subtag prescriptions.

* Assert-check that countryCode is never ''.

* Fix popSystemNavigator (#6691)

* Roll back _countryCode assert - breaking change (#6693)

* Roll back _countryCode assert - breaking change

* Add tests back in

* Roll src/third_party/skia d48b7a881b24..ca44d5d85895 (3 commits) (#6694)


https://skia.googlesource.com/skia.git/+log/d48b7a881b24..ca44d5d85895


Created with:
  gclient setdep -r src/third_party/skia@ca44d5d85895

The AutoRoll server is located here: https://autoroll.skia.org/r/skia-flutter-autoroll

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+/master/autoroll/README.md

If the roll is causing failures, please contact the current sheriff, who should
be CC'd on the roll, and stop the roller if necessary.

* Roll src/third_party/skia ca44d5d85895..14768f64fba3 (1 commits) (#6695)


https://skia.googlesource.com/skia.git/+log/ca44d5d85895..14768f64fba3


Created with:
  gclient setdep -r src/third_party/skia@14768f64fba3

The AutoRoll server is located here: https://autoroll.skia.org/r/skia-flutter-autoroll

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+/master/autoroll/README.md

If the roll is causing failures, please contact the current sheriff, who should
be CC'd on the roll, and stop the roller if necessary.

* Roll src/third_party/skia 14768f64fba3..dde307f14273 (3 commits) (#6697)


https://skia.googlesource.com/skia.git/+log/14768f64fba3..dde307f14273


Created with:
  gclient setdep -r src/third_party/skia@dde307f14273

The AutoRoll server is located here: https://autoroll.skia.org/r/skia-flutter-autoroll

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+/master/autoroll/README.md

If the roll is causing failures, please contact the current sheriff, who should
be CC'd on the roll, and stop the roller if necessary.

* Roll src/third_party/skia dde307f14273..5785405afa1b (1 commits) (#6698)


https://skia.googlesource.com/skia.git/+log/dde307f14273..5785405afa1b


Created with:
  gclient setdep -r src/third_party/skia@5785405afa1b

The AutoRoll server is located here: https://autoroll.skia.org/r/skia-flutter-autoroll

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+/master/autoroll/README.md

If the roll is causing failures, please contact the current sheriff, who should
be CC'd on the roll, and stop the roller if necessary.

* Roll src/third_party/skia 5785405afa1b..52a715455181 (5 commits) (#6699)


https://skia.googlesource.com/skia.git/+log/5785405afa1b..52a715455181


Created with:
  gclient setdep -r src/third_party/skia@52a715455181

The AutoRoll server is located here: https://autoroll.skia.org/r/skia-flutter-autoroll

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+/master/autoroll/README.md

If the roll is causing failures, please contact the current sheriff, who should
be CC'd on the roll, and stop the roller if necessary.

* Roll src/third_party/skia 52a715455181..78252fedaab9 (6 commits) (#6700)


https://skia.googlesource.com/skia.git/+log/52a715455181..78252fedaab9


Created with:
  gclient setdep -r src/third_party/skia@78252fedaab9

The AutoRoll server is located here: https://autoroll.skia.org/r/skia-flutter-autoroll

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+/master/autoroll/README.md

If the roll is causing failures, please contact the current sheriff, who should
be CC'd on the roll, and stop the roller if necessary.

* Roll src/third_party/skia 78252fedaab9..4c169456061d (12 commits) (#6701)


https://skia.googlesource.com/skia.git/+log/78252fedaab9..4c169456061d


Created with:
  gclient setdep -r src/third_party/skia@4c169456061d

The AutoRoll server is located here: https://autoroll.skia.org/r/skia-flutter-autoroll

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+/master/autoroll/README.md

If the roll is causing failures, please contact the current sheriff, who should
be CC'd on the roll, and stop the roller if necessary.

* Ensure Simulator publishes mDNS records (#6696)

* Ensure Simulator publishes mDNS records on loopback interface.

* Roll src/third_party/skia 4c169456061d..1801b94e85b4 (2 commits) (#6703)


https://skia.googlesource.com/skia.git/+log/4c169456061d..1801b94e85b4


Created with:
  gclient setdep -r src/third_party/skia@1801b94e85b4

The AutoRoll server is located here: https://autoroll.skia.org/r/skia-flutter-autoroll

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+/master/autoroll/README.md

If the roll is causing failures, please contact the current sheriff, who should
be CC'd on the roll, and stop the roller if necessary.

*  Delay embedded UIViews touch events until the framework says so. (#6665)

This allows the framework to decide whether and when a touch event
sequence arrives to the embedded view. Which gives the framework the
ability to manage hit testing and gesture disambiguation for embedded
UIViews.

We achieve this by wrapping each embedded UIView with another UIView that has
a custom UIGestureRecognizer that delays touch events from being
delivered, and another UIGestureRecognizer that makes sure to let
Flutter know of events that are hit tested to the embedded view.

* Roll src/third_party/skia 1801b94e85b4..69a72945dcdd (1 commits) (#6704)


https://skia.googlesource.com/skia.git/+log/1801b94e85b4..69a72945dcdd


Created with:
  gclient setdep -r src/third_party/skia@69a72945dcdd

The AutoRoll server is located here: https://autoroll.skia.org/r/skia-flutter-autoroll

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+/master/autoroll/README.md

If the roll is causing failures, please contact the current sheriff, who should
be CC'd on the roll, and stop the roller if necessary.

* Roll src/third_party/skia 69a72945dcdd..4d8f48db9ef5 (1 commits) (#6705)


https://skia.googlesource.com/skia.git/+log/69a72945dcdd..4d8f48db9ef5


Created with:
  gclient setdep -r src/third_party/skia@4d8f48db9ef5

The AutoRoll server is located here: https://autoroll.skia.org/r/skia-flutter-autoroll

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+/master/autoroll/README.md

If the roll is causing failures, please contact the current sheriff, who should
be CC'd on the roll, and stop the roller if necessary.

* Roll src/third_party/skia 4d8f48db9ef5..83d923f38664 (2 commits) (#6706)


https://skia.googlesource.com/skia.git/+log/4d8f48db9ef5..83d923f38664


Created with:
  gclient setdep -r src/third_party/skia@83d923f38664

The AutoRoll server is located here: https://autoroll.skia.org/r/skia-flutter-autoroll

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+/master/autoroll/README.md

If the roll is causing failures, please contact the current sheriff, who should
be CC'd on the roll, and stop the roller if necessary.

* Roll src/third_party/skia 83d923f38664..9985a27c06ad (2 commits) (#6707)


https://skia.googlesource.com/skia.git/+log/83d923f38664..9985a27c06ad


Created with:
  gclient setdep -r src/third_party/skia@9985a27c06ad

The AutoRoll server is located here: https://autoroll.skia.org/r/skia-flutter-autoroll

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+/master/autoroll/README.md

If the roll is causing failures, please contact the current sheriff, who should
be CC'd on the roll, and stop the roller if necessary.

* Check needs_painting in RasterCache::Prepare (#6708)

Otherwise, this may trigger `FML_DCHECK(needs_painting())`. We haven't
caused crashes for our users because it probably requires a locally
debug engine build to trigger the assert.

* Roll src/third_party/skia 9985a27c06ad..348a03729796 (15 commits) (#6710)


https://skia.googlesource.com/skia.git/+log/9985a27c06ad..348a03729796


Created with:
  gclient setdep -r src/third_party/skia@348a03729796

The AutoRoll server is located here: https://autoroll.skia.org/r/skia-flutter-autoroll

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+/master/autoroll/README.md

If the roll is causing failures, please contact the current sheriff, who should
be CC'd on the roll, and stop the roller if necessary.

* Move FlutterPlatformViewsController into FlutterEngine. (#6709)

This PR breaks PlatformViewsController's construction dependency on FlutterView,
which allows making FlutterEngine its owner instead of
FlutterViewController.

Also renamed the FlutterScreenshotDelegate to FlutterViewEngineDelegate
which is FlutterView's delegate to the engine, and expanded it to
provide a view embedder.

* Apply changes to the embedded UIView tree when presenting a frame (#6712)

Also tracks the order of embedded views from frame to frame, and only
removes and reattaches subviews if there is a structural change to the
UIView hierarchy.

* Roll src/third_party/skia 348a03729796..d7a7586b0d2f (12 commits) (#6714)


https://skia.googlesource.com/skia.git/+log/348a03729796..d7a7586b0d2f


Created with:
  gclient setdep -r src/third_party/skia@d7a7586b0d2f

The AutoRoll server is located here: https://autoroll.skia.org/r/skia-flutter-autoroll

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+/master/autoroll/README.md

If the roll is causing failures, please contact the current sheriff, who should
be CC'd on the roll, and stop the roller if necessary.

* Decode UIView's creation parameters and pass them to the view factory. (#6715)

* Roll src/third_party/skia d7a7586b0d2f..628f0a57d102 (1 commits) (#6718)


https://skia.googlesource.com/skia.git/+log/d7a7586b0d2f..628f0a57d102


Created with:
  gclient setdep -r src/third_party/skia@628f0a57d102

The AutoRoll server is located here: https://autoroll.skia.org/r/skia-flutter-autoroll

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+/master/autoroll/README.md

If the roll is causing failures, please contact the current sheriff, who should
be CC'd on the roll, and stop the roller if necessary.

* Roll src/third_party/skia 628f0a57d102..1ae419b62b2b (2 commits) (#6720)


https://skia.googlesource.com/skia.git/+log/628f0a57d102..1ae419b62b2b


Created with:
  gclient setdep -r src/third_party/skia@1ae419b62b2b

The AutoRoll server is located here: https://autoroll.skia.org/r/skia-flutter-autoroll

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+/master/autoroll/README.md

If the roll is causing failures, please contact the current sheriff, who should
be CC'd on the roll, and stop the roller if necessary.

* Roll src/third_party/skia 1ae419b62b2b..e008d6feb2d0 (1 commits) (#6721)


https://skia.googlesource.com/skia.git/+log/1ae419b62b2b..e008d6feb2d0


Created with:
  gclient setdep -r src/third_party/skia@e008d6feb2d0

The AutoRoll server is located here: https://autoroll.skia.org/r/skia-flutter-autoroll

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+/master/autoroll/README.md

If the roll is causing failures, please contact the current sheriff, who should
be CC'd on the roll, and stop the roller if necessary.

* Roll src/third_party/skia e008d6feb2d0..763fc966993d (1 commits) (#6722)


https://skia.googlesource.com/skia.git/+log/e008d6feb2d0..763fc966993d


Created with:
  gclient setdep -r src/third_party/skia@763fc966993d

The AutoRoll server is located here: https://autoroll.skia.org/r/skia-flutter-autoroll

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+/master/autoroll/README.md

If the roll is causing failures, please contact the current sheriff, who should
be CC'd on the roll, and stop the roller if necessary.

* Roll src/third_party/skia 763fc966993d..3bdaa46bff71 (2 commits) (#6723)


https://skia.googlesource.com/skia.git/+log/763fc966993d..3bdaa46bff71


Created with:
  gclient setdep -r src/third_party/skia@3bdaa46bff71

The AutoRoll server is located here: https://autoroll.skia.org/r/skia-flutter-autoroll

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+/master/autoroll/README.md

If the roll is causing failures, please contact the current sheriff, who should
be CC'd on the roll, and stop the roller if necessary.

* Roll src/third_party/skia 3bdaa46bff71..f1eda00bf6b0 (11 commits) (#6724)


https://skia.googlesource.com/skia.git/+log/3bdaa46bff71..f1eda00bf6b0


Created with:
  gclient setdep -r src/third_party/skia@f1eda00bf6b0

The AutoRoll server is located here: https://autoroll.skia.org/r/skia-flutter-autoroll

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+/master/autoroll/README.md

If the roll is causing failures, please contact the current sheriff, who should
be CC'd on the roll, and stop the roller if necessary.

* Report asset names in loading trace events. (#6713)

* Roll src/third_party/skia f1eda00bf6b0..e978ca297965 (10 commits) (#6725)


https://skia.googlesource.com/skia.git/+log/f1eda00bf6b0..e978ca297965


Created with:
  gclient setdep -r src/third_party/skia@e978ca297965

The AutoRoll server is located here: https://autoroll.skia.org/r/skia-flutter-autoroll

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+/master/autoroll/README.md

If the roll is causing failures, please contact the current sheriff, who should
be CC'd on the roll, and stop the roller if necessary.

* Fixed typo (#6717)

In comments, replaced `...using using...` with just `...using...`

* Roll src/third_party/skia e978ca297965..94d7af7bcc96 (5 commits) (#6727)


https://skia.googlesource.com/skia.git/+log/e978ca297965..94d7af7bcc96


Created with:
  gclient setdep -r src/third_party/skia@94d7af7bcc96

The AutoRoll server is located here: https://autoroll.skia.org/r/skia-flutter-autoroll

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+/master/autoroll/README.md

If the roll is causing failures, please contact the current sheriff, who should
be CC'd on the roll, and stop the roller if necessary.

* Add an overlay surface on top of embedded UIViews. (#6726)

The overlay surfaces are going to be the same IOSSurface implementation
with the platform views controller set to null (so these are surfaces
that don't support embedding platform views to them).

  * Adds a FlutterOverlayView which is a UIView that's showing an
    overlay surface.
  * Creates an overlay surface for each embedded UIView (done in
    FlutterPlatformViewsController).
  * Changes CompositeEmbeddedView to return a new canvas.
  * Makes the PlatformViewLayer replace the PaintContext's canvas with
    the canvas for the overlay view.
  * Changed canvas in PaintContext to be a pointer so it can be changed.

TBD in following PRs:
  * Copy the current canvas state when replacing a canvas in PaintContext.
  * Make FlutterOverlayView work with a GL backend (currently it only
    works with software rendering)

* Roll src/third_party/skia 94d7af7bcc96..26fcd7166c74 (5 commits) (#6729)


https://skia.googlesource.com/skia.git/+log/94d7af7bcc96..26fcd7166c74


Created with:
  gclient setdep -r src/third_party/skia@26fcd7166c74

The AutoRoll server is located here: https://autoroll.skia.org/r/skia-flutter-autoroll

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+/master/autoroll/README.md

If the roll is causing failures, please contact the current sheriff, who should
be CC'd on the roll, and stop the roller if necessary.

* Roll src/third_party/skia 26fcd7166c74..2dc1e34f9029 (2 commits) (#6730)


https://skia.googlesource.com/skia.git/+log/26fcd7166c74..2dc1e34f9029


Created with:
  gclient setdep -r src/third_party/skia@2dc1e34f9029

The AutoRoll server is located here: https://autoroll.skia.org/r/skia-flutter-autoroll

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+/master/autoroll/README.md

If the roll is causing failures, please contact the current sheriff, who should
be CC'd on the roll, and stop the roller if necessary.

* Roll src/third_party/skia 2dc1e34f9029..13853a120d5a (1 commits) (#6731)


https://skia.googlesource.com/skia.git/+log/2dc1e34f9029..13853a120d5a


Created with:
  gclient setdep -r src/third_party/skia@13853a120d5a

The AutoRoll server is located here: https://autoroll.skia.org/r/skia-flutter-autoroll

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+/master/autoroll/README.md

If the roll is causing failures, please contact the current sheriff, who should
be CC'd on the roll, and stop the roller if necessary.

* Roll src/third_party/skia 13853a120d5a..30edaaac1da4 (1 commits) (#6732)


https://skia.googlesource.com/skia.git/+log/13853a120d5a..30edaaac1da4


Created with:
  gclient setdep -r src/third_party/skia@30edaaac1da4

The AutoRoll server is located here: https://autoroll.skia.org/r/skia-flutter-autoroll

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+/master/autoroll/README.md

If the roll is causing failures, please contact the current sheriff, who should
be CC'd on the roll, and stop the roller if necessary.

* Roll src/third_party/skia 30edaaac1da4..3bfe9665aabc (5 commits) (#6735)


https://skia.googlesource.com/skia.git/+log/30edaaac1da4..3bfe9665aabc


Created with:
  gclient setdep -r src/third_party/skia@3bfe9665aabc

The AutoRoll server is located here: https://autoroll.skia.org/r/skia-flutter-autoroll

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+/master/autoroll/README.md

If the roll is causing failures, please contact the current sheriff, who should
be CC'd on the roll, and stop the roller if necessary.

* Propagate positions of secondary pointers in UP events on Android (#6716)

* Update scene_update_context to match recent PaintContext changes. (#6736)

This fixes a Fuchsia build breakage cause by #6726 and #6603.

* Roll src/third_party/skia 3bfe9665aabc..13245412d49e (15 commits) (#6737)


https://skia.googlesource.com/skia.git/+log/3bfe9665aabc..13245412d49e


Created with:
  gclient setdep -r src/third_party/skia@13245412d49e

The AutoRoll server is located here: https://autoroll.skia.org/r/skia-flutter-autoroll

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+/master/autoroll/README.md

If the roll is causing failures, please contact the current sheriff, who should
be CC'd on the roll, and stop the roller if necessary.

* Roll src/third_party/skia 13245412d49e..1edff303fddb (6 commits) (#6739)


https://skia.googlesource.com/skia.git/+log/13245412d49e..1edff303fddb


Created with:
  gclient setdep -r src/third_party/skia@1edff303fddb

The AutoRoll server is located here: https://autoroll.skia.org/r/skia-flutter-autoroll

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+/master/autoroll/README.md

If the roll is causing failures, please contact the current sheriff, who should
be CC'd on the roll, and stop the roller if necessary.

* Roll freetype2 to a10b062df0c8958d69377aa04ea6554a9961a111 (#6738)

* Roll freetype2 to a10b062df0c8958d69377aa04ea6554a9961a111

Removes support for uncommon/outdated font formats. This reduces `libflutter.so` by ~131 KB uncompressed or 86 KB compressed.

Going forward, we intent to only support the following formats:

* TrueType fonts (TTF) and TrueType collections (TTC)
* CFF fonts
* OpenType fonts (OTF, both TrueType and CFF variants) and OpenType collections (OTC)
* SFNT-based bitmap fonts, including color Emoji

This change has been announced at https://groups.google.com/forum/#!topic/flutter-announce/N5aeq5aC1To.

* licenses

* Roll src/third_party/skia 1edff303fddb..5d5de8bc79aa (4 commits) (#6740)


https://skia.googlesource.com/skia.git/+log/1edff303fddb..5d5de8bc79aa


Created with:
  gclient setdep -r src/third_party/skia@5d5de8bc79aa

The AutoRoll server is located here: https://autoroll.skia.org/r/skia-flutter-autoroll

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+/master/autoroll/README.md

If the roll is causing failures, please contact the current sheriff, who should
be CC'd on the roll, and stop the roller if necessary.

* Roll src/third_party/skia 5d5de8bc79aa..f1ec3918534f (3 commits) (#6741)


https://skia.googlesource.com/skia.git/+log/5d5de8bc79aa..f1ec3918534f


Created with:
  gclient setdep -r src/third_party/skia@f1ec3918534f

The AutoRoll server is located here: https://autoroll.skia.org/r/skia-flutter-autoroll

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+/master/autoroll/README.md

If the roll is causing failures, please contact the current sheriff, who should
be CC'd on the roll, and stop the roller if necessary.

* Roll src/third_party/skia f1ec3918534f..e1b1d056fed9 (1 commits) (#6742)


https://skia.googlesource.com/skia.git/+log/f1ec3918534f..e1b1d056fed9


Created with:
  gclient setdep -r src/third_party/skia@e1b1d056fed9

The AutoRoll server is located here: https://autoroll.skia.org/r/skia-flutter-autoroll

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+/master/autoroll/README.md

If the roll is causing failures, please contact the current sheriff, who should
be CC'd on the roll, and stop the roller if necessary.

* Roll src/third_party/skia e1b1d056fed9..b5ae3b5afc29 (3 commits) (#6743)


https://skia.googlesource.com/skia.git/+log/e1b1d056fed9..b5ae3b5afc29


Created with:
  gclient setdep -r src/third_party/skia@b5ae3b5afc29

The AutoRoll server is located here: https://autoroll.skia.org/r/skia-flutter-autoroll

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+/master/autoroll/README.md

If the roll is causing failures, please contact the current sheriff, who should
be CC'd on the roll, and stop the roller if necessary.

* Roll src/third_party/skia b5ae3b5afc29..7e4081554d06 (1 commits) (#6744)


https://skia.googlesource.com/skia.git/+log/b5ae3b5afc29..7e4081554d06


Created with:
  gclient setdep -r src/third_party/skia@7e4081554d06

The AutoRoll server is located here: https://autoroll.skia.org/r/skia-flutter-autoroll

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+/master/autoroll/README.md

If the roll is causing failures, please contact the current sheriff, who should
be CC'd on the roll, and stop the roller if necessary.

* Roll src/third_party/skia 7e4081554d06..2b21e88ed6dd (1 commits) (#6745)


https://skia.googlesource.com/skia.git/+log/7e4081554d06..2b21e88ed6dd


Created with:
  gclient setdep -r src/third_party/skia@2b21e88ed6dd

The AutoRoll server is located here: https://autoroll.skia.org/r/skia-flutter-autoroll

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+/master/autoroll/README.md

If the roll is causing failures, please contact the current sheriff, who should
be CC'd on the roll, and stop the roller if necessary.

* Roll src/third_party/skia 2b21e88ed6dd..99485ace81ac (1 commits) (#6746)


https://skia.googlesource.com/skia.git/+log/2b21e88ed6dd..99485ace81ac


Created with:
  gclient setdep -r src/third_party/skia@99485ace81ac

The AutoRoll server is located here: https://autoroll.skia.org/r/skia-flutter-autoroll

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+/master/autoroll/README.md

If the roll is causing failures, please contact the current sheriff, who should
be CC'd on the roll, and stop the roller if necessary.

* Roll src/third_party/skia 99485ace81ac..16d91aaf44fa (1 commits) (#6747)


https://skia.googlesource.com/skia.git/+log/99485ace81ac..16d91aaf44fa


Created with:
  gclient setdep -r src/third_party/skia@16d91aaf44fa

The AutoRoll server is located here: https://autoroll.skia.org/r/skia-flutter-autoroll

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+/master/autoroll/README.md

If the roll is causing failures, please contact the current sheriff, who should
be CC'd on the roll, and stop the roller if necessary.

* Roll src/third_party/skia 16d91aaf44fa..0a8b4e1acbd6 (1 commits) (#6748)


https://skia.googlesource.com/skia.git/+log/16d91aaf44fa..0a8b4e1acbd6


Created with:
  gclient setdep -r src/third_party/skia@0a8b4e1acbd6

The AutoRoll server is located here: https://autoroll.skia.org/r/skia-flutter-autoroll

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+/master/autoroll/README.md

If the roll is causing failures, please contact the current sheriff, who should
be CC'd on the roll, and stop the roller if necessary.

* Roll src/third_party/skia 0a8b4e1acbd6..51916083e752 (2 commits) (#6749)


https://skia.googlesource.com/skia.git/+log/0a8b4e1acbd6..51916083e752


Created with:
  gclient setdep -r src/third_party/skia@51916083e752

The AutoRoll server is located here: https://autoroll.skia.org/r/skia-flutter-autoroll

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+/master/autoroll/README.md

If the roll is causing failures, please contact the current sheriff, who should
be CC'd on the roll, and stop the roller if necessary.

* Roll src/third_party/skia 51916083e752..e71e9ef311ba (1 commits) (#6750)


https://skia.googlesource.com/skia.git/+log/51916083e752..e71e9ef311ba


Created with:
  gclient setdep -r src/third_party/skia@e71e9ef311ba

The AutoRoll server is located here: https://autoroll.skia.org/r/skia-flutter-autoroll

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+/master/autoroll/README.md

If the roll is causing failures, please contact the current sheriff, who should
be CC'd on the roll, and stop the roller if necessary.

* Roll src/third_party/skia e71e9ef311ba..8b35379ae1f1 (6 commits) (#6751)


https://skia.googlesource.com/skia.git/+log/e71e9ef311ba..8b35379ae1f1


Created with:
  gclient setdep -r src/third_party/skia@8b35379ae1f1

The AutoRoll server is located here: https://autoroll.skia.org/r/skia-flutter-autoroll

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+/master/autoroll/README.md

If the roll is causing failures, please contact the current sheriff, who should
be CC'd on the roll, and stop the roller if necessary.

* Roll src/third_party/skia 8b35379ae1f1..32262da42bed (8 commits) (#6752)


https://skia.googlesource.com/skia.git/+log/8b35379ae1f1..32262da42bed


Created with:
  gclient setdep -r src/third_party/skia@32262da42bed

The AutoRoll server is located here: https://autoroll.skia.org/r/skia-flutter-autoroll

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+/master/autoroll/README.md

If the roll is causing failures, please contact the current sheriff, who should
be CC'd on the roll, and stop the roller if necessary.

* Clear the on-screen surface every frame. (#6753)

We are currently clearing the offscreen surface before rasterizing, but
as we draw the image snapshot of the offscreen surface into the onscreen
surface transparent pixels are blended with the current contents of the onscreen surface instead of replacing them. This is
particularly noticeable when embedding platform views.

* Roll src/third_party/skia 32262da42bed..df8225e253a2 (10 commits) (#6755)


https://skia.googlesource.com/skia.git/+log/32262da42bed..df8225e253a2


Created with:
  gclient setdep -r src/third_party/skia@df8225e253a2

The AutoRoll server is located here: https://autoroll.skia.org/r/skia-flutter-autoroll

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+/master/autoroll/README.md

If the roll is causing failures, please contact the current sheriff, who should
be CC'd on the roll, and stop the roller if necessary.

* Roll src/third_party/skia df8225e253a2..5b2bda70e52f (5 commits) (#6761)


https://skia.googlesource.com/skia.git/+log/df8225e253a2..5b2bda70e52f


Created with:
  gclient setdep -r src/third_party/skia@5b2bda70e52f

The AutoRoll server is located here: https://autoroll.skia.org/r/skia-flutter-autoroll

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+/master/autoroll/README.md

If the roll is causing failures, please contact the current sheriff, who should
be CC'd on the roll, and stop the roller if necessary.

* Add an Info.plist flag to enable the embedded iOS views preview. (#6756)

When the flag is true, we currently use a single thread configuration,
and disabled the raster cache for opacity layers.

The flag's name is 'io.flutter_embedded_views_preview'.

* Roll src/third_party/skia 5b2bda70e52f..11407e56f277 (1 commits) (#6762)


https://skia.googlesource.com/skia.git/+log/5b2bda70e52f..11407e56f277


Created with:
  gclient setdep -r src/third_party/skia@11407e56f277

The AutoRoll server is located here: https://autoroll.skia.org/r/skia-flutter-autoroll

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+/master/autoroll/README.md

If the roll is causing failures, please contact the current sheriff, who should
be CC'd on the roll, and stop the roller if necessary.

* Revert "Roll freetype2 to a10b062df0c8958d69377aa04ea6554a9961a111 (#6738)" (#6763)

This reverts commit 731045e832c5856e7ec902f2c6a485e6e047e9ea.

* Roll src/third_party/skia 11407e56f277..e6c85755832b (2 commits) (#6765)


https://skia.googlesource.com/skia.git/+log/11407e56f277..e6c85755832b


Created with:
  gclient setdep -r src/third_party/skia@e6c85755832b

The AutoRoll server is located here: https://autoroll.skia.org/r/skia-flutter-autoroll

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+/master/autoroll/README.md

If the roll is causing failures, please contact the current sheriff, who should
be CC'd on the roll, and stop the roller if necessary.

* Roll src/third_party/skia e6c85755832b..e70c6b13dd55 (1 commits) (#6766)


https://skia.googlesource.com/skia.git/+log/e6c85755832b..e70c6b13dd55


Created with:
  gclient setdep -r src/third_party/skia@e70c6b13dd55

The AutoRoll server is located here: https://autoroll.skia.org/r/skia-flutter-autoroll

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+/master/autoroll/README.md

If the roll is causing failures, please contact the current sheriff, who should
be CC'd on the roll, and stop the roller if necessary.

* Roll src/third_party/skia e70c6b13dd55..f2b35e4fb8cc (6 commits) (#6768)


https://skia.googlesource.com/skia.git/+log/e70c6b13dd55..f2b35e4fb8cc


Created with:
  gclient setdep -r src/third_party/skia@f2b35e4fb8cc

The AutoRoll server is located here: https://autoroll.skia.org/r/skia-flutter-autoroll

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+/master/autoroll/README.md

If the roll is causing failures, please contact the current sheriff, who should
be CC'd on the roll, and stop the roller if necessary.

* fix type in embedded views preview flag name (#6767)

* Roll src/third_party/skia f2b35e4fb8cc..2aa9a22fe159 (7 commits) (#6770)


https://skia.googlesource.com/skia.git/+log/f2b35e4fb8cc..2aa9a22fe159


Created with:
  gclient setdep -r src/third_party/skia@2aa9a22fe159

The AutoRoll server is located here: https://autoroll.skia.org/r/skia-flutter-autoroll

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+/master/autoroll/README.md

If the roll is causing failures, please contact the current sheriff, who should
be CC'd on the roll, and stop the roller if necessary.

* Add instructions to download the full license log diff. (#6771)

* Roll update to harfbuzz to 2.1.0 (#6760)

* Update the contributing guide (#6754)

Content has moved to the wiki.

* Roll src/third_party/skia 2aa9a22fe159..630e7d651a34 (5 commits) (#6773)


https://skia.googlesource.com/skia.git/+log/2aa9a22fe159..630e7d651a34


Created with:
  gclient setdep -r src/third_party/skia@630e7d651a34

The AutoRoll server is located here: https://autoroll.skia.org/r/skia-flutter-autoroll

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+/master/autoroll/README.md

If the roll is causing failures, please contact the current sheriff, who should
be CC'd on the roll, and stop the roller if necessary.

* Pass scriptCode into Locale on initialization. (#6711)

* fix setInitialRoute (#6774)

* fix setInitialRoute

* Roll src/third_party/skia 630e7d651a34..3daed9b12db4 (6 commits) (#6775)


https://skia.googlesource.com/skia.git/+log/630e7d651a34..3daed9b12db4


Created with:
  gclient setdep -r src/third_party/skia@3daed9b12db4

The AutoRoll server is located here: https://autoroll.skia.org/r/skia-flutter-autoroll

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+/master/autoroll/README.md

If the roll is causing failures, please contact the current sheriff, who should
be CC'd on the roll, and stop the roller if necessary.

* Roll src/third_party/skia 3daed9b12db4..2a13921745eb (1 commits) (#6776)


https://skia.googlesource.com/skia.git/+log/3daed9b12db4..2a13921745eb


Created with:
  gclient setdep -r src/third_party/skia@2a13921745eb

The AutoRoll server is located here: https://autoroll.skia.org/r/skia-flutter-autoroll

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+/master/autoroll/README.md

If the roll is causing failures, please contact the current sheriff, who should
be CC'd on the roll, and stop the roller if necessary.

* Roll src/third_party/skia 2a13921745eb..67f5c0ceac22 (2 commits) (#6777)


https://skia.googlesource.com/skia.git/+log/2a13921745eb..67f5c0ceac22


Created with:
  gclient setdep -r src/third_party/skia@67f5c0ceac22

The AutoRoll server is located here: https://autoroll.skia.org/r/skia-flutter-autoroll

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+/master/autoroll/README.md

If the roll is causing failures, please contact the current sheriff, who should
be CC'd on the roll, and stop the roller if necessary.

* Roll src/third_party/skia 67f5c0ceac22..273fa2f3bd0b (1 commits) (#6779)


https://skia.googlesource.com/skia.git/+log/67f5c0ceac22..273fa2f3bd0b


Created with:
  gclient setdep -r src/third_party/skia@273fa2f3bd0b

The AutoRoll server is located here: https://autoroll.skia.org/r/skia-flutter-autoroll

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+/master/autoroll/README.md

If the roll is causing failures, please contact the current sheriff, who should
be CC'd on the roll, and stop the roller if necessary.

* Roll src/third_party/skia 273fa2f3bd0b..62cc5f581747 (7 commits) (#6780)


https://skia.googlesource.com/skia.git/+log/273fa2f3bd0b..62cc5f581747


Created with:
  gclient setdep -r src/third_party/skia@62cc5f581747

The AutoRoll server is located here: https://autoroll.skia.org/r/skia-flutter-autoroll

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+/master/autoroll/README.md

If the roll is causing failures, please contact the current sheriff, who should
be CC'd on the roll, and stop the roller if necessary.

* Fix String comparison as if Java were Dart. (#6781)

This also removes unused imports and sorts imports correctly

* Roll src/third_party/skia 62cc5f581747..b52c273d3f05 (13 commits) (#6783)


https://skia.googlesource.com/skia.git/+log/62cc5f581747..b52c273d3f05


Created with:
  gclient setdep -r src/third_party/skia@b52c273d3f05

The AutoRoll server is located here: https://autoroll.skia.org/r/skia-flutter-autoroll

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+/master/autoroll/README.md

If the roll is causing failures, please contact the current sheriff, who should
be CC'd on the roll, and stop the roller if necessary.

* Unify copyright lines (#6757)

* Delete unused license goldens and add check (#6784)

* Roll src/third_party/skia b52c273d3f05..f49563bf9276 (7 commits) (#6785)


https://skia.googlesource.com/skia.git/+log/b52c273d3f05..f49563bf9276


Created with:
  gclient setdep -r src/third_party/skia@f49563bf9276

The AutoRoll server is located here: https://autoroll.skia.org/r/skia-flutter-autoroll

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+/master/autoroll/README.md

If the roll is causing failures, please contact the current sheriff, who should
be CC'd on the roll, and stop the roller if necessary.

* Skia Cleanup (#6786)

* Roll Dart version to 9c07fb64c48adb3d6fde50bab6b8b641c5b67683 (#6788)

This hash corresponds to 2.10-dev.9.2

Changes in this roll include:
- Fix for https://github.com/flutter/flutter/issues/23879 (Revert
"[vm/compiler] Fine tune operator and phi handling.)
- Fix for Dart issue https://github.com/dart-lang/sdk/issues/35009
- Recover from default values in function types
- [vm, reload] On the path for no shape changes, defer freeing the old
- [vm] Fix misc printf format bugs.
- [VM] Added cleanup for Dart IO API

* Roll src/third_party/skia f49563bf9276..71bcc7d63f8c (3 commits) (#6790)


https://skia.googlesource.com/skia.git/+log/f49563bf9276..71bcc7d63f8c


Created with:
  gclient setdep -r src/third_party/skia@71bcc7d63f8c

The AutoRoll server is located here: https://autoroll.skia.org/r/skia-flutter-autoroll

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+/master/autoroll/README.md

If the roll is causing failures, please contact the current sheriff, who should
be CC'd on the roll, and stop the roller if necessary.

* avoid overreleasing FlutterView (#6791)

* Roll src/third_party/skia 71bcc7d63f8c..2f8889b876d3 (1 commits) (#6792)


https://skia.googlesource.com/skia.git/+log/71bcc7d63f8c..2f8889b876d3


Created with:
  gclient setdep -r src/third_party/skia@2f8889b876d3

The AutoRoll server is located here: https://autoroll.skia.org/r/skia-flutter-autoroll

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+/master/autoroll/README.md

If the roll is causing failures, please contact the current sheriff, who should
be CC'd on the roll, and stop the roller if necessary.

* Roll src/third_party/skia 2f8889b876d3..23d1f94faac1 (1 commits) (#6793)


https://skia.googlesource.com/skia.git/+log/2f8889b876d3..23d1f94faac1


Created with:
  gclient setdep -r src/third_party/skia@23d1f94faac1

The AutoRoll server is located here: https://autoroll.skia.org/r/skia-flutter-autoroll

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+/master/autoroll/README.md

If the roll is causing failures, please contact the current sheriff, who should
be CC'd on the roll, and stop the roller if necessary.

* Roll src/third_party/skia 23d1f94faac1..fa8898747551 (1 commits) (#6794)


https://skia.googlesource.com/skia.git/+log/23d1f94faac1..fa8898747551


Created with:
  gclient setdep -r src/third_party/skia@fa8898747551

The AutoRoll server is located here: https://autoroll.skia.org/r/skia-flutter-autoroll

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+/master/autoroll/README.md

If the roll is causing failures, please contact the current sheriff, who should
be CC'd on the roll, and stop the roller if necessary.

* Roll src/third_party/skia fa8898747551..5d58d09ae77d (4 commits) (#6796)


https://skia.googlesource.com/skia.git/+log/fa8898747551..5d58d09ae77d


Created with:
  gclient setdep -r src/third_party/skia@5d58d09ae77d

The AutoRoll server is located here: https://autoroll.skia.org/r/skia-flutter-autoroll

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+/master/autoroll/README.md

If the roll is causing failures, please contact the current sheriff, who should
be CC'd on the roll, and stop the roller if necessary.

* Add an internal_nodes_canvas to PaintContext. (#6728)

When we visit a PlatformViewLayer during the paint traversal it replaces
the PaintContext's canvas with a new one that is painted ontop of the
embedded view.
We need to make sure that operations applied by parent layers are also
applied to the new canvas.

To achieve this we collect all the canvases in a SkNWayCanvas and use
this canvas by non leaf nodes. Leaf nodes still paint only to the "current"
canvas.

This PR moves the overlay canvas creation from the paint phase to the
preroll phase, collects them into a SkNWayCanvas and set it in
PaintContext.

To keep this PR focused, I only used the internal_nodes_canvas in the
tranform_layer.
Will followup with a PR that changes all internal layers to use the
internal_nodes_canvas.

* Discard embedded UIViews on hot restart. (#6772)

* Roll src/third_party/skia 5d58d09ae77d..06a477c3300d (5 commits) (#6797)


https://skia.googlesource.com/skia.git/+log/5d58d09ae77d..06a477c3300d


Created with:
  gclient setdep -r src/third_party/skia@06a477c3300d

The AutoRoll server is located here: https://autoroll.skia.org/r/skia-flutter-autoroll

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+/master/autoroll/README.md

If the roll is causing failures, please contact the current sheriff, who should
be CC'd on the roll, and stop the roller if necessary.

* disable embedder_unittests (#6798)

* Fix mDNS publishing for iOS simulator (#6789)

* Don't block the platfrorm thread on simulator mDNS publishing

* Make the FlutterPlatformViewFactory create FlutterPlatformViews. (#6782)

Handing a UIView refererence directly to the engine makes it challenging
for plugin authors to retain a controller for that UIView (e.g the
controller that talks over the platform channel) for as long as the
embedded view is needed.

We instead make the factory return a FlutterPlatformView which is a
wrapper around the UIView that the engine retains as long as the
platform view instance is needed. This allows plugin authors to keep
their control logic in the FlutterPlatformView and know that the engine
is responsible for retaining the reference.

* Include vector in embedded_views.h (#6800)

* Roll src/third_party/skia 06a477c3300d..dd650c40d148 (11 commits) (#6801)


https://skia.googlesource.com/skia.git/+log/06a477c3300d..dd650c40d148


Created with:
  gclient setdep -r src/third_party/skia@dd650c40d148

The AutoRoll server is located here: https://autoroll.skia.org/r/skia-flutter-autoroll

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+/master/autoroll/README.md

If the roll is causing failures, please contact the current sheriff, who should
be CC'd on the roll, and stop the roller if necessary.

* Update paint hinting for upcoming Skia API changes. (#6802)

* Revert "Roll src/third_party/skia 06a477c3300d..dd650c40d148 (11 commits) (#6801)" (#6809)

This reverts commit e011d544b4e3ff0c2af5babddacdbb1f677f7cca.

* Support platform view overlays with GL rendering (#6769)

Moved the frame buffer specific logic from IOSGLContext to IOSGLRenderTarget.

use recording canvases for overlays

Support platform view overlays with gl rendering.

This also changes the overlay canvases (for both software and gl
rendering) be recording canvases, and only rasterize them after
finishing the paint traversal.

* Reland "Roll freetype2 to a10b062df0c8958d69377aa04ea6554a9961a111 (#6738)" (#6787)

This reverts commit fb5b097e5c20d2af9d4178530f0f4acd9d173401.

* Fix wrong `flutter/platform_views` protocol implementation on iOS. (#6803)

The `id` parameter of onDispose is passed as the method argument and not as
part of a map.

* Move the embedded view preview flag check to a common function. (#6813)

* Update Vulkan headers to 1.1 (#6806)

* Synchronize Flutter's rendering with CA. (#6807)

Right now we do it whenever the platform views preview flag is on.
This is less efficient, filed
https://github.com/flutter/flutter/issues/24133 to only do this when
there's a platform view in the tree.

* Use the internal_nodes_canvas for all leaf node operations. (#6804)

This also renames the PaintContext's canvas to lead_nodes_canvas so that it
is more explicit on the call sites which canvas is being used.

* Roll src/third_party/skia 06a477c3300d..ef4709b7850d (31 commits) (#6811)

https://skia.googlesource.com/skia.git/+log/06a477c3300d..ef4709b7850d

Created with:
  gclient setdep -r src/third_party/skia@ef4709b7850d

The AutoRoll server is located here: https://autoroll.skia.org/r/skia-flutter-autoroll

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+/master/autoroll/README.md

If the roll is causing failures, please contact the current sheriff, who should
be CC'd on the roll, and stop the roller if necessary.

* Roll Dart version to f9ebf2129732fd2b606286fdf58e500384b8a0bc (#6812)

* Roll Dart version to f9ebf2129732fd2b606286fdf58e500384b8a0bc

This roll includes the following fixes:
- Fix obfuscation (issue
https://github.com/flutter/flutter/issues/22322)
- Fix for issue 34839 Service isolate hangs during shutdown if
- Fix bug in unboxed constant spilling
(https://github.com/flutter/flutter/issues/23879)
- Reland Fine tune operator and phi handling which was reverted due to
the above bug.

* Roll src/third_party/skia ef4709b785…
dart-bot pushed a commit that referenced this issue Dec 20, 2018
…irrors behaviour that is not valid for Dart 2, so these type checks cause the package to crash.

Revert "[ VM / Mirrors ] Added type checking to enforce strong mode semantics when using dart:mirrors"

This reverts commit 9f00eec.

Change-Id: I82ce07d388ba9402f20caf700815b39c9bc418f6
Reviewed-on: https://dart-review.googlesource.com/c/83225
Reviewed-by: Ben Konyi <bkonyi@google.com>
Reviewed-by: Siva Annamalai <asiva@google.com>
Commit-Queue: Ben Konyi <bkonyi@google.com>
@athomas
Copy link
Member

athomas commented Mar 11, 2019

@jcollins-g I'll close this, feel free to re-open if the issue still exists.

@athomas athomas closed this as completed Mar 11, 2019
tekknolagi pushed a commit to tekknolagi/dart-assembler that referenced this issue Nov 3, 2020
Bug: dart-lang#35009
Change-Id: I6b509e1eb8e76e07f60a086c67358d65d2a1fae4
Reviewed-on: https://dart-review.googlesource.com/c/82460
Reviewed-by: Vyacheslav Egorov <vegorov@google.com>
Reviewed-by: Martin Kustermann <kustermann@google.com>
Reviewed-by: Siva Annamalai <asiva@google.com>
Commit-Queue: Ryan Macnak <rmacnak@google.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area-core-library SDK core library issues (core, async, ...); use area-vm or area-web for platform specific libraries. crash Process exits with SIGSEGV, SIGABRT, etc. An unhandled exception is not a crash. P1 A high priority bug; for example, a single project is unusable or has many test failures
Projects
None yet
Development

No branches or pull requests