• 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
..
align_test.dart Loading commit data...
animated_container_test.dart Loading commit data...
animated_cross_fade_test.dart Loading commit data...
animated_list_test.dart Loading commit data...
animated_positioned_test.dart Loading commit data...
animated_size_test.dart Loading commit data...
app_overrides_test.dart Loading commit data...
aspect_ratio_test.dart Loading commit data...
async_test.dart Loading commit data...
banner_test.dart Loading commit data...
baseline_test.dart Loading commit data...
binding_test.dart Loading commit data...
box_decoration_test.dart Loading commit data...
box_sliver_mismatch_test.dart Loading commit data...
build_scope_test.dart Loading commit data...
center_test.dart Loading commit data...
clamp_overscrolls_test.dart Loading commit data...
clip_test.dart Loading commit data...
column_test.dart Loading commit data...
composited_transform_test.dart Loading commit data...
container_test.dart Loading commit data...
coordinates_test.dart Loading commit data...
custom_multi_child_layout_test.dart Loading commit data...
custom_paint_test.dart Loading commit data...
custom_single_child_layout_test.dart Loading commit data...
date_picker_test.dart Loading commit data...
default_text_style_test.dart Loading commit data...
dismissible_test.dart Loading commit data...
dispose_ancestor_lookup_test.dart Loading commit data...
draggable_test.dart Loading commit data...
drawer_test.dart Loading commit data...
ensure_visible_test.dart Loading commit data...
fitted_box_test.dart Loading commit data...
flex_test.dart Loading commit data...
flow_test.dart Loading commit data...
focus_test.dart Loading commit data...
form_test.dart Loading commit data...
fractionally_sized_box_test.dart Loading commit data...
framework_test.dart Loading commit data...
gesture_detector_test.dart Loading commit data...
global_keys_duplicated_test.dart Loading commit data...
global_keys_moving_test.dart Loading commit data...
grid_paper_test.dart Loading commit data...
grid_view_layout_test.dart Loading commit data...
grid_view_test.dart Loading commit data...
heroes_test.dart Loading commit data...
hit_testing_test.dart Loading commit data...
hyperlink_test.dart Loading commit data...
icon_test.dart Loading commit data...
icon_theme_data_test.dart Loading commit data...
image_icon_test.dart Loading commit data...
image_resolution_test.dart Loading commit data...
image_test.dart Loading commit data...
implicit_animations_test.dart Loading commit data...
independent_widget_layout_test.dart Loading commit data...
inherited_test.dart Loading commit data...
init_state_test.dart Loading commit data...
key_test.dart Loading commit data...
layout_builder_and_global_keys_test.dart Loading commit data...
layout_builder_and_parent_data_test.dart Loading commit data...
layout_builder_and_state_test.dart Loading commit data...
layout_builder_mutations_test.dart Loading commit data...
layout_builder_test.dart Loading commit data...
linked_scroll_view_test.dart Loading commit data...
list_view_builder_test.dart Loading commit data...
list_view_correction_test.dart Loading commit data...
list_view_fling_test.dart Loading commit data...
list_view_horizontal_test.dart Loading commit data...
list_view_misc_test.dart Loading commit data...
list_view_relayout_test.dart Loading commit data...
list_view_test.dart Loading commit data...
list_view_vertical_test.dart Loading commit data...
list_view_viewporting_test.dart Loading commit data...
list_view_with_inherited_test.dart Loading commit data...
listener_test.dart Loading commit data...
listview_end_append_test.dart Loading commit data...
locale_query_test.dart Loading commit data...
media_query_test.dart Loading commit data...
modal_barrier_test.dart Loading commit data...
multichild_test.dart Loading commit data...
navigator_and_layers_test.dart Loading commit data...
navigator_replacement_test.dart Loading commit data...
navigator_test.dart Loading commit data...
nested_scroll_view_test.dart Loading commit data...
notification_test.dart Loading commit data...
overflow_box_test.dart Loading commit data...
overlay_test.dart Loading commit data...
overscroll_indicator_test.dart Loading commit data...
page_forward_transitions_test.dart Loading commit data...
page_storage_test.dart Loading commit data...
page_transitions_test.dart Loading commit data...
page_view_test.dart Loading commit data...
pageable_list_test.dart Loading commit data...
parent_data_test.dart Loading commit data...
performance_overlay_test.dart Loading commit data...
placeholder_test.dart Loading commit data...
positioned_test.dart Loading commit data...
raw_keyboard_listener_test.dart Loading commit data...
reassemble_test.dart Loading commit data...
remember_scroll_position_test.dart Loading commit data...
render_object_widget_test.dart Loading commit data...
reparent_state_harder_test.dart Loading commit data...
reparent_state_test.dart Loading commit data...
reparent_state_with_layout_builder_test.dart Loading commit data...
rotated_box_test.dart Loading commit data...
routes_test.dart Loading commit data...
row_test.dart Loading commit data...
run_app_test.dart Loading commit data...
scroll_behavior_test.dart Loading commit data...
scroll_controller_test.dart Loading commit data...
scroll_events_test.dart Loading commit data...
scroll_interaction_test.dart Loading commit data...
scroll_notification_test.dart Loading commit data...
scroll_physics_test.dart Loading commit data...
scroll_simulation_test.dart Loading commit data...
scroll_view_test.dart Loading commit data...
scrollable_dispose_test.dart Loading commit data...
scrollable_fling_test.dart Loading commit data...
scrollable_grid_test.dart Loading commit data...
scrollable_list_hit_testing_test.dart Loading commit data...
scrollable_of_test.dart Loading commit data...
scrollable_test.dart Loading commit data...
semantics_1_test.dart Loading commit data...
semantics_2_test.dart Loading commit data...
semantics_3_test.dart Loading commit data...
semantics_4_test.dart Loading commit data...
semantics_5_test.dart Loading commit data...
semantics_7_test.dart Loading commit data...
semantics_8_test.dart Loading commit data...
semantics_9_test.dart Loading commit data...
semantics_debugger_test.dart Loading commit data...
semantics_test.dart Loading commit data...
semantics_tester.dart Loading commit data...
set_state_1_test.dart Loading commit data...
set_state_2_test.dart Loading commit data...
set_state_3_test.dart Loading commit data...
set_state_4_test.dart Loading commit data...
shader_mask_test.dart Loading commit data...
single_child_scroll_view_test.dart Loading commit data...
size_changed_layout_notification_test.dart Loading commit data...
sized_box_test.dart Loading commit data...
sliver_fill_remaining_test.dart Loading commit data...
sliver_fill_viewport_test.dart Loading commit data...
sliver_prototype_item_extent_test.dart Loading commit data...
slivers_appbar_floating_test.dart Loading commit data...
slivers_appbar_pinned_test.dart Loading commit data...
slivers_appbar_scrolling_test.dart Loading commit data...
slivers_block_global_key_test.dart Loading commit data...
slivers_block_test.dart Loading commit data...
slivers_evil_test.dart Loading commit data...
slivers_padding_test.dart Loading commit data...
slivers_protocol_test.dart Loading commit data...
slivers_test.dart Loading commit data...
stack_test.dart Loading commit data...
state_setting_in_scrollables_test.dart Loading commit data...
stateful_component_test.dart Loading commit data...
stateful_components_test.dart Loading commit data...
states.dart Loading commit data...
status_transitions_test.dart Loading commit data...
syncing_test.dart Loading commit data...
table_test.dart Loading commit data...
test_widgets.dart Loading commit data...
text_formatter_test.dart Loading commit data...
text_test.dart Loading commit data...
ticker_provider_test.dart Loading commit data...
title_test.dart Loading commit data...
transform_test.dart Loading commit data...
transitions_test.dart Loading commit data...
unique_widget_test.dart Loading commit data...
wrap_test.dart Loading commit data...