Reland "Add a FlutterDriver screenshot test to device lab. #45411" (#46620)

diff --git a/dev/devicelab/bin/tasks/flutter_driver_screenshot_test_ios.dart b/dev/devicelab/bin/tasks/flutter_driver_screenshot_test_ios.dart
new file mode 100644
index 0000000..8e92c0f
--- /dev/null
+++ b/dev/devicelab/bin/tasks/flutter_driver_screenshot_test_ios.dart
@@ -0,0 +1,14 @@
+// Copyright 2014 The Flutter Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+import 'dart:async';
+
+import 'package:flutter_devicelab/framework/adb.dart';
+import 'package:flutter_devicelab/framework/framework.dart';
+import 'package:flutter_devicelab/tasks/integration_tests.dart';
+
+Future<void> main() async {
+  deviceOperatingSystem = DeviceOperatingSystem.ios;
+  await task(createFlutterDriverScreenshotTest());
+}
diff --git a/dev/devicelab/lib/tasks/integration_tests.dart b/dev/devicelab/lib/tasks/integration_tests.dart
index 88d7b23..17ce1d6 100644
--- a/dev/devicelab/lib/tasks/integration_tests.dart
+++ b/dev/devicelab/lib/tasks/integration_tests.dart
@@ -107,6 +107,13 @@
   );
 }
 
+TaskFunction createFlutterDriverScreenshotTest() {
+  return DriverTest(
+    '${flutterDirectory.path}/dev/integration_tests/flutter_driver_screenshot_test',
+    'lib/main.dart',
+  );
+}
+
 class DriverTest {
 
   DriverTest(
diff --git a/dev/devicelab/manifest.yaml b/dev/devicelab/manifest.yaml
index 7df2641..a373598 100644
--- a/dev/devicelab/manifest.yaml
+++ b/dev/devicelab/manifest.yaml
@@ -509,6 +509,16 @@
     required_agent_capabilities: ["mac/ios"]
     timeout_in_minutes: 20
 
+  flutter_driver_screenshot_test_ios:
+    description: >
+      Screenshot tests running on a specifc iPhone 6.
+      The test makes sure that there is no regression while renderring an image with gl on iOS.
+    stage: devicelab_ios
+    required_agent_capabilities: ["mac/ios", "ios/gl-render-image"]
+    #TODO(cyanglaz): The flaky flag is added because it is the first screenshot test we added.
+    # Remove the flaky flag when we are sure the test is stable.
+    flaky: true
+
   # TODO(fujino): does not pass on iOS13 https://github.com/flutter/flutter/issues/41133
   # system_debug_ios:
   #   description: >