diff --git a/packages/flutter/lib/src/widgets/route_notification_messages.dart b/packages/flutter/lib/src/widgets/route_notification_messages.dart
index 5cbe6bd..4b82a73 100644
--- a/packages/flutter/lib/src/widgets/route_notification_messages.dart
+++ b/packages/flutter/lib/src/widgets/route_notification_messages.dart
@@ -29,14 +29,12 @@
   static void _notifyRouteChange(String methodName, Route<dynamic> route, Route<dynamic> previousRoute) {
     final String previousRouteName = previousRoute?.settings?.name;
     final String routeName = route?.settings?.name;
-    if (previousRouteName != null || routeName != null) {
-      SystemChannels.navigation.invokeMethod<void>(
-        methodName,
-        <String, dynamic>{
-          'previousRouteName': previousRouteName,
-          'routeName': routeName,
-        },
-      );
-    }
+    SystemChannels.navigation.invokeMethod<void>(
+      methodName,
+      <String, dynamic>{
+        'previousRouteName': previousRouteName,
+        'routeName': routeName,
+      },
+    );
   }
 }
diff --git a/packages/flutter/test/widgets/route_notification_messages_test.dart b/packages/flutter/test/widgets/route_notification_messages_test.dart
index c8f9d39..8a7dee5 100644
--- a/packages/flutter/test/widgets/route_notification_messages_test.dart
+++ b/packages/flutter/test/widgets/route_notification_messages_test.dart
@@ -167,4 +167,51 @@
           },
         ));
   });
+
+  testWidgets('Nameless routes should send platform messages', (WidgetTester tester) async {
+    final List<MethodCall> log = <MethodCall>[];
+    SystemChannels.navigation.setMockMethodCallHandler((MethodCall methodCall) async {
+      log.add(methodCall);
+    });
+
+    await tester.pumpWidget(MaterialApp(
+      initialRoute: '/home',
+      routes: <String, WidgetBuilder>{
+        '/home': (BuildContext context) {
+          return OnTapPage(
+            id: 'Home',
+            onTap: () {
+              // Create a route with no name.
+              final Route<void> route = MaterialPageRoute<void>(
+                builder: (BuildContext context) => const Text('Nameless Route'),
+              );
+              Navigator.push<void>(context, route);
+            },
+          );
+        },
+      },
+    ));
+
+    expect(log, hasLength(1));
+    expect(
+      log.last,
+      isMethodCall('routePushed', arguments: <String, dynamic>{
+        'previousRouteName': null,
+        'routeName': '/home',
+      }),
+    );
+
+    await tester.tap(find.text('Home'));
+    await tester.pump();
+    await tester.pump(const Duration(seconds: 1));
+
+    expect(log, hasLength(2));
+    expect(
+      log.last,
+      isMethodCall('routePushed', arguments: <String, dynamic>{
+        'previousRouteName': '/home',
+        'routeName': null,
+      }),
+    );
+  });
 }
