• Ian Hickson's avatar
    Deep linking: automatically push the route hiearchy on load. (#10894) · 9adb4a78
    Ian Hickson authored
    The main purpose of this PR is to make it so that when you set the
    initial route and it's a hierarchical route (e.g. `/a/b/c`), it
    implies multiple pushes, one for each step of the route (so in that
    case, `/`, `/a`, `/a/b`, and `/a/b/c`, in that order). If any of those
    routes don't exist, it falls back to '/'.
    
    As part of doing that, I:
    
     * Changed the default for MaterialApp.initialRoute to honor the
       actual initial route.
    
     * Added a MaterialApp.onUnknownRoute for handling bad routes.
    
     * Added a feature to flutter_driver that allows the host test script
       and the device test app to communicate.
    
     * Added a test to make sure `flutter drive --route` works.
       (Hopefully that will also prove `flutter run --route` works, though
       this isn't testing the `flutter` tool's side of that. My main
       concern is over whether the engine side works.)
    
     * Fixed `flutter drive` to output the right target file name.
    
     * Changed how the stocks app represents its data, so that we can
       show a page for a stock before we know if it exists.
    
     * Made it possible to show a stock page that doesn't exist. It shows
       a progress indicator if we're loading the data, or else shows a
       message saying it doesn't exist.
    
     * Changed the pathing structure of routes in stocks to work more
       sanely.
    
     * Made search in the stocks app actually work (before it only worked
       if we happened to accidentally trigger a rebuild). Added a test.
    
     * Replaced some custom code in the stocks app with a BackButton.
    
     * Added a "color" feature to BackButton to support the stocks use case.
    
     * Spaced out the ErrorWidget text a bit more.
    
     * Added `RouteSettings.copyWith`, which I ended up not using.
    
     * Improved the error messages around routing.
    
    While I was in some files I made a few formatting fixes, fixed some
    code health issues, and also removed `flaky: true` from some devicelab
    tests that have been stable for a while. Also added some documentation
    here and there.
    9adb4a78
Name
Last commit
Last update
..
analyzer_benchmark.dart Loading commit data...
android_sample_catalog_generator.dart Loading commit data...
basic_material_app__size.dart Loading commit data...
basic_material_app_ios__size.dart Loading commit data...
channels_integration_test.dart Loading commit data...
channels_integration_test_ios.dart Loading commit data...
channels_integration_test_win.dart Loading commit data...
complex_layout__build.dart Loading commit data...
complex_layout__start_up.dart Loading commit data...
complex_layout_ios__start_up.dart Loading commit data...
complex_layout_scroll_perf__memory.dart Loading commit data...
complex_layout_scroll_perf__timeline_summary.dart Loading commit data...
complex_layout_scroll_perf_ios__timeline_summary.dart Loading commit data...
complex_layout_semantics_perf.dart Loading commit data...
dartdocs.dart Loading commit data...
flutter_gallery__back_button_memory.dart Loading commit data...
flutter_gallery__build.dart Loading commit data...
flutter_gallery__memory_nav.dart Loading commit data...
flutter_gallery__start_up.dart Loading commit data...
flutter_gallery__transition_perf.dart Loading commit data...
flutter_gallery__transition_perf_with_semantics.dart Loading commit data...
flutter_gallery_ios__start_up.dart Loading commit data...
flutter_gallery_ios__transition_perf.dart Loading commit data...
flutter_gallery_win__build.dart Loading commit data...
flutter_view__start_up.dart Loading commit data...
flutter_view_ios__start_up.dart Loading commit data...
hello_world__memory.dart Loading commit data...
hot_mode_dev_cycle__benchmark.dart Loading commit data...
hot_mode_dev_cycle_linux__benchmark.dart Loading commit data...
hot_mode_dev_cycle_win__benchmark.dart Loading commit data...
integration_ui.dart Loading commit data...
integration_ui_ios.dart Loading commit data...
ios_sample_catalog_generator.dart Loading commit data...
microbenchmarks.dart Loading commit data...
microbenchmarks_ios.dart Loading commit data...
platform_channel_sample_test.dart Loading commit data...
platform_channel_sample_test_ios.dart Loading commit data...
routing_test.dart Loading commit data...
smoke_test_failure.dart Loading commit data...
smoke_test_setup_failure.dart Loading commit data...
smoke_test_success.dart Loading commit data...
smoke_test_throws.dart Loading commit data...
technical_debt__cost.dart Loading commit data...