Revert "flags: expire M77 flag set"

This reverts commit b5287cc86def0e4b808bb343b458a12173eb7b92.

Reason for revert:
Discussion with other teams revealed some problems with this process,
so we're going to kick this a milestone further down the road. A
postmortem will be written shortly. We will retry the process in M78
with much more upfront communication.

Original change's description:
> flags: expire M77 flag set
>
> This change implements step 2 of the process outlined in
> //docs/flag_expiry.md.  This change will be merged to the M77 branch
> after it lands so that these flags are actually expired in M77 :)
>
> This change: 1) Adds a new bit to the supported_platforms mask in
> flag entries, named
>    'kExpireM77', which is set if a flag expired in M77;
> 2) Adds a new feature "TemporaryUnexpireFlagsM77" and a matching flag
>    "temporary-unexpire-flags-m77";
> 3) Adds code to the flags UI to hide flags with kExpireM77 in their
>    supported_platforms mask unless TemporaryUnexpireFlagsM77 is
>    enabled.
> 4) Removes already-gone flags from //c/b/flag-metadata.json
> 5) Removes already-gone flags from //docs/flag_expiry.md
>
> Future iterations of this process will use two more bits in the
> supported_platforms mask, since the flag expiry process maintains a
> window of two milestones between flag expiration and final removal,
> so (e.g.) at M78 kExpireM77 and kExpireM78 will be live, and at M79
> kExpireM77 will be removed and kExpireM79 added, such that kExpireM78
> and kExpireM79 will be live.
>
> After this change, all the flags annotated with kExpireM77 show
> as "unsupported platform" in the flags UI and are greyed out. A
> follow-up change will add a specific annotation to these flags in
> that UI marking them as expired.
>
> (cherry picked from commit d488661c95cd538b90a279c7c998363eb4eb84a8)
>
> Bug: 953690
> Change-Id: I2d7361b6f3f070ecf469bf4eccb9b42b5a19d704
> Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1729449
> Commit-Queue: Elly Fong-Jones <[email protected]>
> Reviewed-by: Nico Weber <[email protected]>
> Cr-Original-Commit-Position: refs/heads/master@{#682945}
> Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1732735
> Reviewed-by: Elly Fong-Jones <[email protected]>
> Cr-Commit-Position: refs/branch-heads/3865@{#137}
> Cr-Branched-From: 0cdcc6158160790658d1f033d3db873603250124-refs/heads/master@{#681094}

[email protected],[email protected]

Bug: 953690
Change-Id: I01baa8aff3a52b9df2c716db5a0cfe58e7d7dcfa
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1742466
Reviewed-by: Elly Fong-Jones <[email protected]>
Cr-Commit-Position: refs/branch-heads/3865@{#263}
Cr-Branched-From: 0cdcc6158160790658d1f033d3db873603250124-refs/heads/master@{#681094}
diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
index c99acf6b..381531a0 100644
--- a/chrome/browser/about_flags.cc
+++ b/chrome/browser/about_flags.cc
@@ -206,7 +206,6 @@
 #endif  // defined(TOOLKIT_VIEWS)
 
 using flags_ui::FeatureEntry;
-using flags_ui::kExpireM77;
 using flags_ui::kOsAndroid;
 using flags_ui::kOsCrOS;
 using flags_ui::kOsCrOSOwnerOnly;
@@ -1226,8 +1225,7 @@
 #if defined(WEBRTC_USE_PIPEWIRE)
     {"enable-webrtc-pipewire-capturer",
      flag_descriptions::kWebrtcPipeWireCapturerName,
-     flag_descriptions::kWebrtcPipeWireCapturerDescription,
-     kOsLinux | kExpireM77,
+     flag_descriptions::kWebrtcPipeWireCapturerDescription, kOsLinux,
      FEATURE_VALUE_TYPE(features::kWebRtcPipeWireCapturer)},
 #endif  // defined(WEBRTC_USE_PIPEWIRE)
 #if !defined(OS_ANDROID)
@@ -1477,7 +1475,7 @@
      FEATURE_VALUE_TYPE(
          chromeos::features::kBluetoothAggressiveAppearanceFilter)},
     {"cryptauth-v2-enrollment", flag_descriptions::kCryptAuthV2EnrollmentName,
-     flag_descriptions::kCryptAuthV2EnrollmentDescription, kOsCrOS | kExpireM77,
+     flag_descriptions::kCryptAuthV2EnrollmentDescription, kOsCrOS,
      FEATURE_VALUE_TYPE(chromeos::features::kCryptAuthV2Enrollment)},
     {"updated_cellular_activation_ui",
      flag_descriptions::kUpdatedCellularActivationUiName,
@@ -1485,18 +1483,17 @@
      FEATURE_VALUE_TYPE(chromeos::features::kUpdatedCellularActivationUi)},
     {"use_messages_google_com_domain",
      flag_descriptions::kUseMessagesGoogleComDomainName,
-     flag_descriptions::kUseMessagesGoogleComDomainDescription,
-     kOsCrOS | kExpireM77,
+     flag_descriptions::kUseMessagesGoogleComDomainDescription, kOsCrOS,
      FEATURE_VALUE_TYPE(chromeos::features::kUseMessagesGoogleComDomain)},
     {"use_messages_staging_url", flag_descriptions::kUseMessagesStagingUrlName,
-     flag_descriptions::kUseMessagesStagingUrlDescription, kOsCrOS | kExpireM77,
+     flag_descriptions::kUseMessagesStagingUrlDescription, kOsCrOS,
      FEATURE_VALUE_TYPE(chromeos::features::kUseMessagesStagingUrl)},
     {"disable-cancel-all-touches",
      flag_descriptions::kDisableCancelAllTouchesName,
      flag_descriptions::kDisableCancelAllTouchesDescription, kOsCrOS,
      SINGLE_VALUE_TYPE(switches::kDisableCancelAllTouches)},
     {"enable_messages_web_push", flag_descriptions::kEnableMessagesWebPushName,
-     flag_descriptions::kEnableMessagesWebPushDescription, kOsCrOS | kExpireM77,
+     flag_descriptions::kEnableMessagesWebPushDescription, kOsCrOS,
      FEATURE_VALUE_TYPE(chromeos::features::kEnableMessagesWebPush)},
     {
         "enable-background-blur",
@@ -1511,8 +1508,7 @@
      FEATURE_VALUE_TYPE(features::kNotificationIndicator)},
     {"enable-app-list-search-autocomplete",
      flag_descriptions::kEnableAppListSearchAutocompleteName,
-     flag_descriptions::kEnableAppListSearchAutocompleteDescription,
-     kOsCrOS | kExpireM77,
+     flag_descriptions::kEnableAppListSearchAutocompleteDescription, kOsCrOS,
      FEATURE_VALUE_TYPE(app_list_features::kEnableAppListSearchAutocomplete)},
     {"list-all-display-modes", flag_descriptions::kListAllDisplayModesName,
      flag_descriptions::kListAllDisplayModesDescription, kOsCrOS,
@@ -1525,8 +1521,7 @@
      FEATURE_VALUE_TYPE(device::kNewblueDaemon)},
     {"unfiltered-bluetooth-devices",
      flag_descriptions::kUnfilteredBluetoothDevicesName,
-     flag_descriptions::kUnfilteredBluetoothDevicesDescription,
-     kOsCrOS | kExpireM77,
+     flag_descriptions::kUnfilteredBluetoothDevicesDescription, kOsCrOS,
      FEATURE_VALUE_TYPE(device::kUnfilteredBluetoothDevices)},
     {"shelf-dense-clamshell", flag_descriptions::kShelfDenseClamshellName,
      flag_descriptions::kShelfDenseClamshellDescription, kOsCrOS,
@@ -1586,14 +1581,13 @@
      SINGLE_VALUE_TYPE(switches::kUISlowAnimations)},
     {"ui-show-composited-layer-borders",
      flag_descriptions::kUiShowCompositedLayerBordersName,
-     flag_descriptions::kUiShowCompositedLayerBordersDescription,
-     kOsCrOS | kExpireM77,
+     flag_descriptions::kUiShowCompositedLayerBordersDescription, kOsCrOS,
      MULTI_VALUE_TYPE(kUiShowCompositedLayerBordersChoices)},
     {"enable-request-tablet-site", flag_descriptions::kRequestTabletSiteName,
      flag_descriptions::kRequestTabletSiteDescription, kOsCrOS,
      SINGLE_VALUE_TYPE(chromeos::switches::kEnableRequestTabletSite)},
     {"force-use-chrome-camera", flag_descriptions::kForceUseChromeCameraName,
-     flag_descriptions::kForceUseChromeCameraDescription, kOsCrOS | kExpireM77,
+     flag_descriptions::kForceUseChromeCameraDescription, kOsCrOS,
      SINGLE_VALUE_TYPE(chromeos::switches::kForceUseChromeCamera)},
 #endif  // OS_CHROMEOS
     {"debug-packed-apps", flag_descriptions::kDebugPackedAppName,
@@ -1808,8 +1802,7 @@
 #endif  // OS_CHROMEOS
 #if defined(OS_CHROMEOS)
     {"wake-on-wifi-packet", flag_descriptions::kWakeOnPacketsName,
-     flag_descriptions::kWakeOnPacketsDescription,
-     kOsCrOSOwnerOnly | kExpireM77,
+     flag_descriptions::kWakeOnPacketsDescription, kOsCrOSOwnerOnly,
      SINGLE_VALUE_TYPE(chromeos::switches::kWakeOnWifiPacket)},
 #endif  // OS_CHROMEOS
     {"reduced-referrer-granularity",
@@ -2054,7 +2047,7 @@
     {"offline-pages-load-signal-collecting",
      flag_descriptions::kOfflinePagesLoadSignalCollectingName,
      flag_descriptions::kOfflinePagesLoadSignalCollectingDescription,
-     kOsAndroid | kExpireM77,
+     kOsAndroid,
      FEATURE_VALUE_TYPE(
          offline_pages::kOfflinePagesLoadSignalCollectingFeature)},
     {"offline-pages-live-page-sharing",
@@ -2080,7 +2073,7 @@
     {"offline-pages-resource-based-snapshot",
      flag_descriptions::kOfflinePagesResourceBasedSnapshotName,
      flag_descriptions::kOfflinePagesResourceBasedSnapshotDescription,
-     kOsAndroid | kExpireM77,
+     kOsAndroid,
      FEATURE_VALUE_TYPE(
          offline_pages::kOfflinePagesResourceBasedSnapshotFeature)},
     {"offline-pages-renovations",
@@ -2106,14 +2099,12 @@
                                     "OfflineIndicator")},
     {"offline-indicator-always-http-probe",
      flag_descriptions::kOfflineIndicatorAlwaysHttpProbeName,
-     flag_descriptions::kOfflineIndicatorAlwaysHttpProbeDescription,
-     kOsAndroid | kExpireM77,
+     flag_descriptions::kOfflineIndicatorAlwaysHttpProbeDescription, kOsAndroid,
      FEATURE_VALUE_TYPE(
          offline_pages::kOfflineIndicatorAlwaysHttpProbeFeature)},
     {"on-the-fly-mhtml-hash-computation",
      flag_descriptions::kOnTheFlyMhtmlHashComputationName,
-     flag_descriptions::kOnTheFlyMhtmlHashComputationDescription,
-     kOsAndroid | kExpireM77,
+     flag_descriptions::kOnTheFlyMhtmlHashComputationDescription, kOsAndroid,
      FEATURE_VALUE_TYPE(offline_pages::kOnTheFlyMhtmlHashComputationFeature)},
     {"android-picture-in-picture-api",
      flag_descriptions::kAndroidPictureInPictureAPIName,
@@ -2233,7 +2224,7 @@
     {"offline-pages-ct-suppress-completed-notification",
      flag_descriptions::kOfflinePagesCTSuppressNotificationsName,
      flag_descriptions::kOfflinePagesCTSuppressNotificationsDescription,
-     kOsAndroid | kExpireM77,
+     kOsAndroid,
      FEATURE_VALUE_TYPE(
          offline_pages::kOfflinePagesCTSuppressNotificationsFeature)},
 #endif  // OS_ANDROID
@@ -2268,23 +2259,21 @@
 #endif  // defined(OS_LINUX) && !defined(OS_CHROMEOS)
     {"enable-experimental-accessibility-features",
      flag_descriptions::kExperimentalAccessibilityFeaturesName,
-     flag_descriptions::kExperimentalAccessibilityFeaturesDescription,
-     kOsCrOS | kExpireM77,
+     flag_descriptions::kExperimentalAccessibilityFeaturesDescription, kOsCrOS,
      SINGLE_VALUE_TYPE(::switches::kEnableExperimentalAccessibilityFeatures)},
     {"enable-experimental-accessibility-language-detection",
      flag_descriptions::kExperimentalAccessibilityLanguageDetectionName,
      flag_descriptions::kExperimentalAccessibilityLanguageDetectionDescription,
-     kOsCrOS | kExpireM77,
+     kOsCrOS,
      SINGLE_VALUE_TYPE(
          ::switches::kEnableExperimentalAccessibilityLanguageDetection)},
 #if defined(OS_CHROMEOS)
     {"enable-bulk-printers", flag_descriptions::kBulkPrintersName,
-     flag_descriptions::kBulkPrintersDescription, kOsCrOS | kExpireM77,
+     flag_descriptions::kBulkPrintersDescription, kOsCrOS,
      FEATURE_VALUE_TYPE(features::kBulkPrinters)},
     {"enable-encryption-migration",
      flag_descriptions::kEnableEncryptionMigrationName,
-     flag_descriptions::kEnableEncryptionMigrationDescription,
-     kOsCrOS | kExpireM77,
+     flag_descriptions::kEnableEncryptionMigrationDescription, kOsCrOS,
      ENABLE_DISABLE_VALUE_TYPE(
          chromeos::switches::kEnableEncryptionMigration,
          chromeos::switches::kDisableEncryptionMigration)},
@@ -2334,20 +2323,19 @@
 #if !defined(OS_ANDROID) && defined(GOOGLE_CHROME_BUILD)
     {"enable-google-branded-context-menu",
      flag_descriptions::kGoogleBrandedContextMenuName,
-     flag_descriptions::kGoogleBrandedContextMenuDescription,
-     kOsDesktop | kExpireM77,
+     flag_descriptions::kGoogleBrandedContextMenuDescription, kOsDesktop,
      FEATURE_VALUE_TYPE(features::kGoogleBrandedContextMenu)},
 #endif  // !OS_ANDROID && GOOGLE_CHROME_BUILD
 #if defined(OS_MACOSX)
     {"enable-immersive-fullscreen-toolbar",
      flag_descriptions::kImmersiveFullscreenName,
-     flag_descriptions::kImmersiveFullscreenDescription, kOsMac | kExpireM77,
+     flag_descriptions::kImmersiveFullscreenDescription, kOsMac,
      FEATURE_VALUE_TYPE(features::kImmersiveFullscreen)},
 #endif  // OS_MACOSX
     {"rewrite-leveldb-on-deletion",
      flag_descriptions::kRewriteLevelDBOnDeletionName,
-     flag_descriptions::kRewriteLevelDBOnDeletionDescription,
-     kOsAll | kExpireM77, FEATURE_VALUE_TYPE(leveldb::kLevelDBRewriteFeature)},
+     flag_descriptions::kRewriteLevelDBOnDeletionDescription, kOsAll,
+     FEATURE_VALUE_TYPE(leveldb::kLevelDBRewriteFeature)},
     {"passive-listener-default",
      flag_descriptions::kPassiveEventListenerDefaultName,
      flag_descriptions::kPassiveEventListenerDefaultDescription, kOsAll,
@@ -2358,8 +2346,7 @@
      FEATURE_VALUE_TYPE(features::kPassiveDocumentEventListeners)},
     {"document-passive-wheel-event-listeners",
      flag_descriptions::kPassiveDocumentWheelEventListenersName,
-     flag_descriptions::kPassiveDocumentWheelEventListenersDescription,
-     kOsAll | kExpireM77,
+     flag_descriptions::kPassiveDocumentWheelEventListenersDescription, kOsAll,
      FEATURE_VALUE_TYPE(features::kPassiveDocumentWheelEventListeners)},
     {"passive-event-listeners-due-to-fling",
      flag_descriptions::kPassiveEventListenersDueToFlingName,
@@ -2392,18 +2379,17 @@
 #endif  // OS_ANDROID
 #if defined(OS_CHROMEOS)
     {"arc-available-for-child", flag_descriptions::kArcAvailableForChildName,
-     flag_descriptions::kArcAvailableForChildDescription, kOsCrOS | kExpireM77,
+     flag_descriptions::kArcAvailableForChildDescription, kOsCrOS,
      FEATURE_VALUE_TYPE(arc::kAvailableForChildAccountFeature)},
     {"arc-boot-completed-broadcast", flag_descriptions::kArcBootCompleted,
-     flag_descriptions::kArcBootCompletedDescription, kOsCrOS | kExpireM77,
+     flag_descriptions::kArcBootCompletedDescription, kOsCrOS,
      FEATURE_VALUE_TYPE(arc::kBootCompletedBroadcastFeature)},
     {"arc-custom-tabs-experiment",
      flag_descriptions::kArcCustomTabsExperimentName,
-     flag_descriptions::kArcCustomTabsExperimentDescription,
-     kOsCrOS | kExpireM77,
+     flag_descriptions::kArcCustomTabsExperimentDescription, kOsCrOS,
      FEATURE_VALUE_TYPE(arc::kCustomTabsExperimentFeature)},
     {"arc-documents-provider", flag_descriptions::kArcDocumentsProviderName,
-     flag_descriptions::kArcDocumentsProviderDescription, kOsCrOS | kExpireM77,
+     flag_descriptions::kArcDocumentsProviderDescription, kOsCrOS,
      FEATURE_VALUE_TYPE(arc::kEnableDocumentsProviderInFilesAppFeature)},
     {"arc-file-picker-experiment",
      flag_descriptions::kArcFilePickerExperimentName,
@@ -2411,26 +2397,24 @@
      FEATURE_VALUE_TYPE(arc::kFilePickerExperimentFeature)},
     {"arc-graphics-buffer-visualization-tool",
      flag_descriptions::kArcGraphicBuffersVisualizationToolName,
-     flag_descriptions::kArcGraphicBuffersVisualizationToolDescription,
-     kOsCrOS | kExpireM77,
+     flag_descriptions::kArcGraphicBuffersVisualizationToolDescription, kOsCrOS,
      FEATURE_VALUE_TYPE(arc::kGraphicBuffersVisualizationTool)},
     {"arc-native-bridge-experiment",
      flag_descriptions::kArcNativeBridgeExperimentName,
-     flag_descriptions::kArcNativeBridgeExperimentDescription,
-     kOsCrOS | kExpireM77,
+     flag_descriptions::kArcNativeBridgeExperimentDescription, kOsCrOS,
      FEATURE_VALUE_TYPE(arc::kNativeBridgeExperimentFeature)},
     {"arc-print-spooler-experiment",
      flag_descriptions::kArcPrintSpoolerExperimentName,
      flag_descriptions::kArcPrintSpoolerExperimentDescription, kOsCrOS,
      FEATURE_VALUE_TYPE(arc::kPrintSpoolerExperimentFeature)},
     {"arc-usb-host", flag_descriptions::kArcUsbHostName,
-     flag_descriptions::kArcUsbHostDescription, kOsCrOS | kExpireM77,
+     flag_descriptions::kArcUsbHostDescription, kOsCrOS,
      FEATURE_VALUE_TYPE(arc::kUsbHostFeature)},
     {"arc-usb-storage-ui", flag_descriptions::kArcUsbStorageUIName,
      flag_descriptions::kArcUsbStorageUIDescription, kOsCrOS,
      FEATURE_VALUE_TYPE(arc::kUsbStorageUIFeature)},
     {"arc-vpn", flag_descriptions::kArcVpnName,
-     flag_descriptions::kArcVpnDescription, kOsCrOS | kExpireM77,
+     flag_descriptions::kArcVpnDescription, kOsCrOS,
      FEATURE_VALUE_TYPE(arc::kVpnFeature)},
 #endif  // OS_CHROMEOS
 #if defined(OS_WIN)
@@ -2483,7 +2467,7 @@
          kEnableAutofillCreditCardUploadEditableCardholderNameName,
      flag_descriptions::
          kEnableAutofillCreditCardUploadEditableCardholderNameDescription,
-     kOsAll | kExpireM77,
+     kOsAll,
      FEATURE_VALUE_TYPE(
          autofill::features::kAutofillUpstreamEditableCardholderName)},
     {"enable-autofill-credit-card-upload-editable-expiration-date",
@@ -2491,40 +2475,39 @@
          kEnableAutofillCreditCardUploadEditableExpirationDateName,
      flag_descriptions::
          kEnableAutofillCreditCardUploadEditableExpirationDateDescription,
-     kOsAll | kExpireM77,
+     kOsAll,
      FEATURE_VALUE_TYPE(
          autofill::features::kAutofillUpstreamEditableExpirationDate)},
     {"enable-autofill-do-not-upload-save-unsupported-cards",
      flag_descriptions::kEnableAutofillDoNotUploadSaveUnsupportedCardsName,
      flag_descriptions::
          kEnableAutofillDoNotUploadSaveUnsupportedCardsDescription,
-     kOsAll | kExpireM77,
+     kOsAll,
      FEATURE_VALUE_TYPE(
          autofill::features::kAutofillDoNotUploadSaveUnsupportedCards)},
     {"enable-autofill-import-non-focusable-credit-card-forms",
      flag_descriptions::kEnableAutofillImportNonFocusableCreditCardFormsName,
      flag_descriptions::
          kEnableAutofillImportNonFocusableCreditCardFormsDescription,
-     kOsAll | kExpireM77,
+     kOsAll,
      FEATURE_VALUE_TYPE(
          autofill::features::kAutofillImportNonFocusableCreditCardForms)},
     {"enable-autofill-import-dynamic-forms",
      flag_descriptions::kEnableAutofillImportDynamicFormsName,
-     flag_descriptions::kEnableAutofillImportDynamicFormsDescription,
-     kOsAll | kExpireM77,
+     flag_descriptions::kEnableAutofillImportDynamicFormsDescription, kOsAll,
      FEATURE_VALUE_TYPE(autofill::features::kAutofillImportDynamicForms)},
     {"enable-autofill-local-card-migration-uses-strike-system-v2",
      flag_descriptions::kEnableAutofillLocalCardMigrationUsesStrikeSystemV2Name,
      flag_descriptions::
          kEnableAutofillLocalCardMigrationUsesStrikeSystemV2Description,
-     kOsAll | kExpireM77,
+     kOsAll,
      FEATURE_VALUE_TYPE(
          autofill::features::kAutofillLocalCardMigrationUsesStrikeSystemV2)},
     {"enable-autofill-send-experiment-ids-in-payments-rpcs",
      flag_descriptions::kEnableAutofillSendExperimentIdsInPaymentsRPCsName,
      flag_descriptions::
          kEnableAutofillSendExperimentIdsInPaymentsRPCsDescription,
-     kOsAll | kExpireM77,
+     kOsAll,
      FEATURE_VALUE_TYPE(
          autofill::features::kAutofillSendExperimentIdsInPaymentsRPCs)},
 
@@ -2549,8 +2532,7 @@
 #if defined(OS_CHROMEOS)
     {"android-files-in-files-app",
      flag_descriptions::kShowAndroidFilesInFilesAppName,
-     flag_descriptions::kShowAndroidFilesInFilesAppDescription,
-     kOsCrOS | kExpireM77,
+     flag_descriptions::kShowAndroidFilesInFilesAppDescription, kOsCrOS,
      ENABLE_DISABLE_VALUE_TYPE(
          chromeos::switches::kShowAndroidFilesInFilesApp,
          chromeos::switches::kHideAndroidFilesInFilesApp)},
@@ -2565,7 +2547,7 @@
      flag_descriptions::kCrostiniUsbAllowUnsupportedDescription, kOsCrOS,
      FEATURE_VALUE_TYPE(chromeos::features::kCrostiniUsbAllowUnsupported)},
     {"crostini-usb-support", flag_descriptions::kCrostiniUsbSupportName,
-     flag_descriptions::kCrostiniUsbSupportDescription, kOsCrOS | kExpireM77,
+     flag_descriptions::kCrostiniUsbSupportDescription, kOsCrOS,
      FEATURE_VALUE_TYPE(chromeos::features::kCrostiniUsbSupport)},
     {"file-manager-feedback-panel",
      flag_descriptions::kFileManagerFeedbackPanelName,
@@ -2582,11 +2564,10 @@
 
 #if defined(OS_WIN)
     {"gdi-text-printing", flag_descriptions::kGdiTextPrinting,
-     flag_descriptions::kGdiTextPrintingDescription, kOsWin | kExpireM77,
+     flag_descriptions::kGdiTextPrintingDescription, kOsWin,
      FEATURE_VALUE_TYPE(features::kGdiTextPrinting)},
     {"postscript-printing", flag_descriptions::kDisablePostscriptPrinting,
-     flag_descriptions::kDisablePostscriptPrintingDescription,
-     kOsWin | kExpireM77,
+     flag_descriptions::kDisablePostscriptPrintingDescription, kOsWin,
      FEATURE_VALUE_TYPE(features::kDisablePostScriptPrinting)},
 #endif  // defined(OS_WIN)
 
@@ -2627,8 +2608,7 @@
 #if defined(OS_LINUX) || defined(OS_MACOSX) || defined(OS_WIN)
     {"omnibox-experimental-keyword-mode",
      flag_descriptions::kOmniboxExperimentalKeywordModeName,
-     flag_descriptions::kOmniboxExperimentalKeywordModeDescription,
-     kOsDesktop | kExpireM77,
+     flag_descriptions::kOmniboxExperimentalKeywordModeDescription, kOsDesktop,
      FEATURE_VALUE_TYPE(omnibox::kExperimentalKeywordMode)},
     {"omnibox-reverse-answers", flag_descriptions::kOmniboxReverseAnswersName,
      flag_descriptions::kOmniboxReverseAnswersDescription, kOsDesktop,
@@ -2827,7 +2807,7 @@
 
 #if defined(OS_CHROMEOS)
     {"handwriting-gesture", flag_descriptions::kHandwritingGestureName,
-     flag_descriptions::kHandwritingGestureDescription, kOsCrOS | kExpireM77,
+     flag_descriptions::kHandwritingGestureDescription, kOsCrOS,
      FEATURE_VALUE_TYPE(features::kHandwritingGesture)},
 #endif  // OS_CHROMEOS
 
@@ -3009,7 +2989,7 @@
      FEATURE_VALUE_TYPE(blink::features::kStopNonTimersInBackground)},
 
     {"stop-in-background", flag_descriptions::kStopInBackgroundName,
-     flag_descriptions::kStopInBackgroundDescription, kOsAndroid | kExpireM77,
+     flag_descriptions::kStopInBackgroundDescription, kOsAndroid,
      FEATURE_VALUE_TYPE(blink::features::kStopInBackground)},
 
     {"enable-network-logging-to-file",
@@ -3088,7 +3068,7 @@
 #if BUILDFLAG(ENABLE_PDF)
 #if defined(OS_CHROMEOS)
     {"pdf-annotations", flag_descriptions::kPdfAnnotations,
-     flag_descriptions::kPdfAnnotationsDescription, kOsCrOS | kExpireM77,
+     flag_descriptions::kPdfAnnotationsDescription, kOsCrOS,
      FEATURE_VALUE_TYPE(chrome_pdf::features::kPDFAnnotations)},
 #endif  // defined(OS_CHROMEOS)
 
@@ -3133,7 +3113,7 @@
      flag_descriptions::kAutofillRestrictUnownedFieldsToFormlessCheckoutName,
      flag_descriptions::
          kAutofillRestrictUnownedFieldsToFormlessCheckoutDescription,
-     kOsAll | kExpireM77,
+     kOsAll,
      FEATURE_VALUE_TYPE(
          autofill::features::kAutofillRestrictUnownedFieldsToFormlessCheckout)},
 
@@ -3223,8 +3203,7 @@
 
     {"autofill-enable-company-name",
      flag_descriptions::kAutofillEnableCompanyNameName,
-     flag_descriptions::kAutofillEnableCompanyNameDescription,
-     kOsAll | kExpireM77,
+     flag_descriptions::kAutofillEnableCompanyNameDescription, kOsAll,
      FEATURE_VALUE_TYPE(autofill::features::kAutofillEnableCompanyName)},
 
     {"autofill-enable-toolbar-status-chip",
@@ -3237,19 +3216,19 @@
      flag_descriptions::kAutofillEnforceMinRequiredFieldsForHeuristicsName,
      flag_descriptions::
          kAutofillEnforceMinRequiredFieldsForHeuristicsDescription,
-     kOsAll | kExpireM77,
+     kOsAll,
      FEATURE_VALUE_TYPE(
          autofill::features::kAutofillEnforceMinRequiredFieldsForHeuristics)},
     {"autofill-enforce-min-required-fields-for-query",
      flag_descriptions::kAutofillEnforceMinRequiredFieldsForQueryName,
      flag_descriptions::kAutofillEnforceMinRequiredFieldsForQueryDescription,
-     kOsAll | kExpireM77,
+     kOsAll,
      FEATURE_VALUE_TYPE(
          autofill::features::kAutofillEnforceMinRequiredFieldsForQuery)},
     {"autofill-enforce-min-required-fields-for-upload",
      flag_descriptions::kAutofillEnforceMinRequiredFieldsForUploadName,
      flag_descriptions::kAutofillEnforceMinRequiredFieldsForUploadDescription,
-     kOsAll | kExpireM77,
+     kOsAll,
      FEATURE_VALUE_TYPE(
          autofill::features::kAutofillEnforceMinRequiredFieldsForUpload)},
     {"autofill-no-local-save-on-upload-success",
@@ -3259,8 +3238,7 @@
          autofill::features::kAutofillNoLocalSaveOnUploadSuccess)},
     {"autofill-rich-metadata-queries",
      flag_descriptions::kAutofillRichMetadataQueriesName,
-     flag_descriptions::kAutofillRichMetadataQueriesDescription,
-     kOsAll | kExpireM77,
+     flag_descriptions::kAutofillRichMetadataQueriesDescription, kOsAll,
      FEATURE_VALUE_TYPE(autofill::features::kAutofillRichMetadataQueries)},
     {"enable-experimental-productivity-features",
      flag_descriptions::kExperimentalProductivityFeaturesName,
@@ -3282,8 +3260,7 @@
 
     {"unsafely-treat-insecure-origin-as-secure",
      flag_descriptions::kTreatInsecureOriginAsSecureName,
-     flag_descriptions::kTreatInsecureOriginAsSecureDescription,
-     kOsAll | kExpireM77,
+     flag_descriptions::kTreatInsecureOriginAsSecureDescription, kOsAll,
      ORIGIN_LIST_VALUE_TYPE(
          network::switches::kUnsafelyTreatInsecureOriginAsSecure,
          "")},
@@ -3328,7 +3305,7 @@
      flag_descriptions::kCCTModuleDescription, kOsAndroid,
      FEATURE_VALUE_TYPE(chrome::android::kCCTModule)},
     {"cct-module-cache", flag_descriptions::kCCTModuleCacheName,
-     flag_descriptions::kCCTModuleCacheDescription, kOsAndroid | kExpireM77,
+     flag_descriptions::kCCTModuleCacheDescription, kOsAndroid,
      FEATURE_WITH_PARAMS_VALUE_TYPE(chrome::android::kCCTModuleCache,
                                     kCCTModuleCacheVariations,
                                     "CCTModule")},
@@ -3337,21 +3314,17 @@
      FEATURE_VALUE_TYPE(chrome::android::kCCTModuleCustomHeader)},
     {"cct-module-custom-request-header",
      flag_descriptions::kCCTModuleCustomRequestHeaderName,
-     flag_descriptions::kCCTModuleCustomRequestHeaderDescription,
-     kOsAndroid | kExpireM77,
+     flag_descriptions::kCCTModuleCustomRequestHeaderDescription, kOsAndroid,
      FEATURE_VALUE_TYPE(chrome::android::kCCTModuleCustomRequestHeader)},
     {"cct-module-dex-loading", flag_descriptions::kCCTModuleDexLoadingName,
-     flag_descriptions::kCCTModuleDexLoadingDescription,
-     kOsAndroid | kExpireM77,
+     flag_descriptions::kCCTModuleDexLoadingDescription, kOsAndroid,
      FEATURE_VALUE_TYPE(chrome::android::kCCTModuleDexLoading)},
     {"cct-module-post-message", flag_descriptions::kCCTModulePostMessageName,
-     flag_descriptions::kCCTModulePostMessageDescription,
-     kOsAndroid | kExpireM77,
+     flag_descriptions::kCCTModulePostMessageDescription, kOsAndroid,
      FEATURE_VALUE_TYPE(chrome::android::kCCTModulePostMessage)},
     {"cct-module-use-intent-extras",
      flag_descriptions::kCCTModuleUseIntentExtrasName,
-     flag_descriptions::kCCTModuleUseIntentExtrasDescription,
-     kOsAndroid | kExpireM77,
+     flag_descriptions::kCCTModuleUseIntentExtrasDescription, kOsAndroid,
      FEATURE_VALUE_TYPE(chrome::android::kCCTModuleUseIntentExtras)},
 #endif
 
@@ -3359,7 +3332,7 @@
     {"session-restore-prioritizes-background-use-cases",
      flag_descriptions::kSessionRestorePrioritizesBackgroundUseCasesName,
      flag_descriptions::kSessionRestorePrioritizesBackgroundUseCasesDescription,
-     kOsDesktop | kExpireM77,
+     kOsDesktop,
      FEATURE_VALUE_TYPE(
          features::kSessionRestorePrioritizesBackgroundUseCases)},
     {"proactive-tab-freeze-and-discard",
@@ -3373,7 +3346,7 @@
 
 #if defined(OS_CHROMEOS)
     {"enable-arc-cups-api", flag_descriptions::kArcCupsApiName,
-     flag_descriptions::kArcCupsApiDescription, kOsCrOS | kExpireM77,
+     flag_descriptions::kArcCupsApiDescription, kOsCrOS,
      FEATURE_VALUE_TYPE(features::kArcCupsApi)},
     {"enable-cros-vm-cups-proxy", flag_descriptions::kCrosVmCupsProxyName,
      flag_descriptions::kCrosVmCupsProxyDescription, kOsCrOS,
@@ -3382,29 +3355,27 @@
 
 #if defined(OS_CHROMEOS)
     {"enable-myfiles-volume", flag_descriptions::kEnableMyFilesVolumeName,
-     flag_descriptions::kEnableMyFilesVolumeDescription, kOsCrOS | kExpireM77,
+     flag_descriptions::kEnableMyFilesVolumeDescription, kOsCrOS,
      FEATURE_VALUE_TYPE(chromeos::features::kMyFilesVolume)},
 #endif  // OS_CHROMEOS
 
 #if defined(OS_CHROMEOS)
     {"enable-native-controls",
      flag_descriptions::kEnableVideoPlayerNativeControlsName,
-     flag_descriptions::kEnableVideoPlayerNativeControlsDescription,
-     kOsCrOS | kExpireM77,
+     flag_descriptions::kEnableVideoPlayerNativeControlsDescription, kOsCrOS,
      FEATURE_VALUE_TYPE(chromeos::features::kVideoPlayerNativeControls)},
 #endif
 
 #if defined(OS_ANDROID)
     {"background-task-component-update",
      flag_descriptions::kBackgroundTaskComponentUpdateName,
-     flag_descriptions::kBackgroundTaskComponentUpdateDescription,
-     kOsAndroid | kExpireM77,
+     flag_descriptions::kBackgroundTaskComponentUpdateDescription, kOsAndroid,
      FEATURE_VALUE_TYPE(chrome::android::kBackgroundTaskComponentUpdate)},
 #endif
 
 #if defined(OS_CHROMEOS)
     {"smart-text-selection", flag_descriptions::kSmartTextSelectionName,
-     flag_descriptions::kSmartTextSelectionDescription, kOsCrOS | kExpireM77,
+     flag_descriptions::kSmartTextSelectionDescription, kOsCrOS,
      FEATURE_VALUE_TYPE(arc::kSmartTextSelectionFeature)},
 #endif  // OS_CHROMEOS
 
@@ -3438,8 +3409,7 @@
 #if defined(OS_CHROMEOS)
     {"enable-zero-state-suggestions",
      flag_descriptions::kEnableZeroStateSuggestionsName,
-     flag_descriptions::kEnableZeroStateSuggestionsDescription,
-     kOsCrOS | kExpireM77,
+     flag_descriptions::kEnableZeroStateSuggestionsDescription, kOsCrOS,
      FEATURE_VALUE_TYPE(app_list_features::kEnableZeroStateSuggestions)},
     {"enable-zero-state-app-reinstall-suggestions",
      flag_descriptions::kEnableAppReinstallZeroStateName,
@@ -3487,8 +3457,7 @@
 #if defined(OS_CHROMEOS)
     {"enable-chromeos-account-manager",
      flag_descriptions::kEnableChromeOsAccountManagerName,
-     flag_descriptions::kEnableChromeOsAccountManagerDescription,
-     kOsCrOS | kExpireM77,
+     flag_descriptions::kEnableChromeOsAccountManagerDescription, kOsCrOS,
      FEATURE_VALUE_TYPE(chromeos::switches::kAccountManager)},
 #endif
 
@@ -3502,8 +3471,7 @@
 #if defined(OS_WIN)
     {"calculate-native-win-occlusion",
      flag_descriptions::kCalculateNativeWinOcclusionName,
-     flag_descriptions::kCalculateNativeWinOcclusionDescription,
-     kOsWin | kExpireM77,
+     flag_descriptions::kCalculateNativeWinOcclusionDescription, kOsWin,
      FEATURE_VALUE_TYPE(features::kCalculateNativeWinOcclusion)},
 #endif  // OS_WIN
 
@@ -3536,12 +3504,11 @@
      flag_descriptions::kUsbguardDescription, kOsCrOS,
      FEATURE_VALUE_TYPE(features::kUsbguard)},
     {"enable-fs-nosymfollow", flag_descriptions::kFsNosymfollowName,
-     flag_descriptions::kFsNosymfollowDescription, kOsCrOS | kExpireM77,
+     flag_descriptions::kFsNosymfollowDescription, kOsCrOS,
      FEATURE_VALUE_TYPE(chromeos::features::kFsNosymfollow)},
     {"enable-arc-unified-audio-focus",
      flag_descriptions::kEnableArcUnifiedAudioFocusName,
-     flag_descriptions::kEnableArcUnifiedAudioFocusDescription,
-     kOsCrOS | kExpireM77,
+     flag_descriptions::kEnableArcUnifiedAudioFocusDescription, kOsCrOS,
      FEATURE_VALUE_TYPE(arc::kEnableUnifiedAudioFocusFeature)},
 #endif  // defined(OS_CHROMEOS)
 
@@ -3583,12 +3550,11 @@
 #if defined(OS_CHROMEOS)
     {"enable-native-google-assistant",
      flag_descriptions::kEnableGoogleAssistantName,
-     flag_descriptions::kEnableGoogleAssistantDescription, kOsCrOS | kExpireM77,
+     flag_descriptions::kEnableGoogleAssistantDescription, kOsCrOS,
      FEATURE_VALUE_TYPE(chromeos::switches::kAssistantFeature)},
 
     {"enable-assistant-dsp", flag_descriptions::kEnableGoogleAssistantDspName,
-     flag_descriptions::kEnableGoogleAssistantDspDescription,
-     kOsCrOS | kExpireM77,
+     flag_descriptions::kEnableGoogleAssistantDspDescription, kOsCrOS,
      FEATURE_VALUE_TYPE(chromeos::assistant::features::kEnableDspHotword)},
 
     {"enable-assistant-app-support",
@@ -3674,15 +3640,14 @@
     {"allow-remote-context-for-notifications",
      flag_descriptions::kAllowRemoteContextForNotificationsName,
      flag_descriptions::kAllowRemoteContextForNotificationsDescription,
-     kOsAndroid | kExpireM77,
+     kOsAndroid,
      FEATURE_VALUE_TYPE(chrome::android::kAllowRemoteContextForNotifications)},
 #endif  // defined(OS_ANDROID)
 
 #if defined(OS_CHROMEOS)
     {"ash-enable-pip-rounded-corners",
      flag_descriptions::kAshEnablePipRoundedCornersName,
-     flag_descriptions::kAshEnablePipRoundedCornersDescription,
-     kOsCrOS | kExpireM77,
+     flag_descriptions::kAshEnablePipRoundedCornersDescription, kOsCrOS,
      FEATURE_VALUE_TYPE(ash::features::kPipRoundedCorners)},
 
     {"ash-swap-side-volume-buttons-for-orientation",
@@ -3708,8 +3673,7 @@
 #if defined(OS_CHROMEOS)
     {"enable-assistant-stereo-input",
      flag_descriptions::kEnableGoogleAssistantStereoInputName,
-     flag_descriptions::kEnableGoogleAssistantStereoInputDescription,
-     kOsCrOS | kExpireM77,
+     flag_descriptions::kEnableGoogleAssistantStereoInputDescription, kOsCrOS,
      FEATURE_VALUE_TYPE(
          chromeos::assistant::features::kEnableStereoAudioInput)},
 #endif  // defined(OS_CHROMEOS)
@@ -3725,7 +3689,7 @@
      flag_descriptions::kAutofillAlwaysShowServerCardsInSyncTransportName,
      flag_descriptions::
          kAutofillAlwaysShowServerCardsInSyncTransportDescription,
-     kOsMac | kOsWin | kOsLinux | kExpireM77,
+     kOsMac | kOsWin | kOsLinux,
      FEATURE_VALUE_TYPE(
          autofill::features::kAutofillAlwaysShowServerCardsInSyncTransport)},
 #endif  // defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_LINUX)
@@ -3733,8 +3697,7 @@
 #if BUILDFLAG(ENABLE_PRINT_PREVIEW) && defined(OS_MACOSX)
     {"enable-custom-mac-paper-sizes",
      flag_descriptions::kEnableCustomMacPaperSizesName,
-     flag_descriptions::kEnableCustomMacPaperSizesDescription,
-     kOsMac | kExpireM77,
+     flag_descriptions::kEnableCustomMacPaperSizesDescription, kOsMac,
      FEATURE_VALUE_TYPE(printing::features::kEnableCustomMacPaperSizes)},
 #endif
 
@@ -3742,8 +3705,7 @@
     defined(OS_CHROMEOS)
     {"enable-reopen-tab-in-product-help",
      flag_descriptions::kReopenTabInProductHelpName,
-     flag_descriptions::kReopenTabInProductHelpDescription,
-     kOsDesktop | kExpireM77,
+     flag_descriptions::kReopenTabInProductHelpDescription, kOsDesktop,
      FEATURE_VALUE_TYPE(feature_engagement::kIPHReopenTabFeature)},
 #endif  // defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_LINUX) ||
         // defined(OS_CHROMEOS)
@@ -3759,7 +3721,7 @@
     {"enable-safe-browsing-ap-download-verdicts",
      flag_descriptions::kSafeBrowsingUseAPDownloadVerdictsName,
      flag_descriptions::kSafeBrowsingUseAPDownloadVerdictsDescription,
-     kOsDesktop | kExpireM77,
+     kOsDesktop,
      FEATURE_VALUE_TYPE(safe_browsing::kForceUseAPDownloadProtection)},
     {"enable-gpu-service-logging",
      flag_descriptions::kEnableGpuServiceLoggingName,
@@ -3770,7 +3732,7 @@
     {"autofill-settings-split-by-card-type",
      flag_descriptions::kAutofillSettingsSplitByCardTypeName,
      flag_descriptions::kAutofillSettingsSplitByCardTypeDescription,
-     kOsMac | kOsWin | kOsLinux | kExpireM77,
+     kOsMac | kOsWin | kOsLinux,
      FEATURE_VALUE_TYPE(autofill::features::kAutofillSettingsCardTypeSplit)},
 #endif  // defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_LINUX)
 
@@ -3784,8 +3746,7 @@
 #if defined(OS_ANDROID)
     {"foreground-notification-manager",
      flag_descriptions::kForegroundNotificationManagerName,
-     flag_descriptions::kForegroundNotificationManagerDescription,
-     kOsAndroid | kExpireM77,
+     flag_descriptions::kForegroundNotificationManagerDescription, kOsAndroid,
      FEATURE_VALUE_TYPE(chrome::android::kForegroundNotificationManager)},
 #endif  // defined(OS_ANDROID)
 
@@ -3802,7 +3763,7 @@
 
 #if defined(OS_CHROMEOS)
     {"app-service-ash", flag_descriptions::kAppServiceAshName,
-     flag_descriptions::kAppServiceAshDescription, kOsCrOS | kExpireM77,
+     flag_descriptions::kAppServiceAshDescription, kOsCrOS,
      FEATURE_VALUE_TYPE(features::kAppServiceAsh)},
 
     {"ash-enable-overview-rounded-corners",
@@ -3849,14 +3810,13 @@
 
     {"enable-webrtc-hw-vp9-encoding",
      flag_descriptions::kWebrtcHwVP9EncodingName,
-     flag_descriptions::kWebrtcHwVP9EncodingDescription, kOsCrOS | kExpireM77,
+     flag_descriptions::kWebrtcHwVP9EncodingDescription, kOsCrOS,
      FEATURE_VALUE_TYPE(features::kWebRtcHWVP9Encoding)},
 
 #if defined(OS_ANDROID)
     {"manual-password-generation-android",
      flag_descriptions::kManualPasswordGenerationAndroidName,
-     flag_descriptions::kManualPasswordGenerationAndroidDescription,
-     kOsAndroid | kExpireM77,
+     flag_descriptions::kManualPasswordGenerationAndroidDescription, kOsAndroid,
      FEATURE_VALUE_TYPE(
          password_manager::features::kManualPasswordGenerationAndroid)},
     {"mobile-identity-consistency",
@@ -3922,7 +3882,7 @@
      flag_descriptions::kAutofillEnableLocalCardMigrationForNonSyncUserName,
      flag_descriptions::
          kAutofillEnableLocalCardMigrationForNonSyncUserDescription,
-     kOsDesktop | kExpireM77,
+     kOsDesktop,
      FEATURE_VALUE_TYPE(
          autofill::features::kAutofillEnableLocalCardMigrationForNonSyncUser)},
 
@@ -4272,12 +4232,6 @@
      flag_descriptions::kUpdateHoverAtBeginFrameDescription, kOsAll,
      FEATURE_VALUE_TYPE(features::kUpdateHoverAtBeginFrame)},
 
-    // This set of flags is used to temporary reinstate expired flags; see
-    // //docs/flag_expiry.md for details.
-    {"temporary-unexpire-flags-m77", flag_descriptions::kUnexpireFlagsM77Name,
-     flag_descriptions::kUnexpireFlagsM77Description, kOsAll,
-     FEATURE_VALUE_TYPE(flags_ui::kUnexpireFlagsM77)},
-
 #if defined(OS_ANDROID)
     {"usage-stats", flag_descriptions::kUsageStatsName,
      flag_descriptions::kUsageStatsDescription, kOsAndroid,
diff --git a/chrome/browser/about_flags_browsertest.cc b/chrome/browser/about_flags_browsertest.cc
index a5026fb..bab20e63 100644
--- a/chrome/browser/about_flags_browsertest.cc
+++ b/chrome/browser/about_flags_browsertest.cc
@@ -11,7 +11,6 @@
 #include "chrome/test/base/in_process_browser_test.h"
 #include "chrome/test/base/interactive_test_utils.h"
 #include "chrome/test/base/ui_test_utils.h"
-#include "components/flags_ui/flags_state.h"
 #include "content/public/browser/web_contents.h"
 #include "content/public/test/browser_test_utils.h"
 #include "ui/base/window_open_disposition.h"
@@ -103,11 +102,6 @@
 // line (provided in SetUpCommandLine) and once without.
 class AboutFlagsBrowserTest : public InProcessBrowserTest,
                               public testing::WithParamInterface<bool> {
- public:
-  AboutFlagsBrowserTest() {
-    feature_list_.InitWithFeatures({flags_ui::kUnexpireFlagsM77}, {});
-  }
-
   void SetUpCommandLine(base::CommandLine* command_line) override {
     command_line->AppendSwitchASCII(kSwitchName, GetInitialCommandLine());
   }
@@ -127,8 +121,6 @@
     return has_initial_command_line() ? kSanitizedInputAndCommandLine
                                       : kSanitizedInput;
   }
-
-  base::test::ScopedFeatureList feature_list_;
 };
 
 INSTANTIATE_TEST_SUITE_P(,
diff --git a/chrome/browser/flag-metadata.json b/chrome/browser/flag-metadata.json
index 95a0391..8782481 100644
--- a/chrome/browser/flag-metadata.json
+++ b/chrome/browser/flag-metadata.json
@@ -76,6 +76,11 @@
     "expiry_milestone": 74
   },
   {
+    "name": "allow-starting-service-manager-only",
+    "owners": [ "hanxi", "hnakashima" ],
+    "expiry_milestone": 76
+  },
+  {
     "name": "allow-sxg-certs-without-extension",
     "owners": [ "//content/browser/web_package/OWNERS" ],
     // Used by developers for testing signed exchange loading using normal
@@ -192,6 +197,11 @@
     "expiry_milestone": -1
   },
   {
+    "name": "ash-notification-stacking-bar-redesign",
+    "owners": [ "tengs" ],
+    "expiry_milestone": 75
+  },
+  {
     "name": "ash-swap-side-volume-buttons-for-orientation",
     "owners": [ "minch" ],
     "expiry_milestone": 78
@@ -232,6 +242,11 @@
     "expiry_milestone": 72
   },
   {
+    "name": "autofill-dynamic-forms",
+    "owners": [ "sebsg" ],
+    "expiry_milestone": 72
+  },
+  {
     "name": "autofill-enable-company-name",
     "owners": [ "sebsg" ],
     "expiry_milestone": 73
@@ -461,6 +476,11 @@
     "expiry_milestone": 80
   },
   {
+    "name": "contextual-search",
+    "owners": [ "//chrome/android/java/src/org/chromium/chrome/browser/contextualsearch/OWNERS" ],
+    "expiry_milestone": 74
+  },
+  {
     "name": "contextual-search-longpress-resolve",
     "owners": [ "//chrome/android/java/src/org/chromium/chrome/browser/contextualsearch/OWNERS" ],
     "expiry_milestone": 78
@@ -974,6 +994,11 @@
     "expiry_milestone": 86
   },
   {
+    "name": "enable-bloated-renderer-detection",
+    "owners": [ "ulan" ],
+    "expiry_milestone": 75
+  },
+  {
     "name": "enable-bulk-printers",
     "owners": [ "skau" ],
     "expiry_milestone": 76
@@ -1251,6 +1276,11 @@
     "expiry_milestone": 75
   },
   {
+    "name": "enable-improved-geolanguage-data",
+    "owners": [ "frechette", "[email protected]" ],
+    "expiry_milestone": 76
+  },
+  {
     "name": "enable-incognito-window-counter",
     "owners": [ "rhalavati" ],
     "expiry_milestone": 77
@@ -1839,6 +1869,11 @@
     "expiry_milestone": -1
   },
   {
+    "name": "enable-webassembly",
+    "owners": [ "titzer", "[email protected]" ],
+    "expiry_milestone": 72
+  },
+  {
     "name": "enable-webassembly-baseline",
     "owners": [ "clemensh", "[email protected]" ],
     "expiry_milestone": 83
@@ -2340,6 +2375,11 @@
     "expiry_milestone":  80
   },
   {
+    "name": "network-service",
+    "owners": [ "network-service-dev" ],
+    "expiry_milestone": 76
+  },
+  {
     "name": "network-service-in-process",
     "owners": [ "network-service-dev" ],
     "expiry_milestone": 76
@@ -2707,6 +2747,11 @@
     "expiry_milestone": 80
   },
   {
+    "name": "passwords-keyboard-accessory",
+    "owners": [ "fhorschig" ],
+    "expiry_milestone": 76
+  },
+  {
     "name": "passwords-migrate-linux-to-login-db",
     "owners": [ "cfroussios" ],
     "expiry_milestone": 76
@@ -2767,6 +2812,11 @@
     "expiry_milestone": 78
   },
   {
+    "name": "remove-ntp-fakebox",
+    "owners": [ "kristipark", "ramyan" ],
+    "expiry_milestone": 76
+  },
+  {
     "name": "rewrite-leveldb-on-deletion",
     "owners": [ "dullweber" ],
     "expiry_milestone": 75
@@ -2968,11 +3018,6 @@
     "expiry_milestone": 82
   },
   {
-    "name": "temporary-unexpire-flags-m77",
-    "owners": [ "ellyjones", "flags-dev" ],
-    "expiry_milestone": 80
-  },
-  {
     "name": "terminal-system-app",
     "owners": [ "joelhockey", "benwells", "//chrome/browser/chromeos/guest_os/OWNERS" ],
     "expiry_milestone": 82
@@ -3144,6 +3189,11 @@
     "expiry_milestone": 80
   },
   {
+    "name": "views-cast-dialog",
+    "owners": [ "//chrome/browser/media/router/OWNERS" ],
+    "expiry_milestone": 76
+  },
+  {
     "name": "wake-on-wifi-packet",
     "owners": [ "abhishekbh", "chirantan" ],
     "expiry_milestone": 76
diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descriptions.cc
index 6a15017..bc344fd 100644
--- a/chrome/browser/flag_descriptions.cc
+++ b/chrome/browser/flag_descriptions.cc
@@ -1979,11 +1979,6 @@
     "to do stereo to surround expansion if supported. May expose third party "
     "driver bugs, use with caution.";
 
-const char kUnexpireFlagsM77Name[] = "Temporarily unexpire M77 flags.";
-const char kUnexpireFlagsM77Description[] =
-    "Temporarily unexpire flags that are expired as of M77. These flags will "
-    "be removed soon.";
-
 const char kUnifiedConsentName[] = "Unified Consent";
 const char kUnifiedConsentDescription[] =
     "Enables a unified management of user consent for privacy-related "
diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptions.h
index df94040..40233e9 100644
--- a/chrome/browser/flag_descriptions.h
+++ b/chrome/browser/flag_descriptions.h
@@ -1173,9 +1173,6 @@
 extern const char kTrySupportedChannelLayoutsName[];
 extern const char kTrySupportedChannelLayoutsDescription[];
 
-extern const char kUnexpireFlagsM77Name[];
-extern const char kUnexpireFlagsM77Description[];
-
 extern const char kUnifiedConsentName[];
 extern const char kUnifiedConsentDescription[];
 
diff --git a/components/flags_ui/flags_state.cc b/components/flags_ui/flags_state.cc
index c197ea9fd..dfde63a 100644
--- a/components/flags_ui/flags_state.cc
+++ b/components/flags_ui/flags_state.cc
@@ -34,9 +34,6 @@
 const char kTrialGroupAboutFlags[] = "AboutFlags";
 }  // namespace internal
 
-const base::Feature kUnexpireFlagsM77{"TemporaryUnexpireFlagsM77",
-                                      base::FEATURE_DISABLED_BY_DEFAULT};
-
 namespace {
 
 // Separator used for origin list values. The list of origins provided from
@@ -336,12 +333,6 @@
 }
 #endif
 
-bool MaskMatchesExpiredCohort(int flag_platform_mask) {
-  if (!base::FeatureList::IsEnabled(kUnexpireFlagsM77))
-    return !!(flag_platform_mask & kExpireM77);
-  return false;
-}
-
 }  // namespace
 
 struct FlagsState::SwitchEntry {
@@ -681,10 +672,6 @@
       supported = true;
     }
 #endif
-
-    if (MaskMatchesExpiredCohort(entry.supported_platforms))
-      supported = false;
-
     if (supported)
       supported_entries->Append(std::move(data));
     else
diff --git a/components/flags_ui/flags_state.h b/components/flags_ui/flags_state.h
index cbf15f7..c3997ff 100644
--- a/components/flags_ui/flags_state.h
+++ b/components/flags_ui/flags_state.h
@@ -14,10 +14,10 @@
 
 #include "base/callback_forward.h"
 #include "base/command_line.h"
-#include "base/feature_list.h"
 #include "base/macros.h"
 
 namespace base {
+class FeatureList;
 class ListValue;
 }
 
@@ -43,15 +43,8 @@
   kOsAndroid = 1 << 4,
   kOsCrOSOwnerOnly = 1 << 5,
   kOsIos = 1 << 6,
-
-  // These bits are used to keep track of expiring flags for the next
-  // three milestones in the expiry process. See //docs/flag_expiry.md for
-  // details of how they are used.
-  kExpireM77 = 1 << 8,
 };
 
-extern const base::Feature kUnexpireFlagsM77;
-
 // A flag controlling the behavior of the |ConvertFlagsToSwitches| function -
 // whether it should add the sentinel switches around flags.
 enum SentinelsMode { kNoSentinels, kAddSentinels };
diff --git a/docs/flag_expiry.md b/docs/flag_expiry.md
index f739ccb..25aa665 100644
--- a/docs/flag_expiry.md
+++ b/docs/flag_expiry.md
@@ -54,6 +54,7 @@
 authoritative source of the expiry set for a given milestone.
 
 * allow-remote-context-for-notifications
+* allow-starting-service-manager-only
 * android-files-in-files-app
 * app-service-ash
 * arc-available-for-child
@@ -65,7 +66,9 @@
 * arc-usb-host
 * arc-vpn
 * ash-enable-pip-rounded-corners
+* ash-notification-stacking-bar-redesign
 * autofill-always-show-server-cards-in-sync-transport
+* autofill-dynamic-forms
 * autofill-enable-company-name
 * autofill-enable-local-card-migration-for-non-sync-user
 * autofill-enforce-min-required-fields-for-heuristics
@@ -81,6 +84,7 @@
 * cct-module-dex-loading
 * cct-module-post-message
 * cct-module-use-intent-extras
+* contextual-search
 * crostini-usb-support
 * cryptauth-v2-enrollment
 * document-passive-wheel-event-listeners
@@ -89,13 +93,16 @@
 * enable-arc-unified-audio-focus
 * enable-assistant-dsp
 * enable-assistant-stereo-input
+* enable-assistant-voice-match
 * enable-autofill-credit-card-upload-editable-cardholder-name
 * enable-autofill-credit-card-upload-editable-expiration-date
 * enable-autofill-do-not-upload-save-unsupported-cards
 * enable-autofill-import-dynamic-forms
 * enable-autofill-import-non-focusable-credit-card-forms
 * enable-autofill-local-card-migration-uses-strike-system-v2
+* enable-autofill-save-card-improved-user-consent
 * enable-autofill-send-experiment-ids-in-payments-rpcs
+* enable-bloated-renderer-detection
 * enable-bulk-printers
 * enable-chromeos-account-manager
 * enable-custom-mac-paper-sizes
@@ -105,6 +112,7 @@
 * enable-fs-nosymfollow
 * enable-google-branded-context-menu
 * enable-immersive-fullscreen-toolbar
+* enable-improved-geolanguage-data
 * enable-myfiles-volume
 * enable-native-controls
 * enable-native-google-assistant
@@ -119,23 +127,29 @@
 * gdi-text-printing
 * handwriting-gesture
 * manual-password-generation-android
+* network-service
 * offline-indicator-always-http-probe
 * offline-pages-ct-suppress-completed-notification
 * offline-pages-load-signal-collecting
 * offline-pages-resource-based-snapshot
 * omnibox-experimental-keyword-mode
 * on-the-fly-mhtml-hash-computation
+* passwords-keyboard-accessory
+* passwords-migrate-linux-to-login-db
 * pdf-annotations
 * postscript-printing
+* remove-ntp-fakebox
 * rewrite-leveldb-on-deletion
 * session-restore-prioritizes-background-use-cases
 * smart-text-selection
 * stop-in-background
+* sync-USS-autofill-wallet-metadata
 * ui-show-composited-layer-borders
 * unfiltered-bluetooth-devices
 * unsafely-treat-insecure-origin-as-secure
 * use_messages_google_com_domain
 * use_messages_staging_url
+* views-cast-dialog
 * wake-on-wifi-packet
 
 [file a bug]: https://new.crbug.com
diff --git a/tools/metrics/histograms/enums.xml b/tools/metrics/histograms/enums.xml
index 8deb903..c362ad77 100644
--- a/tools/metrics/histograms/enums.xml
+++ b/tools/metrics/histograms/enums.xml
@@ -34164,7 +34164,6 @@
   <int value="-1837401779" label="EnableFileManagerFormatDialog:enabled"/>
   <int value="-1837329460" label="NewEncodeCpuLoadEstimator:enabled"/>
   <int value="-1835975804" label="disable-offline-auto-reload"/>
-  <int value="-1835123381" label="TemporaryUnexpireFlagsM77:enabled"/>
   <int value="-1833149810" label="enable-accessibility-tab-switcher"/>
   <int value="-1832575380" label="show-saved-copy"/>
   <int value="-1832221649" label="disable-out-of-process-pac"/>
@@ -36124,7 +36123,6 @@
   <int value="975104092" label="show-taps"/>
   <int value="976079108" label="TouchpadOverscrollHistoryNavigation:disabled"/>
   <int value="976278412" label="google-password-manager:enabled"/>
-  <int value="978659723" label="TemporaryUnexpireFlagsM77:disabled"/>
   <int value="979445973" label="OmniboxSpareRenderer:enabled"/>
   <int value="980396200" label="enable-new-korean-ime"/>
   <int value="981818901" label="AppBanners:enabled"/>