Trigger Build Part Deux (#160481)

Hello, Monorepo Part Deux - after adding commit to datastore.
diff --git a/.ci.yaml b/.ci.yaml
index fd48900..ba8ad21 100644
--- a/.ci.yaml
+++ b/.ci.yaml
@@ -802,12 +802,14 @@
   - name: Linux fuchsia_precache
     recipe: flutter/flutter_drone
     timeout: 60
+    presubmit: false
     properties:
       shard: fuchsia_precache
       tags: >
         ["framework", "hostonly", "shard", "linux"]
     runIf:
-      - bin/internal/engine.version
+      - engine/**
+      - DEPS
       - .ci.yaml
 
   - name: Linux gradle_desugar_classes_test
@@ -962,6 +964,7 @@
   - name: Linux build_android_host_app_with_module_source
     recipe: devicelab/devicelab_drone
     timeout: 60
+    presubmit: false
     properties:
       dependencies: >-
         [
@@ -1156,7 +1159,8 @@
       tags: >
         ["framework", "hostonly", "shard", "linux"]
     runIf:
-      - bin/internal/engine.version
+      - engine/**
+      - DEPS
       - .ci.yaml
 
   - name: Linux tool_integration_tests_1_6
@@ -2606,7 +2610,8 @@
     # presubmit during engine rolls. This test is the *only* automated e2e
     # test for external textures for the engine, it should never break.
     runIf:
-      - bin/internal/engine.version
+      - engine/**
+      - DEPS
       - .ci.yaml
     properties:
       tags: >
@@ -2621,7 +2626,8 @@
     # presubmit during engine rolls. This test is the *only* automated e2e
     # test for external textures for the engine, it should never break.
     runIf:
-      - bin/internal/engine.version
+      - engine/**
+      - DEPS
       - .ci.yaml
     properties:
       tags: >
@@ -4111,6 +4117,7 @@
   - name: Mac build_android_host_app_with_module_source
     recipe: devicelab/devicelab_drone
     timeout: 60
+    presubmit: false
     properties:
       dependencies: >-
         [
@@ -5791,6 +5798,7 @@
   - name: Windows build_android_host_app_with_module_source
     recipe: devicelab/devicelab_drone
     timeout: 60
+    presubmit: false
     properties:
       dependencies: >-
         [
diff --git a/.github/labeler.yml b/.github/labeler.yml
index 35c9165..2b57f9b 100644
--- a/.github/labeler.yml
+++ b/.github/labeler.yml
@@ -63,7 +63,8 @@
 engine:
   - changed-files:
     - any-glob-to-any-file:
-      - bin/internal/engine.version
+      - DEPS
+      - engine/**/*
       - docs/engine/**/*
 
 'f: cupertino':
diff --git a/bin/internal/README.md b/bin/internal/README.md
index 8e7047f..dcb8813 100644
--- a/bin/internal/README.md
+++ b/bin/internal/README.md
@@ -1,23 +1,11 @@
-## Flutter SDK dependency versions
+# Flutter SDK dependency versions
 
 The files in this directory specifies pinned versions of various
 dependencies of the flutter SDK.
 
-The `bin/internal/engine.version` file controls which version of the
-Flutter engine to use. The file contains the commit hash of a commit
-in the <https://github.com/flutter/engine> repository. That hash must
-have successfully been compiled on
-<https://build.chromium.org/p/client.flutter/> and had its artifacts
-(the binaries that run on Android and iOS, the compiler, etc)
-successfully uploaded to Google Cloud Storage.
-
-The `/bin/internal/engine.merge_method` file controls how we merge a
-pull request created by the engine auto-roller. If it's `squash`,
-there's only one commit for a pull request no matter how many engine
-commits there are inside that pull request. If it's `rebase`, the
-number of commits in the framework is equal to the number of engine
-commits in the pull request. The latter method makes it easier to
-detect regressions but costs more test resources.
+The `bin/internal/engine.version` file controls where to find compiled artifacts
+of the engine. These artifacts are compiled in the Merge Queue for every commit
+in the flutter repository.
 
 The `bin/internal/flutter_packages.version` file specifies the version
 of the `flutter/packages` repository to be used for testing. The
diff --git a/bin/internal/engine.realm b/bin/internal/engine.realm
deleted file mode 100644
index e69de29..0000000
--- a/bin/internal/engine.realm
+++ /dev/null
diff --git a/bin/internal/engine.version b/bin/internal/engine.version
deleted file mode 100644
index e6e7770..0000000
--- a/bin/internal/engine.version
+++ /dev/null
@@ -1 +0,0 @@
-6a75cb6a6a57ae5a05309a43f0fba6cd50c65752
diff --git a/bin/internal/update_dart_sdk.ps1 b/bin/internal/update_dart_sdk.ps1
index dd7cafa..5f3c6ee 100644
--- a/bin/internal/update_dart_sdk.ps1
+++ b/bin/internal/update_dart_sdk.ps1
@@ -20,14 +20,45 @@
 $dartSdkPath = "$cachePath\dart-sdk"
 $dartSdkLicense = "$cachePath\LICENSE.dart_sdk_archive.md"
 $engineStamp = "$cachePath\engine-dart-sdk.stamp"
-$engineRealm = (Get-Content "$flutterRoot\bin\internal\engine.realm")
+$engineRealm = ""
 
-if (Test-Path "$flutterRoot\bin\internal\engine.version") {
-    $engineVersion = (Get-Content "$flutterRoot\bin\internal\engine.version")
-} else {
+# Test for fusion repository
+if ((Test-Path "$flutterRoot\DEPS" -PathType Leaf) -and (Test-Path "$flutterRoot\engine\src\.gn" -PathType Leaf)) {
     # Calculate the engine hash from tracked git files.
-    $lsTree = ((git ls-tree -r HEAD engine DEPS) | Out-String).Replace("`r`n", "`n")
-    $engineVersion = (Get-FileHash -InputStream ([System.IO.MemoryStream] [System.Text.Encoding]::UTF8.GetBytes($lsTree)) -Algorithm SHA1 | ForEach-Object { $_.Hash }).ToLower()
+    $branch = (git -C "$flutterRoot" rev-parse --abbrev-ref HEAD)
+    if ($null -eq $Env:LUCI_CONTEXT) {
+        $engineVersion = (git -C "$flutterRoot"  merge-base HEAD upstream/master)
+    }
+    else {
+        $engineVersion = (git -C "$flutterRoot" rev-parse HEAD)
+    }
+
+    if (($branch -ne "stable" -and $branch -ne "beta")) {
+        # Write the engine version out so downstream tools know what to look for.
+        $utf8NoBom = New-Object System.Text.UTF8Encoding($false)
+        [System.IO.File]::WriteAllText("$flutterRoot\bin\internal\engine.version", $engineVersion, $utf8NoBom)
+
+        # The realm on CI is passed in.
+        if ($Env:FLUTTER_REALM) {
+            [System.IO.File]::WriteAllText("$flutterRoot\bin\internal\engine.realm", $Env:FLUTTER_REALM, $utf8NoBom)
+            $engineRealm = "$Env:FLUTTER_REALM"
+        }
+        else {
+            if (Test-Path -Path "$flutterRoot\bin\internal\engine.realm") {
+                $engineRealm = (Get-Content "$flutterRoot\bin\internal\engine.realm")
+            }
+        }
+    }
+    else {
+        # Release branch - these files will exist
+        $engineVersion = (Get-Content "$flutterRoot\bin\internal\engine.version")
+        $engineRealm = (Get-Content "$flutterRoot\bin\internal\engine.realm")
+    }
+}
+else {
+    # Non-fusion repository - these files will exist
+    $engineVersion = (Get-Content "$flutterRoot\bin\internal\engine.version")
+    $engineRealm = (Get-Content "$flutterRoot\bin\internal\engine.realm")
 }
 
 $oldDartSdkPrefix = "dart-sdk.old"
diff --git a/bin/internal/update_dart_sdk.sh b/bin/internal/update_dart_sdk.sh
index 5c1ea23..f33de37 100755
--- a/bin/internal/update_dart_sdk.sh
+++ b/bin/internal/update_dart_sdk.sh
@@ -19,16 +19,41 @@
 DART_SDK_PATH="$FLUTTER_ROOT/bin/cache/dart-sdk"
 DART_SDK_PATH_OLD="$DART_SDK_PATH.old"
 ENGINE_STAMP="$FLUTTER_ROOT/bin/cache/engine-dart-sdk.stamp"
-ENGINE_REALM=$(cat "$FLUTTER_ROOT/bin/internal/engine.realm" | tr -d '[:space:]')
+ENGINE_REALM=""
 OS="$(uname -s)"
 
-ENGINE_VERSION=""
-if [ -f "$FLUTTER_ROOT/bin/internal/engine.version" ]; then
-  ENGINE_VERSION=$(cat "$FLUTTER_ROOT/bin/internal/engine.version")
+# Test for fusion repository
+if [ -f "$FLUTTER_ROOT/DEPS" ] && [ -f "$FLUTTER_ROOT/engine/src/.gn" ]; then
+  BRANCH=$(git -C "$FLUTTER_ROOT" rev-parse --abbrev-ref HEAD)
+  # In a fusion repository; the engine.version comes from the git hashes.
+  if [ -z "${LUCI_CONTEXT}" ]; then
+    ENGINE_VERSION=$(git -C "$FLUTTER_ROOT" merge-base HEAD upstream/master)
+  else
+    ENGINE_VERSION=$(git -C "$FLUTTER_ROOT" rev-parse HEAD)
+  fi
+
+  if [[ "$BRANCH" != "stable" && "$BRANCH" != "beta" ]]; then
+    # Write the engine version out so downstream tools know what to look for.
+    echo $ENGINE_VERSION > "$FLUTTER_ROOT/bin/internal/engine.version"
+
+    # The realm on CI is passed in.
+    if [ -n "${FLUTTER_REALM}" ]; then
+      echo $FLUTTER_REALM > "$FLUTTER_ROOT/bin/internal/engine.realm"
+      ENGINE_REALM="$FLUTTER_REALM"
+    else
+      if [ -f "$FLUTTER_ROOT/bin/internal/engine.realm" ]; then
+        ENGINE_REALM=$(cat "$FLUTTER_ROOT/bin/internal/engine.realm" | tr -d '[:space:]')
+      fi
+    fi
+  else
+    # Release branch - these files will exist
+    ENGINE_VERSION=$(cat "$FLUTTER_ROOT/bin/internal/engine.version")
+    ENGINE_REALM=$(cat "$FLUTTER_ROOT/bin/internal/engine.realm" | tr -d '[:space:]')
+  fi
 else
-  # Calculate the engine hash from tracked git files.
-  # The array takes the first part of the sha1sum string.
-  ENGINE_VERSION=($(git ls-tree HEAD -r engine DEPS | sha1sum))
+  # Non-fusion repository - these files will exist
+  ENGINE_VERSION=$(cat "$FLUTTER_ROOT/bin/internal/engine.version")
+  ENGINE_REALM=$(cat "$FLUTTER_ROOT/bin/internal/engine.realm" | tr -d '[:space:]')
 fi
 
 if [ ! -f "$ENGINE_STAMP" ] || [ "$ENGINE_VERSION" != `cat "$ENGINE_STAMP"` ]; then
diff --git a/engine/src/.clang-format b/engine/src/.clang-format
new file mode 100644
index 0000000..6fdf1dc
--- /dev/null
+++ b/engine/src/.clang-format
@@ -0,0 +1,8 @@
+# Defines the Chromium style for automatic reformatting.
+# http://clang.llvm.org/docs/ClangFormatStyleOptions.html
+BasedOnStyle: Chromium
+# This defaults to 'Auto'. Explicitly set it for a while, so that
+# 'vector<vector<int> >' in existing files gets formatted to
+# 'vector<vector<int>>'. ('Auto' means that clang-format will only use
+# 'int>>' if the file already contains at least one such instance.)
+Standard: Cpp11
diff --git a/engine/src/.vscode/settings.json b/engine/src/.vscode/settings.json
deleted file mode 100644
index de05f5a..0000000
--- a/engine/src/.vscode/settings.json
+++ /dev/null
@@ -1,20 +0,0 @@
-{
-"clangd.path": "${workspaceFolder}/buildtools/mac-arm64/clang/bin/clangd",
-"clangd.arguments": [
-  "--compile-commands-dir=${workspaceFolder}/../out/host_debug_unopt_arm64"
-],
-"clang-format.executable": "${workspaceRoot}/buildtools/mac-arm64/clang/bin/clang-format",
-
-  // "clangd.path": "flutter/buildtools/mac-arm64/clang/bin/clangd",
-    // "clangd.arguments": [
-    //   "--compile-commands-dir=out/host_debug_unopt_arm64"
-    // ],
-    // "clang-format.executable": "flutter/buildtools/mac-arm64/clang/bin/clang-format",  
-
-    "search.followSymlinks": true,
-    "search.quickOpen.includeHistory": true,
-    "search.quickOpen.includeSymbols": false,
-    "search.useIgnoreFiles": false,
-
-    "editor.tabSize": 2,    
-}
\ No newline at end of file
diff --git a/engine/src/flutter/.ci.yaml b/engine/src/flutter/.ci.yaml
index 1a7b579..a253d02 100644
--- a/engine/src/flutter/.ci.yaml
+++ b/engine/src/flutter/.ci.yaml
@@ -396,14 +396,6 @@
       # For more details see the issue
       # at https://github.com/flutter/flutter/issues/152186.
       cores: "8"
-    runIf:
-      - DEPS
-      - engine/src/flutter/.ci.yaml
-      - engine/src/flutter/lib/web_ui/**
-      - engine/src/flutter/web_sdk/**
-      - engine/src/flutter/tools/**
-      - engine/src/flutter/ci/**
-      - engine/src/flutter/flutter_frontend_server/**
 
   - name: Linux clangd
     recipe: engine_v2/builder
diff --git a/engine/src/flutter/third_party/boringssl/BUILD.gn b/engine/src/flutter/third_party/boringssl/BUILD.gn
new file mode 100644
index 0000000..8d185ba
--- /dev/null
+++ b/engine/src/flutter/third_party/boringssl/BUILD.gn
@@ -0,0 +1,93 @@
+# Copyright 2014 The Chromium Authors
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+import("//build/config/android/config.gni")
+import("//build/config/arm.gni")
+import("//build/config/compiler/compiler.gni")
+import("//build/config/sanitizers/sanitizers.gni")
+import("//build_overrides/build.gni")
+import("src/gen/sources.gni")
+
+# Config for us and everybody else depending on BoringSSL.
+config("external_config") {
+  include_dirs = [ "src/include" ]
+  if (is_component_build) {
+    defines = [ "BORINGSSL_SHARED_LIBRARY" ]
+  }
+}
+
+# The config used by the :boringssl component itself, and the fuzzer copies.
+config("component_config") {
+  visibility = [ ":*" ]
+  configs = [ ":internal_config" ]
+  defines = [ "BORINGSSL_IMPLEMENTATION" ]
+
+  cflags_c = [ "-std=c17" ]
+}
+
+# This config is used by anything that consumes internal headers. Tests consume
+# this rather than :component_config.
+config("internal_config") {
+  visibility = [ ":*" ]
+  defines = [
+    "OPENSSL_SMALL",
+    "OPENSSL_STATIC_ARMCAP",
+  ]
+  if (is_posix) {
+    defines += [ "_XOPEN_SOURCE=700" ]
+  }
+}
+
+config("no_asm_config") {
+  visibility = [ ":*" ]
+  defines = [ "OPENSSL_NO_ASM" ]
+}
+
+# TODO(crbug.com/42290535): Move Chromium's use of libpki to the public API and
+# unexport pki_internal_headers.
+all_sources = bcm_internal_headers + bcm_sources + crypto_internal_headers +
+              crypto_sources + ssl_internal_headers + ssl_sources + pki_sources
+all_headers = crypto_headers + ssl_headers + pki_headers + pki_internal_headers
+
+if (is_msan) {
+  # MSan instrumentation is incompatible with assembly optimizations.
+  # BoringSSL's GAS-compatible assembly knows how to detect MSan, but the NASM
+  # assembly does not, so we check for MSan explicitly.
+  source_set("boringssl_asm") {
+    visibility = [ ":*" ]
+    public_configs = [ ":no_asm_config" ]
+  }
+} else if (is_win && (current_cpu == "x86" || current_cpu == "x64")) {
+  # Windows' x86 and x86_64 assembly is built with NASM.
+  source_set("boringssl_asm") {
+    visibility = [ ":*" ]
+    public_configs = [ ":no_asm_config" ]
+  }
+} else {
+  # All other targets use GAS-compatible assembler. BoringSSL's assembly files
+  # are all wrapped in processor checks for the corresponding target, so there
+  # is no need to add target conditions in the build.
+  source_set("boringssl_asm") {
+    visibility = [ ":*" ]
+    sources = rebase_path(bcm_sources_asm + crypto_sources_asm, ".", "src")
+    include_dirs = [ "src/include" ]
+  }
+}
+
+source_set("boringssl") {
+  sources = rebase_path(all_sources, ".", "src")
+  public = rebase_path(all_headers, ".", "src")
+
+  if (is_win) {
+    configs += [ ":no_asm_config" ]
+  } else {
+    deps = [ ":boringssl_asm" ]
+  }
+
+  public_configs = [ ":external_config" ]
+  configs += [ ":component_config" ]
+
+  configs -= [ "//build/config/compiler:chromium_code" ]
+  configs += [ "//build/config/compiler:no_chromium_code" ]
+}
\ No newline at end of file