diff --git a/android/brave_java_sources.gni b/android/brave_java_sources.gni
index 670fd69672e0..440d10e1baa2 100644
--- a/android/brave_java_sources.gni
+++ b/android/brave_java_sources.gni
@@ -396,6 +396,7 @@ brave_java_sources = [
"../../brave/android/java/org/chromium/chrome/browser/site_settings/BraveWalletSolanaConnectedSitesPreference.java",
"../../brave/android/java/org/chromium/chrome/browser/speedreader/BraveSpeedReaderManager.java",
"../../brave/android/java/org/chromium/chrome/browser/speedreader/BraveSpeedReaderUtils.java",
+ "../../brave/android/java/org/chromium/chrome/browser/suggestions/tile/BraveMostVisitedTilesLayoutBase.java",
"../../brave/android/java/org/chromium/chrome/browser/suggestions/tile/BraveMostVisitedTilesMediator.java",
"../../brave/android/java/org/chromium/chrome/browser/suggestions/tile/BraveTileView.java",
"../../brave/android/java/org/chromium/chrome/browser/sync/BraveSyncDevices.java",
diff --git a/android/features/tab_ui/BUILD.gn b/android/features/tab_ui/BUILD.gn
index 743a47822d19..80100989eb7d 100644
--- a/android/features/tab_ui/BUILD.gn
+++ b/android/features/tab_ui/BUILD.gn
@@ -14,7 +14,6 @@ android_library("java") {
deps = [
"//base:base_java",
"//chrome/android:chrome_java",
- "//chrome/android/features/tab_ui:tab_suggestions_java",
"//chrome/browser/android/lifecycle:java",
"//chrome/browser/browser_controls/android:java",
"//chrome/browser/commerce/merchant_viewer/android:java",
diff --git a/android/features/tab_ui/java/strings/android_chrome_tab_ui_strings.grd b/android/features/tab_ui/java/strings/android_chrome_tab_ui_strings.grd
index 07e49ee2b272..5fa6d1a2de37 100644
--- a/android/features/tab_ui/java/strings/android_chrome_tab_ui_strings.grd
+++ b/android/features/tab_ui/java/strings/android_chrome_tab_ui_strings.grd
@@ -385,11 +385,6 @@
To group tabs, touch & hold a tab. Then, drag it onto another tab.
-
-
- Continue browsing
-
-
Your last tab
@@ -406,37 +401,6 @@
%1$s2 tabs seem related. Group them?
-
-
- Want to close old tabs?
-
-
- {TABS_COUNT, plural,
- =1 {You have %1$s1 tab you haven't used recently}
- other {You have %1$s8 tabs you haven't used recently}
- }
-
-
- Review tabs
-
-
- Close without reviewing
-
-
-
-
- {TABS_COUNT, plural,
- =1 {You have %1$s1 archived tab}
- other {You have %1$s8 archived tabs}
- }
-
-
- Review the current declutter settings.
-
-
- Review all archived tabs for declutter by entering this editor.
-
-
Review the suggestions.
@@ -587,14 +551,6 @@
Close all tabs?
-
- You can find your closed tabs in Recent tabs under the Brave main menu.
-
-
- {INCOGNITO_TABS_COUNT, plural,
- =1 {You can find your closed tabs in Recent tabs under the Brave main menu. Your Private tab won't be available.}
- other {You can find your closed tabs in Recent tabs under the Brave main menu. Your # Private tabs won't be available.}}
-
Close all Private tabs?
@@ -766,6 +722,11 @@
Your closed tabs and groups can be reopened from the Recent tabs section and the Tab groups section.
+
+ {INCOGNITO_TABS_COUNT, plural,
+ =1 {Your closed tabs and groups can be reopened from the Recent tabs section and the Tab groups section. Your Private tab won't be available.}
+ other {Your closed tabs and groups can be reopened from the Recent tabs section and the Tab groups section. Your # Private tabs won't be available.}}
+
Close all tabs and groups
@@ -775,9 +736,6 @@
This will delete the group from all devices signed into %1$stest@gmail.com
-
- Close tab and delete group?
-
Close
@@ -787,9 +745,6 @@
Open the tab group action menu for tab group %1$sShopping cart
-
- This will delete the group from all devices signed into %1$stest@gmail.com
-
Remove tab and delete group
@@ -808,6 +763,9 @@
Tab groups automatically save and update across all your devices
+
+ Create groups to organize your tabs.
+
Your tab groups are saved here and get updated across all your signed-in devices
@@ -817,9 +775,18 @@
New group from your other device
+
+ You can find all your tab groups here
+
Open
+
+ Open %sshopping
+
+
+ %sshopping tab group options
+
@@ -828,6 +795,17 @@
Automatically open tab groups from other devices
+
+
+
+ {TABS_COUNT, plural,
+ =1 {%1$d1 inactive tab}
+ other {%1$d8 inactive tabs}
+ }
+
+
+ Close all inactive tabs
+
diff --git a/android/features/tab_ui/java/strings/android_chrome_tab_ui_strings_override.grd b/android/features/tab_ui/java/strings/android_chrome_tab_ui_strings_override.grd
index 3dc3bfbf1ee2..b00c6fea7c77 100644
--- a/android/features/tab_ui/java/strings/android_chrome_tab_ui_strings_override.grd
+++ b/android/features/tab_ui/java/strings/android_chrome_tab_ui_strings_override.grd
@@ -86,11 +86,6 @@
-
- {INCOGNITO_TABS_COUNT, plural,
- =1 {You can find your closed tabs in Recent tabs under the Brave main menu. Your Private tab won't be available.}
- other {You can find your closed tabs in Recent tabs under the Brave main menu. Your # Private tabs won't be available.}}
-
Close all Private tabs?
@@ -98,6 +93,11 @@
Your activity in these Private tabs will be removed from this device
+
+ {INCOGNITO_TABS_COUNT, plural,
+ =1 {Your closed tabs and groups can be reopened from the Recent tabs section and the Tab groups section. Your Private tab won't be available.}
+ other {Your closed tabs and groups can be reopened from the Recent tabs section and the Tab groups section. Your # Private tabs won't be available.}}
+
diff --git a/android/java/apk_for_test.flags b/android/java/apk_for_test.flags
index a860a5219554..223914876876 100644
--- a/android/java/apk_for_test.flags
+++ b/android/java/apk_for_test.flags
@@ -41,7 +41,6 @@
*** mMvTilesContainerLayout;
*** mLogoCoordinator;
*** insertSiteSectionView(...);
- *** isScrollableMvtEnabled(...);
*** setSearchProviderTopMargin(...);
*** setSearchProviderBottomMargin(...);
*** getLogoMargin(...);
@@ -122,7 +121,7 @@
public (...);
*** mBottomControlsCoordinatorSupplier;
*** mCallbackController;
- *** mBrowserControlsSizer;
+ *** mBottomControlsStacker;
*** mFullscreenManager;
*** mActivityTabProvider;
*** mAppThemeColorProvider;
@@ -293,7 +292,7 @@
(...);
*** mBottomControlsHeight;
*** mModel;
- *** mBrowserControlsSizer;
+ *** mBottomControlsStacker;
}
-keep class org.chromium.chrome.browser.toolbar.bottom.BraveBottomControlsMediator {
@@ -881,3 +880,7 @@
-keep class org.chromium.chrome.browser.password_manager.settings.BraveExportFlow {
public (...);
}
+
+-keep class org.chromium.chrome.browser.suggestions.tile.MostVisitedTilesLayout
+
+-keep class org.chromium.chrome.browser.suggestions.tile.BraveMostVisitedTilesLayoutBase
diff --git a/android/java/org/chromium/chrome/browser/app/helpers/ImageLoader.java b/android/java/org/chromium/chrome/browser/app/helpers/ImageLoader.java
index 122d610f6996..1a2b5794969f 100644
--- a/android/java/org/chromium/chrome/browser/app/helpers/ImageLoader.java
+++ b/android/java/org/chromium/chrome/browser/app/helpers/ImageLoader.java
@@ -5,6 +5,7 @@
package org.chromium.chrome.browser.app.helpers;
+import static org.chromium.chrome.browser.content.WebContentsFactory.DEFAULT_NETWORK_HANDLE;
import static org.chromium.ui.base.ViewUtils.dpToPx;
import android.content.Context;
@@ -114,8 +115,10 @@ private static void downloadImage(String url, final RequestManager requestManage
WebContentsFactory webContentsFactory = new WebContentsFactory();
WebContents webContents =
- webContentsFactory.createWebContentsWithWarmRenderer(profile, true);
- webContents.downloadImage(new GURL(validUrl), // Url
+ webContentsFactory.createWebContentsWithWarmRenderer(
+ profile, true, DEFAULT_NETWORK_HANDLE);
+ webContents.downloadImage(
+ new GURL(validUrl), // Url
false, // isFavIcon
WalletConstants.MAX_BITMAP_SIZE_FOR_DOWNLOAD, // maxBitmapSize
false, // bypassCache
@@ -141,28 +144,49 @@ private static void downloadImage(String url, final RequestManager requestManage
new BitmapDrawable(resources, bestBitmap);
imageFetcherFacade = new ImageFetcherFacade(bitmapDrawable);
}
- loadImage(imageFetcherFacade, requestManager, isCircular, roundedCorners,
- imageView, customTarget, callback);
+ loadImage(
+ imageFetcherFacade,
+ requestManager,
+ isCircular,
+ roundedCorners,
+ imageView,
+ customTarget,
+ callback);
});
} else {
- ImageFetcher imageFetcher = ImageFetcherFactory.createImageFetcher(
- ImageFetcherConfig.NETWORK_ONLY, profile.getProfileKey());
+ ImageFetcher imageFetcher =
+ ImageFetcherFactory.createImageFetcher(
+ ImageFetcherConfig.NETWORK_ONLY, profile.getProfileKey());
if (isGif(url)) {
imageFetcher.fetchGif(
- Params.create(new GURL(url), UNUSED_CLIENT_NAME), gifImage -> {
+ Params.create(new GURL(url), UNUSED_CLIENT_NAME),
+ gifImage -> {
ImageFetcherFacade imageFetcherFacade =
new ImageFetcherFacade(gifImage.getData());
- loadImage(imageFetcherFacade, requestManager, isCircular,
- roundedCorners, imageView, customTarget, callback);
+ loadImage(
+ imageFetcherFacade,
+ requestManager,
+ isCircular,
+ roundedCorners,
+ imageView,
+ customTarget,
+ callback);
});
} else {
imageFetcher.fetchImage(
- Params.create(new GURL(url), UNUSED_CLIENT_NAME), bitmap -> {
+ Params.create(new GURL(url), UNUSED_CLIENT_NAME),
+ bitmap -> {
BitmapDrawable bitmapDrawable = new BitmapDrawable(resources, bitmap);
ImageFetcherFacade imageFetcherFacade =
new ImageFetcherFacade(bitmapDrawable);
- loadImage(imageFetcherFacade, requestManager, isCircular,
- roundedCorners, imageView, customTarget, callback);
+ loadImage(
+ imageFetcherFacade,
+ requestManager,
+ isCircular,
+ roundedCorners,
+ imageView,
+ customTarget,
+ callback);
});
}
}
diff --git a/android/java/org/chromium/chrome/browser/bookmarks/BraveBookmarkToolbarCoordinator.java b/android/java/org/chromium/chrome/browser/bookmarks/BraveBookmarkToolbarCoordinator.java
index 6dc81d8dfafe..666cd12e3718 100644
--- a/android/java/org/chromium/chrome/browser/bookmarks/BraveBookmarkToolbarCoordinator.java
+++ b/android/java/org/chromium/chrome/browser/bookmarks/BraveBookmarkToolbarCoordinator.java
@@ -15,6 +15,8 @@
import org.chromium.components.browser_ui.widget.selectable_list.SelectionDelegate;
import org.chromium.ui.modaldialog.ModalDialogManager;
+import java.util.function.BooleanSupplier;
+
class BraveBookmarkToolbarCoordinator extends BookmarkToolbarCoordinator {
// Overridden Chromium's BookmarkToolbarCoordinator.mToolbar
private BookmarkToolbar mToolbar;
@@ -22,7 +24,7 @@ class BraveBookmarkToolbarCoordinator extends BookmarkToolbarCoordinator {
BraveBookmarkToolbarCoordinator(
Context context,
SelectableListLayout selectableListLayout,
- SelectionDelegate selectionDelegate,
+ SelectionDelegate selectionDelegate,
SearchDelegate searchDelegate,
DragReorderableRecyclerViewAdapter dragReorderableRecyclerViewAdapter,
boolean isDialogUi,
@@ -32,7 +34,8 @@ class BraveBookmarkToolbarCoordinator extends BookmarkToolbarCoordinator {
BookmarkUiPrefs bookmarkUiPrefs,
ModalDialogManager modalDialogManager,
Runnable endSearchRunnable,
- BookmarkMoveSnackbarManager bookmarkMoveSnackbarManager) {
+ BookmarkMoveSnackbarManager bookmarkMoveSnackbarManager,
+ BooleanSupplier incognitoEnabledSupplier) {
super(
context,
selectableListLayout,
@@ -46,7 +49,8 @@ class BraveBookmarkToolbarCoordinator extends BookmarkToolbarCoordinator {
bookmarkUiPrefs,
modalDialogManager,
endSearchRunnable,
- bookmarkMoveSnackbarManager);
+ bookmarkMoveSnackbarManager,
+ incognitoEnabledSupplier);
if (mToolbar instanceof BraveBookmarkToolbar) {
((BraveBookmarkToolbar) mToolbar).setBraveBookmarkDelegate(bookmarkDelegateSupplier);
diff --git a/android/java/org/chromium/chrome/browser/crypto_wallet/activities/NetworkSelectorActivity.java b/android/java/org/chromium/chrome/browser/crypto_wallet/activities/NetworkSelectorActivity.java
index 59f3b0631034..65279da5eba3 100644
--- a/android/java/org/chromium/chrome/browser/crypto_wallet/activities/NetworkSelectorActivity.java
+++ b/android/java/org/chromium/chrome/browser/crypto_wallet/activities/NetworkSelectorActivity.java
@@ -141,8 +141,9 @@ private void launchAddNetwork() {
Bundle fragmentArgs = new Bundle();
fragmentArgs.putString(ADD_NETWORK_FRAGMENT_ARG_CHAIN_ID, "");
fragmentArgs.putBoolean(ADD_NETWORK_FRAGMENT_ARG_ACTIVE_NETWORK, false);
- Intent intent = mSettingsLauncher.createSettingsActivityIntent(
- this, BraveWalletAddNetworksFragment.class.getName(), fragmentArgs);
+ Intent intent =
+ mSettingsLauncher.createSettingsActivityIntent(
+ this, BraveWalletAddNetworksFragment.class, fragmentArgs);
startActivity(intent);
}
diff --git a/android/java/org/chromium/chrome/browser/ntp/BraveNewTabPage.java b/android/java/org/chromium/chrome/browser/ntp/BraveNewTabPage.java
index 654ca4ce4cad..da6bfcfb5bf3 100644
--- a/android/java/org/chromium/chrome/browser/ntp/BraveNewTabPage.java
+++ b/android/java/org/chromium/chrome/browser/ntp/BraveNewTabPage.java
@@ -38,6 +38,7 @@
import org.chromium.components.browser_ui.bottomsheet.BottomSheetController;
import org.chromium.components.search_engines.TemplateUrlService;
import org.chromium.ui.base.WindowAndroid;
+import org.chromium.ui.modaldialog.ModalDialogManager;
public class BraveNewTabPage extends NewTabPage {
private JankTracker mJankTracker;
@@ -54,6 +55,7 @@ public BraveNewTabPage(
Activity activity,
BrowserControlsStateProvider browserControlsStateProvider,
Supplier activityTabProvider,
+ ModalDialogManager modalDialogManager,
SnackbarManager snackbarManager,
ActivityLifecycleDispatcher lifecycleDispatcher,
TabModelSelector tabModelSelector,
@@ -76,6 +78,7 @@ public BraveNewTabPage(
activity,
browserControlsStateProvider,
activityTabProvider,
+ modalDialogManager,
snackbarManager,
lifecycleDispatcher,
tabModelSelector,
diff --git a/android/java/org/chromium/chrome/browser/ntp/BraveNewTabPageLayout.java b/android/java/org/chromium/chrome/browser/ntp/BraveNewTabPageLayout.java
index af81949297f4..32a3757444c9 100644
--- a/android/java/org/chromium/chrome/browser/ntp/BraveNewTabPageLayout.java
+++ b/android/java/org/chromium/chrome/browser/ntp/BraveNewTabPageLayout.java
@@ -72,7 +72,6 @@
import org.chromium.chrome.browser.brave_news.models.FeedItemsCard;
import org.chromium.chrome.browser.brave_stats.BraveStatsUtil;
import org.chromium.chrome.browser.feed.FeedSurfaceScrollDelegate;
-import org.chromium.chrome.browser.flags.ChromeFeatureList;
import org.chromium.chrome.browser.lifecycle.ActivityLifecycleDispatcher;
import org.chromium.chrome.browser.local_database.DatabaseHelper;
import org.chromium.chrome.browser.local_database.TopSiteTable;
@@ -98,7 +97,7 @@
import org.chromium.chrome.browser.settings.BackgroundImagesPreferences;
import org.chromium.chrome.browser.settings.BraveNewsPreferencesV2;
import org.chromium.chrome.browser.settings.SettingsLauncherImpl;
-import org.chromium.chrome.browser.suggestions.tile.MostVisitedTilesGridLayout;
+import org.chromium.chrome.browser.suggestions.tile.BraveMostVisitedTilesLayoutBase;
import org.chromium.chrome.browser.suggestions.tile.TileGroup.Delegate;
import org.chromium.chrome.browser.tab.Tab;
import org.chromium.chrome.browser.tab.TabAttributes;
@@ -109,7 +108,6 @@
import org.chromium.components.user_prefs.UserPrefs;
import org.chromium.mojo.bindings.ConnectionErrorHandler;
import org.chromium.mojo.system.MojoException;
-import org.chromium.ui.base.DeviceFormFactor;
import org.chromium.ui.base.WindowAndroid;
import java.util.ArrayList;
@@ -241,29 +239,45 @@ public void checkForBraveStats() {
protected void insertSiteSectionView() {
mMainLayout = findViewById(R.id.ntp_content);
- mMvTilesContainerLayout = (ViewGroup) LayoutInflater.from(mMainLayout.getContext())
- .inflate(R.layout.mv_tiles_container, mMainLayout, false);
+ mMvTilesContainerLayout =
+ (ViewGroup)
+ LayoutInflater.from(mMainLayout.getContext())
+ .inflate(R.layout.mv_tiles_container, mMainLayout, false);
+ mMvTilesContainerLayout.setPadding(0, 0, 0, 0);
mMvTilesContainerLayout.setVisibility(View.VISIBLE);
- mMvTilesContainerLayout.post(new Runnable() {
- @Override
- public void run() {
- mMvTilesContainerLayout.addOnLayoutChangeListener(
- (View view, int left, int top, int right, int bottom, int oldLeft,
- int oldTop, int oldRight, int oldBottom) -> {
- int oldHeight = oldBottom - oldTop;
- int newHeight = bottom - top;
-
- if (oldHeight != newHeight && mIsTopSitesEnabled
- && mNtpAdapter != null) {
- new Handler(Looper.getMainLooper()).post(() -> {
- mNtpAdapter.notifyItemRangeChanged(mNtpAdapter.getStatsCount(),
- mNtpAdapter.getNewContentCount() + 2);
+ mMvTilesContainerLayout.post(
+ new Runnable() {
+ @Override
+ public void run() {
+ mMvTilesContainerLayout.addOnLayoutChangeListener(
+ (View view,
+ int left,
+ int top,
+ int right,
+ int bottom,
+ int oldLeft,
+ int oldTop,
+ int oldRight,
+ int oldBottom) -> {
+ int oldHeight = oldBottom - oldTop;
+ int newHeight = bottom - top;
+
+ if (oldHeight != newHeight
+ && mIsTopSitesEnabled
+ && mNtpAdapter != null) {
+ new Handler(Looper.getMainLooper())
+ .post(
+ () -> {
+ mNtpAdapter.notifyItemRangeChanged(
+ mNtpAdapter.getStatsCount(),
+ mNtpAdapter.getNewContentCount()
+ + 2);
+ });
+ }
});
- }
- });
- }
- });
+ }
+ });
// The page contents are initially hidden; otherwise they'll be drawn centered on the
// page before the tiles are available and then jump upwards to make space once the
@@ -1191,15 +1205,14 @@ public void initialize(
assert mMvTilesContainerLayout != null : "Something has changed in the upstream!";
- if (mMvTilesContainerLayout != null && !isScrollableMvtEnabled()) {
+ if (mMvTilesContainerLayout != null && useFixedMVTLayout()) {
ViewGroup tilesLayout = mMvTilesContainerLayout.findViewById(R.id.mv_tiles_layout);
- assert tilesLayout instanceof MostVisitedTilesGridLayout
+ assert tilesLayout instanceof BraveMostVisitedTilesLayoutBase
: "Something has changed in the upstream!";
- if (tilesLayout instanceof MostVisitedTilesGridLayout) {
- ((MostVisitedTilesGridLayout) tilesLayout)
- .setMaxRows(getMaxRowsForMostVisitedTiles());
+ if (tilesLayout instanceof BraveMostVisitedTilesLayoutBase) {
+ ((BraveMostVisitedTilesLayoutBase) tilesLayout).setUseFixedLayout(true);
}
}
@@ -1209,6 +1222,11 @@ public void initialize(
((BraveActivity) mActivity).setNewTabPageManager(manager);
}
+ protected boolean useFixedMVTLayout() {
+ return !UserPrefs.get(ProfileManager.getLastUsedRegularProfile())
+ .getBoolean(BravePref.NEW_TAB_PAGE_SHOW_BACKGROUND_IMAGE);
+ }
+
public void setTabProvider(Supplier tabProvider) {
mTabProvider = tabProvider;
}
@@ -1471,13 +1489,6 @@ private void initBraveNewsController() {
}
}
- protected boolean isScrollableMvtEnabled() {
- return ChromeFeatureList.isEnabled(ChromeFeatureList.SHOW_SCROLLABLE_MVT_ON_NTP_ANDROID)
- && !DeviceFormFactor.isNonMultiDisplayContextOnTablet(mContext)
- && UserPrefs.get(ProfileManager.getLastUsedRegularProfile())
- .getBoolean(BravePref.NEW_TAB_PAGE_SHOW_BACKGROUND_IMAGE);
- }
-
private int getMaxRowsForMostVisitedTiles() {
try {
if (!ProfileManager.isInitialized()
diff --git a/android/java/org/chromium/chrome/browser/omnibox/BraveLocationBarCoordinator.java b/android/java/org/chromium/chrome/browser/omnibox/BraveLocationBarCoordinator.java
index aa41f86047d5..6f8d5d50a046 100644
--- a/android/java/org/chromium/chrome/browser/omnibox/BraveLocationBarCoordinator.java
+++ b/android/java/org/chromium/chrome/browser/omnibox/BraveLocationBarCoordinator.java
@@ -81,9 +81,8 @@ public BraveLocationBarCoordinator(
merchantTrustSignalsCoordinatorSupplier,
@NonNull OmniboxActionDelegate omniboxActionDelegate,
BrowserStateBrowserControlsVisibilityDelegate browserControlsVisibilityDelegate,
- Callback reportExceptionCallback,
@Nullable BackPressManager backPressManager,
- @NonNull
+ @Nullable
OmniboxSuggestionsDropdownScrollListener
omniboxSuggestionsDropdownScrollListener,
@Nullable ObservableSupplier tabModelSelectorSupplier,
@@ -115,7 +114,6 @@ public BraveLocationBarCoordinator(
merchantTrustSignalsCoordinatorSupplier,
omniboxActionDelegate,
browserControlsVisibilityDelegate,
- reportExceptionCallback,
backPressManager,
omniboxSuggestionsDropdownScrollListener,
tabModelSelectorSupplier,
diff --git a/android/java/org/chromium/chrome/browser/omnibox/suggestions/BraveAutocompleteMediator.java b/android/java/org/chromium/chrome/browser/omnibox/suggestions/BraveAutocompleteMediator.java
index 2fa92905b7b0..f76ff309271c 100644
--- a/android/java/org/chromium/chrome/browser/omnibox/suggestions/BraveAutocompleteMediator.java
+++ b/android/java/org/chromium/chrome/browser/omnibox/suggestions/BraveAutocompleteMediator.java
@@ -17,6 +17,7 @@
import org.chromium.chrome.browser.brave_leo.BraveLeoPrefUtils;
import org.chromium.chrome.browser.brave_leo.BraveLeoUtils;
import org.chromium.chrome.browser.lifecycle.ActivityLifecycleDispatcher;
+import org.chromium.chrome.browser.omnibox.DeferredIMEWindowInsetApplicationCallback;
import org.chromium.chrome.browser.omnibox.LocationBarDataProvider;
import org.chromium.chrome.browser.omnibox.UrlBarEditingTextStateProvider;
import org.chromium.chrome.browser.omnibox.suggestions.basic.BasicSuggestionProcessor.BookmarkState;
@@ -71,7 +72,10 @@ public BraveAutocompleteMediator(
@NonNull OmniboxActionDelegate omniboxActionDelegate,
@NonNull ActivityLifecycleDispatcher lifecycleDispatcher,
@NonNull OmniboxSuggestionsDropdownEmbedder embedder,
- WindowAndroid windowAndroid) {
+ @NonNull WindowAndroid windowAndroid,
+ @NonNull
+ DeferredIMEWindowInsetApplicationCallback
+ deferredIMEWindowInsetApplicationCallback) {
super(
context,
delegate,
@@ -88,7 +92,8 @@ public BraveAutocompleteMediator(
omniboxActionDelegate,
lifecycleDispatcher,
embedder,
- windowAndroid);
+ windowAndroid,
+ deferredIMEWindowInsetApplicationCallback);
mContext = context;
mDelegate = delegate;
diff --git a/android/java/org/chromium/chrome/browser/searchwidget/SearchWidgetProviderActivity.java b/android/java/org/chromium/chrome/browser/searchwidget/SearchWidgetProviderActivity.java
index 9eaf88201184..eda76592a23f 100644
--- a/android/java/org/chromium/chrome/browser/searchwidget/SearchWidgetProviderActivity.java
+++ b/android/java/org/chromium/chrome/browser/searchwidget/SearchWidgetProviderActivity.java
@@ -9,7 +9,7 @@
import android.content.Intent;
import org.chromium.base.IntentUtils;
-import org.chromium.chrome.browser.ui.searchactivityutils.SearchActivityClient;
+import org.chromium.chrome.browser.ui.searchactivityutils.SearchActivityExtras;
public class SearchWidgetProviderActivity extends SearchActivity {
@Override
@@ -23,9 +23,9 @@ public void onNewIntent(Intent intent) {
int searchType =
IntentUtils.safeGetInt(
- intent.getExtras(), SearchActivityUtils.EXTRA_SEARCH_TYPE, -1);
- if (searchType == SearchActivityClient.SearchType.TEXT) {
- newIntent.putExtra(SearchActivityUtils.EXTRA_SEARCH_TYPE, searchType);
+ intent.getExtras(), SearchActivityExtras.EXTRA_SEARCH_TYPE, -1);
+ if (searchType == SearchActivityExtras.SearchType.TEXT) {
+ newIntent.putExtra(SearchActivityExtras.EXTRA_SEARCH_TYPE, searchType);
}
super.onNewIntent(newIntent);
diff --git a/android/java/org/chromium/chrome/browser/settings/BraveSettingsLauncherImpl.java b/android/java/org/chromium/chrome/browser/settings/BraveSettingsLauncherImpl.java
index 631ad3b8c7ba..e92ba9a34ff4 100644
--- a/android/java/org/chromium/chrome/browser/settings/BraveSettingsLauncherImpl.java
+++ b/android/java/org/chromium/chrome/browser/settings/BraveSettingsLauncherImpl.java
@@ -39,15 +39,17 @@ public void launchSettingsActivity(Context context,
@Override
public Intent createSettingsActivityIntent(
- Context context, @Nullable String fragmentName, @Nullable Bundle fragmentArgs) {
- Intent intent = super.createSettingsActivityIntent(context, fragmentName, fragmentArgs);
+ Context context,
+ @Nullable Class extends Fragment> fragment,
+ @Nullable Bundle fragmentArgs) {
+ Intent intent = super.createSettingsActivityIntent(context, fragment, fragmentArgs);
intent.setClass(context, BraveSettingsActivity.class);
if (!(context instanceof Activity)) {
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
}
- if (fragmentName != null) {
- intent.putExtra(SettingsActivity.EXTRA_SHOW_FRAGMENT, fragmentName);
+ if (fragment != null) {
+ intent.putExtra(SettingsActivity.EXTRA_SHOW_FRAGMENT, fragment.getName());
}
if (fragmentArgs != null) {
intent.putExtra(SettingsActivity.EXTRA_SHOW_FRAGMENT_ARGUMENTS, fragmentArgs);
diff --git a/android/java/org/chromium/chrome/browser/settings/BraveWalletNetworksPreferenceFragment.java b/android/java/org/chromium/chrome/browser/settings/BraveWalletNetworksPreferenceFragment.java
index 4f481e3bf4de..3404bc66156c 100644
--- a/android/java/org/chromium/chrome/browser/settings/BraveWalletNetworksPreferenceFragment.java
+++ b/android/java/org/chromium/chrome/browser/settings/BraveWalletNetworksPreferenceFragment.java
@@ -134,9 +134,7 @@ private void launchIntent(@Nullable final String chainId, boolean activeNetwork)
}
Intent intent =
mSettingsLauncher.createSettingsActivityIntent(
- requireContext(),
- BraveWalletAddNetworksFragment.class.getName(),
- fragmentArgs);
+ requireContext(), BraveWalletAddNetworksFragment.class, fragmentArgs);
mAddNetworkActivityResultLauncher.launch(intent);
}
}
diff --git a/android/java/org/chromium/chrome/browser/shields/ContentFilteringFragment.java b/android/java/org/chromium/chrome/browser/shields/ContentFilteringFragment.java
index 1a48961c38e4..b2a838e12bc6 100644
--- a/android/java/org/chromium/chrome/browser/shields/ContentFilteringFragment.java
+++ b/android/java/org/chromium/chrome/browser/shields/ContentFilteringFragment.java
@@ -134,8 +134,9 @@ public void onAddSubscriptionFilter() {
if (mSubscriptionFilterLists.size() > 0) {
isEditSelected(false);
}
- Intent intent = mSettingsLauncher.createSettingsActivityIntent(
- getActivity(), AddCustomFilterListsFragment.class.getName(), null);
+ Intent intent =
+ mSettingsLauncher.createSettingsActivityIntent(
+ getActivity(), AddCustomFilterListsFragment.class, null);
mAddCustomFilterResultLauncher.launch(intent);
}
@@ -158,7 +159,7 @@ public void onCustomFilters() {
}
Intent intent =
mSettingsLauncher.createSettingsActivityIntent(
- getActivity(), CreateCustomFiltersFragment.class.getName(), null);
+ getActivity(), CreateCustomFiltersFragment.class, null);
getActivity().startActivity(intent);
}
diff --git a/android/java/org/chromium/chrome/browser/suggestions/tile/BraveMostVisitedTilesLayoutBase.java b/android/java/org/chromium/chrome/browser/suggestions/tile/BraveMostVisitedTilesLayoutBase.java
new file mode 100644
index 000000000000..4821e278c731
--- /dev/null
+++ b/android/java/org/chromium/chrome/browser/suggestions/tile/BraveMostVisitedTilesLayoutBase.java
@@ -0,0 +1,57 @@
+/* Copyright (c) 2024 The Brave Authors. All rights reserved.
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this file,
+ * You can obtain one at https://mozilla.org/MPL/2.0/. */
+
+package org.chromium.chrome.browser.suggestions.tile;
+
+import android.annotation.SuppressLint;
+import android.content.Context;
+import android.util.AttributeSet;
+import android.widget.GridLayout;
+
+/** The most visited tiles layout. */
+public class BraveMostVisitedTilesLayoutBase extends GridLayout {
+ private static int FIXED_COLUMNS_COUNT = 4;
+
+ private boolean mUseFixedLayout;
+
+ /** Constructor for inflating from XML. */
+ public BraveMostVisitedTilesLayoutBase(Context context, AttributeSet attrs) {
+ super(context, attrs);
+ }
+
+ public void setUseFixedLayout(boolean useFixedLayout) {
+ mUseFixedLayout = useFixedLayout;
+ }
+
+ @SuppressLint("DrawAllocation")
+ @Override
+ protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
+ int childCount = getChildCount();
+ if (mUseFixedLayout && widthMeasureSpec > 0 && childCount > FIXED_COLUMNS_COUNT) {
+ int numColumns = FIXED_COLUMNS_COUNT;
+ if (getColumnCount() < numColumns) {
+ setColumnCount(numColumns);
+ }
+ int numRows = (childCount / numColumns) + 1;
+ if (getRowCount() < numRows) {
+ setRowCount(numRows);
+ }
+ int tileViewWidth = widthMeasureSpec / numColumns;
+ for (int i = 0; i < childCount; i++) {
+ SuggestionsTileView tileView = (SuggestionsTileView) getChildAt(i);
+ int row = i / numColumns;
+ int column = i % numColumns;
+ GridLayout.LayoutParams params =
+ new GridLayout.LayoutParams(
+ GridLayout.spec(row, GridLayout.CENTER, 1),
+ GridLayout.spec(column, GridLayout.CENTER, 1));
+ params.width = tileViewWidth;
+ updateViewLayout(tileView, params);
+ }
+ }
+
+ super.onMeasure(widthMeasureSpec, heightMeasureSpec);
+ }
+}
diff --git a/android/java/org/chromium/chrome/browser/suggestions/tile/BraveMostVisitedTilesMediator.java b/android/java/org/chromium/chrome/browser/suggestions/tile/BraveMostVisitedTilesMediator.java
index 12a0f1a24ec3..18e65800d5b1 100644
--- a/android/java/org/chromium/chrome/browser/suggestions/tile/BraveMostVisitedTilesMediator.java
+++ b/android/java/org/chromium/chrome/browser/suggestions/tile/BraveMostVisitedTilesMediator.java
@@ -6,7 +6,6 @@
package org.chromium.chrome.browser.suggestions.tile;
import android.content.res.Resources;
-import android.view.ViewGroup;
import android.view.ViewStub;
import androidx.annotation.Nullable;
@@ -21,11 +20,10 @@ public class BraveMostVisitedTilesMediator extends MostVisitedTilesMediator {
public BraveMostVisitedTilesMediator(
Resources resources,
UiConfig uiConfig,
- ViewGroup mvTilesLayout,
+ MostVisitedTilesLayout mvTilesLayout,
ViewStub noMvPlaceholderStub,
TileRenderer renderer,
PropertyModel propertyModel,
- boolean isScrollableMVTEnabled,
boolean isTablet,
@Nullable Runnable snapshotTileGridChangedRunnable,
@Nullable Runnable tileCountChangedRunnable) {
@@ -36,7 +34,6 @@ public BraveMostVisitedTilesMediator(
noMvPlaceholderStub,
renderer,
propertyModel,
- isScrollableMVTEnabled,
isTablet,
snapshotTileGridChangedRunnable,
tileCountChangedRunnable);
diff --git a/android/java/org/chromium/chrome/browser/tabbed_mode/BraveTabbedRootUiCoordinator.java b/android/java/org/chromium/chrome/browser/tabbed_mode/BraveTabbedRootUiCoordinator.java
index 1c7c769cd127..0e0b6991132f 100644
--- a/android/java/org/chromium/chrome/browser/tabbed_mode/BraveTabbedRootUiCoordinator.java
+++ b/android/java/org/chromium/chrome/browser/tabbed_mode/BraveTabbedRootUiCoordinator.java
@@ -31,6 +31,7 @@
import org.chromium.chrome.browser.fullscreen.BrowserControlsManager;
import org.chromium.chrome.browser.fullscreen.FullscreenManager;
import org.chromium.chrome.browser.hub.HubManager;
+import org.chromium.chrome.browser.keyboard_accessory.ManualFillingComponentSupplier;
import org.chromium.chrome.browser.layouts.LayoutStateProvider;
import org.chromium.chrome.browser.lifecycle.ActivityLifecycleDispatcher;
import org.chromium.chrome.browser.multiwindow.MultiInstanceManager;
@@ -48,8 +49,8 @@
import org.chromium.chrome.browser.ui.messages.snackbar.SnackbarManager;
import org.chromium.chrome.browser.ui.system.StatusBarColorController.StatusBarColorProvider;
import org.chromium.chrome.features.start_surface.StartSurface;
-import org.chromium.components.browser_ui.widget.InsetObserver;
import org.chromium.components.browser_ui.widget.MenuOrKeyboardActionController;
+import org.chromium.ui.InsetObserver;
import org.chromium.ui.base.ActivityWindowAndroid;
import org.chromium.ui.base.IntentRequestTracker;
import org.chromium.ui.modaldialog.ModalDialogManager;
@@ -101,8 +102,7 @@ public BraveTabbedRootUiCoordinator(
@NonNull
ObservableSupplierImpl ephemeralTabCoordinatorSupplier,
@NonNull IntentRequestTracker intentRequestTracker,
- int controlContainerHeightResource,
- @NonNull Supplier insetObserverViewSupplier,
+ @NonNull InsetObserver insetObserver,
@NonNull Function backButtonShouldCloseTabFn,
OneshotSupplier tabReparentingControllerSupplier,
boolean initializeUiWithIncognitoColors,
@@ -110,7 +110,8 @@ public BraveTabbedRootUiCoordinator(
@Nullable Bundle savedInstanceState,
@Nullable MultiInstanceManager multiInstanceManager,
@Nullable ObservableSupplier overviewColorSupplier,
- @Nullable View baseChromeLayout) {
+ @Nullable View baseChromeLayout,
+ @NonNull ManualFillingComponentSupplier manualFillingComponentSupplier) {
super(
activity,
onOmniboxFocusChangedListener,
@@ -151,8 +152,7 @@ public BraveTabbedRootUiCoordinator(
statusBarColorProvider,
ephemeralTabCoordinatorSupplier,
intentRequestTracker,
- controlContainerHeightResource,
- insetObserverViewSupplier,
+ insetObserver,
backButtonShouldCloseTabFn,
tabReparentingControllerSupplier,
initializeUiWithIncognitoColors,
@@ -160,7 +160,8 @@ public BraveTabbedRootUiCoordinator(
savedInstanceState,
multiInstanceManager,
overviewColorSupplier,
- baseChromeLayout);
+ baseChromeLayout,
+ manualFillingComponentSupplier);
mActivity = activity;
}
diff --git a/android/java/org/chromium/chrome/browser/toolbar/BraveToolbarManager.java b/android/java/org/chromium/chrome/browser/toolbar/BraveToolbarManager.java
index 7252a1b4e19f..577456ee8827 100644
--- a/android/java/org/chromium/chrome/browser/toolbar/BraveToolbarManager.java
+++ b/android/java/org/chromium/chrome/browser/toolbar/BraveToolbarManager.java
@@ -28,7 +28,8 @@
import org.chromium.chrome.browser.back_press.BackPressManager;
import org.chromium.chrome.browser.bookmarks.BookmarkModel;
import org.chromium.chrome.browser.brave_leo.BraveLeoActivity;
-import org.chromium.chrome.browser.browser_controls.BrowserControlsSizer;
+import org.chromium.chrome.browser.browser_controls.BottomControlsStacker;
+import org.chromium.chrome.browser.browser_controls.BrowserControlsVisibilityManager;
import org.chromium.chrome.browser.compositor.CompositorViewHolder;
import org.chromium.chrome.browser.compositor.bottombar.ephemeraltab.EphemeralTabCoordinator;
import org.chromium.chrome.browser.compositor.layouts.LayoutManagerImpl;
@@ -87,7 +88,7 @@ public class BraveToolbarManager extends ToolbarManager {
// To delete in bytecode, members from parent class will be used instead.
private ObservableSupplierImpl mBottomControlsCoordinatorSupplier;
private CallbackController mCallbackController;
- private BrowserControlsSizer mBrowserControlsSizer;
+ private BottomControlsStacker mBottomControlsStacker;
private FullscreenManager mFullscreenManager;
private ActivityTabProvider mActivityTabProvider;
private AppThemeColorProvider mAppThemeColorProvider;
@@ -129,10 +130,13 @@ public class BraveToolbarManager extends ToolbarManager {
private boolean mBottomControlsEnabled;
private BraveScrollingBottomViewResourceFrameLayout mBottomControls;
private ObservableSupplier mEdgeToEdgeControllerSupplier;
+ private ObservableSupplier mProfileSupplier;
+ private BrowserControlsVisibilityManager mBrowserControlsVisibilityManager;
public BraveToolbarManager(
AppCompatActivity activity,
- BrowserControlsSizer controlsSizer,
+ BottomControlsStacker bottomControlsStacker,
+ BrowserControlsVisibilityManager controlsVisibilityManager,
FullscreenManager fullscreenManager,
ObservableSupplier edgeToEdgeControllerSupplier,
ToolbarControlContainer controlContainer,
@@ -183,7 +187,8 @@ public BraveToolbarManager(
@Nullable DesktopWindowStateProvider desktopWindowStateProvider) {
super(
activity,
- controlsSizer,
+ bottomControlsStacker,
+ controlsVisibilityManager,
fullscreenManager,
edgeToEdgeControllerSupplier,
controlContainer,
@@ -237,6 +242,8 @@ public BraveToolbarManager(
mWindowAndroid = windowAndroid;
mCompositorViewHolder = compositorViewHolder;
mEdgeToEdgeControllerSupplier = edgeToEdgeControllerSupplier;
+ mProfileSupplier = profileSupplier;
+ mBrowserControlsVisibilityManager = controlsVisibilityManager;
if (isToolbarPhone()) {
updateBottomToolbarVisibility();
@@ -275,7 +282,7 @@ public void enableBottomControls() {
.createTabGroupUi(
mActivity,
mBottomControls.findViewById(R.id.bottom_container_slot),
- mBrowserControlsSizer,
+ mBrowserControlsVisibilityManager,
mIncognitoStateProvider,
mScrimCoordinator,
mOmniboxFocusStateSupplier,
@@ -296,7 +303,8 @@ public void enableBottomControls() {
BottomTabSwitcherActionMenuCoordinator.createOnLongClickListener(
id ->
((ChromeActivity) mActivity)
- .onOptionsItemSelected(id, null)),
+ .onOptionsItemSelected(id, null),
+ mProfileSupplier.get()),
mActivityTabProvider,
mToolbarTabController::openHomepage,
mCallbackController.makeCancelable(
@@ -310,7 +318,7 @@ public void enableBottomControls() {
mWindowAndroid,
mLayoutManager,
mCompositorViewHolder.getResourceManager(),
- mBrowserControlsSizer,
+ mBottomControlsStacker,
mFullscreenManager,
mEdgeToEdgeControllerSupplier,
mBottomControls,
@@ -488,6 +496,7 @@ private ObservableSupplier getConstraintsProxy() {
return null;
}
+ @Override
public LocationBar getLocationBar() {
return mLocationBar;
}
diff --git a/android/java/org/chromium/chrome/browser/toolbar/bottom/BraveBottomControlsCoordinator.java b/android/java/org/chromium/chrome/browser/toolbar/bottom/BraveBottomControlsCoordinator.java
index d29c3fddae1b..a6f619cb5161 100644
--- a/android/java/org/chromium/chrome/browser/toolbar/bottom/BraveBottomControlsCoordinator.java
+++ b/android/java/org/chromium/chrome/browser/toolbar/bottom/BraveBottomControlsCoordinator.java
@@ -20,7 +20,7 @@
import org.chromium.chrome.R;
import org.chromium.chrome.browser.ActivityTabProvider;
import org.chromium.chrome.browser.bookmarks.BookmarkModel;
-import org.chromium.chrome.browser.browser_controls.BrowserControlsSizer;
+import org.chromium.chrome.browser.browser_controls.BottomControlsStacker;
import org.chromium.chrome.browser.compositor.layouts.LayoutManagerImpl;
import org.chromium.chrome.browser.fullscreen.FullscreenManager;
import org.chromium.chrome.browser.layouts.LayoutManager;
@@ -67,7 +67,7 @@ public BraveBottomControlsCoordinator(
WindowAndroid windowAndroid,
LayoutManager layoutManager,
ResourceManager resourceManager,
- BrowserControlsSizer controlsSizer,
+ BottomControlsStacker controlsStacker,
FullscreenManager fullscreenManager,
ObservableSupplier edgeToEdgeControllerSupplier,
ScrollingBottomViewResourceFrameLayout root,
@@ -81,7 +81,7 @@ public BraveBottomControlsCoordinator(
windowAndroid,
layoutManager,
resourceManager,
- controlsSizer,
+ controlsStacker,
fullscreenManager,
edgeToEdgeControllerSupplier,
root,
diff --git a/android/java/org/chromium/chrome/browser/widget/quickactionsearchandbookmark/QuickActionSearchAndBookmarkWidgetProvider.java b/android/java/org/chromium/chrome/browser/widget/quickactionsearchandbookmark/QuickActionSearchAndBookmarkWidgetProvider.java
index efb3d5e226a9..d6ec7e014ecd 100644
--- a/android/java/org/chromium/chrome/browser/widget/quickactionsearchandbookmark/QuickActionSearchAndBookmarkWidgetProvider.java
+++ b/android/java/org/chromium/chrome/browser/widget/quickactionsearchandbookmark/QuickActionSearchAndBookmarkWidgetProvider.java
@@ -49,12 +49,13 @@
import org.chromium.chrome.browser.profiles.Profile;
import org.chromium.chrome.browser.profiles.ProfileManager;
import org.chromium.chrome.browser.searchwidget.SearchActivity;
-import org.chromium.chrome.browser.searchwidget.SearchActivityUtils;
+import org.chromium.chrome.browser.searchwidget.SearchActivityClientImpl;
import org.chromium.chrome.browser.searchwidget.SearchWidgetProvider;
import org.chromium.chrome.browser.settings.BraveSearchEngineUtils;
import org.chromium.chrome.browser.suggestions.tile.Tile;
import org.chromium.chrome.browser.ui.favicon.FaviconUtils;
import org.chromium.chrome.browser.ui.searchactivityutils.SearchActivityClient;
+import org.chromium.chrome.browser.ui.searchactivityutils.SearchActivityExtras;
import org.chromium.chrome.browser.ui.searchactivityutils.SearchActivityPreferencesManager;
import org.chromium.chrome.browser.ui.searchactivityutils.SearchActivityPreferencesManager.SearchActivityPreferences;
import org.chromium.chrome.browser.widget.quickactionsearchandbookmark.utils.BraveSearchWidgetUtils;
@@ -432,15 +433,15 @@ private static PendingIntent createIntent(@NonNull Context context, @NonNull Str
}
private static PendingIntent createIntent(@NonNull Context context, boolean startVoiceSearch) {
- SearchActivityClient client = new SearchActivityUtils();
+ SearchActivityClient client = new SearchActivityClientImpl();
Intent searchIntent =
client.createIntent(
context,
- SearchActivityClient.IntentOrigin.SEARCH_WIDGET,
+ SearchActivityExtras.IntentOrigin.SEARCH_WIDGET,
null,
startVoiceSearch
- ? SearchActivityClient.SearchType.VOICE
- : SearchActivityClient.SearchType.TEXT);
+ ? SearchActivityExtras.SearchType.VOICE
+ : SearchActivityExtras.SearchType.TEXT);
searchIntent.putExtra(SearchWidgetProvider.EXTRA_FROM_SEARCH_WIDGET, true);
searchIntent.setComponent(new ComponentName(context, SearchActivity.class));
diff --git a/android/java/res/layout/mv_tiles_grid.xml b/android/java/res/layout/mv_tiles_grid.xml
deleted file mode 100644
index 7fcc21de0c2f..000000000000
--- a/android/java/res/layout/mv_tiles_grid.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-
-
-
-
diff --git a/android/java/res/layout/new_tab_page_layout.xml b/android/java/res/layout/new_tab_page_layout.xml
index be7f0e24d16f..6f9694282743 100644
--- a/android/java/res/layout/new_tab_page_layout.xml
+++ b/android/java/res/layout/new_tab_page_layout.xml
@@ -146,9 +146,9 @@
android:id="@+id/tab_resumption_module_container_stub"
android:layout_width="match_parent"
android:layout_height="wrap_content"
- android:layout_marginTop="@dimen/mvt_container_top_margin_polish"
- android:layout_marginLeft="@dimen/mvt_container_lateral_margin_polish"
- android:layout_marginRight="@dimen/mvt_container_lateral_margin_polish"
+ android:layout_marginTop="@dimen/mvt_container_top_margin"
+ android:layout_marginLeft="@dimen/mvt_container_lateral_margin"
+ android:layout_marginRight="@dimen/mvt_container_lateral_margin"
android:layout="@layout/tab_resumption_module_layout" />
diff --git a/android/java/res/values/brave_dimens.xml b/android/java/res/values/brave_dimens.xml
index 305ce38465e8..991e877ee33b 100644
--- a/android/java/res/values/brave_dimens.xml
+++ b/android/java/res/values/brave_dimens.xml
@@ -35,9 +35,6 @@
0dp
-
- 0dp
-
0dp
32dp
diff --git a/android/javatests/org/chromium/chrome/browser/BraveSwipeRefreshHandlerTest.java b/android/javatests/org/chromium/chrome/browser/BraveSwipeRefreshHandlerTest.java
index ac9c42915ecf..15f064399313 100644
--- a/android/javatests/org/chromium/chrome/browser/BraveSwipeRefreshHandlerTest.java
+++ b/android/javatests/org/chromium/chrome/browser/BraveSwipeRefreshHandlerTest.java
@@ -17,6 +17,7 @@
import org.chromium.base.jank_tracker.PlaceholderJankTracker;
import org.chromium.base.supplier.ObservableSupplierImpl;
import org.chromium.base.supplier.OneshotSupplierImpl;
+import org.chromium.base.test.BaseJUnit4ClassRunner;
import org.chromium.base.test.util.Batch;
import org.chromium.cc.input.BrowserControlsState;
import org.chromium.chrome.browser.magic_stack.ModuleRegistry;
@@ -25,7 +26,6 @@
import org.chromium.chrome.browser.tab.TabBuilder;
import org.chromium.chrome.browser.tab.TabLaunchType;
import org.chromium.chrome.browser.ui.RootUiCoordinator;
-import org.chromium.chrome.test.ChromeJUnit4ClassRunner;
import org.chromium.chrome.test.ChromeTabbedActivityTestRule;
import org.chromium.chrome.test.batch.BlankCTATabInitialStateRule;
import org.chromium.components.browser_ui.util.BrowserControlsVisibilityDelegate;
@@ -34,7 +34,7 @@
import org.chromium.ui.OverscrollAction;
import org.chromium.ui.base.PageTransition;
-@RunWith(ChromeJUnit4ClassRunner.class)
+@RunWith(BaseJUnit4ClassRunner.class)
@Batch(Batch.PER_CLASS)
public class BraveSwipeRefreshHandlerTest {
@ClassRule
diff --git a/android/javatests/org/chromium/chrome/browser/BytecodeTest.java b/android/javatests/org/chromium/chrome/browser/BytecodeTest.java
index 2a8e1c2fa703..986e6d3c4735 100644
--- a/android/javatests/org/chromium/chrome/browser/BytecodeTest.java
+++ b/android/javatests/org/chromium/chrome/browser/BytecodeTest.java
@@ -37,6 +37,7 @@
import org.chromium.base.supplier.ObservableSupplierImpl;
import org.chromium.base.supplier.OneshotSupplier;
import org.chromium.base.supplier.Supplier;
+import org.chromium.base.test.BaseJUnit4ClassRunner;
import org.chromium.base.test.util.Batch;
import org.chromium.chrome.browser.back_press.BackPressManager;
import org.chromium.chrome.browser.bookmarks.BookmarkImageFetcher;
@@ -45,8 +46,9 @@
import org.chromium.chrome.browser.bookmarks.BookmarkOpener;
import org.chromium.chrome.browser.bookmarks.BookmarkUiPrefs;
import org.chromium.chrome.browser.bookmarks.BookmarkUndoController;
-import org.chromium.chrome.browser.browser_controls.BrowserControlsSizer;
+import org.chromium.chrome.browser.browser_controls.BottomControlsStacker;
import org.chromium.chrome.browser.browser_controls.BrowserControlsStateProvider;
+import org.chromium.chrome.browser.browser_controls.BrowserControlsVisibilityManager;
import org.chromium.chrome.browser.browser_controls.BrowserStateBrowserControlsVisibilityDelegate;
import org.chromium.chrome.browser.browserservices.intents.BrowserServicesIntentDataProvider;
import org.chromium.chrome.browser.compositor.CompositorViewHolder;
@@ -65,6 +67,7 @@
import org.chromium.chrome.browser.fullscreen.BrowserControlsManager;
import org.chromium.chrome.browser.fullscreen.FullscreenManager;
import org.chromium.chrome.browser.identity_disc.IdentityDiscController;
+import org.chromium.chrome.browser.keyboard_accessory.ManualFillingComponentSupplier;
import org.chromium.chrome.browser.layouts.LayoutManager;
import org.chromium.chrome.browser.lifecycle.ActivityLifecycleDispatcher;
import org.chromium.chrome.browser.logo.CachedTintedBitmap;
@@ -75,6 +78,7 @@
import org.chromium.chrome.browser.ntp.NewTabPageUma;
import org.chromium.chrome.browser.omnibox.BackKeyBehaviorDelegate;
import org.chromium.chrome.browser.omnibox.BraveLocationBarMediator;
+import org.chromium.chrome.browser.omnibox.DeferredIMEWindowInsetApplicationCallback;
import org.chromium.chrome.browser.omnibox.LocationBarDataProvider;
import org.chromium.chrome.browser.omnibox.LocationBarEmbedderUiOverrides;
import org.chromium.chrome.browser.omnibox.LocationBarLayout;
@@ -89,6 +93,7 @@
import org.chromium.chrome.browser.omnibox.suggestions.basic.BasicSuggestionProcessor.BookmarkState;
import org.chromium.chrome.browser.profiles.Profile;
import org.chromium.chrome.browser.share.ShareDelegateImpl;
+import org.chromium.chrome.browser.suggestions.tile.MostVisitedTilesLayout;
import org.chromium.chrome.browser.suggestions.tile.TileRenderer;
import org.chromium.chrome.browser.tab.Tab;
import org.chromium.chrome.browser.tab.TabObscuringHandler;
@@ -119,7 +124,6 @@
import org.chromium.chrome.browser.ui.system.StatusBarColorController;
import org.chromium.chrome.browser.ui.system.StatusBarColorController.StatusBarColorProvider;
import org.chromium.chrome.browser.user_education.UserEducationHelper;
-import org.chromium.chrome.test.ChromeJUnit4ClassRunner;
import org.chromium.components.browser_ui.bottomsheet.BottomSheetController;
import org.chromium.components.browser_ui.site_settings.ContentSettingException;
import org.chromium.components.browser_ui.site_settings.PermissionInfo;
@@ -144,6 +148,7 @@
import org.chromium.components.signin.base.AccountInfo;
import org.chromium.content_public.browser.BrowserContextHandle;
import org.chromium.content_public.browser.WebContents;
+import org.chromium.ui.InsetObserver;
import org.chromium.ui.ViewProvider;
import org.chromium.ui.base.ActivityWindowAndroid;
import org.chromium.ui.base.EventOffsetHandler;
@@ -172,7 +177,7 @@
* should be whitelisted in 'brave/android/java/apk_for_test.flags'.
*/
@Batch(Batch.PER_CLASS)
-@RunWith(ChromeJUnit4ClassRunner.class)
+@RunWith(BaseJUnit4ClassRunner.class)
public class BytecodeTest {
enum MethodModifier {
REGULAR,
@@ -382,13 +387,6 @@ public void testMethodsExist() throws Exception {
MethodModifier.REGULAR,
false,
null));
- Assert.assertTrue(
- methodExists(
- "org/chromium/chrome/browser/ntp/NewTabPageLayout",
- "isScrollableMvtEnabled",
- MethodModifier.REGULAR,
- true,
- boolean.class));
Assert.assertTrue(
methodExists(
"org/chromium/chrome/browser/ntp/NewTabPageLayout",
@@ -1043,7 +1041,8 @@ public void testConstructorsExistAndMatch() throws Exception {
"org/chromium/chrome/browser/toolbar/ToolbarManager",
"org/chromium/chrome/browser/toolbar/BraveToolbarManager",
AppCompatActivity.class,
- BrowserControlsSizer.class,
+ BottomControlsStacker.class,
+ BrowserControlsVisibilityManager.class,
FullscreenManager.class,
ObservableSupplier.class,
ToolbarControlContainer.class,
@@ -1096,7 +1095,7 @@ public void testConstructorsExistAndMatch() throws Exception {
"org/chromium/chrome/browser/toolbar/bottom/BraveBottomControlsMediator",
WindowAndroid.class,
PropertyModel.class,
- BrowserControlsSizer.class,
+ BottomControlsStacker.class,
FullscreenManager.class,
TabObscuringHandler.class,
int.class,
@@ -1176,6 +1175,7 @@ public void testConstructorsExistAndMatch() throws Exception {
Activity.class,
BrowserControlsStateProvider.class,
Supplier.class,
+ ModalDialogManager.class,
SnackbarManager.class,
ActivityLifecycleDispatcher.class,
TabModelSelector.class,
@@ -1275,7 +1275,8 @@ public void testConstructorsExistAndMatch() throws Exception {
OmniboxActionDelegate.class,
ActivityLifecycleDispatcher.class,
OmniboxSuggestionsDropdownEmbedder.class,
- WindowAndroid.class));
+ WindowAndroid.class,
+ DeferredIMEWindowInsetApplicationCallback.class));
Assert.assertTrue(
constructorsMatch(
"org/chromium/chrome/browser/multiwindow/MultiInstanceManagerApi31",
@@ -1320,12 +1321,11 @@ public void testConstructorsExistAndMatch() throws Exception {
"org/chromium/chrome/browser/suggestions/tile/BraveMostVisitedTilesMediator",
Resources.class,
UiConfig.class,
- ViewGroup.class,
+ MostVisitedTilesLayout.class,
ViewStub.class,
TileRenderer.class,
PropertyModel.class,
boolean.class,
- boolean.class,
Runnable.class,
Runnable.class));
Assert.assertTrue(
@@ -1379,7 +1379,6 @@ public void testConstructorsExistAndMatch() throws Exception {
Supplier.class,
OmniboxActionDelegate.class,
BrowserStateBrowserControlsVisibilityDelegate.class,
- Callback.class,
BackPressManager.class,
OmniboxSuggestionsDropdownScrollListener.class,
ObservableSupplier.class,
@@ -1498,8 +1497,7 @@ public void testConstructorsExistAndMatch() throws Exception {
StatusBarColorProvider.class,
ObservableSupplierImpl.class,
IntentRequestTracker.class,
- int.class,
- Supplier.class,
+ InsetObserver.class,
Function.class,
OneshotSupplier.class,
boolean.class,
@@ -1507,7 +1505,8 @@ public void testConstructorsExistAndMatch() throws Exception {
Bundle.class,
MultiInstanceManager.class,
ObservableSupplier.class,
- View.class));
+ View.class,
+ ManualFillingComponentSupplier.class));
Assert.assertTrue(
constructorsMatch(
"org/chromium/chrome/browser/bookmarks/BookmarkToolbar",
@@ -1530,7 +1529,8 @@ public void testConstructorsExistAndMatch() throws Exception {
BookmarkUiPrefs.class,
ModalDialogManager.class,
Runnable.class,
- BookmarkMoveSnackbarManager.class));
+ BookmarkMoveSnackbarManager.class,
+ BooleanSupplier.class));
Assert.assertTrue(
constructorsMatch(
"org/chromium/chrome/browser/bookmarks/BookmarkManagerCoordinator",
@@ -1737,7 +1737,7 @@ public void testFieldsExist() throws Exception {
Assert.assertTrue(
fieldExists(
"org/chromium/chrome/browser/toolbar/ToolbarManager",
- "mBrowserControlsSizer"));
+ "mBottomControlsStacker"));
Assert.assertTrue(
fieldExists(
"org/chromium/chrome/browser/toolbar/ToolbarManager",
@@ -1874,7 +1874,7 @@ public void testFieldsExist() throws Exception {
Assert.assertTrue(
fieldExists(
"org/chromium/chrome/browser/toolbar/bottom/BottomControlsMediator",
- "mBrowserControlsSizer"));
+ "mBottomControlsStacker"));
Assert.assertTrue(
fieldExists(
"org/chromium/chrome/browser/toolbar/IncognitoToggleTabLayout",
@@ -2167,6 +2167,10 @@ public void testSuperNames() throws Exception {
checkSuperName(
"org/chromium/chrome/browser/media/PictureInPictureActivity",
"org/chromium/chrome/browser/media/BravePictureInPictureActivity"));
+ Assert.assertTrue(
+ checkSuperName(
+ "org/chromium/chrome/browser/suggestions/tile/MostVisitedTilesLayout",
+ "org/chromium/chrome/browser/suggestions/tile/BraveMostVisitedTilesLayoutBase"));
}
private boolean classExists(String className) {
diff --git a/android/javatests/org/chromium/chrome/browser/brave_wallet/BraveWalletUtilsTest.java b/android/javatests/org/chromium/chrome/browser/brave_wallet/BraveWalletUtilsTest.java
index 5efdd0d3dc1d..4df5e2f147ea 100644
--- a/android/javatests/org/chromium/chrome/browser/brave_wallet/BraveWalletUtilsTest.java
+++ b/android/javatests/org/chromium/chrome/browser/brave_wallet/BraveWalletUtilsTest.java
@@ -15,6 +15,7 @@
import org.junit.Test;
import org.junit.runner.RunWith;
+import org.chromium.base.test.BaseJUnit4ClassRunner;
import org.chromium.base.test.util.Batch;
import org.chromium.brave_wallet.mojom.AccountId;
import org.chromium.brave_wallet.mojom.BlockchainToken;
@@ -28,7 +29,6 @@
import org.chromium.brave_wallet.mojom.TxData1559;
import org.chromium.chrome.browser.crypto_wallet.util.Utils;
import org.chromium.chrome.browser.crypto_wallet.util.Validations;
-import org.chromium.chrome.test.ChromeJUnit4ClassRunner;
import org.chromium.url.mojom.Url;
import java.util.Arrays;
@@ -36,7 +36,7 @@
import java.util.Locale;
@Batch(Batch.PER_CLASS)
-@RunWith(ChromeJUnit4ClassRunner.class)
+@RunWith(BaseJUnit4ClassRunner.class)
public class BraveWalletUtilsTest {
@Test
@SmallTest
diff --git a/android/javatests/org/chromium/chrome/browser/language/settings/BraveLanguageSettingsTest.java b/android/javatests/org/chromium/chrome/browser/language/settings/BraveLanguageSettingsTest.java
index 47dbe5f46b20..8fbfa1c1eeb4 100644
--- a/android/javatests/org/chromium/chrome/browser/language/settings/BraveLanguageSettingsTest.java
+++ b/android/javatests/org/chromium/chrome/browser/language/settings/BraveLanguageSettingsTest.java
@@ -15,10 +15,10 @@
import org.junit.Test;
import org.junit.runner.RunWith;
+import org.chromium.base.test.BaseJUnit4ClassRunner;
import org.chromium.chrome.browser.settings.SettingsActivityTestRule;
-import org.chromium.chrome.test.ChromeJUnit4ClassRunner;
-@RunWith(ChromeJUnit4ClassRunner.class)
+@RunWith(BaseJUnit4ClassRunner.class)
public class BraveLanguageSettingsTest {
static final String TRANSLATION_SETTINGS_SECTION = "translation_settings_section";
diff --git a/android/javatests/org/chromium/chrome/browser/password_manager/settings/BravePasswordSettingsTest.java b/android/javatests/org/chromium/chrome/browser/password_manager/settings/BravePasswordSettingsTest.java
index a47e858cdd0f..d20e322b9e34 100644
--- a/android/javatests/org/chromium/chrome/browser/password_manager/settings/BravePasswordSettingsTest.java
+++ b/android/javatests/org/chromium/chrome/browser/password_manager/settings/BravePasswordSettingsTest.java
@@ -16,15 +16,13 @@
import org.junit.Test;
import org.junit.runner.RunWith;
+import org.chromium.base.test.BaseJUnit4ClassRunner;
import org.chromium.chrome.browser.password_manager.ManagePasswordsReferrer;
import org.chromium.chrome.browser.password_manager.PasswordManagerHelper;
import org.chromium.chrome.browser.settings.SettingsActivityTestRule;
-import org.chromium.chrome.test.ChromeJUnit4ClassRunner;
-/**
- * Tests for the "Passwords" settings screen.
- */
-@RunWith(ChromeJUnit4ClassRunner.class)
+/** Tests for the "Passwords" settings screen. */
+@RunWith(BaseJUnit4ClassRunner.class)
public class BravePasswordSettingsTest {
private static final String PREF_CHECK_PASSWORDS = "check_passwords";
diff --git a/android/javatests/org/chromium/chrome/browser/privacy/settings/BravePrivacySettingsTest.java b/android/javatests/org/chromium/chrome/browser/privacy/settings/BravePrivacySettingsTest.java
index 123518c5cbd2..41334c302442 100644
--- a/android/javatests/org/chromium/chrome/browser/privacy/settings/BravePrivacySettingsTest.java
+++ b/android/javatests/org/chromium/chrome/browser/privacy/settings/BravePrivacySettingsTest.java
@@ -16,20 +16,18 @@
import org.junit.Test;
import org.junit.runner.RunWith;
+import org.chromium.base.test.BaseJUnit4ClassRunner;
import org.chromium.base.test.util.Batch;
import org.chromium.chrome.browser.prefetch.settings.PreloadPagesSettingsBridge;
import org.chromium.chrome.browser.prefetch.settings.PreloadPagesState;
import org.chromium.chrome.browser.profiles.ProfileManager;
import org.chromium.chrome.browser.settings.SettingsActivityTestRule;
-import org.chromium.chrome.test.ChromeJUnit4ClassRunner;
import org.chromium.chrome.test.ChromeTabbedActivityTestRule;
import org.chromium.content_public.browser.test.util.TestThreadUtils;
-/**
- * Checks if changes have been made to the Chromium privacy settings
- */
+/** Checks if changes have been made to the Chromium privacy settings */
@Batch(Batch.PER_CLASS)
-@RunWith(ChromeJUnit4ClassRunner.class)
+@RunWith(BaseJUnit4ClassRunner.class)
public class BravePrivacySettingsTest {
// Chromium Prefs that are being checked
private static final String PREF_CAN_MAKE_PAYMENT = "can_make_payment";
@@ -45,7 +43,7 @@ public class BravePrivacySettingsTest {
private static final String PREF_INCOGNITO_LOCK = "incognito_lock";
private static final String PREF_PHONE_AS_A_SECURITY_KEY = "phone_as_a_security_key";
- private static final int BRAVE_PRIVACY_SETTINGS_NUMBER_OF_ITEMS = 31;
+ private static final int BRAVE_PRIVACY_SETTINGS_NUMBER_OF_ITEMS = 32;
private int mItemsLeft;
diff --git a/android/javatests/org/chromium/chrome/browser/safe_browsing/settings/BraveSafeBrowsingSettingsFragmentTest.java b/android/javatests/org/chromium/chrome/browser/safe_browsing/settings/BraveSafeBrowsingSettingsFragmentTest.java
index e2c0747f61e2..e850bbfec9a6 100644
--- a/android/javatests/org/chromium/chrome/browser/safe_browsing/settings/BraveSafeBrowsingSettingsFragmentTest.java
+++ b/android/javatests/org/chromium/chrome/browser/safe_browsing/settings/BraveSafeBrowsingSettingsFragmentTest.java
@@ -15,15 +15,16 @@
import org.junit.Test;
import org.junit.runner.RunWith;
+import org.chromium.base.test.BaseJUnit4ClassRunner;
import org.chromium.chrome.browser.settings.SettingsActivityTestRule;
-import org.chromium.chrome.test.ChromeJUnit4ClassRunner;
import org.chromium.content_public.browser.test.util.TestThreadUtils;
-@RunWith(ChromeJUnit4ClassRunner.class)
+@RunWith(BaseJUnit4ClassRunner.class)
public class BraveSafeBrowsingSettingsFragmentTest {
@Rule
public SettingsActivityTestRule mTestRule =
new SettingsActivityTestRule<>(SafeBrowsingSettingsFragment.class);
+
private SafeBrowsingSettingsFragment mSafeBrowsingSettingsFragment;
private RadioButtonGroupSafeBrowsingPreference mSafeBrowsingPreference;
diff --git a/android/javatests/org/chromium/chrome/browser/safety_check/BraveSafetyCheckSettingsFragmentTest.java b/android/javatests/org/chromium/chrome/browser/safety_check/BraveSafetyCheckSettingsFragmentTest.java
index cbc374fdc74d..0f2047307080 100644
--- a/android/javatests/org/chromium/chrome/browser/safety_check/BraveSafetyCheckSettingsFragmentTest.java
+++ b/android/javatests/org/chromium/chrome/browser/safety_check/BraveSafetyCheckSettingsFragmentTest.java
@@ -15,13 +15,13 @@
import org.junit.Test;
import org.junit.runner.RunWith;
+import org.chromium.base.test.BaseJUnit4ClassRunner;
import org.chromium.chrome.browser.settings.SettingsActivityTestRule;
-import org.chromium.chrome.test.ChromeJUnit4ClassRunner;
// Currently safety check setion is not used in Brave.
// Main purpose of these tests id to detect that something new, that we may consider valuable, is
// appeared in this section .
-@RunWith(ChromeJUnit4ClassRunner.class)
+@RunWith(BaseJUnit4ClassRunner.class)
public class BraveSafetyCheckSettingsFragmentTest {
private static final String PASSWORDS_LOCAL = "passwords_local";
private static final String PASSWORDS_ACCOUNT = "passwords_account";
diff --git a/app/BUILD.gn b/app/BUILD.gn
index 6d66616a0b84..2bd45a319699 100644
--- a/app/BUILD.gn
+++ b/app/BUILD.gn
@@ -86,7 +86,6 @@ source_set("browser_tests") {
sources = [
"brave_main_delegate_browsertest.cc",
- "brave_main_delegate_runtime_flags_browsertest.cc",
"command_utils_browsertest.cc",
]
@@ -119,7 +118,6 @@ source_set("unit_tests") {
"//base",
"//base/test:test_support",
"//chrome/browser",
- "//chrome/browser/companion/core",
"//chrome/browser/enterprise/connectors/analysis:features",
"//chrome/browser/ui",
"//chrome/common/companion/visual_query:flags",
@@ -135,6 +133,7 @@ source_set("unit_tests") {
"//components/history_clusters/core",
"//components/language/core/common",
"//components/lens",
+ "//components/manta",
"//components/metrics/structured:structured_metrics_features",
"//components/network_time",
"//components/omnibox/browser",
@@ -150,6 +149,7 @@ source_set("unit_tests") {
"//components/shared_highlighting/core/common",
"//components/signin/public/base:signin_buildflags",
"//components/subresource_filter/core/common",
+ "//components/sync/base:features",
"//gpu/config",
"//services/device/public/cpp:device_features",
"//services/network/public/cpp",
@@ -167,8 +167,8 @@ source_set("unit_tests") {
"//brave/components/commands/common",
"//chrome/app:command_ids",
"//chrome/browser/apps/link_capturing:link_capturing",
+ "//chrome/browser/companion/core",
"//chrome/common:chrome_features",
- "//components/manta",
"//components/translate/core/common",
"//extensions/common",
"//ui/accessibility:ax_base",
diff --git a/app/DEPS b/app/DEPS
index 9ab6c0113a13..1bfdd0e9d4d6 100644
--- a/app/DEPS
+++ b/app/DEPS
@@ -18,6 +18,7 @@ include_rules = [
"+components/embedder_support/switches.h",
"+components/feed/feed_feature_list.h",
"+components/language/core/common",
+ "+components/manta/features.h",
"+components/network_time/network_time_tracker.h",
"+components/offline_pages/core/offline_page_feature.h",
"+components/omnibox/common",
diff --git a/app/app_management_strings.grdp b/app/app_management_strings.grdp
index 7da73249d614..b44d53eafca5 100644
--- a/app/app_management_strings.grdp
+++ b/app/app_management_strings.grdp
@@ -177,24 +177,42 @@
Denied
-
+
Allowed. Turn on <a href="#">system camera access</a>.
-
+
Allowed. Turn on <a href="#">system microphone access</a>.
-
+
Allowed. Turn on <a href="#">system location access</a>.
-
+
Allowed – $1While in use. Turn on <a href="#">system camera access</a>.
-
+
Allowed – $1While in use. Turn on <a href="#">system microphone access</a>.
-
+
Allowed – $1While in use. Turn on <a href="#">system location access</a>.
+
+ Allowed. Connect a camera to your device.
+
+
+ Allowed. Connect a microphone to your device.
+
+
+ Allowed – $1While in use. Connect a camera to your device.
+
+
+ Allowed – $1While in use. Connect a microphone to your device.
+
+
+ Allowed. Turn on microphone using physical switch.
+
+
+ Allowed – $1While in use. Turn on microphone using physical switch.
+
diff --git a/app/brave_main_delegate.cc b/app/brave_main_delegate.cc
index 4b868ed6f861..206647f9a306 100644
--- a/app/brave_main_delegate.cc
+++ b/app/brave_main_delegate.cc
@@ -177,17 +177,6 @@ std::optional BraveMainDelegate::BasicStartupComplete() {
variations::switches::kVariationsInsecureServerURL,
BUILDFLAG(BRAVE_VARIATIONS_SERVER_URL));
- if (command_line->HasSwitch(switches::kDisableDnsOverHttps)) {
- std::string disabled_features = "";
- if (command_line->HasSwitch(switches::kDisableFeatures)) {
- disabled_features = base::StrCat(
- {command_line->GetSwitchValueASCII(switches::kDisableFeatures), ","});
- }
- command_line->AppendSwitchASCII(
- switches::kDisableFeatures,
- base::StrCat({disabled_features, features::kDnsOverHttps.name}));
- }
-
return ChromeMainDelegate::BasicStartupComplete();
}
void BraveMainDelegate::PreSandboxStartup() {
diff --git a/app/brave_main_delegate_runtime_flags_browsertest.cc b/app/brave_main_delegate_runtime_flags_browsertest.cc
deleted file mode 100644
index bcdc57f18339..000000000000
--- a/app/brave_main_delegate_runtime_flags_browsertest.cc
+++ /dev/null
@@ -1,30 +0,0 @@
-/* Copyright (c) 2020 The Brave Authors. All rights reserved.
- * This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this file,
- * You can obtain one at http://mozilla.org/MPL/2.0/. */
-
-#include "brave/components/constants/brave_switches.h"
-#include "build/build_config.h"
-#include "chrome/common/chrome_features.h"
-#include "content/public/test/browser_test.h"
-
-#if BUILDFLAG(IS_ANDROID)
-#include "chrome/test/base/android/android_browser_test.h"
-#else
-#include "chrome/test/base/in_process_browser_test.h"
-#endif
-
-class BraveMainDelegateRuntimeFlagsBrowserTest : public PlatformBrowserTest {
- public:
- BraveMainDelegateRuntimeFlagsBrowserTest() = default;
- ~BraveMainDelegateRuntimeFlagsBrowserTest() override = default;
-
- void SetUpCommandLine(base::CommandLine* command_line) override {
- command_line->AppendSwitch(switches::kDisableDnsOverHttps);
- }
-};
-
-IN_PROC_BROWSER_TEST_F(BraveMainDelegateRuntimeFlagsBrowserTest,
- DisableDnsOverHTTPS) {
- EXPECT_FALSE(base::FeatureList::IsEnabled(features::kDnsOverHttps));
-}
diff --git a/app/brave_strings.grd b/app/brave_strings.grd
index 98346a8eb9e2..0dd356ceb4ea 100644
--- a/app/brave_strings.grd
+++ b/app/brave_strings.grd
@@ -991,6 +991,19 @@ Permissions you've already given to websites and apps may apply to this account.
+
+
+
+ The extension \"$1Screencast\" wants you to sign in to Brave
+
+
+ To use this extension as $1elisa.g.beckett@gmail.com, sign in to Brave.\nYou’ll also be able to use and save your passwords and more from your Brave sync chain.
+
+
+ An extension wants you to sign in to Brave
+
+
+
@@ -1054,14 +1067,14 @@ Permissions you've already given to websites and apps may apply to this account.
To save and use your passwords and more on all your devices, sign in to Brave
-
- You can use your passwords from your Brave sync chain in Brave while you're signed in
+
+ While you're signed in, you can use your passwords and more from your Brave sync chain in Brave
Brave needs to verify it’s you before some data can be saved in your Brave sync chain and used on all your devices. If you sign out, this data will stay on this device.
- Some of your Brave data hasn't been saved in your Brave sync chain yet. Try waiting a few minutes before signing out.
+ Some of your Brave data hasn't been saved in your Brave sync chain yet. Try waiting a few minutes before signing out. If you sign out now, this data will be deleted.
You’ll be signed out of most sites when you close all Brave windows, except your Brave sync chain if you’re signed in to Brave. To let sites remember you, $1go to settings.
@@ -1440,6 +1453,21 @@ Permissions you've already given to websites and apps may apply to this account.
Brave Tab
+
+ To share your screen, allow screen recording for Brave in System Preferences
+
+
+ To share your screen, allow screen recording for Brave in System Preferences.
+
+
+ To share your window, allow screen recording for Brave in System Preferences
+
+
+ To share your window, allow screen recording for Brave in System Preferences.
+
+
+ You'll then need to restart Brave.
+
@@ -2020,6 +2048,14 @@ Permissions you've already given to websites and apps may apply to this account.
+
+
+
+
+ To improve your browsing experience, Brave recommends deactivating these background tabs:
+
+
+
To delete browsing data from this device only, while keeping it in your Brave sync chain, <a href="#" target="_blank">sign out of Brave</a>.
diff --git a/app/brave_strings_override.grd b/app/brave_strings_override.grd
index 87a31631dc6a..b2f55b457b31 100644
--- a/app/brave_strings_override.grd
+++ b/app/brave_strings_override.grd
@@ -246,6 +246,9 @@ Permissions you've already given to websites and apps may apply to this account.
+
+
+
@@ -419,6 +422,9 @@ Permissions you've already given to websites and apps may apply to this account.
+
+
+
diff --git a/app/chromeos_shared_strings.grdp b/app/chromeos_shared_strings.grdp
index 73619c0a8a90..4ef3192a8c70 100644
--- a/app/chromeos_shared_strings.grdp
+++ b/app/chromeos_shared_strings.grdp
@@ -52,4 +52,9 @@
Parallels Desktop
+
+
+ Microsoft 365
+
+
diff --git a/app/command_utils_browsertest.cc b/app/command_utils_browsertest.cc
index 6c17f66cc66d..592311ea6a1e 100644
--- a/app/command_utils_browsertest.cc
+++ b/app/command_utils_browsertest.cc
@@ -40,31 +40,31 @@ IN_PROC_BROWSER_TEST_F(CommandUtilsBrowserTest,
// Some commands, particularly those that create dialogs introduce some test
// flakes, so we disable them.
constexpr int kKnownGoodCommandsThatSometimesBreakTest[] = {
- IDC_PRINT,
- IDC_BASIC_PRINT,
- IDC_OPEN_FILE,
- IDC_SAVE_PAGE,
- IDC_SHOW_MANAGEMENT_PAGE,
+ IDC_PRINT,
+ IDC_BASIC_PRINT,
+ IDC_OPEN_FILE,
+ IDC_SAVE_PAGE,
+ IDC_SHOW_AVATAR_MENU,
+ IDC_SHOW_MANAGEMENT_PAGE,
#if BUILDFLAG(IS_MAC)
- IDC_FOCUS_THIS_TAB,
- IDC_FOCUS_TOOLBAR,
- IDC_FOCUS_LOCATION,
- IDC_FOCUS_SEARCH,
- IDC_FOCUS_MENU_BAR,
- IDC_FOCUS_NEXT_PANE,
- IDC_FOCUS_PREVIOUS_PANE,
- IDC_FOCUS_BOOKMARKS,
- IDC_FOCUS_INACTIVE_POPUP_FOR_ACCESSIBILITY,
- IDC_FOCUS_WEB_CONTENTS_PANE,
- IDC_TOGGLE_FULLSCREEN_TOOLBAR,
- IDC_CONTENT_CONTEXT_EXIT_FULLSCREEN,
- IDC_FULLSCREEN,
- IDC_TOGGLE_VERTICAL_TABS,
- IDC_TOGGLE_VERTICAL_TABS_WINDOW_TITLE,
+ IDC_FOCUS_THIS_TAB,
+ IDC_FOCUS_TOOLBAR,
+ IDC_FOCUS_LOCATION,
+ IDC_FOCUS_SEARCH,
+ IDC_FOCUS_MENU_BAR,
+ IDC_FOCUS_NEXT_PANE,
+ IDC_FOCUS_PREVIOUS_PANE,
+ IDC_FOCUS_BOOKMARKS,
+ IDC_FOCUS_INACTIVE_POPUP_FOR_ACCESSIBILITY,
+ IDC_FOCUS_WEB_CONTENTS_PANE,
+ IDC_TOGGLE_FULLSCREEN_TOOLBAR,
+ IDC_CONTENT_CONTEXT_EXIT_FULLSCREEN,
+ IDC_FULLSCREEN,
+ IDC_TOGGLE_VERTICAL_TABS,
+ IDC_TOGGLE_VERTICAL_TABS_WINDOW_TITLE,
#endif
- IDC_EXIT
- };
+ IDC_EXIT};
ASSERT_TRUE(ui_test_utils::NavigateToURL(browser(), GURL("chrome://newtab")));
const auto& commands = commands::GetCommands();
diff --git a/app/feature_defaults_unittest.cc b/app/feature_defaults_unittest.cc
index 34fa87e053f7..fa77bf761b3a 100644
--- a/app/feature_defaults_unittest.cc
+++ b/app/feature_defaults_unittest.cc
@@ -27,6 +27,7 @@
#include "components/history_clusters/core/features.h"
#include "components/history_clusters/core/on_device_clustering_features.h"
#include "components/lens/lens_features.h"
+#include "components/manta/features.h"
#include "components/metrics/structured/structured_metrics_features.h"
#include "components/network_time/network_time_tracker.h"
#include "components/omnibox/common/omnibox_features.h"
@@ -43,6 +44,7 @@
#include "components/signin/public/base/signin_buildflags.h"
#include "components/signin/public/base/signin_switches.h"
#include "components/subresource_filter/core/common/common_features.h"
+#include "components/sync/base/features.h"
#include "content/common/features.h"
#include "content/public/common/content_features.h"
#include "content/public/common/dips_utils.h"
@@ -63,7 +65,6 @@
#include "chrome/browser/enterprise/connectors/analysis/content_analysis_features.h"
#include "chrome/browser/sharing_hub/sharing_hub_features.h"
#include "components/device_signals/core/common/signals_features.h"
-#include "components/manta/features.h"
#include "components/translate/core/common/translate_util.h"
#include "extensions/common/extension_features.h"
#include "services/device/public/cpp/device_features.h"
@@ -77,7 +78,6 @@ TEST(FeatureDefaultsTest, DisabledFeatures) {
#if BUILDFLAG(IS_ANDROID)
&android_webview::features::kWebViewEnumerateDevicesCache,
#endif
- &attribution_reporting::features::kAttributionReportingTriggerContextId,
&attribution_reporting::features::kConversionMeasurement,
&autofill::features::kAutofillEnableRemadeDownstreamMetrics,
&autofill::features::test::kAutofillServerCommunication,
@@ -104,7 +104,6 @@ TEST(FeatureDefaultsTest, DisabledFeatures) {
&blink::features::kPrerender2,
&blink::features::kPrivacySandboxAdsAPIs,
&blink::features::kPrivateAggregationApi,
- &blink::features::kPrivateAggregationApiMultipleCloudProviders,
&blink::features::kReduceCookieIPCs,
&blink::features::kSharedStorageAPI,
&blink::features::kSharedStorageAPIM118,
@@ -122,26 +121,23 @@ TEST(FeatureDefaultsTest, DisabledFeatures) {
&commerce::kShoppingList,
&commerce::kShoppingPDPMetrics,
&commerce::kRetailCoupons,
- &companion::features::internal::
- kCompanionEnabledByObservingExpsNavigations,
- &companion::features::internal::kSidePanelCompanion,
- &companion::features::internal::kSidePanelCompanion2,
&companion::visual_query::features::kVisualQuerySuggestions,
&compose::features::kEnableCompose,
&content_settings::features::kTrackingProtection3pcd,
&content_settings::features::kUserBypassUI,
#if !BUILDFLAG(IS_ANDROID)
+ &companion::features::internal::
+ kCompanionEnabledByObservingExpsNavigations,
+ &companion::features::internal::kSidePanelCompanion,
+ &companion::features::internal::kSidePanelCompanion2,
&enterprise_signals::features::kDeviceSignalsConsentDialog,
&extensions_features::kExtensionManifestV2DeprecationWarning,
&extensions_features::kExtensionsManifestV3Only,
-#endif
-#if BUILDFLAG(IS_WIN)
- &features::kAppBoundEncryptionMetrics,
+ &features::kToolbarPinning,
#endif
&features::kAttributionReportingCrossAppWebOverride,
&features::kBookmarkTriggerForPrerender2,
&features::kChromeLabs,
- &features::kChromeRefresh2023,
&features::kChromeStructuredMetrics,
&features::kControlledFrame,
&features::kCookieDeprecationFacilitatedTesting,
@@ -151,7 +147,6 @@ TEST(FeatureDefaultsTest, DisabledFeatures) {
&features::kDigitalGoodsApi,
&features::kDIPS,
&features::kFedCm,
- &features::kFedCmWithoutThirdPartyCookies,
#if !BUILDFLAG(IS_ANDROID)
&features::kHaTSWebUI,
#endif
@@ -166,15 +161,9 @@ TEST(FeatureDefaultsTest, DisabledFeatures) {
&features::kPrivacyGuidePreloadAndroid,
#endif
&features::kPrivacySandboxAdsAPIsOverride,
-#if !BUILDFLAG(IS_ANDROID)
- &features::kReadAnything,
-#endif
&features::kResourceTimingForCancelledNavigationInFrame,
&features::kSCTAuditing,
&features::kServiceWorkerAutoPreload,
-#if !BUILDFLAG(IS_ANDROID)
- &features::kSidePanelPinning,
-#endif
&features::kSignedHTTPExchange,
&features::kSupportSearchSuggestionForPrerender2,
&features::kTabHoverCardImages,
@@ -186,6 +175,7 @@ TEST(FeatureDefaultsTest, DisabledFeatures) {
&features::kUseChromiumUpdater,
#endif
#if !BUILDFLAG(IS_ANDROID)
+ &features::kUseMoveNotCopyInMergeTreeUpdate,
&features::kWebAppUniversalInstall,
#endif
&features::kWebIdentityDigitalCredentials,
@@ -210,9 +200,7 @@ TEST(FeatureDefaultsTest, DisabledFeatures) {
&kVerifyRequestInitiatorForMirrorHeaders,
#endif
&lens::features::kLensStandalone,
-#if !BUILDFLAG(IS_ANDROID)
&manta::features::kMantaService,
-#endif
&media::kLiveCaption,
&metrics::structured::kEnabledStructuredMetricsService,
&metrics::structured::kPhoneHubStructuredMetrics,
@@ -261,7 +249,7 @@ TEST(FeatureDefaultsTest, DisabledFeatures) {
&privacy_sandbox::kPrivacySandboxFirstPartySetsUI,
&privacy_sandbox::kPrivacySandboxProactiveTopicsBlocking,
&privacy_sandbox::kPrivacySandboxSettings4,
- &privacy_sandbox::kTrackingProtectionContentSetting,
+ &privacy_sandbox::kTrackingProtectionContentSettingUbControl,
&safe_browsing::kExtensionTelemetryDisableOffstoreExtensions,
&safe_browsing::kExtensionTelemetryTabsApiSignal,
&safe_browsing::kImprovedDownloadPageWarnings,
@@ -272,6 +260,7 @@ TEST(FeatureDefaultsTest, DisabledFeatures) {
&shared_highlighting::kIOSSharedHighlightingV2,
&shared_highlighting::kSharedHighlightingManager,
&subresource_filter::kAdTagging,
+ &syncer::kEnableBookmarkFoldersForAccountStorage,
#if !BUILDFLAG(IS_ANDROID)
&translate::kTFLiteLanguageDetectionEnabled,
#endif
@@ -290,14 +279,8 @@ TEST(FeatureDefaultsTest, EnabledFeatures) {
&blink::features::kReduceUserAgentMinorVersion,
&blink::features::kUACHOverrideBlank,
&features::kCertificateTransparencyAskBeforeEnabling,
-#if BUILDFLAG(IS_WIN)
- &features::kWinrtGeolocationImplementation,
-#endif
&media::kEnableTabMuting,
&net::features::kPartitionConnectionsByNetworkIsolationKey,
- &net::features::kPartitionHttpServerPropertiesByNetworkIsolationKey,
- &net::features::kPartitionSSLSessionsByNetworkIsolationKey,
- &net::features::kSplitHostCacheByNetworkIsolationKey,
#if !BUILDFLAG(IS_ANDROID)
&sharing_hub::kDesktopScreenshots,
#endif
@@ -307,7 +290,3 @@ TEST(FeatureDefaultsTest, EnabledFeatures) {
EXPECT_TRUE(base::FeatureList::IsEnabled(*feature)) << feature->name;
}
}
-
-TEST(FeatureDefaultsTest, ParamStates) {
- EXPECT_TRUE(features::kDnsOverHttpsShowUiParam.default_value);
-}
diff --git a/app/generated_resources.grd b/app/generated_resources.grd
index 4862f415a3a0..a344f10f1615 100644
--- a/app/generated_resources.grd
+++ b/app/generated_resources.grd
@@ -352,6 +352,10 @@ are declared in tools/grit/grit_rule.gni.
+
+ $1another IDS string
+
+
- Passwords
+ Passwords
@@ -805,9 +800,6 @@ are declared in tools/grit/grit_rule.gni.
Just once
-
- Extract text from PDF
-
Recognize visual layout semantics
@@ -872,7 +864,16 @@ are declared in tools/grit/grit_rule.gni.
Open with $1Hangouts
- Help improve autofill
+ Help improve autofill
+
+
+ Fill in form
+
+
+ Addresses and more
+
+
+ Payment methods
@@ -1192,8 +1193,17 @@ are declared in tools/grit/grit_rule.gni.
Suggest Password...
-
- Help Improve Autofill
+
+ Help Improve Autofill
+
+
+ Fill in Form
+
+
+ Addresses and More
+
+
+ Payment Methods
@@ -2405,6 +2415,9 @@ are declared in tools/grit/grit_rule.gni.
Downloaded by <a href="$1adblock.com">$2The Best Brave Extension Ever</a>
+
+ From <a>$1https://example.com</a>
+
Downloaded in Private
@@ -3173,6 +3186,9 @@ are declared in tools/grit/grit_rule.gni.
Checking for malware...
+
+ $1bla.exe may be dangerous. Add a password if you want Brave to verify it or you can download it directly.
+
@@ -4853,9 +4869,6 @@ are declared in tools/grit/grit_rule.gni.
Add "$1Gmail Checker"?
-
- Remove "$1Gmail Checker"?
-
Send a request to your administrator to install "$1Gmail Checker"?
@@ -4865,9 +4878,6 @@ are declared in tools/grit/grit_rule.gni.
Your admin has blocked "$1Gmail Checker" - App ID $2abacabadabacabaeabacabadabacabaf
-
- "$1Extension Manager" would like to remove "$2Gmail Checker".
-
The newest version of "$1Gmail Checker" has been disabled because it requires more permissions.
@@ -5995,9 +6005,6 @@ Keep your key file in a safe place. You will need it to create new versions of y
Another program on your computer added a theme that may change the way Brave works.
-
- Unsupported extensions disabled
-
This extension is not listed in the $1Web Store and may have been added without your knowledge.
@@ -6121,9 +6128,6 @@ Keep your key file in a safe place. You will need it to create new versions of y
Cancel
-
- Open Anyway
-
@@ -6134,9 +6138,6 @@ Keep your key file in a safe place. You will need it to create new versions of y
Cancel
-
- Open anyway
-
@@ -6643,6 +6644,9 @@ Keep your key file in a safe place. You will need it to create new versions of y
Use strong password
+
+ Use suggested password
+
Use recommended password
@@ -6672,6 +6676,9 @@ Keep your key file in a safe place. You will need it to create new versions of y
Use Strong Password
+
+ Use Suggested Password
+
Use Recommended Password
@@ -7864,6 +7871,40 @@ Keep your key file in a safe place. You will need it to create new versions of y
Please sign in to continue.
+
+
+ Choose Your Toolbar Icons
+
+
+ Navigation
+
+
+ Your Brave
+
+
+ Side Panels
+
+
+ Tools and Actions
+
+
+
+
+ Choose your toolbar icons
+
+
+ Navigation
+
+
+ Your Brave
+
+
+ Side panels
+
+
+ Tools and actions
+
+
@@ -8022,16 +8063,22 @@ Keep your key file in a safe place. You will need it to create new versions of y
<br>
You can manage settings from the card menu or see more options in Customize Brave.
-
- Today's Calendar
+
+ Hide Brave Calendar
+
+
+ Brave Calendar hidden
+
+
+ You won't see Brave Calendar on this page again
-
- Don't show Today's Calendar
+
+ More actions for Brave Calendar
Brave Calendar
-
+
Don't show Brave Calendar
@@ -8040,6 +8087,21 @@ Keep your key file in a safe place. You will need it to create new versions of y
Don't show Outlook Calendar
+
+ Join Meeting
+
+
+ In Progress
+
+
+ In $15 min
+
+
+ In $15 hr
+
+
+ See More
+
From your Google Photos
@@ -8489,16 +8551,16 @@ Keep your key file in a safe place. You will need it to create new versions of y
To easily get back to the side panel, click Pin at the top right
- You can pin this feature for easy access
+ You can pin Google Lens for easy access
- You can pin this feature for easy access; click the Pin button at the top of the side panel
+ You can pin Google Lens for easy access; click the Pin button at the top of the side panel
- Pinned! Use this feature again from the toolbar
+ Pinned! Use Google Lens again from the toolbar
- Pinned! You can access this feature again from the new button on the toolbar
+ Pinned! You can access Google Lens again from the new button on the toolbar
@@ -8737,6 +8799,12 @@ Keep your key file in a safe place. You will need it to create new versions of y
Enable links
+
+ Disable images
+
+
+ Enable images
+
Color theme
@@ -8821,9 +8889,15 @@ Keep your key file in a safe place. You will need it to create new versions of y
Voice speed
+
+ Voice speed $11x
+
Voice selection
+
+ Selected.
+
Languages...
@@ -8860,6 +8934,9 @@ Keep your key file in a safe place. You will need it to create new versions of y
No internet
+
+ Download failed
+
To install this language, clear space on your device
@@ -8888,50 +8965,6 @@ Keep your key file in a safe place. You will need it to create new versions of y
(loading)
-
-
- Notes
-
-
- Add a note
-
-
- Order
-
-
- Learn more
-
-
- All Notes
-
-
- Current Tab
-
-
- {NUM_NOTES, plural, =1 {1 Note} other {# Notes}}
-
-
- Open in New Tab
-
-
- Open in New Window
-
-
- Open in Private Window
-
-
- Add Notes About This Page
-
-
- Add a note or thought about this page to revisit later.
-
-
- Not Available in Guest Mode
-
-
- Log in as another user to view and take notes on this page.
-
-
Google Lens
@@ -9275,6 +9308,40 @@ Keep your key file in a safe place. You will need it to create new versions of y
+
+
+
+
+
+ Your Address Is Saved
+
+
+ Use This Address On Your iPhone
+
+
+ No Thanks
+
+
+
+
+ Your address is saved
+
+
+ Use this address on your iPhone
+
+
+ No thanks
+
+
+
+ You can access it in your Saved Addresses.
+
+
+ Download Brave with this QR code, and sign in to your Brave sync chain.
+
+
+
+
$1 (Private)
@@ -9321,6 +9388,9 @@ Keep your key file in a safe place. You will need it to create new versions of y
Your tab groups automatically save and update across all your signed-in devices.
+
+ Learn more about tabs
+
Tab groups
@@ -10401,6 +10471,9 @@ Check your passwords anytime in $1Brave P
Close
+
+ Minimize
+
Resize
@@ -10825,6 +10898,9 @@ Check your passwords anytime in $1Brave P
Grouping your tabs…
+
+ No tab groups found for your selected tab.
+
Tab group suggestion
@@ -10915,7 +10991,7 @@ Check your passwords anytime in $1Brave P
- Tabs
+ Tabs in group
@@ -10925,8 +11001,11 @@ Check your passwords anytime in $1Brave P
Create new tab group
- Tab groups
-
+ Tab groups
+
+
+ Open group
+
@@ -10936,17 +11015,56 @@ Check your passwords anytime in $1Brave P
Create New Tab Group
- Tab Groups
-
+ Tab Groups
+
+
+ Open Group
+
-
-
- This will delete the group from all devices signed into Brave with this Brave sync chain.
-
+
+ Your tab groups are saved here and get updated across all your signed-in devices
+
+
+
+ Your tab groups are saved in the bookmarks bar, app menu and get updated across all your signed-in devices if sync is turned on
+
+
+
+ Your tab groups are saved here
+
-
- The tabs will remain open on this device but the group will be deleted from all devices signed into Brave with this Brave sync chain.
+
+ Your tab groups automatically save and update across all your devices
+
+
+
+ Your tab groups now automatically save
+
+
+
+
+ Brave with this Brave sync chain
+
+
+ {GROUP_COUNT, plural,
+ =1 {This will delete the group from all devices signed into $1user@gmail.com}
+ other {This will delete the groups from all devices signed into $1user@gmail.com}}
+
+
+ {GROUP_COUNT, plural,
+ =1 {The tabs will remain open on this device but the group will be deleted from all devices signed into $1user@gmail.com}
+ other {The tabs will remain open on this device but the groups will be deleted from all devices signed into $1user@gmail.com}}
+
+
+ {GROUP_COUNT, plural,
+ =1 {This will permanently delete the group from your device.}
+ other {This will permanently delete the groups from your device.}}
+
+
+ {GROUP_COUNT, plural,
+ =1 {The tabs will remain open on this device but the group will be permanently deleted.}
+ other {The tabs will remain open on this device but the groups will be permanently deleted.}}
@@ -10956,20 +11074,38 @@ Check your passwords anytime in $1Brave P
- Delete Tab Group?
+ {GROUP_COUNT, plural,
+ =1 {Delete Tab Group?}
+ other {Delete Tab Groups?}}
- Ungroup Tab Group?
+ {GROUP_COUNT, plural,
+ =1 {Ungroup Tab Group?}
+ other {Ungroup Tab Groups?}}
- Close Tab(s) and Delete Group?
+ {TAB_COUNT, plural,
+ =1 {{GROUP_COUNT, plural,
+ =1 {Close Tab and Delete Group?}
+ other {Close Tab and Delete Groups?}}}
+ other {{GROUP_COUNT, plural,
+ =1 {Close Tabs and Delete Group?}
+ other {Close Tabs and Delete Groups?}}}}
- Remove Tab(s) and Delete Group?
+ {TAB_COUNT, plural,
+ =1 {{GROUP_COUNT, plural,
+ =1 {Remove Tab and Delete Group?}
+ other {Remove Tab and Delete Groups?}}}
+ other {{GROUP_COUNT, plural,
+ =1 {Remove Tabs and Delete Group?}
+ other {Remove Tabs and Delete Groups?}}}}
- Delete Group
+ {GROUP_COUNT, plural,
+ =1 {Delete Group}
+ other {Delete Groups}}
Ungroup
@@ -10982,20 +11118,38 @@ Check your passwords anytime in $1Brave P
- Delete tab group?
+ {GROUP_COUNT, plural,
+ =1 {Delete tab group?}
+ other {Delete tab groups?}}
- Ungroup tab group?
+ {GROUP_COUNT, plural,
+ =1 {Ungroup tab group?}
+ other {Ungroup tab groups?}}
- Close tab(s) and delete group?
+ {TAB_COUNT, plural,
+ =1 {{GROUP_COUNT, plural,
+ =1 {Close tab and delete group?}
+ other {Close tab and delete groups?}}}
+ other {{GROUP_COUNT, plural,
+ =1 {Close tabs and delete group?}
+ other {Close tabs and delete groups?}}}}
- Remove tab(s) and delete group?
+ {TAB_COUNT, plural,
+ =1 {{GROUP_COUNT, plural,
+ =1 {Remove tab and delete group?}
+ other {Remove tab and delete groups?}}}
+ other {{GROUP_COUNT, plural,
+ =1 {Remove tabs and delete group?}
+ other {Remove tabs and delete groups?}}}}
- Delete group
+ {GROUP_COUNT, plural,
+ =1 {Delete group}
+ other {Delete groups}}
Ungroup
@@ -12516,14 +12670,8 @@ This can include information about installed software, files, your browser, and
This new profile will be managed by $1example.com. <a href="$2" target="_blank">https://help.google.com/articleLinkLearn more</a>
-
- Welcome, $1Elisa
-
- Welcome back, $2Elisa
-
-
- When you sign in on this device, you get your passwords and more from your Brave sync chain
+ Welcome back, $1Elisa
@@ -12546,6 +12694,9 @@ This can include information about installed software, files, your browser, and
Sign out anyway
+
+ Delete and sign out
+
go to settings
@@ -12759,7 +12910,7 @@ Please help our engineers fix this problem. Tell us what happened right before y
{NUM_TABS, plural, =1 {$1MyGroup - 1 Tab} other {$1MyGroup - # Tabs}}
- {NUM_TABS, plural, =1 {Unnamed Group - 1 Tab} other {Unnamed Group - # Tabs}}
+ {NUM_TABS, plural, =1 {1 Tab} other {# Tabs}}
No Tabs From Other Devices
@@ -12779,7 +12930,7 @@ Please help our engineers fix this problem. Tell us what happened right before y
{NUM_TABS, plural, =1 {$1MyGroup - 1 tab} other {$1MyGroup - # tabs}}
- {NUM_TABS, plural, =1 {Unnamed group - 1 tab} other {Unnamed group - # tabs}}
+ {NUM_TABS, plural, =1 {1 tab} other {# tabs}}
No tabs from other devices
@@ -13373,6 +13524,9 @@ Please help our engineers fix this problem. Tell us what happened right before y
Close Window
+
+ Close All
+
Close Tab
@@ -13735,7 +13889,7 @@ Please help our engineers fix this problem. Tell us what happened right before y
- Location access is turned off in ChromeOS Settings
+ Location is turned off in ChromeOS Settings
@@ -14320,6 +14474,9 @@ Please help our engineers fix this problem. Tell us what happened right before y
Options for sharing are managed by your organization. Some items may be hidden.
+
+ Open System Preferences
+
Choose a different screen
@@ -14579,6 +14736,21 @@ Please help our engineers fix this problem. Tell us what happened right before y
Choose a window for this side
+
+ Group two side-by-side windows
+
+
+ Resized windows to the left
+
+
+ Resized windows to the right
+
+
+ Resized windows to the top
+
+
+ Resized windows to the bottom
+
Entered window overview mode. Swipe to navigate, or press tab if using a keyboard.
@@ -15540,6 +15712,9 @@ Please help our engineers fix this problem. Tell us what happened right before y
Create a new PIN that's different from your current PIN
+
+ Use $1Ted's Pixel 6 Pro
+
@@ -15631,10 +15806,7 @@ Please help our engineers fix this problem. Tell us what happened right before y
This passkey will be saved only in Windows Hello. It will remain on this device after you close all Private windows.
- Create a passkey
-
-
- Choose how you want to create a passkey for $1example.com
+ Choose where to save your passkey for $1example.com
Use your passkey
@@ -15675,9 +15847,6 @@ Please help our engineers fix this problem. Tell us what happened right before y
If your passkey for $1google.com is on a USB security key, insert and touch it now
-
- Back
-
@@ -15796,6 +15965,25 @@ Please help our engineers fix this problem. Tell us what happened right before y
This passkey will be saved to your password manager. Anyone with access to it will be able to use this passkey.
+
+ Numbers
+
+
+ Letters && Numbers
+
+
+
+
+ Retrieve credentials from phone or tablet.
+
+
+
+ Scan this QR code with a camera on the device from which you want to retrieve credentials for $1example.com
+
+
+
+ QR code
+
@@ -16025,6 +16213,10 @@ Please help our engineers fix this problem. Tell us what happened right before y
Don't copy
+
+
+ Data Sharing
+
@@ -16201,6 +16393,19 @@ Please help our engineers fix this problem. Tell us what happened right before y
$1Google Photos is blocked by admin. Ask admin for permission to use this app.
+
+
+ $1Google Photos is blocked on your $2Chromebook
+
+
+ $1Google Photos and a few more apps are blocked on your $2Chromebook
+
+
+
+
+ Ask your parent to allow access in Settings
+
+
@@ -16829,6 +17034,26 @@ Please help our engineers fix this problem. Tell us what happened right before y
Inactive tab
+
+
+
+
+ Performance Issue Detected
+
+
+
+ Deactivate Tabs
+
+
+
+
+ Deactivate tabs
+
+
+
+ Dismiss
+
+
Location
diff --git a/app/generated_resources_override.grd b/app/generated_resources_override.grd
index a5fe4b5d70fa..6ee5bb0e2b46 100644
--- a/app/generated_resources_override.grd
+++ b/app/generated_resources_override.grd
@@ -614,6 +614,11 @@ are declared in tools/grit/grit_rule.gni.
You can find older colors in the Web Store
+
+
+
+
+
See memories of your favorite profiles and more
@@ -643,9 +648,6 @@ are declared in tools/grit/grit_rule.gni.
-
- Open in Private Window
-
@@ -673,6 +675,15 @@ are declared in tools/grit/grit_rule.gni.
+
+
+
+
+
+
+
+
+
$1 (Private)
@@ -827,7 +838,7 @@ are declared in tools/grit/grit_rule.gni.
-
+
@@ -1306,6 +1317,12 @@ are declared in tools/grit/grit_rule.gni.
+
+
+
+
+
+
diff --git a/app/gmc_strings.grdp b/app/gmc_strings.grdp
index 4df09f485755..f31b9cb746fe 100644
--- a/app/gmc_strings.grdp
+++ b/app/gmc_strings.grdp
@@ -60,6 +60,6 @@
Report an issue with Brave Cast
- Show other Cast sessions
+ Show other cast sessions
diff --git a/app/media_live_preview_strings.grdp b/app/media_live_preview_strings.grdp
index 12d93da27259..aa0e84965b23 100644
--- a/app/media_live_preview_strings.grdp
+++ b/app/media_live_preview_strings.grdp
@@ -13,11 +13,15 @@
- No camera connected
+ No camera available
-
- Connect a camera
+
+ Check your camera
+
+
+
+ Preview
@@ -30,11 +34,11 @@
- No microphone connected
+ No microphone available
-
- Connect a microphone
+
+ Check your microphone
diff --git a/app/media_router_strings.grdp b/app/media_router_strings.grdp
index 14a9efebd6fd..8901d66479a6 100644
--- a/app/media_router_strings.grdp
+++ b/app/media_router_strings.grdp
@@ -27,10 +27,10 @@
-
+
About
-
+
Help
@@ -39,7 +39,7 @@
Added by your administrator
-
+
Optimize fullscreen videos
@@ -71,10 +71,10 @@
- Accept Cast request on your $1.
+ Accept cast request on your $1.
- Make sure to accept the Cast request on your $1.
+ Make sure to accept the cast request on your $1.
Make sure notifications are turned on on your $1.
@@ -97,8 +97,8 @@
No devices found. Open a help center article in a new tab.
-
- No Cast destinations found. Need help?
+
+ No cast destinations found. Need help?
Available
@@ -172,7 +172,7 @@
Optimize fullscreen casting?
- Get better quality video and save battery life. Video will play only on your Cast-enabled screen.
+ Get better quality video and save battery life. Video will play only on your cast-enabled screen.
Don't ask again
@@ -372,7 +372,7 @@
- Are you able to see your Chromecast in the
+ Are you able to see your casting device in the
<a href="$1" target="_blank">
Brave Home app</a>?
@@ -395,15 +395,15 @@
Which of the following best describes your network?
-
- PC and Chromecast on the same Wi-Fi network
+
+ PC and casting device on the same Wi-Fi network
-
- PC and Chromecast on different Wi-Fi networks (e.g. 2.4GHz
+
+ PC and casting device on different Wi-Fi networks (e.g. 2.4GHz
vs. 5GHz)
- PC is wired and Chromecast is on Wi-Fi
+ PC is wired and casting device is on Wi-Fi
diff --git a/app/os_settings_search_tag_strings.grdp b/app/os_settings_search_tag_strings.grdp
index 9518da8bd153..8850bd2c4a5c 100644
--- a/app/os_settings_search_tag_strings.grdp
+++ b/app/os_settings_search_tag_strings.grdp
@@ -617,15 +617,18 @@
Blue light reduction
-
+
Storage management
-
+
Disk space
-
+
Hard drive
+
+ User data encryption
+
Power
@@ -956,6 +959,12 @@
Enable isolated web apps
+
+ Parental controls for apps
+
+
+ Block apps
+
@@ -1539,12 +1548,6 @@
Tritanomaly
-
- PDF OCR
-
-
- Extract text from PDF
-
diff --git a/app/os_settings_strings.grdp b/app/os_settings_strings.grdp
index 3a2e44acf188..d4d41d2df8a2 100644
--- a/app/os_settings_strings.grdp
+++ b/app/os_settings_strings.grdp
@@ -491,6 +491,12 @@
To switch to the next input method, press <kbd><kbd>Ctrl</kbd>+<kbd>Shift</kbd>+<kbd>Space</kbd></kbd>
+
+ To switch to the last used input method, press <a>ctrl + space</a>
+
+
+ To switch to the next input method, press <a>ctrl + shift + space</a>
+
Open settings page for $1US keyboard
@@ -1178,6 +1184,12 @@
Error mounting share. Please check your credentials and try again.
+
+ $1Brave would like to confirm it's you
+
+
+ ChromeOS Settings
+
Error mounting share. The specified share was not found on the network.
@@ -1271,42 +1283,46 @@
Show large mouse cursor
+
Face control
Use face and gaze movement to control cursor and keyboard
-
- Cursor control
-
-
- Cursor calibration and movement settings
-
-
- Facial expressions
-
-
- Use facial expressions to click and trigger key presses
+
+ Speed
- Move up
+ Cursor speed - up
- Move down
+ Cursor speed - down
- Move left
+ Cursor speed - left
- Move right
+ Cursor speed - right
-
+
(Advanced) Smooth pointer
(Advanced) Use mouse acceleration
+
+ Use facial gestures to trigger actions
+
+
+ Use head movement to control mouse cursor
+
+
+ Adjust speed in every direction separately
+
+
+ Cursor speed
+
100
@@ -1760,9 +1776,6 @@ Use Ctrl + Alt + Brightness down to zoom out.
Use your Chromebook keyboard or a numeric keypad to control the cursor
-
- Temporarily disable mouse keys when you are in a text field. Press esc to resume.
-
Acceleration
@@ -1781,6 +1794,9 @@ Use Ctrl + Alt + Brightness down to zoom out.
High
+
+ Use the primary keys
+
Dominant hand
@@ -3342,6 +3358,15 @@ Press an assigned switch or key to remove assignment.
Noise cancellation
+
+ Studio mic
+
+
+ Experimental
+
+
+ Enhance your built-in microphone sound with various effects
+
Front microphone
@@ -3452,9 +3477,6 @@ Press an assigned switch or key to remove assignment.
Swap primary mouse button
-
- Primary mouse button
-
Primary TrackPoint button
@@ -4260,6 +4282,15 @@ Press an assigned switch or key to remove assignment.
Known Networks
+
+ Your device hotspots
+
+
+ Show notification
+
+
+ When your Chromebook is offline and hotspots are available
+
None
@@ -5676,7 +5707,7 @@ Press an assigned switch or key to remove assignment.
Sunset to sunrise
- Current schedule is set to $16am - $26pm. To automatically update the sunset and sunrise schedule, <a href="#">turn on location access</a>
+ Current schedule is set to $16am - $26pm. To automatically update the sunset and sunrise schedule, <a href="#">turn on system location access</a>.
Make it easier to look at your screen or read in dim light
@@ -5910,7 +5941,7 @@ Press an assigned switch or key to remove assignment.
Use your IP address to determine location (default)
- Time zone is currently set to $1(UTC+4:00) Georgia Standard Time (Tbilisi). Location access needed to automatically update the time zone. <a href="#">Turn on Location access</a>
+ Time zone is currently set to $1(UTC+4:00) Georgia Standard Time (Tbilisi). To automatically update the time zone, <a href="#">turn on system location access</a>.
Use your IP address to determine location
@@ -5940,7 +5971,7 @@ Press an assigned switch or key to remove assignment.
Allow system services to use your location?
- This allows system services with permission to use your location. Location may use sources like Wi-Fi, mobile networks, and sensors to help estimate your device's location. <a>Learn more</a>
+ This allows system services to use Location Accuracy to determine your location. Location Accuracy uses information about wireless signals, such as Wi-Fi access points, cellular network towers, and GPS, along with device sensor data, such as accelerometer and gyroscope, to estimate device location. You can turn off location in Settings > Privacy and security > Privacy controls > Location access. <a>Learn more</a>
Allow
@@ -6028,7 +6059,7 @@ Press an assigned switch or key to remove assignment.
right alt
-
+
fn
@@ -6225,6 +6256,58 @@ Press & hold keyboard keys to see accent marks and special characters. This
Do Not Disturb
+
+
+ Parental controls for apps
+
+
+ Block apps installed on this $1Chromebook. To restrict downloading apps or content, go to Google Play Settings. <a target="_blank" href="$2">Learn more</a>
+
+
+ Block apps installed on this $1Chromebook. To restrict downloading apps or content, go to Google Play Settings.
+
+
+ Set up
+
+
+ Search apps
+
+
+ No apps found
+
+
+ Enter your PIN for parental controls
+
+
+ Use this PIN to change parental controls settings.
+ If you forget the PIN, powerwash this device and set up again.
+
+
+ Set up your PIN
+
+
+ Confirm your PIN
+
+
+ Forgot PIN?
+
+
+ Incorrect PIN. Try again
+
+
+ PINs do not match
+
+
+ Apps
+
+
+ $15 of $230 apps blocked
+
+
+ PIN must be 6 digits
+
+
+ PIN must use numbers only
Notifications won't pop up on the screen. You can still see notifications by clicking the Do Not Disturb icon on the bottom right of your screen.
@@ -6259,9 +6342,15 @@ Press & hold keyboard keys to see accent marks and special characters. This
Install apps and games from Google Play on your $1Chromebook. <a target="_blank" href="$2https://google.com/">Learn more</a>
+
+ Install apps and games from Google Play on your $1Chromebook.
+
You can download Android apps and games through the Play Store. <a target="_blank" href="$1https://google.com/">Learn more</a>
+
+ You can download Android apps and games through the Play Store.
+
@@ -6299,15 +6388,6 @@ Press & hold keyboard keys to see accent marks and special characters. This
Update
-
- Parental controls
-
-
- Manage access and block apps on this Chromebook.
-
-
- Set up
-
@@ -6419,7 +6499,7 @@ Press & hold keyboard keys to see accent marks and special characters. This
System
- Encrypted using
+ User data encryption
AES-128
@@ -6635,21 +6715,19 @@ Press & hold keyboard keys to see accent marks and special characters. This
Blocked for all
- Apps, websites and system services with the location permission can use your location. <a>Learn more</a>
+ Apps and websites with the location permission, as well as system services, can use your location. <a>Learn more</a>
- Only system services can use your location. However, your location may still be visible to apps and websites through your IP address. <a>Learn more</a>
+ Only system services can use your location. However, your general area may still be visible to apps and websites through things like your IP address. <a>Learn more</a>
- Nothing can use your location. However, your location may still be visible to apps and websites through your IP address. <a>Learn more</a>
+ Location is off. Your ChromeOS device doesn't access your location. However, your general area may still be visible to apps and websites through things like your IP address. <a>Learn more</a>
-
- Brave’s location service improves location accuracy by using Wi-Fi, mobile networks, and sensors to help estimate your location. Brave may collect location data periodically and use this data in an anonymous way to improve location accuracy and location-based services.
- Turning this off will result in Android only using IP address for location. This may impact the accuracy of location used by apps such as Maps.
+ Location Accuracy provides more accurate location for apps and services. To do this, Brave periodically processes information about device sensors and wireless signals from your device to crowdsource wireless signal locations. These are used without identifying you to improve location accuracy and location-based services and to generally improve, provide, and maintain Brave's services based on Brave's and third parties' legitimate interests to serve users' needs.
- Improve location accuracy (Android only)
+ Location Accuracy (Android only)
Advanced location settings
@@ -6667,34 +6745,34 @@ Press & hold keyboard keys to see accent marks and special characters. This
Websites
- Manage site camera permissions in Brave
+ Manage website camera permissions in Brave
- Manage site microphone permissions in Brave
+ Manage website microphone permissions in Brave
- Manage site location permissions in Brave
+ Manage website location permissions in Brave
- No websites are allowed to use your camera
+ Websites are not allowed to use your camera
- No websites are allowed to use your microphone
+ Websites are not allowed to use your microphone
- No websites are allowed to use your location
+ Websites are not allowed to use your location
Apps
- No apps are allowed use your camera
+ Apps are not allowed to use your camera
- No apps are allowed use your microphone
+ Apps are not allowed to use your microphone
- No apps are allowed to use your location
+ Apps are not allowed to use your location
Use secure connections to look up sites
@@ -6757,7 +6835,7 @@ Press & hold keyboard keys to see accent marks and special characters. This
Blocked. Schedule is currently set to $16am - $26pm and can only be updated manually.
- Automatic time zone based on Wi-Fi or mobile networks
+ Automatic time zone
Automatic sunset schedule
@@ -6774,28 +6852,28 @@ Press & hold keyboard keys to see accent marks and special characters. This
No microphone connected
-
+
Turn on camera access?
-
+
Turn on location access?
-
+
Turn on microphone access?
-
+
This allows camera access for apps, websites with the camera permission, and system services
-
+
This allows location access for apps, websites with the location permission, and system services
-
+
This allows microphone access for apps, websites with the microphone permission, and system services
-
+
Allow
-
+
Cancel
diff --git a/app/password_manager_ui_strings.grdp b/app/password_manager_ui_strings.grdp
index 816eedfbc34c..799218fa1aa5 100644
--- a/app/password_manager_ui_strings.grdp
+++ b/app/password_manager_ui_strings.grdp
@@ -16,9 +16,15 @@
Settings
-
- Offer to save passwords
-
+
+
+ Offer to save passwords
+
+
+
+ Offer to save passwords and passkeys
+
+
Sign in automatically
@@ -497,6 +503,18 @@
Open the app to change your password
+
+
+
+ Change Brave Password Manager PIN
+
+
+
+
+ Change Password Manager PIN
+
+
+
Already changed this password?
@@ -643,12 +661,6 @@
Manage passkeys in your Brave profile
-
- Use passkeys across your Apple devices
-
-
- When on, passkeys are created in iCloud Keychain and are available across your Apple devices. When off, passkeys are created in your Brave profile on this device.
-
@@ -871,4 +883,13 @@
PIN changed successfully
+
+ Confirm
+
+
+ You’re about to remove access to your passkeys on this device
+
+
+ To sign in with a passkey on this device again, you’ll need to verify it’s you. If you have another sign-in option, like a password, you can use it to sign in instead.
+
diff --git a/app/profiles_strings.grdp b/app/profiles_strings.grdp
index 2ea0b76dd1c0..35357487c58d 100644
--- a/app/profiles_strings.grdp
+++ b/app/profiles_strings.grdp
@@ -583,6 +583,9 @@
This device is managed. A new profile is required for account $1john.doe@example.com by your device administrator
+
+ Your organization manages your account
+
This device is managed by $1example.com. A new profile is required for account $2john.doe@example.com by $1example.com
@@ -604,6 +607,9 @@
Your organization requires a profile
+
+ Set up your work profile
+
Your organization will manage this profile
@@ -622,6 +628,27 @@
To make sure this device can be used safely, your organization may need to see information about its operating system, browser, and settings, and what software is installed on the device.
+
+ Setting up your work profile ...
+
+
+ Your work profile is ready
+
+
+ You are ready to use your profile for work
+
+
+ Your profile setup is almost done
+
+
+ We're getting your workspace ready! Feel free to explore in the meantime and we'll be ready for you soon.
+
+
+ Something went wrong
+
+
+ You can try again or contact your administrator or help
+
diff --git a/app/settings_brave_strings.grdp b/app/settings_brave_strings.grdp
index 2b0bc93676f2..0f0e53b15992 100644
--- a/app/settings_brave_strings.grdp
+++ b/app/settings_brave_strings.grdp
@@ -302,13 +302,7 @@
Sign in to Brave when you sign in to other Brave services
- When signing into Brave services like Gmail or Youtube with $1foo@example.com, you can sign in to Brave with the same account
-
-
- Automatically sign me in to Brave
-
-
- Don’t sign me in to Brave
+ When signing into Brave services like Gmail or Youtube with $1foo@example.com, you can automatically sign in to Brave with the same account
@@ -426,11 +420,26 @@
- Go to Brave version settings
+ Go to About Brave page
Relaunch Brave
+
+ You haven't visited recently. Brave removed $1location
+
+
+ You haven't visited recently. Brave removed $1location, $2notifications
+
+
+ You haven't visited recently. Brave removed $1location, $2notifications, $3camera
+
+
+ You haven't visited recently. Brave removed $1location, $2notifications, and $32 more
+
+
+ Dangerous site. Brave removed notifications.
+
diff --git a/app/settings_strings.grdp b/app/settings_strings.grdp
index 6d4cb5341790..35d82fe4b23e 100644
--- a/app/settings_strings.grdp
+++ b/app/settings_strings.grdp
@@ -20,6 +20,12 @@
Send feedback button
+
+ When on
+
+
+ Things to consider
+
@@ -206,23 +212,23 @@
If an image doesn’t have a useful description, Brave will try to provide one for you. To create descriptions, images are sent to Brave.
-
- Text recognition files downloaded
+
+ Main node annotation files downloaded
-
- Can't download text recognition files. Try again later.
+
+ Can't download main node annotation files. Try again later.
-
- Downloading text recognition files… $117%
+
+ Downloading main node annotation files… $117%
-
- Downloading text recognition files
+
+ Downloading main node annotation files
-
- Extract text from PDF
+
+ Annotate main node
-
- Scan PDF to extract text for assistive technology
+
+ Identify the main landmark in web pages for assistive technology
Live Caption
@@ -364,6 +370,9 @@
Show tab groups in bookmarks
+
+ Automatically pin new tab groups created on any device to the bookmarks
+
Tab hover preview card
@@ -795,6 +804,30 @@
+
+
+
+
+ Your certificates
+
+
+ Local certificates
+
+
+ Brave Root Store
+
+
+ Hash copied to clipboard
+
+
+
+ 1 certificate
+
+
+ $15 certificates
+
+
+
@@ -1546,9 +1579,6 @@
Sites you visit can verify that you're a real profile and not a bot
-
- When on
-
A site you visit can save a small amount of info with Brave, mainly to validate you're not a bot
@@ -1558,9 +1588,6 @@
Browsing is faster because a site is less likely to ask you to verify you're a real profile
-
- Things to consider
-
This setting works without identifying you or allowing sites to see your browsing history, though sites can share a small amount of info as part of the verification
@@ -1729,12 +1756,6 @@
Sites and advertisers can measure the performance of their ads
-
- When on
-
-
- Things to consider
-
Limited types of data are shared between sites to measure the performance of their ads, such as whether you made a purchase after visiting a site
@@ -1806,12 +1827,6 @@
Ad privacy
-
- Tracking Protection
-
-
- Manage your tracking protections to make your experience more private on the web
-
Web & App Activity
@@ -2001,11 +2016,8 @@
{NUM_SITES, plural,
- =1 {To protect your data, permissions were removed from a site}
- other {To protect your data, permissions were removed from some sites}}
-
-
- Dangerous site. Brave removed Notifications.
+ =1 {To protect your privacy, permissions were removed from a site}
+ other {To protect your privacy, permissions were removed from some sites}}
{NUM_SITES, plural,
@@ -2192,9 +2204,6 @@
Sends URLs to Safe Browsing to check them. Also sends a small sample of pages, downloads, extension activity, and system information to help discover new threats. Temporarily links this data to your Brave sync chain when you're signed in, to protect you across Brave apps.
-
- When on
-
In-depth scans for suspicious downloads.
@@ -2207,9 +2216,6 @@
Warns you if you use a password that has been compromised in a data breach.
-
- Things to consider
-
Sends the URLs of sites you visit and a small sample of page content, downloads, extension activity, and system information to Google Safe Browsing to check if they're harmful.
@@ -2565,10 +2571,10 @@
Make default
-
+
Activate
-
+
Deactivate
@@ -3345,18 +3351,6 @@
Advanced
-
- Hide your IP address
-
-
- When you’re signed in to Brave, some of your traffic may be sent through privacy servers if Brave suspects a site may be tracking you
-
-
- Limit digital fingerprinting
-
-
- This setting makes it harder for sites to identify you using data about your device and browser, such as your device model or browser version
-
Block all third-party cookies
@@ -3375,15 +3369,6 @@
Affects the sites listed here. Inserting “[*.]” before a domain name creates an exception for the entire domain. For example, adding “[*.]google.com” means that third-party cookies can also be active for mail.google.com, because it’s part of google.com.
-
- Only applies to third-party cookie blocking
-
-
- Tracking Protection is temporarily unavailable. While Brave is updating this feature, sites can temporarily use third-party cookies unless you block them. <a target="_blank" href="$1" aria-label="$2">Learn more</a></a>
-
-
- Learn more about Tracking Protection availability
-
Apps
@@ -3982,8 +3967,17 @@
Linked Brave services
+
+ Select an option
+
+
+ Sign in
+
+
+ Don’t sign in
+
- Ask me every time
+ Ask every time
@@ -4068,6 +4062,30 @@
This setting doesn't change the availability of Brave Translate or Lens
+
+
+
+ History search
+
+
+ Search through history
+
+
+ You can search through your history
+
+
+ You should consider this
+
+
+ You should consider this too
+
+
+ <a href="$1" target="_blank" aria-label="$2">Learn more</a> about history searches
+
+
+ Learn more about history searches
+
+
Page zoom
@@ -4557,6 +4575,11 @@
=1 {Removed permissions for 1 unused site}
other {Removed permissions for {NUM_SITES} unused sites}}
+
+ {NUM_SITES, plural,
+ =1 {Removed permissions for 1 site}
+ other {Removed permissions for {NUM_SITES} sites}}
+
{NUM_SITES, plural,
=1 {Found 1 site with lots of notifications}
diff --git a/app/settings_strings_override.grdp b/app/settings_strings_override.grdp
index fca909b1544e..5139fa4bdab1 100644
--- a/app/settings_strings_override.grdp
+++ b/app/settings_strings_override.grdp
@@ -58,6 +58,9 @@
Show tab groups in bookmarks
+
+ Automatically pin new tab groups created on any device to the bookmarks
+
Open Web Store
@@ -84,6 +87,9 @@
+
+
+
diff --git a/app/support_tool_strings.grdp b/app/support_tool_strings.grdp
index 86f18e26d1a0..7636c0cd14c8 100644
--- a/app/support_tool_strings.grdp
+++ b/app/support_tool_strings.grdp
@@ -102,9 +102,6 @@
Select all
-
- Select none
-
Brave System Information
diff --git a/base/android/java/src/org/chromium/base/cached_flags/BraveCachedFlag.java b/base/android/java/src/org/chromium/base/cached_flags/BraveCachedFlag.java
index 9d034ad038f1..b3a60e302c82 100644
--- a/base/android/java/src/org/chromium/base/cached_flags/BraveCachedFlag.java
+++ b/base/android/java/src/org/chromium/base/cached_flags/BraveCachedFlag.java
@@ -12,9 +12,11 @@
/** Class to override default cached values. */
public class BraveCachedFlag extends CachedFlag {
private static final String ANDROID_HUB = "AndroidHub";
- private static final String START_SURFACE_ANDROID = "StartSurfaceAndroid";
+ private static final String ANDROID_TAB_GROUP_STABLE_IDS = "AndroidTabGroupStableIds";
private static final String INCOGNITO_REAUTHENTICATION_FOR_ANDROID =
"IncognitoReauthenticationForAndroid";
+ private static final String MAGIC_STACK_ANDROID = "MagicStackAndroid";
+ private static final String START_SURFACE_ANDROID = "StartSurfaceAndroid";
private static final String SURFACE_POLISH = "SurfacePolish";
// Set of flags to override.
@@ -23,9 +25,11 @@ public class BraveCachedFlag extends CachedFlag {
static {
sFlags = new HashMap();
sFlags.put(ANDROID_HUB, false);
+ sFlags.put(ANDROID_TAB_GROUP_STABLE_IDS, false);
+ sFlags.put(INCOGNITO_REAUTHENTICATION_FOR_ANDROID, true);
+ sFlags.put(MAGIC_STACK_ANDROID, false);
sFlags.put(START_SURFACE_ANDROID, false);
sFlags.put(SURFACE_POLISH, false);
- sFlags.put(INCOGNITO_REAUTHENTICATION_FOR_ANDROID, true);
}
// Will be deleted in bytecode. Variable from the parent class will be used instead.
diff --git a/base/process/process_launcher_win.cc b/base/process/process_launcher_win.cc
index baf0ce86edc9..15e76758fa8f 100644
--- a/base/process/process_launcher_win.cc
+++ b/base/process/process_launcher_win.cc
@@ -35,7 +35,7 @@ std::optional ProcessLauncher::ReadAppOutput(
// Create the pipe for the child process's STDOUT.
if (!CreatePipe(&out_read, &out_write, &sa_attr, 0)) {
- NOTREACHED() << "Failed to create pipe";
+ NOTREACHED_IN_MIGRATION() << "Failed to create pipe";
return std::nullopt;
}
@@ -45,7 +45,7 @@ std::optional ProcessLauncher::ReadAppOutput(
// Ensure the read handles to the pipes are not inherited.
if (!SetHandleInformation(out_read, HANDLE_FLAG_INHERIT, 0)) {
- NOTREACHED() << "Failed to disabled pipe inheritance";
+ NOTREACHED_IN_MIGRATION() << "Failed to disabled pipe inheritance";
return std::nullopt;
}
diff --git a/brave_domains/service_domains.cc b/brave_domains/service_domains.cc
index 01610682ac01..982a4cff15ef 100644
--- a/brave_domains/service_domains.cc
+++ b/brave_domains/service_domains.cc
@@ -75,7 +75,7 @@ std::string ConvertEnvironmentToString(brave_domains::ServicesEnvironment env) {
return it->second;
}
- NOTREACHED();
+ NOTREACHED_IN_MIGRATION();
return kBraveServicesSwitchValueProduction;
}
#endif
diff --git a/browser/DEPS b/browser/DEPS
index f8f8520d1dac..89bcd0b4ff58 100644
--- a/browser/DEPS
+++ b/browser/DEPS
@@ -89,11 +89,6 @@ include_rules = [
"+storage/browser",
"+storage/common",
- # chrome/browser/ui/views/ is an implementation, not a public interface.
- # Parent directories should not depend on it directly.
- # TODO(crbug.com/1112591): Remove the exceptions below.
- "-chrome/browser/ui/views",
-
# Explicitly disallow using SyncMessageFilter to prevent browser from
# sending synchronous IPC messages on non-UI threads.
"-ipc/ipc_sync_message_filter.h",
diff --git a/browser/ai_chat/ai_chat_ui_browsertest.cc b/browser/ai_chat/ai_chat_ui_browsertest.cc
index 507e9109aa28..acebe64813cb 100644
--- a/browser/ai_chat/ai_chat_ui_browsertest.cc
+++ b/browser/ai_chat/ai_chat_ui_browsertest.cc
@@ -19,9 +19,9 @@
#include "build/build_config.h"
#include "chrome/browser/profiles/profile.h"
#include "chrome/browser/ui/browser.h"
-#include "chrome/browser/ui/side_panel/side_panel_ui.h"
#include "chrome/browser/ui/tabs/tab_strip_model.h"
#include "chrome/browser/ui/views/frame/browser_view.h"
+#include "chrome/browser/ui/views/side_panel/side_panel_ui.h"
#include "chrome/browser/ui/views/side_panel/side_panel_web_ui_view.h"
#include "chrome/common/pref_names.h"
#include "chrome/test/base/in_process_browser_test.h"
diff --git a/browser/android/brave_shields_content_settings.cc b/browser/android/brave_shields_content_settings.cc
index 2f5073c0c051..c0cae68e542b 100644
--- a/browser/android/brave_shields_content_settings.cc
+++ b/browser/android/brave_shields_content_settings.cc
@@ -15,7 +15,6 @@
#include "chrome/browser/content_settings/cookie_settings_factory.h"
#include "chrome/browser/content_settings/host_content_settings_map_factory.h"
#include "chrome/browser/profiles/profile.h"
-#include "chrome/browser/profiles/profile_android.h"
#include "chrome/browser/profiles/profile_manager.h"
#include "components/content_settings/core/browser/content_settings_utils.h"
#include "components/content_settings/core/browser/cookie_settings.h"
@@ -91,9 +90,8 @@ void JNI_BraveShieldsContentSettings_SetBraveShieldsEnabled(JNIEnv* env,
const base::android::JavaParamRef& j_profile) {
brave_shields::SetBraveShieldsEnabled(
HostContentSettingsMapFactory::GetForProfile(
- ProfileAndroid::FromProfileAndroid(j_profile)),
- enabled,
- GURL(base::android::ConvertJavaStringToUTF8(env, url)),
+ Profile::FromJavaObject(j_profile)),
+ enabled, GURL(base::android::ConvertJavaStringToUTF8(env, url)),
g_browser_process->local_state());
}
@@ -102,7 +100,7 @@ jboolean JNI_BraveShieldsContentSettings_GetBraveShieldsEnabled(JNIEnv* env,
const base::android::JavaParamRef& j_profile) {
return brave_shields::GetBraveShieldsEnabled(
HostContentSettingsMapFactory::GetForProfile(
- ProfileAndroid::FromProfileAndroid(j_profile)),
+ Profile::FromJavaObject(j_profile)),
GURL(base::android::ConvertJavaStringToUTF8(env, url)));
}
@@ -112,7 +110,7 @@ void JNI_BraveShieldsContentSettings_SetAdControlType(JNIEnv* env,
const base::android::JavaParamRef& j_profile) {
brave_shields::SetAdControlType(
HostContentSettingsMapFactory::GetForProfile(
- ProfileAndroid::FromProfileAndroid(j_profile)),
+ Profile::FromJavaObject(j_profile)),
brave_shields::ControlTypeFromString(
base::android::ConvertJavaStringToUTF8(env, type)),
GURL(base::android::ConvertJavaStringToUTF8(env, url)),
@@ -123,11 +121,10 @@ base::android::ScopedJavaLocalRef
JNI_BraveShieldsContentSettings_GetAdControlType(JNIEnv* env,
const base::android::JavaParamRef& url,
const base::android::JavaParamRef& j_profile) {
- brave_shields::ControlType control_type =
- brave_shields::GetAdControlType(
- HostContentSettingsMapFactory::GetForProfile(
- ProfileAndroid::FromProfileAndroid(j_profile)),
- GURL(base::android::ConvertJavaStringToUTF8(env, url)));
+ brave_shields::ControlType control_type = brave_shields::GetAdControlType(
+ HostContentSettingsMapFactory::GetForProfile(
+ Profile::FromJavaObject(j_profile)),
+ GURL(base::android::ConvertJavaStringToUTF8(env, url)));
return base::android::ConvertUTF8ToJavaString(env,
brave_shields::ControlTypeToString(control_type));
@@ -139,8 +136,8 @@ void JNI_BraveShieldsContentSettings_SetCookieControlType(JNIEnv* env,
const base::android::JavaParamRef& j_profile) {
brave_shields::SetCookieControlType(
HostContentSettingsMapFactory::GetForProfile(
- ProfileAndroid::FromProfileAndroid(j_profile)),
- ProfileAndroid::FromProfileAndroid(j_profile)->GetPrefs(),
+ Profile::FromJavaObject(j_profile)),
+ Profile::FromJavaObject(j_profile)->GetPrefs(),
brave_shields::ControlTypeFromString(
base::android::ConvertJavaStringToUTF8(env, type)),
GURL(base::android::ConvertJavaStringToUTF8(env, url)),
@@ -154,12 +151,12 @@ void JNI_BraveShieldsContentSettings_SetCosmeticFilteringControlType(
const base::android::JavaParamRef& j_profile) {
brave_shields::SetCosmeticFilteringControlType(
HostContentSettingsMapFactory::GetForProfile(
- ProfileAndroid::FromProfileAndroid(j_profile)),
+ Profile::FromJavaObject(j_profile)),
brave_shields::ControlTypeFromString(
base::android::ConvertJavaStringToUTF8(env, type)),
GURL(base::android::ConvertJavaStringToUTF8(env, url)),
g_browser_process->local_state(),
- ProfileAndroid::FromProfileAndroid(j_profile)->GetPrefs());
+ Profile::FromJavaObject(j_profile)->GetPrefs());
}
base::android::ScopedJavaLocalRef
@@ -168,9 +165,8 @@ base::android::ScopedJavaLocalRef
const base::android::JavaParamRef& j_profile) {
brave_shields::ControlType control_type = brave_shields::GetCookieControlType(
HostContentSettingsMapFactory::GetForProfile(
- ProfileAndroid::FromProfileAndroid(j_profile)),
- CookieSettingsFactory::GetForProfile(
- ProfileAndroid::FromProfileAndroid(j_profile))
+ Profile::FromJavaObject(j_profile)),
+ CookieSettingsFactory::GetForProfile(Profile::FromJavaObject(j_profile))
.get(),
GURL(base::android::ConvertJavaStringToUTF8(env, url)));
@@ -184,12 +180,12 @@ void JNI_BraveShieldsContentSettings_SetFingerprintingControlType(JNIEnv* env,
const base::android::JavaParamRef& j_profile) {
brave_shields::SetFingerprintingControlType(
HostContentSettingsMapFactory::GetForProfile(
- ProfileAndroid::FromProfileAndroid(j_profile)),
+ Profile::FromJavaObject(j_profile)),
brave_shields::ControlTypeFromString(
base::android::ConvertJavaStringToUTF8(env, type)),
GURL(base::android::ConvertJavaStringToUTF8(env, url)),
g_browser_process->local_state(),
- ProfileAndroid::FromProfileAndroid(j_profile)->GetPrefs());
+ Profile::FromJavaObject(j_profile)->GetPrefs());
}
base::android::ScopedJavaLocalRef
@@ -199,7 +195,7 @@ base::android::ScopedJavaLocalRef
brave_shields::ControlType control_type =
brave_shields::GetFingerprintingControlType(
HostContentSettingsMapFactory::GetForProfile(
- ProfileAndroid::FromProfileAndroid(j_profile)),
+ Profile::FromJavaObject(j_profile)),
GURL(base::android::ConvertJavaStringToUTF8(env, url)));
return base::android::ConvertUTF8ToJavaString(
@@ -213,7 +209,7 @@ void JNI_BraveShieldsContentSettings_SetHttpsUpgradeControlType(
const base::android::JavaParamRef& j_profile) {
brave_shields::SetHttpsUpgradeControlType(
HostContentSettingsMapFactory::GetForProfile(
- ProfileAndroid::FromProfileAndroid(j_profile)),
+ Profile::FromJavaObject(j_profile)),
brave_shields::ControlTypeFromString(
base::android::ConvertJavaStringToUTF8(env, type)),
GURL(base::android::ConvertJavaStringToUTF8(env, url)),
@@ -228,7 +224,7 @@ JNI_BraveShieldsContentSettings_GetHttpsUpgradeControlType(
brave_shields::ControlType control_type =
brave_shields::GetHttpsUpgradeControlType(
HostContentSettingsMapFactory::GetForProfile(
- ProfileAndroid::FromProfileAndroid(j_profile)),
+ Profile::FromJavaObject(j_profile)),
GURL(base::android::ConvertJavaStringToUTF8(env, url)));
return base::android::ConvertUTF8ToJavaString(env,
@@ -243,7 +239,7 @@ JNI_BraveShieldsContentSettings_GetCosmeticFilteringControlType(
brave_shields::ControlType cosmetic_type =
brave_shields::GetCosmeticFilteringControlType(
HostContentSettingsMapFactory::GetForProfile(
- ProfileAndroid::FromProfileAndroid(j_profile)),
+ Profile::FromJavaObject(j_profile)),
GURL(base::android::ConvertJavaStringToUTF8(env, url)));
return base::android::ConvertUTF8ToJavaString(
@@ -256,7 +252,7 @@ void JNI_BraveShieldsContentSettings_SetNoScriptControlType(JNIEnv* env,
const base::android::JavaParamRef& j_profile) {
brave_shields::SetNoScriptControlType(
HostContentSettingsMapFactory::GetForProfile(
- ProfileAndroid::FromProfileAndroid(j_profile)),
+ Profile::FromJavaObject(j_profile)),
brave_shields::ControlTypeFromString(
base::android::ConvertJavaStringToUTF8(env, type)),
GURL(base::android::ConvertJavaStringToUTF8(env, url)),
@@ -270,7 +266,7 @@ base::android::ScopedJavaLocalRef
brave_shields::ControlType control_type =
brave_shields::GetNoScriptControlType(
HostContentSettingsMapFactory::GetForProfile(
- ProfileAndroid::FromProfileAndroid(j_profile)),
+ Profile::FromJavaObject(j_profile)),
GURL(base::android::ConvertJavaStringToUTF8(env, url)));
return base::android::ConvertUTF8ToJavaString(env,
@@ -284,7 +280,7 @@ void JNI_BraveShieldsContentSettings_SetForgetFirstPartyStorageEnabled(
const base::android::JavaParamRef& j_profile) {
brave_shields::SetForgetFirstPartyStorageEnabled(
HostContentSettingsMapFactory::GetForProfile(
- ProfileAndroid::FromProfileAndroid(j_profile)),
+ Profile::FromJavaObject(j_profile)),
enabled, GURL(base::android::ConvertJavaStringToUTF8(env, url)),
g_browser_process->local_state());
}
@@ -295,7 +291,7 @@ jboolean JNI_BraveShieldsContentSettings_GetForgetFirstPartyStorageEnabled(
const base::android::JavaParamRef& j_profile) {
return brave_shields::GetForgetFirstPartyStorageEnabled(
HostContentSettingsMapFactory::GetForProfile(
- ProfileAndroid::FromProfileAndroid(j_profile)),
+ Profile::FromJavaObject(j_profile)),
GURL(base::android::ConvertJavaStringToUTF8(env, url)));
}
diff --git a/browser/android/preferences/brave_pref_service_bridge.cc b/browser/android/preferences/brave_pref_service_bridge.cc
index 5f9d9a5df404..627c8fa71515 100644
--- a/browser/android/preferences/brave_pref_service_bridge.cc
+++ b/browser/android/preferences/brave_pref_service_bridge.cc
@@ -23,7 +23,6 @@
#include "chrome/browser/content_settings/cookie_settings_factory.h"
#include "chrome/browser/content_settings/host_content_settings_map_factory.h"
#include "chrome/browser/profiles/profile.h"
-#include "chrome/browser/profiles/profile_android.h"
#include "chrome/browser/profiles/profile_manager.h"
#include "chrome/common/pref_names.h"
#include "components/content_settings/core/browser/cookie_settings.h"
@@ -140,21 +139,21 @@ jboolean JNI_BravePrefServiceBridge_GetDesktopModeEnabled(JNIEnv* env) {
jlong JNI_BravePrefServiceBridge_GetTrackersBlockedCount(
JNIEnv* env,
const base::android::JavaParamRef& j_profile) {
- Profile* profile = ProfileAndroid::FromProfileAndroid(j_profile);
+ Profile* profile = Profile::FromJavaObject(j_profile);
return profile->GetPrefs()->GetUint64(kTrackersBlocked);
}
jlong JNI_BravePrefServiceBridge_GetAdsBlockedCount(
JNIEnv* env,
const base::android::JavaParamRef& j_profile) {
- Profile* profile = ProfileAndroid::FromProfileAndroid(j_profile);
+ Profile* profile = Profile::FromJavaObject(j_profile);
return profile->GetPrefs()->GetUint64(kAdsBlocked);
}
jlong JNI_BravePrefServiceBridge_GetDataSaved(
JNIEnv* env,
const base::android::JavaParamRef& j_profile) {
- Profile* profile = ProfileAndroid::FromProfileAndroid(j_profile);
+ Profile* profile = Profile::FromJavaObject(j_profile);
return profile->GetPrefs()->GetUint64(
brave_perf_predictor::prefs::kBandwidthSavedBytes);
}
@@ -166,7 +165,7 @@ void JNI_BravePrefServiceBridge_SetOldTrackersBlockedCount(
if (count <= 0) {
return;
}
- Profile* profile = ProfileAndroid::FromProfileAndroid(j_profile);
+ Profile* profile = Profile::FromJavaObject(j_profile);
profile->GetPrefs()->SetUint64(
kTrackersBlocked,
count + profile->GetPrefs()->GetUint64(kTrackersBlocked));
@@ -179,7 +178,7 @@ void JNI_BravePrefServiceBridge_SetOldAdsBlockedCount(
if (count <= 0) {
return;
}
- Profile* profile = ProfileAndroid::FromProfileAndroid(j_profile);
+ Profile* profile = Profile::FromJavaObject(j_profile);
profile->GetPrefs()->SetUint64(
kAdsBlocked, count + profile->GetPrefs()->GetUint64(kAdsBlocked));
}
@@ -191,7 +190,7 @@ void JNI_BravePrefServiceBridge_SetOldHttpsUpgradesCount(
if (count <= 0) {
return;
}
- Profile* profile = ProfileAndroid::FromProfileAndroid(j_profile);
+ Profile* profile = Profile::FromJavaObject(j_profile);
profile->GetPrefs()->SetUint64(
kHttpsUpgrades, count + profile->GetPrefs()->GetUint64(kHttpsUpgrades));
}
diff --git a/browser/brave_ads/android/brave_ads_native_helper.cc b/browser/brave_ads/android/brave_ads_native_helper.cc
index a9b23b92023e..cfdde57ea61d 100644
--- a/browser/brave_ads/android/brave_ads_native_helper.cc
+++ b/browser/brave_ads/android/brave_ads_native_helper.cc
@@ -12,7 +12,7 @@
#include "brave/browser/brave_ads/android/jni_headers/BraveAdsNativeHelper_jni.h"
#include "brave/components/brave_ads/core/public/ads_util.h"
#include "brave/components/brave_ads/core/public/prefs/pref_names.h"
-#include "chrome/browser/profiles/profile_android.h"
+#include "chrome/browser/profiles/profile.h"
#include "components/prefs/pref_service.h"
namespace brave_ads {
@@ -21,7 +21,7 @@ namespace brave_ads {
jboolean JNI_BraveAdsNativeHelper_IsOptedInToNotificationAds(
JNIEnv* env,
const base::android::JavaParamRef& j_profile_android) {
- Profile* profile = ProfileAndroid::FromProfileAndroid(j_profile_android);
+ Profile* profile = Profile::FromJavaObject(j_profile_android);
return profile->GetPrefs()->GetBoolean(
brave_ads::prefs::kOptedInToNotificationAds);
}
@@ -31,7 +31,7 @@ void JNI_BraveAdsNativeHelper_SetOptedInToNotificationAds(
JNIEnv* env,
const base::android::JavaParamRef& j_profile_android,
jboolean should_enable_ads) {
- Profile* profile = ProfileAndroid::FromProfileAndroid(j_profile_android);
+ Profile* profile = Profile::FromJavaObject(j_profile_android);
profile->GetPrefs()->SetBoolean(brave_ads::prefs::kOptedInToNotificationAds,
should_enable_ads);
}
@@ -40,7 +40,7 @@ void JNI_BraveAdsNativeHelper_SetOptedInToNotificationAds(
jboolean JNI_BraveAdsNativeHelper_IsSupportedRegion(
JNIEnv* env,
const base::android::JavaParamRef& j_profile_android) {
- Profile* profile = ProfileAndroid::FromProfileAndroid(j_profile_android);
+ Profile* profile = Profile::FromJavaObject(j_profile_android);
AdsService* ads_service = AdsServiceFactory::GetForProfile(profile);
if (!ads_service) {
return false;
@@ -54,7 +54,7 @@ void JNI_BraveAdsNativeHelper_OnNotificationAdShown(
JNIEnv* env,
const base::android::JavaParamRef& j_profile_android,
const base::android::JavaParamRef& j_notification_id) {
- Profile* profile = ProfileAndroid::FromProfileAndroid(j_profile_android);
+ Profile* profile = Profile::FromJavaObject(j_profile_android);
AdsService* ads_service = AdsServiceFactory::GetForProfile(profile);
if (!ads_service) {
return;
@@ -71,7 +71,7 @@ void JNI_BraveAdsNativeHelper_OnNotificationAdClosed(
const base::android::JavaParamRef& j_profile_android,
const base::android::JavaParamRef& j_notification_id,
jboolean j_by_user) {
- Profile* profile = ProfileAndroid::FromProfileAndroid(j_profile_android);
+ Profile* profile = Profile::FromJavaObject(j_profile_android);
AdsService* ads_service = AdsServiceFactory::GetForProfile(profile);
if (!ads_service) {
return;
@@ -87,7 +87,7 @@ void JNI_BraveAdsNativeHelper_OnNotificationAdClicked(
JNIEnv* env,
const base::android::JavaParamRef& j_profile_android,
const base::android::JavaParamRef& j_notification_id) {
- Profile* profile = ProfileAndroid::FromProfileAndroid(j_profile_android);
+ Profile* profile = Profile::FromJavaObject(j_profile_android);
AdsService* ads_service = AdsServiceFactory::GetForProfile(profile);
if (!ads_service) {
return;
diff --git a/browser/brave_rewards/android/brave_rewards_native_worker.cc b/browser/brave_rewards/android/brave_rewards_native_worker.cc
index d465843c6e9c..8d2e94671c90 100644
--- a/browser/brave_rewards/android/brave_rewards_native_worker.cc
+++ b/browser/brave_rewards/android/brave_rewards_native_worker.cc
@@ -993,7 +993,7 @@ void BraveRewardsNativeWorker::RefreshPublisher(
JNIEnv* env,
const base::android::JavaParamRef& publisher_key) {
if (!brave_rewards_service_) {
- NOTREACHED();
+ NOTREACHED_IN_MIGRATION();
return;
}
brave_rewards_service_->RefreshPublisher(
diff --git a/browser/brave_shell_integration.cc b/browser/brave_shell_integration.cc
index 2b7b580995a5..9d4083f8fc39 100644
--- a/browser/brave_shell_integration.cc
+++ b/browser/brave_shell_integration.cc
@@ -30,7 +30,7 @@ void PinShortcut(Profile* profile,
// Mac doesn't support profile specific icon in dock.
mac::AddIconToDock(std::move(result_callback));
#elif BUILDFLAG(IS_LINUX)
- NOTREACHED() << "Not supported on linux yet.";
+ NOTREACHED_IN_MIGRATION() << "Not supported on linux yet.";
#endif
}
@@ -40,7 +40,7 @@ void IsShortcutPinned(base::OnceCallback result_callback) {
#elif BUILDFLAG(IS_MAC)
mac::IsIconAddedToDock(std::move(result_callback));
#elif BUILDFLAG(IS_LINUX)
- NOTREACHED() << "Not supported on linux yet.";
+ NOTREACHED_IN_MIGRATION() << "Not supported on linux yet.";
#endif
}
diff --git a/browser/brave_shields/android/filter_list_service_factory_android.cc b/browser/brave_shields/android/filter_list_service_factory_android.cc
index aa04398702be..e7a96d9ff2cc 100644
--- a/browser/brave_shields/android/filter_list_service_factory_android.cc
+++ b/browser/brave_shields/android/filter_list_service_factory_android.cc
@@ -7,7 +7,6 @@
#include "brave/browser/brave_shields/filter_list_service_factory.h"
#include "brave/build/android/jni_headers/FilterListServiceFactory_jni.h"
#include "chrome/browser/profiles/profile.h"
-#include "chrome/browser/profiles/profile_android.h"
#include "mojo/public/cpp/bindings/pending_receiver.h"
namespace chrome {
@@ -15,7 +14,7 @@ namespace android {
static jlong JNI_FilterListServiceFactory_GetInterfaceToFilterListService(
JNIEnv* env,
const base::android::JavaParamRef& profile_android) {
- auto* profile = ProfileAndroid::FromProfileAndroid(profile_android);
+ auto* profile = Profile::FromJavaObject(profile_android);
if (profile == nullptr) {
return static_cast(-1);
}
diff --git a/browser/brave_vpn/win/brave_vpn_helper/brave_vpn_helper_crash_reporter_client.cc b/browser/brave_vpn/win/brave_vpn_helper/brave_vpn_helper_crash_reporter_client.cc
index 483e8600ba50..b2dbf883d638 100644
--- a/browser/brave_vpn/win/brave_vpn_helper/brave_vpn_helper_crash_reporter_client.cc
+++ b/browser/brave_vpn/win/brave_vpn_helper/brave_vpn_helper_crash_reporter_client.cc
@@ -117,7 +117,7 @@ bool BraveVPNHelperCrashReporterClient::GetShouldDumpLargerDumps() {
int BraveVPNHelperCrashReporterClient::GetResultCodeRespawnFailed() {
// The restart dialog is never shown.
- NOTREACHED();
+ NOTREACHED_IN_MIGRATION();
return 0;
}
@@ -160,6 +160,6 @@ bool BraveVPNHelperCrashReporterClient::ShouldMonitorCrashHandlerExpensively() {
bool BraveVPNHelperCrashReporterClient::EnableBreakpadForProcess(
const std::string& process_type) {
// This is not used by Crashpad (at least on Windows).
- NOTREACHED();
+ NOTREACHED_IN_MIGRATION();
return true;
}
diff --git a/browser/brave_vpn/win/brave_vpn_wireguard_service/brave_wireguard_service_crash_reporter_client.cc b/browser/brave_vpn/win/brave_vpn_wireguard_service/brave_wireguard_service_crash_reporter_client.cc
index 203c7ef0b802..33f27b0edade 100644
--- a/browser/brave_vpn/win/brave_vpn_wireguard_service/brave_wireguard_service_crash_reporter_client.cc
+++ b/browser/brave_vpn/win/brave_vpn_wireguard_service/brave_wireguard_service_crash_reporter_client.cc
@@ -129,7 +129,7 @@ bool BraveWireguardCrashReporterClient::GetShouldDumpLargerDumps() {
int BraveWireguardCrashReporterClient::GetResultCodeRespawnFailed() {
// The restart dialog is never shown.
- NOTREACHED();
+ NOTREACHED_IN_MIGRATION();
return 0;
}
@@ -172,6 +172,6 @@ bool BraveWireguardCrashReporterClient::ShouldMonitorCrashHandlerExpensively() {
bool BraveWireguardCrashReporterClient::EnableBreakpadForProcess(
const std::string& process_type) {
// This is not used by Crashpad (at least on Windows).
- NOTREACHED();
+ NOTREACHED_IN_MIGRATION();
return true;
}
diff --git a/browser/brave_wallet/android/asset_ratio_service_factory_android.cc b/browser/brave_wallet/android/asset_ratio_service_factory_android.cc
index d9116683df74..5adf3b59e62b 100644
--- a/browser/brave_wallet/android/asset_ratio_service_factory_android.cc
+++ b/browser/brave_wallet/android/asset_ratio_service_factory_android.cc
@@ -7,7 +7,6 @@
#include "brave/browser/brave_wallet/asset_ratio_service_factory.h"
#include "brave/build/android/jni_headers/AssetRatioServiceFactory_jni.h"
#include "chrome/browser/profiles/profile.h"
-#include "chrome/browser/profiles/profile_android.h"
#include "mojo/public/cpp/bindings/pending_receiver.h"
namespace chrome {
@@ -15,7 +14,7 @@ namespace android {
static jlong JNI_AssetRatioServiceFactory_GetInterfaceToAssetRatioService(
JNIEnv* env,
const base::android::JavaParamRef& profile_android) {
- auto* profile = ProfileAndroid::FromProfileAndroid(profile_android);
+ auto* profile = Profile::FromJavaObject(profile_android);
auto pending =
brave_wallet::AssetRatioServiceFactory::GetInstance()->GetForContext(
profile);
diff --git a/browser/brave_wallet/android/blockchain_registry_factory_android.cc b/browser/brave_wallet/android/blockchain_registry_factory_android.cc
index be6c7962eda9..21499273dc44 100644
--- a/browser/brave_wallet/android/blockchain_registry_factory_android.cc
+++ b/browser/brave_wallet/android/blockchain_registry_factory_android.cc
@@ -13,7 +13,6 @@
#include "brave/components/brave_wallet/browser/brave_wallet_constants.h"
#include "brave/components/brave_wallet/browser/wallet_data_files_installer.h"
#include "chrome/browser/profiles/profile.h"
-#include "chrome/browser/profiles/profile_android.h"
#include "mojo/public/cpp/bindings/pending_receiver.h"
namespace chrome {
@@ -29,7 +28,7 @@ static base::android::ScopedJavaLocalRef
JNI_BlockchainRegistryFactory_GetTokensIconsLocation(
JNIEnv* env,
const base::android::JavaParamRef& profile_android) {
- auto* profile = ProfileAndroid::FromProfileAndroid(profile_android);
+ auto* profile = Profile::FromJavaObject(profile_android);
std::optional version =
brave_wallet::GetLastInstalledWalletVersion();
diff --git a/browser/brave_wallet/android/brave_wallet_service_factory_android.cc b/browser/brave_wallet/android/brave_wallet_service_factory_android.cc
index d742fadbb46e..d4bd6eb543c9 100644
--- a/browser/brave_wallet/android/brave_wallet_service_factory_android.cc
+++ b/browser/brave_wallet/android/brave_wallet_service_factory_android.cc
@@ -9,7 +9,7 @@
#include "brave/build/android/jni_headers/BraveWalletServiceFactory_jni.h"
#include "brave/components/brave_wallet/browser/brave_wallet_service.h"
#include "brave/components/brave_wallet/common/brave_wallet.mojom.h"
-#include "chrome/browser/profiles/profile_android.h"
+#include "chrome/browser/profiles/profile.h"
#include "mojo/public/cpp/bindings/pending_receiver.h"
namespace chrome {
@@ -20,7 +20,7 @@ template
jlong BindWalletService(
JNIEnv* env,
const base::android::JavaParamRef& profile_android) {
- auto* profile = ProfileAndroid::FromProfileAndroid(profile_android);
+ auto* profile = Profile::FromJavaObject(profile_android);
if (auto* brave_wallet_service =
brave_wallet::BraveWalletServiceFactory::GetServiceForContext(
profile)) {
diff --git a/browser/brave_wallet/android/swap_service_factory_android.cc b/browser/brave_wallet/android/swap_service_factory_android.cc
index 08d5c95e49dc..323278989f9a 100644
--- a/browser/brave_wallet/android/swap_service_factory_android.cc
+++ b/browser/brave_wallet/android/swap_service_factory_android.cc
@@ -7,7 +7,6 @@
#include "brave/browser/brave_wallet/swap_service_factory.h"
#include "brave/build/android/jni_headers/SwapServiceFactory_jni.h"
#include "chrome/browser/profiles/profile.h"
-#include "chrome/browser/profiles/profile_android.h"
#include "mojo/public/cpp/bindings/pending_receiver.h"
namespace chrome {
@@ -15,7 +14,7 @@ namespace android {
static jlong JNI_SwapServiceFactory_GetInterfaceToSwapService(
JNIEnv* env,
const base::android::JavaParamRef& profile_android) {
- auto* profile = ProfileAndroid::FromProfileAndroid(profile_android);
+ auto* profile = Profile::FromJavaObject(profile_android);
auto pending =
brave_wallet::SwapServiceFactory::GetInstance()->GetForContext(profile);
diff --git a/browser/brave_wallet/android/wallet_native_utils_android.cc b/browser/brave_wallet/android/wallet_native_utils_android.cc
index 7aa202f478e7..8311edc2857b 100644
--- a/browser/brave_wallet/android/wallet_native_utils_android.cc
+++ b/browser/brave_wallet/android/wallet_native_utils_android.cc
@@ -11,7 +11,6 @@
#include "brave/components/brave_wallet/browser/brave_wallet_service.h"
#include "brave/components/decentralized_dns/core/utils.h"
#include "chrome/browser/profiles/profile.h"
-#include "chrome/browser/profiles/profile_android.h"
namespace chrome {
namespace android {
@@ -19,7 +18,7 @@ namespace android {
static void JNI_WalletNativeUtils_ResetWallet(
JNIEnv* env,
const base::android::JavaParamRef& profile_android) {
- auto* profile = ProfileAndroid::FromProfileAndroid(profile_android);
+ auto* profile = Profile::FromJavaObject(profile_android);
DCHECK(profile);
auto* brave_wallet_service =
diff --git a/browser/brave_wallet/brave_wallet_ethereum_chain_browsertest.cc b/browser/brave_wallet/brave_wallet_ethereum_chain_browsertest.cc
index a6644a411d95..1c9fa1c85dcd 100644
--- a/browser/brave_wallet/brave_wallet_ethereum_chain_browsertest.cc
+++ b/browser/brave_wallet/brave_wallet_ethereum_chain_browsertest.cc
@@ -101,7 +101,7 @@ void ExtractParameters(const std::string& params,
EXPECT_TRUE(result->find(key) == result->end());
(*result)[key] = (key_val.size() == 2) ? key_val[1] : std::string();
} else {
- NOTREACHED();
+ NOTREACHED_IN_MIGRATION();
}
}
}
diff --git a/browser/brave_wallet/brave_wallet_provider_delegate_impl_helper.cc b/browser/brave_wallet/brave_wallet_provider_delegate_impl_helper.cc
index 95b841517ed7..8afe53764eae 100644
--- a/browser/brave_wallet/brave_wallet_provider_delegate_impl_helper.cc
+++ b/browser/brave_wallet/brave_wallet_provider_delegate_impl_helper.cc
@@ -34,7 +34,7 @@ void ShowPanel(content::WebContents* web_contents) {
}
void ShowWalletBackup() {
- NOTREACHED();
+ NOTREACHED_IN_MIGRATION();
}
void ShowWalletOnboarding(content::WebContents* web_contents) {
diff --git a/browser/brave_wallet/external_wallets_importer.cc b/browser/brave_wallet/external_wallets_importer.cc
index 8d49ca8c1f2b..6ec7fe46d927 100644
--- a/browser/brave_wallet/external_wallets_importer.cc
+++ b/browser/brave_wallet/external_wallets_importer.cc
@@ -174,8 +174,8 @@ void ExternalWalletsImporter::Initialize(InitCallback callback) {
return;
}
} else {
- NOTREACHED() << "Unsupported ExternalWalletType type. value="
- << base::to_underlying(type_);
+ NOTREACHED_IN_MIGRATION() << "Unsupported ExternalWalletType type. value="
+ << base::to_underlying(type_);
std::move(callback).Run(false);
return;
}
diff --git a/browser/browsing_data/BUILD.gn b/browser/browsing_data/BUILD.gn
index 61b80a7ca629..6b685e5c63bc 100644
--- a/browser/browsing_data/BUILD.gn
+++ b/browser/browsing_data/BUILD.gn
@@ -20,6 +20,7 @@ source_set("browser_tests") {
"//chrome/app:command_ids",
"//chrome/browser",
"//chrome/browser/browsing_data:constants",
+ "//chrome/browser/search_engines",
"//chrome/browser/ui",
"//chrome/common:constants",
"//chrome/test:test_support",
diff --git a/browser/browsing_data/brave_clear_browsing_data_browsertest.cc b/browser/browsing_data/brave_clear_browsing_data_browsertest.cc
index cc786440fa52..c80501b45eb4 100644
--- a/browser/browsing_data/brave_clear_browsing_data_browsertest.cc
+++ b/browser/browsing_data/brave_clear_browsing_data_browsertest.cc
@@ -283,7 +283,8 @@ class BraveClearDataOnExitTwoBrowsersTest : public BraveClearDataOnExitTest {
ProfileManager* profile_manager = g_browser_process->profile_manager();
size_t starting_number_of_profiles = profile_manager->GetNumberOfProfiles();
if (!base::PathExists(path) && !base::CreateDirectory(path))
- NOTREACHED() << "Could not create directory at " << path.MaybeAsASCII();
+ NOTREACHED_IN_MIGRATION()
+ << "Could not create directory at " << path.MaybeAsASCII();
Profile* profile = profile_manager->GetProfile(path);
DCHECK(profile);
EXPECT_EQ(starting_number_of_profiles + 1,
diff --git a/browser/content_settings/brave_content_settings_browsertest.cc b/browser/content_settings/brave_content_settings_browsertest.cc
index 7d48a7eadf78..e2c9b3b0bf84 100644
--- a/browser/content_settings/brave_content_settings_browsertest.cc
+++ b/browser/content_settings/brave_content_settings_browsertest.cc
@@ -115,7 +115,7 @@ IN_PROC_BROWSER_TEST_F(BraveContentSettingsBrowserTest,
if (!unchecked_inherit_in_incognito) {
switch (info->incognito_behavior()) {
case content_settings::ContentSettingsInfo::INHERIT_IN_INCOGNITO:
- NOTREACHED();
+ NOTREACHED_IN_MIGRATION();
break;
case content_settings::ContentSettingsInfo::INHERIT_IF_LESS_PERMISSIVE:
EXPECT_NE(info->GetInitialDefaultSetting(), CONTENT_SETTING_ALLOW)
diff --git a/browser/default_protocol_handler_utils_win.cc b/browser/default_protocol_handler_utils_win.cc
index c4d0b124e354..fe3e8a553166 100644
--- a/browser/default_protocol_handler_utils_win.cc
+++ b/browser/default_protocol_handler_utils_win.cc
@@ -67,7 +67,7 @@ std::wstring HashString(std::wstring_view input_string) {
// in the scramble below.
base::MD5Digest digest;
base::MD5Sum(base::span(input_bytes, input_byte_count), &digest);
- auto* md5 = reinterpret_cast(digest.a);
+ auto* md5 = reinterpret_cast(digest.a.data());
// The following loop effectively computes two checksums, scrambled like a
// hash after every DWORD is added.
@@ -303,7 +303,7 @@ std::wstring GetBrowserProgId() {
std::wstring new_style_suffix;
if (ShellUtil::GetUserSpecificRegistrySuffix(&new_style_suffix) &&
suffix == new_style_suffix && brave_html.length() > 39) {
- NOTREACHED();
+ NOTREACHED_IN_MIGRATION();
brave_html.erase(39);
}
return brave_html;
diff --git a/browser/extensions/api/identity/brave_web_auth_flow.cc b/browser/extensions/api/identity/brave_web_auth_flow.cc
index 2d05e510eb70..eb30895e0898 100644
--- a/browser/extensions/api/identity/brave_web_auth_flow.cc
+++ b/browser/extensions/api/identity/brave_web_auth_flow.cc
@@ -98,7 +98,8 @@ void BraveWebAuthFlow::OnAuthFlowFailure(WebAuthFlow::Failure failure) {
IdentityGetAuthTokenError::State::kRemoteConsentPageLoadFailure);
break;
default:
- NOTREACHED() << "Unexpected error from web auth flow: " << failure;
+ NOTREACHED_IN_MIGRATION()
+ << "Unexpected error from web auth flow: " << failure;
break;
}
if (web_auth_flow_) {
diff --git a/browser/extensions/brave_extension_provider.cc b/browser/extensions/brave_extension_provider.cc
index f08fa8bbc042..f2f0f1a7a48f 100644
--- a/browser/extensions/brave_extension_provider.cc
+++ b/browser/extensions/brave_extension_provider.cc
@@ -17,7 +17,7 @@ BraveExtensionProvider::~BraveExtensionProvider() = default;
std::string BraveExtensionProvider::GetDebugPolicyProviderName() const {
#if defined(NDEBUG)
- NOTREACHED();
+ NOTREACHED_IN_MIGRATION();
return std::string();
#else
return "Brave Extension Provider";
diff --git a/browser/farbling/brave_navigator_usb_farbling_browsertest.cc b/browser/farbling/brave_navigator_usb_farbling_browsertest.cc
index 5834b3ab2bc8..de65f0328881 100644
--- a/browser/farbling/brave_navigator_usb_farbling_browsertest.cc
+++ b/browser/farbling/brave_navigator_usb_farbling_browsertest.cc
@@ -79,11 +79,15 @@ class FakeChooserView : public permissions::ChooserController::View {
delete this;
}
- void OnOptionAdded(size_t index) override { NOTREACHED(); }
- void OnOptionRemoved(size_t index) override { NOTREACHED(); }
- void OnOptionUpdated(size_t index) override { NOTREACHED(); }
- void OnAdapterEnabledChanged(bool enabled) override { NOTREACHED(); }
- void OnRefreshStateChanged(bool refreshing) override { NOTREACHED(); }
+ void OnOptionAdded(size_t index) override { NOTREACHED_IN_MIGRATION(); }
+ void OnOptionRemoved(size_t index) override { NOTREACHED_IN_MIGRATION(); }
+ void OnOptionUpdated(size_t index) override { NOTREACHED_IN_MIGRATION(); }
+ void OnAdapterEnabledChanged(bool enabled) override {
+ NOTREACHED_IN_MIGRATION();
+ }
+ void OnRefreshStateChanged(bool refreshing) override {
+ NOTREACHED_IN_MIGRATION();
+ }
private:
std::unique_ptr controller_;
diff --git a/browser/infobars/brave_ipfs_fallback_infobar_delegate.cc b/browser/infobars/brave_ipfs_fallback_infobar_delegate.cc
index 746a97b699eb..968eb91d60ef 100644
--- a/browser/infobars/brave_ipfs_fallback_infobar_delegate.cc
+++ b/browser/infobars/brave_ipfs_fallback_infobar_delegate.cc
@@ -49,7 +49,7 @@ std::u16string BraveIPFSFallbackInfoBarDelegate::GetCheckboxText() const {
}
void BraveIPFSFallbackInfoBarDelegate::SetCheckboxChecked(bool checked) {
- NOTREACHED();
+ NOTREACHED_IN_MIGRATION();
}
bool BraveIPFSFallbackInfoBarDelegate::InterceptClosing() {
diff --git a/browser/infobars/brave_ipfs_infobar_delegate.cc b/browser/infobars/brave_ipfs_infobar_delegate.cc
index 9d8bb5e60b2b..c46d351c1fce 100644
--- a/browser/infobars/brave_ipfs_infobar_delegate.cc
+++ b/browser/infobars/brave_ipfs_infobar_delegate.cc
@@ -54,7 +54,7 @@ std::u16string BraveIPFSInfoBarDelegate::GetCheckboxText() const {
}
void BraveIPFSInfoBarDelegate::SetCheckboxChecked(bool checked) {
- NOTREACHED();
+ NOTREACHED_IN_MIGRATION();
}
bool BraveIPFSInfoBarDelegate::InterceptClosing() {
diff --git a/browser/ipfs/import/ipfs_import_controller.cc b/browser/ipfs/import/ipfs_import_controller.cc
index a25b086e4f24..c7eb5a73e341 100644
--- a/browser/ipfs/import/ipfs_import_controller.cc
+++ b/browser/ipfs/import/ipfs_import_controller.cc
@@ -81,7 +81,7 @@ std::u16string GetImportNotificationTitle(ipfs::ImportState state) {
return brave_l10n::GetLocalizedResourceUTF16String(
IDS_IPFS_IMPORT_PARTLY_COMPLETED_NOTIFICATION_TITLE);
default:
- NOTREACHED();
+ NOTREACHED_IN_MIGRATION();
break;
}
return std::u16string();
@@ -105,7 +105,7 @@ std::u16string GetImportNotificationBody(ipfs::ImportState state,
return brave_l10n::GetLocalizedResourceUTF16String(
IDS_IPFS_IMPORT_PARTLY_COMPLETED_NOTIFICATION_BODY);
default:
- NOTREACHED();
+ NOTREACHED_IN_MIGRATION();
break;
}
return std::u16string();
@@ -222,7 +222,7 @@ void IpfsImportController::OnDownloadFinished(
base::GetDeletePathRecursivelyCallback(path.DirName()));
break;
default:
- NOTREACHED();
+ NOTREACHED_IN_MIGRATION();
}
save_package_observer_.reset();
@@ -327,7 +327,8 @@ void IpfsImportController::FileSelected(const ui::SelectedFileInfo& file,
ImportDirectoryToIpfs(file.path(), dialog_key_);
break;
default:
- NOTREACHED() << "Only existing file or directory import supported";
+ NOTREACHED_IN_MIGRATION()
+ << "Only existing file or directory import supported";
break;
}
dialog_type_ = ui::SelectFileDialog::SELECT_NONE;
diff --git a/browser/ipfs/ipfs_service_impl_delegate.h b/browser/ipfs/ipfs_service_impl_delegate.h
index 60d84da90149..898339872f3c 100644
--- a/browser/ipfs/ipfs_service_impl_delegate.h
+++ b/browser/ipfs/ipfs_service_impl_delegate.h
@@ -8,6 +8,7 @@
#include "base/memory/raw_ptr.h"
#include "brave/components/ipfs/ipfs_service_delegate.h"
+#include "build/build_config.h"
class PrefService;
#if !BUILDFLAG(IS_ANDROID)
diff --git a/browser/metrics/metrics_reporting_util.cc b/browser/metrics/metrics_reporting_util.cc
index 6c4d89286485..db3e580915bb 100644
--- a/browser/metrics/metrics_reporting_util.cc
+++ b/browser/metrics/metrics_reporting_util.cc
@@ -27,7 +27,7 @@ bool GetDefaultPrefValueForMetricsReporting() {
case version_info::Channel::UNKNOWN:
return false;
default:
- NOTREACHED();
+ NOTREACHED_IN_MIGRATION();
return false;
}
}
diff --git a/browser/misc_metrics/misc_android_metrics_factory_android.cc b/browser/misc_metrics/misc_android_metrics_factory_android.cc
index 3d4f460f311f..895d678e9239 100644
--- a/browser/misc_metrics/misc_android_metrics_factory_android.cc
+++ b/browser/misc_metrics/misc_android_metrics_factory_android.cc
@@ -9,14 +9,14 @@
#include "brave/browser/misc_metrics/profile_misc_metrics_service.h"
#include "brave/browser/misc_metrics/profile_misc_metrics_service_factory.h"
#include "brave/build/android/jni_headers/MiscAndroidMetricsFactory_jni.h"
-#include "chrome/browser/profiles/profile_android.h"
+#include "chrome/browser/profiles/profile.h"
namespace chrome {
namespace android {
static jlong JNI_MiscAndroidMetricsFactory_GetInterfaceToMiscAndroidMetrics(
JNIEnv* env,
const base::android::JavaParamRef& profile_android) {
- auto* profile = ProfileAndroid::FromProfileAndroid(profile_android);
+ auto* profile = Profile::FromJavaObject(profile_android);
auto pending = misc_metrics::ProfileMiscMetricsServiceFactory::GetInstance()
->GetServiceForContext(profile)
->GetMiscAndroidMetrics()
diff --git a/browser/net/brave_ad_block_tp_network_delegate_helper.cc b/browser/net/brave_ad_block_tp_network_delegate_helper.cc
index f7f49db636c7..024104c536b9 100644
--- a/browser/net/brave_ad_block_tp_network_delegate_helper.cc
+++ b/browser/net/brave_ad_block_tp_network_delegate_helper.cc
@@ -157,12 +157,12 @@ class AdblockCnameResolveHostClient : public network::mojom::ResolveHostClient {
// Should not be called
void OnTextResults(const std::vector& text_results) override {
- NOTREACHED();
+ NOTREACHED_IN_MIGRATION();
}
// Should not be called
void OnHostnameResults(const std::vector& hosts) override {
- NOTREACHED();
+ NOTREACHED_IN_MIGRATION();
}
};
diff --git a/browser/net/brave_proxying_url_loader_factory.cc b/browser/net/brave_proxying_url_loader_factory.cc
index d27ac9da2d85..5f85ad1305d3 100644
--- a/browser/net/brave_proxying_url_loader_factory.cc
+++ b/browser/net/brave_proxying_url_loader_factory.cc
@@ -470,7 +470,7 @@ void BraveProxyingURLLoaderFactory::InProgressRequest::ContinueToSendHeaders(
pending_follow_redirect_params_->modified_headers.SetHeader(
set_header, header_value);
} else {
- NOTREACHED();
+ NOTREACHED_IN_MIGRATION();
}
}
diff --git a/browser/net/brave_reduce_language_network_delegate_helper.cc b/browser/net/brave_reduce_language_network_delegate_helper.cc
index b1f8df70652e..d9e9d4764bce 100644
--- a/browser/net/brave_reduce_language_network_delegate_helper.cc
+++ b/browser/net/brave_reduce_language_network_delegate_helper.cc
@@ -127,7 +127,7 @@ int OnBeforeStartTransaction_ReduceLanguageWork(
default:
// Other cases are handled within ShouldDoReduceLanguage, so we should
// never reach here.
- NOTREACHED();
+ NOTREACHED_IN_MIGRATION();
}
headers->SetHeader(net::HttpRequestHeaders::kAcceptLanguage,
diff --git a/browser/ntp_background/android/ntp_background_images_bridge.cc b/browser/ntp_background/android/ntp_background_images_bridge.cc
index 8b4433737b39..7bccc8c6d743 100644
--- a/browser/ntp_background/android/ntp_background_images_bridge.cc
+++ b/browser/ntp_background/android/ntp_background_images_bridge.cc
@@ -29,7 +29,6 @@
#include "brave/components/ntp_background_images/browser/url_constants.h"
#include "brave/components/ntp_background_images/browser/view_counter_service.h"
#include "chrome/browser/profiles/profile.h"
-#include "chrome/browser/profiles/profile_android.h"
#include "components/keyed_service/content/browser_context_dependency_manager.h"
#include "content/public/browser/browser_context.h"
#include "content/public/browser/browser_thread.h"
@@ -100,7 +99,7 @@ static base::android::ScopedJavaLocalRef
JNI_NTPBackgroundImagesBridge_GetInstance(
JNIEnv* env,
const JavaParamRef& j_profile) {
- auto* profile = ProfileAndroid::FromProfileAndroid(j_profile);
+ auto* profile = Profile::FromJavaObject(j_profile);
return ntp_background_images::NTPBackgroundImagesBridgeFactory::GetInstance()
->GetForProfile(profile)
->GetJavaObject();
diff --git a/browser/ntp_background/ntp_background_prefs.cc b/browser/ntp_background/ntp_background_prefs.cc
index f60efe7bca83..be283b367931 100644
--- a/browser/ntp_background/ntp_background_prefs.cc
+++ b/browser/ntp_background/ntp_background_prefs.cc
@@ -42,7 +42,7 @@ NTPBackgroundPrefs::Type StringToType(const std::string& type_string) {
if (type_string == "solid_color" || type_string == "color")
return NTPBackgroundPrefs::Type::kColor;
- NOTREACHED();
+ NOTREACHED_IN_MIGRATION();
return NTPBackgroundPrefs::Type::kBrave;
}
diff --git a/browser/permissions/google_sign_in_permission_browsertest.cc b/browser/permissions/google_sign_in_permission_browsertest.cc
index 0a6df431c43d..c4ed1d0378d6 100644
--- a/browser/permissions/google_sign_in_permission_browsertest.cc
+++ b/browser/permissions/google_sign_in_permission_browsertest.cc
@@ -219,8 +219,8 @@ class GoogleSignInBrowserTest : public InProcessBrowserTest {
ContentSettingsType::BRAVE_GOOGLE_SIGN_IN),
content_setting);
EXPECT_EQ(cookie_settings()->GetCookieSetting(
- GURL(kAccountsGoogleUrl), embedding_url_,
- net::CookieSettingOverrides(), nullptr),
+ GURL(kAccountsGoogleUrl), net::SiteForCookies(),
+ embedding_url_, net::CookieSettingOverrides(), nullptr),
cookie_setting);
}
diff --git a/browser/playlist/android/playlist_service_factory_android.cc b/browser/playlist/android/playlist_service_factory_android.cc
index 13ab7cce2d52..be91a7181dd8 100644
--- a/browser/playlist/android/playlist_service_factory_android.cc
+++ b/browser/playlist/android/playlist_service_factory_android.cc
@@ -7,7 +7,6 @@
#include "brave/browser/playlist/playlist_service_factory.h"
#include "brave/build/android/jni_headers/PlaylistServiceFactoryAndroid_jni.h"
#include "chrome/browser/profiles/profile.h"
-#include "chrome/browser/profiles/profile_android.h"
#include "mojo/public/cpp/bindings/pending_receiver.h"
namespace chrome {
@@ -15,7 +14,7 @@ namespace android {
static jlong JNI_PlaylistServiceFactoryAndroid_GetInterfaceToPlaylistService(
JNIEnv* env,
const base::android::JavaParamRef& profile_android) {
- auto* profile = ProfileAndroid::FromProfileAndroid(profile_android);
+ auto* profile = Profile::FromJavaObject(profile_android);
auto pending =
playlist::PlaylistServiceFactory::GetInstance()->GetForContext(profile);
diff --git a/browser/playlist/playlist_data_source.cc b/browser/playlist/playlist_data_source.cc
index be388376b394..98b5032b5fa8 100644
--- a/browser/playlist/playlist_data_source.cc
+++ b/browser/playlist/playlist_data_source.cc
@@ -156,7 +156,8 @@ PlaylistDataSource::DataRequest::DataRequest(const GURL& url) {
} else if (type_string == "favicon") {
type = DataRequest::Type::kFavicon;
} else {
- NOTREACHED() << "type is not in {thumbnail,media,favicon}: " << type_string;
+ NOTREACHED_IN_MIGRATION()
+ << "type is not in {thumbnail,media,favicon}: " << type_string;
}
}
@@ -190,7 +191,8 @@ void PlaylistDataSource::StartDataRequest(
GetFavicon(data_request, wc_getter, std::move(got_data_callback));
break;
case DataRequest::Type::kMedia:
- NOTREACHED() << "This request should call StartRangeDataRequest()";
+ NOTREACHED_IN_MIGRATION()
+ << "This request should call StartRangeDataRequest()";
std::move(got_data_callback).Run(nullptr);
break;
}
diff --git a/browser/playlist/playlist_service_factory.cc b/browser/playlist/playlist_service_factory.cc
index 44cd6905db7a..30e8e9c658cd 100644
--- a/browser/playlist/playlist_service_factory.cc
+++ b/browser/playlist/playlist_service_factory.cc
@@ -44,7 +44,7 @@
#include "chrome/browser/ui/browser.h"
#include "chrome/browser/ui/browser_finder.h"
#include "chrome/browser/ui/browser_list.h"
-#include "chrome/browser/ui/side_panel/side_panel_ui.h"
+#include "chrome/browser/ui/views/side_panel/side_panel_ui.h"
#endif
#if BUILDFLAG(ENABLE_PLAYLIST_WEBUI)
diff --git a/browser/playlist/test/playlist_service_unittest.cc b/browser/playlist/test/playlist_service_unittest.cc
index 4c8d7bca6b33..98235687229a 100644
--- a/browser/playlist/test/playlist_service_unittest.cc
+++ b/browser/playlist/test/playlist_service_unittest.cc
@@ -21,7 +21,6 @@
#include "brave/components/playlist/common/features.h"
#include "brave/components/playlist/common/mojom/playlist.mojom.h"
#include "chrome/browser/prefs/browser_prefs.h"
-#include "chrome/browser/sync/sync_service_factory.h"
#include "chrome/test/base/testing_profile.h"
#include "components/download/public/common/download_task_runner.h"
#include "components/pref_registry/pref_registry_syncable.h"
diff --git a/browser/renderer_context_menu/brave_mock_render_view_context_menu.cc b/browser/renderer_context_menu/brave_mock_render_view_context_menu.cc
index 8e040743df62..0fc12edd4c1f 100644
--- a/browser/renderer_context_menu/brave_mock_render_view_context_menu.cc
+++ b/browser/renderer_context_menu/brave_mock_render_view_context_menu.cc
@@ -5,6 +5,7 @@
#include "brave/browser/renderer_context_menu/brave_mock_render_view_context_menu.h"
+#include
#include
#include "base/strings/string_number_conversions.h"
@@ -223,8 +224,6 @@ void BraveMockRenderViewContextMenu::AddSpellCheckServiceItem(bool is_checked) {
void BraveMockRenderViewContextMenu::AddAccessibilityLabelsServiceItem(
bool is_checked) {}
-void BraveMockRenderViewContextMenu::AddPdfOcrMenuItem() {}
-
content::RenderFrameHost* BraveMockRenderViewContextMenu::GetRenderFrameHost()
const {
return nullptr;
diff --git a/browser/renderer_context_menu/brave_mock_render_view_context_menu.h b/browser/renderer_context_menu/brave_mock_render_view_context_menu.h
index e273f15fc6f8..8f2edf7ea737 100644
--- a/browser/renderer_context_menu/brave_mock_render_view_context_menu.h
+++ b/browser/renderer_context_menu/brave_mock_render_view_context_menu.h
@@ -82,7 +82,6 @@ class BraveMockRenderViewContextMenu : public ui::SimpleMenuModel::Delegate,
void RemoveSeparatorBeforeMenuItem(int command_id) override;
void AddSpellCheckServiceItem(bool is_checked) override;
void AddAccessibilityLabelsServiceItem(bool is_checked) override;
- void AddPdfOcrMenuItem() override;
content::RenderFrameHost* GetRenderFrameHost() const override;
content::WebContents* GetWebContents() const override;
content::BrowserContext* GetBrowserContext() const override;
diff --git a/browser/renderer_context_menu/test/BUILD.gn b/browser/renderer_context_menu/test/BUILD.gn
index fbcc7f455dfc..36ea97538a71 100644
--- a/browser/renderer_context_menu/test/BUILD.gn
+++ b/browser/renderer_context_menu/test/BUILD.gn
@@ -14,6 +14,7 @@ source_set("unit_tests") {
"//brave/app:command_ids",
"//brave/components/ai_chat/core/common/buildflags",
"//chrome/browser",
+ "//chrome/browser/search_engines",
"//chrome/test:test_support",
"//components/custom_handlers",
"//components/custom_handlers:test_support",
diff --git a/browser/resources/settings/brave_clear_browsing_data_dialog/brave_clear_browsing_data_dialog_behavior.ts b/browser/resources/settings/brave_clear_browsing_data_dialog/brave_clear_browsing_data_dialog_behavior.ts
index 512c8792650f..d750a1fd2378 100644
--- a/browser/resources/settings/brave_clear_browsing_data_dialog/brave_clear_browsing_data_dialog_behavior.ts
+++ b/browser/resources/settings/brave_clear_browsing_data_dialog/brave_clear_browsing_data_dialog_behavior.ts
@@ -90,7 +90,7 @@ export class BraveSettingsClearBrowsingDataDialogElement extends BaseElement {
return;
}
const isOnExitPage = (page.id === 'on-exit-tab');
- this.$.clearBrowsingDataConfirm.hidden = isOnExitPage;
+ this.$.clearButton.hidden = isOnExitPage;
this.shadowRoot.querySelector('#saveOnExitSettingsConfirm').hidden = !isOnExitPage;
}
diff --git a/browser/resources/settings/brave_overrides/clear_browsing_data_dialog.ts b/browser/resources/settings/brave_overrides/clear_browsing_data_dialog.ts
index 55e2540b63c5..ae15954b25e3 100644
--- a/browser/resources/settings/brave_overrides/clear_browsing_data_dialog.ts
+++ b/browser/resources/settings/brave_overrides/clear_browsing_data_dialog.ts
@@ -37,7 +37,7 @@ RegisterPolymerTemplateModifications({
// Append On exit tab page.
const pagesElement = templateContent.querySelector('#pages')
if (!pagesElement) {
- console.error(`[Brave Settings Overrides] cannot find #pages in clear-browsing-data-dialog`)
+ console.error('[Settings] missing #pages in clear-browsing-data-dialog')
return
}
pagesElement.insertAdjacentHTML(
@@ -50,9 +50,10 @@ RegisterPolymerTemplateModifications({
`)
// Append Save button.
- const confirmButtonElement = templateContent.querySelector('#clearBrowsingDataConfirm')
+ const confirmButtonElement = templateContent.querySelector('#clearButton')
if (!confirmButtonElement) {
- console.error(`[Brave Settings Overrides] cannot find #clearBrowsingDataConfirm in clear-browsing-data-dialog`)
+ console.error(
+ '[Settings] missing #clearButton in clear-browsing-data-dialog')
return
}
confirmButtonElement.insertAdjacentHTML(
@@ -67,7 +68,7 @@ RegisterPolymerTemplateModifications({
const saveButton =
templateContent.getElementById('saveOnExitSettingsConfirm')
if (!saveButton) {
- console.error('[Brave Settings Overrides] Couldn\'t find save button')
+ console.error('[Settings] missing save button')
} else {
saveButton.textContent = loadTimeData.getString('save')
}
@@ -75,7 +76,8 @@ RegisterPolymerTemplateModifications({
// Append rewards reset data link
const body = templateContent.querySelector('[slot="body"]')
if (!body) {
- console.error(`[Brave Settings Overrides] cannot find 'slot="body"' in clear-browsing-data-dialog`)
+ console.error(
+ '[Settings] missing \'slot="body"\' in clear-browsing-data-dialog')
return
}
body.insertAdjacentHTML(
@@ -86,8 +88,7 @@ RegisterPolymerTemplateModifications({
const rewardsResetLink =
templateContent.getElementById('rewards-reset-data')
if (!rewardsResetLink) {
- console.error(
- '[Brave Settings Overrides] Couldn\'t find Rewards reset link')
+ console.error('[Settings] missing Rewards reset link')
} else {
rewardsResetLink.textContent = loadTimeData.getString('resetRewardsData')
}
@@ -100,8 +101,8 @@ RegisterPolymerTemplateModifications({
const cacheCheckbox = templateContent
.querySelector('[id="cacheCheckbox"]')
if (!cacheCheckbox) {
- console.error(`[Brave Settings Overrides] cannot find
- 'id="cacheCheckbox"' in clear-browsing-data-dialog`)
+ console.error(
+ '[Settings] missing cacheCheckbox in clear-browsing-data-dialog')
return
}
cacheCheckbox.insertAdjacentHTML(
@@ -119,8 +120,7 @@ RegisterPolymerTemplateModifications({
const leoResetCheckbox =
templateContent.querySelector('[id="leoResetCheckbox"]')
if (!leoResetCheckbox) {
- console.error(
- '[Brave Settings Overrides] Couldn\'t find Leo reset link')
+ console.error('[Settings] missing Leo reset link')
}
}
}
diff --git a/browser/resources/settings/brave_overrides/page_visibility.ts b/browser/resources/settings/brave_overrides/page_visibility.ts
index ecbfedc29e5e..226bb1308caa 100644
--- a/browser/resources/settings/brave_overrides/page_visibility.ts
+++ b/browser/resources/settings/brave_overrides/page_visibility.ts
@@ -7,7 +7,7 @@
import {loadTimeData} from 'chrome://resources/js/load_time_data.js';
-import {pageVisibility as chromiumPageVisibility, setPageVisibilityForTesting} from '../page_visibility.js'
+import {pageVisibility as chromiumPageVisibility, resetPageVisibilityForTesting} from '../page_visibility.js'
const alwaysTrue = {
get: () => true
@@ -77,4 +77,4 @@ function getPageVisibility () {
// Even though we are modifying chromium's override, the es module eval timing may
// result in the unoverriden value being obtained.
export const pageVisibility = getPageVisibility()
-setPageVisibilityForTesting(pageVisibility)
+resetPageVisibilityForTesting(pageVisibility)
diff --git a/browser/search_engines/brave_search_engine_pref_helper_android.cc b/browser/search_engines/brave_search_engine_pref_helper_android.cc
index c452404cdb36..3e8e638e678d 100644
--- a/browser/search_engines/brave_search_engine_pref_helper_android.cc
+++ b/browser/search_engines/brave_search_engine_pref_helper_android.cc
@@ -7,7 +7,6 @@
#include "brave/components/brave_search/browser/prefs.h"
#include "chrome/browser/profiles/profile.h"
-#include "chrome/browser/profiles/profile_android.h"
#include "chrome/browser/profiles/profile_manager.h"
#include "components/prefs/pref_service.h"
diff --git a/browser/search_engines/search_engine_provider_service_browsertest.cc b/browser/search_engines/search_engine_provider_service_browsertest.cc
index 30a1d6553a19..22726a533cb0 100644
--- a/browser/search_engines/search_engine_provider_service_browsertest.cc
+++ b/browser/search_engines/search_engine_provider_service_browsertest.cc
@@ -72,18 +72,18 @@ TemplateURLData CreateTestSearchEngine() {
return result;
}
-std::string GetBraveSearchProviderSyncGUID(PrefService* prefs) {
- CHECK(prefs);
- search_engines::SearchEngineChoiceService search_engine_choice_service(
- *prefs);
+std::string GetBraveSearchProviderSyncGUID(Profile* profile) {
+ CHECK(profile);
+ search_engines::SearchEngineChoiceService* search_engine_choice_service =
+ search_engines::SearchEngineChoiceServiceFactory::GetForProfile(profile);
auto data = TemplateURLPrepopulateData::GetPrepopulatedEngine(
- prefs, &search_engine_choice_service,
+ profile->GetPrefs(), search_engine_choice_service,
TemplateURLPrepopulateData::PREPOPULATED_ENGINE_ID_BRAVE);
DCHECK(data);
return data->sync_guid;
}
-bool PrepopulatedDataHasDDG(PrefService* prefs) {
+bool PrepopulatedDataHasDDG(Profile* profile) {
static constexpr TemplateURLPrepopulateData::BravePrepopulatedEngineID
alt_search_providers[] = {
TemplateURLPrepopulateData::PREPOPULATED_ENGINE_ID_DUCKDUCKGO,
@@ -91,13 +91,13 @@ bool PrepopulatedDataHasDDG(PrefService* prefs) {
TemplateURLPrepopulateData::
PREPOPULATED_ENGINE_ID_DUCKDUCKGO_AU_NZ_IE};
- CHECK(prefs);
- search_engines::SearchEngineChoiceService search_engine_choice_service(
- *prefs);
+ CHECK(profile);
+ search_engines::SearchEngineChoiceService* search_engine_choice_service =
+ search_engines::SearchEngineChoiceServiceFactory::GetForProfile(profile);
for (const auto& id : alt_search_providers) {
if (TemplateURLPrepopulateData::GetPrepopulatedEngine(
- prefs, &search_engine_choice_service, id)) {
+ profile->GetPrefs(), search_engine_choice_service, id)) {
return true;
}
}
@@ -117,7 +117,7 @@ IN_PROC_BROWSER_TEST_F(SearchEngineProviderServiceTest,
// provider properly.
prefs->SetInteger(country_codes::kCountryIDAtInstall, 'U' << 8 | 'S');
- ASSERT_TRUE(PrepopulatedDataHasDDG(prefs));
+ ASSERT_TRUE(PrepopulatedDataHasDDG(browser()->profile()));
prefs->SetBoolean(kShowAlternativePrivateSearchEngineProviderToggle, true);
prefs->SetBoolean(kUseAlternativePrivateSearchEngineProvider, true);
}
@@ -126,7 +126,7 @@ IN_PROC_BROWSER_TEST_F(SearchEngineProviderServiceTest,
PrivateSearchProviderMigrationTest) {
auto* prefs = browser()->profile()->GetPrefs();
prefs->SetInteger(country_codes::kCountryIDAtInstall, 'U' << 8 | 'S');
- ASSERT_TRUE(PrepopulatedDataHasDDG(prefs));
+ ASSERT_TRUE(PrepopulatedDataHasDDG(browser()->profile()));
EXPECT_FALSE(
prefs->GetBoolean(kShowAlternativePrivateSearchEngineProviderToggle));
@@ -146,7 +146,7 @@ IN_PROC_BROWSER_TEST_F(SearchEngineProviderServiceTest,
auto* service = TemplateURLServiceFactory::GetForProfile(profile);
EXPECT_TRUE(VerifyTemplateURLServiceLoad(service));
- EXPECT_EQ(GetBraveSearchProviderSyncGUID(profile->GetPrefs()),
+ EXPECT_EQ(GetBraveSearchProviderSyncGUID(profile),
profile->GetPrefs()->GetString(
prefs::kSyncedDefaultPrivateSearchProviderGUID));
}
@@ -237,7 +237,7 @@ IN_PROC_BROWSER_TEST_F(SearchEngineProviderServiceTest,
// properly.
profile->GetPrefs()->SetString(prefs::kSyncedDefaultPrivateSearchProviderGUID,
"invalid_id");
- EXPECT_EQ(GetBraveSearchProviderSyncGUID(profile->GetPrefs()),
+ EXPECT_EQ(GetBraveSearchProviderSyncGUID(profile),
profile->GetPrefs()->GetString(
prefs::kSyncedDefaultPrivateSearchProviderGUID));
EXPECT_EQ(initial_private_provider_id,
@@ -286,7 +286,7 @@ std::unique_ptr TestExtensionSearchEngine(Profile* profile) {
// Enforcing that `kTestExtensionPrepopulatedId` is not part of the
// prepopulated set for the current profile's country.
for (auto& data : TemplateURLPrepopulateData::GetPrepopulatedEngines(
- prefs, search_engine_choice_service, nullptr)) {
+ prefs, search_engine_choice_service)) {
EXPECT_NE(data->prepopulate_id, kTestExtensionPrepopulatedId);
}
diff --git a/browser/search_engines/search_engine_provider_util.cc b/browser/search_engines/search_engine_provider_util.cc
index ee3038d5c6c1..00a10fa9395f 100644
--- a/browser/search_engines/search_engine_provider_util.cc
+++ b/browser/search_engines/search_engine_provider_util.cc
@@ -39,15 +39,6 @@ void SetBraveAsDefaultPrivateSearchProvider(Profile* profile) {
TemplateURLDataToDictionary(*data));
}
-bool IsRegionForQwant(Profile* profile) {
- search_engines::SearchEngineChoiceService* search_engine_choice_service =
- search_engines::SearchEngineChoiceServiceFactory::GetForProfile(profile);
- return TemplateURLPrepopulateData::GetPrepopulatedDefaultSearch(
- profile->GetPrefs(), search_engine_choice_service)
- ->prepopulate_id ==
- TemplateURLPrepopulateData::PREPOPULATED_ENGINE_ID_QWANT;
-}
-
void RegisterSearchEngineProviderPrefsForMigration(
user_prefs::PrefRegistrySyncable* registry) {
registry->RegisterBooleanPref(kUseAlternativePrivateSearchEngineProvider,
diff --git a/browser/search_engines/search_engine_provider_util.h b/browser/search_engines/search_engine_provider_util.h
index 2a5e195a9e68..5eda07e1deaa 100644
--- a/browser/search_engines/search_engine_provider_util.h
+++ b/browser/search_engines/search_engine_provider_util.h
@@ -15,7 +15,6 @@ class PrefRegistrySyncable;
namespace brave {
-bool IsRegionForQwant(Profile* profile);
void SetBraveAsDefaultPrivateSearchProvider(Profile* profile);
// For prefs migration.
diff --git a/browser/search_engines/search_engine_tracker_browsertest.cc b/browser/search_engines/search_engine_tracker_browsertest.cc
index 5cc7e148a5e4..7cb32e0000cd 100644
--- a/browser/search_engines/search_engine_tracker_browsertest.cc
+++ b/browser/search_engines/search_engine_tracker_browsertest.cc
@@ -3,10 +3,10 @@
* License, v. 2.0. If a copy of the MPL was not distributed with this file,
* You can obtain one at http://mozilla.org/MPL/2.0/. */
-#include
-
#include "brave/browser/search_engines/search_engine_tracker.h"
+#include
+
#include "base/test/metrics/histogram_tester.h"
#include "brave/browser/profiles/profile_util.h"
#include "brave/browser/ui/browser_commands.h"
@@ -14,6 +14,7 @@
#include "brave/components/constants/pref_names.h"
#include "brave/components/search_engines/brave_prepopulated_engines.h"
#include "brave/components/tor/buildflags/buildflags.h"
+#include "chrome/browser/search_engine_choice/search_engine_choice_service_factory.h"
#include "chrome/browser/search_engines/template_url_service_factory.h"
#include "chrome/browser/ui/browser.h"
#include "chrome/test/base/in_process_browser_test.h"
@@ -63,12 +64,13 @@ IN_PROC_BROWSER_TEST_F(SearchEngineProviderP3ATest, DefaultSearchEngineP3A) {
TemplateURLServiceFactory::GetForProfile(browser()->profile());
search_test_utils::WaitForTemplateURLServiceToLoad(service);
- search_engines::SearchEngineChoiceService search_engine_choice_service(
- *browser()->profile()->GetPrefs());
+ search_engines::SearchEngineChoiceService* search_engine_choice_service =
+ search_engines::SearchEngineChoiceServiceFactory::GetForProfile(
+ browser()->profile());
// Check that changing the default engine triggers emitting of a new value.
auto ddg_data = TemplateURLPrepopulateData::GetPrepopulatedEngine(
- browser()->profile()->GetPrefs(), &search_engine_choice_service,
+ browser()->profile()->GetPrefs(), search_engine_choice_service,
TemplateURLPrepopulateData::PREPOPULATED_ENGINE_ID_DUCKDUCKGO);
TemplateURL ddg_url(*ddg_data);
@@ -78,7 +80,7 @@ IN_PROC_BROWSER_TEST_F(SearchEngineProviderP3ATest, DefaultSearchEngineP3A) {
// Check switching back to original engine.
auto brave_data = TemplateURLPrepopulateData::GetPrepopulatedEngine(
- browser()->profile()->GetPrefs(), &search_engine_choice_service,
+ browser()->profile()->GetPrefs(), search_engine_choice_service,
TemplateURLPrepopulateData::PREPOPULATED_ENGINE_ID_BRAVE);
TemplateURL brave_url(*brave_data);
service->SetUserSelectedDefaultSearchProvider(&brave_url);
@@ -107,12 +109,13 @@ IN_PROC_BROWSER_TEST_F(SearchEngineProviderP3ATest, SwitchSearchEngineP3A) {
TemplateURLServiceFactory::GetForProfile(browser()->profile());
search_test_utils::WaitForTemplateURLServiceToLoad(service);
- search_engines::SearchEngineChoiceService search_engine_choice_service(
- *browser()->profile()->GetPrefs());
+ search_engines::SearchEngineChoiceService* search_engine_choice_service =
+ search_engines::SearchEngineChoiceServiceFactory::GetForProfile(
+ browser()->profile());
// Check that changing the default engine triggers emission of a new value.
auto ddg_data = TemplateURLPrepopulateData::GetPrepopulatedEngine(
- browser()->profile()->GetPrefs(), &search_engine_choice_service,
+ browser()->profile()->GetPrefs(), search_engine_choice_service,
TemplateURLPrepopulateData::PREPOPULATED_ENGINE_ID_DUCKDUCKGO);
TemplateURL ddg_url(*ddg_data);
@@ -123,7 +126,7 @@ IN_PROC_BROWSER_TEST_F(SearchEngineProviderP3ATest, SwitchSearchEngineP3A) {
// Check additional changes.
auto brave_data = TemplateURLPrepopulateData::GetPrepopulatedEngine(
- browser()->profile()->GetPrefs(), &search_engine_choice_service,
+ browser()->profile()->GetPrefs(), search_engine_choice_service,
TemplateURLPrepopulateData::PREPOPULATED_ENGINE_ID_BRAVE);
TemplateURL brave_url(*brave_data);
@@ -133,7 +136,7 @@ IN_PROC_BROWSER_TEST_F(SearchEngineProviderP3ATest, SwitchSearchEngineP3A) {
// Check additional changes.
auto bing_data = TemplateURLPrepopulateData::GetPrepopulatedEngine(
- browser()->profile()->GetPrefs(), &search_engine_choice_service,
+ browser()->profile()->GetPrefs(), search_engine_choice_service,
TemplateURLPrepopulateData::PREPOPULATED_ENGINE_ID_BING);
TemplateURL bing_url(*bing_data);
diff --git a/browser/sharing_hub/brave_sharing_hub_browsertest.cc b/browser/sharing_hub/brave_sharing_hub_browsertest.cc
index 23e505be8c93..098407af8466 100644
--- a/browser/sharing_hub/brave_sharing_hub_browsertest.cc
+++ b/browser/sharing_hub/brave_sharing_hub_browsertest.cc
@@ -21,6 +21,7 @@ IN_PROC_BROWSER_TEST_F(BraveSharingHubTest, SharingHubIconVisibility) {
BrowserView::GetBrowserViewForBrowser(browser())
->toolbar_button_provider()
->GetPageActionIconView(PageActionIconType::kSharingHub);
+ ASSERT_TRUE(sharing_hub_icon);
// No icon.
ASSERT_TRUE(
diff --git a/browser/speedreader/speedreader_browsertest.cc b/browser/speedreader/speedreader_browsertest.cc
index af4a86d2e323..d9a92a052037 100644
--- a/browser/speedreader/speedreader_browsertest.cc
+++ b/browser/speedreader/speedreader_browsertest.cc
@@ -38,10 +38,10 @@
#include "chrome/browser/ui/browser_command_controller.h"
#include "chrome/browser/ui/browser_commands.h"
#include "chrome/browser/ui/browser_list.h"
-#include "chrome/browser/ui/side_panel/side_panel_ui.h"
#include "chrome/browser/ui/views/frame/browser_view.h"
#include "chrome/browser/ui/views/frame/toolbar_button_provider.h"
#include "chrome/browser/ui/views/page_action/page_action_icon_view.h"
+#include "chrome/browser/ui/views/side_panel/side_panel_ui.h"
#include "chrome/common/chrome_isolated_world_ids.h"
#include "chrome/test/base/in_process_browser_test.h"
#include "chrome/test/base/ui_test_utils.h"
diff --git a/browser/themes/brave_dark_mode_utils.cc b/browser/themes/brave_dark_mode_utils.cc
index 00d8653189c5..db4b939e708e 100644
--- a/browser/themes/brave_dark_mode_utils.cc
+++ b/browser/themes/brave_dark_mode_utils.cc
@@ -54,7 +54,7 @@ dark_mode::BraveDarkModeType GetDarkModeSwitchValue(
if (requested_dark_mode_value_lower == "dark")
return dark_mode::BraveDarkModeType::BRAVE_DARK_MODE_TYPE_DARK;
- NOTREACHED();
+ NOTREACHED_IN_MIGRATION();
return dark_mode::BraveDarkModeType::BRAVE_DARK_MODE_TYPE_LIGHT;
}
@@ -91,7 +91,7 @@ std::string GetStringFromBraveDarkModeType(BraveDarkModeType type) {
case BraveDarkModeType::BRAVE_DARK_MODE_TYPE_DARK:
return "Dark";
default:
- NOTREACHED();
+ NOTREACHED_IN_MIGRATION();
return "Default";
}
}
diff --git a/browser/tor/test/BUILD.gn b/browser/tor/test/BUILD.gn
index 3cb772e0f062..2aec336ba528 100644
--- a/browser/tor/test/BUILD.gn
+++ b/browser/tor/test/BUILD.gn
@@ -65,6 +65,7 @@ source_set("browser_tests") {
"//brave/components/tor:test_support",
"//chrome/browser",
"//chrome/browser:browser_process",
+ "//chrome/browser/search_engines",
"//chrome/browser/ui",
"//chrome/test:test_support",
"//chrome/test:test_support_ui",
diff --git a/browser/ui/BUILD.gn b/browser/ui/BUILD.gn
index 3899da45e0a4..06d3c3b5136c 100644
--- a/browser/ui/BUILD.gn
+++ b/browser/ui/BUILD.gn
@@ -144,6 +144,8 @@ source_set("ui") {
"bookmark/brave_bookmark_tab_helper.h",
"brave_browser.cc",
"brave_browser.h",
+ "brave_browser_actions.cc",
+ "brave_browser_actions.h",
"brave_browser_command_controller.cc",
"brave_browser_command_controller.h",
"brave_browser_content_setting_bubble_model_delegate.cc",
@@ -308,6 +310,9 @@ source_set("ui") {
"//brave/components/sidebar/common",
"//chrome/app:generated_resources",
"//chrome/browser/profiles",
+ "//chrome/browser/sync",
+ "//chrome/browser/themes",
+ "//chrome/browser/ui/views/side_panel",
"//chrome/browser/ui/webui/side_panel/reading_list:mojo_bindings",
"//chrome/common:channel_info",
"//components/bookmarks/common",
@@ -323,6 +328,7 @@ source_set("ui") {
"//extensions/buildflags",
"//skia",
"//third_party/abseil-cpp:absl",
+ "//ui/actions:actions_headers",
"//ui/color:color_headers",
"//ui/color:mixers",
"//ui/webui/resources/cr_components/searchbox:mojo_bindings",
@@ -551,6 +557,8 @@ source_set("ui") {
"views/toolbar/brave_app_menu.h",
"views/toolbar/brave_browser_app_menu_button.cc",
"views/toolbar/brave_browser_app_menu_button.h",
+ "views/toolbar/side_panel_button.cc",
+ "views/toolbar/side_panel_button.h",
"views/view_shadow.cc",
"views/view_shadow.h",
"views/window_closing_confirm_dialog_view.cc",
@@ -768,10 +776,10 @@ source_set("ui") {
"//chrome/app:command_ids",
"//chrome/app/vector_icons:vector_icons",
"//chrome/browser:browser_process",
- "//chrome/browser:theme_properties",
"//chrome/browser/bitmap_fetcher",
"//chrome/browser/media/router:media_router_feature",
"//chrome/browser/profiles:profile",
+ "//chrome/browser/search_engines",
"//chrome/browser/ui/color:color_headers",
"//chrome/browser/ui/color:mixers",
"//chrome/browser/ui/webui",
@@ -1020,6 +1028,7 @@ source_set("ui") {
"//brave/components/version_info",
"//chrome/app:branded_strings",
"//chrome/browser/ui/tabs:tab_enums",
+ "//components/input",
"//components/sync_device_info",
"//mojo/public/cpp/bindings",
"//third_party/blink/public/common",
@@ -1353,6 +1362,7 @@ source_set("unit_tests") {
"//brave/components/brave_vpn/browser/connection:api",
"//brave/components/brave_vpn/browser/connection/ikev2:sim",
"//brave/components/skus/browser",
+ "//chrome/browser/themes",
"//chrome/test:test_support",
"//skia",
"//testing/gtest",
diff --git a/browser/ui/DEPS b/browser/ui/DEPS
index 4cb9fa562849..1706da863b0a 100644
--- a/browser/ui/DEPS
+++ b/browser/ui/DEPS
@@ -5,18 +5,4 @@
include_rules = [
"+chrome/browser/ui",
-
- # Restrict views similar to chrome/browser/ui/DEPS.
- "-brave/browser/ui/views",
- "-chrome/browser/ui/views",
]
-
-specific_include_rules = {
- "browser_commands\.cc": [
- "+brave/browser/ui/views",
- ],
- "wallet_bubble_manager_delegate_impl\.cc" : [
- "+brave/browser/ui/views",
- "+chrome/browser/ui/views",
- ],
-}
diff --git a/browser/ui/android/strings/android_chrome_strings.grd b/browser/ui/android/strings/android_chrome_strings.grd
index 20522e91dcbe..77185a72340b 100644
--- a/browser/ui/android/strings/android_chrome_strings.grd
+++ b/browser/ui/android/strings/android_chrome_strings.grd
@@ -216,11 +216,6 @@ CHAR_LIMIT guidelines:
Advanced
-
-
- Control your data & account
-
-
General
@@ -299,12 +294,6 @@ CHAR_LIMIT guidelines:
Not available on your device
-
- Brave activity controls
-
-
- Control how your browsing history is used to personalize Search and more
-
Personalization
@@ -334,12 +323,6 @@ CHAR_LIMIT guidelines:
Turn off sync
-
- Sign out
-
-
- Manage your Brave sync chain
-
Sync
@@ -451,6 +434,14 @@ CHAR_LIMIT guidelines:
For more settings that relate to privacy, security, and data collection, see <link>Brave services</link>
+
+ You can <link1>manage what Brave data is saved</link1> in your Brave sync chain.
+
+For more settings that use data to improve your Brave experience, go to <link2>Brave Services</link2>.
+
+
+ For more settings that use data to improve your Brave experience, go to <link>Brave Services</link>.
+
Help improve Brave\u2019s features and performance
@@ -612,7 +603,9 @@ CHAR_LIMIT guidelines:
This IBAN will be saved to this device only
-
+
+ Nickname (optional)
+
@@ -652,9 +645,36 @@ CHAR_LIMIT guidelines:
Save passwords
+
+ Use and save passwords in your Brave sync chain
+
+
+ When on, passwords are saved in %1$sfoo@gmail.com. When off, passwords are saved only to this device.
+
+
+ When on, passwords are saved in your account. When off, passwords are saved only to this device.
+
Auto Sign-in
+
+ Passwords on all your devices
+
+
+ When you’re signed in to Brave, passwords you save will go in your Brave sync chain. To turn this off, <link>go to settings</link>.
+
+
+ Got it
+
+
+ Passwords on all your devices opened at half height
+
+
+ Passwords on all your devices opened at full height
+
+
+ Passwords on all your devices closed
+
Automatically sign in to websites using stored credentials. When the feature is off, you’ll be asked for verification every time before signing in to a website.
@@ -841,9 +861,15 @@ CHAR_LIMIT guidelines:
We changed how passwords are saved on this device
+
+ We changed how passwords on this device are saved
+
Your lists of saved passwords for Brave and %1$sBrave Dev were merged. You can still autofill all your saved passwords on both apps.
+
+ All passwords saved only to this device for Brave and %1$sBrave Dev were merged. You can autofill all your saved passwords on both apps.
+
Delete passwords from Brave Password Manager?
@@ -1350,8 +1376,8 @@ Your Brave account may have other forms of browsing history like searches and ac
-
- Privacy Guide <new>New</new>
+
+ Privacy Guide
Review key privacy and security controls
@@ -1404,6 +1430,12 @@ Your Brave account may have other forms of browsing history like searches and ac
You’ll have your history on all your synced devices so you can continue what you were doing
+
+ Sync history and tabs
+
+
+ You’ll have your history and tabs on all your devices so you can continue what you were doing
+
If Brave is also your default search engine, you’ll see better, contextually relevant suggestions
@@ -1635,6 +1667,38 @@ Your Brave account may have other forms of browsing history like searches and ac
other {Checked # days ago}}
+
+
+ Permissions look good
+
+
+ {NUM_SITES, plural, =1 {Permissions removed from 1 site} other {Permissions removed from # sites}}
+
+
+ Review permissions
+
+
+ To protect your data, permissions were removed from sites you haven’t visited recently
+
+
+ Permissions allowed again for %1$shttps://example.com:443
+
+
+ Permissions allowed again for %1$s3 sites
+
+
+ Notifications look good
+
+
+ {NUM_SITES, plural, =1 {1 site recently sent a lot of notifications} other {# sites recently sent a lot of notifications}}
+
+
+ Review notifications
+
+
+ You can review sites that send a lot of notifications and stop them from sending more in the future
+
+
Safe Browsing
@@ -2176,20 +2240,19 @@ Your Brave account may have other forms of browsing history like searches and ac
Because you're signing out of an account managed by %1$sgoogle.com, your Brave data will be deleted from this device. It will remain in your Brave sync chain.
-
-
- Signed out. Sign back in to use the bookmarks, passwords and more in your account.
+
+ Signed out. Sign back in to use the bookmarks, passwords and more in your account.
-
-
- Unsaved data
+
+ Signed out
-
-
+
+ Some data isn\u2019t saved yet
+
+
Some of your Brave data hasn\u2019t been saved in your Brave sync chain yet.\nTry waiting a few minutes before signing out. If you sign out now, this data will be deleted.
-
-
+
Delete and sign out
@@ -2254,10 +2317,6 @@ Your Brave account may have other forms of browsing history like searches and ac
History
-
-
- History and Tabs
-
Passwords
@@ -2273,31 +2332,81 @@ Your Brave account may have other forms of browsing history like searches and ac
Apps
-
-
- When on, use and save data in your Brave sync chain. When off, data is saved only to this device.
-
Payment methods, offers, and addresses using Google Pay
+
+ In your Brave sync chain
+
+
+ Managed by your administrator
+
+
+ History and tabs
+
+
+ Bookmarks
+
+
+ Reading list
+
+
+ Addresses and more
+
+
+ Passwords
+
+
+ Payment methods, offers, and addresses using Google Pay
+
+
+ Settings
+
+
+ When on, use and save data in your Brave sync chain. When off, data is saved only to this device.
+
+
+ Control your data & account
+
+
+ Brave activity controls
+
+
+ Control how your browsing history is used to personalize Search and more
+
Encryption
-
- Review your synced data
+
+ Save without encryption
+
+
+ Addresses aren't encrypted with your passphrase. This lets you use them in other Brave services.
+
+
+ Continue
+
+
+ Cancel
-
-
- Data in your account
+
+ Brave data in your account
-
-
+
Review your account data
-
-
+
+ Manage your Brave sync chain
+
+
Manage accounts on this device
+
+ Sign out
+
+
+ Review your synced data
+
Encryption
@@ -2313,7 +2422,11 @@ Your Brave account may have other forms of browsing history like searches and ac
Enter passphrase
-
+
+ Payment methods and addresses won’t be encrypted. Browsing history from Brave won’t sync.
+Only someone with your passphrase can read your encrypted data. The passphrase is not sent to or stored by Brave. If you forget your passphrase or want to change this setting, BEGIN_LINKclear the Brave data in your accountEND_LINK.
+
+
Payment methods and addresses from Google Pay won’t be encrypted. Browsing history from Brave won’t sync.
Only someone with your passphrase can read your encrypted data. The passphrase is not sent to or stored by Brave. If you forget your passphrase or want to change this setting, BEGIN_LINKdelete the Brave data in your accountEND_LINK.
@@ -2636,15 +2749,9 @@ To change this setting, BEGIN_LINKdelete the Brave da
-
- Use strong password?
-
Cancel
-
- Use password
-
Verify it’s you
@@ -2834,7 +2941,7 @@ To change this setting, BEGIN_LINKdelete the Brave da
-
+
You are viewing an offline copy of this page from %1$sFeb 9, 2016
@@ -2846,6 +2953,12 @@ To change this setting, BEGIN_LINKdelete the Brave da
You are viewing a preview of this page
+
+ You're viewing a PDF file
+
+
+ You're viewing a local file
+
Change your site settings here
@@ -3251,13 +3364,21 @@ To change this setting, BEGIN_LINKdelete the Brave da
Info is sent to Brave about your Brave usage, but it isn\u2019t tied to you\n\nIf Brave crashes, details about the crash may include some personal info\n\nIf you turn on sync, metrics may also include info about URLs you visit
-
-
- Make Brave your own
+
+ Info is sent to Brave about your Brave usage, but it isn\u2019t tied to you\n\nIf Brave crashes, details about the crash may include some personal info\n\nIf you sync your history to your Brave sync chain, metrics may also include info about URLs you visit
-
+
+ Make Brave your own
+
+
Sign in to browse easier across devices
+
+ Sign in to get your bookmarks, passwords and more on all your devices
+
+
+ Sign in to get the most out of Brave
+
Signing in\u2026
@@ -3314,27 +3435,35 @@ To change this setting, BEGIN_LINKdelete the Brave da
Turn on sync?
-
- Save time and type less
+
+ Save time, type less
-
+
To quickly get back to sites you’ve visited, sync your tabs and history
Sync your passwords, history & more on all devices
+
+ Sync your bookmarks, history & more on all devices
+
Brave may use your history to personalize Search and other Brave services
You can always choose what to sync in <LINK1>settings</LINK1>.
-
-
- You are signed in as %1$sjane.doe@example.com. You can always choose what to sync in settings. Brave may personalize Search and other services based on your history.
+
+ You are signed in as %1$sjane.doe@example.com. You can stop syncing anytime in settings. Brave may personalize Search and other services based on your history.
+
+
+ You can stop syncing anytime in settings. Brave may personalize Search and other services based on your history.
-
- You can always choose what to sync in settings. Brave may personalize Search and other services based on your history.
+
+ Yes, I’m in
+
+
+ No thanks
Yes, I'm in
@@ -3363,6 +3492,9 @@ To change this setting, BEGIN_LINKdelete the Brave da
Sign in to Brave
+
+ Sign in to Brave
+
Sign in to Brave, opened.
@@ -3397,11 +3529,17 @@ To change this setting, BEGIN_LINKdelete the Brave da
Sign in to Brave
+ Manage your interests and preferences
+
+
Sign in to manage your preferences
Get your bookmarks, passwords, and more on all your devices
+
+ Sign in to this site and Brave to get your bookmarks and more on all your devices
+
@@ -3428,8 +3566,11 @@ To change this setting, BEGIN_LINKdelete the Brave da
Sync to get your bookmarks from your other devices
-
- Sign in to get your bookmarks and more from your other devices
+
+ Get all your bookmarks
+
+
+ Sign in to get your bookmarks and more on all your devices
Get better suggestions
@@ -3437,17 +3578,23 @@ To change this setting, BEGIN_LINKdelete the Brave da
Sync to get the most relevant content from Brave
+
+ Get better content
+
+
+ Sign in to get content based on your interests
+
Get all your tabs
-
- You’ll find tabs from other devices here
+
+ You’ll find your tabs from other devices here
Sync to get your tabs from your other devices
-
- To see tabs from other devices, sync your tabs and history
+
+ To see tabs from your other devices, sync your tabs and history
Use Brave your way
@@ -3455,18 +3602,27 @@ To change this setting, BEGIN_LINKdelete the Brave da
Sync to get your passwords, bookmarks and more on your other devices
+
+ Sync to get your bookmarks, history and more on your other devices
+
Choose another account
Turn on sync
-
+
Turn on
+
+ Sign in
+
Sign in
+
+ Turned off by your administrator
+
Get your bookmarks, passwords and more on all your devices
@@ -3587,15 +3743,6 @@ To change this setting, BEGIN_LINKdelete the Brave da
Control your Brave sync chain data
-
- Interests
-
-
- Manage the topics you're interested in
-
-
- Manage the topics and searches you're interested in
-
Hidden
@@ -3606,7 +3753,7 @@ To change this setting, BEGIN_LINKdelete the Brave da
Following
- Manage the sites you follow
+ Manage the topics and sites you're interested in
Following
@@ -4671,13 +4818,25 @@ To change this setting, BEGIN_LINKdelete the Brave da
Sign in to save this page
- Disabled save button
+ Disabled Add to collection
- Share button
+ Share link
- Page insights button
+ View page insights
+
+
+ Go to Brave App Home
+
+
+ Ask anything
+
+
+ Go to Brave App Voice Search
+
+
+ Go to Lens
@@ -5880,7 +6039,10 @@ To change this setting, BEGIN_LINKdelete the Brave da
Management
- Your administrator can change your browser setup remotely. Activity on this device may also be managed outside of Brave.
+ Your administrator can make changes to your profile and browser remotely, analyze information about the browser through reporting, and perform other necessary tasks. Activity on this device may also be managed outside of Brave.
+
+
+ The profile you’re signed in to is a managed profile. Your administrator can make changes to your profile settings remotely, analyze information about the browser through reporting, and perform other necessary tasks.
<LINK>Learn More</LINK>
@@ -5992,6 +6154,9 @@ To change this setting, BEGIN_LINKdelete the Brave da
Use strong password?
+
+ Use suggested password?
+
You won’t need to remember this password. It will be saved to Brave Password Manager for %1$selisa.becket@gmail.com.
@@ -6188,11 +6353,26 @@ To change this setting, BEGIN_LINKdelete the Brave da
Do Not Share
+
+ %1$swww.cheapalcohol.com has canceled the request for identity information.
+
Loading PDF…
+
+
+
+ {ARCHIVED_TAB_COUNT, plural,
+ =1 {Inactive tab (1)}
+ other {Inactive tabs (#)}}
+
+
+ {INACTIVE_TIME_DAYS, plural,
+ =1 {Not used for 1 day or more}
+ other {Not used for # days or more}}
+
diff --git a/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/bottom/BraveBottomControlsMediator.java b/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/bottom/BraveBottomControlsMediator.java
index c3fdecf9745d..45149cbc81e2 100644
--- a/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/bottom/BraveBottomControlsMediator.java
+++ b/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/bottom/BraveBottomControlsMediator.java
@@ -8,7 +8,7 @@
import org.chromium.base.supplier.ObservableSupplier;
import org.chromium.base.supplier.ObservableSupplierImpl;
import org.chromium.base.supplier.Supplier;
-import org.chromium.chrome.browser.browser_controls.BrowserControlsSizer;
+import org.chromium.chrome.browser.browser_controls.BottomControlsStacker;
import org.chromium.chrome.browser.fullscreen.FullscreenManager;
import org.chromium.chrome.browser.tab.TabObscuringHandler;
import org.chromium.chrome.browser.ui.edge_to_edge.EdgeToEdgeController;
@@ -19,7 +19,7 @@ class BraveBottomControlsMediator extends BottomControlsMediator {
// To delete in bytecode, members from parent class will be used instead.
private int mBottomControlsHeight;
private PropertyModel mModel;
- private BrowserControlsSizer mBrowserControlsSizer;
+ private BottomControlsStacker mBottomControlsStacker;
// Own members.
private ObservableSupplierImpl mTabGroupUiVisibleSupplier =
@@ -32,7 +32,7 @@ class BraveBottomControlsMediator extends BottomControlsMediator {
BraveBottomControlsMediator(
WindowAndroid windowAndroid,
PropertyModel model,
- BrowserControlsSizer controlsSizer,
+ BottomControlsStacker controlsStacker,
FullscreenManager fullscreenManager,
TabObscuringHandler tabObscuringHandler,
int bottomControlsHeight,
@@ -42,7 +42,7 @@ class BraveBottomControlsMediator extends BottomControlsMediator {
super(
windowAndroid,
model,
- controlsSizer,
+ controlsStacker,
fullscreenManager,
tabObscuringHandler,
bottomControlsHeight,
@@ -91,7 +91,8 @@ private void updateYOffset() {
// This indicates that both controls are visible, but bottom toolbar has already been
// scrolled down, so we move scroll further for tab groups control.
if (mBottomControlsHeight == mBottomControlsHeightDouble
- && mBrowserControlsSizer.getBottomControlOffset() == mBottomControlsHeightSingle) {
+ && mBottomControlsStacker.getBrowserControls().getBottomControlOffset()
+ == mBottomControlsHeightSingle) {
mModel.set(BottomControlsProperties.Y_OFFSET, mBottomControlsHeightDouble);
}
}
diff --git a/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/BottomTabSwitcherActionMenuCoordinator.java b/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/BottomTabSwitcherActionMenuCoordinator.java
index e2bf7a5cd492..bcb99a0f230d 100644
--- a/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/BottomTabSwitcherActionMenuCoordinator.java
+++ b/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/BottomTabSwitcherActionMenuCoordinator.java
@@ -8,16 +8,22 @@
import android.view.View.OnLongClickListener;
import org.chromium.base.Callback;
+import org.chromium.chrome.browser.profiles.Profile;
import org.chromium.ui.modelutil.MVCListAdapter.ModelList;
/**
- * The main coordinator for the Tab Switcher Action Menu on the bottom toolbar,
- * responsible for creating the popup menu and building a list of menu items.
+ * The main coordinator for the Tab Switcher Action Menu on the bottom toolbar, responsible for
+ * creating the popup menu and building a list of menu items.
*/
public class BottomTabSwitcherActionMenuCoordinator extends TabSwitcherActionMenuCoordinator {
- public static OnLongClickListener createOnLongClickListener(Callback onItemClicked) {
+ public BottomTabSwitcherActionMenuCoordinator(Profile profile) {
+ super(profile);
+ }
+
+ public static OnLongClickListener createOnLongClickListener(
+ Callback onItemClicked, Profile profile) {
return createOnLongClickListener(
- new BottomTabSwitcherActionMenuCoordinator(), onItemClicked);
+ new BottomTabSwitcherActionMenuCoordinator(profile), onItemClicked);
}
@Override
diff --git a/browser/ui/brave_browser_actions.cc b/browser/ui/brave_browser_actions.cc
new file mode 100644
index 000000000000..2a469f972438
--- /dev/null
+++ b/browser/ui/brave_browser_actions.cc
@@ -0,0 +1,81 @@
+/* Copyright (c) 2024 The Brave Authors. All rights reserved.
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this file,
+ * You can obtain one at https://mozilla.org/MPL/2.0/. */
+
+#include "brave/browser/ui/brave_browser_actions.h"
+
+#include "brave/components/ai_chat/core/common/buildflags/buildflags.h"
+#include "brave/components/playlist/common/buildflags/buildflags.h"
+#include "brave/components/vector_icons/vector_icons.h"
+#include "chrome/browser/profiles/profile.h"
+#include "chrome/browser/ui/browser.h"
+#include "chrome/browser/ui/views/side_panel/side_panel_action_callback.h"
+#include "chrome/browser/ui/views/side_panel/side_panel_entry_id.h"
+#include "chrome/browser/ui/views/side_panel/side_panel_entry_key.h"
+#include "components/grit/brave_components_strings.h"
+#include "ui/actions/actions.h"
+#include "ui/base/l10n/l10n_util.h"
+#include "ui/gfx/vector_icon_types.h"
+
+#if BUILDFLAG(ENABLE_AI_CHAT)
+#include "brave/components/ai_chat/core/browser/utils.h"
+#endif // BUILDFLAG(ENABLE_AI_CHAT)
+
+#if BUILDFLAG(ENABLE_PLAYLIST)
+#include "brave/components/playlist/common/features.h"
+#endif // BUILDFLAG(ENABLE_PLAYLIST)
+
+namespace {
+
+actions::ActionItem::ActionItemBuilder SidePanelAction(
+ SidePanelEntryId id,
+ int title_id,
+ int tooltip_id,
+ const gfx::VectorIcon& icon,
+ actions::ActionId action_id,
+ Browser* browser,
+ bool is_pinnable) {
+ return actions::ActionItem::Builder(CreateToggleSidePanelActionCallback(
+ SidePanelEntryKey(id), browser))
+ .SetActionId(action_id)
+ .SetText(l10n_util::GetStringUTF16(title_id))
+ .SetTooltipText(l10n_util::GetStringUTF16(tooltip_id))
+ .SetImage(ui::ImageModel::FromVectorIcon(icon, ui::kColorIcon))
+ .SetProperty(actions::kActionItemPinnableKey, is_pinnable);
+}
+
+} // namespace
+
+BraveBrowserActions::BraveBrowserActions(Browser& browser)
+ : BrowserActions(browser) {
+ InitializeBraveBrowserActions();
+}
+
+BraveBrowserActions::~BraveBrowserActions() = default;
+
+void BraveBrowserActions::InitializeBraveBrowserActions() {
+ Browser* browser = &(browser_.get());
+
+#if BUILDFLAG(ENABLE_PLAYLIST)
+ if (base::FeatureList::IsEnabled(playlist::features::kPlaylist)) {
+ root_action_item_->AddChild(
+ SidePanelAction(
+ SidePanelEntryId::kPlaylist, IDS_SIDEBAR_PLAYLIST_ITEM_TITLE,
+ IDS_SIDEBAR_PLAYLIST_ITEM_TITLE, kLeoProductPlaylistIcon,
+ kPlaylistSidePanelShowAssistant, browser, true)
+ .Build());
+ }
+#endif
+
+#if BUILDFLAG(ENABLE_AI_CHAT)
+ Profile* profile = browser_->profile();
+ if (ai_chat::IsAIChatEnabled(profile->GetPrefs())) {
+ root_action_item_->AddChild(
+ SidePanelAction(SidePanelEntryId::kChatUI, IDS_CHAT_UI_TITLE,
+ IDS_CHAT_UI_TITLE, kLeoProductBraveLeoIcon,
+ kChatUISidePanelShowAssistant, browser, false)
+ .Build());
+ }
+#endif
+}
diff --git a/browser/ui/brave_browser_actions.h b/browser/ui/brave_browser_actions.h
new file mode 100644
index 000000000000..a7fb98a37ab7
--- /dev/null
+++ b/browser/ui/brave_browser_actions.h
@@ -0,0 +1,21 @@
+/* Copyright (c) 2024 The Brave Authors. All rights reserved.
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this file,
+ * You can obtain one at https://mozilla.org/MPL/2.0/. */
+
+#ifndef BRAVE_BROWSER_UI_BRAVE_BROWSER_ACTIONS_H_
+#define BRAVE_BROWSER_UI_BRAVE_BROWSER_ACTIONS_H_
+
+#include "chrome/browser/ui/browser_actions.h"
+
+// Add more side panel actions for our playlist/chat panels.
+class BraveBrowserActions : public BrowserActions {
+ public:
+ explicit BraveBrowserActions(Browser& browser);
+ ~BraveBrowserActions() override;
+
+ private:
+ void InitializeBraveBrowserActions();
+};
+
+#endif // BRAVE_BROWSER_UI_BRAVE_BROWSER_ACTIONS_H_
diff --git a/browser/ui/brave_browser_command_controller.cc b/browser/ui/brave_browser_command_controller.cc
index f9124f1c0ac1..c595e6c0b9f3 100644
--- a/browser/ui/brave_browser_command_controller.cc
+++ b/browser/ui/brave_browser_command_controller.cc
@@ -576,7 +576,7 @@ bool BraveBrowserCommandController::ExecuteBraveCommandWithDisposition(
#if BUILDFLAG(ENABLE_PLAYLIST_WEBUI)
brave::ShowPlaylistBubble(&*browser_);
#else
- NOTREACHED() << " This command shouldn't be enabled";
+ NOTREACHED_IN_MIGRATION() << " This command shouldn't be enabled";
#endif
break;
case IDC_SHOW_WAYBACK_MACHINE_BUBBLE:
diff --git a/browser/ui/brave_layout_constants.cc b/browser/ui/brave_layout_constants.cc
index 272ef00fff9a..6443105ab050 100644
--- a/browser/ui/brave_layout_constants.cc
+++ b/browser/ui/brave_layout_constants.cc
@@ -13,12 +13,14 @@
using tabs::features::HorizontalTabsUpdateEnabled;
std::optional GetBraveLayoutInsets(LayoutInset inset) {
+ const bool touch_ui = ui::TouchUiController::Get()->touch_ui();
switch (inset) {
case LOCATION_BAR_PAGE_INFO_ICON_PADDING:
return gfx::Insets::VH(6, 6);
-
case LOCATION_BAR_PAGE_ACTION_ICON_PADDING:
return gfx::Insets::VH(4, 4);
+ case TOOLBAR_INTERIOR_MARGIN:
+ return touch_ui ? gfx::Insets() : gfx::Insets::VH(4, 8);
default:
break;
}
diff --git a/browser/ui/brave_pages.cc b/browser/ui/brave_pages.cc
index f782bc22e82c..cc45edf5d0da 100644
--- a/browser/ui/brave_pages.cc
+++ b/browser/ui/brave_pages.cc
@@ -73,7 +73,7 @@ void ShowBraveWalletAccountCreation(Browser* browser,
browser,
GURL(base::StrCat({kBraveUIWalletAccountCreationURL, "Solana"})));
} else {
- NOTREACHED();
+ NOTREACHED_IN_MIGRATION();
}
}
diff --git a/browser/ui/brave_shields_data_controller.cc b/browser/ui/brave_shields_data_controller.cc
index e57ccde7ff10..5ce40eb090fc 100644
--- a/browser/ui/brave_shields_data_controller.cc
+++ b/browser/ui/brave_shields_data_controller.cc
@@ -246,7 +246,7 @@ CookieBlockMode BraveShieldsDataController::GetCookieBlockMode() {
case ControlType::DEFAULT:
break;
}
- NOTREACHED();
+ NOTREACHED_IN_MIGRATION();
return CookieBlockMode::BLOCKED;
}
diff --git a/browser/ui/browser_commands.cc b/browser/ui/browser_commands.cc
index e4c3ebd3246e..a41774e55e3a 100644
--- a/browser/ui/browser_commands.cc
+++ b/browser/ui/browser_commands.cc
@@ -233,7 +233,7 @@ void OpenBraveVPNUrls(Browser* browser, int command_id) {
brave_vpn::GetManageUrl(vpn_service->GetCurrentEnvironment());
break;
default:
- NOTREACHED();
+ NOTREACHED_IN_MIGRATION();
}
chrome::AddTabAt(browser, GURL(target_url), -1, true);
diff --git a/browser/ui/color/brave_color_mixer.cc b/browser/ui/color/brave_color_mixer.cc
index d770fe8efd85..60e93be68487 100644
--- a/browser/ui/color/brave_color_mixer.cc
+++ b/browser/ui/color/brave_color_mixer.cc
@@ -15,6 +15,7 @@
#include "brave/components/brave_wayback_machine/buildflags/buildflags.h"
#include "brave/components/playlist/common/buildflags/buildflags.h"
#include "brave/components/speedreader/common/buildflags/buildflags.h"
+#include "chrome/browser/themes/theme_properties.h"
#include "chrome/browser/ui/color/chrome_color_id.h"
#include "chrome/browser/ui/color/chrome_color_provider_utils.h"
#include "chrome/browser/ui/color/material_chrome_color_mixer.h"
@@ -438,15 +439,8 @@ void AddBravifiedChromeThemeColorMixer(ui::ColorProvider* provider,
const ui::ColorProviderKey& key) {
AddChromeColorMixerForAllThemes(provider, key);
- // This is behind features::IsChromeRefresh2023 upstream, but without it the
- // colors are not set correctly.
- // These mixers should be called always as upstream does. Otherwise,
- // some colors are missed for private windows because we use custom theme
- // for private/tor window.
- if (!features::IsChromeRefresh2023()) {
- AddMaterialChromeColorMixer(provider, key);
- AddMaterialSidePanelColorMixer(provider, key);
- }
+ AddMaterialChromeColorMixer(provider, key);
+ AddMaterialSidePanelColorMixer(provider, key);
// TODO(simonhong): Use leo color when it's ready.
ui::ColorMixer& mixer = provider->AddMixer();
diff --git a/browser/ui/playlist/playlist_dialogs.cc b/browser/ui/playlist/playlist_dialogs.cc
index b057a6884f8a..42fa7a52678b 100644
--- a/browser/ui/playlist/playlist_dialogs.cc
+++ b/browser/ui/playlist/playlist_dialogs.cc
@@ -12,26 +12,26 @@ namespace playlist {
#if !defined(TOOLKIT_VIEWS)
void ShowCreatePlaylistDialog(content::WebContents* web_contents) {
- NOTREACHED();
+ NOTREACHED_IN_MIGRATION();
}
void ShowRemovePlaylistDialog(content::WebContents* web_contents,
const std::string& playlist_id) {
- NOTREACHED();
+ NOTREACHED_IN_MIGRATION();
}
void ShowMoveItemsDialog(content::WebContents* contents,
const std::string& playlist_id,
const std::vector& items) {
- NOTREACHED();
+ NOTREACHED_IN_MIGRATION();
}
void ShowPlaylistSettings() {
- NOTREACHED();
+ NOTREACHED_IN_MIGRATION();
}
void ClosePanel() {
- NOTREACHED();
+ NOTREACHED_IN_MIGRATION();
}
// #else functions are defined in playlist_action_dialogs.cc
#endif
diff --git a/browser/ui/sidebar/sidebar_browsertest.cc b/browser/ui/sidebar/sidebar_browsertest.cc
index 4098aa9bcee1..0d1ee7cb44b1 100644
--- a/browser/ui/sidebar/sidebar_browsertest.cc
+++ b/browser/ui/sidebar/sidebar_browsertest.cc
@@ -29,6 +29,8 @@
#include "brave/browser/ui/views/sidebar/sidebar_items_contents_view.h"
#include "brave/browser/ui/views/sidebar/sidebar_items_scroll_view.h"
#include "brave/browser/ui/views/tabs/vertical_tab_utils.h"
+#include "brave/browser/ui/views/toolbar/brave_toolbar_view.h"
+#include "brave/browser/ui/views/toolbar/side_panel_button.h"
#include "brave/components/ai_chat/core/common/buildflags/buildflags.h"
#include "brave/components/constants/brave_switches.h"
#include "brave/components/playlist/common/features.h"
@@ -42,10 +44,9 @@
#include "chrome/browser/ui/browser_command_controller.h"
#include "chrome/browser/ui/browser_finder.h"
#include "chrome/browser/ui/browser_window.h"
-#include "chrome/browser/ui/side_panel/side_panel_ui.h"
#include "chrome/browser/ui/tabs/tab_strip_model.h"
#include "chrome/browser/ui/views/frame/toolbar_button_provider.h"
-#include "chrome/browser/ui/views/toolbar/side_panel_toolbar_button.h"
+#include "chrome/browser/ui/views/side_panel/side_panel_ui.h"
#include "chrome/common/chrome_switches.h"
#include "chrome/common/pref_names.h"
#include "chrome/test/base/in_process_browser_test.h"
@@ -95,10 +96,10 @@ class SidebarBrowserTest : public InProcessBrowserTest {
return brave_browser()->sidebar_controller();
}
- SidePanelToolbarButton* GetSidePanelToolbarButton() const {
- BrowserView* browser_view =
- BrowserView::GetBrowserViewForBrowser(browser());
- return browser_view->toolbar_button_provider()->GetSidePanelButton();
+ SidePanelButton* GetSidePanelToolbarButton() const {
+ return static_cast(
+ BrowserView::GetBrowserViewForBrowser(browser())->toolbar())
+ ->side_panel_button();
}
views::View* GetVerticalTabsContainer() const {
@@ -518,7 +519,7 @@ IN_PROC_BROWSER_TEST_F(SidebarBrowserTest, DefaultEntryTest) {
EXPECT_FALSE(!!model()->GetIndexOf(SidebarItem::BuiltInItemType::kBookmarks));
// Open panel w/o entry id.
- panel_ui->Show();
+ panel_ui->Toggle();
WaitUntil(base::BindLambdaForTesting(
[&]() { return panel_ui->GetCurrentEntryId().has_value(); }));
// Check bookmark panel is not opened again as it's deleted item.
@@ -959,14 +960,13 @@ class SidebarBrowserTestWithChromeRefresh2023 : public SidebarBrowserTest {
void SetUp() override {
SidebarBrowserTest::SetUp();
-
- feature_list_.InitAndEnableFeature(::features::kChromeRefresh2023);
}
base::test::ScopedFeatureList feature_list_;
};
-// To check enabling kChromeRefresh2023 doesn't make crash with sidebar opening.
+// Test originally introduced before the chrome-refresh-2023 cleanup, to check
+// if sidebar crashes when opening.
IN_PROC_BROWSER_TEST_F(SidebarBrowserTestWithChromeRefresh2023,
SidebarOpeningTest) {
// Open side panel to check it doesn't make crash.
diff --git a/browser/ui/sidebar/sidebar_controller.cc b/browser/ui/sidebar/sidebar_controller.cc
index e52e72ed0008..89b2896578e3 100644
--- a/browser/ui/sidebar/sidebar_controller.cc
+++ b/browser/ui/sidebar/sidebar_controller.cc
@@ -24,10 +24,10 @@
#include "chrome/browser/ui/browser_navigator_params.h"
#include "chrome/browser/ui/browser_tabstrip.h"
#include "chrome/browser/ui/browser_window.h"
-#include "chrome/browser/ui/side_panel/side_panel_entry_id.h"
-#include "chrome/browser/ui/side_panel/side_panel_ui.h"
#include "chrome/browser/ui/singleton_tabs.h"
#include "chrome/browser/ui/tabs/tab_strip_model.h"
+#include "chrome/browser/ui/views/side_panel/side_panel_entry_id.h"
+#include "chrome/browser/ui/views/side_panel/side_panel_ui.h"
#include "components/prefs/pref_service.h"
namespace sidebar {
diff --git a/browser/ui/sidebar/sidebar_tab_helper.cc b/browser/ui/sidebar/sidebar_tab_helper.cc
index 4eac16798dfe..a4110d5e01fb 100644
--- a/browser/ui/sidebar/sidebar_tab_helper.cc
+++ b/browser/ui/sidebar/sidebar_tab_helper.cc
@@ -13,8 +13,8 @@
#include "chrome/browser/browser_process.h"
#include "chrome/browser/search_engines/template_url_service_factory.h"
#include "chrome/browser/ui/browser_finder.h"
-#include "chrome/browser/ui/side_panel/side_panel_entry_id.h"
-#include "chrome/browser/ui/side_panel/side_panel_ui.h"
+#include "chrome/browser/ui/views/side_panel/side_panel_entry_id.h"
+#include "chrome/browser/ui/views/side_panel/side_panel_ui.h"
#include "components/google/core/common/google_util.h"
#include "components/prefs/pref_service.h"
#include "components/search_engines/template_url_service.h"
diff --git a/browser/ui/sidebar/sidebar_utils.cc b/browser/ui/sidebar/sidebar_utils.cc
index c81d9ec06329..2ba950171925 100644
--- a/browser/ui/sidebar/sidebar_utils.cc
+++ b/browser/ui/sidebar/sidebar_utils.cc
@@ -22,8 +22,8 @@
#include "chrome/browser/profiles/profile.h"
#include "chrome/browser/search/search.h"
#include "chrome/browser/ui/browser.h"
-#include "chrome/browser/ui/side_panel/side_panel_entry_id.h"
#include "chrome/browser/ui/tabs/tab_strip_model.h"
+#include "chrome/browser/ui/views/side_panel/side_panel_entry_id.h"
#include "chrome/browser/ui/webui/new_tab_page/new_tab_page_ui.h"
#include "chrome/browser/ui/webui/ntp/new_tab_ui.h"
#include "chrome/common/webui_url_constants.h"
@@ -142,8 +142,9 @@ SidePanelEntryId SidePanelIdFromSideBarItemType(BuiltInItemType type) {
[[fallthrough]];
case BuiltInItemType::kNone:
// Add a new case for any new types which we want to support.
- NOTREACHED() << "Asked for a panel Id from a sidebar item which should "
- "not have a panel Id, sending Reading List instead.";
+ NOTREACHED_IN_MIGRATION()
+ << "Asked for a panel Id from a sidebar item which should "
+ "not have a panel Id, sending Reading List instead.";
return SidePanelEntryId::kReadingList;
}
}
diff --git a/browser/ui/tabs/brave_tab_layout_constants.h b/browser/ui/tabs/brave_tab_layout_constants.h
index 36ed440dc3b3..7789097f4e29 100644
--- a/browser/ui/tabs/brave_tab_layout_constants.h
+++ b/browser/ui/tabs/brave_tab_layout_constants.h
@@ -46,7 +46,7 @@ inline constexpr int kHorizontalTabInset =
(kHorizontalTabGap + kHorizontalTabOverlap) / 2;
// The content padding within a tab.
-inline constexpr int kHorizontalTabPadding = 6;
+inline constexpr int kHorizontalTabPadding = 8;
// The horizontal difference between the visual edge of a tab group and the
// bounds of the group underline.
@@ -65,6 +65,9 @@ inline constexpr int kTabGroupLineHeight = 24;
// (i.e. the rectangle enclosing the tab group title).
inline constexpr int kTabGroupTitleVerticalInset = 4;
+// The amount of padding at sides of tab group header "chips".
+inline constexpr int kTabGroupTitleHorizontalInset = 10;
+
} // namespace brave_tabs
#endif // BRAVE_BROWSER_UI_TABS_BRAVE_TAB_LAYOUT_CONSTANTS_H_
diff --git a/browser/ui/tabs/brave_tab_strip_model.cc b/browser/ui/tabs/brave_tab_strip_model.cc
index 3a0a04a0dc92..e474e922c340 100644
--- a/browser/ui/tabs/brave_tab_strip_model.cc
+++ b/browser/ui/tabs/brave_tab_strip_model.cc
@@ -32,7 +32,7 @@ BraveTabStripModel::~BraveTabStripModel() = default;
void BraveTabStripModel::SelectRelativeTab(TabRelativeDirection direction,
TabStripUserGestureDetails detail) {
- if (GetContentsDataAsVector().empty()) {
+ if (GetTabCount() == 0) {
return;
}
diff --git a/browser/ui/tabs/brave_tab_style.h b/browser/ui/tabs/brave_tab_style.h
index ed540c67c9d2..678f7d30b8f0 100644
--- a/browser/ui/tabs/brave_tab_style.h
+++ b/browser/ui/tabs/brave_tab_style.h
@@ -8,7 +8,10 @@
#include "brave/browser/ui/tabs/brave_tab_layout_constants.h"
#include "brave/browser/ui/tabs/features.h"
+#include "chrome/browser/ui/color/chrome_color_id.h"
#include "chrome/browser/ui/layout_constants.h"
+#include "ui/color/color_provider.h"
+#include "ui/gfx/color_utils.h"
#include "ui/gfx/geometry/insets.h"
// A subclass of TabStyle used to customize tab layout and visuals. It is
@@ -63,6 +66,46 @@ class BraveTabStyle : public TabStyleBase {
// area, i.e. the draggable part of the window frame.
return 4;
}
+
+ gfx::Size GetSeparatorSize() const override {
+ return gfx::Size(1, GetLayoutConstant(TAB_SEPARATOR_HEIGHT));
+ }
+
+ gfx::Insets GetSeparatorMargins() const override {
+ return gfx::Insets::TLBR(0, GetSeparatorSize().width() * -1, 0,
+ GetSeparatorSize().width() * -1);
+ }
+
+ int GetSeparatorCornerRadius() const override { return 0; }
+
+ SkColor GetTabBackgroundColor(
+ const TabStyleBase::TabSelectionState state,
+ bool hovered,
+ const bool frame_active,
+ const ui::ColorProvider& color_provider) const override {
+ const SkColor active_color = color_provider.GetColor(
+ frame_active ? kColorTabBackgroundActiveFrameActive
+ : kColorTabBackgroundActiveFrameInactive);
+ const SkColor inactive_color = color_provider.GetColor(
+ frame_active ? kColorTabBackgroundInactiveFrameActive
+ : kColorTabBackgroundInactiveFrameInactive);
+
+ if (hovered) {
+ return active_color;
+ }
+
+ switch (state) {
+ case TabStyleBase::TabSelectionState::kActive:
+ return active_color;
+ case TabStyleBase::TabSelectionState::kSelected:
+ return color_utils::AlphaBlend(active_color, inactive_color,
+ TabStyleBase::GetSelectedTabOpacity());
+ case TabStyleBase::TabSelectionState::kInactive:
+ return inactive_color;
+ default:
+ NOTREACHED_NORETURN();
+ }
+ }
};
#endif // BRAVE_BROWSER_UI_TABS_BRAVE_TAB_STYLE_H_
diff --git a/browser/ui/tabs/split_view_browser_data.cc b/browser/ui/tabs/split_view_browser_data.cc
index e247d3457152..24ee36cf3cbb 100644
--- a/browser/ui/tabs/split_view_browser_data.cc
+++ b/browser/ui/tabs/split_view_browser_data.cc
@@ -87,7 +87,7 @@ void SplitViewBrowserData::BreakTile(const tabs::TabHandle& tab) {
observer.OnDidBreakTile(tile_to_break);
}
} else {
- NOTREACHED() << "Tile doesn't exist";
+ NOTREACHED_IN_MIGRATION() << "Tile doesn't exist";
}
}
diff --git a/browser/ui/tabs/test/split_view_browser_data_unittest.cc b/browser/ui/tabs/test/split_view_browser_data_unittest.cc
index 30a1449f2290..4afd3cadb6f0 100644
--- a/browser/ui/tabs/test/split_view_browser_data_unittest.cc
+++ b/browser/ui/tabs/test/split_view_browser_data_unittest.cc
@@ -16,6 +16,7 @@
#include "chrome/browser/ui/tabs/test_tab_strip_model_delegate.h"
#include "chrome/test/base/testing_profile.h"
#include "content/public/test/browser_task_environment.h"
+#include "content/public/test/test_renderer_host.h"
#include "content/public/test/web_contents_tester.h"
#include "testing/gtest/include/gtest/gtest.h"
@@ -53,6 +54,7 @@ class SplitViewBrowserDataUnitTest : public ::testing::Test {
base::test::ScopedFeatureList feature_list_;
content::BrowserTaskEnvironment task_environment_;
+ content::RenderViewHostTestEnabler render_view_host_test_enabler_;
TestingProfile profile_;
std::unique_ptr delegate_;
diff --git a/browser/ui/toolbar/BUILD.gn b/browser/ui/toolbar/BUILD.gn
index 897859e7d23a..2ffadf7d3c0e 100644
--- a/browser/ui/toolbar/BUILD.gn
+++ b/browser/ui/toolbar/BUILD.gn
@@ -30,6 +30,7 @@ source_set("brave_app_menu_unit_test") {
"//brave/app:generate_command_metadata",
"//build:chromeos_buildflags",
"//chrome/app:command_ids",
+ "//chrome/browser/sync",
"//chrome/browser/ui:ui",
"//chrome/test:test_support",
"//components/constrained_window:constrained_window",
diff --git a/browser/ui/toolbar/brave_app_menu_model.cc b/browser/ui/toolbar/brave_app_menu_model.cc
index 0266249f62a0..7afe8d42e623 100644
--- a/browser/ui/toolbar/brave_app_menu_model.cc
+++ b/browser/ui/toolbar/brave_app_menu_model.cc
@@ -457,6 +457,12 @@ void BraveAppMenuModel::RemoveUpstreamMenus() {
}
}
+ // Remove upstream's `Reading Mode` item as we have our own `Speed reader`.
+ if (const auto index = more_tools_model->GetIndexOfCommandId(
+ IDC_SHOW_READING_MODE_SIDE_PANEL)) {
+ more_tools_model->RemoveItemAt(*index);
+ }
+
// Remove upstream's about menu. It's moved into help sub menu.
if (const auto index = GetIndexOfCommandId(IDC_ABOUT)) {
RemoveItemAt(*index);
@@ -656,7 +662,8 @@ std::optional BraveAppMenuModel::GetProperItemIndex(
}
}
- NOTREACHED() << "At least, a menu item for this command should exist: "
- << commands_to_check[commands_size - 1];
+ NOTREACHED_IN_MIGRATION()
+ << "At least, a menu item for this command should exist: "
+ << commands_to_check[commands_size - 1];
return std::nullopt;
}
diff --git a/browser/ui/views/brave_actions/brave_rewards_action_view.cc b/browser/ui/views/brave_actions/brave_rewards_action_view.cc
index d1d7d658e3f1..6d6b2840d201 100644
--- a/browser/ui/views/brave_actions/brave_rewards_action_view.cc
+++ b/browser/ui/views/brave_actions/brave_rewards_action_view.cc
@@ -31,6 +31,7 @@
#include "chrome/browser/ui/views/location_bar/location_bar_view.h"
#include "components/grit/brave_components_strings.h"
#include "components/prefs/pref_service.h"
+#include "extensions/common/constants.h"
#include "ui/base/metadata/metadata_impl_macros.h"
#include "ui/base/models/simple_menu_model.h"
#include "ui/color/color_provider_manager.h"
diff --git a/browser/ui/views/brave_ads/notification_ad_control_buttons_view.cc b/browser/ui/views/brave_ads/notification_ad_control_buttons_view.cc
index 683dd1bcf10f..98dea9185e3b 100644
--- a/browser/ui/views/brave_ads/notification_ad_control_buttons_view.cc
+++ b/browser/ui/views/brave_ads/notification_ad_control_buttons_view.cc
@@ -25,6 +25,8 @@ namespace brave_ads {
namespace {
+constexpr auto kInsideBorderInsets = gfx::Insets::TLBR(0, 0, 0, 2);
+
constexpr int kMinimumButtonHeight = 44;
constexpr int kInfoButtonIconDipSize = 40;
@@ -64,7 +66,7 @@ void NotificationAdControlButtonsView::UpdateContent() {
void NotificationAdControlButtonsView::CreateView() {
views::BoxLayout* box_layout =
SetLayoutManager(std::make_unique(
- views::BoxLayout::Orientation::kHorizontal));
+ views::BoxLayout::Orientation::kHorizontal, kInsideBorderInsets));
box_layout->set_cross_axis_alignment(
views::BoxLayout::CrossAxisAlignment::kStart);
diff --git a/browser/ui/views/brave_ads/notification_ad_header_view.cc b/browser/ui/views/brave_ads/notification_ad_header_view.cc
index 62e2c8f8b763..994ad7e1da1d 100644
--- a/browser/ui/views/brave_ads/notification_ad_header_view.cc
+++ b/browser/ui/views/brave_ads/notification_ad_header_view.cc
@@ -5,13 +5,10 @@
#include "brave/browser/ui/views/brave_ads/notification_ad_header_view.h"
-#include
-
#include "brave/browser/ui/views/brave_ads/insets_util.h"
#include "brave/browser/ui/views/brave_ads/spacer_view.h"
#include "ui/accessibility/ax_node_data.h"
#include "ui/base/metadata/metadata_impl_macros.h"
-#include "ui/gfx/color_palette.h"
#include "ui/gfx/font_list.h"
#include "ui/gfx/geometry/insets.h"
#include "ui/gfx/geometry/size.h"
@@ -28,7 +25,7 @@ namespace {
constexpr auto kMargin = gfx::Insets::TLBR(0, 0, 0, 0);
// Spacing between child views and host views
-constexpr auto kInteriorMargin = gfx::Insets::TLBR(0, 10, 0, 2);
+constexpr auto kInteriorMargin = gfx::Insets::TLBR(0, 10, 0, 0);
constexpr int kHeaderViewHeight = 22;
@@ -44,12 +41,12 @@ constexpr SkColor kDarkModeTitleColor = SkColorSetRGB(0xe3, 0xe6, 0xec);
constexpr gfx::HorizontalAlignment kTitleHorizontalAlignment = gfx::ALIGN_LEFT;
constexpr gfx::VerticalAlignment kTitleVerticalAlignment = gfx::ALIGN_BOTTOM;
-constexpr auto kTitleBorderInsets = gfx::Insets::TLBR(11, 10, 3, 0);
+constexpr auto kTitleBorderInsets = gfx::Insets::TLBR(0, 10, 3, 0);
} // namespace
-NotificationAdHeaderView::NotificationAdHeaderView(const int width) {
- CreateView(width);
+NotificationAdHeaderView::NotificationAdHeaderView() {
+ CreateView();
}
NotificationAdHeaderView::~NotificationAdHeaderView() = default;
@@ -90,30 +87,29 @@ void NotificationAdHeaderView::OnThemeChanged() {
///////////////////////////////////////////////////////////////////////////////
-void NotificationAdHeaderView::CreateView(const int width) {
+void NotificationAdHeaderView::CreateView() {
views::FlexLayout* layout_manager =
SetLayoutManager(std::make_unique());
layout_manager->SetDefault(views::kMarginsKey, kMargin);
layout_manager->SetInteriorMargin(kInteriorMargin);
layout_manager->SetCollapseMargins(true);
- const gfx::Size size(width, kHeaderViewHeight);
- SetPreferredSize(size);
-
CHECK(!title_label_);
- title_label_ = CreateTitleLabel();
- AddChildView(title_label_.get());
+ title_label_ = AddChildView(CreateTitleLabel());
views::View* control_button_spacing_view =
CreateFixedSizeSpacerView(kControlButtonsSpacing);
AddChildView(control_button_spacing_view);
+ const gfx::Size size(GetPreferredSize().width(), kHeaderViewHeight);
+ SetPreferredSize(size);
+
// Not focusable by default, only for accessibility
SetFocusBehavior(FocusBehavior::ACCESSIBLE_ONLY);
}
-views::Label* NotificationAdHeaderView::CreateTitleLabel() {
- views::Label* label = new views::Label();
+std::unique_ptr NotificationAdHeaderView::CreateTitleLabel() {
+ auto label = std::make_unique();
const gfx::FontList font_list({kTitleFontName}, kTitleFontStyle,
kTitleFontSize, kTitleFontWeight);
diff --git a/browser/ui/views/brave_ads/notification_ad_header_view.h b/browser/ui/views/brave_ads/notification_ad_header_view.h
index d42f9af79b22..7e9c741b2787 100644
--- a/browser/ui/views/brave_ads/notification_ad_header_view.h
+++ b/browser/ui/views/brave_ads/notification_ad_header_view.h
@@ -6,6 +6,8 @@
#ifndef BRAVE_BROWSER_UI_VIEWS_BRAVE_ADS_NOTIFICATION_AD_HEADER_VIEW_H_
#define BRAVE_BROWSER_UI_VIEWS_BRAVE_ADS_NOTIFICATION_AD_HEADER_VIEW_H_
+#include
+
#include "ui/base/metadata/metadata_header_macros.h"
#include "ui/gfx/text_constants.h"
#include "ui/views/view.h"
@@ -19,8 +21,7 @@ namespace brave_ads {
class NotificationAdHeaderView : public views::View {
METADATA_HEADER(NotificationAdHeaderView, views::View)
public:
-
- explicit NotificationAdHeaderView(const int width);
+ NotificationAdHeaderView();
NotificationAdHeaderView(const NotificationAdHeaderView&) = delete;
NotificationAdHeaderView& operator=(const NotificationAdHeaderView&) = delete;
@@ -41,9 +42,9 @@ class NotificationAdHeaderView : public views::View {
void OnThemeChanged() override;
private:
- void CreateView(const int width);
+ void CreateView();
- views::Label* CreateTitleLabel();
+ std::unique_ptr CreateTitleLabel();
void UpdateTitleLabel();
raw_ptr title_label_ = nullptr;
diff --git a/browser/ui/views/brave_ads/notification_ad_popup_widget.cc b/browser/ui/views/brave_ads/notification_ad_popup_widget.cc
index 6f7b8e4b18ce..c7be3d9143cf 100644
--- a/browser/ui/views/brave_ads/notification_ad_popup_widget.cc
+++ b/browser/ui/views/brave_ads/notification_ad_popup_widget.cc
@@ -28,9 +28,9 @@ void NotificationAdPopupWidget::InitWidget(
gfx::NativeView browser_native_view) {
CHECK(delegate);
- views::Widget::InitParams params;
+ views::Widget::InitParams params(
+ views::Widget::InitParams::TYPE_WINDOW_FRAMELESS);
params.delegate = delegate;
- params.type = views::Widget::InitParams::TYPE_WINDOW_FRAMELESS;
params.opacity = views::Widget::InitParams::WindowOpacity::kTranslucent;
params.bounds = bounds;
diff --git a/browser/ui/views/brave_ads/text_notification_ad_view.cc b/browser/ui/views/brave_ads/text_notification_ad_view.cc
index 52a579799eda..4d58567335a6 100644
--- a/browser/ui/views/brave_ads/text_notification_ad_view.cc
+++ b/browser/ui/views/brave_ads/text_notification_ad_view.cc
@@ -6,6 +6,7 @@
#include "brave/browser/ui/views/brave_ads/text_notification_ad_view.h"
#include
+#include
#include "brave/browser/ui/brave_ads/notification_ad.h"
#include "brave/browser/ui/views/brave_ads/insets_util.h"
@@ -104,34 +105,43 @@ void TextNotificationAdView::CreateView(const NotificationAd& notification_ad) {
views::BoxLayout::Orientation::kVertical, gfx::Insets()));
// Header
- NotificationAdHeaderView* header_view = CreateHeaderView(notification_ad);
- NotificationAdControlButtonsView* control_buttons_view =
- new NotificationAdControlButtonsView(*this);
- header_view->AddChildView(control_buttons_view);
- AddChildView(header_view);
-
- // Container
- views::View* container_view = new views::View();
- views::BoxLayout* box_layout =
- container_view->SetLayoutManager(std::make_unique(
+ auto header_container_view = std::make_unique();
+ views::BoxLayout* header_layout = header_container_view->SetLayoutManager(
+ std::make_unique(
+ views::BoxLayout::Orientation::kHorizontal, gfx::Insets()));
+ NotificationAdHeaderView* header_view =
+ header_container_view->AddChildView(CreateHeaderView(notification_ad));
+ header_container_view->AddChildView(
+ std::make_unique(*this));
+
+ header_layout->SetFlexForView(header_view, 1);
+ header_layout->set_cross_axis_alignment(
+ views::BoxLayout::CrossAxisAlignment::kEnd);
+
+ AddChildView(std::move(header_container_view));
+
+ // Body
+ auto body_container_view = std::make_unique();
+ views::BoxLayout* body_layout =
+ body_container_view->SetLayoutManager(std::make_unique(
views::BoxLayout::Orientation::kHorizontal,
kContainerViewInsideBorderInsets));
- box_layout->set_cross_axis_alignment(
+ body_layout->set_cross_axis_alignment(
views::BoxLayout::CrossAxisAlignment::kStart);
- AddChildView(container_view);
+ views::View* body_view =
+ body_container_view->AddChildView(CreateBodyView(notification_ad));
+ body_layout->SetFlexForView(body_view, 1);
- // Body
- views::View* body_view = CreateBodyView(notification_ad);
- container_view->AddChildView(body_view);
- box_layout->SetFlexForView(body_view, 1);
+ AddChildView(std::move(body_container_view));
}
-NotificationAdHeaderView* TextNotificationAdView::CreateHeaderView(
+std::unique_ptr
+TextNotificationAdView::CreateHeaderView(
const NotificationAd& notification_ad) {
- const int width = View::width();
- NotificationAdHeaderView* view = new NotificationAdHeaderView(width);
+ std::unique_ptr view =
+ std::make_unique();
view->SetTitle(notification_ad.title());
view->SetTitleElideBehavior(kTitleElideBehavior);
@@ -139,9 +149,9 @@ NotificationAdHeaderView* TextNotificationAdView::CreateHeaderView(
return view;
}
-views::View* TextNotificationAdView::CreateBodyView(
+std::unique_ptr TextNotificationAdView::CreateBodyView(
const NotificationAd& notification_ad) {
- views::View* view = new views::View();
+ auto view = std::make_unique();
view->SetLayoutManager(std::make_unique(
views::BoxLayout::Orientation::kVertical, gfx::Insets()));
@@ -149,17 +159,16 @@ views::View* TextNotificationAdView::CreateBodyView(
view->SetBorder(views::CreateEmptyBorder(kBodyViewBorderInsets));
CHECK(!body_label_);
- body_label_ = CreateBodyLabel(notification_ad);
- view->AddChildView(body_label_.get());
+ body_label_ = view->AddChildView(CreateBodyLabel(notification_ad));
return view;
}
-views::Label* TextNotificationAdView::CreateBodyLabel(
+std::unique_ptr TextNotificationAdView::CreateBodyLabel(
const NotificationAd& notification_ad) {
const std::u16string body = notification_ad.body();
- views::Label* label = new views::Label(body);
+ auto label = std::make_unique(body);
const gfx::FontList font_list({kBodyFontName}, kBodyFontStyle, kBodyFontSize,
kBodyFontWeight);
diff --git a/browser/ui/views/brave_ads/text_notification_ad_view.h b/browser/ui/views/brave_ads/text_notification_ad_view.h
index c1b8cd905cb4..96162f188f6a 100644
--- a/browser/ui/views/brave_ads/text_notification_ad_view.h
+++ b/browser/ui/views/brave_ads/text_notification_ad_view.h
@@ -6,6 +6,8 @@
#ifndef BRAVE_BROWSER_UI_VIEWS_BRAVE_ADS_TEXT_NOTIFICATION_AD_VIEW_H_
#define BRAVE_BROWSER_UI_VIEWS_BRAVE_ADS_TEXT_NOTIFICATION_AD_VIEW_H_
+#include
+
#include "base/memory/raw_ptr.h"
#include "brave/browser/ui/views/brave_ads/notification_ad_view.h"
@@ -41,11 +43,13 @@ class TextNotificationAdView : public NotificationAdView {
void CreateView(const NotificationAd& notification_ad);
- NotificationAdHeaderView* CreateHeaderView(
+ std::unique_ptr CreateHeaderView(
const NotificationAd& notification_ad);
- views::View* CreateBodyView(const NotificationAd& notification_ad);
- views::Label* CreateBodyLabel(const NotificationAd& notification_ad);
+ std::unique_ptr CreateBodyView(
+ const NotificationAd& notification_ad);
+ std::unique_ptr CreateBodyLabel(
+ const NotificationAd& notification_ad);
void UpdateBodyLabel();
raw_ptr body_label_ = nullptr; // NOT OWNED
diff --git a/browser/ui/views/brave_layout_provider.cc b/browser/ui/views/brave_layout_provider.cc
index 410c9e4c320c..e75e68dedcf2 100644
--- a/browser/ui/views/brave_layout_provider.cc
+++ b/browser/ui/views/brave_layout_provider.cc
@@ -21,3 +21,11 @@ int BraveLayoutProvider::GetCornerRadiusMetric(views::Emphasis emphasis,
return 4;
}
}
+
+int BraveLayoutProvider::GetDistanceMetric(int metric) const {
+ if (metric == views::DISTANCE_CONTROL_VERTICAL_TEXT_PADDING) {
+ return 8;
+ }
+
+ return ChromeLayoutProvider::GetDistanceMetric(metric);
+}
diff --git a/browser/ui/views/brave_layout_provider.h b/browser/ui/views/brave_layout_provider.h
index bad52f6afc21..5326383c0e7e 100644
--- a/browser/ui/views/brave_layout_provider.h
+++ b/browser/ui/views/brave_layout_provider.h
@@ -17,6 +17,7 @@ class BraveLayoutProvider : public ChromeLayoutProvider {
int GetCornerRadiusMetric(views::Emphasis emphasis,
const gfx::Size& size = gfx::Size()) const override;
+ int GetDistanceMetric(int metric) const override;
};
#endif // BRAVE_BROWSER_UI_VIEWS_BRAVE_LAYOUT_PROVIDER_H_
diff --git a/browser/ui/views/brave_tab_search_bubble_host.cc b/browser/ui/views/brave_tab_search_bubble_host.cc
index 43f4039c26b6..0d901967a199 100644
--- a/browser/ui/views/brave_tab_search_bubble_host.cc
+++ b/browser/ui/views/brave_tab_search_bubble_host.cc
@@ -49,7 +49,7 @@ bool BraveTabSearchBubbleHost::ShowTabSearchBubble(
// In this case, anchor bubble onto the screen edge. we should also reparent
// native widget, as vertical tab's widget could be hidden.
gfx::Rect bounds = anchor_widget->GetWorkAreaBoundsInScreen();
- int offset = GetLayoutConstant(TABSTRIP_REGION_VIEW_CONTROL_PADDING);
+ int offset = GetLayoutConstant(TAB_PRE_TITLE_PADDING);
bubble_delegate->SetAnchorView(nullptr);
bubble_delegate->set_parent_window(anchor_widget->GetNativeView());
bubble_delegate->SetAnchorRect(
diff --git a/browser/ui/views/brave_tooltips/brave_tooltip_popup.cc b/browser/ui/views/brave_tooltips/brave_tooltip_popup.cc
index f2bcceca216d..9b9c4a0c91d3 100644
--- a/browser/ui/views/brave_tooltips/brave_tooltip_popup.cc
+++ b/browser/ui/views/brave_tooltips/brave_tooltip_popup.cc
@@ -350,9 +350,9 @@ gfx::Insets BraveTooltipPopup::GetShadowMargin() const {
void BraveTooltipPopup::CreateWidgetView() {
// The widget instance is owned by its NativeWidget. For more details see
// ui/views/widget/widget.h
- views::Widget::InitParams params;
+ views::Widget::InitParams params(
+ views::Widget::InitParams::TYPE_WINDOW_FRAMELESS);
params.delegate = this;
- params.type = views::Widget::InitParams::TYPE_WINDOW_FRAMELESS;
params.z_order = ui::ZOrderLevel::kFloatingWindow;
params.opacity = views::Widget::InitParams::WindowOpacity::kTranslucent;
params.shadow_type = views::Widget::InitParams::ShadowType::kNone;
diff --git a/browser/ui/views/brave_tooltips/brave_tooltip_view.cc b/browser/ui/views/brave_tooltips/brave_tooltip_view.cc
index 1c373d570835..eb3cc70df7cf 100644
--- a/browser/ui/views/brave_tooltips/brave_tooltip_view.cc
+++ b/browser/ui/views/brave_tooltips/brave_tooltip_view.cc
@@ -38,7 +38,7 @@ constexpr int kBodyMaximumLines = 4;
constexpr gfx::Size kTooltipSize(434 + 15, 104 + 15);
constexpr gfx::Size kTitleSize(200, 20);
-constexpr gfx::Size kBodySize(279, 58);
+constexpr gfx::Size kBodySize(279, 72);
constexpr gfx::Size kButtonSize(82, 24);
constexpr char kFontName[] = "Roboto";
@@ -182,6 +182,7 @@ void BraveTooltipView::CreateView() {
views::View* container_view = new views::View();
container_view->SetLayoutManager(std::make_unique(
views::BoxLayout::Orientation::kVertical, gfx::Insets(), 4));
+ container_view->SetPreferredSize(kBodySize);
AddChildView(container_view);
// Header
@@ -274,6 +275,7 @@ void BraveTooltipView::UpdateTitleLabelColors() {
views::View* BraveTooltipView::CreateButtonView() {
views::View* view = new views::View();
+ view->SetPreferredSize(kButtonSize);
view->SetLayoutManager(std::make_unique(
views::BoxLayout::Orientation::kVertical, gfx::Insets(), 7));
diff --git a/browser/ui/views/frame/brave_browser_frame_view_linux_native.cc b/browser/ui/views/frame/brave_browser_frame_view_linux_native.cc
index a081609115f2..c9af9c4bade6 100644
--- a/browser/ui/views/frame/brave_browser_frame_view_linux_native.cc
+++ b/browser/ui/views/frame/brave_browser_frame_view_linux_native.cc
@@ -34,7 +34,7 @@ ui::NavButtonProvider::ButtonState ButtonStateToNavButtonProviderState(
case views::Button::STATE_COUNT:
default:
- NOTREACHED();
+ NOTREACHED_IN_MIGRATION();
return ui::NavButtonProvider::ButtonState::kNormal;
}
}
@@ -121,7 +121,7 @@ views::Button* BraveBrowserFrameViewLinuxNative::FrameButtonToButton(
case views::FrameButton::kClose:
return close_button();
}
- NOTREACHED();
+ NOTREACHED_IN_MIGRATION();
return nullptr;
}
diff --git a/browser/ui/views/frame/brave_browser_view.cc b/browser/ui/views/frame/brave_browser_view.cc
index d82cda19c415..b279d623a1c8 100644
--- a/browser/ui/views/frame/brave_browser_view.cc
+++ b/browser/ui/views/frame/brave_browser_view.cc
@@ -248,15 +248,12 @@ BraveBrowserView::BraveBrowserView(std::unique_ptr browser)
}
pref_change_registrar_.Init(GetProfile()->GetPrefs());
- if (!WindowFrameUtil::IsWindowsTabSearchCaptionButtonEnabled(
- browser_.get())) {
- pref_change_registrar_.Add(
- kTabsSearchShow,
- base::BindRepeating(&BraveBrowserView::OnPreferenceChanged,
- base::Unretained(this)));
- // Show the correct value in settings on initial start
- UpdateSearchTabsButtonState();
- }
+ pref_change_registrar_.Add(
+ kTabsSearchShow,
+ base::BindRepeating(&BraveBrowserView::OnPreferenceChanged,
+ base::Unretained(this)));
+ // Show the correct value in settings on initial start
+ UpdateSearchTabsButtonState();
auto* rewards_service =
brave_rewards::RewardsServiceFactory::GetForProfile(browser_->profile());
@@ -1109,8 +1106,7 @@ void BraveBrowserView::OnThemeChanged() {
}
TabSearchBubbleHost* BraveBrowserView::GetTabSearchBubbleHost() {
- if (!tabs::utils::ShouldShowVerticalTabs(browser()) ||
- WindowFrameUtil::IsWindowsTabSearchCaptionButtonEnabled(browser())) {
+ if (!tabs::utils::ShouldShowVerticalTabs(browser())) {
return BrowserView::GetTabSearchBubbleHost();
}
diff --git a/browser/ui/views/frame/brave_browser_view_layout.cc b/browser/ui/views/frame/brave_browser_view_layout.cc
index d6e38f650e6a..05e014c42349 100644
--- a/browser/ui/views/frame/brave_browser_view_layout.cc
+++ b/browser/ui/views/frame/brave_browser_view_layout.cc
@@ -16,11 +16,11 @@
#include "chrome/browser/ui/browser.h"
#include "chrome/browser/ui/exclusive_access/exclusive_access_manager.h"
#include "chrome/browser/ui/exclusive_access/fullscreen_controller.h"
-#include "chrome/browser/ui/side_panel/side_panel_ui.h"
#include "chrome/browser/ui/views/bookmarks/bookmark_bar_view.h"
#include "chrome/browser/ui/views/frame/browser_view.h"
#include "chrome/browser/ui/views/frame/browser_view_layout_delegate.h"
#include "chrome/browser/ui/views/infobars/infobar_container_view.h"
+#include "chrome/browser/ui/views/side_panel/side_panel_ui.h"
#include "components/bookmarks/common/bookmark_pref_names.h"
#include "ui/views/border.h"
#include "ui/views/view_class_properties.h"
diff --git a/browser/ui/views/frame/brave_non_client_hit_test_helper.cc b/browser/ui/views/frame/brave_non_client_hit_test_helper.cc
index ba4d1c37b523..7ed3b7678e0b 100644
--- a/browser/ui/views/frame/brave_non_client_hit_test_helper.cc
+++ b/browser/ui/views/frame/brave_non_client_hit_test_helper.cc
@@ -19,16 +19,10 @@ int NonClientHitTest(BrowserView* browser_view,
}
const auto children_count = browser_view->toolbar()->children().size();
- int container_view_index = 0;
- if (features::IsChromeRefresh2023()) {
- // Upstream has two more children |background_view_left_| and
- // |background_view_right_| behind the container view.
- DCHECK_EQ(3u, children_count);
- container_view_index = 2;
- } else {
- // All toolbar elements are children of the container view in the toolbar.
- DCHECK_EQ(1u, children_count);
- }
+ // Upstream has two more children |background_view_left_| and
+ // |background_view_right_| behind the container view.
+ DCHECK_EQ(3u, children_count);
+ const int container_view_index = 2;
int hit_test_result = views::GetHitTestComponent(
browser_view->toolbar()->children()[container_view_index],
@@ -91,7 +85,7 @@ int NonClientHitTest(BrowserView* browser_view,
return HTBOTTOM;
}
- NOTREACHED()
+ NOTREACHED_IN_MIGRATION()
<< "This shouldn't happen. Maybe due to inclusive/exclusive comparison?";
return hit_test_result;
}
diff --git a/browser/ui/views/frame/brave_non_client_hit_test_helper_browsertest.cc b/browser/ui/views/frame/brave_non_client_hit_test_helper_browsertest.cc
index 771453beead1..6a53931ecf00 100644
--- a/browser/ui/views/frame/brave_non_client_hit_test_helper_browsertest.cc
+++ b/browser/ui/views/frame/brave_non_client_hit_test_helper_browsertest.cc
@@ -20,9 +20,11 @@ using BraveNonClientHitTestHelperBrowserTest = InProcessBrowserTest;
IN_PROC_BROWSER_TEST_F(BraveNonClientHitTestHelperBrowserTest, Toolbar) {
auto* browser_view = static_cast(browser()->window());
auto* toolbar = browser_view->toolbar();
- ASSERT_EQ(1u, toolbar->children().size());
- // Container view that has all toolbar elements as children
- auto* toolbar_container = toolbar->children()[0].get();
+ // Upstream has two more children |background_view_left_| and
+ // |background_view_right_| behind the container view.
+ ASSERT_EQ(3u, toolbar->children().size());
+ const int container_view_index = 2;
+ auto* toolbar_container = toolbar->children()[container_view_index].get();
auto* frame_view = browser_view->frame()->GetFrameView();
for (views::View* view : toolbar_container->GetChildrenInZOrder()) {
diff --git a/browser/ui/views/frame/brave_tabs_search_button_browsertest.cc b/browser/ui/views/frame/brave_tabs_search_button_browsertest.cc
index 20170e1a8cb7..4c2550c45301 100644
--- a/browser/ui/views/frame/brave_tabs_search_button_browsertest.cc
+++ b/browser/ui/views/frame/brave_tabs_search_button_browsertest.cc
@@ -34,24 +34,15 @@ IN_PROC_BROWSER_TEST_F(BraveTabsSearchButtonTest, HideShowSettingTest) {
EXPECT_TRUE(prefs->GetBoolean(kTabsSearchShow));
views::View* button = nullptr;
- if (WindowFrameUtil::IsWindowsTabSearchCaptionButtonEnabled(browser())) {
- auto* frame_view = BrowserView::GetBrowserViewForBrowser(browser())
- ->frame()
- ->GetFrameView();
- auto* tab_search_bubble_host = frame_view->GetTabSearchBubbleHost();
- ASSERT_NE(nullptr, tab_search_bubble_host);
- button = tab_search_bubble_host->button();
- } else {
- auto* browser_view = BrowserView::GetBrowserViewForBrowser(browser());
- auto* tab_search_container =
- browser_view->tab_strip_region_view()->tab_search_container();
- if (!tab_search_container) {
- return;
- }
- button = browser_view->tab_strip_region_view()
- ->tab_search_container()
- ->tab_search_button();
+ auto* browser_view = BrowserView::GetBrowserViewForBrowser(browser());
+ auto* tab_search_container =
+ browser_view->tab_strip_region_view()->tab_search_container();
+ if (!tab_search_container) {
+ return;
}
+ button = browser_view->tab_strip_region_view()
+ ->tab_search_container()
+ ->tab_search_button();
ASSERT_NE(nullptr, button);
EXPECT_TRUE(button->GetVisible());
diff --git a/browser/ui/views/frame/vertical_tab_strip_region_view.cc b/browser/ui/views/frame/vertical_tab_strip_region_view.cc
index f2ee44265480..7e3b18c20d8e 100644
--- a/browser/ui/views/frame/vertical_tab_strip_region_view.cc
+++ b/browser/ui/views/frame/vertical_tab_strip_region_view.cc
@@ -480,8 +480,6 @@ class VerticalTabStripRegionView::HeaderView : public views::View {
void UpdateTabSearchButtonVisibility() {
tab_search_button_->SetVisible(
- !WindowFrameUtil::IsWindowsTabSearchCaptionButtonEnabled(
- region_view_->browser()) &&
tab_search_button_->GetPreferredSize().width() +
toggle_button_->GetPreferredSize().width() <=
width());
diff --git a/browser/ui/views/frame/vertical_tab_strip_widget_delegate_view.cc b/browser/ui/views/frame/vertical_tab_strip_widget_delegate_view.cc
index 07be8087c2f3..8be95e2d5863 100644
--- a/browser/ui/views/frame/vertical_tab_strip_widget_delegate_view.cc
+++ b/browser/ui/views/frame/vertical_tab_strip_widget_delegate_view.cc
@@ -51,11 +51,10 @@ VerticalTabStripWidgetDelegateView* VerticalTabStripWidgetDelegateView::Create(
auto* delegate_view =
new VerticalTabStripWidgetDelegateView(browser_view, host_view);
- views::Widget::InitParams params;
+ views::Widget::InitParams params(views::Widget::InitParams::TYPE_CONTROL);
params.delegate = delegate_view;
params.parent = browser_view->GetWidget()->GetNativeView();
- params.type = views::Widget::InitParams::TYPE_CONTROL;
// We need this to pass the key events to the top level widget. i.e. we should
// not get focus.
params.activatable = views::Widget::InitParams::Activatable::kNo;
diff --git a/browser/ui/views/page_action/brave_page_action_icon_container_view.cc b/browser/ui/views/page_action/brave_page_action_icon_container_view.cc
index 8bc7b55e571a..75b46868233e 100644
--- a/browser/ui/views/page_action/brave_page_action_icon_container_view.cc
+++ b/browser/ui/views/page_action/brave_page_action_icon_container_view.cc
@@ -11,6 +11,7 @@
#include "brave/components/playlist/common/features.h"
#include "brave/components/speedreader/common/buildflags/buildflags.h"
#include "chrome/browser/profiles/profile.h"
+#include "chrome/browser/sharing_hub/sharing_hub_features.h"
#include "chrome/browser/ui/browser.h"
#include "chrome/browser/ui/views/page_action/page_action_icon_params.h"
#include "ui/base/metadata/metadata_impl_macros.h"
@@ -32,6 +33,11 @@ PageActionIconParams& ModifyIconParamsForBrave(PageActionIconParams& params) {
return params;
}
+ if (sharing_hub::HasPageAction(params.browser->profile(),
+ params.browser->is_type_popup())) {
+ params.types_enabled.push_back(PageActionIconType::kSharingHub);
+ }
+
params.types_enabled.insert(
base::ranges::find(params.types_enabled, PageActionIconType::kSharingHub),
brave::kWaybackMachineActionIconType);
diff --git a/browser/ui/views/page_action/wayback_machine_action_icon_view.cc b/browser/ui/views/page_action/wayback_machine_action_icon_view.cc
index 7f27c2834f70..ba2b28520ff8 100644
--- a/browser/ui/views/page_action/wayback_machine_action_icon_view.cc
+++ b/browser/ui/views/page_action/wayback_machine_action_icon_view.cc
@@ -194,7 +194,7 @@ void WaybackMachineActionIconView::UpdateImpl() {
SetCommandEnabled(true);
break;
default:
- NOTREACHED();
+ NOTREACHED_IN_MIGRATION();
}
// We should update icon also as each state could has different colored badge
diff --git a/browser/ui/views/playlist/playlist_action_dialogs.cc b/browser/ui/views/playlist/playlist_action_dialogs.cc
index 4b54652e7eb5..5caf1aecdd46 100644
--- a/browser/ui/views/playlist/playlist_action_dialogs.cc
+++ b/browser/ui/views/playlist/playlist_action_dialogs.cc
@@ -15,9 +15,9 @@
#include "brave/components/playlist/browser/playlist_service.h"
#include "brave/components/playlist/browser/playlist_tab_helper.h"
#include "chrome/browser/ui/browser_finder.h"
-#include "chrome/browser/ui/side_panel/side_panel_ui.h"
#include "chrome/browser/ui/singleton_tabs.h"
#include "chrome/browser/ui/views/frame/browser_view.h"
+#include "chrome/browser/ui/views/side_panel/side_panel_ui.h"
#include "ui/base/metadata/metadata_impl_macros.h"
#include "ui/views/border.h"
#include "ui/views/controls/button/label_button.h"
@@ -434,7 +434,7 @@ void PlaylistMoveDialog::OnSavedItemsChanged(
} else if (mode_ == Mode::kCreate) {
EnterCreatePlaylistMode();
} else {
- NOTREACHED() << "If new mode was added, please revisit this.";
+ NOTREACHED_IN_MIGRATION() << "If new mode was added, please revisit this.";
}
}
diff --git a/browser/ui/views/side_panel/ai_chat/ai_chat_side_panel_utils_views.cc b/browser/ui/views/side_panel/ai_chat/ai_chat_side_panel_utils_views.cc
index ba1c3646af56..3af9f5c7060f 100644
--- a/browser/ui/views/side_panel/ai_chat/ai_chat_side_panel_utils_views.cc
+++ b/browser/ui/views/side_panel/ai_chat/ai_chat_side_panel_utils_views.cc
@@ -4,11 +4,10 @@
// You can obtain one at https://mozilla.org/MPL/2.0/.
#include "brave/browser/ui/side_panel/ai_chat/ai_chat_side_panel_utils.h"
-
#include "chrome/browser/ui/browser.h"
#include "chrome/browser/ui/browser_window.h"
-#include "chrome/browser/ui/side_panel/side_panel_ui.h"
#include "chrome/browser/ui/views/frame/browser_view.h"
+#include "chrome/browser/ui/views/side_panel/side_panel_ui.h"
namespace ai_chat {
diff --git a/browser/ui/views/side_panel/bookmarks/brave_bookmarks_side_panel_coordinator.cc b/browser/ui/views/side_panel/bookmarks/brave_bookmarks_side_panel_coordinator.cc
index 23e5a065c2cd..10354846ea6d 100644
--- a/browser/ui/views/side_panel/bookmarks/brave_bookmarks_side_panel_coordinator.cc
+++ b/browser/ui/views/side_panel/bookmarks/brave_bookmarks_side_panel_coordinator.cc
@@ -26,8 +26,6 @@ void BraveBookmarksSidePanelCoordinator::CreateAndRegisterEntry(
SidePanelRegistry* global_registry) {
global_registry->Register(std::make_unique(
SidePanelEntry::Id::kBookmarks,
- l10n_util::GetStringUTF16(IDS_BOOKMARK_MANAGER_TITLE),
- ui::ImageModel::FromVectorIcon(omnibox::kStarIcon, ui::kColorIcon),
base::BindRepeating(
&BraveBookmarksSidePanelCoordinator::CreateBookmarksPanelView,
base::Unretained(this))));
diff --git a/browser/ui/views/side_panel/brave_bookmarks_side_panel_view.cc b/browser/ui/views/side_panel/brave_bookmarks_side_panel_view.cc
index b6375adff81a..c3021336a628 100644
--- a/browser/ui/views/side_panel/brave_bookmarks_side_panel_view.cc
+++ b/browser/ui/views/side_panel/brave_bookmarks_side_panel_view.cc
@@ -12,10 +12,10 @@
#include "brave/components/vector_icons/vector_icons.h"
#include "brave/grit/brave_generated_resources.h"
#include "brave/grit/brave_theme_resources.h"
-#include "chrome/browser/ui/side_panel/side_panel_ui.h"
#include "chrome/browser/ui/singleton_tabs.h"
#include "chrome/browser/ui/views/side_panel/bookmarks/bookmarks_side_panel_coordinator.h"
#include "chrome/browser/ui/views/side_panel/read_later_side_panel_web_view.h"
+#include "chrome/browser/ui/views/side_panel/side_panel_ui.h"
#include "chrome/common/webui_url_constants.h"
#include "chrome/grit/generated_resources.h"
#include "ui/base/l10n/l10n_util.h"
@@ -66,10 +66,6 @@ class BookmarksSidePanelHeaderView : public views::View {
header_label->SetFontList(gfx::FontList("Poppins, Semi-Bold 16px"));
header_label->SetEnabledColorId(kColorSidebarPanelHeaderTitle);
header_label->SetAutoColorReadabilityEnabled(false);
- header_label->SetProperty(
- views::kFlexBehaviorKey,
- views::FlexSpecification(views::MinimumFlexSizeRule::kPreferred,
- views::MaximumFlexSizeRule::kPreferred));
auto* spacer = AddChildView(std::make_unique());
spacer->SetProperty(
views::kFlexBehaviorKey,
@@ -125,6 +121,16 @@ class BookmarksSidePanelHeaderView : public views::View {
kHeaderButtonSize));
}
+ gfx::Size CalculatePreferredSize(
+ const views::SizeBounds& available_size) const override {
+ if (available_size.is_fully_bounded()) {
+ return {available_size.width().value(),
+ BraveSidePanelViewBase::kHeaderHeight};
+ }
+
+ return View::CalculatePreferredSize(available_size);
+ }
+
~BookmarksSidePanelHeaderView() override = default;
BookmarksSidePanelHeaderView(const BookmarksSidePanelHeaderView&) = delete;
BookmarksSidePanelHeaderView& operator=(const BookmarksSidePanelHeaderView&) =
diff --git a/browser/ui/views/side_panel/brave_read_later_side_panel_view.cc b/browser/ui/views/side_panel/brave_read_later_side_panel_view.cc
index 29eb4eb55f58..e6acd9d2b0ea 100644
--- a/browser/ui/views/side_panel/brave_read_later_side_panel_view.cc
+++ b/browser/ui/views/side_panel/brave_read_later_side_panel_view.cc
@@ -13,8 +13,8 @@
#include "brave/grit/brave_generated_resources.h"
#include "brave/grit/brave_theme_resources.h"
#include "chrome/browser/ui/browser.h"
-#include "chrome/browser/ui/side_panel/side_panel_ui.h"
#include "chrome/browser/ui/views/side_panel/read_later_side_panel_web_view.h"
+#include "chrome/browser/ui/views/side_panel/side_panel_ui.h"
#include "ui/base/l10n/l10n_util.h"
#include "ui/base/metadata/metadata_header_macros.h"
#include "ui/base/metadata/metadata_impl_macros.h"
@@ -63,10 +63,6 @@ class ReadLaterSidePanelHeaderView : public views::View {
header_label->SetFontList(gfx::FontList("Poppins, Semi-Bold 16px"));
header_label->SetEnabledColorId(kColorSidebarPanelHeaderTitle);
header_label->SetAutoColorReadabilityEnabled(false);
- header_label->SetProperty(
- views::kFlexBehaviorKey,
- views::FlexSpecification(views::MinimumFlexSizeRule::kPreferred,
- views::MaximumFlexSizeRule::kPreferred));
AddChildView(std::make_unique())
->SetProperty(
@@ -98,6 +94,16 @@ class ReadLaterSidePanelHeaderView : public views::View {
kHeaderButtonSize));
}
+ gfx::Size CalculatePreferredSize(
+ const views::SizeBounds& available_size) const override {
+ if (available_size.is_fully_bounded()) {
+ return {available_size.width().value(),
+ BraveSidePanelViewBase::kHeaderHeight};
+ }
+
+ return View::CalculatePreferredSize(available_size);
+ }
+
~ReadLaterSidePanelHeaderView() override = default;
ReadLaterSidePanelHeaderView(const ReadLaterSidePanelHeaderView&) = delete;
ReadLaterSidePanelHeaderView& operator=(const ReadLaterSidePanelHeaderView&) =
diff --git a/browser/ui/views/side_panel/brave_side_panel_coordinator.cc b/browser/ui/views/side_panel/brave_side_panel_coordinator.cc
index 617b75971c75..bbb84b0aa2a7 100644
--- a/browser/ui/views/side_panel/brave_side_panel_coordinator.cc
+++ b/browser/ui/views/side_panel/brave_side_panel_coordinator.cc
@@ -11,7 +11,10 @@
#include "brave/browser/ui/sidebar/sidebar_service_factory.h"
#include "brave/browser/ui/sidebar/sidebar_utils.h"
#include "brave/browser/ui/views/frame/brave_browser_view.h"
+#include "brave/browser/ui/views/toolbar/brave_toolbar_view.h"
+#include "brave/browser/ui/views/toolbar/side_panel_button.h"
#include "brave/components/sidebar/browser/sidebar_service.h"
+#include "brave/grit/brave_generated_resources.h"
#include "chrome/browser/profiles/profile.h"
#include "chrome/browser/ui/views/side_panel/side_panel_entry.h"
@@ -31,32 +34,12 @@ std::optional GetDefaultEntryId(Profile* profile) {
BraveSidePanelCoordinator::~BraveSidePanelCoordinator() = default;
void BraveSidePanelCoordinator::Show(
- std::optional entry_id,
+ SidePanelEntry::Key entry_key,
std::optional open_trigger) {
- // If user clicks sidebar toolbar button, |entry_id| is null.
- // Then, choose Brave's own default, and exclude items that user has removed
- // from sidebar. If none are enabled, do nothing.
- auto* profile = browser_view_->GetProfile();
- if (!entry_id) {
- // Early return as user removes all default panel entries.
- auto default_entry_id = GetDefaultEntryId(profile);
- if (!default_entry_id.has_value()) {
- return;
- }
- entry_id = sidebar::GetLastUsedSidePanel(browser_view_->browser());
- if (!entry_id.has_value()) {
- // Use default pick when we don't have lastly used panel.
- entry_id = default_entry_id;
- }
- }
-
- // Cache lastly shown entry id to make it persist across the re-launch.
- if (entry_id) {
- sidebar::SetLastUsedSidePanel(browser_view_->GetProfile()->GetPrefs(),
- *entry_id);
- }
+ sidebar::SetLastUsedSidePanel(browser_view_->GetProfile()->GetPrefs(),
+ entry_key.id());
- SidePanelCoordinator::Show(entry_id, open_trigger);
+ SidePanelCoordinator::Show(entry_key, open_trigger);
}
void BraveSidePanelCoordinator::OnTabStripModelChanged(
@@ -105,6 +88,46 @@ std::unique_ptr BraveSidePanelCoordinator::CreateHeader() {
return header;
}
+void BraveSidePanelCoordinator::Toggle() {
+ if (IsSidePanelShowing() &&
+ !browser_view_->unified_side_panel()->IsClosing()) {
+ Close();
+ } else if (const auto key = GetLastActiveEntryKey()) {
+ Show(*key, SidePanelUtil::SidePanelOpenTrigger::kToolbarButton);
+ }
+}
+
+void BraveSidePanelCoordinator::Toggle(
+ SidePanelEntryKey key,
+ SidePanelUtil::SidePanelOpenTrigger open_trigger) {
+ SidePanelCoordinator::Toggle(key, open_trigger);
+}
+
+void BraveSidePanelCoordinator::OnViewVisibilityChanged(
+ views::View* observed_view,
+ views::View* starting_from) {
+ UpdateToolbarButtonHighlight(observed_view->GetVisible());
+ SidePanelCoordinator::OnViewVisibilityChanged(observed_view, starting_from);
+}
+
+std::optional
+BraveSidePanelCoordinator::GetLastActiveEntryKey() const {
+ // Don't give last active if user removed all panel items.
+ const auto default_entry_id = GetDefaultEntryId(browser_view_->GetProfile());
+ if (!default_entry_id) {
+ return std::nullopt;
+ }
+
+ // Use last used one from previous launch instead of default entry if we have
+ // it.
+ if (const auto entry_id =
+ sidebar::GetLastUsedSidePanel(browser_view_->browser())) {
+ return SidePanelEntryKey(*entry_id);
+ }
+
+ return SidePanelEntryKey(*default_entry_id);
+}
+
void BraveSidePanelCoordinator::UpdateToolbarButtonHighlight(
bool side_panel_visible) {
// Workaround to prevent crashing while window closing.
@@ -114,5 +137,12 @@ void BraveSidePanelCoordinator::UpdateToolbarButtonHighlight(
return;
}
- SidePanelCoordinator::UpdateToolbarButtonHighlight(side_panel_visible);
+ auto* brave_toolbar =
+ static_cast(browser_view_->toolbar());
+ if (auto* side_panel_button = brave_toolbar->side_panel_button()) {
+ side_panel_button->SetHighlighted(side_panel_visible);
+ side_panel_button->SetTooltipText(l10n_util::GetStringUTF16(
+ side_panel_visible ? IDS_TOOLTIP_SIDEBAR_HIDE
+ : IDS_TOOLTIP_SIDEBAR_SHOW));
+ }
}
diff --git a/browser/ui/views/side_panel/brave_side_panel_coordinator.h b/browser/ui/views/side_panel/brave_side_panel_coordinator.h
index 876cdfea11fb..a3c6519a4c04 100644
--- a/browser/ui/views/side_panel/brave_side_panel_coordinator.h
+++ b/browser/ui/views/side_panel/brave_side_panel_coordinator.h
@@ -17,7 +17,7 @@ class BraveSidePanelCoordinator : public SidePanelCoordinator {
~BraveSidePanelCoordinator() override;
// SidePanelCoodinator overrides:
- void Show(std::optional entry_id = std::nullopt,
+ void Show(SidePanelEntry::Key entry_key,
std::optional open_trigger =
std::nullopt) override;
void OnTabStripModelChanged(
@@ -25,7 +25,17 @@ class BraveSidePanelCoordinator : public SidePanelCoordinator {
const TabStripModelChange& change,
const TabStripSelectionChange& selection) override;
std::unique_ptr CreateHeader() override;
- void UpdateToolbarButtonHighlight(bool side_panel_visible) override;
+ void Toggle() override;
+ void Toggle(SidePanelEntryKey key,
+ SidePanelUtil::SidePanelOpenTrigger open_trigger) override;
+ void OnViewVisibilityChanged(views::View* observed_view,
+ views::View* starting_from) override;
+
+ private:
+ // Returns the last active entry or the default entry if no last active
+ // entry exists.
+ std::optional GetLastActiveEntryKey() const;
+ void UpdateToolbarButtonHighlight(bool side_panel_visible);
};
#endif // BRAVE_BROWSER_UI_VIEWS_SIDE_PANEL_BRAVE_SIDE_PANEL_COORDINATOR_H_
diff --git a/browser/ui/views/side_panel/brave_side_panel_utils.cc b/browser/ui/views/side_panel/brave_side_panel_utils.cc
index e08e6639e8d5..bfb7e8a30bf2 100644
--- a/browser/ui/views/side_panel/brave_side_panel_utils.cc
+++ b/browser/ui/views/side_panel/brave_side_panel_utils.cc
@@ -64,8 +64,6 @@ void RegisterContextualSidePanel(content::WebContents* web_contents) {
// If |registry| already has it, it's no-op.
registry->Register(std::make_unique(
SidePanelEntry::Id::kChatUI,
- l10n_util::GetStringUTF16(IDS_SIDEBAR_CHAT_SUMMARIZER_ITEM_TITLE),
- ui::ImageModel(),
base::BindRepeating(
&CreateAIChatSidePanelWebView,
Profile::FromBrowserContext(context)->GetWeakPtr())));
diff --git a/browser/ui/views/side_panel/brave_side_panel_view_base.h b/browser/ui/views/side_panel/brave_side_panel_view_base.h
index 48b9f7599502..de8924e269d3 100644
--- a/browser/ui/views/side_panel/brave_side_panel_view_base.h
+++ b/browser/ui/views/side_panel/brave_side_panel_view_base.h
@@ -14,6 +14,8 @@
class BraveSidePanelViewBase : public views::View, public views::ViewObserver {
METADATA_HEADER(BraveSidePanelViewBase, views::View)
public:
+ static constexpr inline int kHeaderHeight = 60;
+
BraveSidePanelViewBase();
~BraveSidePanelViewBase() override;
BraveSidePanelViewBase(const BraveSidePanelViewBase&) = delete;
diff --git a/browser/ui/views/side_panel/playlist/playlist_contents_wrapper.cc b/browser/ui/views/side_panel/playlist/playlist_contents_wrapper.cc
index 1d6aceeffedc..b0d8dbea48a0 100644
--- a/browser/ui/views/side_panel/playlist/playlist_contents_wrapper.cc
+++ b/browser/ui/views/side_panel/playlist/playlist_contents_wrapper.cc
@@ -12,8 +12,8 @@
#include "chrome/browser/ui/exclusive_access/exclusive_access_manager.h"
#include "chrome/browser/ui/exclusive_access/fullscreen_controller.h"
#include "chrome/browser/ui/exclusive_access/fullscreen_within_tab_helper.h"
-#include "chrome/browser/ui/side_panel/side_panel_ui.h"
#include "chrome/browser/ui/views/frame/browser_view.h"
+#include "chrome/browser/ui/views/side_panel/side_panel_ui.h"
#include "third_party/blink/public/mojom/frame/fullscreen.mojom.h"
#include "ui/views/widget/widget.h"
diff --git a/browser/ui/views/side_panel/playlist/playlist_side_panel_coordinator.cc b/browser/ui/views/side_panel/playlist/playlist_side_panel_coordinator.cc
index ac10fcd4d963..ca04b9417773 100644
--- a/browser/ui/views/side_panel/playlist/playlist_side_panel_coordinator.cc
+++ b/browser/ui/views/side_panel/playlist/playlist_side_panel_coordinator.cc
@@ -50,8 +50,6 @@ void PlaylistSidePanelCoordinator::CreateAndRegisterEntry(
SidePanelRegistry* global_registry) {
global_registry->Register(std::make_unique(
SidePanelEntry::Id::kPlaylist,
- l10n_util::GetStringUTF16(IDS_SIDEBAR_PLAYLIST_ITEM_TITLE),
- ui::ImageModel(),
base::BindRepeating(&PlaylistSidePanelCoordinator::CreateWebView,
base::Unretained(this))));
}
diff --git a/browser/ui/views/sidebar/sidebar_container_view.cc b/browser/ui/views/sidebar/sidebar_container_view.cc
index 3b676ba401a0..451f64751a22 100644
--- a/browser/ui/views/sidebar/sidebar_container_view.cc
+++ b/browser/ui/views/sidebar/sidebar_container_view.cc
@@ -27,6 +27,8 @@
#include "brave/browser/ui/views/side_panel/brave_side_panel.h"
#include "brave/browser/ui/views/side_panel/playlist/playlist_side_panel_coordinator.h"
#include "brave/browser/ui/views/sidebar/sidebar_control_view.h"
+#include "brave/browser/ui/views/toolbar/brave_toolbar_view.h"
+#include "brave/browser/ui/views/toolbar/side_panel_button.h"
#include "brave/components/constants/pref_names.h"
#include "brave/components/constants/webui_url_constants.h"
#include "brave/components/sidebar/browser/sidebar_item.h"
@@ -43,9 +45,9 @@
#include "chrome/browser/ui/views/side_panel/side_panel_web_ui_view.h"
#include "chrome/browser/ui/views/toolbar/toolbar_view.h"
#include "components/grit/brave_components_strings.h"
+#include "components/input/native_web_keyboard_event.h"
#include "content/public/browser/browser_context.h"
#include "content/public/browser/web_contents.h"
-#include "content/public/common/input/native_web_keyboard_event.h"
#include "ui/base/l10n/l10n_util.h"
#include "ui/base/metadata/metadata_impl_macros.h"
#include "ui/compositor/layer.h"
@@ -144,7 +146,6 @@ void SidebarContainerView::Init() {
panel_registry_observations_.AddObservation(side_panel_registry);
for (const auto& entry : side_panel_registry->entries()) {
- DVLOG(1) << "Observing panel entry in ctor: " << entry->name();
panel_entry_observations_.AddObservation(entry.get());
}
@@ -699,9 +700,9 @@ void SidebarContainerView::UpdateToolbarButtonVisibility() {
auto has_panel_item =
GetSidebarService(browser_)->GetDefaultPanelItem().has_value();
auto* browser_view = BrowserView::GetBrowserViewForBrowser(browser_);
- if (browser_view->toolbar() &&
- browser_view->toolbar()->GetSidePanelButton()) {
- browser_view->toolbar()->GetSidePanelButton()->SetVisible(
+ auto* brave_toolbar = static_cast(browser_view->toolbar());
+ if (brave_toolbar && brave_toolbar->side_panel_button()) {
+ brave_toolbar->side_panel_button()->SetVisible(
has_panel_item && show_side_panel_button_.GetValue());
}
}
@@ -726,7 +727,6 @@ void SidebarContainerView::OnEntryShown(SidePanelEntry* entry) {
// Make sure item is selected. We need to observe the SidePanel system
// as well as Sidebar as there are other ways than Sidebar for SidePanel
// items to be shown and hidden, e.g. toolbar button.
- DVLOG(1) << "Panel shown: " << entry->name();
auto* controller = browser_->sidebar_controller();
// Handling if |entry| is managed one.
@@ -758,7 +758,6 @@ void SidebarContainerView::OnEntryShown(SidePanelEntry* entry) {
void SidebarContainerView::OnEntryHidden(SidePanelEntry* entry) {
// Make sure item is deselected
- DVLOG(1) << "Panel hidden: " << entry->name();
auto* controller = browser_->sidebar_controller();
// Handling if |entry| is managed one.
@@ -793,14 +792,12 @@ void SidebarContainerView::OnEntryHidden(SidePanelEntry* entry) {
void SidebarContainerView::OnEntryRegistered(SidePanelRegistry* registry,
SidePanelEntry* entry) {
// Observe when it's shown or hidden
- DVLOG(1) << "Observing panel entry in registry observer: " << entry->name();
panel_entry_observations_.AddObservation(entry);
}
void SidebarContainerView::OnEntryWillDeregister(SidePanelRegistry* registry,
SidePanelEntry* entry) {
// Stop observing
- DVLOG(1) << "Unobserving panel entry in registry observer: " << entry->name();
panel_entry_observations_.RemoveObservation(entry);
}
@@ -842,9 +839,6 @@ void SidebarContainerView::StopObservingContextualSidePanelRegistry(
for (const auto& entry : registry->entries()) {
if (panel_entry_observations_.IsObservingSource(entry.get())) {
- DVLOG(1) << "Removing panel entry observation from removed contextual "
- "registry : "
- << entry->name();
panel_entry_observations_.RemoveObservation(entry.get());
}
}
@@ -861,9 +855,6 @@ void SidebarContainerView::StartObservingContextualSidePanelRegistry(
for (const auto& entry : registry->entries()) {
if (!panel_entry_observations_.IsObservingSource(entry.get())) {
- DVLOG(1) << "Observing existing panel entry from newly added contextual "
- "registry : "
- << entry->name();
panel_entry_observations_.AddObservation(entry.get());
}
}
diff --git a/browser/ui/views/sidebar/sidebar_container_view_browsertest.cc b/browser/ui/views/sidebar/sidebar_container_view_browsertest.cc
index c765ee61b3b2..2413c428212d 100644
--- a/browser/ui/views/sidebar/sidebar_container_view_browsertest.cc
+++ b/browser/ui/views/sidebar/sidebar_container_view_browsertest.cc
@@ -10,12 +10,13 @@
#include "brave/browser/ui/sidebar/sidebar_service_factory.h"
#include "brave/browser/ui/views/frame/brave_browser_view.h"
#include "brave/browser/ui/views/sidebar/sidebar_button_view.h"
+#include "brave/browser/ui/views/toolbar/brave_toolbar_view.h"
+#include "brave/browser/ui/views/toolbar/side_panel_button.h"
#include "brave/components/constants/pref_names.h"
#include "brave/components/sidebar/browser/sidebar_item.h"
#include "brave/components/sidebar/browser/sidebar_service.h"
#include "chrome/browser/profiles/profile.h"
#include "chrome/browser/ui/views/frame/toolbar_button_provider.h"
-#include "chrome/browser/ui/views/toolbar/side_panel_toolbar_button.h"
#include "chrome/test/base/in_process_browser_test.h"
#include "components/prefs/pref_service.h"
#include "content/public/test/browser_test.h"
@@ -45,10 +46,10 @@ class SidebarContainerViewBrowserTest : public InProcessBrowserTest {
return static_cast(controller->sidebar());
}
- SidePanelToolbarButton* toolbar_button() {
- return BrowserView::GetBrowserViewForBrowser(browser())
- ->toolbar_button_provider()
- ->GetSidePanelButton();
+ SidePanelButton* toolbar_button() {
+ return static_cast(
+ BrowserView::GetBrowserViewForBrowser(browser())->toolbar())
+ ->side_panel_button();
}
};
diff --git a/browser/ui/views/sidebar/sidebar_items_contents_view.cc b/browser/ui/views/sidebar/sidebar_items_contents_view.cc
index 7c36fabfe592..ac6fb93d6ba2 100644
--- a/browser/ui/views/sidebar/sidebar_items_contents_view.cc
+++ b/browser/ui/views/sidebar/sidebar_items_contents_view.cc
@@ -231,7 +231,7 @@ void SidebarItemsContentsView::ExecuteCommand(int command_id, int event_flags) {
return;
}
- NOTREACHED();
+ NOTREACHED_IN_MIGRATION();
}
bool SidebarItemsContentsView::IsCommandIdVisible(int command_id) const {
@@ -249,7 +249,7 @@ bool SidebarItemsContentsView::IsCommandIdVisible(int command_id) const {
return GetSidebarService(browser_)->IsEditableItemAt(*index);
}
- NOTREACHED();
+ NOTREACHED_IN_MIGRATION();
return false;
}
@@ -443,7 +443,7 @@ SidebarItemsContentsView::CalculateTargetDragIndicatorIndex(
}
}
- NOTREACHED();
+ NOTREACHED_IN_MIGRATION();
return std::nullopt;
}
diff --git a/browser/ui/views/split_view/split_view_separator.cc b/browser/ui/views/split_view/split_view_separator.cc
index ce034f1b2953..d188e07b643e 100644
--- a/browser/ui/views/split_view/split_view_separator.cc
+++ b/browser/ui/views/split_view/split_view_separator.cc
@@ -345,8 +345,8 @@ void SplitViewSeparator::CreateMenuButton() {
CHECK(!menu_button_widget_);
menu_button_widget_ = new views::Widget();
- views::Widget::InitParams params;
- params.type = views::Widget::InitParams::Type::TYPE_CONTROL;
+ views::Widget::InitParams params(
+ views::Widget::InitParams::Type::TYPE_CONTROL);
params.delegate = new MenuButtonDelegate(browser_, this);
params.parent = GetWidget()->GetNativeView();
menu_button_widget_->Init(std::move(params));
diff --git a/browser/ui/views/tabs/brave_tab.cc b/browser/ui/views/tabs/brave_tab.cc
index 8a6723ff9224..8456749ec905 100644
--- a/browser/ui/views/tabs/brave_tab.cc
+++ b/browser/ui/views/tabs/brave_tab.cc
@@ -133,21 +133,12 @@ void BraveTab::Layout(PassKey) {
}
gfx::Insets BraveTab::GetInsets() const {
- // Supplement extra left side padding.
- // Upstream gives extra padding to balance with right side padding space but
- // it's gone when tab doesn't have sufficient available width. In our case,
- // As we have more narrow left & right padding than upstream, icon seems stick
- // to left side when extra padding is not used.
- // We only need to do that when |extra_padding_before_content_| is false.
- int extra_left_padding = 0;
-
- // Add extra padding if upstream tab doesn't have it.
- if (!extra_padding_before_content_) {
- extra_left_padding = kExtraLeftPadding;
- }
-
+ // As close button has more padding, it seems favicon is too close to the left
+ // edge of the tab left border comppared with close button. Give additional
+ // left padding to make both visible with same space from tab border.
+ // See https://www.github.com/brave/brave-browser/issues/30469.
auto insets = Tab::GetInsets();
- insets.set_left(insets.left() + extra_left_padding);
+ insets.set_left(insets.left() + kExtraLeftPadding);
return insets;
}
diff --git a/browser/ui/views/tabs/brave_tab.h b/browser/ui/views/tabs/brave_tab.h
index a7cfdaa1652d..7c48417ee126 100644
--- a/browser/ui/views/tabs/brave_tab.h
+++ b/browser/ui/views/tabs/brave_tab.h
@@ -39,7 +39,6 @@ class BraveTab : public Tab {
void Layout(PassKey) override;
void MaybeAdjustLeftForPinnedTab(gfx::Rect* bounds,
int visual_width) const override;
-
gfx::Insets GetInsets() const override;
private:
diff --git a/browser/ui/views/tabs/brave_tab_context_menu_contents.cc b/browser/ui/views/tabs/brave_tab_context_menu_contents.cc
index de038e65c269..fafb6238f35e 100644
--- a/browser/ui/views/tabs/brave_tab_context_menu_contents.cc
+++ b/browser/ui/views/tabs/brave_tab_context_menu_contents.cc
@@ -190,7 +190,7 @@ bool BraveTabContextMenuContents::IsBraveCommandIdEnabled(
case BraveTabMenuModel::CommandToggleSplitViewOrientation:
return true;
default:
- NOTREACHED();
+ NOTREACHED_IN_MIGRATION();
break;
}
@@ -251,7 +251,7 @@ void BraveTabContextMenuContents::ExecuteBraveCommand(int command_id) {
brave::ToggleSplitViewOrientation(browser_);
return;
default:
- NOTREACHED();
+ NOTREACHED_IN_MIGRATION();
return;
}
}
diff --git a/browser/ui/views/tabs/brave_tab_group_header.cc b/browser/ui/views/tabs/brave_tab_group_header.cc
index a5bde0c91d2d..c434e670a781 100644
--- a/browser/ui/views/tabs/brave_tab_group_header.cc
+++ b/browser/ui/views/tabs/brave_tab_group_header.cc
@@ -73,6 +73,20 @@ void BraveTabGroupHeader::VisualsChanged() {
title_chip_->SetBackground(nullptr);
}
+ // When the title is empty, upstream (127) ignores the top value returned from
+ // `GetInsetsForHeaderChip`, which throws off the header size. Adjust the
+ // vertical layout to maintain the group header height.
+ if (!title_->GetText().empty()) {
+ const gfx::Insets title_chip_insets =
+ group_style_->GetInsetsForHeaderChip(ShouldShowSyncIcon());
+ title_chip_->SetSize(
+ {title_chip_->width(), title_->height() + 2 * title_chip_insets.top()});
+ title_->SetY(title_chip_insets.top());
+ if (ShouldShowSyncIcon()) {
+ sync_icon_->SetY(title_chip_insets.top());
+ }
+ }
+
if (ShouldShowVerticalTabs()) {
LayoutTitleChipForVerticalTabs();
}
diff --git a/browser/ui/views/tabs/brave_tab_unittest.cc b/browser/ui/views/tabs/brave_tab_unittest.cc
index dca4896c99a0..270ff64239bf 100644
--- a/browser/ui/views/tabs/brave_tab_unittest.cc
+++ b/browser/ui/views/tabs/brave_tab_unittest.cc
@@ -16,17 +16,13 @@ class BraveTabTest : public ChromeViewsTestBase {
BraveTabTest() = default;
~BraveTabTest() override = default;
- void LayoutAndCheckBorder(BraveTab* tab,
- const gfx::Rect& bounds,
- bool gave_extra_padding) {
+ void LayoutAndCheckBorder(BraveTab* tab, const gfx::Rect& bounds) {
tab->SetBoundsRect(bounds);
views::test::RunScheduledLayout(tab);
auto insets = tab->tab_style_views()->GetContentsInsets();
int left_inset = insets.left();
- if (gave_extra_padding) {
- left_inset += BraveTab::kExtraLeftPadding;
- }
+ left_inset += BraveTab::kExtraLeftPadding;
EXPECT_EQ(left_inset, tab->GetInsets().left());
}
};
@@ -35,10 +31,11 @@ TEST_F(BraveTabTest, ExtraPaddingLayoutTest) {
FakeTabSlotController tab_slot_controller;
BraveTab tab(&tab_slot_controller);
- // Smaller width tab will be given extra padding.
- LayoutAndCheckBorder(&tab, {0, 0, 30, 50}, true);
- LayoutAndCheckBorder(&tab, {0, 0, 50, 50}, true);
- LayoutAndCheckBorder(&tab, {0, 0, 100, 50}, false);
- LayoutAndCheckBorder(&tab, {0, 0, 150, 50}, false);
- LayoutAndCheckBorder(&tab, {0, 0, 30, 50}, true);
+ // Our tab should have extra padding always.
+ // See the comment at BraveTab::GetInsets().
+ LayoutAndCheckBorder(&tab, {0, 0, 30, 50});
+ LayoutAndCheckBorder(&tab, {0, 0, 50, 50});
+ LayoutAndCheckBorder(&tab, {0, 0, 100, 50});
+ LayoutAndCheckBorder(&tab, {0, 0, 150, 50});
+ LayoutAndCheckBorder(&tab, {0, 0, 30, 50});
}
diff --git a/browser/ui/views/tabs/tab_drag_controller.cc b/browser/ui/views/tabs/tab_drag_controller.cc
index 802abd22c75b..0dea6c44e12e 100644
--- a/browser/ui/views/tabs/tab_drag_controller.cc
+++ b/browser/ui/views/tabs/tab_drag_controller.cc
@@ -133,54 +133,6 @@ void TabDragController::MoveAttached(const gfx::Point& point_in_screen,
last_move_attached_context_loc_ = point_in_attached_context.y();
}
-std::optional
-TabDragController::GetTabGroupForTargetIndex(const std::vector& selected) {
- auto group_id =
- TabDragControllerChromium::GetTabGroupForTargetIndex(selected);
- if (group_id.has_value() || !is_showing_vertical_tabs_) {
- return group_id;
- }
-
- // We have corner cases where the chromium code can't handle.
- // When former group and latter group of selected tabs are different, Chromium
- // calculates the target index based on the x coordinate. So we need to check
- // this again based on y coordinate.
- const auto previous_tab_index = selected.front() - 1;
-
- const TabStripModel* attached_model = attached_context_->GetTabStripModel();
- const std::optional former_group =
- attached_model->GetTabGroupForTab(previous_tab_index);
- const std::optional latter_group =
- attached_model->GetTabGroupForTab(selected.back() + 1);
- // We assume that Chromium can handle it when former and latter group are
- // same. So just return here.
- if (former_group == latter_group) {
- return group_id;
- }
-
- const auto top_edge =
- previous_tab_index >= 0
- ? attached_context_->GetTabAt(previous_tab_index)->bounds().bottom()
- : 0;
- const auto first_selected_tab_y =
- attached_context_->GetTabAt(selected.front())->bounds().y();
- if (former_group.has_value() &&
- !attached_model->IsGroupCollapsed(*former_group)) {
- if (first_selected_tab_y <= top_edge) {
- return former_group;
- }
- }
-
- if (latter_group.has_value() &&
- !attached_model->IsGroupCollapsed(*latter_group)) {
- if (first_selected_tab_y >= top_edge) {
- return latter_group;
- }
- }
-
- return group_id;
-}
-
views::Widget* TabDragController::GetAttachedBrowserWidget() {
auto* widget = TabDragControllerChromium::GetAttachedBrowserWidget();
if (!is_showing_vertical_tabs_) {
diff --git a/browser/ui/views/tabs/tab_drag_controller.h b/browser/ui/views/tabs/tab_drag_controller.h
index 3680edb82fcf..e8b5f4d616c3 100644
--- a/browser/ui/views/tabs/tab_drag_controller.h
+++ b/browser/ui/views/tabs/tab_drag_controller.h
@@ -33,8 +33,6 @@ class TabDragController : public TabDragControllerChromium {
gfx::Point GetAttachedDragPoint(const gfx::Point& point_in_screen) override;
void MoveAttached(const gfx::Point& point_in_screen,
bool just_attached) override;
- std::optional GetTabGroupForTargetIndex(
- const std::vector& selected) override;
views::Widget* GetAttachedBrowserWidget() override;
Liveness GetLocalProcessWindow(const gfx::Point& screen_point,
diff --git a/browser/ui/views/tabs/vertical_tab_utils.cc b/browser/ui/views/tabs/vertical_tab_utils.cc
index a0b8cea7d8a3..4a907e306030 100644
--- a/browser/ui/views/tabs/vertical_tab_utils.cc
+++ b/browser/ui/views/tabs/vertical_tab_utils.cc
@@ -132,13 +132,6 @@ std::pair GetLeadingTrailingCaptionButtonWidth(
// the HWND and BrowserFrameViewWin will draw frame and window caption
// button.
auto size = WindowFrameUtil::GetWindowsCaptionButtonAreaSize();
- if (WindowFrameUtil::IsWindowsTabSearchCaptionButtonEnabled(
- BrowserView::GetBrowserViewForNativeWindow(frame->GetNativeWindow())
- ->browser())) {
- size.set_width(size.width() +
- WindowFrameUtil::kWindowsCaptionButtonWidth +
- WindowFrameUtil::kWindowsCaptionButtonVisualSpacing);
- }
return {0, size.width()};
}
diff --git a/browser/ui/views/toolbar/brave_app_menu_browsertest.cc b/browser/ui/views/toolbar/brave_app_menu_browsertest.cc
index 2a7d69ab38aa..77101ed95a6c 100644
--- a/browser/ui/views/toolbar/brave_app_menu_browsertest.cc
+++ b/browser/ui/views/toolbar/brave_app_menu_browsertest.cc
@@ -98,15 +98,13 @@ class BraveAppMenuBrowserTestWithChromeRefresh2023
void SetUp() override {
BraveAppMenuBrowserTest::SetUp();
-
- feature_list_.InitAndEnableFeature(features::kChromeRefresh2023);
}
base::test::ScopedFeatureList feature_list_;
};
-// To check enabling kChromeRefresh2023 doesn't make crash with app menu
-// opening.
+// Test originally introduced before the chrome-refresh-2023 cleanup, to check
+// if sidebar crashes when opening.
IN_PROC_BROWSER_TEST_F(BraveAppMenuBrowserTestWithChromeRefresh2023,
AppMenuOpeningTest) {
// Open app menu to check it doesn't make crash.
diff --git a/browser/ui/views/toolbar/brave_toolbar_view.cc b/browser/ui/views/toolbar/brave_toolbar_view.cc
index daf10ecec2ca..bf0ab635285e 100644
--- a/browser/ui/views/toolbar/brave_toolbar_view.cc
+++ b/browser/ui/views/toolbar/brave_toolbar_view.cc
@@ -15,6 +15,7 @@
#include "brave/browser/ui/tabs/brave_tab_prefs.h"
#include "brave/browser/ui/views/tabs/vertical_tab_utils.h"
#include "brave/browser/ui/views/toolbar/bookmark_button.h"
+#include "brave/browser/ui/views/toolbar/side_panel_button.h"
#include "brave/browser/ui/views/toolbar/wallet_button.h"
#include "brave/components/brave_vpn/common/buildflags/buildflags.h"
#include "brave/components/brave_wallet/browser/pref_names.h"
@@ -28,7 +29,10 @@
#include "chrome/browser/ui/browser.h"
#include "chrome/browser/ui/browser_commands.h"
#include "chrome/browser/ui/layout_constants.h"
+#include "chrome/browser/ui/ui_features.h"
#include "chrome/browser/ui/views/bookmarks/bookmark_bubble_view.h"
+#include "chrome/browser/ui/views/toolbar/pinned_toolbar_actions_container.h"
+#include "chrome/browser/ui/views/toolbar/toolbar_view.h"
#include "components/bookmarks/common/bookmark_pref_names.h"
#include "components/prefs/pref_service.h"
#include "ui/base/hit_test.h"
@@ -129,14 +133,14 @@ void BraveToolbarView::Init() {
// This will allow us to move this window by dragging toolbar.
// See brave_non_client_hit_test_helper.h
views::SetHitTestComponent(this, HTCAPTION);
- if (features::IsChromeRefresh2023()) {
- // Upstream has two more children |background_view_left_| and
- // |background_view_right_| behind the container view.
- DCHECK_EQ(3u, children().size());
- } else {
- DCHECK_EQ(1u, children().size());
- }
- views::SetHitTestComponent(children()[0], HTCAPTION);
+
+ DCHECK(location_bar_);
+ // Get ToolbarView's container_view as a parent of location_bar_ because
+ // container_view's type in ToolbarView is internal to toolbar_view.cc.
+ views::View* container_view = location_bar_->parent();
+ DCHECK(container_view);
+
+ views::SetHitTestComponent(container_view, HTCAPTION);
// For non-normal mode, we don't have to more.
if (display_mode_ != DisplayMode::NORMAL) {
@@ -205,11 +209,6 @@ void BraveToolbarView::Init() {
browser, command, ui::DispositionFromEventFlags(event.flags()));
};
- DCHECK(location_bar_);
- // Get ToolbarView's container_view as a parent of location_bar_ because
- // container_view's type in ToolbarView is internal to toolbar_view.cc.
- views::View* container_view = location_bar_->parent();
- DCHECK(container_view);
bookmark_ = container_view->AddChildViewAt(
std::make_unique(
base::BindRepeating(callback, browser_, IDC_BOOKMARK_THIS_TAB)),
@@ -218,6 +217,10 @@ void BraveToolbarView::Init() {
ui::EF_MIDDLE_MOUSE_BUTTON);
bookmark_->UpdateImageAndText();
+ side_panel_ = container_view->AddChildViewAt(
+ std::make_unique(browser()),
+ *container_view->GetIndexOf(GetAppMenuButton()) - 1);
+
wallet_ = container_view->AddChildViewAt(
std::make_unique(GetAppMenuButton(), profile),
*container_view->GetIndexOf(GetAppMenuButton()) - 1);
@@ -252,6 +255,16 @@ void BraveToolbarView::Init() {
brave_initialized_ = true;
UpdateHorizontalPadding();
+
+ // We want to hide pin action buttons(side panel's pin button) in toolbar.
+ // As toolbar is shared for different types of windows, this action button
+ // container could be null. So Upstream code has assumption that
+ // |pinned_toolbar_actions_container_| could be null.
+ // If it's changed, we should check again.
+ if (pinned_toolbar_actions_container_) {
+ RemoveChildView(pinned_toolbar_actions_container_.get());
+ pinned_toolbar_actions_container_ = nullptr;
+ }
}
#if BUILDFLAG(ENABLE_BRAVE_VPN)
@@ -296,6 +309,11 @@ void BraveToolbarView::OnThemeChanged() {
wallet_->UpdateImageAndText();
}
+views::View* BraveToolbarView::GetAnchorView(
+ std::optional type) {
+ return ToolbarView::GetAnchorView(type);
+}
+
void BraveToolbarView::OnProfileAdded(const base::FilePath& profile_path) {
Update(nullptr);
}
@@ -383,7 +401,12 @@ void BraveToolbarView::ViewHierarchyChanged(
const views::ViewHierarchyChangedDetails& details) {
ToolbarView::ViewHierarchyChanged(details);
- if (details.is_add && details.parent == children()[0]) {
+ // Upstream has two more children |background_view_left_| and
+ // |background_view_right_| behind the container view.
+ const int container_view_index = 2;
+
+ if (details.is_add && children().size() > container_view_index &&
+ details.parent == children()[container_view_index]) {
// Mark children of the container view as client area so that they are not
// perceived as caption area. See brave_non_client_hit_test_helper.h
views::SetHitTestComponent(details.child, HTCLIENT);
diff --git a/browser/ui/views/toolbar/brave_toolbar_view.h b/browser/ui/views/toolbar/brave_toolbar_view.h
index 66aa118de5a7..71a45ac29bd3 100644
--- a/browser/ui/views/toolbar/brave_toolbar_view.h
+++ b/browser/ui/views/toolbar/brave_toolbar_view.h
@@ -19,6 +19,7 @@ class BraveVPNButton;
#endif
class BraveBookmarkButton;
+class SidePanelButton;
class WalletButton;
class BraveToolbarView : public ToolbarView,
@@ -30,6 +31,7 @@ class BraveToolbarView : public ToolbarView,
BraveBookmarkButton* bookmark_button() const { return bookmark_; }
WalletButton* wallet_button() const { return wallet_; }
+ SidePanelButton* side_panel_button() const { return side_panel_; }
#if BUILDFLAG(ENABLE_BRAVE_VPN)
BraveVPNButton* brave_vpn_button() const { return brave_vpn_; }
@@ -56,6 +58,9 @@ class BraveToolbarView : public ToolbarView,
void ResetButtonBounds();
void UpdateBookmarkVisibility();
+ // ToolbarButtonProvider:
+ views::View* GetAnchorView(std::optional type) override;
+
// ProfileAttributesStorage::Observer:
void OnProfileAdded(const base::FilePath& profile_path) override;
void OnProfileWasRemoved(const base::FilePath& profile_path,
@@ -68,6 +73,7 @@ class BraveToolbarView : public ToolbarView,
BooleanPrefMember edit_bookmarks_enabled_;
raw_ptr wallet_ = nullptr;
+ raw_ptr side_panel_ = nullptr;
#if BUILDFLAG(ENABLE_BRAVE_VPN)
raw_ptr brave_vpn_ = nullptr;
diff --git a/chromium_src/chrome/browser/ui/views/toolbar/side_panel_toolbar_button.cc b/browser/ui/views/toolbar/side_panel_button.cc
similarity index 55%
rename from chromium_src/chrome/browser/ui/views/toolbar/side_panel_toolbar_button.cc
rename to browser/ui/views/toolbar/side_panel_button.cc
index 6f26c70b6a90..04ef7194c4ca 100644
--- a/chromium_src/chrome/browser/ui/views/toolbar/side_panel_toolbar_button.cc
+++ b/browser/ui/views/toolbar/side_panel_button.cc
@@ -1,37 +1,34 @@
-// Copyright (c) 2022 The Brave Authors. All rights reserved.
-// This Source Code Form is subject to the terms of the Mozilla Public
-// License, v. 2.0. If a copy of the MPL was not distributed with this file,
-// you can obtain one at http://mozilla.org/MPL/2.0/.
+/* Copyright (c) 2024 The Brave Authors. All rights reserved.
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this file,
+ * You can obtain one at https://mozilla.org/MPL/2.0/. */
-#include "chrome/browser/ui/views/toolbar/side_panel_toolbar_button.h"
+#include "brave/browser/ui/views/toolbar/side_panel_button.h"
#include
-#include "base/memory/raw_ptr.h"
#include "brave/app/vector_icons/vector_icons.h"
#include "brave/components/constants/pref_names.h"
#include "brave/grit/brave_generated_resources.h"
#include "chrome/browser/profiles/profile.h"
#include "chrome/browser/ui/browser.h"
-#include "chrome/browser/ui/views/toolbar/toolbar_button.h"
+#include "chrome/browser/ui/views/side_panel/side_panel_ui.h"
#include "chrome/common/pref_names.h"
#include "components/prefs/pref_service.h"
+#include "ui/base/l10n/l10n_util.h"
#include "ui/base/metadata/metadata_impl_macros.h"
#include "ui/base/models/simple_menu_model.h"
+#include "ui/views/accessibility/view_accessibility.h"
#include "ui/views/context_menu_controller.h"
-
-#define SidePanelToolbarButton SidePanelToolbarButton_ChromiumImpl
-
-#include "src/chrome/browser/ui/views/toolbar/side_panel_toolbar_button.cc"
-
-#undef SidePanelToolbarButton
+#include "ui/views/controls/button/button_controller.h"
namespace {
+
class SidePanelMenuModel : public ui::SimpleMenuModel,
public ui::SimpleMenuModel::Delegate {
public:
explicit SidePanelMenuModel(PrefService* prefs)
- : ui::SimpleMenuModel(this), prefs_(prefs) {
+ : ui::SimpleMenuModel(this), prefs_(*prefs) {
Build();
}
@@ -49,37 +46,47 @@ class SidePanelMenuModel : public ui::SimpleMenuModel,
// ui::SimpleMenuModel::Delegate:
void ExecuteCommand(int command_id, int event_flags) override {
- if (command_id == ContextMenuCommand::kHideSideBarButton)
+ if (command_id == ContextMenuCommand::kHideSideBarButton) {
prefs_->SetBoolean(kShowSidePanelButton, false);
+ }
}
- raw_ptr prefs_ = nullptr;
+ raw_ref prefs_;
};
+
} // namespace
-SidePanelToolbarButton::SidePanelToolbarButton(Browser* browser)
- : SidePanelToolbarButton_ChromiumImpl(browser) {
- // Upstream sets null as they don't use context menu for this.
- set_context_menu_controller(this);
+SidePanelButton::SidePanelButton(Browser* browser)
+ : ToolbarButton(base::BindRepeating(&SidePanelButton::ButtonPressed,
+ base::Unretained(this))),
+ browser_(*browser) {
auto* prefs = browser->profile()->GetOriginalProfile()->GetPrefs();
-
SetMenuModel(std::make_unique(prefs));
// Visibility is managed by |SideBarContainerView|.
SetVisible(false);
sidebar_alignment_.Init(
prefs::kSidePanelHorizontalAlignment, prefs,
- base::BindRepeating(&SidePanelToolbarButton::UpdateButtonImage,
+ base::BindRepeating(&SidePanelButton::UpdateToolbarButtonIcon,
base::Unretained(this)));
- UpdateButtonImage();
+ UpdateToolbarButtonIcon();
+ SetTooltipText(l10n_util::GetStringUTF16(IDS_TOOLTIP_SIDEBAR_SHOW));
+ set_context_menu_controller(this);
+ button_controller()->set_notify_action(
+ views::ButtonController::NotifyAction::kOnPress);
+ GetViewAccessibility().SetHasPopup(ax::mojom::HasPopup::kMenu);
}
-SidePanelToolbarButton::~SidePanelToolbarButton() = default;
+SidePanelButton::~SidePanelButton() = default;
+
+void SidePanelButton::ButtonPressed() {
+ SidePanelUI::GetSidePanelUIForBrowser(&(browser_.get()))->Toggle();
+}
-void SidePanelToolbarButton::UpdateButtonImage() {
+void SidePanelButton::UpdateToolbarButtonIcon() {
SetVectorIcon(sidebar_alignment_.GetValue() ? kSidebarToolbarButtonRightIcon
: kSidebarToolbarButtonIcon);
}
-BEGIN_METADATA(SidePanelToolbarButton)
+BEGIN_METADATA(SidePanelButton)
END_METADATA
diff --git a/browser/ui/views/toolbar/side_panel_button.h b/browser/ui/views/toolbar/side_panel_button.h
new file mode 100644
index 000000000000..dac3b75cbab1
--- /dev/null
+++ b/browser/ui/views/toolbar/side_panel_button.h
@@ -0,0 +1,40 @@
+/* Copyright (c) 2024 The Brave Authors. All rights reserved.
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this file,
+ * You can obtain one at https://mozilla.org/MPL/2.0/. */
+
+#ifndef BRAVE_BROWSER_UI_VIEWS_TOOLBAR_SIDE_PANEL_BUTTON_H_
+#define BRAVE_BROWSER_UI_VIEWS_TOOLBAR_SIDE_PANEL_BUTTON_H_
+
+#include "base/memory/raw_ref.h"
+#include "chrome/browser/ui/views/toolbar/toolbar_button.h"
+#include "components/prefs/pref_member.h"
+#include "ui/base/metadata/metadata_header_macros.h"
+
+class Browser;
+
+class SidePanelButton : public ToolbarButton {
+ METADATA_HEADER(SidePanelButton, ToolbarButton)
+
+ public:
+ explicit SidePanelButton(Browser* browser);
+ SidePanelButton(const SidePanelButton&) = delete;
+ SidePanelButton& operator=(const SidePanelButton&) = delete;
+ ~SidePanelButton() override;
+
+ private:
+ void ButtonPressed();
+
+ // Updates the vector icon used when the PrefChangeRegistrar listens to a
+ // change. When the side panel should open to the right side of the browser
+ // the default vector icon is used. When the side panel should open to the
+ // left side of the browser the flipped vector icon is used.
+ void UpdateToolbarButtonIcon();
+
+ const raw_ref browser_;
+
+ // Observes and listens to side panel alignment changes.
+ BooleanPrefMember sidebar_alignment_;
+};
+
+#endif // BRAVE_BROWSER_UI_VIEWS_TOOLBAR_SIDE_PANEL_BUTTON_H_
diff --git a/browser/ui/webui/brave_rewards_internals_ui.cc b/browser/ui/webui/brave_rewards_internals_ui.cc
index baf31ca0787e..a0846bded218 100644
--- a/browser/ui/webui/brave_rewards_internals_ui.cc
+++ b/browser/ui/webui/brave_rewards_internals_ui.cc
@@ -395,7 +395,7 @@ void RewardsInternalsDOMHandler::OnGetEventLogs(
void RewardsInternalsDOMHandler::GetAdDiagnostics(
const base::Value::List& args) {
if (!ads_service_) {
- NOTREACHED();
+ NOTREACHED_IN_MIGRATION();
return;
}
diff --git a/browser/ui/webui/brave_rewards_page_ui.cc b/browser/ui/webui/brave_rewards_page_ui.cc
index b0fcccafbed0..2e7114d62dbe 100644
--- a/browser/ui/webui/brave_rewards_page_ui.cc
+++ b/browser/ui/webui/brave_rewards_page_ui.cc
@@ -1144,7 +1144,7 @@ void RewardsDOMHandler::ToggleAdThumbUp(const base::Value::List& args) {
const base::Value::Dict* dict = args[0].GetIfDict();
if (!dict) {
- NOTREACHED();
+ NOTREACHED_IN_MIGRATION();
return;
}
@@ -1172,7 +1172,7 @@ void RewardsDOMHandler::ToggleAdThumbDown(const base::Value::List& args) {
const base::Value::Dict* dict = args[0].GetIfDict();
if (!dict) {
- NOTREACHED();
+ NOTREACHED_IN_MIGRATION();
return;
}
@@ -1200,7 +1200,7 @@ void RewardsDOMHandler::ToggleAdOptIn(const base::Value::List& args) {
const base::Value::Dict* dict = args[0].GetIfDict();
if (!dict) {
- NOTREACHED();
+ NOTREACHED_IN_MIGRATION();
return;
}
@@ -1228,7 +1228,7 @@ void RewardsDOMHandler::ToggleAdOptOut(const base::Value::List& args) {
const base::Value::Dict* dict = args[0].GetIfDict();
if (!dict) {
- NOTREACHED();
+ NOTREACHED_IN_MIGRATION();
return;
}
@@ -1256,7 +1256,7 @@ void RewardsDOMHandler::ToggleSavedAd(const base::Value::List& args) {
const base::Value::Dict* dict = args[0].GetIfDict();
if (!dict) {
- NOTREACHED();
+ NOTREACHED_IN_MIGRATION();
return;
}
@@ -1284,7 +1284,7 @@ void RewardsDOMHandler::ToggleFlaggedAd(const base::Value::List& args) {
const base::Value::Dict* dict = args[0].GetIfDict();
if (!dict) {
- NOTREACHED();
+ NOTREACHED_IN_MIGRATION();
return;
}
@@ -1672,7 +1672,7 @@ void RewardsDOMHandler::EnableRewards(const base::Value::List& args) {
#else
// On Android, a native onboarding modal is displayed when the user navigates
// to the Rewards page. This message handler should not be called.
- NOTREACHED();
+ NOTREACHED_IN_MIGRATION();
#endif
}
diff --git a/browser/ui/webui/brave_wallet/android/android_wallet_page_ui.cc b/browser/ui/webui/brave_wallet/android/android_wallet_page_ui.cc
index fc33d89c5b15..e5accfe74137 100644
--- a/browser/ui/webui/brave_wallet/android/android_wallet_page_ui.cc
+++ b/browser/ui/webui/brave_wallet/android/android_wallet_page_ui.cc
@@ -57,7 +57,8 @@ AndroidWalletPageUI::AndroidWalletPageUI(content::WebUI* web_ui,
kBraveWalletPageGeneratedSize),
IDR_WALLET_PAGE_HTML);
} else {
- NOTREACHED() << "Failed to find page resources for:" << url.path();
+ NOTREACHED_IN_MIGRATION()
+ << "Failed to find page resources for:" << url.path();
}
source->AddBoolean("isAndroid", true);
diff --git a/browser/ui/webui/brave_wallet/page_handler/wallet_page_handler.cc b/browser/ui/webui/brave_wallet/page_handler/wallet_page_handler.cc
index 0de6a136d71e..e128cf4468af 100644
--- a/browser/ui/webui/brave_wallet/page_handler/wallet_page_handler.cc
+++ b/browser/ui/webui/brave_wallet/page_handler/wallet_page_handler.cc
@@ -29,5 +29,5 @@ void WalletPageHandler::ShowApprovePanelUI() {
}
void WalletPageHandler::ShowWalletBackupUI() {
- NOTREACHED();
+ NOTREACHED_IN_MIGRATION();
}
diff --git a/browser/ui/webui/new_tab_page/brave_new_tab_message_handler.cc b/browser/ui/webui/new_tab_page/brave_new_tab_message_handler.cc
index 721842a092ce..f22efb77c4a0 100644
--- a/browser/ui/webui/new_tab_page/brave_new_tab_message_handler.cc
+++ b/browser/ui/webui/new_tab_page/brave_new_tab_message_handler.cc
@@ -22,7 +22,6 @@
#include "brave/browser/ntp_background/view_counter_service_factory.h"
#include "brave/browser/profiles/profile_util.h"
#include "brave/browser/search_engines/pref_names.h"
-#include "brave/browser/search_engines/search_engine_provider_util.h"
#include "brave/browser/ui/webui/new_tab_page/brave_new_tab_ui.h"
#include "brave/components/brave_ads/core/public/ads_util.h"
#include "brave/components/brave_news/common/pref_names.h"
@@ -162,7 +161,6 @@ BraveNewTabMessageHandler* BraveNewTabMessageHandler::Create(
// Private Tab info
if (IsPrivateNewTab(profile)) {
source->AddBoolean("isTor", profile->IsTor());
- source->AddBoolean("isQwant", brave::IsRegionForQwant(profile));
}
return new BraveNewTabMessageHandler(profile, was_restored);
}
@@ -369,7 +367,7 @@ void BraveNewTabMessageHandler::HandleToggleAlternativeSearchEngineProvider(
// Cleanup "toggleAlternativePrivateSearchEngine" message handler when it's
// deleted from NTP Webui.
// https://github.com/brave/brave-browser/issues/23493
- NOTREACHED();
+ NOTREACHED_IN_MIGRATION();
}
void BraveNewTabMessageHandler::HandleSaveNewTabPagePref(
diff --git a/browser/ui/webui/settings/brave_sync_handler.cc b/browser/ui/webui/settings/brave_sync_handler.cc
index ac1c84d4d036..aca7bb8fb107 100644
--- a/browser/ui/webui/settings/brave_sync_handler.cc
+++ b/browser/ui/webui/settings/brave_sync_handler.cc
@@ -53,7 +53,7 @@ std::string GetSyncCodeValidationString(
case ValidationStatus::kValidForTooLong:
return l10n_util::GetStringUTF8(IDS_BRAVE_SYNC_CODE_VALID_FOR_TOO_LONG);
default:
- NOTREACHED();
+ NOTREACHED_IN_MIGRATION();
return "";
}
}
diff --git a/browser/ui/webui/settings/brave_wallet_handler.cc b/browser/ui/webui/settings/brave_wallet_handler.cc
index 9af96b7f2e4b..6dbd584fffa8 100644
--- a/browser/ui/webui/settings/brave_wallet_handler.cc
+++ b/browser/ui/webui/settings/brave_wallet_handler.cc
@@ -63,7 +63,7 @@ std::optional ToCoinType(
result != brave_wallet::mojom::CoinType::SOL &&
result != brave_wallet::mojom::CoinType::BTC &&
result != brave_wallet::mojom::CoinType::ZEC) {
- NOTREACHED();
+ NOTREACHED_IN_MIGRATION();
return std::nullopt;
}
return result;
diff --git a/browser/ui/webui/speedreader/speedreader_toolbar_data_handler_impl.cc b/browser/ui/webui/speedreader/speedreader_toolbar_data_handler_impl.cc
index 68c94abfb30a..808cf1b0f28c 100644
--- a/browser/ui/webui/speedreader/speedreader_toolbar_data_handler_impl.cc
+++ b/browser/ui/webui/speedreader/speedreader_toolbar_data_handler_impl.cc
@@ -30,7 +30,7 @@
#if BUILDFLAG(ENABLE_AI_CHAT)
#include "brave/components/ai_chat/core/browser/utils.h"
-#include "chrome/browser/ui/side_panel/side_panel_ui.h"
+#include "chrome/browser/ui/views/side_panel/side_panel_ui.h"
#endif
namespace {
diff --git a/browser/ui/webui/webcompat_reporter/webcompat_reporter_dialog.cc b/browser/ui/webui/webcompat_reporter/webcompat_reporter_dialog.cc
index 3b4dcf4b1061..9a959b3a44e1 100644
--- a/browser/ui/webui/webcompat_reporter/webcompat_reporter_dialog.cc
+++ b/browser/ui/webui/webcompat_reporter/webcompat_reporter_dialog.cc
@@ -69,7 +69,7 @@ WebcompatReporterDialogDelegate::~WebcompatReporterDialogDelegate() = default;
ui::ModalType WebcompatReporterDialogDelegate::GetDialogModalType() const {
// Not used, returning dummy value.
- NOTREACHED();
+ NOTREACHED_IN_MIGRATION();
return ui::MODAL_TYPE_WINDOW;
}
diff --git a/browser/ui/whats_new/whats_new_util.cc b/browser/ui/whats_new/whats_new_util.cc
index a20a05d0adf2..e315962a8ee8 100644
--- a/browser/ui/whats_new/whats_new_util.cc
+++ b/browser/ui/whats_new/whats_new_util.cc
@@ -162,7 +162,7 @@ bool ShouldShowBraveWhatsNewForState(PrefService* local_state) {
const auto current_version = GetCurrentBrowserVersion();
if (!current_version) {
- NOTREACHED() << __func__ << " Should get current version.";
+ NOTREACHED_IN_MIGRATION() << __func__ << " Should get current version.";
return false;
}
diff --git a/browser/url_sanitizer/android/url_sanitizer_service_factory_android.cc b/browser/url_sanitizer/android/url_sanitizer_service_factory_android.cc
index 929b235d3b9e..9e48d04f9402 100644
--- a/browser/url_sanitizer/android/url_sanitizer_service_factory_android.cc
+++ b/browser/url_sanitizer/android/url_sanitizer_service_factory_android.cc
@@ -7,7 +7,6 @@
#include "brave/browser/url_sanitizer/url_sanitizer_service_factory.h"
#include "brave/build/android/jni_headers/UrlSanitizerServiceFactory_jni.h"
#include "chrome/browser/profiles/profile.h"
-#include "chrome/browser/profiles/profile_android.h"
#include "mojo/public/cpp/bindings/pending_receiver.h"
namespace chrome {
@@ -15,7 +14,7 @@ namespace android {
static jlong JNI_UrlSanitizerServiceFactory_GetInterfaceToUrlSanitizerService(
JNIEnv* env,
const base::android::JavaParamRef& profile_android) {
- auto* profile = ProfileAndroid::FromProfileAndroid(profile_android);
+ auto* profile = Profile::FromJavaObject(profile_android);
if (profile == nullptr) {
return static_cast(-1);
}
diff --git a/browser/web_discovery/web_discovery_tab_helper.cc b/browser/web_discovery/web_discovery_tab_helper.cc
index 08083dadd712..e3ef9beb2ba2 100644
--- a/browser/web_discovery/web_discovery_tab_helper.cc
+++ b/browser/web_discovery/web_discovery_tab_helper.cc
@@ -74,7 +74,7 @@ void WebDiscoveryTabHelper::ShowInfoBar(PrefService* prefs) {
->AddInfoBar(CreateWebDiscoveryInfoBar(
std::make_unique(prefs)));
#else
- NOTREACHED() << "We don't support WDP infobar";
+ NOTREACHED_IN_MIGRATION() << "We don't support WDP infobar";
#endif
}
diff --git a/build/BUILD.gn b/build/BUILD.gn
index fc7951f83460..7e6ee7af22f6 100644
--- a/build/BUILD.gn
+++ b/build/BUILD.gn
@@ -21,6 +21,8 @@ if (is_redirect_cc_build) {
config("base_build_without_redirect_cc") {
defines = [
"BRAVE_GET_TARGET_FOR_DEFAULT_APP_SETTINGS=",
+ "BRAVE_HISTOGRAM_FUNCTIONS_UMA_HISTOGRAM_ENUMERATION_CHAR_POINTER_ARG=",
+ "BRAVE_HISTOGRAM_FUNCTIONS_UMA_HISTOGRAM_ENUMERATION_STRING_ARG=",
"BRAVE_SCOPED_ALLOW_BASE_SYNC_PRIMITIVES_H=",
"BRAVE_INTERNAL_TRACE_LIST_BUILTIN_CATEGORIES(X)=",
]
diff --git a/build/android/bytecode/BUILD.gn b/build/android/bytecode/BUILD.gn
index 9cfc5926896b..1cb2d28c66dd 100644
--- a/build/android/bytecode/BUILD.gn
+++ b/build/android/bytecode/BUILD.gn
@@ -66,6 +66,7 @@ java_binary("java_bytecode_rewriter") {
"//brave/build/android/bytecode/java/org/brave/bytecode/BraveManageSyncSettingsClassAdapter.java",
"//brave/build/android/bytecode/java/org/brave/bytecode/BraveMenuButtonCoordinatorClassAdapter.java",
"//brave/build/android/bytecode/java/org/brave/bytecode/BraveMimeUtilsClassAdapter.java",
+ "//brave/build/android/bytecode/java/org/brave/bytecode/BraveMostVisitedTilesLayoutBaseClassAdapter.java",
"//brave/build/android/bytecode/java/org/brave/bytecode/BraveMostVisitedTilesMediatorClassAdapter.java",
"//brave/build/android/bytecode/java/org/brave/bytecode/BraveMultiInstanceManagerApi31ClassAdapter.java",
"//brave/build/android/bytecode/java/org/brave/bytecode/BraveMultiWindowUtilsClassAdapter.java",
diff --git a/build/android/bytecode/java/org/brave/bytecode/BraveBottomControlsMediatorClassAdapter.java b/build/android/bytecode/java/org/brave/bytecode/BraveBottomControlsMediatorClassAdapter.java
index 26a895862c73..72f6f0e132b9 100644
--- a/build/android/bytecode/java/org/brave/bytecode/BraveBottomControlsMediatorClassAdapter.java
+++ b/build/android/bytecode/java/org/brave/bytecode/BraveBottomControlsMediatorClassAdapter.java
@@ -25,7 +25,7 @@ public BraveBottomControlsMediatorClassAdapter(ClassVisitor visitor) {
deleteField(sBraveBottomControlsMediatorClassName, "mModel");
makeProtectedField(sBottomControlsMediatorClassName, "mModel");
- deleteField(sBraveBottomControlsMediatorClassName, "mBrowserControlsSizer");
- makeProtectedField(sBottomControlsMediatorClassName, "mBrowserControlsSizer");
+ deleteField(sBraveBottomControlsMediatorClassName, "mBottomControlsStacker");
+ makeProtectedField(sBottomControlsMediatorClassName, "mBottomControlsStacker");
}
}
diff --git a/build/android/bytecode/java/org/brave/bytecode/BraveClassAdapter.java b/build/android/bytecode/java/org/brave/bytecode/BraveClassAdapter.java
index e8cac7b0e880..22803d7863b5 100644
--- a/build/android/bytecode/java/org/brave/bytecode/BraveClassAdapter.java
+++ b/build/android/bytecode/java/org/brave/bytecode/BraveClassAdapter.java
@@ -67,6 +67,7 @@ public static ClassVisitor createAdapter(ClassVisitor chain) {
chain = new BraveTranslateCompactInfoBarBaseClassAdapter(chain);
chain = new BraveMenuButtonCoordinatorClassAdapter(chain);
chain = new BraveMimeUtilsClassAdapter(chain);
+ chain = new BraveMostVisitedTilesLayoutBaseClassAdapter(chain);
chain = new BraveMostVisitedTilesMediatorClassAdapter(chain);
chain = new BraveMultiWindowUtilsClassAdapter(chain);
chain = new BraveNewTabPageClassAdapter(chain);
diff --git a/build/android/bytecode/java/org/brave/bytecode/BraveMostVisitedTilesLayoutBaseClassAdapter.java b/build/android/bytecode/java/org/brave/bytecode/BraveMostVisitedTilesLayoutBaseClassAdapter.java
new file mode 100644
index 000000000000..0995d735d4c6
--- /dev/null
+++ b/build/android/bytecode/java/org/brave/bytecode/BraveMostVisitedTilesLayoutBaseClassAdapter.java
@@ -0,0 +1,22 @@
+/* Copyright (c) 2024 The Brave Authors. All rights reserved.
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this file,
+ * You can obtain one at https://mozilla.org/MPL/2.0/. */
+
+package org.brave.bytecode;
+
+import org.objectweb.asm.ClassVisitor;
+
+public class BraveMostVisitedTilesLayoutBaseClassAdapter extends BraveClassVisitor {
+ static String sMostVisitedTilesLayoutClassName =
+ "org/chromium/chrome/browser/suggestions/tile/MostVisitedTilesLayout";
+ static String sBraveMostVisitedTilesLayoutBaseClassName =
+ "org/chromium/chrome/browser/suggestions/tile/BraveMostVisitedTilesLayoutBase";
+
+ public BraveMostVisitedTilesLayoutBaseClassAdapter(ClassVisitor visitor) {
+ super(visitor);
+
+ changeSuperName(
+ sMostVisitedTilesLayoutClassName, sBraveMostVisitedTilesLayoutBaseClassName);
+ }
+}
diff --git a/build/android/bytecode/java/org/brave/bytecode/BraveNewTabPageLayoutClassAdapter.java b/build/android/bytecode/java/org/brave/bytecode/BraveNewTabPageLayoutClassAdapter.java
index b29d14720ea8..9d66148c15bf 100644
--- a/build/android/bytecode/java/org/brave/bytecode/BraveNewTabPageLayoutClassAdapter.java
+++ b/build/android/bytecode/java/org/brave/bytecode/BraveNewTabPageLayoutClassAdapter.java
@@ -26,10 +26,6 @@ public BraveNewTabPageLayoutClassAdapter(ClassVisitor visitor) {
addMethodAnnotation(
sBraveNewTabPageLayoutClassName, "insertSiteSectionView", "Ljava/lang/Override;");
- makePublicMethod(sNewTabPageLayoutClassName, "isScrollableMvtEnabled");
- addMethodAnnotation(
- sBraveNewTabPageLayoutClassName, "isScrollableMvtEnabled", "Ljava/lang/Override;");
-
makePublicMethod(sNewTabPageLayoutClassName, "setSearchProviderTopMargin");
addMethodAnnotation(
sBraveNewTabPageLayoutClassName,
diff --git a/build/android/bytecode/java/org/brave/bytecode/BraveToolbarManagerClassAdapter.java b/build/android/bytecode/java/org/brave/bytecode/BraveToolbarManagerClassAdapter.java
index bc12d85c611d..60ffed0f9be2 100644
--- a/build/android/bytecode/java/org/brave/bytecode/BraveToolbarManagerClassAdapter.java
+++ b/build/android/bytecode/java/org/brave/bytecode/BraveToolbarManagerClassAdapter.java
@@ -23,8 +23,8 @@ public BraveToolbarManagerClassAdapter(ClassVisitor visitor) {
deleteField(sBraveToolbarManagerClassName, "mCallbackController");
makeProtectedField(sToolbarManagerClassName, "mCallbackController");
- deleteField(sBraveToolbarManagerClassName, "mBrowserControlsSizer");
- makeProtectedField(sToolbarManagerClassName, "mBrowserControlsSizer");
+ deleteField(sBraveToolbarManagerClassName, "mBottomControlsStacker");
+ makeProtectedField(sToolbarManagerClassName, "mBottomControlsStacker");
deleteField(sBraveToolbarManagerClassName, "mFullscreenManager");
makeProtectedField(sToolbarManagerClassName, "mFullscreenManager");
diff --git a/build/commands/lib/config.js b/build/commands/lib/config.js
index da992cb25de3..8a2af459d1b7 100644
--- a/build/commands/lib/config.js
+++ b/build/commands/lib/config.js
@@ -512,7 +512,7 @@ Config.prototype.buildArgs = function () {
if (this.useRemoteExec) {
args.rbe_exec_root = this.rbeExecRoot
- args.rbe_bin_dir = path.join(this.nativeRedirectCCDir)
+ args.reclient_bin_dir = path.join(this.nativeRedirectCCDir)
} else {
args.cc_wrapper = path.join(this.nativeRedirectCCDir, 'redirect_cc')
}
diff --git a/build/commands/lib/util.js b/build/commands/lib/util.js
index dcda8fd33ac0..31f39dca88f1 100644
--- a/build/commands/lib/util.js
+++ b/build/commands/lib/util.js
@@ -623,7 +623,7 @@ const util = {
'import("//brave/tools/redirect_cc/args.gni")': null,
use_remoteexec: config.useRemoteExec,
rbe_exec_root: config.rbeExecRoot,
- rbe_bin_dir: config.realRewrapperDir,
+ reclient_bin_dir: config.realRewrapperDir,
real_rewrapper: path.join(config.realRewrapperDir, 'rewrapper'),
}
diff --git a/chromium_src/base/metrics/histogram_functions.h b/chromium_src/base/metrics/histogram_functions.h
new file mode 100644
index 000000000000..f56b87319998
--- /dev/null
+++ b/chromium_src/base/metrics/histogram_functions.h
@@ -0,0 +1,25 @@
+/* Copyright (c) 2024 The Brave Authors. All rights reserved.
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this file,
+ * You can obtain one at https://mozilla.org/MPL/2.0/. */
+
+#ifndef BRAVE_CHROMIUM_SRC_BASE_METRICS_HISTOGRAM_FUNCTIONS_H_
+#define BRAVE_CHROMIUM_SRC_BASE_METRICS_HISTOGRAM_FUNCTIONS_H_
+
+// We use negative integers when defining Brave-specific PageActionIconType
+// values to avoid conflicting with upstream values. However,
+// UmaHistogramEnumeration performs a DCHECK_LE to confirm that all
+// PageActionIconType values are less than T::kMaxValue and it casts the sample
+// to an unsigned int, so we fail the DCHECK. This override only performs the
+// DCHECK if the sample is non-negative.
+#define BRAVE_HISTOGRAM_FUNCTIONS_UMA_HISTOGRAM_ENUMERATION_STRING_ARG \
+ if (static_cast(sample) >= 0)
+#define BRAVE_HISTOGRAM_FUNCTIONS_UMA_HISTOGRAM_ENUMERATION_CHAR_POINTER_ARG \
+ if (static_cast(sample) >= 0)
+
+#include "src/base/metrics/histogram_functions.h" // IWYU pragma: export
+
+#undef BRAVE_HISTOGRAM_FUNCTIONS_UMA_HISTOGRAM_ENUMERATION_STRING_ARG
+#undef BRAVE_HISTOGRAM_FUNCTIONS_UMA_HISTOGRAM_ENUMERATION_CHAR_POINTER_ARG
+
+#endif // BRAVE_CHROMIUM_SRC_BASE_METRICS_HISTOGRAM_FUNCTIONS_H_
diff --git a/chromium_src/chrome/browser/android/preferences/about_settings_bridge.cc b/chromium_src/chrome/browser/android/preferences/about_settings_bridge.cc
index e824a49a610c..69ade9c2e4d9 100644
--- a/chromium_src/chrome/browser/android/preferences/about_settings_bridge.cc
+++ b/chromium_src/chrome/browser/android/preferences/about_settings_bridge.cc
@@ -3,6 +3,7 @@
* License, v. 2.0. If a copy of the MPL was not distributed with this file,
* You can obtain one at http://mozilla.org/MPL/2.0/. */
+#include "base/android/jni_string.h"
#include "brave/components/version_info/version_info.h"
#include "chrome/android/chrome_jni_headers/AboutSettingsBridge_jni.h"
diff --git a/chromium_src/chrome/browser/android/signin/signin_manager_android.cc b/chromium_src/chrome/browser/android/signin/signin_manager_android.cc
index d2d11692423e..7062d1fc224c 100644
--- a/chromium_src/chrome/browser/android/signin/signin_manager_android.cc
+++ b/chromium_src/chrome/browser/android/signin/signin_manager_android.cc
@@ -5,6 +5,7 @@
#include "chrome/browser/android/signin/signin_manager_android.h"
+#include "base/android/jni_string.h"
#include "brave/build/android/jni_headers/BraveSigninManager_jni.h"
#include "chrome/android/chrome_jni_headers/SigninManagerImpl_jni.h"
diff --git a/chromium_src/chrome/browser/browser_features.cc b/chromium_src/chrome/browser/browser_features.cc
index 184208814320..61d2b2a91de2 100644
--- a/chromium_src/chrome/browser/browser_features.cc
+++ b/chromium_src/chrome/browser/browser_features.cc
@@ -13,12 +13,8 @@ OVERRIDE_FEATURE_DEFAULT_STATES({{
{kCertificateTransparencyAskBeforeEnabling,
base::FEATURE_ENABLED_BY_DEFAULT},
-#if BUILDFLAG(IS_WIN)
- {kAppBoundEncryptionMetrics, base::FEATURE_DISABLED_BY_DEFAULT},
-#endif
{kBookmarkTriggerForPrerender2, base::FEATURE_DISABLED_BY_DEFAULT},
{kDestroyProfileOnBrowserClose, base::FEATURE_DISABLED_BY_DEFAULT},
- {kFedCmWithoutThirdPartyCookies, base::FEATURE_DISABLED_BY_DEFAULT},
// Google has asked embedders not to enforce these pins:
// https://groups.google.com/a/chromium.org/g/embedder-dev/c/XsNTwEiN1lI/m/TMXh-ZvOAAAJ
{kKeyPinningComponentUpdater, base::FEATURE_DISABLED_BY_DEFAULT},
diff --git a/chromium_src/chrome/browser/flags/android/chrome_feature_list.cc b/chromium_src/chrome/browser/flags/android/chrome_feature_list.cc
index bd5f72844ae5..8293da58fcc7 100644
--- a/chromium_src/chrome/browser/flags/android/chrome_feature_list.cc
+++ b/chromium_src/chrome/browser/flags/android/chrome_feature_list.cc
@@ -60,8 +60,9 @@ namespace android {
OVERRIDE_FEATURE_DEFAULT_STATES({{
{kAddToHomescreenIPH, base::FEATURE_DISABLED_BY_DEFAULT},
{kAndroidHub, base::FEATURE_DISABLED_BY_DEFAULT},
+ {tab_groups::kAndroidTabGroupStableIds, base::FEATURE_DISABLED_BY_DEFAULT},
{kIncognitoReauthenticationForAndroid, base::FEATURE_ENABLED_BY_DEFAULT},
- {kShowScrollableMVTOnNTPAndroid, base::FEATURE_ENABLED_BY_DEFAULT},
+ {kMagicStackAndroid, base::FEATURE_DISABLED_BY_DEFAULT},
{kStartSurfaceAndroid, base::FEATURE_DISABLED_BY_DEFAULT},
{kSurfacePolish, base::FEATURE_DISABLED_BY_DEFAULT},
{kAdaptiveButtonInTopToolbarCustomizationV2,
diff --git a/chromium_src/chrome/browser/metrics/variations/google_groups_updater_service_factory.cc b/chromium_src/chrome/browser/metrics/variations/google_groups_updater_service_factory.cc
new file mode 100644
index 000000000000..d7748fbe5a61
--- /dev/null
+++ b/chromium_src/chrome/browser/metrics/variations/google_groups_updater_service_factory.cc
@@ -0,0 +1,57 @@
+/* Copyright (c) 2024 The Brave Authors. All rights reserved.
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this file,
+ * You can obtain one at https://mozilla.org/MPL/2.0/. */
+
+#include "chrome/browser/metrics/variations/google_groups_updater_service_factory.h"
+
+#include "chrome/browser/profiles/profile.h"
+#include "components/keyed_service/core/keyed_service.h"
+#include "components/variations/service/google_groups_updater_service.h"
+
+// static
+GoogleGroupsUpdaterServiceFactory*
+GoogleGroupsUpdaterServiceFactory::GetInstance() {
+ return nullptr;
+}
+
+// static
+GoogleGroupsUpdaterService*
+GoogleGroupsUpdaterServiceFactory::GetForBrowserContext(
+ content::BrowserContext* context) {
+ return nullptr;
+}
+
+GoogleGroupsUpdaterServiceFactory::GoogleGroupsUpdaterServiceFactory()
+ : ProfileKeyedServiceFactory(
+ "GoogleGroupsUpdaterService",
+ // We only want instances of this service corresponding to regular
+ // profiles, as those are the only ones that can have sync data to
+ // copy from.
+ // In the case of Incognito, the OTR profile will not have the service
+ // created however the owning regular profile will be loaded and have
+ // the service created.
+ ProfileSelections::Builder()
+ .WithRegular(ProfileSelection::kOriginalOnly)
+ .WithGuest(ProfileSelection::kNone)
+ .WithSystem(ProfileSelection::kNone)
+ .WithAshInternals(ProfileSelection::kNone)
+ .Build()) {}
+
+std::unique_ptr
+GoogleGroupsUpdaterServiceFactory::BuildServiceInstanceForBrowserContext(
+ content::BrowserContext* context) const {
+ return nullptr;
+}
+
+bool GoogleGroupsUpdaterServiceFactory::ServiceIsCreatedWithBrowserContext()
+ const {
+ return true;
+}
+
+bool GoogleGroupsUpdaterServiceFactory::ServiceIsNULLWhileTesting() const {
+ return true;
+}
+
+void GoogleGroupsUpdaterServiceFactory::RegisterProfilePrefs(
+ user_prefs::PrefRegistrySyncable* registry) {}
diff --git a/chromium_src/chrome/browser/notifications/notification_platform_bridge_android.cc b/chromium_src/chrome/browser/notifications/notification_platform_bridge_android.cc
index 48a516ad2bdc..afcce770bf89 100644
--- a/chromium_src/chrome/browser/notifications/notification_platform_bridge_android.cc
+++ b/chromium_src/chrome/browser/notifications/notification_platform_bridge_android.cc
@@ -5,8 +5,10 @@
#include "chrome/browser/notifications/notification_platform_bridge_android.h"
+#include "base/android/jni_string.h"
#include "brave/build/android/jni_headers/BraveNotificationPlatformBridge_jni.h"
#include "third_party/skia/include/core/SkBitmap.h"
+#include "ui/gfx/android/java_bitmap.h"
// Must be at the end because it uses SkBitmap.
#include "chrome/android/chrome_jni_headers/NotificationPlatformBridge_jni.h"
diff --git a/chromium_src/chrome/browser/renderer_context_menu/render_view_context_menu.cc b/chromium_src/chrome/browser/renderer_context_menu/render_view_context_menu.cc
index 4b3ad388b20d..a76988830506 100644
--- a/chromium_src/chrome/browser/renderer_context_menu/render_view_context_menu.cc
+++ b/chromium_src/chrome/browser/renderer_context_menu/render_view_context_menu.cc
@@ -744,7 +744,7 @@ bool BraveRenderViewContextMenu::IsIPFSCommandIdEnabled(int command) const {
return !params_.selection_text.empty() &&
params_.media_type == ContextMenuDataMediaType::kNone;
default:
- NOTREACHED();
+ NOTREACHED_IN_MIGRATION();
}
return false;
}
diff --git a/chromium_src/chrome/browser/renderer_context_menu/render_view_context_menu.h b/chromium_src/chrome/browser/renderer_context_menu/render_view_context_menu.h
index 901d1d8a0e36..17e2caaa77d1 100644
--- a/chromium_src/chrome/browser/renderer_context_menu/render_view_context_menu.h
+++ b/chromium_src/chrome/browser/renderer_context_menu/render_view_context_menu.h
@@ -25,7 +25,9 @@ class BraveRenderViewContextMenu;
RegisterMenuShownCallbackForTesting( \
base::OnceCallback cb); \
static void RegisterMenuShownCallbackForTesting_unused
+#define AppendReadingModeItem virtual AppendReadingModeItem
#include "src/chrome/browser/renderer_context_menu/render_view_context_menu.h" // IWYU pragma: export
+#undef AppendReadingModeItem
#undef RegisterMenuShownCallbackForTesting
#undef RenderViewContextMenu
#undef BRAVE_RENDER_VIEW_CONTEXT_MENU_H_
@@ -46,6 +48,8 @@ class BraveRenderViewContextMenu : public RenderViewContextMenu_Chromium {
static void AddSpellCheckServiceItem(ui::SimpleMenuModel* menu,
bool is_checked);
void AddAccessibilityLabelsServiceItem(bool is_checked) override;
+ // Do nothing as we have our own speed reader
+ void AppendReadingModeItem() override {}
private:
friend class BraveRenderViewContextMenuTest;
diff --git a/chromium_src/chrome/browser/shell_integration.cc b/chromium_src/chrome/browser/shell_integration.cc
index bb6bebff4d2b..2890795cb85b 100644
--- a/chromium_src/chrome/browser/shell_integration.cc
+++ b/chromium_src/chrome/browser/shell_integration.cc
@@ -40,7 +40,7 @@ std::u16string GetAppShortcutsSubdirName() {
id = IDS_APP_SHORTCUTS_SUBDIR_NAME_BRAVE_DEVELOPMENT;
break;
default:
- NOTREACHED();
+ NOTREACHED_IN_MIGRATION();
break;
}
diff --git a/chromium_src/chrome/browser/ui/autofill/chrome_autofill_client.cc b/chromium_src/chrome/browser/ui/autofill/chrome_autofill_client.cc
index 6fa7cf186676..0861c4609371 100644
--- a/chromium_src/chrome/browser/ui/autofill/chrome_autofill_client.cc
+++ b/chromium_src/chrome/browser/ui/autofill/chrome_autofill_client.cc
@@ -11,6 +11,7 @@
#include "chrome/browser/ui/autofill/payments/webauthn_dialog_controller_impl.h"
#include "chrome/browser/ui/page_info/page_info_dialog.h"
#include "components/autofill/core/browser/browser_autofill_manager.h"
+#include "components/autofill/core/browser/form_data_importer.h"
#include "components/optimization_guide/core/optimization_guide_features.h"
#include "mojo/public/cpp/bindings/associated_receiver.h"
diff --git a/chromium_src/chrome/browser/ui/browser.cc b/chromium_src/chrome/browser/ui/browser.cc
index fecead752356..402cedb0718a 100644
--- a/chromium_src/chrome/browser/ui/browser.cc
+++ b/chromium_src/chrome/browser/ui/browser.cc
@@ -4,6 +4,7 @@
* You can obtain one at http://mozilla.org/MPL/2.0/. */
#include "brave/browser/ui/brave_browser.h"
+#include "brave/browser/ui/brave_browser_actions.h"
#include "brave/browser/ui/brave_browser_command_controller.h"
#include "brave/browser/ui/brave_browser_content_setting_bubble_model_delegate.h"
#include "brave/browser/ui/brave_tab_strip_model_delegate.h"
@@ -25,9 +26,11 @@
#define BookmarkTabHelper BraveBookmarkTabHelper
#endif
#define BrowserTabStripModelDelegate BraveTabStripModelDelegate
+#define BrowserActions BraveBrowserActions
#include "src/chrome/browser/ui/browser.cc"
+#undef BrowserActions
#undef BrowserTabStripModelDelegate
#undef BrowserLocationBarModelDelegate
#undef BrowserContentSettingBubbleModelDelegate
diff --git a/chromium_src/chrome/browser/ui/browser_actions.h b/chromium_src/chrome/browser/ui/browser_actions.h
new file mode 100644
index 000000000000..01e174fc80b2
--- /dev/null
+++ b/chromium_src/chrome/browser/ui/browser_actions.h
@@ -0,0 +1,18 @@
+/* Copyright (c) 2024 The Brave Authors. All rights reserved.
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this file,
+ * You can obtain one at https://mozilla.org/MPL/2.0/. */
+
+#ifndef BRAVE_CHROMIUM_SRC_CHROME_BROWSER_UI_BROWSER_ACTIONS_H_
+#define BRAVE_CHROMIUM_SRC_CHROME_BROWSER_UI_BROWSER_ACTIONS_H_
+
+#define InitializeBrowserActions \
+ UnUsed() {} \
+ friend class BraveBrowserActions; \
+ void InitializeBrowserActions
+
+#include "src/chrome/browser/ui/browser_actions.h" // IWYU pragma: export
+
+#undef InitializeBrowserActions
+
+#endif // BRAVE_CHROMIUM_SRC_CHROME_BROWSER_UI_BROWSER_ACTIONS_H_
diff --git a/chromium_src/chrome/browser/ui/color/chrome_color_mixers.cc b/chromium_src/chrome/browser/ui/color/chrome_color_mixers.cc
new file mode 100644
index 000000000000..ae3afd78790b
--- /dev/null
+++ b/chromium_src/chrome/browser/ui/color/chrome_color_mixers.cc
@@ -0,0 +1,35 @@
+/* Copyright (c) 2024 The Brave Authors. All rights reserved.
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this file,
+ * You can obtain one at https://mozilla.org/MPL/2.0/. */
+
+#include "chrome/browser/ui/color/chrome_color_mixers.h"
+
+#include "chrome/browser/ui/color/material_chrome_color_mixer.h"
+#include "chrome/browser/ui/color/material_omnibox_color_mixer.h"
+#include "chrome/browser/ui/color/material_side_panel_color_mixer.h"
+#include "chrome/browser/ui/color/material_tab_strip_color_mixer.h"
+
+namespace {
+
+// There are some new color mixers that we don't need to call here.
+// Replace them with this empty color.
+// As call order of color mixer is important, we call some of them
+// from where we want to. Just changing order could overwrite previous
+// colors.
+void EmptyColorMixer(ui::ColorProvider* provider,
+ const ui::ColorProviderKey& key) {}
+
+} // namespace
+
+#define AddMaterialChromeColorMixer EmptyColorMixer
+#define AddMaterialOmniboxColorMixer EmptyColorMixer
+#define AddMaterialSidePanelColorMixer EmptyColorMixer
+#define AddMaterialTabStripColorMixer EmptyColorMixer
+
+#include "src/chrome/browser/ui/color/chrome_color_mixers.cc"
+
+#undef AddMaterialTabStripColorMixer
+#undef AddMaterialSidePanelColorMixer
+#undef AddMaterialOmniboxColorMixer
+#undef AddMaterialChromeColorMixer
diff --git a/chromium_src/chrome/browser/ui/color/material_omnibox_color_mixer.cc b/chromium_src/chrome/browser/ui/color/material_omnibox_color_mixer.cc
new file mode 100644
index 000000000000..efd328cc05b3
--- /dev/null
+++ b/chromium_src/chrome/browser/ui/color/material_omnibox_color_mixer.cc
@@ -0,0 +1,11 @@
+/* Copyright (c) 2024 The Brave Authors. All rights reserved.
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this file,
+ * You can obtain one at https://mozilla.org/MPL/2.0/. */
+
+#include "chrome/browser/ui/color/material_omnibox_color_mixer.h"
+
+void AddMaterialOmniboxColorMixer(ui::ColorProvider* provider,
+ const ui::ColorProviderKey& key) {
+ // Upstream's material omnibox colors are currently not used.
+}
diff --git a/chromium_src/chrome/browser/ui/color/material_tab_strip_color_mixer.cc b/chromium_src/chrome/browser/ui/color/material_tab_strip_color_mixer.cc
new file mode 100644
index 000000000000..0f5149a04ef0
--- /dev/null
+++ b/chromium_src/chrome/browser/ui/color/material_tab_strip_color_mixer.cc
@@ -0,0 +1,15 @@
+/* Copyright (c) 2024 The Brave Authors. All rights reserved.
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this file,
+ * You can obtain one at https://mozilla.org/MPL/2.0/. */
+
+#include "chrome/browser/ui/color/material_tab_strip_color_mixer.h"
+
+#define AddMaterialTabStripColorMixer AddMaterialTabStripColorMixer_ChromiumImpl
+#include "src/chrome/browser/ui/color/material_tab_strip_color_mixer.cc"
+#undef AddMaterialTabStripColorMixer
+
+void AddMaterialTabStripColorMixer(ui::ColorProvider* provider,
+ const ui::ColorProviderKey& key) {
+ // Upstream's material tab strip colors are currently not used.
+}
diff --git a/chromium_src/chrome/browser/ui/tabs/recent_tabs_sub_menu_model_unittest.cc b/chromium_src/chrome/browser/ui/tabs/recent_tabs_sub_menu_model_unittest.cc
index bb045d406c0a..83779f090906 100644
--- a/chromium_src/chrome/browser/ui/tabs/recent_tabs_sub_menu_model_unittest.cc
+++ b/chromium_src/chrome/browser/ui/tabs/recent_tabs_sub_menu_model_unittest.cc
@@ -7,10 +7,9 @@
#include "base/strings/string_util.h"
-// Disabling these tests because they refer g_brave_browser_process which is not
-// initialized in unit tests, is null and so they are crashing.
-// Not related to change in RecentTabsSubMenuModel for additional `More...`
-// menu item
+// Disabling these tests because they refer to g_brave_browser_process which is
+// not initialized in unit tests, is null and so they are crashing. Not related
+// to change in RecentTabsSubMenuModel for additional `More...` menu item
#define RecentlyClosedTabsFromCurrentSession \
DISABLED_RecentlyClosedTabsFromCurrentSession
@@ -55,22 +54,21 @@
#undef RecentlyClosedTabsFromCurrentSession
#undef RecentlyClosedGroupsFromCurrentSession
-// This override is in place because we replace the "Sign in to see tabs
-// from other devices" menu command with the non-command string "No tabs from
-// other devices" and need to adjust the data. Additionally, we disable
-// kSidePanelPinning feature, so we need to also remove the "History Cluster"
-// command from the data if added as the 2nd item.
+// This override is in place because we must adjust the menu model to match our
+// expectations
void RecentTabsSubMenuModelTest::VerifyModel(
const RecentTabsSubMenuModel& model,
base::span data) {
std::vector v_data{data.begin(), data.end()};
- if (GetParam()) {
- v_data.erase(std::next(v_data.begin()));
- }
+
+ // We replace the "Sign in to see tabs from other devices" menu command with
+ // the non-command string "No tabs from other devices" and need to adjust the
+ // data
auto& item_data = v_data.back();
if (item_data.type == ui::MenuModel::TYPE_COMMAND) {
item_data.enabled = false;
}
+
::VerifyModel(model, base::make_span(v_data.begin(), v_data.size()));
}
diff --git a/chromium_src/chrome/browser/ui/tabs/tab_strip_model.cc b/chromium_src/chrome/browser/ui/tabs/tab_strip_model.cc
new file mode 100644
index 000000000000..1d64c4cc796b
--- /dev/null
+++ b/chromium_src/chrome/browser/ui/tabs/tab_strip_model.cc
@@ -0,0 +1,12 @@
+/* Copyright (c) 2024 The Brave Authors. All rights reserved.
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this file,
+ * You can obtain one at https://mozilla.org/MPL/2.0/. */
+
+#include "chrome/browser/ui/tabs/tab_strip_model.h"
+
+#include "chrome/browser/ui/views/tabs/tab_drag_controller.h"
+
+#define TabDragController TabDragControllerChromium
+#include "src/chrome/browser/ui/tabs/tab_strip_model.cc" // IWYU pragma: export
+#undef TabDragController
diff --git a/chromium_src/chrome/browser/ui/tabs/tab_strip_model.h b/chromium_src/chrome/browser/ui/tabs/tab_strip_model.h
index c3d4e18b2ca6..9f027f4ef0c3 100644
--- a/chromium_src/chrome/browser/ui/tabs/tab_strip_model.h
+++ b/chromium_src/chrome/browser/ui/tabs/tab_strip_model.h
@@ -9,10 +9,12 @@
#define SelectRelativeTab virtual SelectRelativeTab
#define TAB_STRIP_MODEL_H_ friend class BraveTabStripModel;
#define IsReadLaterSupportedForAny virtual IsReadLaterSupportedForAny
+#define TabDragController TabDragControllerChromium
#include "src/chrome/browser/ui/tabs/tab_strip_model.h" // IWYU pragma: export
#undef IsReadLaterSupportedForAny
#undef SelectRelativeTab
#undef TAB_STRIP_MODEL_H_
+#undef TabDragController
#endif // BRAVE_CHROMIUM_SRC_CHROME_BROWSER_UI_TABS_TAB_STRIP_MODEL_H_
diff --git a/chromium_src/chrome/browser/ui/tabs/tab_style.cc b/chromium_src/chrome/browser/ui/tabs/tab_style.cc
index 98fe3ddb3e51..f6a495648386 100644
--- a/chromium_src/chrome/browser/ui/tabs/tab_style.cc
+++ b/chromium_src/chrome/browser/ui/tabs/tab_style.cc
@@ -5,6 +5,7 @@
#include "brave/browser/ui/tabs/brave_tab_style.h"
-#define BRAVE_TAB_STYLE_GET return new BraveTabStyle();
+#define BRAVE_TAB_STYLE_GET \
+ return new BraveTabStyle();
#include "src/chrome/browser/ui/tabs/tab_style.cc"
#undef BRAVE_TAB_STYLE_GET
diff --git a/chromium_src/chrome/browser/ui/ui_features.cc b/chromium_src/chrome/browser/ui/ui_features.cc
index 0778fab2ad45..995f7adf1c98 100644
--- a/chromium_src/chrome/browser/ui/ui_features.cc
+++ b/chromium_src/chrome/browser/ui/ui_features.cc
@@ -14,7 +14,6 @@ OVERRIDE_FEATURE_DEFAULT_STATES({{
{kChromeLabs, base::FEATURE_DISABLED_BY_DEFAULT},
#if !BUILDFLAG(IS_ANDROID)
{kHaTSWebUI, base::FEATURE_DISABLED_BY_DEFAULT},
- {kSidePanelPinning, base::FEATURE_DISABLED_BY_DEFAULT},
#endif
{kTabHoverCardImages, base::FEATURE_DISABLED_BY_DEFAULT},
}});
diff --git a/chromium_src/chrome/browser/ui/views/bubble/webui_bubble_dialog_view.cc b/chromium_src/chrome/browser/ui/views/bubble/webui_bubble_dialog_view.cc
index 875c36895f37..b9cf8487e63f 100644
--- a/chromium_src/chrome/browser/ui/views/bubble/webui_bubble_dialog_view.cc
+++ b/chromium_src/chrome/browser/ui/views/bubble/webui_bubble_dialog_view.cc
@@ -5,6 +5,10 @@
#include "chrome/browser/ui/views/bubble/webui_bubble_dialog_view.h"
+#if defined(USE_AURA)
+#include "ui/aura/window.h"
+#endif
+
// In the `WebUIBubbleDialogView` constructor, give the bubble rounded corners.
// `SetPaintClientToLayer` is required for proper cross-platform rounded corner
// clipping. See `BubbleDialogDelegate::CreateClientView` for more.
diff --git a/chromium_src/chrome/browser/ui/views/frame/browser_caption_button_container_win.cc b/chromium_src/chrome/browser/ui/views/frame/browser_caption_button_container_win.cc
index 6adfd8c1a7ca..848ba78d841e 100644
--- a/chromium_src/chrome/browser/ui/views/frame/browser_caption_button_container_win.cc
+++ b/chromium_src/chrome/browser/ui/views/frame/browser_caption_button_container_win.cc
@@ -7,9 +7,7 @@
#include "brave/browser/ui/views/frame/brave_browser_frame_view_win.h"
#include "brave/browser/ui/views/tabs/vertical_tab_utils.h"
-#include "brave/components/constants/pref_names.h"
#include "chrome/browser/profiles/profile.h"
-#include "chrome/browser/ui/views/tab_search_bubble_host.h"
#include "chrome/browser/win/titlebar_config.h"
#include "ui/base/metadata/metadata_impl_macros.h"
@@ -31,39 +29,9 @@ BrowserCaptionButtonContainer::BrowserCaptionButtonContainer(
BrowserFrameViewWin* frame_view)
: BrowserCaptionButtonContainer_ChromiumImpl(frame_view),
frame_view_(frame_view) {
- if (WindowFrameUtil::IsWindowsTabSearchCaptionButtonEnabled(
- frame_view_->browser_view()->browser())) {
- pref_change_registrar_.Init(
- frame_view_->browser_view()->GetProfile()->GetPrefs());
- pref_change_registrar_.Add(
- kTabsSearchShow,
- base::BindRepeating(&BrowserCaptionButtonContainer::OnPreferenceChanged,
- base::Unretained(this)));
- // Show the correct value in settings on initial start
- UpdateSearchTabsButtonState();
- }
}
BrowserCaptionButtonContainer::~BrowserCaptionButtonContainer() = default;
-void BrowserCaptionButtonContainer::OnPreferenceChanged(
- const std::string& pref_name) {
- if (pref_name == kTabsSearchShow) {
- UpdateSearchTabsButtonState();
- return;
- }
-}
-
-void BrowserCaptionButtonContainer::UpdateSearchTabsButtonState() {
- auto* tab_search_bubble_host = GetTabSearchBubbleHost();
- if (tab_search_bubble_host) {
- auto* button = tab_search_bubble_host->button();
- bool is_tab_search_visible =
- frame_view_->browser_view()->GetProfile()->GetPrefs()->GetBoolean(
- kTabsSearchShow);
- button->SetVisible(is_tab_search_visible);
- }
-}
-
BEGIN_METADATA(BrowserCaptionButtonContainer)
END_METADATA
diff --git a/chromium_src/chrome/browser/ui/views/frame/browser_caption_button_container_win.h b/chromium_src/chrome/browser/ui/views/frame/browser_caption_button_container_win.h
index 5ce2aa61a0f4..2212e954ebc7 100644
--- a/chromium_src/chrome/browser/ui/views/frame/browser_caption_button_container_win.h
+++ b/chromium_src/chrome/browser/ui/views/frame/browser_caption_button_container_win.h
@@ -6,9 +6,6 @@
#ifndef BRAVE_CHROMIUM_SRC_CHROME_BROWSER_UI_VIEWS_FRAME_BROWSER_CAPTION_BUTTON_CONTAINER_WIN_H_
#define BRAVE_CHROMIUM_SRC_CHROME_BROWSER_UI_VIEWS_FRAME_BROWSER_CAPTION_BUTTON_CONTAINER_WIN_H_
-#include
-
-#include "components/prefs/pref_change_registrar.h"
#include "ui/base/metadata/metadata_header_macros.h"
#define BrowserCaptionButtonContainer BrowserCaptionButtonContainer_ChromiumImpl
@@ -31,11 +28,7 @@ class BrowserCaptionButtonContainer
~BrowserCaptionButtonContainer() override;
private:
- void UpdateSearchTabsButtonState();
- void OnPreferenceChanged(const std::string& pref_name);
-
const raw_ptr frame_view_;
- PrefChangeRegistrar pref_change_registrar_;
};
#endif // BRAVE_CHROMIUM_SRC_CHROME_BROWSER_UI_VIEWS_FRAME_BROWSER_CAPTION_BUTTON_CONTAINER_WIN_H_
diff --git a/chromium_src/chrome/browser/ui/views/frame/browser_frame_view_layout_linux.cc b/chromium_src/chrome/browser/ui/views/frame/browser_frame_view_layout_linux.cc
index 46a4f6759505..078cb9ed50e9 100644
--- a/chromium_src/chrome/browser/ui/views/frame/browser_frame_view_layout_linux.cc
+++ b/chromium_src/chrome/browser/ui/views/frame/browser_frame_view_layout_linux.cc
@@ -52,11 +52,3 @@ void BrowserFrameViewLayoutLinux::SetBoundsForButton(
views::kCaptionButtonInkDropDefaultCornerRadius);
}
}
-
-int BrowserFrameViewLayoutLinux::GetNonClientRestoredExtraThickness() const {
- if (base::FeatureList::IsEnabled(
- tabs::features::kBraveHorizontalTabsUpdate)) {
- return 0;
- }
- return OpaqueBrowserFrameViewLayout::GetNonClientRestoredExtraThickness();
-}
diff --git a/chromium_src/chrome/browser/ui/views/frame/browser_frame_view_layout_linux.h b/chromium_src/chrome/browser/ui/views/frame/browser_frame_view_layout_linux.h
index cc877d462bf7..08c6fc238c44 100644
--- a/chromium_src/chrome/browser/ui/views/frame/browser_frame_view_layout_linux.h
+++ b/chromium_src/chrome/browser/ui/views/frame/browser_frame_view_layout_linux.h
@@ -12,7 +12,6 @@
GetInputInsets_Unused(); \
void SetBoundsForButton(views::FrameButton button_id, views::Button* button, \
ButtonAlignment align) override; \
- int GetNonClientRestoredExtraThickness() const override; \
gfx::Insets GetInputInsets
#include "src/chrome/browser/ui/views/frame/browser_frame_view_layout_linux.h" // IWYU pragma: export
diff --git a/chromium_src/chrome/browser/ui/views/frame/browser_frame_view_win.cc b/chromium_src/chrome/browser/ui/views/frame/browser_frame_view_win.cc
deleted file mode 100644
index d1a8510771d2..000000000000
--- a/chromium_src/chrome/browser/ui/views/frame/browser_frame_view_win.cc
+++ /dev/null
@@ -1,25 +0,0 @@
-/* Copyright (c) 2023 The Brave Authors. All rights reserved.
- * This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this file,
- * You can obtain one at https://mozilla.org/MPL/2.0/. */
-
-#include "brave/browser/ui/tabs/features.h"
-#include "ui/base/ui_base_features.h"
-
-namespace features {
-
-bool BraveHorizontalTabsUpdateEnabled() {
- return tabs::features::HorizontalTabsUpdateEnabled();
-}
-
-} // namespace features
-
-// When updated horizontal tabs are enabled, we want to use the same layout
-// logic as upstream's "Refresh2023" for tab strip positioning and for the
-// window caption button height. When upstream's feature flag is removed, this
-// define can also be removed.
-#define IsChromeRefresh2023 BraveHorizontalTabsUpdateEnabled
-
-#include "src/chrome/browser/ui/views/frame/browser_frame_view_win.cc" // IWYU pragma: export
-
-#undef IsChromeRefresh2023
diff --git a/chromium_src/chrome/browser/ui/views/omnibox/rounded_omnibox_results_frame.cc b/chromium_src/chrome/browser/ui/views/omnibox/rounded_omnibox_results_frame.cc
index 2350f6dd826b..e8b3795731a0 100644
--- a/chromium_src/chrome/browser/ui/views/omnibox/rounded_omnibox_results_frame.cc
+++ b/chromium_src/chrome/browser/ui/views/omnibox/rounded_omnibox_results_frame.cc
@@ -3,8 +3,16 @@
* License, v. 2.0. If a copy of the MPL was not distributed with this file,
* You can obtain one at http://mozilla.org/MPL/2.0/. */
+#include "ui/views/layout/layout_provider.h"
+
+// Set our radius value directly as kOmniboxExpandedRadius is mapped to
+// more general token ShapeSysTokens::kMedium.
+#define kOmniboxExpandedRadius kOmniboxExpandedRadius); (corner_radius = 4
+
#include "src/chrome/browser/ui/views/omnibox/rounded_omnibox_results_frame.cc"
+#undef kOmniboxExpandedRadius
+
// static
int RoundedOmniboxResultsFrame::GetShadowElevation() {
// Expose a constant defined in cc file.
diff --git a/chromium_src/chrome/browser/ui/views/page_info/page_info_cookies_content_view.cc b/chromium_src/chrome/browser/ui/views/page_info/page_info_cookies_content_view.cc
index 1c481313f44a..4ab4982f1186 100644
--- a/chromium_src/chrome/browser/ui/views/page_info/page_info_cookies_content_view.cc
+++ b/chromium_src/chrome/browser/ui/views/page_info/page_info_cookies_content_view.cc
@@ -13,7 +13,14 @@
void PageInfoCookiesContentView::SetCookieInfo(
const CookiesNewInfo& cookie_info) {
- SetCookieInfo_ChromiumImpl(cookie_info);
+ // We need to call SetCookieInfo with controls_visible = false, or the layout
+ // will DCHECK since we hide the cookie container. We can't copy the existing
+ // struct when doing this because its copy constructor is implicitly deleted,
+ // so we just copy over the only other setting that's relevant for us.
+ CookiesNewInfo mutable_cookie_info;
+ mutable_cookie_info.allowed_sites_count = cookie_info.allowed_sites_count;
+ mutable_cookie_info.controls_visible = false;
+ SetCookieInfo_ChromiumImpl(mutable_cookie_info);
// Hide cookies description and link to settings.
cookies_description_label_->SetVisible(false);
diff --git a/chromium_src/chrome/browser/ui/views/permissions/permission_prompt_bubble_base_view.cc b/chromium_src/chrome/browser/ui/views/permissions/permission_prompt_bubble_base_view.cc
index cfee359eb064..1e00888f9753 100644
--- a/chromium_src/chrome/browser/ui/views/permissions/permission_prompt_bubble_base_view.cc
+++ b/chromium_src/chrome/browser/ui/views/permissions/permission_prompt_bubble_base_view.cc
@@ -423,7 +423,7 @@ void AddFootnoteViewIfNeeded(
AddAdditionalWidevineViewControlsIfNeeded(this, delegate_->Requests()); \
auto* permission_lifetime_view = \
AddPermissionLifetimeComboboxIfNeeded(this, delegate_.get()); \
- AddFootnoteViewIfNeeded(this, delegate_->Requests(), browser_); \
+ AddFootnoteViewIfNeeded(this, delegate_->Requests(), browser()); \
if (permission_lifetime_view) { \
set_fixed_width( \
std::max(GetPreferredSize().width(), \
@@ -431,7 +431,7 @@ void AddFootnoteViewIfNeeded(
margins().width()); \
set_should_ignore_snapping(true); \
} \
- AddGeolocationDescriptionIfNeeded(this, delegate_.get(), browser_);
+ AddGeolocationDescriptionIfNeeded(this, delegate_.get(), browser());
#include "src/chrome/browser/ui/views/permissions/permission_prompt_bubble_base_view.cc"
#undef BRAVE_PERMISSION_PROMPT_BUBBLE_BASE_VIEW
diff --git a/chromium_src/chrome/browser/ui/views/profiles/profile_menu_view_base.cc b/chromium_src/chrome/browser/ui/views/profiles/profile_menu_view_base.cc
new file mode 100644
index 000000000000..c60dec409ef1
--- /dev/null
+++ b/chromium_src/chrome/browser/ui/views/profiles/profile_menu_view_base.cc
@@ -0,0 +1,19 @@
+/* Copyright (c) 2024 The Brave Authors. All rights reserved.
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this file,
+ * You can obtain one at https://mozilla.org/MPL/2.0/. */
+
+// Now that ChromeRefresh2023 is active, ProfileMenuViewBase uses
+// identity_info_color_callback_ to draw its background which results in
+// unwanted changes to the menu UI. This switches us back to continue using the
+// profile_background_container_ to set the background as was done pre-refresh.
+#define BRAVE_PROFILE_MENU_VIEW_BASE_SET_BACKGROUND \
+ identity_info_color_callback_ = base::DoNothing(); \
+ profile_background_container_->SetBackground( \
+ views::CreateBackgroundFromPainter( \
+ views::Painter::CreateSolidRoundRectPainter( \
+ background_color, /*radius=*/0, kBackgroundInsets)));
+
+#include "src/chrome/browser/ui/views/profiles/profile_menu_view_base.cc"
+
+#undef BRAVE_PROFILE_MENU_VIEW_BASE_SET_BACKGROUND
diff --git a/chromium_src/chrome/browser/ui/views/side_panel/side_panel_coordinator.cc b/chromium_src/chrome/browser/ui/views/side_panel/side_panel_coordinator.cc
index 8baba8d99881..f83d9a86e438 100644
--- a/chromium_src/chrome/browser/ui/views/side_panel/side_panel_coordinator.cc
+++ b/chromium_src/chrome/browser/ui/views/side_panel/side_panel_coordinator.cc
@@ -4,20 +4,8 @@
* You can obtain one at https://mozilla.org/MPL/2.0/. */
#include "brave/browser/ui/views/side_panel/brave_side_panel.h"
-#include "brave/grit/brave_generated_resources.h"
#include "chrome/browser/ui/views/frame/browser_view.h"
-#include "chrome/grit/generated_resources.h"
-
-// Undef upstream's to avoid redefined error.
-#undef IDS_TOOLTIP_SIDE_PANEL_HIDE
-#undef IDS_TOOLTIP_SIDE_PANEL_SHOW
-
-#define IDS_TOOLTIP_SIDE_PANEL_HIDE IDS_TOOLTIP_SIDEBAR_HIDE
-#define IDS_TOOLTIP_SIDE_PANEL_SHOW IDS_TOOLTIP_SIDEBAR_SHOW
#define SidePanel BraveSidePanel
#include "src/chrome/browser/ui/views/side_panel/side_panel_coordinator.cc"
#undef SidePanel
-
-#undef IDS_TOOLTIP_SIDE_PANEL_HIDE
-#undef IDS_TOOLTIP_SIDE_PANEL_SHOW
diff --git a/chromium_src/chrome/browser/ui/views/side_panel/side_panel_coordinator.h b/chromium_src/chrome/browser/ui/views/side_panel/side_panel_coordinator.h
index 5def18c984d4..67b78223add2 100644
--- a/chromium_src/chrome/browser/ui/views/side_panel/side_panel_coordinator.h
+++ b/chromium_src/chrome/browser/ui/views/side_panel/side_panel_coordinator.h
@@ -15,11 +15,11 @@
#include "base/scoped_multi_source_observation.h"
#include "base/scoped_observation_traits.h"
#include "base/time/time.h"
-#include "chrome/browser/ui/side_panel/side_panel_ui.h"
#include "chrome/browser/ui/tabs/tab_strip_model_observer.h"
#include "chrome/browser/ui/views/side_panel/side_panel_entry.h"
#include "chrome/browser/ui/views/side_panel/side_panel_registry.h"
#include "chrome/browser/ui/views/side_panel/side_panel_registry_observer.h"
+#include "chrome/browser/ui/views/side_panel/side_panel_ui.h"
#include "chrome/browser/ui/views/side_panel/side_panel_util.h"
#include "chrome/browser/ui/views/side_panel/side_panel_view_state_observer.h"
#include "ui/views/view_observer.h"
diff --git a/chromium_src/chrome/browser/ui/views/side_panel/side_panel_ui.h b/chromium_src/chrome/browser/ui/views/side_panel/side_panel_ui.h
new file mode 100644
index 000000000000..e36ce887f743
--- /dev/null
+++ b/chromium_src/chrome/browser/ui/views/side_panel/side_panel_ui.h
@@ -0,0 +1,17 @@
+// Copyright (c) 2024 The Brave Authors. All rights reserved.
+// This Source Code Form is subject to the terms of the Mozilla Public
+// License, v. 2.0. If a copy of the MPL was not distributed with this file,
+// You can obtain one at https://mozilla.org/MPL/2.0/.
+
+#ifndef BRAVE_CHROMIUM_SRC_CHROME_BROWSER_UI_VIEWS_SIDE_PANEL_SIDE_PANEL_UI_H_
+#define BRAVE_CHROMIUM_SRC_CHROME_BROWSER_UI_VIEWS_SIDE_PANEL_SIDE_PANEL_UI_H_
+
+#define Toggle \
+ Toggle() = 0; \
+ virtual void Toggle
+
+#include "src/chrome/browser/ui/views/side_panel/side_panel_ui.h" // IWYU pragma: export
+
+#undef Toggle
+
+#endif // BRAVE_CHROMIUM_SRC_CHROME_BROWSER_UI_VIEWS_SIDE_PANEL_SIDE_PANEL_UI_H_
diff --git a/chromium_src/chrome/browser/ui/views/tab_search_bubble_host.cc b/chromium_src/chrome/browser/ui/views/tab_search_bubble_host.cc
new file mode 100644
index 000000000000..3f994f733893
--- /dev/null
+++ b/chromium_src/chrome/browser/ui/views/tab_search_bubble_host.cc
@@ -0,0 +1,11 @@
+/* Copyright (c) 2024 The Brave Authors. All rights reserved.
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this file,
+ * You can obtain one at https://mozilla.org/MPL/2.0/. */
+
+// We always want the tab search button to render after the tab strip (i.e., on
+// the right side of the frame), regardless of platform.
+#define BRAVE_TAB_SEARCH_BUBBLE_HOST_SHOULD_TAB_SEARCH_RENDER_BEFORE_TAB_STRIP \
+ return false;
+#include "src/chrome/browser/ui/views/tab_search_bubble_host.cc"
+#undef BRAVE_TAB_SEARCH_BUBBLE_HOST_SHOULD_TAB_SEARCH_RENDER_BEFORE_TAB_STRIP
diff --git a/chromium_src/chrome/browser/ui/views/tabs/tab.cc b/chromium_src/chrome/browser/ui/views/tabs/tab.cc
index 2ac1f8652ea0..3d6d52514db1 100644
--- a/chromium_src/chrome/browser/ui/views/tabs/tab.cc
+++ b/chromium_src/chrome/browser/ui/views/tabs/tab.cc
@@ -9,6 +9,14 @@
#include "brave/browser/ui/views/tabs/vertical_tab_utils.h"
#include "chrome/browser/ui/layout_constants.h"
+// Upstream is no longer centering the tab favicon vertically within the tab
+// view (likely due to the fact that their tab contents rect happens to be the
+// same height as the favicon). Ensure that the favicon is centered vertically
+// within the tab.
+#define BRAVE_UI_VIEWS_TABS_TAB_LAYOUT_ADJUST_ICON_POSITION \
+ favicon_bounds.set_y(contents_rect.y() + \
+ Center(contents_rect.height(), gfx::kFaviconSize));
+
// Set alert indicator's pos to start of the title and
// move title after the alert indicator.
// Title right should respect close btn's space
@@ -23,10 +31,6 @@
#define BRAVE_UI_VIEWS_TABS_TAB_UPDATE_ICON_VISIBILITY \
showing_close_button_ &= mouse_hovered();
-#define BRAVE_TAB_LAYOUT \
- Center(contents_rect.height(), gfx::kFaviconSize)); \
- if (false) (
-
// `UpdateIconVisibility` currently has an early return when the tab view's
// height is less than `GetLayoutConstant(TAB_HEIGHT)`. Unfortunately, when in
// vertical tabs mode this will prevent the favicon and close button from
@@ -41,6 +45,6 @@
#include "src/chrome/browser/ui/views/tabs/tab.cc"
#undef GetLayoutConstant
-#undef BRAVE_TAB_LAYOUT
#undef BRAVE_UI_VIEWS_TABS_TAB_UPDATE_ICON_VISIBILITY
#undef BRAVE_UI_VIEWS_TABS_TAB_ALERT_INDICATOR_POSITION
+#undef BRAVE_UI_VIEWS_TABS_TAB_LAYOUT_ADJUST_ICON_POSITION
diff --git a/chromium_src/chrome/browser/ui/views/tabs/tab_drag_controller.h b/chromium_src/chrome/browser/ui/views/tabs/tab_drag_controller.h
index 1afffe38effc..e96159179069 100644
--- a/chromium_src/chrome/browser/ui/views/tabs/tab_drag_controller.h
+++ b/chromium_src/chrome/browser/ui/views/tabs/tab_drag_controller.h
@@ -22,7 +22,6 @@ using TabDragControllerBrave = TabDragController;
Unused_MoveUattached() {} \
friend TabDragControllerBrave; \
virtual void InitDragData
-#define GetTabGroupForTargetIndex virtual GetTabGroupForTargetIndex
#define GetAttachedBrowserWidget \
GetAttachedBrowserWidget_Unused() { return {}; } \
virtual views::Widget* GetAttachedBrowserWidget
@@ -41,7 +40,6 @@ using TabDragControllerBrave = TabDragController;
#undef DetachAndAttachToNewContext
#undef GetLocalProcessWindow
#undef GetAttachedBrowserWidget
-#undef GetTabGroupForTargetIndex
#undef TabDragController
#undef InitDragData
#undef GetAttachedDragPoint
diff --git a/chromium_src/chrome/browser/ui/views/tabs/tab_group_header.cc b/chromium_src/chrome/browser/ui/views/tabs/tab_group_header.cc
deleted file mode 100644
index 25044750c4f9..000000000000
--- a/chromium_src/chrome/browser/ui/views/tabs/tab_group_header.cc
+++ /dev/null
@@ -1,12 +0,0 @@
-/* Copyright (c) 2023 The Brave Authors. All rights reserved.
- * This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this file,
- * You can obtain one at https://mozilla.org/MPL/2.0/. */
-
-#include "brave/browser/ui/views/tabs/brave_tab_group_underline.h"
-
-#define TabGroupUnderline BraveTabGroupUnderline
-
-#include "src/chrome/browser/ui/views/tabs/tab_group_header.cc"
-
-#undef TabGroupUnderline
diff --git a/chromium_src/chrome/browser/ui/views/tabs/tab_group_style.cc b/chromium_src/chrome/browser/ui/views/tabs/tab_group_style.cc
index 38e67d50be48..01a307b697c9 100644
--- a/chromium_src/chrome/browser/ui/views/tabs/tab_group_style.cc
+++ b/chromium_src/chrome/browser/ui/views/tabs/tab_group_style.cc
@@ -12,17 +12,26 @@
#define TabGroupUnderline BraveTabGroupUnderline
#define TabGroupStyle TabGroupStyle_ChromiumImpl
-#define ChromeRefresh2023TabGroupStyle \
- ChromeRefresh2023TabGroupStyle_ChromiumImpl
#include "src/chrome/browser/ui/views/tabs/tab_group_style.cc"
-#undef ChromeRefresh2023TabGroupStyle
#undef TabGroupStyle
#undef TabGroupUnderline
const int TabGroupStyle::kStrokeThicknessForVerticalTabs = 4;
+bool TabGroupStyle::TabGroupUnderlineShouldBeHidden() const {
+ return false;
+}
+
+// Upstream currently hides the tab group underline in certain scenarios,
+// whereas we always show the underline.
+bool TabGroupStyle::TabGroupUnderlineShouldBeHidden(
+ const views::View* leading_view,
+ const views::View* trailing_view) const {
+ return false;
+}
+
SkPath TabGroupStyle::GetUnderlinePath(gfx::Rect local_bounds) const {
if (!ShouldShowVerticalTabs()) {
return TabGroupStyle_ChromiumImpl::GetUnderlinePath(local_bounds);
@@ -62,8 +71,8 @@ gfx::Insets TabGroupStyle::GetInsetsForHeaderChip(
return insets;
}
if (!ShouldShowVerticalTabs()) {
- insets.set_top(brave_tabs::kTabGroupTitleVerticalInset)
- .set_bottom(brave_tabs::kTabGroupTitleVerticalInset);
+ return gfx::Insets::VH(brave_tabs::kTabGroupTitleVerticalInset,
+ brave_tabs::kTabGroupTitleHorizontalInset);
}
return insets;
}
@@ -94,8 +103,3 @@ int TabGroupStyle::GetChipCornerRadius() const {
}
return brave_tabs::kTabBorderRadius;
}
-
-int ChromeRefresh2023TabGroupStyle::GetTabGroupOverlapAdjustment() {
- return ChromeRefresh2023TabGroupStyle_ChromiumImpl::
- GetTabGroupOverlapAdjustment();
-}
diff --git a/chromium_src/chrome/browser/ui/views/tabs/tab_group_style.h b/chromium_src/chrome/browser/ui/views/tabs/tab_group_style.h
index 13924abcb78e..54eefbdeb548 100644
--- a/chromium_src/chrome/browser/ui/views/tabs/tab_group_style.h
+++ b/chromium_src/chrome/browser/ui/views/tabs/tab_group_style.h
@@ -7,11 +7,7 @@
#define BRAVE_CHROMIUM_SRC_CHROME_BROWSER_UI_VIEWS_TABS_TAB_GROUP_STYLE_H_
#define TabGroupStyle TabGroupStyle_ChromiumImpl
-#define ChromeRefresh2023TabGroupStyle \
- ChromeRefresh2023TabGroupStyle_ChromiumImpl
-
#include "src/chrome/browser/ui/views/tabs/tab_group_style.h" // IWYU pragma: export
-#undef ChromeRefresh2023TabGroupStyle
#undef TabGroupStyle
class TabGroupStyle : public TabGroupStyle_ChromiumImpl {
@@ -20,6 +16,12 @@ class TabGroupStyle : public TabGroupStyle_ChromiumImpl {
static const int kStrokeThicknessForVerticalTabs;
+ bool TabGroupUnderlineShouldBeHidden() const override;
+
+ bool TabGroupUnderlineShouldBeHidden(
+ const views::View* leading_view,
+ const views::View* trailing_view) const override;
+
SkPath GetUnderlinePath(gfx::Rect local_bounds) const override;
gfx::Insets GetInsetsForHeaderChip(bool should_show_sync_icon) const override;
@@ -34,21 +36,4 @@ class TabGroupStyle : public TabGroupStyle_ChromiumImpl {
bool ShouldShowVerticalTabs() const;
};
-// Clobber ChromeRefresh2023TabGroupStyle for now because of how
-// chrome/browser/ui/views/tabs/tab_group_views.cc wants to instantiate the
-// style:
-// style_ = features::IsChromeRefresh2023()
-// ? std::make_unique(*this)
-// : std::make_unique(*this);
-// and ChromeRefresh2023TabGroupStyle is no longer inheriting from TabGroupStyle
-// due to the above redefine.
-class ChromeRefresh2023TabGroupStyle : public TabGroupStyle {
- public:
- using TabGroupStyle::TabGroupStyle;
-
- // A necessary stub to go back to the original class, as this static gets used
- // by `TabGroupUnderline::GetStrokeInset`.
- static int GetTabGroupOverlapAdjustment();
-};
-
#endif // BRAVE_CHROMIUM_SRC_CHROME_BROWSER_UI_VIEWS_TABS_TAB_GROUP_STYLE_H_
diff --git a/chromium_src/chrome/browser/ui/views/tabs/tab_hover_card_bubble_view_browsertest.cc b/chromium_src/chrome/browser/ui/views/tabs/tab_hover_card_bubble_view_browsertest.cc
index 2d8ce1858d02..54a4d67550ee 100644
--- a/chromium_src/chrome/browser/ui/views/tabs/tab_hover_card_bubble_view_browsertest.cc
+++ b/chromium_src/chrome/browser/ui/views/tabs/tab_hover_card_bubble_view_browsertest.cc
@@ -56,13 +56,13 @@ class TabHoverCardBubbleViewBrowserTest : public DialogBrowserTest,
TabStrip* const tab_strip = GetTabStrip(browser());
Tab* const tab = tab_strip->tab_at(1);
if (!tab) {
- NOTREACHED();
+ NOTREACHED_IN_MIGRATION();
return false;
}
TabHoverCardBubbleView* const hover_card = GetHoverCard(tab_strip);
if (!hover_card) {
- NOTREACHED();
+ NOTREACHED_IN_MIGRATION();
return false;
}
diff --git a/chromium_src/chrome/browser/ui/views/toolbar/app_menu.cc b/chromium_src/chrome/browser/ui/views/toolbar/app_menu.cc
index 315f0b92b4d2..7dcc42a73663 100644
--- a/chromium_src/chrome/browser/ui/views/toolbar/app_menu.cc
+++ b/chromium_src/chrome/browser/ui/views/toolbar/app_menu.cc
@@ -12,7 +12,7 @@
#define SetTextColor SetTextColorId
#define SetMenuItemBackground(...) \
SetMenuItemBackground(MenuItemView::MenuItemBackground( \
- background_color, kBackgroundCornerRadius - 6))
+ background_color_id, kBackgroundCornerRadius - 6))
#define set_vertical_margin(...) set_vertical_margin(8)
#include "src/chrome/browser/ui/views/toolbar/app_menu.cc"
diff --git a/chromium_src/chrome/browser/ui/views/toolbar/side_panel_toolbar_button.h b/chromium_src/chrome/browser/ui/views/toolbar/side_panel_toolbar_button.h
deleted file mode 100644
index 8ffc9da8bfeb..000000000000
--- a/chromium_src/chrome/browser/ui/views/toolbar/side_panel_toolbar_button.h
+++ /dev/null
@@ -1,34 +0,0 @@
-// Copyright (c) 2022 The Brave Authors. All rights reserved.
-// This Source Code Form is subject to the terms of the Mozilla Public
-// License, v. 2.0. If a copy of the MPL was not distributed with this file,
-// you can obtain one at http://mozilla.org/MPL/2.0/.
-
-#ifndef BRAVE_CHROMIUM_SRC_CHROME_BROWSER_UI_VIEWS_TOOLBAR_SIDE_PANEL_TOOLBAR_BUTTON_H_
-#define BRAVE_CHROMIUM_SRC_CHROME_BROWSER_UI_VIEWS_TOOLBAR_SIDE_PANEL_TOOLBAR_BUTTON_H_
-
-#include "components/prefs/pref_member.h"
-#include "ui/base/metadata/metadata_header_macros.h"
-#include "ui/base/models/simple_menu_model.h"
-
-#define SidePanelToolbarButton SidePanelToolbarButton_ChromiumImpl
-
-#include "src/chrome/browser/ui/views/toolbar/side_panel_toolbar_button.h" // IWYU pragma: export
-
-#undef SidePanelToolbarButton
-
-class SidePanelToolbarButton : public SidePanelToolbarButton_ChromiumImpl {
- METADATA_HEADER(SidePanelToolbarButton, SidePanelToolbarButton_ChromiumImpl)
- public:
- explicit SidePanelToolbarButton(Browser* browser);
-
- SidePanelToolbarButton(const SidePanelToolbarButton&) = delete;
- SidePanelToolbarButton& operator=(const SidePanelToolbarButton&) = delete;
- ~SidePanelToolbarButton() override;
-
- private:
- void UpdateButtonImage();
-
- BooleanPrefMember sidebar_alignment_;
-};
-
-#endif // BRAVE_CHROMIUM_SRC_CHROME_BROWSER_UI_VIEWS_TOOLBAR_SIDE_PANEL_TOOLBAR_BUTTON_H_
diff --git a/chromium_src/chrome/browser/ui/webui/cr_components/theme_color_picker/theme_color_picker_handler.cc b/chromium_src/chrome/browser/ui/webui/cr_components/theme_color_picker/theme_color_picker_handler.cc
new file mode 100644
index 000000000000..a8257539f582
--- /dev/null
+++ b/chromium_src/chrome/browser/ui/webui/cr_components/theme_color_picker/theme_color_picker_handler.cc
@@ -0,0 +1,34 @@
+/* Copyright (c) 2024 The Brave Authors. All rights reserved.
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this file,
+ * You can obtain one at https://mozilla.org/MPL/2.0/. */
+
+#include "chrome/browser/new_tab_page/chrome_colors/generated_colors_info.h"
+#include "chrome/browser/themes/theme_service.h"
+#include "chrome/browser/ui/webui/cr_components/theme_color_picker/customize_chrome_colors.h"
+
+namespace chrome_colors {
+const std::array
+ kBraveGeneratedColorsInfo = kCustomizeChromeColors;
+}
+
+// In order to revert to the bi-color theme picker, we want
+// ThemeColorPickerHandler::GetChromeColors to work how it used to work before
+// ChromeRefresh2023: it should iterate over kCustomizeChromeColors and call
+// GetChromeColor for each color. To achieve that, we patch
+// ThemeColorPickerHandler::GetChromeColors to always set extended_list to true
+// and we replace kGeneratedColorsInfo with a namespaced version of
+// kCustomizeChromeColors.
+#define BRAVE_THEME_COLOR_PICKER_HANDLER_GET_CHROME_COLORS extended_list = true;
+#define kGeneratedColorsInfo kBraveGeneratedColorsInfo
+
+// Override the effect of SetSeedColor to correct the theme coloring for tabs
+// and the tab strip.
+#define SetUserColorAndBrowserColorVariant(SEED_COLOR, VARIANT) \
+ BuildAutogeneratedThemeFromColor(SEED_COLOR);
+
+#include "src/chrome/browser/ui/webui/cr_components/theme_color_picker/theme_color_picker_handler.cc"
+
+#undef SetUserColorAndBrowserColorVariant
+#undef kGeneratedColorsInfo
+#undef BRAVE_THEME_COLOR_PICKER_HANDLER_GET_CHROME_COLORS
diff --git a/chromium_src/chrome/browser/ui/webui/help/version_updater_mac.mm b/chromium_src/chrome/browser/ui/webui/help/version_updater_mac.mm
index 89900cb73703..c43dce58da2b 100644
--- a/chromium_src/chrome/browser/ui/webui/help/version_updater_mac.mm
+++ b/chromium_src/chrome/browser/ui/webui/help/version_updater_mac.mm
@@ -180,7 +180,7 @@ - (void)handleStatusNotification:(NSNotification*)notification {
break;
default:
- NOTREACHED();
+ NOTREACHED_IN_MIGRATION();
return;
}
diff --git a/chromium_src/chrome/browser/ui/webui/whats_new/whats_new_fetcher.cc b/chromium_src/chrome/browser/ui/webui/whats_new/whats_new_fetcher.cc
new file mode 100644
index 000000000000..67dfd532b6b4
--- /dev/null
+++ b/chromium_src/chrome/browser/ui/webui/whats_new/whats_new_fetcher.cc
@@ -0,0 +1,20 @@
+/* Copyright (c) 2023 The Brave Authors. All rights reserved.
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this file,
+ * You can obtain one at https://mozilla.org/MPL/2.0/. */
+
+#include "chrome/browser/ui/webui/whats_new/whats_new_fetcher.h"
+
+#include "brave/browser/ui/whats_new/whats_new_util.h"
+
+#define StartWhatsNewFetch StartWhatsNewFetch_UnUsed
+#include "src/chrome/browser/ui/webui/whats_new/whats_new_fetcher.cc"
+#undef StartWhatsNewFetch
+
+namespace whats_new {
+
+void StartWhatsNewFetch(Browser* browser) {
+ StartBraveWhatsNew(browser);
+}
+
+} // namespace whats_new
diff --git a/chromium_src/chrome/browser/ui/webui/whats_new/whats_new_util.cc b/chromium_src/chrome/browser/ui/webui/whats_new/whats_new_util.cc
index 3bd53facd014..77ba72a14420 100644
--- a/chromium_src/chrome/browser/ui/webui/whats_new/whats_new_util.cc
+++ b/chromium_src/chrome/browser/ui/webui/whats_new/whats_new_util.cc
@@ -8,11 +8,7 @@
#include "brave/browser/ui/whats_new/whats_new_util.h"
#define ShouldShowForState ShouldShowForState_UnUsed
-#define StartWhatsNewFetch StartWhatsNewFetch_UnUsed
-
#include "src/chrome/browser/ui/webui/whats_new/whats_new_util.cc"
-
-#undef StartWhatsNewFetch
#undef ShouldShowForState
namespace whats_new {
@@ -22,8 +18,4 @@ bool ShouldShowForState(PrefService* local_state,
return ShouldShowBraveWhatsNewForState(local_state);
}
-void StartWhatsNewFetch(Browser* browser) {
- StartBraveWhatsNew(browser);
-}
-
} // namespace whats_new
diff --git a/chromium_src/chrome/browser/web_applications/os_integration/web_app_shortcut_mac.mm b/chromium_src/chrome/browser/web_applications/os_integration/web_app_shortcut_mac.mm
index da6aa2339968..99facb596629 100644
--- a/chromium_src/chrome/browser/web_applications/os_integration/web_app_shortcut_mac.mm
+++ b/chromium_src/chrome/browser/web_applications/os_integration/web_app_shortcut_mac.mm
@@ -40,7 +40,7 @@
case version_info::Channel::UNKNOWN:
return base::FilePath(kBraveBrowserDevelopmentAppDirName);
default:
- NOTREACHED();
+ NOTREACHED_IN_MIGRATION();
return base::FilePath(kBraveBrowserDevelopmentAppDirName);
}
}
diff --git a/chromium_src/chrome/common/chrome_features.cc b/chromium_src/chrome/common/chrome_features.cc
index 529cc9cac449..49b5a79255f7 100644
--- a/chromium_src/chrome/common/chrome_features.cc
+++ b/chromium_src/chrome/common/chrome_features.cc
@@ -5,9 +5,7 @@
#include "chrome/common/chrome_features.h"
-#define kDnsOverHttpsShowUiParam kDnsOverHttpsShowUiParamDisabled
#include "src/chrome/common/chrome_features.cc"
-#undef kDnsOverHttpsShowUiParam
#include "base/feature_override.h"
@@ -37,8 +35,4 @@ OVERRIDE_FEATURE_DEFAULT_STATES({{
#endif
}});
-// Enable the DoH settings UI in chrome://settings/security on all platforms.
-const base::FeatureParam kDnsOverHttpsShowUiParam{&kDnsOverHttps,
- "ShowUi", true};
-
} // namespace features
diff --git a/chromium_src/chrome/common/url_constants.h b/chromium_src/chrome/common/url_constants.h
index cbeb5f71fa24..b8137c4826c3 100644
--- a/chromium_src/chrome/common/url_constants.h
+++ b/chromium_src/chrome/common/url_constants.h
@@ -257,6 +257,9 @@ inline constexpr char kLearnMoreReportingURL[] =
// The URL for the Help Center page about managing third-party cookies.
inline constexpr char kManage3pcHelpCenterURL[] = "https://support.brave.com/";
+// The URL for the tab group sync help center page.
+inline constexpr char kTabGroupsLearnMoreURL[] = "https://support.brave.com/";
+
// The URL for the Learn More page about policies and enterprise enrollment.
inline constexpr char16_t kManagedUiLearnMoreUrl[] =
u"https://support.brave.com/";
diff --git a/chromium_src/chrome/installer/util/shell_util.cc b/chromium_src/chrome/installer/util/shell_util.cc
index d38cfc500f05..d649754e54df 100644
--- a/chromium_src/chrome/installer/util/shell_util.cc
+++ b/chromium_src/chrome/installer/util/shell_util.cc
@@ -25,7 +25,7 @@ int GetIconIndexForFileType() {
case version_info::Channel::CANARY:
return icon_resources::kSxSFileTypeIndex;
default:
- NOTREACHED();
+ NOTREACHED_IN_MIGRATION();
return icon_resources::kFileTypeIndex;
}
}
diff --git a/chromium_src/chrome/test/base/chrome_test_launcher.cc b/chromium_src/chrome/test/base/chrome_test_launcher.cc
index 0103becb7b75..07d6097daaf0 100644
--- a/chromium_src/chrome/test/base/chrome_test_launcher.cc
+++ b/chromium_src/chrome/test/base/chrome_test_launcher.cc
@@ -6,13 +6,10 @@
#include "chrome/test/base/chrome_test_launcher.h"
#include "brave/app/brave_main_delegate.h"
-#include "brave/browser/brave_content_browser_client.h"
#include "brave/utility/brave_content_utility_client.h"
#define ChromeContentUtilityClient BraveContentUtilityClient
-#define ChromeContentBrowserClient BraveContentBrowserClient
#define ChromeMainDelegate BraveMainDelegate
#include "src/chrome/test/base/chrome_test_launcher.cc"
#undef ChromeMainDelegate
-#undef ChromeContentBrowserClient
#undef ChromeContentUtilityClient
diff --git a/chromium_src/components/attribution_reporting/aggregatable_trigger_config.cc b/chromium_src/components/attribution_reporting/aggregatable_trigger_config.cc
new file mode 100644
index 000000000000..d465819314d7
--- /dev/null
+++ b/chromium_src/components/attribution_reporting/aggregatable_trigger_config.cc
@@ -0,0 +1,22 @@
+/* Copyright (c) 2024 The Brave Authors. All rights reserved.
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this file,
+ * You can obtain one at https://mozilla.org/MPL/2.0/. */
+
+#include "components/attribution_reporting/aggregatable_trigger_config.h"
+
+#include
+
+#define Create Create_Unused
+#include "src/components/attribution_reporting/aggregatable_trigger_config.cc"
+#undef Create
+
+namespace attribution_reporting {
+
+std::optional AggregatableTriggerConfig::Create(
+ mojom::SourceRegistrationTimeConfig,
+ std::optional trigger_context_id) {
+ return std::nullopt;
+}
+
+} // namespace attribution_reporting
diff --git a/chromium_src/components/attribution_reporting/aggregatable_trigger_config.h b/chromium_src/components/attribution_reporting/aggregatable_trigger_config.h
new file mode 100644
index 000000000000..32f635c610fe
--- /dev/null
+++ b/chromium_src/components/attribution_reporting/aggregatable_trigger_config.h
@@ -0,0 +1,21 @@
+/* Copyright (c) 2024 The Brave Authors. All rights reserved.
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this file,
+ * You can obtain one at https://mozilla.org/MPL/2.0/. */
+
+#ifndef BRAVE_CHROMIUM_SRC_COMPONENTS_ATTRIBUTION_REPORTING_AGGREGATABLE_TRIGGER_CONFIG_H_
+#define BRAVE_CHROMIUM_SRC_COMPONENTS_ATTRIBUTION_REPORTING_AGGREGATABLE_TRIGGER_CONFIG_H_
+
+#include "components/attribution_reporting/source_registration_time_config.mojom.h"
+#include "components/attribution_reporting/trigger_registration_error.mojom-forward.h"
+
+#define Create \
+ Create_Unused(mojom::SourceRegistrationTimeConfig, \
+ std::optional trigger_context_id); \
+ static std::optional Create
+
+#include "src/components/attribution_reporting/aggregatable_trigger_config.h" // IWYU pragma: export
+
+#undef Create
+
+#endif // BRAVE_CHROMIUM_SRC_COMPONENTS_ATTRIBUTION_REPORTING_AGGREGATABLE_TRIGGER_CONFIG_H_
diff --git a/chromium_src/components/attribution_reporting/features.cc b/chromium_src/components/attribution_reporting/features.cc
index bc204670f7bb..392def38d9c3 100644
--- a/chromium_src/components/attribution_reporting/features.cc
+++ b/chromium_src/components/attribution_reporting/features.cc
@@ -10,7 +10,6 @@
namespace attribution_reporting::features {
OVERRIDE_FEATURE_DEFAULT_STATES({{
- {kAttributionReportingTriggerContextId, base::FEATURE_DISABLED_BY_DEFAULT},
{kConversionMeasurement, base::FEATURE_DISABLED_BY_DEFAULT},
}});
diff --git a/chromium_src/components/content_settings/core/common/cookie_settings_base.cc b/chromium_src/components/content_settings/core/common/cookie_settings_base.cc
index b5de62668f48..fbf704141076 100644
--- a/chromium_src/components/content_settings/core/common/cookie_settings_base.cc
+++ b/chromium_src/components/content_settings/core/common/cookie_settings_base.cc
@@ -3,6 +3,8 @@
* License, v. 2.0. If a copy of the MPL was not distributed with this file,
* You can obtain one at http://mozilla.org/MPL/2.0/. */
+#include "components/content_settings/core/common/cookie_settings_base.h"
+
#include
#include "base/auto_reset.h"
@@ -12,7 +14,6 @@
#include "base/types/optional_util.h"
#include "components/content_settings/core/common/content_settings.h"
#include "components/content_settings/core/common/content_settings_pattern.h"
-#include "components/content_settings/core/common/cookie_settings_base.h"
#include "components/content_settings/core/common/features.h"
#include "net/base/features.h"
#include "net/base/registry_controlled_domains/registry_controlled_domain.h"
@@ -62,7 +63,8 @@ bool IsFirstPartyAccessAllowed(const GURL& first_party_url,
const CookieSettingsBase* const cookie_settings,
net::CookieSettingOverrides overrides) {
ContentSetting setting = cookie_settings->GetCookieSetting(
- first_party_url, first_party_url, overrides, nullptr);
+ first_party_url, net::SiteForCookies::FromUrl(first_party_url),
+ first_party_url, overrides, nullptr);
return cookie_settings->IsAllowed(setting);
}
@@ -269,7 +271,8 @@ CookieSettingsBase::GetCookieSettingWithBraveMetadata(
// GetCookieSetting fills metadata structure implicitly (implemented in
// GetCookieSettingInternal), the setting value is set explicitly here.
setting_brave_metadata.setting =
- GetCookieSetting(url, first_party_url, overrides, nullptr);
+ GetCookieSetting(url, net::SiteForCookies::FromUrl(url), first_party_url,
+ overrides, nullptr);
return setting_brave_metadata;
}
@@ -314,8 +317,24 @@ CookieSettingsBase::GetCurrentCookieSettingWithBraveMetadata() {
setting_info.secondary_pattern.MatchesAllHosts(); \
}
+// Force GetCookieSetting to use a first-party context when calling into
+// GetCookieSettingInternal, rather than assuming a third-party context. This is
+// needed by our ephemeral storage implementation. See
+// https://chromium.googlesource.com/chromium/src/+/1eca8080b750b1b3e3067cfb7209163b9026de8a
+#define SiteForCookies() SiteForCookies::FromUrl(first_party_url)
+
+// This avoids a CHECK(!is_explicit_setting) in upstream code when allowing
+// partitioned cookies, which would fail with our current ephemeral storage
+// implementation. By default Chromimum allows all 3p cookies if applied
+// CookieSettingsPatterns for the URL is explicit. We use explicit setting to
+// enable 1PES mode.
+#define BRAVE_COOKIE_SETTINGS_BASE_GET_COOKIES_SETTINGS_INTERNAL_IS_EXPLICIT_SETTING \
+ if (false)
+
#define IsFullCookieAccessAllowed IsChromiumFullCookieAccessAllowed
#include "src/components/content_settings/core/common/cookie_settings_base.cc"
#undef IsFullCookieAccessAllowed
+#undef SiteForCookies
#undef BRAVE_COOKIE_SETTINGS_BASE_GET_COOKIES_SETTINGS_INTERNAL
#undef BRAVE_COOKIE_SETTINGS_BASE_DECIDE_ACCESS
+#undef BRAVE_COOKIE_SETTINGS_BASE_GET_COOKIES_SETTINGS_INTERNAL_IS_EXPLICIT_SETTING
diff --git a/chromium_src/components/external_intents/android/intercept_navigation_delegate_impl.cc b/chromium_src/components/external_intents/android/intercept_navigation_delegate_impl.cc
index 44c847d79a6d..e18c8ea417f4 100644
--- a/chromium_src/components/external_intents/android/intercept_navigation_delegate_impl.cc
+++ b/chromium_src/components/external_intents/android/intercept_navigation_delegate_impl.cc
@@ -53,7 +53,7 @@ class BraveInterceptNavigationDelegate : public InterceptNavigationDelegate {
private:
bool ShouldPlayVideoInBrowser(const GURL& url) {
if (!pref_service_) {
- NOTREACHED();
+ NOTREACHED_IN_MIGRATION();
return false;
}
diff --git a/chromium_src/components/keyed_service/core/dependency_manager.cc b/chromium_src/components/keyed_service/core/dependency_manager.cc
new file mode 100644
index 000000000000..117cffc866ac
--- /dev/null
+++ b/chromium_src/components/keyed_service/core/dependency_manager.cc
@@ -0,0 +1,21 @@
+/* Copyright (c) 2024 The Brave Authors. All rights reserved.
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this file,
+ * You can obtain one at https://mozilla.org/MPL/2.0/. */
+
+#include "components/keyed_service/core/dependency_manager.h"
+
+#define DisallowKeyedServiceFactoryRegistration \
+ DisallowKeyedServiceFactoryRegistration_ChromiumImpl
+
+#include "src/components/keyed_service/core/dependency_manager.cc"
+
+#undef DisallowKeyedServiceFactoryRegistration
+
+void DependencyManager::DisallowKeyedServiceFactoryRegistration(
+ const std::string& registration_function_name_error_message) {
+#if !BUILDFLAG(IS_IOS)
+ DisallowKeyedServiceFactoryRegistration_ChromiumImpl(
+ registration_function_name_error_message);
+#endif
+}
diff --git a/chromium_src/components/keyed_service/core/dependency_manager.h b/chromium_src/components/keyed_service/core/dependency_manager.h
new file mode 100644
index 000000000000..9bacccf3d79c
--- /dev/null
+++ b/chromium_src/components/keyed_service/core/dependency_manager.h
@@ -0,0 +1,18 @@
+/* Copyright (c) 2024 The Brave Authors. All rights reserved.
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this file,
+ * You can obtain one at https://mozilla.org/MPL/2.0/. */
+
+#ifndef BRAVE_CHROMIUM_SRC_COMPONENTS_KEYED_SERVICE_CORE_DEPENDENCY_MANAGER_H_
+#define BRAVE_CHROMIUM_SRC_COMPONENTS_KEYED_SERVICE_CORE_DEPENDENCY_MANAGER_H_
+
+#define DisallowKeyedServiceFactoryRegistration \
+ DisallowKeyedServiceFactoryRegistration( \
+ const std::string& registration_function_name_error_message); \
+ void DisallowKeyedServiceFactoryRegistration_ChromiumImpl
+
+#include "src/components/keyed_service/core/dependency_manager.h" // IWYU pragma: export
+
+#undef DisallowKeyedServiceFactoryRegistration
+
+#endif // BRAVE_CHROMIUM_SRC_COMPONENTS_KEYED_SERVICE_CORE_DEPENDENCY_MANAGER_H_
diff --git a/chromium_src/components/password_manager/core/browser/password_store/login_database.cc b/chromium_src/components/password_manager/core/browser/password_store/login_database.cc
deleted file mode 100644
index d36659af7efd..000000000000
--- a/chromium_src/components/password_manager/core/browser/password_store/login_database.cc
+++ /dev/null
@@ -1,12 +0,0 @@
-/* Copyright (c) 2021 The Brave Authors. All rights reserved.
- * This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this file,
- * You can obtain one at https://mozilla.org/MPL/2.0/. */
-
-#define BRAVE_STATEMENT_TO_FORMS \
- if (result == ENCRYPTION_RESULT_SERVICE_FAILURE) \
- result = ENCRYPTION_RESULT_ITEM_FAILURE;
-
-#include "src/components/password_manager/core/browser/password_store/login_database.cc"
-
-#undef BRAVE_STATEMENT_TO_FORMS
diff --git a/chromium_src/components/permissions/permission_context_base.cc b/chromium_src/components/permissions/permission_context_base.cc
index ec6743910db3..88d4be14f200 100644
--- a/chromium_src/components/permissions/permission_context_base.cc
+++ b/chromium_src/components/permissions/permission_context_base.cc
@@ -138,9 +138,12 @@ void PermissionContextBase::DecidePermission(
pending_requests_.erase(pending_request);
}
-void PermissionContextBase::CleanUpRequest(const PermissionRequestID& id) {
+void PermissionContextBase::CleanUpRequest(
+ const PermissionRequestID& id,
+ bool embedded_permission_element_initiated) {
if (!IsGroupedPermissionType(content_settings_type())) {
- PermissionContextBase_ChromiumImpl::CleanUpRequest(id);
+ PermissionContextBase_ChromiumImpl::CleanUpRequest(
+ id, embedded_permission_element_initiated);
return;
}
diff --git a/chromium_src/components/permissions/permission_context_base.h b/chromium_src/components/permissions/permission_context_base.h
index 1e14b075f1f7..6edfaebbf0e5 100644
--- a/chromium_src/components/permissions/permission_context_base.h
+++ b/chromium_src/components/permissions/permission_context_base.h
@@ -93,7 +93,8 @@ class PermissionContextBase : public PermissionContextBase_ChromiumImpl {
ContentSetting content_setting,
bool is_one_time,
bool is_final_decision) override;
- void CleanUpRequest(const PermissionRequestID& id) override;
+ void CleanUpRequest(const PermissionRequestID& id,
+ bool embedded_permission_element_initiated) override;
std::map>
pending_grouped_requests_;
diff --git a/chromium_src/components/permissions/permission_request.cc b/chromium_src/components/permissions/permission_request.cc
index 720378ab40c6..ff8c282d9c7f 100644
--- a/chromium_src/components/permissions/permission_request.cc
+++ b/chromium_src/components/permissions/permission_request.cc
@@ -22,21 +22,21 @@
#define BRAVE_ENUM_ITEMS_FOR_SWITCH \
case RequestType::kBraveEthereum: \
case RequestType::kBraveSolana: \
- NOTREACHED(); \
+ NOTREACHED_IN_MIGRATION(); \
return permissions::PermissionRequest::AnnotatedMessageText( \
std::u16string(), {}); \
case RequestType::kWidevine: \
- NOTREACHED(); \
+ NOTREACHED_IN_MIGRATION(); \
return permissions::PermissionRequest::AnnotatedMessageText( \
std::u16string(), {});
#else
#define BRAVE_ENUM_ITEMS_FOR_SWITCH \
case RequestType::kBraveEthereum: \
case RequestType::kBraveSolana: \
- NOTREACHED(); \
+ NOTREACHED_IN_MIGRATION(); \
return std::u16string(); \
case RequestType::kWidevine: \
- NOTREACHED(); \
+ NOTREACHED_IN_MIGRATION(); \
return std::u16string();
#endif
diff --git a/chromium_src/components/printing/renderer/print_render_frame_helper.h b/chromium_src/components/printing/renderer/print_render_frame_helper.h
index 1e69866d420b..613e7a8ae52c 100644
--- a/chromium_src/components/printing/renderer/print_render_frame_helper.h
+++ b/chromium_src/components/printing/renderer/print_render_frame_helper.h
@@ -14,12 +14,12 @@ using PrintRenderFrameHelper_BraveImpl = PrintRenderFrameHelper;
} // namespace printing
#define PrintRenderFrameHelper PrintRenderFrameHelper_ChromiumImpl
-#define WaitForLoad \
- WaitForLoad_Unused(); \
+#define SetupOnStopLoadingTimeout \
+ SetupOnStopLoadingTimeout_Unused(); \
friend PrintRenderFrameHelper_BraveImpl; \
- void WaitForLoad
+ void SetupOnStopLoadingTimeout
#include "src/components/printing/renderer/print_render_frame_helper.h" // IWYU pragma: export
-#undef WaitForLoad
+#undef SetupOnStopLoadingTimeout
#undef PrintRenderFrameHelper
#undef SetPrintPreviewUI
diff --git a/chromium_src/components/privacy_sandbox/privacy_sandbox_features.cc b/chromium_src/components/privacy_sandbox/privacy_sandbox_features.cc
index 59e9fb67f092..cbc3a4c1152d 100644
--- a/chromium_src/components/privacy_sandbox/privacy_sandbox_features.cc
+++ b/chromium_src/components/privacy_sandbox/privacy_sandbox_features.cc
@@ -16,7 +16,8 @@ OVERRIDE_FEATURE_DEFAULT_STATES({{
{kPrivacySandboxFirstPartySetsUI, base::FEATURE_DISABLED_BY_DEFAULT},
{kPrivacySandboxProactiveTopicsBlocking, base::FEATURE_DISABLED_BY_DEFAULT},
{kPrivacySandboxSettings4, base::FEATURE_DISABLED_BY_DEFAULT},
- {kTrackingProtectionContentSetting, base::FEATURE_DISABLED_BY_DEFAULT},
+ {kTrackingProtectionContentSettingUbControl,
+ base::FEATURE_DISABLED_BY_DEFAULT},
}});
} // namespace privacy_sandbox
diff --git a/chromium_src/components/search_engines/brave_template_url_prepopulate_data_unittest.cc b/chromium_src/components/search_engines/brave_template_url_prepopulate_data_unittest.cc
index c34c0a925ff6..a649b3183269 100644
--- a/chromium_src/components/search_engines/brave_template_url_prepopulate_data_unittest.cc
+++ b/chromium_src/components/search_engines/brave_template_url_prepopulate_data_unittest.cc
@@ -15,6 +15,7 @@
#include "base/values.h"
#include "brave/components/search_engines/brave_prepopulated_engines.h"
#include "components/google/core/common/google_switches.h"
+#include "components/prefs/testing_pref_service.h"
#include "components/search_engines/search_engine_choice/search_engine_choice_service.h"
#include "components/search_engines/search_engines_pref_names.h"
#include "components/search_engines/search_terms_data.h"
@@ -56,7 +57,7 @@ std::vector GetAllPrepopulatedEngines() {
class BraveTemplateURLPrepopulateDataTest : public testing::Test {
public:
BraveTemplateURLPrepopulateDataTest()
- : search_engine_choice_service_(prefs_) {}
+ : search_engine_choice_service_(prefs_, &local_state_) {}
void SetUp() override {
TemplateURLPrepopulateData::RegisterProfilePrefs(prefs_.registry());
// Real registration happens in `brave/browser/brave_profile_prefs.cc`
@@ -71,15 +72,15 @@ class BraveTemplateURLPrepopulateDataTest : public testing::Test {
prefs_.SetInteger(kCountryIDAtInstall, digit1 << 8 | digit2);
prefs_.SetInteger(prefs::kBraveDefaultSearchVersion,
TemplateURLPrepopulateData::kBraveCurrentDataVersion);
- size_t default_index;
- std::vector> t_urls =
- TemplateURLPrepopulateData::GetPrepopulatedEngines(
- &prefs_, &search_engine_choice_service_, &default_index);
- EXPECT_EQ(prepopulate_id, t_urls[default_index]->prepopulate_id);
+ std::unique_ptr fallback_t_url_data =
+ TemplateURLPrepopulateData::GetPrepopulatedFallbackSearch(
+ &prefs_, &search_engine_choice_service_);
+ EXPECT_EQ(fallback_t_url_data->prepopulate_id, prepopulate_id);
}
protected:
sync_preferences::TestingPrefServiceSyncable prefs_;
+ TestingPrefServiceSimple local_state_;
search_engines::SearchEngineChoiceService search_engine_choice_service_;
};
@@ -117,8 +118,8 @@ TEST_F(BraveTemplateURLPrepopulateDataTest, UniqueIDs) {
for (int country_id : kCountryIds) {
prefs_.SetInteger(kCountryIDAtInstall, country_id);
- std::vector> urls = GetPrepopulatedEngines(
- &prefs_, &search_engine_choice_service_, nullptr);
+ std::vector> urls =
+ GetPrepopulatedEngines(&prefs_, &search_engine_choice_service_);
std::set unique_ids;
for (auto& url : urls) {
ASSERT_TRUE(unique_ids.find(url->prepopulate_id) == unique_ids.end());
@@ -129,10 +130,9 @@ TEST_F(BraveTemplateURLPrepopulateDataTest, UniqueIDs) {
// Verifies that each prepopulate data entry has required fields
TEST_F(BraveTemplateURLPrepopulateDataTest, ProvidersFromPrepopulated) {
- size_t default_index;
std::vector> t_urls =
TemplateURLPrepopulateData::GetPrepopulatedEngines(
- &prefs_, &search_engine_choice_service_, &default_index);
+ &prefs_, &search_engine_choice_service_);
// Ensure all the URLs have the required fields populated.
ASSERT_FALSE(t_urls.empty());
diff --git a/chromium_src/components/search_engines/brave_template_url_service_util_unittest.cc b/chromium_src/components/search_engines/brave_template_url_service_util_unittest.cc
index 96deb64e3489..2f453c20bac2 100644
--- a/chromium_src/components/search_engines/brave_template_url_service_util_unittest.cc
+++ b/chromium_src/components/search_engines/brave_template_url_service_util_unittest.cc
@@ -45,13 +45,15 @@ std::unique_ptr CreatePrepopulateTemplateURLData(
class BraveTemplateURLServiceUtilTest : public testing::Test {
public:
- BraveTemplateURLServiceUtilTest() : search_engine_choice_service_(prefs_) {}
+ BraveTemplateURLServiceUtilTest()
+ : search_engine_choice_service_(prefs_, &local_state_) {}
void SetUp() override {
TemplateURLPrepopulateData::RegisterProfilePrefs(prefs_.registry());
}
protected:
sync_preferences::TestingPrefServiceSyncable prefs_;
+ TestingPrefServiceSimple local_state_;
search_engines::SearchEngineChoiceService search_engine_choice_service_;
};
diff --git a/chromium_src/components/search_engines/template_url_prepopulate_data.cc b/chromium_src/components/search_engines/template_url_prepopulate_data.cc
index 665c54e55d82..07aba42777b0 100644
--- a/chromium_src/components/search_engines/template_url_prepopulate_data.cc
+++ b/chromium_src/components/search_engines/template_url_prepopulate_data.cc
@@ -23,14 +23,10 @@ namespace TemplateURLPrepopulateData {
// This redeclaration of the upstream prototype for `GetPrepopulatedEngines` is
// necessary, otherwise the translation unit fails to compile on calls for
// `GetPrepopulatedEngines` where there's an expectation for the use of the
-// default value of the last two arguents.
+// default value of the last arguent.
std::vector> GetPrepopulatedEngines_Unused(
PrefService* prefs,
- search_engines::SearchEngineChoiceService* search_engine_choice_service,
- size_t* default_search_provider_index,
- bool include_current_default = false,
- TemplateURLService* template_url_service = nullptr,
- bool* was_current_default_inserted = nullptr);
+ search_engines::SearchEngineChoiceService* search_engine_choice_service);
} // namespace TemplateURLPrepopulateData
@@ -38,7 +34,7 @@ std::vector> GetPrepopulatedEngines_Unused(
#if BUILDFLAG(IS_ANDROID)
#define GetLocalPrepopulatedEngines GetLocalPrepopulatedEngines_Unused
#endif
-#define GetPrepopulatedDefaultSearch GetPrepopulatedDefaultSearch_Unused
+#define GetPrepopulatedFallbackSearch GetPrepopulatedFallbackSearch_Unused
#define GetPrepopulatedEngine GetPrepopulatedEngine_Unused
#define GetPrepopulatedEngines GetPrepopulatedEngines_Unused
#include "src/components/search_engines/template_url_prepopulate_data.cc"
@@ -46,7 +42,7 @@ std::vector> GetPrepopulatedEngines_Unused(
#if BUILDFLAG(IS_ANDROID)
#undef GetLocalPrepopulatedEngines
#endif
-#undef GetPrepopulatedDefaultSearch
+#undef GetPrepopulatedFallbackSearch
#undef GetPrepopulatedEngine
#undef GetPrepopulatedEngines
@@ -567,25 +563,16 @@ BravePrepopulatedEngineID GetDefaultSearchEngine(int country_id, int version) {
}
// Builds a vector of PrepulatedEngine objects from the given array of
-// |engine_ids|. Fills in the default engine index for the given |country_id|,
-// if asked.
+// |engine_ids|.
std::vector GetEnginesFromEngineIDs(
- base::span engine_ids,
- int country_id,
- BravePrepopulatedEngineID default_engine_id,
- size_t* default_search_provider_index = nullptr) {
+ base::span engine_ids) {
std::vector engines;
const auto& brave_engines_map =
TemplateURLPrepopulateData::GetBraveEnginesMap();
for (size_t i = 0; i < engine_ids.size(); ++i) {
const PrepopulatedEngine* engine = brave_engines_map.at(engine_ids[i]);
- DCHECK(engine);
- if (engine) {
- engines.push_back(engine);
- if (default_search_provider_index && default_engine_id == engine_ids[i]) {
- *default_search_provider_index = i;
- }
- }
+ CHECK(engine);
+ engines.push_back(engine);
}
return engines;
}
@@ -610,7 +597,6 @@ void UpdateTemplateURLDataKeyword(
std::vector>
GetBravePrepopulatedEnginesForCountryID(
int country_id,
- size_t* default_search_provider_index = nullptr,
int version = kBraveCurrentDataVersion) {
base::span brave_engine_ids =
kBraveEnginesDefault;
@@ -622,14 +608,10 @@ GetBravePrepopulatedEnginesForCountryID(
}
DCHECK_GT(brave_engine_ids.size(), 0ul);
- // Get the default engine (overridable by country) for this version
- BravePrepopulatedEngineID default_id =
- GetDefaultSearchEngine(country_id, version);
-
// Build a vector PrepopulatedEngines from BravePrepopulatedEngineIDs and
// also get the default engine index
- std::vector engines = GetEnginesFromEngineIDs(
- brave_engine_ids, country_id, default_id, default_search_provider_index);
+ std::vector engines =
+ GetEnginesFromEngineIDs(brave_engine_ids);
DCHECK(engines.size() == brave_engine_ids.size());
std::vector> t_urls;
@@ -654,8 +636,9 @@ int GetDataVersion(PrefService* prefs) {
int data_version = GetDataVersion_ChromiumImpl(prefs);
// Check if returned version was from preferences override and if so return
// that version.
- if (prefs && prefs->HasPrefPath(prefs::kSearchProviderOverridesVersion))
+ if (prefs && prefs->HasPrefPath(prefs::kSearchProviderOverridesVersion)) {
return data_version;
+ }
return (data_version + kBraveCurrentDataVersion);
}
@@ -663,19 +646,14 @@ int GetDataVersion(PrefService* prefs) {
// get search engines defined by Brave.
std::vector> GetPrepopulatedEngines(
PrefService* prefs,
- search_engines::SearchEngineChoiceService* search_engine_choice_service,
- size_t* default_search_provider_index,
- bool include_current_default,
- TemplateURLService* template_url_service,
- bool* was_current_default_inserted) {
+ search_engines::SearchEngineChoiceService* search_engine_choice_service) {
// If there is a set of search engines in the preferences file, it overrides
// the built-in set.
- if (default_search_provider_index)
- *default_search_provider_index = 0;
std::vector> t_urls =
GetOverriddenTemplateURLData(prefs);
- if (!t_urls.empty())
+ if (!t_urls.empty()) {
return t_urls;
+ }
int version = kBraveCurrentDataVersion;
if (prefs && prefs->HasPrefPath(prefs::kBraveDefaultSearchVersion)) {
@@ -686,13 +664,12 @@ std::vector> GetPrepopulatedEngines(
search_engine_choice_service
? search_engine_choice_service->GetCountryId()
: country_codes::GetCountryIDFromPrefs(prefs),
- default_search_provider_index, version);
+ version);
}
// Redefines function with the same name in Chromium. Modifies the function to
// get search engines defined by Brave.
#if BUILDFLAG(IS_ANDROID)
-
std::vector> GetLocalPrepopulatedEngines(
const std::string& country_code,
PrefService& prefs) {
@@ -704,40 +681,63 @@ std::vector> GetLocalPrepopulatedEngines(
return GetBravePrepopulatedEnginesForCountryID(country_id);
}
-
#endif
-// Functions below are copied verbatim from
-// components\search_engines\template_url_prepopulate_data.cc because they
-// need to call our versions of redefined Chromium's functions.
+// Chromium picks Google (if on the list, otherwise the first prepopulated on
+// the list). We should return the default engine by country, or Brave.
+std::unique_ptr GetPrepopulatedFallbackSearch(
+ PrefService* prefs,
+ search_engines::SearchEngineChoiceService* search_engine_choice_service) {
+ std::vector> prepopulated_engines =
+ GetPrepopulatedEngines(prefs, search_engine_choice_service);
+ if (prepopulated_engines.empty()) {
+ return nullptr;
+ }
+
+ // Get the default engine (overridable by country) for this version
+ int version = kBraveCurrentDataVersion;
+ if (prefs && prefs->HasPrefPath(prefs::kBraveDefaultSearchVersion)) {
+ version = prefs->GetInteger(prefs::kBraveDefaultSearchVersion);
+ }
+
+ int country_id = search_engine_choice_service
+ ? search_engine_choice_service->GetCountryId()
+ : country_codes::GetCountryIDFromPrefs(prefs);
+
+ BravePrepopulatedEngineID default_id =
+ GetDefaultSearchEngine(country_id, version);
+
+ std::unique_ptr brave_engine;
+ for (auto& engine : prepopulated_engines) {
+ if (engine->prepopulate_id == static_cast(default_id)) {
+ return std::move(engine);
+ } else if (engine->prepopulate_id ==
+ TemplateURLPrepopulateData::PREPOPULATED_ENGINE_ID_BRAVE) {
+ brave_engine = std::move(engine);
+ }
+ }
+
+ // Default engine wasn't found, then return Brave, if found.
+ if (brave_engine) {
+ return brave_engine;
+ }
+
+ // If all else fails, return the first engine on the list.
+ return std::move(prepopulated_engines[0]);
+}
std::unique_ptr GetPrepopulatedEngine(
PrefService* prefs,
search_engines::SearchEngineChoiceService* search_engine_choice_service,
int prepopulated_id) {
- size_t default_index;
auto engines = TemplateURLPrepopulateData::GetPrepopulatedEngines(
- prefs, search_engine_choice_service, &default_index);
+ prefs, search_engine_choice_service);
for (auto& engine : engines) {
- if (engine->prepopulate_id == prepopulated_id)
+ if (engine->prepopulate_id == prepopulated_id) {
return std::move(engine);
+ }
}
return nullptr;
}
-std::unique_ptr GetPrepopulatedDefaultSearch(
- PrefService* prefs,
- search_engines::SearchEngineChoiceService* search_engine_choice_service) {
- size_t default_search_index;
- // This could be more efficient. We are loading all the URLs to only keep
- // the first one.
- std::vector> loaded_urls =
- GetPrepopulatedEngines(prefs, search_engine_choice_service,
- &default_search_index);
-
- return (default_search_index < loaded_urls.size())
- ? std::move(loaded_urls[default_search_index])
- : nullptr;
-}
-
} // namespace TemplateURLPrepopulateData
diff --git a/chromium_src/components/search_engines/util.cc b/chromium_src/components/search_engines/util.cc
index f31959ebc9c3..984bdd692c46 100644
--- a/chromium_src/components/search_engines/util.cc
+++ b/chromium_src/components/search_engines/util.cc
@@ -30,7 +30,7 @@ void GetSearchProvidersUsingKeywordResult(
if (template_urls && !template_urls->empty()) {
std::vector> prepopulated_urls =
TemplateURLPrepopulateData::GetPrepopulatedEngines(
- prefs, search_engine_choice_service, nullptr);
+ prefs, search_engine_choice_service);
for (const auto& template_url_data : base::Reversed(prepopulated_urls)) {
auto it = base::ranges::find_if(
*template_urls,
diff --git a/chromium_src/ui/base/ui_base_features.cc b/chromium_src/components/sync/base/features.cc
similarity index 50%
rename from chromium_src/ui/base/ui_base_features.cc
rename to chromium_src/components/sync/base/features.cc
index 97173dbcdd90..52d7d0799c78 100644
--- a/chromium_src/ui/base/ui_base_features.cc
+++ b/chromium_src/components/sync/base/features.cc
@@ -1,17 +1,17 @@
-/* Copyright (c) 2022 The Brave Authors. All rights reserved.
+/* Copyright (c) 2024 The Brave Authors. All rights reserved.
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this file,
* You can obtain one at https://mozilla.org/MPL/2.0/. */
-#include "src/ui/base/ui_base_features.cc"
+#include "src/components/sync/base/features.cc"
#include "base/feature_override.h"
-namespace features {
+namespace syncer {
OVERRIDE_FEATURE_DEFAULT_STATES({{
- {kChromeRefresh2023, base::FEATURE_DISABLED_BY_DEFAULT},
- {kChromeRefreshSecondary2023, base::FEATURE_DISABLED_BY_DEFAULT},
+ {kEnableBookmarkFoldersForAccountStorage,
+ base::FEATURE_DISABLED_BY_DEFAULT},
}});
-} // namespace features
+} // namespace syncer
diff --git a/chromium_src/components/sync/base/model_type_unittest.cc b/chromium_src/components/sync/base/model_type_unittest.cc
index 8deb43c10f4a..efc2d66bd2ec 100644
--- a/chromium_src/components/sync/base/model_type_unittest.cc
+++ b/chromium_src/components/sync/base/model_type_unittest.cc
@@ -21,7 +21,7 @@ TEST(ModelTypeTest, LowPriorityUserTypes) {
// This test is supposed to fail when sync types are increased/decreased
TEST(ModelTypeTest, ModelTypeCounts) {
- EXPECT_EQ(static_cast(ModelTypeForHistograms::kMaxValue), 67);
+ EXPECT_EQ(static_cast(ModelTypeForHistograms::kMaxValue), 68);
}
} // namespace
diff --git a/chromium_src/content/browser/aggregation_service/aggregation_service_features.cc b/chromium_src/content/browser/aggregation_service/aggregation_service_features.cc
index d9a1df31df53..88714dd9bbda 100644
--- a/chromium_src/content/browser/aggregation_service/aggregation_service_features.cc
+++ b/chromium_src/content/browser/aggregation_service/aggregation_service_features.cc
@@ -11,8 +11,6 @@ namespace content {
OVERRIDE_FEATURE_DEFAULT_STATES({{
{kPrivacySandboxAggregationService, base::FEATURE_DISABLED_BY_DEFAULT},
- {kPrivacySandboxAggregationServiceReportPadding,
- base::FEATURE_DISABLED_BY_DEFAULT},
}});
} // namespace content
diff --git a/chromium_src/content/browser/attribution_reporting/attribution_storage_delegate_impl.h b/chromium_src/content/browser/attribution_reporting/attribution_storage_delegate_impl.h
deleted file mode 100644
index 1dccca4842e5..000000000000
--- a/chromium_src/content/browser/attribution_reporting/attribution_storage_delegate_impl.h
+++ /dev/null
@@ -1,18 +0,0 @@
-/* Copyright (c) 2023 The Brave Authors. All rights reserved.
- * This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this file,
- * You can obtain one at https://mozilla.org/MPL/2.0/. */
-
-#ifndef BRAVE_CHROMIUM_SRC_CONTENT_BROWSER_ATTRIBUTION_REPORTING_ATTRIBUTION_STORAGE_DELEGATE_IMPL_H_
-#define BRAVE_CHROMIUM_SRC_CONTENT_BROWSER_ATTRIBUTION_REPORTING_ATTRIBUTION_STORAGE_DELEGATE_IMPL_H_
-
-#include "content/browser/attribution_reporting/attribution_storage_delegate.h"
-
-#define GetNullAggregatableReports(...) \
- GetNullAggregatableReports_ChromiumImpl(__VA_ARGS__) const; \
- std::vector GetNullAggregatableReports(__VA_ARGS__)
-
-#include "src/content/browser/attribution_reporting/attribution_storage_delegate_impl.h" // IWYU pragma: export
-#undef GetNullAggregatableReports
-
-#endif // BRAVE_CHROMIUM_SRC_CONTENT_BROWSER_ATTRIBUTION_REPORTING_ATTRIBUTION_STORAGE_DELEGATE_IMPL_H_
diff --git a/chromium_src/content/browser/private_aggregation/private_aggregation_features.cc b/chromium_src/content/browser/private_aggregation/private_aggregation_features.cc
index c0041d75c2d7..2f78b3b5d83a 100644
--- a/chromium_src/content/browser/private_aggregation/private_aggregation_features.cc
+++ b/chromium_src/content/browser/private_aggregation/private_aggregation_features.cc
@@ -12,8 +12,6 @@ namespace content {
OVERRIDE_FEATURE_DEFAULT_STATES({{
{kPrivateAggregationApiDebugModeRequires3pcEligibility,
base::FEATURE_DISABLED_BY_DEFAULT},
- {kPrivateAggregationApiContextIdEnhancements,
- base::FEATURE_DISABLED_BY_DEFAULT},
}});
} // namespace content
diff --git a/chromium_src/content/browser/private_aggregation/private_aggregation_manager.cc b/chromium_src/content/browser/private_aggregation/private_aggregation_manager.cc
new file mode 100644
index 000000000000..c3c5e6e19195
--- /dev/null
+++ b/chromium_src/content/browser/private_aggregation/private_aggregation_manager.cc
@@ -0,0 +1,15 @@
+/* Copyright (c) 2024 The Brave Authors. All rights reserved.
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this file,
+ * You can obtain one at https://mozilla.org/MPL/2.0/. */
+
+#include "content/browser/private_aggregation/private_aggregation_manager.h"
+
+namespace content {
+
+PrivateAggregationManager* PrivateAggregationManager::GetManager(
+ BrowserContext& browser_context) {
+ return nullptr;
+}
+
+} // namespace content
diff --git a/chromium_src/ios/chrome/browser/browser_state/model/browser_state_keyed_service_factories.mm b/chromium_src/ios/chrome/browser/browser_state/model/browser_state_keyed_service_factories.mm
index 0977cde59214..4d10032b624c 100644
--- a/chromium_src/ios/chrome/browser/browser_state/model/browser_state_keyed_service_factories.mm
+++ b/chromium_src/ios/chrome/browser/browser_state/model/browser_state_keyed_service_factories.mm
@@ -7,6 +7,7 @@
#include "brave/ios/browser/browser_state/brave_browser_state_keyed_service_factories.h"
#include "ios/chrome/browser/autofill/model/personal_data_manager_factory.h"
+#include "ios/chrome/browser/bookmarks/model/bookmark_model_factory.h"
#include "ios/chrome/browser/bookmarks/model/bookmark_undo_service_factory.h"
#include "ios/chrome/browser/bookmarks/model/local_or_syncable_bookmark_model_factory.h"
#include "ios/chrome/browser/consent_auditor/model/consent_auditor_factory.h"
@@ -39,6 +40,7 @@ void EnsureBrowserStateKeyedServiceFactoriesBuilt() {
autofill::PersonalDataManagerFactory::GetInstance();
ConsentAuditorFactory::GetInstance();
ios::AccountConsistencyServiceFactory::GetInstance();
+ ios::BookmarkModelFactory::GetInstance();
ios::LocalOrSyncableBookmarkModelFactory::GetInstance();
ios::BookmarkUndoServiceFactory::GetInstance();
ios::FaviconServiceFactory::GetInstance();
diff --git a/chromium_src/ios/chrome/browser/metrics/model/google_groups_updater_service_factory.mm b/chromium_src/ios/chrome/browser/metrics/model/google_groups_updater_service_factory.mm
new file mode 100644
index 000000000000..e2c93c4633fa
--- /dev/null
+++ b/chromium_src/ios/chrome/browser/metrics/model/google_groups_updater_service_factory.mm
@@ -0,0 +1,46 @@
+/* Copyright (c) 2024 The Brave Authors. All rights reserved.
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this file,
+ * You can obtain one at https://mozilla.org/MPL/2.0/. */
+
+#include "ios/chrome/browser/metrics/model/google_groups_updater_service_factory.h"
+
+#import "components/keyed_service/ios/browser_state_dependency_manager.h"
+#import "components/variations/service/google_groups_updater_service.h"
+#import "ios/chrome/browser/shared/model/browser_state/chrome_browser_state.h"
+
+// static
+GoogleGroupsUpdaterService*
+GoogleGroupsUpdaterServiceFactory::GetForBrowserState(
+ ChromeBrowserState* browser_state) {
+ return nullptr;
+}
+
+// static
+GoogleGroupsUpdaterServiceFactory*
+GoogleGroupsUpdaterServiceFactory::GetInstance() {
+ return nullptr;
+}
+
+GoogleGroupsUpdaterServiceFactory::GoogleGroupsUpdaterServiceFactory()
+ : BrowserStateKeyedServiceFactory(
+ "GoogleGroupsUpdaterService",
+ BrowserStateDependencyManager::GetInstance()) {}
+
+std::unique_ptr
+GoogleGroupsUpdaterServiceFactory::BuildServiceInstanceFor(
+ web::BrowserState* context) const {
+ return nullptr;
+}
+
+bool GoogleGroupsUpdaterServiceFactory::ServiceIsCreatedWithBrowserState()
+ const {
+ return true;
+}
+
+bool GoogleGroupsUpdaterServiceFactory::ServiceIsNULLWhileTesting() const {
+ return true;
+}
+
+void GoogleGroupsUpdaterServiceFactory::RegisterBrowserStatePrefs(
+ user_prefs::PrefRegistrySyncable* registry) {}
diff --git a/chromium_src/net/base/features.cc b/chromium_src/net/base/features.cc
index d10f76d6466b..72cd5e028240 100644
--- a/chromium_src/net/base/features.cc
+++ b/chromium_src/net/base/features.cc
@@ -16,11 +16,6 @@ OVERRIDE_FEATURE_DEFAULT_STATES({{
// Enable NIK-partitioning by default.
{kPartitionConnectionsByNetworkIsolationKey,
base::FEATURE_ENABLED_BY_DEFAULT},
- {kPartitionHttpServerPropertiesByNetworkIsolationKey,
- base::FEATURE_ENABLED_BY_DEFAULT},
- {kPartitionSSLSessionsByNetworkIsolationKey,
- base::FEATURE_ENABLED_BY_DEFAULT},
- {kSplitHostCacheByNetworkIsolationKey, base::FEATURE_ENABLED_BY_DEFAULT},
{kTpcdMetadataGrants, base::FEATURE_DISABLED_BY_DEFAULT},
{kWaitForFirstPartySetsInit, base::FEATURE_DISABLED_BY_DEFAULT},
}});
diff --git a/chromium_src/net/cookies/cookie_access_delegate.cc b/chromium_src/net/cookies/cookie_access_delegate.cc
index c81ba5e2e72a..298bc4031a37 100644
--- a/chromium_src/net/cookies/cookie_access_delegate.cc
+++ b/chromium_src/net/cookies/cookie_access_delegate.cc
@@ -20,7 +20,7 @@ bool CookieAccessDelegate::ShouldUseEphemeralStorage(
const net::SiteForCookies& site_for_cookies,
net::CookieSettingOverrides overrides,
const std::optional& top_frame_origin) const {
- NOTREACHED() << "Should be overridden";
+ NOTREACHED_IN_MIGRATION() << "Should be overridden";
return false;
}
diff --git a/chromium_src/net/cookies/cookie_monster.cc b/chromium_src/net/cookies/cookie_monster.cc
index f336feec1df9..8100ea587f7f 100644
--- a/chromium_src/net/cookies/cookie_monster.cc
+++ b/chromium_src/net/cookies/cookie_monster.cc
@@ -104,7 +104,7 @@ void CookieMonster::SetCanonicalCookieAsync(
if (options.should_use_ephemeral_storage()) {
if (!options.top_frame_origin()) {
// Shouldn't happen, but don't do anything in this case.
- NOTREACHED();
+ NOTREACHED_IN_MIGRATION();
MaybeRunCookieCallback(
std::move(callback),
CookieAccessResult(CookieInclusionStatus(
@@ -133,7 +133,7 @@ void CookieMonster::GetCookieListWithOptionsAsync(
if (options.should_use_ephemeral_storage()) {
if (!options.top_frame_origin()) {
// Shouldn't happen, but don't do anything in this case.
- NOTREACHED();
+ NOTREACHED_IN_MIGRATION();
MaybeRunCookieCallback(std::move(callback), CookieAccessResultList(),
CookieAccessResultList());
return;
diff --git a/chromium_src/net/device_bound_sessions/session_binding_utils.cc b/chromium_src/net/device_bound_sessions/session_binding_utils.cc
new file mode 100644
index 000000000000..31dd6be0890a
--- /dev/null
+++ b/chromium_src/net/device_bound_sessions/session_binding_utils.cc
@@ -0,0 +1,15 @@
+/* Copyright (c) 2024 The Brave Authors. All rights reserved.
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this file,
+ * You can obtain one at https://mozilla.org/MPL/2.0/. */
+
+#include "net/device_bound_sessions/session_binding_utils.h"
+
+#define RSA_PKCS1_SHA1 \
+ ECDSA_SHA384: \
+ return "SHA384"; \
+ case crypto::SignatureVerifier::RSA_PKCS1_SHA1
+
+#include "src/net/device_bound_sessions/session_binding_utils.cc"
+
+#undef RSA_PKCS1_SHA1
diff --git a/chromium_src/net/http/transport_security_state.cc b/chromium_src/net/http/transport_security_state.cc
index 87c0b0ca5a2c..4c98f972f2d1 100644
--- a/chromium_src/net/http/transport_security_state.cc
+++ b/chromium_src/net/http/transport_security_state.cc
@@ -104,7 +104,8 @@ std::optional GetPartitionHashForAddingHSTS(
return GetHSTSPartitionHash(isolation_info.network_anonymization_key());
}
-// Use NetworkIsolationKey to create PartitionHash for accessing/storing data.
+// Use NetworkAnonymizationKey to create PartitionHash for accessing/storing
+// data.
std::optional GetPartitionHashForHSTS(
const NetworkAnonymizationKey& network_anonymization_key) {
if (!base::FeatureList::IsEnabled(features::kBravePartitionHSTS)) {
@@ -113,9 +114,10 @@ std::optional GetPartitionHashForHSTS(
return GetHSTSPartitionHash(network_anonymization_key);
}
-// Use host-bound NetworkIsolationKey in cases when no NetworkIsolationKey is
-// available. Such cases may include net-internals page, PasswordManager.
-// All network::NetworkContext HSTS-related public methods will use this.
+// Use host-bound NetworkAnonymizationKey in cases when no
+// NetworkAnonymizationKey is available. Such cases may include net-internals
+// page, PasswordManager. All network::NetworkContext HSTS-related public
+// methods will use this.
std::optional
GetHostBoundPartitionHashForHSTS(const std::string& host) {
if (!base::FeatureList::IsEnabled(features::kBravePartitionHSTS)) {
@@ -130,6 +132,20 @@ GetHostBoundPartitionHashForHSTS(const std::string& host) {
} // namespace
+// Use NetworkAnonymizationKey to create PartitionHash for accessing/storing
+// data before calling Chromium implementation
+SSLUpgradeDecision TransportSecurityState::GetSSLUpgradeDecision(
+ const NetworkAnonymizationKey& network_anonymization_key,
+ const std::string& host,
+ const NetLogWithSource& net_log) {
+ auto auto_reset_partition_hash = enabled_sts_hosts_.SetScopedPartitionHash(
+ GetPartitionHashForHSTS(network_anonymization_key));
+ return TransportSecurityState_ChromiumImpl::GetSSLUpgradeDecision(host,
+ net_log);
+}
+
+// Use NetworkAnonymizationKey to create PartitionHash for accessing/storing
+// data before calling Chromium implementation
bool TransportSecurityState::ShouldSSLErrorsBeFatal(
const NetworkAnonymizationKey& network_anonymization_key,
const std::string& host) {
@@ -139,6 +155,8 @@ bool TransportSecurityState::ShouldSSLErrorsBeFatal(
return TransportSecurityState_ChromiumImpl::ShouldSSLErrorsBeFatal(host);
}
+// Use NetworkAnonymizationKey to create PartitionHash for accessing/storing
+// data before calling Chromium implementation
bool TransportSecurityState::ShouldUpgradeToSSL(
const NetworkAnonymizationKey& network_anonymization_key,
const std::string& host,
@@ -149,6 +167,8 @@ bool TransportSecurityState::ShouldUpgradeToSSL(
return TransportSecurityState_ChromiumImpl::ShouldUpgradeToSSL(host, net_log);
}
+// Use NetworkAnonymizationKey to create PartitionHash for accessing/storing
+// data before calling Chromium implementation
bool TransportSecurityState::AddHSTSHeader(const IsolationInfo& isolation_info,
const std::string& host,
const std::string& value) {
@@ -162,6 +182,8 @@ bool TransportSecurityState::AddHSTSHeader(const IsolationInfo& isolation_info,
return TransportSecurityState_ChromiumImpl::AddHSTSHeader(host, value);
}
+// Use NetworkAnonymizationKey to create PartitionHash for accessing/storing
+// data before calling Chromium implementation
void TransportSecurityState::AddHSTS(const std::string& host,
const base::Time& expiry,
bool include_subdomains) {
@@ -172,6 +194,8 @@ void TransportSecurityState::AddHSTS(const std::string& host,
include_subdomains);
}
+// Use NetworkAnonymizationKey to create PartitionHash for accessing/storing
+// data before calling Chromium implementation
bool TransportSecurityState::ShouldSSLErrorsBeFatal(const std::string& host) {
DCHECK_CALLED_ON_VALID_THREAD(thread_checker_);
auto auto_reset_partition_hash = enabled_sts_hosts_.SetScopedPartitionHash(
@@ -179,6 +203,8 @@ bool TransportSecurityState::ShouldSSLErrorsBeFatal(const std::string& host) {
return TransportSecurityState_ChromiumImpl::ShouldSSLErrorsBeFatal(host);
}
+// Use NetworkAnonymizationKey to create PartitionHash for accessing/storing
+// data before calling Chromium implementation
bool TransportSecurityState::ShouldUpgradeToSSL(
const std::string& host,
const NetLogWithSource& net_log) {
@@ -188,6 +214,8 @@ bool TransportSecurityState::ShouldUpgradeToSSL(
return TransportSecurityState_ChromiumImpl::ShouldUpgradeToSSL(host, net_log);
}
+// Use NetworkAnonymizationKey to create PartitionHash for accessing/storing
+// data before calling Chromium implementation
bool TransportSecurityState::GetDynamicSTSState(const std::string& host,
STSState* result) {
DCHECK_CALLED_ON_VALID_THREAD(thread_checker_);
diff --git a/chromium_src/net/http/transport_security_state.h b/chromium_src/net/http/transport_security_state.h
index 097007364666..88521c28cc04 100644
--- a/chromium_src/net/http/transport_security_state.h
+++ b/chromium_src/net/http/transport_security_state.h
@@ -34,6 +34,10 @@ class NET_EXPORT TransportSecurityState
using TransportSecurityState_ChromiumImpl::
TransportSecurityState_ChromiumImpl;
+ SSLUpgradeDecision GetSSLUpgradeDecision(
+ const NetworkAnonymizationKey& network_anonymization_key,
+ const std::string& host,
+ const NetLogWithSource& net_log = NetLogWithSource());
bool ShouldSSLErrorsBeFatal(
const NetworkAnonymizationKey& network_anonymization_key,
const std::string& host);
diff --git a/chromium_src/net/socket/socks5_client_socket.cc b/chromium_src/net/socket/socks5_client_socket.cc
index b2a8b34d843c..12a276d85ff0 100644
--- a/chromium_src/net/socket/socks5_client_socket.cc
+++ b/chromium_src/net/socket/socks5_client_socket.cc
@@ -180,7 +180,7 @@ int SOCKS5ClientSocketAuth::Authenticate(
case STATE_BAD:
default:
- NOTREACHED() << "bad state";
+ NOTREACHED_IN_MIGRATION() << "bad state";
return ERR_UNEXPECTED;
}
} while (rv != ERR_IO_PENDING);
diff --git a/chromium_src/net/url_request/url_request_http_job.cc b/chromium_src/net/url_request/url_request_http_job.cc
index 2285346b652b..03d7617bcc51 100644
--- a/chromium_src/net/url_request/url_request_http_job.cc
+++ b/chromium_src/net/url_request/url_request_http_job.cc
@@ -7,6 +7,9 @@
#include "net/http/transport_security_state.h"
+#define GetSSLUpgradeDecision(host, net_log) \
+ GetSSLUpgradeDecision(request->isolation_info().network_anonymization_key(), \
+ host, net_log)
#define ShouldSSLErrorsBeFatal(host) \
ShouldSSLErrorsBeFatal( \
request_->isolation_info().network_anonymization_key(), host)
@@ -21,6 +24,7 @@
#undef AddHSTSHeader
#undef ShouldUpgradeToSSL
#undef ShouldSSLErrorsBeFatal
+#undef GetSSLUpgradeDecision
namespace net {
diff --git a/chromium_src/services/device/public/cpp/device_features.cc b/chromium_src/services/device/public/cpp/device_features.cc
deleted file mode 100644
index 4833b7921da5..000000000000
--- a/chromium_src/services/device/public/cpp/device_features.cc
+++ /dev/null
@@ -1,19 +0,0 @@
-/* Copyright (c) 2021 The Brave Authors. All rights reserved.
- * This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this file,
- * You can obtain one at https://mozilla.org/MPL/2.0/. */
-
-#include "src/services/device/public/cpp/device_features.cc"
-
-#include "base/feature_override.h"
-#include "build/build_config.h"
-
-namespace features {
-
-OVERRIDE_FEATURE_DEFAULT_STATES({{
-#if BUILDFLAG(IS_WIN)
- {kWinrtGeolocationImplementation, base::FEATURE_ENABLED_BY_DEFAULT},
-#endif // BUILDFLAG(IS_WIN)
-}});
-
-} // namespace features
diff --git a/chromium_src/third_party/blink/common/features.cc b/chromium_src/third_party/blink/common/features.cc
index a54454d67aea..c0ccc1157394 100644
--- a/chromium_src/third_party/blink/common/features.cc
+++ b/chromium_src/third_party/blink/common/features.cc
@@ -38,8 +38,6 @@ OVERRIDE_FEATURE_DEFAULT_STATES({{
{kPrerender2, base::FEATURE_DISABLED_BY_DEFAULT},
{kPrivacySandboxAdsAPIs, base::FEATURE_DISABLED_BY_DEFAULT},
{kPrivateAggregationApi, base::FEATURE_DISABLED_BY_DEFAULT},
- {kPrivateAggregationApiMultipleCloudProviders,
- base::FEATURE_DISABLED_BY_DEFAULT},
// This feature uses shared memory to reduce IPCs to access cookies, but
// Ephemeral Storage can switch cookie storage backend at runtime, so we
// can't use it.
diff --git a/chromium_src/third_party/blink/renderer/core/execution_context/navigator_base.cc b/chromium_src/third_party/blink/renderer/core/execution_context/navigator_base.cc
index bdb6487d8d61..c3d4e77fef81 100644
--- a/chromium_src/third_party/blink/renderer/core/execution_context/navigator_base.cc
+++ b/chromium_src/third_party/blink/renderer/core/execution_context/navigator_base.cc
@@ -47,7 +47,7 @@ void ApplyBraveHardwareConcurrencyOverride(blink::ExecutionContext* context,
break;
}
default:
- NOTREACHED();
+ NOTREACHED_IN_MIGRATION();
}
*hardware_concurrency = farbled_value;
}
diff --git a/chromium_src/third_party/blink/renderer/modules/canvas/canvas2d/base_rendering_context_2d.cc b/chromium_src/third_party/blink/renderer/modules/canvas/canvas2d/base_rendering_context_2d.cc
index e2f64f52ddf8..7cd7189da764 100644
--- a/chromium_src/third_party/blink/renderer/modules/canvas/canvas2d/base_rendering_context_2d.cc
+++ b/chromium_src/third_party/blink/renderer/modules/canvas/canvas2d/base_rendering_context_2d.cc
@@ -63,7 +63,7 @@ ImageData* BaseRenderingContext2D::getImageData(
int sw,
int sh,
ExceptionState& exception_state) {
- NOTREACHED();
+ NOTREACHED_IN_MIGRATION();
return nullptr;
}
@@ -74,7 +74,7 @@ ImageData* BaseRenderingContext2D::getImageData(
int sh,
ImageDataSettings* image_data_settings,
ExceptionState& exception_state) {
- NOTREACHED();
+ NOTREACHED_IN_MIGRATION();
return nullptr;
}
@@ -85,7 +85,7 @@ ImageData* BaseRenderingContext2D::getImageDataInternal(
int sh,
ImageDataSettings* image_data_settings,
ExceptionState& exception_state) {
- NOTREACHED();
+ NOTREACHED_IN_MIGRATION();
return nullptr;
}
@@ -96,7 +96,7 @@ ImageData* BaseRenderingContext2D::getImageDataInternal_Unused(
int sh,
ImageDataSettings* image_data_settings,
ExceptionState& exception_state) {
- NOTREACHED();
+ NOTREACHED_IN_MIGRATION();
return nullptr;
}
diff --git a/chromium_src/third_party/blink/renderer/modules/plugins/dom_plugin_array.cc b/chromium_src/third_party/blink/renderer/modules/plugins/dom_plugin_array.cc
index 7b423592bfc5..cc93649fc011 100644
--- a/chromium_src/third_party/blink/renderer/modules/plugins/dom_plugin_array.cc
+++ b/chromium_src/third_party/blink/renderer/modules/plugins/dom_plugin_array.cc
@@ -138,7 +138,7 @@ void FarblePlugins(DOMPluginArray* owner,
break;
}
default:
- NOTREACHED();
+ NOTREACHED_IN_MIGRATION();
}
}
diff --git a/chromium_src/third_party/blink/renderer/modules/webgl/webgl2_rendering_context_base.cc b/chromium_src/third_party/blink/renderer/modules/webgl/webgl2_rendering_context_base.cc
index f2671ec628dd..25a6022167f6 100644
--- a/chromium_src/third_party/blink/renderer/modules/webgl/webgl2_rendering_context_base.cc
+++ b/chromium_src/third_party/blink/renderer/modules/webgl/webgl2_rendering_context_base.cc
@@ -120,7 +120,7 @@ ScriptValue FarbleGLInt64Parameter(WebGL2RenderingContextBase* owner,
break; \
} \
default: \
- NOTREACHED(); \
+ NOTREACHED_IN_MIGRATION(); \
}
#include "src/third_party/blink/renderer/modules/webgl/webgl2_rendering_context_base.cc"
diff --git a/chromium_src/ui/accessibility/accessibility_features.cc b/chromium_src/ui/accessibility/accessibility_features.cc
index 5c875f2028fb..cd8fe2314e6b 100644
--- a/chromium_src/ui/accessibility/accessibility_features.cc
+++ b/chromium_src/ui/accessibility/accessibility_features.cc
@@ -10,9 +10,7 @@
namespace features {
OVERRIDE_FEATURE_DEFAULT_STATES({{
-#if !BUILDFLAG(IS_ANDROID)
- {kReadAnything, base::FEATURE_DISABLED_BY_DEFAULT},
-#endif
-}});
+ {kUseMoveNotCopyInMergeTreeUpdate, base::FEATURE_DISABLED_BY_DEFAULT},
+}});
} // namespace features
diff --git a/chromium_src/ui/color/material_ui_color_mixer.cc b/chromium_src/ui/color/material_ui_color_mixer.cc
index f13a97e0d82d..d908fdcb9a63 100644
--- a/chromium_src/ui/color/material_ui_color_mixer.cc
+++ b/chromium_src/ui/color/material_ui_color_mixer.cc
@@ -7,9 +7,11 @@
#define AddMaterialUiColorMixer AddMaterialUiColorMixer_UnUsed
-#include "src/ui/color/material_ui_color_mixer.cc"
+#include "ui/color/color_transform.h"
#include "ui/gfx/color_palette.h"
+#include "src/ui/color/material_ui_color_mixer.cc"
+
#undef AddMaterialUiColorMixer
namespace ui {
@@ -38,6 +40,10 @@ void AddMaterialUiColorMixer(ColorProvider* provider,
mixer[ui::kColorComboboxInkDropHovered] = {ui::kColorSysStateHoverOnSubtle};
mixer[ui::kColorComboboxInkDropRipple] = {
ui::kColorSysStateRippleNeutralOnSubtle};
+ mixer[kColorComboboxBackground] = {kColorSysSurface};
+ mixer[kColorComboboxBackgroundDisabled] = {GetResultingPaintColor(
+ {kColorSysStateDisabledContainer}, {kColorComboboxBackground})};
+ mixer[kColorComboboxContainerOutline] = {kColorSysNeutralOutline};
mixer[ui::kColorToolbarSearchFieldBackground] = {
ui::kColorSysBaseContainerElevated};
mixer[ui::kColorToolbarSearchFieldBackgroundHover] = {
diff --git a/chromium_src/ui/views/controls/button/md_text_button.cc b/chromium_src/ui/views/controls/button/md_text_button.cc
index ee231d19f96c..8823a1b0ffd0 100644
--- a/chromium_src/ui/views/controls/button/md_text_button.cc
+++ b/chromium_src/ui/views/controls/button/md_text_button.cc
@@ -334,10 +334,11 @@ MdTextButton::ButtonColors MdTextButton::GetButtonColors() {
MdTextButtonStyleKey style_lookup{GetBraveStyle(), color_scheme, state};
auto it = GetButtonThemes().find(style_lookup);
if (it == GetButtonThemes().end()) {
- NOTREACHED() << "No button theme found for : "
- << static_cast(GetBraveStyle()) << ", ColorScheme: "
- << (color_scheme == ColorScheme::kDark ? "dark" : "light")
- << ", ButtonState: " << state;
+ NOTREACHED_IN_MIGRATION()
+ << "No button theme found for : " << static_cast(GetBraveStyle())
+ << ", ColorScheme: "
+ << (color_scheme == ColorScheme::kDark ? "dark" : "light")
+ << ", ButtonState: " << state;
}
const auto& style = it->second;
return {.background_color = AddOpacity(
diff --git a/components/ai_chat/core/browser/ai_chat_credential_manager.cc b/components/ai_chat/core/browser/ai_chat_credential_manager.cc
index 3a23b3125128..70ef52f39178 100644
--- a/components/ai_chat/core/browser/ai_chat_credential_manager.cc
+++ b/components/ai_chat/core/browser/ai_chat_credential_manager.cc
@@ -249,8 +249,7 @@ void AIChatCredentialManager::OnPrepareCredentialsPresentation(
const std::string& credential_as_cookie) {
// Credential is returned in cookie format.
net::CookieInclusionStatus status;
- net::ParsedCookie credential_cookie(credential_as_cookie,
- /*block_truncated=*/true, &status);
+ net::ParsedCookie credential_cookie(credential_as_cookie, &status);
if (!credential_cookie.IsValid()) {
std::move(callback).Run(std::nullopt);
return;
diff --git a/components/ai_chat/core/browser/ai_chat_metrics.cc b/components/ai_chat/core/browser/ai_chat_metrics.cc
index 7e68e6d42679..c69e7bdcce2e 100644
--- a/components/ai_chat/core/browser/ai_chat_metrics.cc
+++ b/components/ai_chat/core/browser/ai_chat_metrics.cc
@@ -66,7 +66,7 @@ const char* GetContextMenuActionKey(ContextMenuAction action) {
case ContextMenuAction::kChangeLength:
return kChangeLengthActionKey;
default:
- NOTREACHED();
+ NOTREACHED_IN_MIGRATION();
return nullptr;
}
}
diff --git a/components/ai_chat/core/browser/conversation_driver.cc b/components/ai_chat/core/browser/conversation_driver.cc
index 79488c5d020d..3eb472a64491 100644
--- a/components/ai_chat/core/browser/conversation_driver.cc
+++ b/components/ai_chat/core/browser/conversation_driver.cc
@@ -241,7 +241,8 @@ void ConversationDriver::ChangeModel(const std::string& model_key) {
// Check that the key exists
auto* new_model = GetModel(model_key);
if (!new_model) {
- NOTREACHED() << "No matching model found for key: " << model_key;
+ NOTREACHED_IN_MIGRATION()
+ << "No matching model found for key: " << model_key;
return;
}
model_key_ = new_model->key;
@@ -257,7 +258,8 @@ void ConversationDriver::SetDefaultModel(const std::string& model_key) {
// Check that the key exists
auto* new_model = GetModel(model_key);
if (!new_model) {
- NOTREACHED() << "No matching model found for key: " << model_key;
+ NOTREACHED_IN_MIGRATION()
+ << "No matching model found for key: " << model_key;
return;
}
@@ -745,8 +747,9 @@ void ConversationDriver::GenerateQuestions() {
// This function should not be presented in the UI if the user has not
// opted-in yet.
if (!HasUserOptedIn()) {
- NOTREACHED() << "GenerateQuestions should not be called before user is "
- << "opted in to AI Chat";
+ NOTREACHED_IN_MIGRATION()
+ << "GenerateQuestions should not be called before user is "
+ << "opted in to AI Chat";
return;
}
DCHECK(should_send_page_contents_)
@@ -763,8 +766,9 @@ void ConversationDriver::GenerateQuestions() {
mojom::SuggestionGenerationStatus::IsGenerating ||
suggestion_generation_status_ ==
mojom::SuggestionGenerationStatus::HasGenerated) {
- NOTREACHED() << "UI should not allow GenerateQuestions to be called more "
- << "than once";
+ NOTREACHED_IN_MIGRATION()
+ << "UI should not allow GenerateQuestions to be called more "
+ << "than once";
return;
}
diff --git a/components/ai_chat/renderer/ai_chat_resource_sniffer.cc b/components/ai_chat/renderer/ai_chat_resource_sniffer.cc
index 829c967ea9ad..191364eca9ab 100644
--- a/components/ai_chat/renderer/ai_chat_resource_sniffer.cc
+++ b/components/ai_chat/renderer/ai_chat_resource_sniffer.cc
@@ -82,7 +82,7 @@ bool AIChatResourceSniffer::IsTransformer() const {
void AIChatResourceSniffer::Transform(
std::string body,
base::OnceCallback on_complete) {
- NOTREACHED();
+ NOTREACHED_IN_MIGRATION();
}
void AIChatResourceSniffer::UpdateResponseHead(
diff --git a/components/ai_chat/renderer/ai_chat_resource_sniffer_throttle_unittest.cc b/components/ai_chat/renderer/ai_chat_resource_sniffer_throttle_unittest.cc
index ffb3d9cdab2a..4f57afb1865b 100644
--- a/components/ai_chat/renderer/ai_chat_resource_sniffer_throttle_unittest.cc
+++ b/components/ai_chat/renderer/ai_chat_resource_sniffer_throttle_unittest.cc
@@ -62,7 +62,7 @@ class MojoDataPipeSender {
// Just wait until OnWritable() is called by the watcher.
return;
default:
- NOTREACHED();
+ NOTREACHED_IN_MIGRATION();
return;
}
sent_bytes_ += sending_bytes;
@@ -182,7 +182,7 @@ class MockDelegate : public blink::URLLoaderThrottle::Delegate {
case MOJO_RESULT_SHOULD_WAIT:
return 0;
default:
- NOTREACHED();
+ NOTREACHED_IN_MIGRATION();
}
return 0;
}
diff --git a/components/ai_rewriter/renderer/ai_rewriter_agent.cc b/components/ai_rewriter/renderer/ai_rewriter_agent.cc
index 1fcac5439452..c4c1e95b1709 100644
--- a/components/ai_rewriter/renderer/ai_rewriter_agent.cc
+++ b/components/ai_rewriter/renderer/ai_rewriter_agent.cc
@@ -29,7 +29,7 @@ gfx::RectF GetBounds(content::RenderFrame* frame) {
return gfx::RectF();
}
- return frame->ElementBoundsInWindow(focused);
+ return gfx::RectF(frame->ConvertViewportToWindow(focused.BoundsInWidget()));
}
} // namespace
diff --git a/components/assist_ranker/ranker_model_loader_impl_unittest.cc b/components/assist_ranker/ranker_model_loader_impl_unittest.cc
index a1bc1bfe6dae..57581eef3ca5 100644
--- a/components/assist_ranker/ranker_model_loader_impl_unittest.cc
+++ b/components/assist_ranker/ranker_model_loader_impl_unittest.cc
@@ -135,13 +135,13 @@ void RankerModelLoaderImplTest::InitModel(const GURL& model_url,
RankerModelStatus RankerModelLoaderImplTest::ValidateModel(
const RankerModel& model) {
- NOTREACHED();
+ NOTREACHED_IN_MIGRATION();
return RankerModelStatus::OK;
}
void RankerModelLoaderImplTest::OnModelAvailable(
std::unique_ptr model) {
- NOTREACHED();
+ NOTREACHED_IN_MIGRATION();
}
} // namespace
diff --git a/components/autofill_payments_strings.grdp b/components/autofill_payments_strings.grdp
index 78fc79900bbc..b8dfe69d2c5c 100644
--- a/components/autofill_payments_strings.grdp
+++ b/components/autofill_payments_strings.grdp
@@ -60,33 +60,6 @@
Google Pay logo
-
-
-
- Do you want to fill in your card info?
-
-
-
-
- Do you want to fill in your $1Visa - 1234?
-
-
-
-
- Fill in
-
-
-
- No thanks
-
-
-
-
- No Thanks
-
-
-
-
Phone
@@ -867,7 +840,7 @@
Name on card:
-
+
Merchant doesn't accept this virtual card
diff --git a/components/autofill_strings.grdp b/components/autofill_strings.grdp
index c1f5aae64315..f7f2262b1fef 100644
--- a/components/autofill_strings.grdp
+++ b/components/autofill_strings.grdp
@@ -345,36 +345,11 @@
Delete address
-
-
-
- Device unlock
-
-
- Use device unlock to confirm cards faster
-
-
-
-
- Windows Hello
-
-
- Use Windows Hello to confirm cards faster
-
-
Enter $1ZIP code
-
-
- Biometrics
-
-
- This feature is not available on your device
-
-
diff --git a/components/body_sniffer/body_sniffer_url_loader.cc b/components/body_sniffer/body_sniffer_url_loader.cc
index 625271bc989c..5775d0d162c2 100644
--- a/components/body_sniffer/body_sniffer_url_loader.cc
+++ b/components/body_sniffer/body_sniffer_url_loader.cc
@@ -113,7 +113,7 @@ void BodySnifferURLLoader::OnReceiveEarlyHints(
network::mojom::EarlyHintsPtr early_hints) {
// OnReceiveEarlyHints() shouldn't be called. See the comment in
// OnReceiveResponse().
- NOTREACHED();
+ NOTREACHED_IN_MIGRATION();
}
void BodySnifferURLLoader::OnReceiveResponse(
@@ -123,7 +123,7 @@ void BodySnifferURLLoader::OnReceiveResponse(
// OnReceiveResponse() shouldn't be called because BodySnifferURLLoader is
// created by WillProcessResponse(), which is equivalent
// to OnReceiveResponse().
- NOTREACHED();
+ NOTREACHED_IN_MIGRATION();
}
void BodySnifferURLLoader::OnReceiveRedirect(
@@ -132,7 +132,7 @@ void BodySnifferURLLoader::OnReceiveRedirect(
// OnReceiveRedirect() shouldn't be called because BodySnifferURLLoader is
// created by WillProcessResponse(), which is equivalent
// to OnReceiveResponse().
- NOTREACHED();
+ NOTREACHED_IN_MIGRATION();
}
void BodySnifferURLLoader::OnUploadProgress(
@@ -171,10 +171,10 @@ void BodySnifferURLLoader::OnComplete(
destination_url_loader_client_->OnComplete(status);
return;
case State::kAborted:
- NOTREACHED();
+ NOTREACHED_IN_MIGRATION();
return;
}
- NOTREACHED();
+ NOTREACHED_IN_MIGRATION();
}
void BodySnifferURLLoader::FollowRedirect(
@@ -184,7 +184,7 @@ void BodySnifferURLLoader::FollowRedirect(
const std::optional& new_url) {
// BodySnifferURLLoader starts handling the request after
// OnReceivedResponse(). A redirect response is not expected.
- NOTREACHED();
+ NOTREACHED_IN_MIGRATION();
}
void BodySnifferURLLoader::SetPriority(net::RequestPriority priority,
@@ -236,7 +236,7 @@ void BodySnifferURLLoader::OnBodyReadable(MojoResult) {
body_consumer_watcher_.ArmOrNotify();
return;
default:
- NOTREACHED();
+ NOTREACHED_IN_MIGRATION();
return;
}
@@ -252,7 +252,7 @@ void BodySnifferURLLoader::OnBodyReadable(MojoResult) {
handler->OnBodyUpdated(buffered_body_, is_body_complete);
switch (action) {
case BodyHandler::Action::kNone:
- NOTREACHED() << "Action shouldn't return kNone";
+ NOTREACHED_IN_MIGRATION() << "Action shouldn't return kNone";
break;
case BodyHandler::Action::kContinue:
if (is_body_complete) {
@@ -402,7 +402,7 @@ void BodySnifferURLLoader::SendReceivedBodyToClient() {
body_producer_watcher_.ArmOrNotify();
return;
default:
- NOTREACHED();
+ NOTREACHED_IN_MIGRATION();
return;
}
bytes_remaining_in_buffer_ -= bytes_sent;
@@ -431,7 +431,7 @@ void BodySnifferURLLoader::ForwardBodyToClient() {
CompleteSending();
return;
default:
- NOTREACHED();
+ NOTREACHED_IN_MIGRATION();
return;
}
@@ -450,7 +450,7 @@ void BodySnifferURLLoader::ForwardBodyToClient() {
body_producer_watcher_.ArmOrNotify();
return;
default:
- NOTREACHED();
+ NOTREACHED_IN_MIGRATION();
return;
}
diff --git a/components/brave_ads/core/internal/account/confirmations/confirmation_type.cc b/components/brave_ads/core/internal/account/confirmations/confirmation_type.cc
index 0f4c5e70188b..258cfa487aa0 100644
--- a/components/brave_ads/core/internal/account/confirmations/confirmation_type.cc
+++ b/components/brave_ads/core/internal/account/confirmations/confirmation_type.cc
@@ -76,7 +76,8 @@ ConfirmationType ToConfirmationType(const std::string_view value) {
// TODO(https://github.com/brave/brave-browser/issues/32066): Detect
// potential defects using `NOTREACHED`.
SCOPED_CRASH_KEY_STRING32("Issue32066", "confirmation_type", value);
- NOTREACHED() << "Unexpected value for ConfirmationType: " << value;
+ NOTREACHED_IN_MIGRATION()
+ << "Unexpected value for ConfirmationType: " << value;
return ConfirmationType::kUndefined;
}
diff --git a/components/brave_ads/core/internal/ad_units/ad_type.cc b/components/brave_ads/core/internal/ad_units/ad_type.cc
index f4ff71603bbf..f20ccce6ea5e 100644
--- a/components/brave_ads/core/internal/ad_units/ad_type.cc
+++ b/components/brave_ads/core/internal/ad_units/ad_type.cc
@@ -52,7 +52,7 @@ AdType ToAdType(std::string_view value) {
// TODO(https://github.com/brave/brave-browser/issues/32066): Detect
// potential defects using `NOTREACHED`.
SCOPED_CRASH_KEY_STRING32("Issue32066", "ad_type", value);
- NOTREACHED() << "Unexpected value for AdType: " << value;
+ NOTREACHED_IN_MIGRATION() << "Unexpected value for AdType: " << value;
return AdType::kUndefined;
}
diff --git a/components/brave_ads/core/internal/database/database.cc b/components/brave_ads/core/internal/database/database.cc
index 954a300d5c7d..7db47db0fc84 100644
--- a/components/brave_ads/core/internal/database/database.cc
+++ b/components/brave_ads/core/internal/database/database.cc
@@ -168,7 +168,7 @@ mojom::DBCommandResponseInfo::StatusType Database::Execute(
return mojom::DBCommandResponseInfo::StatusType::INITIALIZATION_ERROR;
}
- if (!db_.Execute(command->sql.c_str())) {
+ if (!db_.Execute(command->sql)) {
VLOG(0) << "Database error: " << db_.GetErrorMessage();
return mojom::DBCommandResponseInfo::StatusType::COMMAND_ERROR;
}
@@ -185,7 +185,7 @@ mojom::DBCommandResponseInfo::StatusType Database::Run(
}
sql::Statement statement;
- statement.Assign(db_.GetUniqueStatement(command->sql.c_str()));
+ statement.Assign(db_.GetUniqueStatement(command->sql));
if (!statement.is_valid()) {
VLOG(0) << "Invalid database statement " << statement.GetSQLStatement();
return mojom::DBCommandResponseInfo::StatusType::COMMAND_ERROR;
@@ -213,7 +213,7 @@ mojom::DBCommandResponseInfo::StatusType Database::Read(
}
sql::Statement statement;
- statement.Assign(db_.GetUniqueStatement(command->sql.c_str()));
+ statement.Assign(db_.GetUniqueStatement(command->sql));
if (!statement.is_valid()) {
VLOG(0) << "Invalid database statement " << statement.GetSQLStatement();
return mojom::DBCommandResponseInfo::StatusType::COMMAND_ERROR;
diff --git a/components/brave_federated/data_stores/data_store.cc b/components/brave_federated/data_stores/data_store.cc
index 3511f0ac8559..ce749923a12a 100644
--- a/components/brave_federated/data_stores/data_store.cc
+++ b/components/brave_federated/data_stores/data_store.cc
@@ -81,8 +81,7 @@ bool DataStore::InitializeDatabase() {
int DataStore::GetNextTrainingInstanceId() {
sql::Statement statement(database_.GetUniqueStatement(
base::StringPrintf("SELECT MAX(training_instance_id) FROM %s",
- data_store_task_.name.c_str())
- .c_str()));
+ data_store_task_.name.c_str())));
if (statement.Step()) {
return statement.ColumnInt(0) + 1;
@@ -99,8 +98,7 @@ void DataStore::SaveCovariate(
"feature_name, feature_type, "
"feature_value, created_at) "
"VALUES (?,?,?,?,?)",
- data_store_task_.name.c_str())
- .c_str()));
+ data_store_task_.name.c_str())));
BindCovariateToStatement(covariate, training_instance_id, created_at,
&statement);
@@ -129,8 +127,7 @@ TrainingData DataStore::LoadTrainingData() {
sql::Statement statement(database_.GetUniqueStatement(
base::StringPrintf("SELECT id, training_instance_id, feature_name, "
"feature_type, feature_value FROM %s",
- data_store_task_.name.c_str())
- .c_str()));
+ data_store_task_.name.c_str())));
training_instances.clear();
while (statement.Step()) {
@@ -149,10 +146,10 @@ TrainingData DataStore::LoadTrainingData() {
bool DataStore::DeleteTrainingData() {
DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
- if (!database_.Execute(
- base::StringPrintf("DELETE FROM %s", data_store_task_.name.c_str())
- .c_str()))
+ if (!database_.Execute(base::StringPrintf("DELETE FROM %s",
+ data_store_task_.name.c_str()))) {
return false;
+ }
std::ignore = database_.Execute("VACUUM");
return true;
@@ -161,12 +158,11 @@ bool DataStore::DeleteTrainingData() {
void DataStore::PurgeTrainingDataAfterExpirationDate() {
DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
- sql::Statement delete_statement(database_.GetUniqueStatement(
- base::StringPrintf(" DELETE FROM %s WHERE created_at < ? OR id NOT IN "
- "(SELECT id FROM %s ORDER BY id DESC LIMIT ?)",
- data_store_task_.name.c_str(),
- data_store_task_.name.c_str())
- .c_str()));
+ sql::Statement delete_statement(
+ database_.GetUniqueStatement(base::StringPrintf(
+ " DELETE FROM %s WHERE created_at < ? OR id NOT IN "
+ "(SELECT id FROM %s ORDER BY id DESC LIMIT ?)",
+ data_store_task_.name.c_str(), data_store_task_.name.c_str())));
base::Time expiration_threshold =
base::Time::Now() - data_store_task_.max_retention_days;
delete_statement.BindDouble(0,
@@ -182,14 +178,12 @@ bool DataStore::MaybeCreateTable() {
sql::Transaction transaction(&database_);
return transaction.Begin() &&
- database_.Execute(
- base::StringPrintf(
- "CREATE TABLE %s (id INTEGER PRIMARY KEY AUTOINCREMENT, "
- "training_instance_id INTEGER NOT NULL, feature_name INTEGER "
- "NOT NULL, feature_type INTEGER NOT NULL, "
- "feature_value TEXT NOT NULL, created_at DOUBLE NOT NULL)",
- data_store_task_.name.c_str())
- .c_str()) &&
+ database_.Execute(base::StringPrintf(
+ "CREATE TABLE %s (id INTEGER PRIMARY KEY AUTOINCREMENT, "
+ "training_instance_id INTEGER NOT NULL, feature_name INTEGER "
+ "NOT NULL, feature_type INTEGER NOT NULL, "
+ "feature_value TEXT NOT NULL, created_at DOUBLE NOT NULL)",
+ data_store_task_.name.c_str())) &&
transaction.Commit();
}
diff --git a/components/brave_new_tab_ui/storage/new_tab_storage.ts b/components/brave_new_tab_ui/storage/new_tab_storage.ts
index 9b414d796552..30dc1eb15f0f 100644
--- a/components/brave_new_tab_ui/storage/new_tab_storage.ts
+++ b/components/brave_new_tab_ui/storage/new_tab_storage.ts
@@ -43,7 +43,6 @@ export const defaultState: NewTab.State = {
torCircuitEstablished: false,
torInitProgress: '',
isTor: false,
- isQwant: false,
stats: {
adsBlockedStat: 0,
javascriptBlockedStat: 0,
@@ -90,7 +89,6 @@ export const defaultState: NewTab.State = {
if (chrome.extension.inIncognitoContext) {
defaultState.isTor = loadTimeData.getBoolean('isTor')
- defaultState.isQwant = loadTimeData.getBoolean('isQwant')
}
// Ensure any new stack widgets introduced are put behind
diff --git a/components/brave_news/browser/brave_news_p3a.cc b/components/brave_news/browser/brave_news_p3a.cc
index 5d7b3062680c..7dfa531f8622 100644
--- a/components/brave_news/browser/brave_news_p3a.cc
+++ b/components/brave_news/browser/brave_news_p3a.cc
@@ -133,7 +133,7 @@ void NewsMetrics::RecordTotalActionCount(ActionType action,
pref_name = prefs::kBraveNewsTotalSidebarFilterUsages;
break;
default:
- NOTREACHED();
+ NOTREACHED_IN_MIGRATION();
return;
}
@@ -166,7 +166,7 @@ void NewsMetrics::RecordTotalActionCount(ActionType action,
kSidebarFilterUsageBuckets, total);
break;
default:
- NOTREACHED();
+ NOTREACHED_IN_MIGRATION();
}
}
@@ -214,7 +214,7 @@ void NewsMetrics::RecordTotalSubscribedCount(SubscribeType subscribe_type,
histogram_name = kPublisherCountHistogramName;
break;
default:
- NOTREACHED();
+ NOTREACHED_IN_MIGRATION();
return;
}
diff --git a/components/brave_news/browser/combined_feed_parsing.cc b/components/brave_news/browser/combined_feed_parsing.cc
index 842086ebf358..59eac7a37760 100644
--- a/components/brave_news/browser/combined_feed_parsing.cc
+++ b/components/brave_news/browser/combined_feed_parsing.cc
@@ -137,7 +137,7 @@ base::expected ParseFeedItem(
std::vector ParseFeedItems(const base::Value& value) {
std::vector items;
if (!value.is_list()) {
- NOTREACHED();
+ NOTREACHED_IN_MIGRATION();
return items;
}
for (const base::Value& feed_item : value.GetList()) {
diff --git a/components/brave_news/browser/feed_v2_builder.cc b/components/brave_news/browser/feed_v2_builder.cc
index 912f06d66d2d..ade9b6688cd2 100644
--- a/components/brave_news/browser/feed_v2_builder.cc
+++ b/components/brave_news/browser/feed_v2_builder.cc
@@ -588,7 +588,7 @@ mojom::FeedV2Ptr FeedV2Builder::GenerateAllFeed(FeedGenerationInfo info) {
DVLOG(1) << "Step 6: None (approximately half the time)";
}
} else {
- NOTREACHED();
+ NOTREACHED_IN_MIGRATION();
}
// If we couldn't generate a normal block, break.
diff --git a/components/brave_referrals/browser/brave_referrals_service.cc b/components/brave_referrals/browser/brave_referrals_service.cc
index 81195c7faa18..27d90902015b 100644
--- a/components/brave_referrals/browser/brave_referrals_service.cc
+++ b/components/brave_referrals/browser/brave_referrals_service.cc
@@ -524,7 +524,7 @@ void BraveReferralsService::GetSafetynetStatusResult(
const std::string& result_string,
const bool attestation_passed) {
if (pref_service_->GetString(kSafetynetStatus).empty()) {
- NOTREACHED() << "Failed to get safetynet status";
+ NOTREACHED_IN_MIGRATION() << "Failed to get safetynet status";
pref_service_->SetString(kSafetynetStatus, "not verified");
}
CheckForReferralFinalization();
diff --git a/components/brave_rewards/browser/rewards_service_impl.cc b/components/brave_rewards/browser/rewards_service_impl.cc
index dd7e4de9bd9f..68eec31be509 100644
--- a/components/brave_rewards/browser/rewards_service_impl.cc
+++ b/components/brave_rewards/browser/rewards_service_impl.cc
@@ -121,7 +121,7 @@ std::string URLMethodToRequestType(mojom::UrlMethod method) {
case mojom::UrlMethod::DEL:
return "DELETE";
default:
- NOTREACHED();
+ NOTREACHED_IN_MIGRATION();
return "GET";
}
}
diff --git a/components/brave_rewards/core/contribution/contribution.cc b/components/brave_rewards/core/contribution/contribution.cc
index 87c3ec0d768a..041b301078fc 100644
--- a/components/brave_rewards/core/contribution/contribution.cc
+++ b/components/brave_rewards/core/contribution/contribution.cc
@@ -660,7 +660,7 @@ void Contribution::TransferFunds(const mojom::SKUTransaction& transaction,
return;
}
- NOTREACHED();
+ NOTREACHED_IN_MIGRATION();
engine_->LogError(FROM_HERE) << "Wallet type not supported";
}
diff --git a/components/brave_rewards/core/contribution/contribution_external_wallet.cc b/components/brave_rewards/core/contribution/contribution_external_wallet.cc
index e276a5a5670c..d77e3318f9d3 100644
--- a/components/brave_rewards/core/contribution/contribution_external_wallet.cc
+++ b/components/brave_rewards/core/contribution/contribution_external_wallet.cc
@@ -155,7 +155,7 @@ void ContributionExternalWallet::OnServerPublisherInfo(
amount, std::move(start_callback));
break;
default:
- NOTREACHED();
+ NOTREACHED_IN_MIGRATION();
engine_->LogError(FROM_HERE) << "Contribution processor not supported";
break;
}
diff --git a/components/brave_rewards/core/contribution/contribution_sku.cc b/components/brave_rewards/core/contribution/contribution_sku.cc
index ca85be3064b1..da767bdc2c6f 100644
--- a/components/brave_rewards/core/contribution/contribution_sku.cc
+++ b/components/brave_rewards/core/contribution/contribution_sku.cc
@@ -208,7 +208,7 @@ void ContributionSKU::OnOrder(mojom::ContributionInfoPtr contribution,
case mojom::ContributionStep::STEP_COMPLETED:
case mojom::ContributionStep::STEP_NO: {
engine_->LogError(FROM_HERE) << "Step not correct " << contribution->step;
- NOTREACHED();
+ NOTREACHED_IN_MIGRATION();
return;
}
}
diff --git a/components/brave_rewards/core/contribution/contribution_unblinded.cc b/components/brave_rewards/core/contribution/contribution_unblinded.cc
index 6fb26e0da945..901a573dc406 100644
--- a/components/brave_rewards/core/contribution/contribution_unblinded.cc
+++ b/components/brave_rewards/core/contribution/contribution_unblinded.cc
@@ -517,7 +517,7 @@ void Unblinded::Retry(const std::vector& types,
case mojom::ContributionStep::STEP_COMPLETED:
case mojom::ContributionStep::STEP_NO: {
engine_->LogError(FROM_HERE) << "Step not correct " << contribution->step;
- NOTREACHED();
+ NOTREACHED_IN_MIGRATION();
return;
}
}
diff --git a/components/brave_rewards/core/contribution/contribution_util.cc b/components/brave_rewards/core/contribution/contribution_util.cc
index 95f803c5b553..256fc681f39a 100644
--- a/components/brave_rewards/core/contribution/contribution_util.cc
+++ b/components/brave_rewards/core/contribution/contribution_util.cc
@@ -24,7 +24,7 @@ mojom::ReportType GetReportTypeFromRewardsType(const mojom::RewardsType type) {
}
default: {
// missing conversion, returning dummy value.
- NOTREACHED();
+ NOTREACHED_IN_MIGRATION();
return mojom::ReportType::TIP;
}
}
diff --git a/components/brave_rewards/core/database/database_migration_unittest.cc b/components/brave_rewards/core/database/database_migration_unittest.cc
index 7f19455fdc10..32fbb64d24f7 100644
--- a/components/brave_rewards/core/database/database_migration_unittest.cc
+++ b/components/brave_rewards/core/database/database_migration_unittest.cc
@@ -80,7 +80,7 @@ class RewardsDatabaseMigrationTest : public RewardsEngineTest {
base::FilePath path = GetTestDataPath().AppendASCII(script_path);
std::string init_script;
ASSERT_TRUE(base::ReadFileToString(path, &init_script));
- ASSERT_TRUE(GetDB()->Execute(init_script.c_str()));
+ ASSERT_TRUE(GetDB()->Execute(init_script));
}
void InitializeDatabaseAtVersion(int version) {
@@ -89,13 +89,13 @@ class RewardsDatabaseMigrationTest : public RewardsEngineTest {
std::string init_script;
ASSERT_TRUE(base::ReadFileToString(path, &init_script));
- ASSERT_TRUE(GetDB()->Execute(init_script.c_str()));
+ ASSERT_TRUE(GetDB()->Execute(init_script));
}
int CountTableRows(const std::string& table) {
const std::string sql =
base::StringPrintf("SELECT COUNT(*) FROM %s", table.c_str());
- sql::Statement s(GetDB()->GetUniqueStatement(sql.c_str()));
+ sql::Statement s(GetDB()->GetUniqueStatement(sql));
return s.Step() ? static_cast(s.ColumnInt64(0)) : -1;
}
};
@@ -248,7 +248,7 @@ TEST_F(RewardsDatabaseMigrationTest, Migration_11_ContributionInfo) {
)sql";
// One-time tip
- sql::Statement tip_sql(GetDB()->GetUniqueStatement(query.c_str()));
+ sql::Statement tip_sql(GetDB()->GetUniqueStatement(query));
tip_sql.BindString(0, "id_1570614352_%");
ASSERT_TRUE(tip_sql.Step());
@@ -261,7 +261,7 @@ TEST_F(RewardsDatabaseMigrationTest, Migration_11_ContributionInfo) {
EXPECT_EQ(tip_sql.ColumnDouble(6), 1.0);
// Auto contribute
- sql::Statement ac_sql(GetDB()->GetUniqueStatement(query.c_str()));
+ sql::Statement ac_sql(GetDB()->GetUniqueStatement(query));
ac_sql.BindString(0, "id_1574671381_%");
ASSERT_TRUE(ac_sql.Step());
diff --git a/components/brave_rewards/core/legacy/client_properties.cc b/components/brave_rewards/core/legacy/client_properties.cc
index 63cad41e855d..70f4ae5b51ce 100644
--- a/components/brave_rewards/core/legacy/client_properties.cc
+++ b/components/brave_rewards/core/legacy/client_properties.cc
@@ -73,11 +73,11 @@ bool ClientProperties::FromValue(const base::Value::Dict& dict) {
// Wallet Info
const auto* wallet_info_dict = dict.FindDict(kWalletInfoKey);
if (!wallet_info_dict) {
- NOTREACHED();
+ NOTREACHED_IN_MIGRATION();
return false;
}
if (!wallet_info.FromValue(*wallet_info_dict)) {
- NOTREACHED();
+ NOTREACHED_IN_MIGRATION();
return false;
}
@@ -93,7 +93,7 @@ bool ClientProperties::FromValue(const base::Value::Dict& dict) {
dict.FindDouble(kBootTimestampKey)) {
boot_timestamp = static_cast(*boot_timestamp_value_double);
} else {
- NOTREACHED();
+ NOTREACHED_IN_MIGRATION();
return false;
}
@@ -110,7 +110,7 @@ bool ClientProperties::FromValue(const base::Value::Dict& dict) {
reconcile_timestamp =
static_cast(*reconcile_timestamp_value_double);
} else {
- NOTREACHED();
+ NOTREACHED_IN_MIGRATION();
return false;
}
@@ -118,7 +118,7 @@ bool ClientProperties::FromValue(const base::Value::Dict& dict) {
if (auto value = dict.FindDouble(kFeeAmountKey)) {
fee_amount = *value;
} else {
- NOTREACHED();
+ NOTREACHED_IN_MIGRATION();
return false;
}
@@ -126,7 +126,7 @@ bool ClientProperties::FromValue(const base::Value::Dict& dict) {
if (auto value = dict.FindBool(kUserChangedFeeKey)) {
user_changed_fee = *value;
} else {
- NOTREACHED();
+ NOTREACHED_IN_MIGRATION();
return false;
}
@@ -134,7 +134,7 @@ bool ClientProperties::FromValue(const base::Value::Dict& dict) {
if (auto value = dict.FindBool(kAutoContributeKey)) {
auto_contribute = *value;
} else {
- NOTREACHED();
+ NOTREACHED_IN_MIGRATION();
return false;
}
@@ -142,7 +142,7 @@ bool ClientProperties::FromValue(const base::Value::Dict& dict) {
if (auto value = dict.FindBool(kRewardsEnabledKey)) {
rewards_enabled = *value;
} else {
- NOTREACHED();
+ NOTREACHED_IN_MIGRATION();
return false;
}
diff --git a/components/brave_rewards/core/legacy/publisher_settings_properties.cc b/components/brave_rewards/core/legacy/publisher_settings_properties.cc
index 8910fe253954..eaa43e57120d 100644
--- a/components/brave_rewards/core/legacy/publisher_settings_properties.cc
+++ b/components/brave_rewards/core/legacy/publisher_settings_properties.cc
@@ -99,7 +99,7 @@ bool PublisherSettingsProperties::FromValue(const base::Value::Dict& dict) {
min_page_time_before_logging_a_visit =
static_cast(*min_page_time_value_double);
} else {
- NOTREACHED();
+ NOTREACHED_IN_MIGRATION();
return false;
}
@@ -114,7 +114,7 @@ bool PublisherSettingsProperties::FromValue(const base::Value::Dict& dict) {
min_visits_for_publisher_relevancy =
static_cast(*min_visits_value_double);
} else {
- NOTREACHED();
+ NOTREACHED_IN_MIGRATION();
return false;
}
@@ -122,27 +122,27 @@ bool PublisherSettingsProperties::FromValue(const base::Value::Dict& dict) {
if (auto value = dict.FindBool(kAllowNonVerifiedSitesInListKey)) {
allow_non_verified_sites_in_list = *value;
} else {
- NOTREACHED();
+ NOTREACHED_IN_MIGRATION();
return false;
}
// Monthly Balances
const auto* monthly_balances_list = dict.FindList(kMonthlyBalancesKey);
if (!monthly_balances_list) {
- NOTREACHED();
+ NOTREACHED_IN_MIGRATION();
return false;
}
for (const auto& item : *monthly_balances_list) {
const auto* monthly_balance_value = item.GetIfDict();
if (!monthly_balance_value) {
- NOTREACHED();
+ NOTREACHED_IN_MIGRATION();
continue;
}
for (const auto [key, value] : *monthly_balance_value) {
if (!value.is_dict()) {
- NOTREACHED();
+ NOTREACHED_IN_MIGRATION();
continue;
}
ReportBalanceProperties report_balance;
@@ -158,7 +158,7 @@ bool PublisherSettingsProperties::FromValue(const base::Value::Dict& dict) {
if (const auto* value = dict.FindList(kProcessedPendingPublishersKey)) {
for (const auto& processed_pending_publisher_value : *value) {
if (!processed_pending_publisher_value.is_string()) {
- NOTREACHED();
+ NOTREACHED_IN_MIGRATION();
continue;
}
diff --git a/components/brave_rewards/core/legacy/report_balance_properties.cc b/components/brave_rewards/core/legacy/report_balance_properties.cc
index 3e085f1001cf..2b55eacc917a 100644
--- a/components/brave_rewards/core/legacy/report_balance_properties.cc
+++ b/components/brave_rewards/core/legacy/report_balance_properties.cc
@@ -93,7 +93,7 @@ bool ReportBalanceProperties::FromValue(const base::Value::Dict& dict) {
bool result = GetPropertyFromDict(dict, kGrantsKey, &grants);
if (!result) {
- NOTREACHED();
+ NOTREACHED_IN_MIGRATION();
return false;
}
@@ -101,7 +101,7 @@ bool ReportBalanceProperties::FromValue(const base::Value::Dict& dict) {
result = GetPropertyFromDict(dict, kAdEarningsKey, &ad_earnings);
if (!result) {
- NOTREACHED();
+ NOTREACHED_IN_MIGRATION();
return false;
}
@@ -110,7 +110,7 @@ bool ReportBalanceProperties::FromValue(const base::Value::Dict& dict) {
GetPropertyFromDict(dict, kAutoContributionsKey, &auto_contributions);
if (!result) {
- NOTREACHED();
+ NOTREACHED_IN_MIGRATION();
return false;
}
@@ -119,7 +119,7 @@ bool ReportBalanceProperties::FromValue(const base::Value::Dict& dict) {
GetPropertyFromDict(dict, kRecurringDonationsKey, &recurring_donations);
if (!result) {
- NOTREACHED();
+ NOTREACHED_IN_MIGRATION();
return false;
}
@@ -127,7 +127,7 @@ bool ReportBalanceProperties::FromValue(const base::Value::Dict& dict) {
result = GetPropertyFromDict(dict, kOneTimeDonationsKey, &one_time_donations);
if (!result) {
- NOTREACHED();
+ NOTREACHED_IN_MIGRATION();
return false;
}
diff --git a/components/brave_rewards/core/legacy/wallet_info_properties.cc b/components/brave_rewards/core/legacy/wallet_info_properties.cc
index 7869a6ae9635..17b411758488 100644
--- a/components/brave_rewards/core/legacy/wallet_info_properties.cc
+++ b/components/brave_rewards/core/legacy/wallet_info_properties.cc
@@ -60,7 +60,7 @@ bool WalletInfoProperties::FromValue(const base::Value::Dict& dict) {
if (const auto* value = dict.FindString(kPaymentIdKey)) {
payment_id = *value;
} else {
- NOTREACHED();
+ NOTREACHED_IN_MIGRATION();
return false;
}
@@ -68,19 +68,19 @@ bool WalletInfoProperties::FromValue(const base::Value::Dict& dict) {
if (const auto* value = dict.FindString(kAddressCardIdKey)) {
address_card_id = *value;
} else {
- NOTREACHED();
+ NOTREACHED_IN_MIGRATION();
return false;
}
// Key Info Seed (Base64)
const auto* base64_key_info_seed = dict.FindString(kKeyInfoSeedKey);
if (!base64_key_info_seed) {
- NOTREACHED();
+ NOTREACHED_IN_MIGRATION();
return false;
}
std::string plain_key_info_seed;
if (!base::Base64Decode(*base64_key_info_seed, &plain_key_info_seed)) {
- NOTREACHED();
+ NOTREACHED_IN_MIGRATION();
return false;
}
key_info_seed.assign(plain_key_info_seed.begin(), plain_key_info_seed.end());
diff --git a/components/brave_rewards/core/rewards_database.cc b/components/brave_rewards/core/rewards_database.cc
index 6c9ba4c613dc..b651c121c8e7 100644
--- a/components/brave_rewards/core/rewards_database.cc
+++ b/components/brave_rewards/core/rewards_database.cc
@@ -50,7 +50,7 @@ void HandleBinding(sql::Statement* statement,
return;
}
default: {
- NOTREACHED();
+ NOTREACHED_IN_MIGRATION();
}
}
}
@@ -89,7 +89,7 @@ mojom::DBRecordPtr CreateRecord(
break;
}
default: {
- NOTREACHED();
+ NOTREACHED_IN_MIGRATION();
}
}
record->fields.push_back(std::move(value));
@@ -169,7 +169,7 @@ mojom::DBCommandResponsePtr RewardsDatabase::RunTransaction(
break;
}
case mojom::DBCommand::Type::CLOSE: {
- NOTREACHED();
+ NOTREACHED_IN_MIGRATION();
status = mojom::DBCommandResponse::Status::COMMAND_ERROR;
break;
}
@@ -246,7 +246,7 @@ mojom::DBCommandResponse::Status RewardsDatabase::Execute(
return mojom::DBCommandResponse::Status::RESPONSE_ERROR;
}
- bool result = db_.Execute(command->command.c_str());
+ bool result = db_.Execute(command->command);
if (!result) {
LOG(ERROR) << "DB Execute error: " << db_.GetErrorMessage();
@@ -266,7 +266,7 @@ mojom::DBCommandResponse::Status RewardsDatabase::Run(
return mojom::DBCommandResponse::Status::RESPONSE_ERROR;
}
- sql::Statement statement(db_.GetUniqueStatement(command->command.c_str()));
+ sql::Statement statement(db_.GetUniqueStatement(command->command));
for (auto const& binding : command->bindings) {
HandleBinding(&statement, *binding.get());
@@ -292,7 +292,7 @@ mojom::DBCommandResponse::Status RewardsDatabase::Read(
return mojom::DBCommandResponse::Status::RESPONSE_ERROR;
}
- sql::Statement statement(db_.GetUniqueStatement(command->command.c_str()));
+ sql::Statement statement(db_.GetUniqueStatement(command->command));
for (auto const& binding : command->bindings) {
HandleBinding(&statement, *binding.get());
diff --git a/components/brave_rewards/core/rewards_engine.cc b/components/brave_rewards/core/rewards_engine.cc
index d413128d0ce9..b6b15a6bdf29 100644
--- a/components/brave_rewards/core/rewards_engine.cc
+++ b/components/brave_rewards/core/rewards_engine.cc
@@ -708,7 +708,7 @@ void RewardsEngine::WhenReady(T callback) {
callback();
break;
case InitializationManager::State::kShuttingDown:
- NOTREACHED();
+ NOTREACHED_IN_MIGRATION();
break;
default:
ready_event_.Post(
diff --git a/components/brave_rewards/core/sku/sku.cc b/components/brave_rewards/core/sku/sku.cc
index f4b65db37cda..05b36c67f7c2 100644
--- a/components/brave_rewards/core/sku/sku.cc
+++ b/components/brave_rewards/core/sku/sku.cc
@@ -77,7 +77,7 @@ void SKU::CreateTransaction(const std::string& wallet_type,
return engine_->Get().gemini_sku_destination();
}
- NOTREACHED();
+ NOTREACHED_IN_MIGRATION();
return "";
}();
diff --git a/components/brave_rewards/core/sku/sku_transaction.cc b/components/brave_rewards/core/sku/sku_transaction.cc
index eb6ce5ecf06f..cb8e4f4e5631 100644
--- a/components/brave_rewards/core/sku/sku_transaction.cc
+++ b/components/brave_rewards/core/sku/sku_transaction.cc
@@ -33,7 +33,7 @@ mojom::SKUTransactionType GetTransactionTypeFromWalletType(
return mojom::SKUTransactionType::TOKENS;
}
- NOTREACHED();
+ NOTREACHED_IN_MIGRATION();
return mojom::SKUTransactionType::TOKENS;
}
@@ -224,7 +224,7 @@ void SKUTransaction::SendExternalTransaction(
switch (transaction.type) {
case mojom::SKUTransactionType::NONE:
case mojom::SKUTransactionType::TOKENS: {
- NOTREACHED();
+ NOTREACHED_IN_MIGRATION();
return;
}
case mojom::SKUTransactionType::UPHOLD: {
diff --git a/components/brave_rewards/core/state/state_migration.cc b/components/brave_rewards/core/state/state_migration.cc
index b9edd8f91c8d..f0fb96318800 100644
--- a/components/brave_rewards/core/state/state_migration.cc
+++ b/components/brave_rewards/core/state/state_migration.cc
@@ -132,7 +132,7 @@ void StateMigration::Migrate(ResultCallback callback) {
engine_->LogError(FROM_HERE)
<< "Migration version is not handled " << new_version;
- NOTREACHED();
+ NOTREACHED_IN_MIGRATION();
}
void StateMigration::OnMigration(ResultCallback callback,
diff --git a/components/brave_rewards/core/state/state_migration_v10.cc b/components/brave_rewards/core/state/state_migration_v10.cc
index 063936d557e0..b2ac6694b06e 100644
--- a/components/brave_rewards/core/state/state_migration_v10.cc
+++ b/components/brave_rewards/core/state/state_migration_v10.cc
@@ -95,7 +95,7 @@ void StateMigrationV10::Migrate(ResultCallback callback) {
uphold_wallet->address = "";
break;
default:
- NOTREACHED();
+ NOTREACHED_IN_MIGRATION();
}
std::move(callback).Run(engine_->uphold()->SetWallet(std::move(uphold_wallet))
diff --git a/components/brave_rewards/core/state/state_migration_v12.cc b/components/brave_rewards/core/state/state_migration_v12.cc
index e688e7608360..20025dd1a267 100644
--- a/components/brave_rewards/core/state/state_migration_v12.cc
+++ b/components/brave_rewards/core/state/state_migration_v12.cc
@@ -76,8 +76,8 @@ bool StateMigrationV12::MigrateExternalWallet(const std::string& wallet_type) {
break;
default:
- NOTREACHED() << "Unexpected " << wallet_type
- << " wallet status: " << status << '!';
+ NOTREACHED_IN_MIGRATION() << "Unexpected " << wallet_type
+ << " wallet status: " << status << '!';
return false;
}
diff --git a/components/brave_rewards/core/wallet/wallet_util.cc b/components/brave_rewards/core/wallet/wallet_util.cc
index faee9aaf0ea2..9bc968dfe395 100644
--- a/components/brave_rewards/core/wallet/wallet_util.cc
+++ b/components/brave_rewards/core/wallet/wallet_util.cc
@@ -43,7 +43,8 @@ std::string WalletTypeToState(const std::string& wallet_type) {
} else if (wallet_type == "test") {
return "wallets." + wallet_type;
} else {
- NOTREACHED() << "Unexpected wallet type " << wallet_type << '!';
+ NOTREACHED_IN_MIGRATION()
+ << "Unexpected wallet type " << wallet_type << '!';
return "";
}
}
diff --git a/components/brave_shields/content/browser/brave_shields_util.cc b/components/brave_shields/content/browser/brave_shields_util.cc
index 3e64123ac389..bd533b8db6ff 100644
--- a/components/brave_shields/content/browser/brave_shields_util.cc
+++ b/components/brave_shields/content/browser/brave_shields_util.cc
@@ -155,7 +155,7 @@ std::string ControlTypeToString(ControlType type) {
case ControlType::DEFAULT:
return "default";
default:
- NOTREACHED();
+ NOTREACHED_IN_MIGRATION();
return "invalid";
}
}
@@ -170,7 +170,7 @@ ControlType ControlTypeFromString(const std::string& string) {
} else if (string == "default") {
return ControlType::DEFAULT;
} else {
- NOTREACHED();
+ NOTREACHED_IN_MIGRATION();
return ControlType::DEFAULT;
}
}
@@ -489,7 +489,7 @@ void SetCookieControlType(HostContentSettingsMap* map,
content_settings::CookieControlsMode::kBlockThirdParty));
break;
default:
- NOTREACHED() << "Invalid ControlType for cookies";
+ NOTREACHED_IN_MIGRATION() << "Invalid ControlType for cookies";
}
return;
}
@@ -524,7 +524,7 @@ void SetCookieControlType(HostContentSettingsMap* map,
: CONTENT_SETTING_BLOCK);
break;
case ControlType::DEFAULT:
- NOTREACHED() << "Invalid ControlType for cookies";
+ NOTREACHED_IN_MIGRATION() << "Invalid ControlType for cookies";
}
}
diff --git a/components/brave_shields/content/browser/domain_block_page.cc b/components/brave_shields/content/browser/domain_block_page.cc
index 639ac933be32..0837ea3aa6d6 100644
--- a/components/brave_shields/content/browser/domain_block_page.cc
+++ b/components/brave_shields/content/browser/domain_block_page.cc
@@ -62,7 +62,7 @@ void DomainBlockPage::CommandReceived(const std::string& command) {
domain_block_controller->SetDontWarnAgain(false);
break;
default:
- NOTREACHED() << "Unsupported command: " << command;
+ NOTREACHED_IN_MIGRATION() << "Unsupported command: " << command;
}
}
diff --git a/components/brave_shields/content/test/brave_shields_util_unittest.cc b/components/brave_shields/content/test/brave_shields_util_unittest.cc
index fa835844e3cf..1652b7900be5 100644
--- a/components/brave_shields/content/test/brave_shields_util_unittest.cc
+++ b/components/brave_shields/content/test/brave_shields_util_unittest.cc
@@ -587,14 +587,14 @@ TEST_F(BraveShieldsUtilTest, GetCookieControlType_WithUserSettings) {
[](content_settings::CookieSettings* cookie_settings,
const GURL& url) -> CookieState {
const auto first_party_blocked =
- cookie_settings->GetCookieSetting(url, url,
- net::CookieSettingOverrides(),
- nullptr) == CONTENT_SETTING_BLOCK;
+ cookie_settings->GetCookieSetting(
+ url, net::SiteForCookies::FromUrl(url), url,
+ net::CookieSettingOverrides(), nullptr) == CONTENT_SETTING_BLOCK;
const auto third_party_blocked =
- cookie_settings->GetCookieSetting(GURL::EmptyGURL(), url,
- net::CookieSettingOverrides(),
- nullptr) == CONTENT_SETTING_BLOCK;
+ cookie_settings->GetCookieSetting(
+ GURL::EmptyGURL(), net::SiteForCookies(), url,
+ net::CookieSettingOverrides(), nullptr) == CONTENT_SETTING_BLOCK;
return {first_party_blocked, third_party_blocked};
};
diff --git a/components/brave_shields/core/browser/ad_block_filters_provider_manager.cc b/components/brave_shields/core/browser/ad_block_filters_provider_manager.cc
index 4ca8cb02199f..0344b6bbba2f 100644
--- a/components/brave_shields/core/browser/ad_block_filters_provider_manager.cc
+++ b/components/brave_shields/core/browser/ad_block_filters_provider_manager.cc
@@ -70,7 +70,7 @@ void AdBlockFiltersProviderManager::OnChanged(bool is_for_default_engine) {
void AdBlockFiltersProviderManager::LoadFilterSet(
base::OnceCallback<
void(base::OnceCallback*)>)>) {
- NOTREACHED();
+ NOTREACHED_IN_MIGRATION();
}
void AdBlockFiltersProviderManager::LoadFilterSetForEngine(
diff --git a/components/brave_sync/qr_code_validator.cc b/components/brave_sync/qr_code_validator.cc
index e12106cf45a3..ea190b159994 100644
--- a/components/brave_sync/qr_code_validator.cc
+++ b/components/brave_sync/qr_code_validator.cc
@@ -109,7 +109,7 @@ bool QrCodeDataValidator::IsValidSeedHex(const std::string& seed_hex) {
base::SplitResult::SPLIT_WANT_NONEMPTY);
if (words.size() != kPassphraseWordsCount) {
- NOTREACHED() << "Passphrase words number is " << words.size();
+ NOTREACHED_IN_MIGRATION() << "Passphrase words number is " << words.size();
return false;
}
diff --git a/components/brave_sync/time_limited_words.cc b/components/brave_sync/time_limited_words.cc
index 288a7c4062ff..1c1a95560be3 100644
--- a/components/brave_sync/time_limited_words.cc
+++ b/components/brave_sync/time_limited_words.cc
@@ -187,7 +187,7 @@ TimeLimitedWords::ParseImpl(const std::string& time_limited_words,
return base::unexpected(ValidationStatus::kWrongWordsNumber);
}
- NOTREACHED();
+ NOTREACHED_IN_MIGRATION();
return base::unexpected(ValidationStatus::kNotValidPureWords);
}
diff --git a/components/brave_vpn/browser/brave_vpn_service.cc b/components/brave_vpn/browser/brave_vpn_service.cc
index 533418219e20..5e969785b400 100644
--- a/components/brave_vpn/browser/brave_vpn_service.cc
+++ b/components/brave_vpn/browser/brave_vpn_service.cc
@@ -580,8 +580,7 @@ void BraveVpnService::OnPrepareCredentialsPresentation(
auto env = skus::GetEnvironmentForDomain(domain);
// Credential is returned in cookie format.
net::CookieInclusionStatus status;
- net::ParsedCookie credential_cookie(credential_as_cookie,
- /*block_truncated=*/true, &status);
+ net::ParsedCookie credential_cookie(credential_as_cookie, &status);
// TODO(bsclifton): have a better check / logging.
// should these failed states be considered NOT_PURCHASED?
// or maybe it can be considered FAILED status?
diff --git a/components/brave_vpn/browser/connection/ikev2/mac/ikev2_connection_api_impl_mac.mm b/components/brave_vpn/browser/connection/ikev2/mac/ikev2_connection_api_impl_mac.mm
index 5533fc90963e..cadee1702b44 100644
--- a/components/brave_vpn/browser/connection/ikev2/mac/ikev2_connection_api_impl_mac.mm
+++ b/components/brave_vpn/browser/connection/ikev2/mac/ikev2_connection_api_impl_mac.mm
@@ -46,7 +46,7 @@
case NEVPNStatusDisconnecting:
return "NEVPNStatusDisconnecting";
default:
- NOTREACHED();
+ NOTREACHED_IN_MIGRATION();
}
return "NEVPNStatusInvalid";
}
diff --git a/components/brave_vpn/common/brave_vpn_utils.cc b/components/brave_vpn/common/brave_vpn_utils.cc
index 532d8e164919..d34b602684bb 100644
--- a/components/brave_vpn/common/brave_vpn_utils.cc
+++ b/components/brave_vpn/common/brave_vpn_utils.cc
@@ -169,7 +169,7 @@ std::string GetManageUrl(const std::string& env) {
if (env == skus::kEnvDevelopment)
return brave_vpn::kManageUrlDev;
- NOTREACHED();
+ NOTREACHED_IN_MIGRATION();
return brave_vpn::kManageUrlProd;
}
diff --git a/components/brave_wallet/browser/account_discovery_manager.cc b/components/brave_wallet/browser/account_discovery_manager.cc
index 7d61ae006b48..75713f9ba6ef 100644
--- a/components/brave_wallet/browser/account_discovery_manager.cc
+++ b/components/brave_wallet/browser/account_discovery_manager.cc
@@ -113,7 +113,7 @@ void AccountDiscoveryManager::AddDiscoveryAccount(
auto addr = keyring_service_->GetDiscoveryAddress(
context->keyring_id, context->discovery_account_index);
if (!addr) {
- NOTREACHED();
+ NOTREACHED_IN_MIGRATION();
return;
}
@@ -146,7 +146,7 @@ void AccountDiscoveryManager::AddDiscoveryAccount(
weak_ptr_factory_.GetWeakPtr(), std::move(context)));
} else {
- NOTREACHED();
+ NOTREACHED_IN_MIGRATION();
}
}
diff --git a/components/brave_wallet/browser/bitcoin/bitcoin_hd_keyring.cc b/components/brave_wallet/browser/bitcoin/bitcoin_hd_keyring.cc
index 27e5ca77c477..7f5d2faddc8c 100644
--- a/components/brave_wallet/browser/bitcoin/bitcoin_hd_keyring.cc
+++ b/components/brave_wallet/browser/bitcoin/bitcoin_hd_keyring.cc
@@ -61,29 +61,29 @@ std::optional> BitcoinHDKeyring::SignMessage(
std::string BitcoinHDKeyring::ImportAccount(
const std::vector& private_key) {
- NOTREACHED();
+ NOTREACHED_IN_MIGRATION();
return "";
}
bool BitcoinHDKeyring::RemoveImportedAccount(const std::string& address) {
- NOTREACHED();
+ NOTREACHED_IN_MIGRATION();
return false;
}
std::string BitcoinHDKeyring::GetDiscoveryAddress(size_t index) const {
- NOTREACHED();
+ NOTREACHED_IN_MIGRATION();
return "";
}
std::vector BitcoinHDKeyring::GetImportedAccountsForTesting()
const {
- NOTREACHED();
+ NOTREACHED_IN_MIGRATION();
return {};
}
std::string BitcoinHDKeyring::EncodePrivateKeyForExport(
const std::string& address) {
- NOTREACHED();
+ NOTREACHED_IN_MIGRATION();
return "";
}
diff --git a/components/brave_wallet/browser/bitcoin/bitcoin_serializer.cc b/components/brave_wallet/browser/bitcoin/bitcoin_serializer.cc
index 269962f3ea87..d0e4b1c9d0cd 100644
--- a/components/brave_wallet/browser/bitcoin/bitcoin_serializer.cc
+++ b/components/brave_wallet/browser/bitcoin/bitcoin_serializer.cc
@@ -308,7 +308,7 @@ std::vector BitcoinSerializer::AddressToScriptPubkey(
return data;
}
- NOTREACHED();
+ NOTREACHED_IN_MIGRATION();
return {};
}
diff --git a/components/brave_wallet/browser/bitcoin/bitcoin_test_utils.cc b/components/brave_wallet/browser/bitcoin/bitcoin_test_utils.cc
index 6ad462e27842..f3c81cdbb9df 100644
--- a/components/brave_wallet/browser/bitcoin/bitcoin_test_utils.cc
+++ b/components/brave_wallet/browser/bitcoin/bitcoin_test_utils.cc
@@ -6,6 +6,7 @@
#include "brave/components/brave_wallet/browser/bitcoin/bitcoin_test_utils.h"
#include
+
+ You are seeing this warning because this site does not support HTTPS and you are in Private mode. <a href="#" id="learn-more-link">Learn more</a>
+
+
diff --git a/components/sidebar/browser/sidebar_service.cc b/components/sidebar/browser/sidebar_service.cc
index e94f195435de..4ad92262a782 100644
--- a/components/sidebar/browser/sidebar_service.cc
+++ b/components/sidebar/browser/sidebar_service.cc
@@ -67,7 +67,7 @@ SidebarItem::BuiltInItemType GetBuiltInItemTypeForLegacyURL(
if (url == "chrome://history/")
return SidebarItem::BuiltInItemType::kHistory;
- NOTREACHED() << url;
+ NOTREACHED_IN_MIGRATION() << url;
return SidebarItem::BuiltInItemType::kNone;
}
@@ -663,7 +663,7 @@ SidebarItem SidebarService::GetBuiltInItemForType(
#endif // BUILDFLAG(ENABLE_AI_CHAT)
}
case SidebarItem::BuiltInItemType::kNone: {
- NOTREACHED();
+ NOTREACHED_IN_MIGRATION();
break;
}
}
diff --git a/components/skus/browser/skus_utils.cc b/components/skus/browser/skus_utils.cc
index c503af66dcc9..876c1c23ec53 100644
--- a/components/skus/browser/skus_utils.cc
+++ b/components/skus/browser/skus_utils.cc
@@ -44,7 +44,7 @@ std::string GetDomain(const std::string& prefix,
return prefix + ".brave.software";
}
- NOTREACHED();
+ NOTREACHED_IN_MIGRATION();
return "";
}
diff --git a/components/speedreader/speedreader_util.cc b/components/speedreader/speedreader_util.cc
index 47340c06a93f..c6a6d97f6d5c 100644
--- a/components/speedreader/speedreader_util.cc
+++ b/components/speedreader/speedreader_util.cc
@@ -146,7 +146,7 @@ bool Transit(State& state, const State& desired) {
}
}
- NOTREACHED();
+ NOTREACHED_IN_MIGRATION();
return false;
}
diff --git a/components/test/testData.ts b/components/test/testData.ts
index 96d2eaa7953a..256ffa361fca 100644
--- a/components/test/testData.ts
+++ b/components/test/testData.ts
@@ -41,7 +41,6 @@ export const newTabInitialState: NewTab.ApplicationState = {
torCircuitEstablished: false,
torInitProgress: '',
isTor: false,
- isQwant: false,
stats: {
adsBlockedStat: 0,
javascriptBlockedStat: 0,
diff --git a/components/webcompat_reporter/browser/fields.cc b/components/webcompat_reporter/browser/fields.cc
index b58117544813..0c57c16575b3 100644
--- a/components/webcompat_reporter/browser/fields.cc
+++ b/components/webcompat_reporter/browser/fields.cc
@@ -28,7 +28,7 @@ const char* GetAdBlockModeString(
case brave_shields::mojom::AdBlockMode::ALLOW:
return kAllow;
}
- NOTREACHED();
+ NOTREACHED_IN_MIGRATION();
}
const char* GetFingerprintModeString(
@@ -41,7 +41,7 @@ const char* GetFingerprintModeString(
case brave_shields::mojom::FingerprintMode::ALLOW_MODE:
return kAllow;
}
- NOTREACHED();
+ NOTREACHED_IN_MIGRATION();
}
} // namespace webcompat_reporter
diff --git a/installer/util/brave_shell_util.cc b/installer/util/brave_shell_util.cc
index 340b98e18ce6..c3473f94307c 100644
--- a/installer/util/brave_shell_util.cc
+++ b/installer/util/brave_shell_util.cc
@@ -22,7 +22,7 @@ std::wstring GetProgIdForFileType() {
case version_info::Channel::CANARY:
return L"BraveSSFile";
default:
- NOTREACHED();
+ NOTREACHED_IN_MIGRATION();
return L"BraveFile";
}
}
diff --git a/ios/app/brave_core_main.mm b/ios/app/brave_core_main.mm
index 58174b9e2b7c..59e1c3fd27a5 100644
--- a/ios/app/brave_core_main.mm
+++ b/ios/app/brave_core_main.mm
@@ -56,7 +56,9 @@
#include "components/prefs/pref_service.h"
#include "components/safe_browsing/core/common/safe_browsing_prefs.h"
#include "components/send_tab_to_self/send_tab_to_self_sync_service.h"
+#include "components/sync/base/features.h"
#include "ios/chrome/app/startup/provider_registration.h"
+#include "ios/chrome/browser/bookmarks/model/bookmark_model_factory.h"
#include "ios/chrome/browser/bookmarks/model/bookmark_undo_service_factory.h"
#include "ios/chrome/browser/bookmarks/model/local_or_syncable_bookmark_model_factory.h"
#include "ios/chrome/browser/credential_provider/model/credential_provider_buildflags.h"
@@ -371,10 +373,16 @@ static bool CustomLogHandler(int severity,
- (BraveBookmarksAPI*)bookmarksAPI {
if (!_bookmarksAPI) {
- bookmarks::BookmarkModel* bookmark_model_ =
- ios::LocalOrSyncableBookmarkModelFactory::
- GetDedicatedUnderlyingModelForBrowserStateIfUnificationDisabledOrDie(
- _mainBrowserState);
+ bookmarks::BookmarkModel* bookmark_model_;
+ if (base::FeatureList::IsEnabled(
+ syncer::kEnableBookmarkFoldersForAccountStorage)) {
+ bookmark_model_ = ios::BookmarkModelFactory::
+ GetModelForBrowserStateIfUnificationEnabledOrDie(_mainBrowserState);
+ } else {
+ bookmark_model_ = ios::LocalOrSyncableBookmarkModelFactory::
+ GetDedicatedUnderlyingModelForBrowserStateIfUnificationDisabledOrDie(
+ _mainBrowserState);
+ }
BookmarkUndoService* bookmark_undo_service_ =
ios::BookmarkUndoServiceFactory::GetForBrowserState(_mainBrowserState);
diff --git a/ios/browser/api/bookmarks/bookmark_model_listener_ios.mm b/ios/browser/api/bookmarks/bookmark_model_listener_ios.mm
index 81844853261d..2ca494c347d8 100644
--- a/ios/browser/api/bookmarks/bookmark_model_listener_ios.mm
+++ b/ios/browser/api/bookmarks/bookmark_model_listener_ios.mm
@@ -48,7 +48,7 @@ - (instancetype)initWithNode:(const bookmarks::BookmarkNode*)node
void BookmarkModelListener::BookmarkModelBeingDeleted() {
// This is an inconsistent state in the application lifecycle. The bookmark
// model shouldn't disappear.
- NOTREACHED();
+ NOTREACHED_IN_MIGRATION();
}
void BookmarkModelListener::BookmarkNodeMoved(
diff --git a/ios/browser/api/bookmarks/exporter/BUILD.gn b/ios/browser/api/bookmarks/exporter/BUILD.gn
index c3240e163f3e..29f17ab61879 100644
--- a/ios/browser/api/bookmarks/exporter/BUILD.gn
+++ b/ios/browser/api/bookmarks/exporter/BUILD.gn
@@ -25,6 +25,7 @@ source_set("exporter") {
"//components/favicon_base",
"//components/keyed_service/core",
"//components/strings:components_strings_grit",
+ "//components/sync",
"//ios/chrome/browser/bookmarks/model",
"//ios/chrome/browser/favicon/model",
"//ios/chrome/browser/shared/model/application_context",
diff --git a/ios/browser/api/bookmarks/exporter/bookmark_html_writer.cc b/ios/browser/api/bookmarks/exporter/bookmark_html_writer.cc
index a6ece36002f5..1ec4d47b6237 100644
--- a/ios/browser/api/bookmarks/exporter/bookmark_html_writer.cc
+++ b/ios/browser/api/bookmarks/exporter/bookmark_html_writer.cc
@@ -35,11 +35,12 @@
#include "components/favicon_base/favicon_types.h"
#include "components/keyed_service/core/service_access_type.h"
#include "components/strings/grit/components_strings.h"
+#include "components/sync/base/features.h"
+#include "ios/chrome/browser/bookmarks/model/bookmark_model_factory.h"
#include "ios/chrome/browser/bookmarks/model/legacy_bookmark_model.h"
#include "ios/chrome/browser/bookmarks/model/local_or_syncable_bookmark_model_factory.h"
#include "ios/chrome/browser/favicon/model/favicon_service_factory.h"
#include "ios/chrome/browser/shared/model/browser_state/chrome_browser_state.h"
-#include "ios/chrome/browser/shared/model/browser_state/chrome_browser_state_manager.h"
#include "ui/base/l10n/l10n_util.h"
using bookmarks::BookmarkCodec;
@@ -301,7 +302,7 @@ class Writer : public base::RefCountedThreadSafe {
break;
default:
- NOTREACHED();
+ NOTREACHED_IN_MIGRATION();
}
return Write(utf8_string);
@@ -329,7 +330,7 @@ class Writer : public base::RefCountedThreadSafe {
if (!title_ptr || !date_added_string || !type_string ||
(*type_string != BookmarkCodec::kTypeURL &&
*type_string != BookmarkCodec::kTypeFolder)) {
- NOTREACHED();
+ NOTREACHED_IN_MIGRATION();
return false;
}
@@ -337,7 +338,7 @@ class Writer : public base::RefCountedThreadSafe {
if (*type_string == BookmarkCodec::kTypeURL) {
const std::string* url_string = value.FindString(BookmarkCodec::kURLKey);
if (!url_string) {
- NOTREACHED();
+ NOTREACHED_IN_MIGRATION();
return false;
}
@@ -368,7 +369,7 @@ class Writer : public base::RefCountedThreadSafe {
const base::Value::List* child_values =
value.FindList(BookmarkCodec::kChildrenKey);
if (!last_modified_date || !child_values) {
- NOTREACHED();
+ NOTREACHED_IN_MIGRATION();
return false;
}
if (folder_type != BookmarkNode::OTHER_NODE &&
@@ -398,7 +399,7 @@ class Writer : public base::RefCountedThreadSafe {
// Write the children.
for (const base::Value& child_value : *child_values) {
if (!child_value.is_dict()) {
- NOTREACHED();
+ NOTREACHED_IN_MIGRATION();
return false;
}
if (!WriteNode(child_value.GetDict(), BookmarkNode::FOLDER)) {
@@ -497,16 +498,23 @@ void BookmarkFaviconFetcher::ExecuteWriter() {
// BookmarkModel isn't thread safe (nor would we want to lock it down
// for the duration of the write), as such we make a copy of the
// BookmarkModel using BookmarkCodec then write from that.
+ bookmarks::BookmarkModel* bookmark_model_;
+ if (base::FeatureList::IsEnabled(
+ syncer::kEnableBookmarkFoldersForAccountStorage)) {
+ bookmark_model_ = ios::BookmarkModelFactory::
+ GetModelForBrowserStateIfUnificationEnabledOrDie(browser_state_);
+ } else {
+ bookmark_model_ = ios::LocalOrSyncableBookmarkModelFactory::
+ GetDedicatedUnderlyingModelForBrowserStateIfUnificationDisabledOrDie(
+ browser_state_);
+ }
BookmarkCodec codec;
base::ThreadPool::PostTask(
FROM_HERE, {base::MayBlock(), base::TaskPriority::BEST_EFFORT},
base::BindOnce(
&Writer::DoWrite,
- base::MakeRefCounted(
- ios::LocalOrSyncableBookmarkModelFactory::
- GetDedicatedUnderlyingModelForBrowserStateIfUnificationDisabledOrDie(
- browser_state_),
- path_, favicons_map_.release(), observer_)));
+ base::MakeRefCounted(bookmark_model_, path_,
+ favicons_map_.release(), observer_)));
browser_state_->RemoveUserData(kBookmarkFaviconFetcherKey);
// |this| is deleted!
}
diff --git a/ios/browser/api/bookmarks/exporter/brave_bookmarks_exporter.mm b/ios/browser/api/bookmarks/exporter/brave_bookmarks_exporter.mm
index 9f307239b357..43d0030c2712 100644
--- a/ios/browser/api/bookmarks/exporter/brave_bookmarks_exporter.mm
+++ b/ios/browser/api/bookmarks/exporter/brave_bookmarks_exporter.mm
@@ -64,7 +64,7 @@
case Result::kCouldNotWriteNodes:
return _on_export_finished(BraveBookmarksExporterStateErrorWritingNodes);
default:
- NOTREACHED();
+ NOTREACHED_IN_MIGRATION();
}
delete this;
}
@@ -82,7 +82,9 @@ @implementation BraveBookmarksExporter
- (instancetype)init {
if ((self = [super init])) {
- export_thread_ = web::GetIOThreadTaskRunner({});
+ // This work must be done on the UI thread because it currently relies on
+ // fetching information from ChromeBrowserState which is main-thread bound
+ export_thread_ = web::GetUIThreadTaskRunner({});
}
return self;
}
diff --git a/ios/browser/api/bookmarks/importer/bookmark_html_reader.cc b/ios/browser/api/bookmarks/importer/bookmark_html_reader.cc
index 7d60b02f177d..846e921ce752 100644
--- a/ios/browser/api/bookmarks/importer/bookmark_html_reader.cc
+++ b/ios/browser/api/bookmarks/importer/bookmark_html_reader.cc
@@ -188,7 +188,7 @@ void ImportBookmarksFile(
post_data.empty() &&
(valid_url_callback.is_null() || valid_url_callback.Run(url))) {
if (toolbar_folder_index > path.size() && !path.empty()) {
- NOTREACHED(); // error in parsing.
+ NOTREACHED_IN_MIGRATION(); // error in parsing.
break;
}
diff --git a/ios/browser/api/bookmarks/importer/bookmarks_importer.mm b/ios/browser/api/bookmarks/importer/bookmarks_importer.mm
index 748893bd780e..e0ce4bcaa4be 100644
--- a/ios/browser/api/bookmarks/importer/bookmarks_importer.mm
+++ b/ios/browser/api/bookmarks/importer/bookmarks_importer.mm
@@ -22,7 +22,9 @@
#include "components/bookmarks/common/bookmark_pref_names.h"
#include "components/prefs/pref_service.h"
#include "components/strings/grit/components_strings.h"
+#include "components/sync/base/features.h"
#include "components/user_prefs/user_prefs.h"
+#include "ios/chrome/browser/bookmarks/model/bookmark_model_factory.h"
#include "ios/chrome/browser/bookmarks/model/legacy_bookmark_model.h"
#include "ios/chrome/browser/bookmarks/model/local_or_syncable_bookmark_model_factory.h"
#include "ios/chrome/browser/shared/model/application_context/application_context.h"
@@ -60,7 +62,7 @@
return name;
}
- NOTREACHED();
+ NOTREACHED_IN_MIGRATION();
return folder_name;
}
@@ -82,9 +84,16 @@ void ShowBookmarkBar(ChromeBrowserState* browser_state) {
GetApplicationContext()->GetChromeBrowserStateManager();
ChromeBrowserState* browser_state =
browser_state_manager->GetLastUsedBrowserStateDeprecatedDoNotUse();
- bookmarks::BookmarkModel* model = ios::LocalOrSyncableBookmarkModelFactory::
- GetDedicatedUnderlyingModelForBrowserStateIfUnificationDisabledOrDie(
- browser_state);
+ bookmarks::BookmarkModel* model;
+ if (base::FeatureList::IsEnabled(
+ syncer::kEnableBookmarkFoldersForAccountStorage)) {
+ model = ios::BookmarkModelFactory::
+ GetModelForBrowserStateIfUnificationEnabledOrDie(browser_state);
+ } else {
+ model = ios::LocalOrSyncableBookmarkModelFactory::
+ GetDedicatedUnderlyingModelForBrowserStateIfUnificationDisabledOrDie(
+ browser_state);
+ }
DCHECK(model->loaded());
// If the bookmark bar is currently empty, we should import directly to it.
diff --git a/ios/browser/api/bookmarks/importer/brave_bookmarks_importer.mm b/ios/browser/api/bookmarks/importer/brave_bookmarks_importer.mm
index 536650a06067..4b1bdaf0a6d2 100644
--- a/ios/browser/api/bookmarks/importer/brave_bookmarks_importer.mm
+++ b/ios/browser/api/bookmarks/importer/brave_bookmarks_importer.mm
@@ -79,7 +79,9 @@ - (instancetype)init {
if ((self = [super init])) {
self.cancelled = false;
- import_thread_ = web::GetIOThreadTaskRunner({});
+ import_thread_ = base::ThreadPool::CreateSequencedTaskRunner(
+ {base::MayBlock(), base::TaskPriority::USER_VISIBLE,
+ base::TaskShutdownBehavior::BLOCK_SHUTDOWN});
}
return self;
}
diff --git a/ios/browser/api/web/ui/chrome_webview.mm b/ios/browser/api/web/ui/chrome_webview.mm
index c544b8c5ef24..5d0baf9c3400 100644
--- a/ios/browser/api/web/ui/chrome_webview.mm
+++ b/ios/browser/api/web/ui/chrome_webview.mm
@@ -268,7 +268,7 @@ - (void)webStateDestroyed:(web::WebState*)webState {
// The WebState is owned by the current instance, and the observer bridge
// is unregistered before the WebState is destroyed, so this event should
// never happen.
- NOTREACHED();
+ NOTREACHED_IN_MIGRATION();
}
// MARK: - CRWWebStateDelegate implementation
diff --git a/ios/browser/favicon/brave_ios_web_favicon_driver.mm b/ios/browser/favicon/brave_ios_web_favicon_driver.mm
index 7da41ba28786..92633bde7d73 100644
--- a/ios/browser/favicon/brave_ios_web_favicon_driver.mm
+++ b/ios/browser/favicon/brave_ios_web_favicon_driver.mm
@@ -61,7 +61,7 @@
void BraveIOSWebFaviconDriver::DownloadManifest(
const GURL& url,
ManifestDownloadCallback callback) {
- NOTREACHED();
+ NOTREACHED_IN_MIGRATION();
}
bool BraveIOSWebFaviconDriver::IsOffTheRecord() {
diff --git a/package.json b/package.json
index 516358443fbe..b338a14bc1f6 100644
--- a/package.json
+++ b/package.json
@@ -64,7 +64,7 @@
"projects": {
"chrome": {
"dir": "src",
- "tag": "126.0.6478.126",
+ "tag": "127.0.6533.17",
"repository": {
"url": "https://github.com/brave/chromium"
}
@@ -216,4 +216,4 @@
"json5": "2.2.3",
"@babel/traverse": "7.23.2"
}
-}
+}
\ No newline at end of file
diff --git a/patches/.rustfmt.toml.patch b/patches/.rustfmt.toml.patch
index 9380909d15db..f61dca476c85 100644
--- a/patches/.rustfmt.toml.patch
+++ b/patches/.rustfmt.toml.patch
@@ -1,10 +1,11 @@
diff --git a/.rustfmt.toml b/.rustfmt.toml
-index b0be00850d55ec480c3fd4475abea98c836add40..dd9ad89f5ec0f6723c68064b24c7bcae282d10f1 100644
+index b0be00850d55ec480c3fd4475abea98c836add40..562addd3f4518d8e52afccbd8cb1bfb582d237b0 100644
--- a/.rustfmt.toml
+++ b/.rustfmt.toml
-@@ -23,4 +23,5 @@ use_small_heuristics = "Max"
+@@ -23,4 +23,6 @@ use_small_heuristics = "Max"
ignore = [
"third_party/rust/**/crate",
"third_party/rust/chromium_crates_io/vendor",
+ "brave/third_party/rust/**/crate",
++ "brave/third_party/rust/chromium_crates_io/vendor",
]
diff --git a/patches/base-BUILD.gn.patch b/patches/base-BUILD.gn.patch
index a255bf301df2..d3794b947c8b 100644
--- a/patches/base-BUILD.gn.patch
+++ b/patches/base-BUILD.gn.patch
@@ -1,16 +1,16 @@
diff --git a/base/BUILD.gn b/base/BUILD.gn
-index 4c7130084a91f3bec8b0b2099e1b4fa5c0f94eb8..245879a9eb8619d46b02db054df624d95b7b75de 100644
+index 4ae52e5351615e69074f528e971cf793645283aa..4e49016d5612e30feb34e96ccec461805a69a8fa 100644
--- a/base/BUILD.gn
+++ b/base/BUILD.gn
-@@ -4632,6 +4632,7 @@ if (is_android) {
- "android/java/src/org/chromium/base/task/ThreadPoolTaskExecutor.java",
- "android/java/src/org/chromium/base/task/UiThreadTaskExecutor.java",
+@@ -4487,6 +4487,7 @@ if (is_android) {
+ "android/java/src/org/chromium/base/ValueChangedCallback.java",
+ "android/java/src/org/chromium/base/WrappedClassLoader.java",
]
+ sources += brave_java_base_sources
if (use_clang_profiling) {
sources += [
-@@ -4669,6 +4670,7 @@ if (is_android) {
+@@ -4953,6 +4954,7 @@ if (is_android) {
"android/java/src/org/chromium/base/shared_preferences/SharedPreferencesManager.java",
"android/java/src/org/chromium/base/shared_preferences/StrictPreferenceKeyChecker.java",
]
@@ -18,7 +18,7 @@ index 4c7130084a91f3bec8b0b2099e1b4fa5c0f94eb8..245879a9eb8619d46b02db054df624d9
}
android_library("base_cached_flags_java") {
-@@ -4695,6 +4697,7 @@ if (is_android) {
+@@ -4979,6 +4981,7 @@ if (is_android) {
"android/java/src/org/chromium/base/cached_flags/ValuesOverridden.java",
"android/java/src/org/chromium/base/cached_flags/ValuesReturned.java",
]
diff --git a/patches/base-metrics-histogram_functions.h.patch b/patches/base-metrics-histogram_functions.h.patch
new file mode 100644
index 000000000000..948b3d3f9e14
--- /dev/null
+++ b/patches/base-metrics-histogram_functions.h.patch
@@ -0,0 +1,20 @@
+diff --git a/base/metrics/histogram_functions.h b/base/metrics/histogram_functions.h
+index 18f460cc992ddac3669f514beee5a66878970653..ec2f093dd87f3ef2a6bb8bcef6f7e6340c8ee50c 100644
+--- a/base/metrics/histogram_functions.h
++++ b/base/metrics/histogram_functions.h
+@@ -75,6 +75,7 @@ void UmaHistogramEnumeration(const std::string& name, T sample) {
+ static_assert(static_cast(T::kMaxValue) <=
+ static_cast(INT_MAX) - 1,
+ "Enumeration's kMaxValue is out of range of INT_MAX!");
++ BRAVE_HISTOGRAM_FUNCTIONS_UMA_HISTOGRAM_ENUMERATION_STRING_ARG
+ DCHECK_LE(static_cast(sample),
+ static_cast(T::kMaxValue));
+ return UmaHistogramExactLinear(name, static_cast(sample),
+@@ -89,6 +90,7 @@ void UmaHistogramEnumeration(const char* name, T sample) {
+ static_assert(static_cast(T::kMaxValue) <=
+ static_cast(INT_MAX) - 1,
+ "Enumeration's kMaxValue is out of range of INT_MAX!");
++ BRAVE_HISTOGRAM_FUNCTIONS_UMA_HISTOGRAM_ENUMERATION_CHAR_POINTER_ARG
+ DCHECK_LE(static_cast(sample),
+ static_cast(T::kMaxValue));
+ return UmaHistogramExactLinear(name, static_cast(sample),
diff --git a/patches/base-test-BUILD.gn.patch b/patches/base-test-BUILD.gn.patch
index 439571a01883..3e91bad4d29a 100644
--- a/patches/base-test-BUILD.gn.patch
+++ b/patches/base-test-BUILD.gn.patch
@@ -1,8 +1,8 @@
diff --git a/base/test/BUILD.gn b/base/test/BUILD.gn
-index feafabc3a60f90e6a8bf580fafe6b9c4af0cf962..addaa14806cfc510773db43ca332988dec8cc88c 100644
+index a60a2c1de016656c1b3d06e4fa16594cf6c3558a..0d43ff6ff6c2a6394c6cfd301a95b16afdd2f17c 100644
--- a/base/test/BUILD.gn
+++ b/base/test/BUILD.gn
-@@ -336,6 +336,7 @@ static_library("test_support") {
+@@ -337,6 +337,7 @@ static_library("test_support") {
"trace_to_file.h",
]
}
diff --git a/patches/base-test-launcher-test_results_tracker.cc.patch b/patches/base-test-launcher-test_results_tracker.cc.patch
index 928b9bb88fb3..270fd7f5d54d 100644
--- a/patches/base-test-launcher-test_results_tracker.cc.patch
+++ b/patches/base-test-launcher-test_results_tracker.cc.patch
@@ -1,8 +1,8 @@
diff --git a/base/test/launcher/test_results_tracker.cc b/base/test/launcher/test_results_tracker.cc
-index 1237a29e5fa1d8c1cbf84d4594f867aa794170a6..1adedda79da7b616d3d14eb99a702fdf02e4d32d 100644
+index ff79865a4b80f2ca8619721a4c197584a35ee8a6..3c6e08dad12930748455a09a4cb3460b4b0d805a 100644
--- a/base/test/launcher/test_results_tracker.cc
+++ b/base/test/launcher/test_results_tracker.cc
-@@ -149,6 +149,7 @@ TestResultsTracker::~TestResultsTracker() {
+@@ -150,6 +150,7 @@ TestResultsTracker::~TestResultsTracker() {
: ""),
result.GetTestCaseName().c_str());
if (result.status != TestResult::TEST_SUCCESS) {
diff --git a/patches/base-threading-thread_restrictions.h.patch b/patches/base-threading-thread_restrictions.h.patch
index 263a8613d4d5..9b07f69fc505 100644
--- a/patches/base-threading-thread_restrictions.h.patch
+++ b/patches/base-threading-thread_restrictions.h.patch
@@ -1,8 +1,8 @@
diff --git a/base/threading/thread_restrictions.h b/base/threading/thread_restrictions.h
-index a31e09a5782c866ee3b488c09162af961473e2c6..c168066fb7ed420cac5d14db85b9d5dc2a9abbc7 100644
+index fca9f03283c9b11e63d585411eb1620a20174bf6..409f5276dd4a19fff3cd7d0348bae7a63009fb02 100644
--- a/base/threading/thread_restrictions.h
+++ b/base/threading/thread_restrictions.h
-@@ -734,6 +734,7 @@ class BASE_EXPORT [[maybe_unused, nodiscard]] ScopedAllowBaseSyncPrimitives {
+@@ -752,6 +752,7 @@ class BASE_EXPORT [[maybe_unused, nodiscard]] ScopedAllowBaseSyncPrimitives {
ScopedAllowBaseSyncPrimitives& operator=(
const ScopedAllowBaseSyncPrimitives&) = delete;
diff --git a/patches/base-trace_event-builtin_categories.h.patch b/patches/base-trace_event-builtin_categories.h.patch
index 44e725e6ee16..3c0fceaecc14 100644
--- a/patches/base-trace_event-builtin_categories.h.patch
+++ b/patches/base-trace_event-builtin_categories.h.patch
@@ -1,8 +1,8 @@
diff --git a/base/trace_event/builtin_categories.h b/base/trace_event/builtin_categories.h
-index 4c1a949117a070a74285d043ec89a677952fd2c4..f33210ae5b36916e92eea12cd437f8fcd9fa9159 100644
+index a3da4353d4ea519670b4a993893851f4788cd617..77cf66bcc26bc2b62bcaa6f0162f1e0af6450275 100644
--- a/base/trace_event/builtin_categories.h
+++ b/base/trace_event/builtin_categories.h
-@@ -198,6 +198,7 @@
+@@ -199,6 +199,7 @@
X("webrtc") \
X("webrtc_stats") \
X("xr") \
diff --git a/patches/build-android-gyp-lint.py.patch b/patches/build-android-gyp-lint.py.patch
index c249a9a5a721..bbb7a19b9630 100644
--- a/patches/build-android-gyp-lint.py.patch
+++ b/patches/build-android-gyp-lint.py.patch
@@ -1,8 +1,8 @@
diff --git a/build/android/gyp/lint.py b/build/android/gyp/lint.py
-index dc20d135e8033862aad40675553c4c96394f6c43..adbe8cb6fdcdc6a378572a47939a2341e575a47c 100755
+index 0ac068ae4850743cfc06111bd655aa68c5aa8e59..008d8ea64fcc2046c4fd2b7ab0e6003f7dc765cf 100755
--- a/build/android/gyp/lint.py
+++ b/build/android/gyp/lint.py
-@@ -550,5 +550,6 @@ def main():
+@@ -518,5 +518,6 @@ def main():
action_helpers.write_depfile(args.depfile, args.stamp, depfile_deps)
diff --git a/patches/build-android-gyp-proguard.py.patch b/patches/build-android-gyp-proguard.py.patch
index 68b855ac4ef8..444f51787295 100644
--- a/patches/build-android-gyp-proguard.py.patch
+++ b/patches/build-android-gyp-proguard.py.patch
@@ -1,8 +1,8 @@
diff --git a/build/android/gyp/proguard.py b/build/android/gyp/proguard.py
-index 4ab052f7f9009b52d107ac0436a8755a35c27988..3d8e5e6ac622083090fec1c828eae85988080230 100755
+index b20e9b537063730f6afa3f559a87abaff986fb77..45cb74e5b175e61c91feef912c733f8d708e200d 100755
--- a/build/android/gyp/proguard.py
+++ b/build/android/gyp/proguard.py
-@@ -352,6 +352,7 @@ def _OptimizeWithR8(options, config_paths, libraries, dynamic_config_data):
+@@ -372,6 +372,7 @@ def _OptimizeWithR8(options, config_paths, libraries, dynamic_config_data):
'--pg-map-output',
tmp_mapping_path,
]
diff --git a/patches/build-config-BUILDCONFIG.gn.patch b/patches/build-config-BUILDCONFIG.gn.patch
index 50af82d1c43c..125981bd96bc 100644
--- a/patches/build-config-BUILDCONFIG.gn.patch
+++ b/patches/build-config-BUILDCONFIG.gn.patch
@@ -1,5 +1,5 @@
diff --git a/build/config/BUILDCONFIG.gn b/build/config/BUILDCONFIG.gn
-index b8cac29305c3cfb5fbc0142ae17a4d802b52d80f..0d7a6f208136a13b644e7d2abf08d0e8ac4478e6 100644
+index 29625fa7af1c8840bc530c4e4547e19a3bd5f8ce..d9bcd09da2c57e6234ed48fd92865b2e042d35e1 100644
--- a/build/config/BUILDCONFIG.gn
+++ b/build/config/BUILDCONFIG.gn
@@ -335,6 +335,7 @@ is_posix = !is_win && !is_fuchsia
diff --git a/patches/build-config-android-internal_rules.gni.patch b/patches/build-config-android-internal_rules.gni.patch
index 5e4d023101c0..56c7643304f1 100644
--- a/patches/build-config-android-internal_rules.gni.patch
+++ b/patches/build-config-android-internal_rules.gni.patch
@@ -1,8 +1,8 @@
diff --git a/build/config/android/internal_rules.gni b/build/config/android/internal_rules.gni
-index 82f30f3c8e89c24dfacbfb73eb683d7c700420b3..1bd5485efdc3d2a5b58eec5d22e903fdbad43e5a 100644
+index 23acffd92e7e076c529594dac8dabf464efefe08..076bd31d5ffccbb789535b192f1489d015a01d72 100644
--- a/build/config/android/internal_rules.gni
+++ b/build/config/android/internal_rules.gni
-@@ -4149,6 +4149,7 @@ if (enable_java_templates) {
+@@ -4152,6 +4152,7 @@ if (enable_java_templates) {
} else {
not_needed(invoker, [ "missing_classes_allowlist" ])
}
diff --git a/patches/build-config-android-rules.gni.patch b/patches/build-config-android-rules.gni.patch
index d14335b09f3f..a706ad6497f8 100644
--- a/patches/build-config-android-rules.gni.patch
+++ b/patches/build-config-android-rules.gni.patch
@@ -1,5 +1,5 @@
diff --git a/build/config/android/rules.gni b/build/config/android/rules.gni
-index df789fb3cd6a4460ef9233f91e142934e9f447ad..722feec0561cdd24c2370433187d302458092bb4 100644
+index 2ed5851e0d170a71dcb53d8c4f12e867622d309d..56408b69a17c4818b1af9b3094161677ddd0265e 100644
--- a/build/config/android/rules.gni
+++ b/build/config/android/rules.gni
@@ -206,6 +206,7 @@ if (!is_robolectric && enable_java_templates) {
diff --git a/patches/build-config-compiler-BUILD.gn.patch b/patches/build-config-compiler-BUILD.gn.patch
index cb09955098f4..5d8fa357681d 100644
--- a/patches/build-config-compiler-BUILD.gn.patch
+++ b/patches/build-config-compiler-BUILD.gn.patch
@@ -1,8 +1,8 @@
diff --git a/build/config/compiler/BUILD.gn b/build/config/compiler/BUILD.gn
-index 6efe967eb0a1cfd71f5d85209bcc9b0d90c5b4c0..54cc7367266867a62ddada0f285581f232b2f08b 100644
+index f598fd188a4ce314bee61d41110406336c9291f8..f752ce6803995c5441bc17af43988b9bce6bc197 100644
--- a/build/config/compiler/BUILD.gn
+++ b/build/config/compiler/BUILD.gn
-@@ -546,7 +546,6 @@ config("compiler") {
+@@ -553,7 +553,6 @@ config("compiler") {
}
if (is_clang && !is_nacl && current_os != "zos") {
@@ -10,18 +10,3 @@ index 6efe967eb0a1cfd71f5d85209bcc9b0d90c5b4c0..54cc7367266867a62ddada0f285581f2
if (save_reproducers_on_lld_crash && use_lld) {
ldflags += [
"-fcrash-diagnostics=all",
-@@ -2409,10 +2408,10 @@ config("optimize") {
- if (is_win) {
- cflags = [ "/O2" ] + common_optimize_on_cflags
-
-- # https://doc.rust-lang.org/rustc/profile-guided-optimization.html#usage
-- # suggests not using an explicit `-Copt-level` at all, and the default is
-- # to optimize for performance like `/O2` for clang.
-- rustflags = []
-+ # The `-O3` for clang turns on extra optimizations compared to the standard
-+ # `-O2`. But for rust, `-Copt-level=3` is the default and is thus reliable
-+ # to use.
-+ rustflags = [ "-Copt-level=3" ]
- } else if (optimize_for_size || is_chromeos) {
- # Favor size over speed.
- # -Os in clang is more of a size-conscious -O2 than "size at any cost"
diff --git a/patches/build-rust-cargo_crate.gni.patch b/patches/build-rust-cargo_crate.gni.patch
index f2a29f171720..aa1694585901 100644
--- a/patches/build-rust-cargo_crate.gni.patch
+++ b/patches/build-rust-cargo_crate.gni.patch
@@ -1,8 +1,8 @@
diff --git a/build/rust/cargo_crate.gni b/build/rust/cargo_crate.gni
-index 135e1fa667bbd8ffef3b8dc3daf9c957662f6a99..37c16721afcda89af9a5b7c4ebb68cad92cba71c 100644
+index 06ee6a9d2e9cc89cf3910a9ae38da280938d315f..452f8e342023117f946ece8e2424ae3585c52ce2 100644
--- a/build/rust/cargo_crate.gni
+++ b/build/rust/cargo_crate.gni
-@@ -153,6 +153,7 @@ template("cargo_crate") {
+@@ -158,6 +158,7 @@ template("cargo_crate") {
manifest_dir = rebase_path(build_gn_dir + "/crate", root_build_dir)
}
_rustenv += [ "CARGO_MANIFEST_DIR=${manifest_dir}" ]
@@ -10,7 +10,7 @@ index 135e1fa667bbd8ffef3b8dc3daf9c957662f6a99..37c16721afcda89af9a5b7c4ebb68cad
# cargo_crate() should set library_configs, executable_configs,
# proc_macro_configs. Not configs.
-@@ -236,6 +237,7 @@ template("cargo_crate") {
+@@ -259,6 +260,7 @@ template("cargo_crate") {
testonly = _testonly
if (defined(invoker.visibility)) {
visibility = invoker.visibility
diff --git a/patches/build-write_buildflag_header.py.patch b/patches/build-write_buildflag_header.py.patch
deleted file mode 100644
index f16ee0d67bf8..000000000000
--- a/patches/build-write_buildflag_header.py.patch
+++ /dev/null
@@ -1,14 +0,0 @@
-diff --git a/build/write_buildflag_header.py b/build/write_buildflag_header.py
-index a8b68f9e82cd408c30fba82d10b1cb47a253382a..6cc80ea04c03939765f655846a6eb63061a80b9c 100755
---- a/build/write_buildflag_header.py
-+++ b/build/write_buildflag_header.py
-@@ -86,6 +86,9 @@ def WriteHeader(options):
- output_file.write('\n#ifndef %s\n' % options.header_guard)
- output_file.write('#define %s\n\n' % options.header_guard)
- output_file.write('#include "build/buildflag.h" // IWYU pragma: export\n\n')
-+ # Clangd does not detect BUILDFLAG_INTERNAL_* indirect usage, so mark the
-+ # header as "always_keep" to avoid "unused include" warning.
-+ output_file.write('// IWYU pragma: always_keep\n\n')
-
- for pair in options.flags:
- output_file.write('#define BUILDFLAG_INTERNAL_%s() (%s)\n' % pair)
diff --git a/patches/chrome-BUILD.gn.patch b/patches/chrome-BUILD.gn.patch
index 005d80167fb4..ecfc83ff1054 100644
--- a/patches/chrome-BUILD.gn.patch
+++ b/patches/chrome-BUILD.gn.patch
@@ -1,8 +1,8 @@
diff --git a/chrome/BUILD.gn b/chrome/BUILD.gn
-index de94c7bcf0bd0d5aea2ff79a3c0ccdb98035d06a..aae1abd5aab305516dd72a0f19b45bf81c69a381 100644
+index c35f1b734745addf3a495b1d69957ad13fe954fb..3f653bc87a1a82f76817023ce6223198b7ae2cab 100644
--- a/chrome/BUILD.gn
+++ b/chrome/BUILD.gn
-@@ -188,6 +188,7 @@ if (!is_android && !is_mac) {
+@@ -191,6 +191,7 @@ if (!is_android && !is_mac) {
"common/crash_keys.cc",
"common/crash_keys.h",
]
@@ -10,7 +10,7 @@ index de94c7bcf0bd0d5aea2ff79a3c0ccdb98035d06a..aae1abd5aab305516dd72a0f19b45bf8
deps += [
":chrome_dll",
-@@ -509,11 +510,12 @@ if (is_win) {
+@@ -512,11 +513,12 @@ if (is_win) {
args += [ "--keystone=0" ]
}
}
@@ -24,7 +24,7 @@ index de94c7bcf0bd0d5aea2ff79a3c0ccdb98035d06a..aae1abd5aab305516dd72a0f19b45bf8
extra_substitutions = [
"CHROMIUM_BUNDLE_ID=$chrome_mac_bundle_id",
"CHROMIUM_SHORT_NAME=$chrome_product_short_name",
-@@ -533,6 +535,7 @@ if (is_win) {
+@@ -536,6 +538,7 @@ if (is_win) {
"//chrome/common:buildflags",
"//chrome/common:version_header",
]
@@ -32,7 +32,7 @@ index de94c7bcf0bd0d5aea2ff79a3c0ccdb98035d06a..aae1abd5aab305516dd72a0f19b45bf8
if (enable_updater) {
deps += [ ":chromium_updater_privileged_helper" ]
-@@ -675,6 +678,7 @@ if (is_win) {
+@@ -678,6 +681,7 @@ if (is_win) {
# this dependency directly copies the file into the framework's
# resources directory.
public_deps += [ ":chrome_framework_widevine_signature" ]
@@ -40,7 +40,7 @@ index de94c7bcf0bd0d5aea2ff79a3c0ccdb98035d06a..aae1abd5aab305516dd72a0f19b45bf8
}
}
-@@ -718,9 +722,11 @@ if (is_win) {
+@@ -721,9 +725,11 @@ if (is_win) {
"--scm=0",
]
}
@@ -52,7 +52,7 @@ index de94c7bcf0bd0d5aea2ff79a3c0ccdb98035d06a..aae1abd5aab305516dd72a0f19b45bf8
if (is_chrome_branded && include_branded_entitlements) {
# These entitlements are bound to the official Google Chrome signing
# certificate and will not necessarily work in any other build.
-@@ -745,6 +751,7 @@ if (is_win) {
+@@ -748,6 +754,7 @@ if (is_win) {
info_plist_target = invoker.info_plist_target
} else {
info_plist_target = ":chrome_helper_plist"
@@ -60,7 +60,7 @@ index de94c7bcf0bd0d5aea2ff79a3c0ccdb98035d06a..aae1abd5aab305516dd72a0f19b45bf8
}
extra_substitutions = [
-@@ -925,6 +932,7 @@ if (is_win) {
+@@ -928,6 +935,7 @@ if (is_win) {
sources += [ "//third_party/updater/chrome_mac_universal_prod/${updater_product_full_name}.app" ]
} else {
sources += [ "$root_out_dir/${updater_product_full_name}.app" ]
@@ -68,7 +68,7 @@ index de94c7bcf0bd0d5aea2ff79a3c0ccdb98035d06a..aae1abd5aab305516dd72a0f19b45bf8
public_deps += [
"//chrome/updater/mac:browser_install_script",
-@@ -1239,6 +1247,7 @@ if (is_win) {
+@@ -1242,6 +1250,7 @@ if (is_win) {
"-current_version",
chrome_dylib_version,
]
@@ -76,7 +76,7 @@ index de94c7bcf0bd0d5aea2ff79a3c0ccdb98035d06a..aae1abd5aab305516dd72a0f19b45bf8
if (!is_component_build) {
# Specify a sensible install_name for static builds. The library is
-@@ -1419,6 +1428,7 @@ if (is_win) {
+@@ -1422,6 +1431,7 @@ if (is_win) {
group("dependencies") {
public_deps = [
@@ -84,7 +84,7 @@ index de94c7bcf0bd0d5aea2ff79a3c0ccdb98035d06a..aae1abd5aab305516dd72a0f19b45bf8
"//build:branding_buildflags",
"//build:chromeos_buildflags",
"//chrome/browser",
-@@ -1482,7 +1492,7 @@ group("dependencies") {
+@@ -1485,7 +1495,7 @@ group("dependencies") {
if (is_win) {
process_version_rc_template("chrome_exe_version") {
@@ -93,7 +93,7 @@ index de94c7bcf0bd0d5aea2ff79a3c0ccdb98035d06a..aae1abd5aab305516dd72a0f19b45bf8
output = "$target_gen_dir/chrome_exe_version.rc"
}
-@@ -1531,6 +1541,7 @@ group("resources") {
+@@ -1534,6 +1544,7 @@ group("resources") {
"//chrome/browser:resources",
"//chrome/common:resources",
"//chrome/renderer:resources",
@@ -101,7 +101,7 @@ index de94c7bcf0bd0d5aea2ff79a3c0ccdb98035d06a..aae1abd5aab305516dd72a0f19b45bf8
]
}
-@@ -1584,6 +1595,7 @@ if (!is_android) {
+@@ -1587,6 +1598,7 @@ if (!is_android) {
if (enable_resource_allowlist_generation) {
repack_allowlist = _chrome_resource_allowlist
deps = [ ":resource_allowlist" ]
diff --git a/patches/chrome-android-BUILD.gn.patch b/patches/chrome-android-BUILD.gn.patch
index 81263cfa390d..4204a0848d5d 100644
--- a/patches/chrome-android-BUILD.gn.patch
+++ b/patches/chrome-android-BUILD.gn.patch
@@ -1,5 +1,5 @@
diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn
-index 44ffbdcff9316ba60135fb96db171e6ac73660cb..889484b85616072254ffc6b5d5901bb95d66d279 100644
+index b16077e278a8b719536473418e356be528491392..41a411fa12e9a0bafedfb36b192255c02e4242ed 100644
--- a/chrome/android/BUILD.gn
+++ b/chrome/android/BUILD.gn
@@ -192,6 +192,7 @@ if (current_toolchain == default_toolchain) {
@@ -18,7 +18,7 @@ index 44ffbdcff9316ba60135fb96db171e6ac73660cb..889484b85616072254ffc6b5d5901bb9
}
android_library("app_hooks_java") {
-@@ -734,6 +736,7 @@ if (current_toolchain == default_toolchain) {
+@@ -737,6 +739,7 @@ if (current_toolchain == default_toolchain) {
]
deps += feed_deps
@@ -26,7 +26,7 @@ index 44ffbdcff9316ba60135fb96db171e6ac73660cb..889484b85616072254ffc6b5d5901bb9
srcjar_deps = [
":chrome_android_java_enums_srcjar",
-@@ -752,6 +755,7 @@ if (current_toolchain == default_toolchain) {
+@@ -755,6 +758,7 @@ if (current_toolchain == default_toolchain) {
"//components/supervised_user/core/browser:supervised_user_utils_enum_javagen",
"//net:effective_connection_type_java",
]
@@ -34,7 +34,7 @@ index 44ffbdcff9316ba60135fb96db171e6ac73660cb..889484b85616072254ffc6b5d5901bb9
# From java_sources.gni.
sources = chrome_java_sources + [ app_hooks_impl ]
-@@ -893,6 +897,7 @@ if (current_toolchain == default_toolchain) {
+@@ -896,6 +900,7 @@ if (current_toolchain == default_toolchain) {
"//components/saved_tab_groups:java",
"//components/segmentation_platform/internal:internal_java",
]
@@ -42,7 +42,7 @@ index 44ffbdcff9316ba60135fb96db171e6ac73660cb..889484b85616072254ffc6b5d5901bb9
}
action_with_pydeps("chrome_android_java_google_api_keys_srcjar") {
-@@ -2244,6 +2249,7 @@ if (current_toolchain == default_toolchain) {
+@@ -2256,6 +2261,7 @@ if (current_toolchain == default_toolchain) {
"java/res_chromium_base/mipmap-xxxhdpi/layered_app_icon_background.png",
"java/res_chromium_base/values/channel_constants.xml",
]
@@ -50,7 +50,7 @@ index 44ffbdcff9316ba60135fb96db171e6ac73660cb..889484b85616072254ffc6b5d5901bb9
# Dep needed to ensure override works properly.
deps = [ ":chrome_base_module_resources" ]
-@@ -2456,6 +2462,7 @@ if (current_toolchain == default_toolchain) {
+@@ -2468,6 +2474,7 @@ if (current_toolchain == default_toolchain) {
":${_variant}_locale_pak_assets",
":${_variant}_paks",
]
@@ -58,7 +58,7 @@ index 44ffbdcff9316ba60135fb96db171e6ac73660cb..889484b85616072254ffc6b5d5901bb9
if (_is_monochrome) {
deps += [ "//android_webview:locale_pak_assets" ]
}
-@@ -2728,6 +2735,7 @@ if (current_toolchain == default_toolchain) {
+@@ -2742,6 +2749,7 @@ if (current_toolchain == default_toolchain) {
"//components/payments/content/android:service_java",
"//third_party/androidx:androidx_browser_browser_java",
]
@@ -66,7 +66,7 @@ index 44ffbdcff9316ba60135fb96db171e6ac73660cb..889484b85616072254ffc6b5d5901bb9
# More deps for DFMs.
if (dfmify_dev_ui) {
-@@ -3820,6 +3828,7 @@ generate_jni("chrome_jni_headers") {
+@@ -3824,6 +3832,7 @@ generate_jni("chrome_jni_headers") {
"java/src/org/chromium/chrome/browser/webapps/WebApkUpdateManager.java",
"java/src/org/chromium/chrome/browser/webapps/WebappRegistry.java",
]
diff --git a/patches/chrome-android-chrome_java_sources.gni.patch b/patches/chrome-android-chrome_java_sources.gni.patch
index c24cd9be46f5..ff36d06a3819 100644
--- a/patches/chrome-android-chrome_java_sources.gni.patch
+++ b/patches/chrome-android-chrome_java_sources.gni.patch
@@ -1,8 +1,8 @@
diff --git a/chrome/android/chrome_java_sources.gni b/chrome/android/chrome_java_sources.gni
-index 9580fb6ee2bb91797744c8ea4769062c2fe335c8..574ea65c723e3afa638121f05c8924c8fac06225 100644
+index a3bc1c0b74fe3c4b6577fd3d3d2d622213897232..20d02c98228daa4f5b69cb4c59d4fc37797a5496 100644
--- a/chrome/android/chrome_java_sources.gni
+++ b/chrome/android/chrome_java_sources.gni
-@@ -1232,3 +1232,4 @@ chrome_java_sources = [
+@@ -1226,3 +1226,4 @@ chrome_java_sources = [
"java/src/org/chromium/chrome/browser/webauth/authenticator/CableAuthenticatorUSBActivity.java",
"java/src/org/chromium/chrome/browser/webshare/ShareServiceImplementationFactory.java",
]
diff --git a/patches/chrome-android-expectations-lint-suppressions.xml.patch b/patches/chrome-android-expectations-lint-suppressions.xml.patch
index 13efef1fd6a3..1b4b896890d9 100644
--- a/patches/chrome-android-expectations-lint-suppressions.xml.patch
+++ b/patches/chrome-android-expectations-lint-suppressions.xml.patch
@@ -1,8 +1,8 @@
diff --git a/chrome/android/expectations/lint-suppressions.xml b/chrome/android/expectations/lint-suppressions.xml
-index 8200ab5b9229e37333b5aaf3de9b51275e67f16b..986899544ef20fdf76e7b5935049861dd3bd9cf0 100644
+index a4a4ba800f9460cb3547c875f695490979a2e250..2b2e59c207edc146e0d7b624b7e22801333a7a14 100644
--- a/chrome/android/expectations/lint-suppressions.xml
+++ b/chrome/android/expectations/lint-suppressions.xml
-@@ -298,4 +298,5 @@ https://chromium.googlesource.com/chromium/src/+/main/build/android/docs/lint.md
+@@ -289,4 +289,5 @@ https://chromium.googlesource.com/chromium/src/+/main/build/android/docs/lint.md
diff --git a/patches/chrome-android-features-tab_ui-BUILD.gn.patch b/patches/chrome-android-features-tab_ui-BUILD.gn.patch
index bacef8339e6b..ff77a43d0ad0 100644
--- a/patches/chrome-android-features-tab_ui-BUILD.gn.patch
+++ b/patches/chrome-android-features-tab_ui-BUILD.gn.patch
@@ -1,8 +1,8 @@
diff --git a/chrome/android/features/tab_ui/BUILD.gn b/chrome/android/features/tab_ui/BUILD.gn
-index a35c77c71ab16b0fa81faf7e56b51c18644ae066..c7f7cacc2b84c56b61c8e80d1860e25d3a6b1258 100644
+index 72608efd55a161172bcc76a41b00eb31b9dccfe9..4aa343965268ffb2b8088988497ff0beba86069f 100644
--- a/chrome/android/features/tab_ui/BUILD.gn
+++ b/chrome/android/features/tab_ui/BUILD.gn
-@@ -101,6 +101,7 @@ android_resources("java_resources") {
+@@ -104,6 +104,7 @@ android_resources("java_resources") {
"java/res/values/styles.xml",
"java/res/xml/tabs_settings.xml",
]
diff --git a/patches/chrome-android-feed-core-java-src-org-chromium-chrome-browser-feed-FeedSurfaceMediator.java.patch b/patches/chrome-android-feed-core-java-src-org-chromium-chrome-browser-feed-FeedSurfaceMediator.java.patch
index fec484c56c46..8a7a65311b05 100644
--- a/patches/chrome-android-feed-core-java-src-org-chromium-chrome-browser-feed-FeedSurfaceMediator.java.patch
+++ b/patches/chrome-android-feed-core-java-src-org-chromium-chrome-browser-feed-FeedSurfaceMediator.java.patch
@@ -1,5 +1,5 @@
diff --git a/chrome/android/feed/core/java/src/org/chromium/chrome/browser/feed/FeedSurfaceMediator.java b/chrome/android/feed/core/java/src/org/chromium/chrome/browser/feed/FeedSurfaceMediator.java
-index 909b1e20c33a87e5b29bf69ce542060fffd4bfb3..ae030ce894d23fe5cefb5a7489bf884f8cd4a5cf 100644
+index 3985c8f2b5b66482f6cd73518a3bb270843110dc..97de32ec70399ee5318a4a3a8275645a150a9ff2 100644
--- a/chrome/android/feed/core/java/src/org/chromium/chrome/browser/feed/FeedSurfaceMediator.java
+++ b/chrome/android/feed/core/java/src/org/chromium/chrome/browser/feed/FeedSurfaceMediator.java
@@ -301,7 +301,7 @@ public class FeedSurfaceMediator
diff --git a/patches/chrome-android-java-AndroidManifest.xml.patch b/patches/chrome-android-java-AndroidManifest.xml.patch
index c04548b0233e..3e7b8fcf203f 100644
--- a/patches/chrome-android-java-AndroidManifest.xml.patch
+++ b/patches/chrome-android-java-AndroidManifest.xml.patch
@@ -1,5 +1,5 @@
diff --git a/chrome/android/java/AndroidManifest.xml b/chrome/android/java/AndroidManifest.xml
-index f9192285fba43be32ba1bfb1214959ac969186bf..83740dd1568fa8dca7adb677abf8d85b83282936 100644
+index ef22b3c2b00c9757ede91062aba188266716d2d7..ab9648368e849c72bafce2d99a46d9c7c6131caa 100644
--- a/chrome/android/java/AndroidManifest.xml
+++ b/chrome/android/java/AndroidManifest.xml
@@ -28,6 +28,7 @@ by a child template that "extends" this file.
@@ -66,7 +66,7 @@ index f9192285fba43be32ba1bfb1214959ac969186bf..83740dd1568fa8dca7adb677abf8d85b
-@@ -1210,6 +1224,7 @@ by a child template that "extends" this file.
+@@ -1207,6 +1221,7 @@ by a child template that "extends" this file.
{% endif %}
diff --git a/patches/chrome-android-java-src-org-chromium-chrome-browser-notifications-NotificationPlatformBridge.java.patch b/patches/chrome-android-java-src-org-chromium-chrome-browser-notifications-NotificationPlatformBridge.java.patch
index 7144820cd060..3dd8dea54f2b 100644
--- a/patches/chrome-android-java-src-org-chromium-chrome-browser-notifications-NotificationPlatformBridge.java.patch
+++ b/patches/chrome-android-java-src-org-chromium-chrome-browser-notifications-NotificationPlatformBridge.java.patch
@@ -1,5 +1,5 @@
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/notifications/NotificationPlatformBridge.java b/chrome/android/java/src/org/chromium/chrome/browser/notifications/NotificationPlatformBridge.java
-index 9f3e7a6209b77211a5a621fb817effc1cc134853..c7325c039f4c79d2194c05f351d8c5bac2ea8651 100644
+index 3b2f59a7205f09b495aaf9f37b99db61e4ed9909..d257b52b8791670a01df72b859ed6c54650b199f 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/notifications/NotificationPlatformBridge.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/notifications/NotificationPlatformBridge.java
@@ -97,7 +97,7 @@ public class NotificationPlatformBridge {
@@ -29,7 +29,7 @@ index 9f3e7a6209b77211a5a621fb817effc1cc134853..c7325c039f4c79d2194c05f351d8c5ba
mNativeNotificationPlatformBridge = nativeNotificationPlatformBridge;
Context context = ContextUtils.getApplicationContext();
if (sNotificationManagerOverride != null) {
-@@ -817,7 +817,7 @@ public class NotificationPlatformBridge {
+@@ -834,7 +834,7 @@ public class NotificationPlatformBridge {
.storeNotificationResourcesIfSuspended(notification);
}
diff --git a/patches/chrome-android-java-src-org-chromium-chrome-browser-notifications-NotificationServiceImpl.java.patch b/patches/chrome-android-java-src-org-chromium-chrome-browser-notifications-NotificationServiceImpl.java.patch
index 949a8ff34e8d..d6a37a163bae 100644
--- a/patches/chrome-android-java-src-org-chromium-chrome-browser-notifications-NotificationServiceImpl.java.patch
+++ b/patches/chrome-android-java-src-org-chromium-chrome-browser-notifications-NotificationServiceImpl.java.patch
@@ -1,8 +1,8 @@
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/notifications/NotificationServiceImpl.java b/chrome/android/java/src/org/chromium/chrome/browser/notifications/NotificationServiceImpl.java
-index 3a04e6269b7922a81261ff4b7d9e8cc4d5e25f77..0170f6987aa6603c92428188c6d12c99a8b1b4c4 100644
+index 1e701c576f4af1f8f8cfd21b87c471bd2e971664..da037d4409b1b0b10524a91ca0064c0b35c6ced1 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/notifications/NotificationServiceImpl.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/notifications/NotificationServiceImpl.java
-@@ -198,7 +198,7 @@ public class NotificationServiceImpl extends NotificationService.Impl {
+@@ -205,7 +205,7 @@ public class NotificationServiceImpl extends NotificationService.Impl {
.recordIntentHandlerJobStage(
NotificationUmaTracker.IntentHandlerJobStage.DISPATCH_EVENT,
intent.getAction());
diff --git a/patches/chrome-android-java-src-org-chromium-chrome-browser-privacy-settings-PrivacySettings.java.patch b/patches/chrome-android-java-src-org-chromium-chrome-browser-privacy-settings-PrivacySettings.java.patch
index da9da080a68c..c9fdfe75492f 100644
--- a/patches/chrome-android-java-src-org-chromium-chrome-browser-privacy-settings-PrivacySettings.java.patch
+++ b/patches/chrome-android-java-src-org-chromium-chrome-browser-privacy-settings-PrivacySettings.java.patch
@@ -1,17 +1,17 @@
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java
-index 041452dd1ed86cc43405bc87b5c31f82974ac639..51ce693b8cde489ea08cc5e902f69441c97d5332 100644
+index 4d8fa0f5ce030b0beb092544ded00356f4737b93..5bc2bcbcd2d1b368268c8b8bad10b04e87f9069b 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java
-@@ -56,7 +56,7 @@ import org.chromium.ui.text.NoUnderlineClickableSpan;
+@@ -52,7 +52,7 @@ import org.chromium.ui.text.NoUnderlineClickableSpan;
import org.chromium.ui.text.SpanApplier;
/** Fragment to keep track of the all the privacy related preferences. */
-public class PrivacySettings extends ChromeBaseSettingsFragment
+public class PrivacySettings extends org.chromium.chrome.browser.settings.BravePreferenceFragment
- implements Preference.OnPreferenceChangeListener {
+ implements Preference.OnPreferenceChangeListener, FragmentSettingsLauncher {
private static final String PREF_CAN_MAKE_PAYMENT = "can_make_payment";
private static final String PREF_PRELOAD_PAGES = "preload_pages";
-@@ -407,6 +407,7 @@ public class PrivacySettings extends ChromeBaseSettingsFragment
+@@ -409,6 +409,7 @@ public class PrivacySettings extends ChromeBaseSettingsFragment
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
menu.clear();
@@ -19,7 +19,7 @@ index 041452dd1ed86cc43405bc87b5c31f82974ac639..51ce693b8cde489ea08cc5e902f69441
MenuItem help =
menu.add(Menu.NONE, R.id.menu_id_targeted_help, Menu.NONE, R.string.menu_help);
help.setIcon(
-@@ -421,6 +422,6 @@ public class PrivacySettings extends ChromeBaseSettingsFragment
+@@ -423,6 +424,6 @@ public class PrivacySettings extends ChromeBaseSettingsFragment
.show(getActivity(), getString(R.string.help_context_privacy), null);
return true;
}
diff --git a/patches/chrome-android-java-src-org-chromium-chrome-browser-sync-settings-ManageSyncSettings.java.patch b/patches/chrome-android-java-src-org-chromium-chrome-browser-sync-settings-ManageSyncSettings.java.patch
index daf1bf3e2e71..55dbfb8cb243 100644
--- a/patches/chrome-android-java-src-org-chromium-chrome-browser-sync-settings-ManageSyncSettings.java.patch
+++ b/patches/chrome-android-java-src-org-chromium-chrome-browser-sync-settings-ManageSyncSettings.java.patch
@@ -1,17 +1,17 @@
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/sync/settings/ManageSyncSettings.java b/chrome/android/java/src/org/chromium/chrome/browser/sync/settings/ManageSyncSettings.java
-index 52eada8fc86ca4e66c0b55806d0afa235a5d317a..13fcfe8cbeb34661f01a6db001aef3e7b17cbca2 100644
+index 1f6d053509c9f767d418025ddcbf6d1a9d65849a..14f7724ce393787c633bdf9712bfa6cc288c6ed2 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/sync/settings/ManageSyncSettings.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/sync/settings/ManageSyncSettings.java
-@@ -54,7 +54,7 @@ import org.chromium.chrome.browser.sync.ui.PassphraseTypeDialogFragment;
- import org.chromium.chrome.browser.ui.messages.snackbar.SnackbarManager;
- import org.chromium.chrome.browser.ui.signin.SignOutCoordinator;
+@@ -57,7 +57,7 @@ import org.chromium.chrome.browser.ui.signin.SignOutCoordinator;
import org.chromium.chrome.browser.ui.signin.SigninUtils;
+ import org.chromium.chrome.browser.ui.signin.SignoutButtonPreference;
+ import org.chromium.chrome.browser.ui.signin.history_sync.HistorySyncHelper;
-import org.chromium.components.browser_ui.settings.ChromeBaseCheckBoxPreference;
+import org.chromium.components.browser_ui.settings.brave_tricks.checkbox_to_switch.ChromeBaseCheckBoxPreference;
+ import org.chromium.components.browser_ui.settings.ChromeBasePreference;
import org.chromium.components.browser_ui.settings.ChromeSwitchPreference;
import org.chromium.components.browser_ui.settings.FragmentSettingsLauncher;
- import org.chromium.components.browser_ui.settings.SettingsLauncher;
-@@ -478,7 +478,7 @@ public class ManageSyncSettings extends ChromeBaseSettingsFragment
+@@ -597,7 +597,7 @@ public class ManageSyncSettings extends ChromeBaseSettingsFragment
? ConsentLevel.SIGNIN
: ConsentLevel.SYNC));
// May happen if account is removed from the device while this screen is shown.
diff --git a/patches/chrome-android-java-src-org-chromium-chrome-browser-tabbed_mode-TabbedRootUiCoordinator.java.patch b/patches/chrome-android-java-src-org-chromium-chrome-browser-tabbed_mode-TabbedRootUiCoordinator.java.patch
index b1e44cc922b0..0e45a547cc2f 100644
--- a/patches/chrome-android-java-src-org-chromium-chrome-browser-tabbed_mode-TabbedRootUiCoordinator.java.patch
+++ b/patches/chrome-android-java-src-org-chromium-chrome-browser-tabbed_mode-TabbedRootUiCoordinator.java.patch
@@ -1,8 +1,8 @@
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java b/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java
-index 8881c749bfab4e8e5d76f0b0c9d71cccb7a4c1c9..6f9e5aff0703c54847789693dbe8f815670dd81f 100644
+index f6c5109fe4092364981569ce05cfd06f4893757e..688ca448af7a4a984da3b1b2fe8af7cf2aa32521 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java
-@@ -942,7 +942,7 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator {
+@@ -959,7 +959,7 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator {
NotificationPermissionController.attach(
mWindowAndroid, mNotificationPermissionController);
diff --git a/patches/chrome-browser-BUILD.gn.patch b/patches/chrome-browser-BUILD.gn.patch
index f314a8e46d64..f5900e18d699 100644
--- a/patches/chrome-browser-BUILD.gn.patch
+++ b/patches/chrome-browser-BUILD.gn.patch
@@ -1,8 +1,8 @@
diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn
-index 0be27cd41b86673d7c8a4a8d7211a19ad8c8e36c..2d40fda368c8f4c8704fd9b62a4668023ae4a2e3 100644
+index 26c825186ad85470300150261d978a713dee0cd5..6c18179f146a512f5ace99078a49f85b31c8ee1a 100644
--- a/chrome/browser/BUILD.gn
+++ b/chrome/browser/BUILD.gn
-@@ -2787,6 +2787,7 @@ static_library("browser") {
+@@ -2767,6 +2767,7 @@ static_library("browser") {
"performance_monitor/metric_evaluator_helper_posix.h",
]
}
diff --git a/patches/chrome-browser-about_flags.cc.patch b/patches/chrome-browser-about_flags.cc.patch
index fd3c0422ade4..50cac17db6e3 100644
--- a/patches/chrome-browser-about_flags.cc.patch
+++ b/patches/chrome-browser-about_flags.cc.patch
@@ -1,8 +1,8 @@
diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
-index 3cc3abde578285c72e6934750470af452d9ffd94..3afb103c88588b262f3650ef0c4e0575d8c000bc 100644
+index 3a319aaf367ce3026c8df2029b9c6a3b1c699ec3..b74b2457f932c7d1fcb14c552a1f5eb3f44a26a5 100644
--- a/chrome/browser/about_flags.cc
+++ b/chrome/browser/about_flags.cc
-@@ -3852,6 +3852,7 @@ const FeatureEntry::FeatureVariation kComposeProactiveNudgeVariations[] = {
+@@ -4061,6 +4061,7 @@ const FeatureEntry::FeatureVariation kAutofillUpstreamUpdatedUiOptions[] = {
//
// When adding a new choice, add it to the end of the list.
const FeatureEntry kFeatureEntries[] = {
@@ -10,7 +10,7 @@ index 3cc3abde578285c72e6934750470af452d9ffd94..3afb103c88588b262f3650ef0c4e0575
// Include generated flags for flag unexpiry; see //docs/flag_expiry.md and
// //tools/flags/generate_unexpire_flags.py.
#include "build/chromeos_buildflags.h"
-@@ -11434,6 +11435,7 @@ void GetStorage(Profile* profile, GetStorageCallback callback) {
+@@ -11808,6 +11809,7 @@ void GetStorage(Profile* profile, GetStorageCallback callback) {
bool ShouldSkipConditionalFeatureEntry(const flags_ui::FlagsStorage* storage,
const FeatureEntry& entry) {
diff --git a/patches/chrome-browser-android-browsing_data-browsing_data_bridge.cc.patch b/patches/chrome-browser-android-browsing_data-browsing_data_bridge.cc.patch
index 94e29c935805..80863f73deea 100644
--- a/patches/chrome-browser-android-browsing_data-browsing_data_bridge.cc.patch
+++ b/patches/chrome-browser-android-browsing_data-browsing_data_bridge.cc.patch
@@ -1,12 +1,12 @@
diff --git a/chrome/browser/android/browsing_data/browsing_data_bridge.cc b/chrome/browser/android/browsing_data/browsing_data_bridge.cc
-index d012b7aa4005fccdae4aead7cce19ecbddfb39fa..3bce34446f3251f8af8e928319eaef29982dd282 100644
+index b9ca5b3b7c48ae9c2c386b9e01e9dd74429b375b..7a092cbaf0950abe964e5942434268bad5408666 100644
--- a/chrome/browser/android/browsing_data/browsing_data_bridge.cc
+++ b/chrome/browser/android/browsing_data/browsing_data_bridge.cc
-@@ -131,6 +131,7 @@ static void JNI_BrowsingDataBridge_ClearBrowsingData(
+@@ -133,6 +133,7 @@ static void JNI_BrowsingDataBridge_ClearBrowsingData(
remove_mask |= chrome_browsing_data_remover::DATA_TYPE_CONTENT_SETTINGS;
break;
case browsing_data::BrowsingDataType::DOWNLOADS:
+ BRAVE_CLEAR_BROWSING_DATA
case browsing_data::BrowsingDataType::HOSTED_APPS_DATA:
// Only implemented on Desktop.
- NOTREACHED();
+ NOTREACHED_IN_MIGRATION();
diff --git a/patches/chrome-browser-app_controller_mac.mm.patch b/patches/chrome-browser-app_controller_mac.mm.patch
index 1c61686d69a4..12a82949d58a 100644
--- a/patches/chrome-browser-app_controller_mac.mm.patch
+++ b/patches/chrome-browser-app_controller_mac.mm.patch
@@ -1,5 +1,5 @@
diff --git a/chrome/browser/app_controller_mac.mm b/chrome/browser/app_controller_mac.mm
-index 69020090d2cd79935563e6737704953f760c9a7c..de91658cecdcdbfeb806d51ccc358cdbda03152b 100644
+index e9bba802bc9cc25ee5d76758866f7908d7c326fd..c49fb38e9cbd6464911c31c3d32a8fe53e8e07d7 100644
--- a/chrome/browser/app_controller_mac.mm
+++ b/chrome/browser/app_controller_mac.mm
@@ -740,7 +740,7 @@ class AppControllerNativeThemeObserver : public ui::NativeThemeObserver {
diff --git a/patches/chrome-browser-browsing_data-chrome_browsing_data_remover_delegate.cc.patch b/patches/chrome-browser-browsing_data-chrome_browsing_data_remover_delegate.cc.patch
index 5199f3f150fa..3c13c20a8b44 100644
--- a/patches/chrome-browser-browsing_data-chrome_browsing_data_remover_delegate.cc.patch
+++ b/patches/chrome-browser-browsing_data-chrome_browsing_data_remover_delegate.cc.patch
@@ -1,8 +1,8 @@
diff --git a/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.cc b/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.cc
-index 9059ada82d046d43b5d5d2b7b5d9ed6369fb04b3..d884d60425a3b54bcbc3fcb615184467b125ad52 100644
+index 0c1a8f5ffe75d3e2c9581aaba2d2a7cc492eef75..d18a1dea4eb992ef175b51167e1ca1b779480c29 100644
--- a/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.cc
+++ b/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.cc
-@@ -1557,6 +1557,7 @@ const char* ChromeBrowsingDataRemoverDelegate::GetHistogramSuffix(
+@@ -1571,6 +1571,7 @@ const char* ChromeBrowsingDataRemoverDelegate::GetHistogramSuffix(
return "WebrtcVideoPerfHistory";
case TracingDataType::kMediaDeviceSalts:
return "MediaDeviceSalts";
diff --git a/patches/chrome-browser-browsing_data-chrome_browsing_data_remover_delegate.h.patch b/patches/chrome-browser-browsing_data-chrome_browsing_data_remover_delegate.h.patch
index ef2e5d308f74..08a62aaddfc3 100644
--- a/patches/chrome-browser-browsing_data-chrome_browsing_data_remover_delegate.h.patch
+++ b/patches/chrome-browser-browsing_data-chrome_browsing_data_remover_delegate.h.patch
@@ -1,5 +1,5 @@
diff --git a/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.h b/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.h
-index cffe328e0303ce8c0bb6ad94ef80331c172acd99..591d95199b6288f75ac94011b5e819d12f2242a2 100644
+index e9e83637f2a462ef7ddb502f854e8dc7770eaa4c..cd474d6e8e9a45a6b6eca6fa72c65443281272d7 100644
--- a/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.h
+++ b/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.h
@@ -95,6 +95,7 @@ class ChromeBrowsingDataRemoverDelegate
diff --git a/patches/chrome-browser-download-download_target_determiner.cc.patch b/patches/chrome-browser-download-download_target_determiner.cc.patch
index fc90818f5b00..4a97106da0fe 100644
--- a/patches/chrome-browser-download-download_target_determiner.cc.patch
+++ b/patches/chrome-browser-download-download_target_determiner.cc.patch
@@ -1,8 +1,8 @@
diff --git a/chrome/browser/download/download_target_determiner.cc b/chrome/browser/download/download_target_determiner.cc
-index a2bff43f3a1a4989abb9425e3cc39966c3962f42..3a845c2ba6c31ab4ce9040ae549bbfa4703dd397 100644
+index f35ad7241938d59dc5fba415015469f6d1b531c8..b6d54b07e339610e73e9f988005be958893b5771 100644
--- a/chrome/browser/download/download_target_determiner.cc
+++ b/chrome/browser/download/download_target_determiner.cc
-@@ -1274,6 +1274,7 @@ DownloadFileType::DangerLevel DownloadTargetDeterminer::GetDangerLevel(
+@@ -1275,6 +1275,7 @@ DownloadFileType::DangerLevel DownloadTargetDeterminer::GetDangerLevel(
download_->GetDownloadSource() != download::DownloadSource::DRAG_AND_DROP;
if (HasPromptedForPath() ||
confirmation_reason_ != DownloadConfirmationReason::NONE ||
@@ -10,7 +10,7 @@ index a2bff43f3a1a4989abb9425e3cc39966c3962f42..3a845c2ba6c31ab4ce9040ae549bbfa4
user_approved_path) {
return DownloadFileType::NOT_DANGEROUS;
}
-@@ -1313,6 +1314,7 @@ DownloadFileType::DangerLevel DownloadTargetDeterminer::GetDangerLevel(
+@@ -1314,6 +1315,7 @@ DownloadFileType::DangerLevel DownloadTargetDeterminer::GetDangerLevel(
ui::PAGE_TRANSITION_FROM_ADDRESS_BAR) != 0 ||
(download_->HasUserGesture() && visits == VISITED_REFERRER)))
return DownloadFileType::NOT_DANGEROUS;
diff --git a/patches/chrome-browser-extensions-BUILD.gn.patch b/patches/chrome-browser-extensions-BUILD.gn.patch
index be9846278ea3..620a87378ea8 100644
--- a/patches/chrome-browser-extensions-BUILD.gn.patch
+++ b/patches/chrome-browser-extensions-BUILD.gn.patch
@@ -1,8 +1,8 @@
diff --git a/chrome/browser/extensions/BUILD.gn b/chrome/browser/extensions/BUILD.gn
-index c5f86222760c8fc7653f9d6a18be37f93b45a3a4..11d693e0a77a8d645b6441e8ecf878303f994ee6 100644
+index 0814899d6f2b8d2c6d5d27c80357180dee7fd583..6665a0ad725cc507ac7fa89f7f27e4d7e6a0401a 100644
--- a/chrome/browser/extensions/BUILD.gn
+++ b/chrome/browser/extensions/BUILD.gn
-@@ -1444,6 +1444,7 @@ static_library("extensions") {
+@@ -1462,6 +1462,7 @@ source_set("extensions") {
"//components/enterprise/data_controls",
]
}
diff --git a/patches/chrome-browser-extensions-api-developer_private-extension_info_generator.cc.patch b/patches/chrome-browser-extensions-api-developer_private-extension_info_generator.cc.patch
index 0c79df8b7fb1..9068dee644ba 100644
--- a/patches/chrome-browser-extensions-api-developer_private-extension_info_generator.cc.patch
+++ b/patches/chrome-browser-extensions-api-developer_private-extension_info_generator.cc.patch
@@ -1,5 +1,5 @@
diff --git a/chrome/browser/extensions/api/developer_private/extension_info_generator.cc b/chrome/browser/extensions/api/developer_private/extension_info_generator.cc
-index 99ec9cd235c160e8b7ee91d6674281fa85a19f54..2b4413d8f7eb3ee6401cef4bef27c5c17a4dbaef 100644
+index ccc491bd65fcd9b3a3abd172a76e047e6e8ba506..2d85a7c44d37ba8ee4d69620403ffce7d352601d 100644
--- a/chrome/browser/extensions/api/developer_private/extension_info_generator.cc
+++ b/chrome/browser/extensions/api/developer_private/extension_info_generator.cc
@@ -809,6 +809,7 @@ void ExtensionInfoGenerator::CreateExtensionInfoHelper(
diff --git a/patches/chrome-browser-extensions-api-identity-identity_get_auth_token_function.cc.patch b/patches/chrome-browser-extensions-api-identity-identity_get_auth_token_function.cc.patch
index 80ddcc915bc9..34e8a6bd7104 100644
--- a/patches/chrome-browser-extensions-api-identity-identity_get_auth_token_function.cc.patch
+++ b/patches/chrome-browser-extensions-api-identity-identity_get_auth_token_function.cc.patch
@@ -1,5 +1,5 @@
diff --git a/chrome/browser/extensions/api/identity/identity_get_auth_token_function.cc b/chrome/browser/extensions/api/identity/identity_get_auth_token_function.cc
-index e011d94ba84357df42e54ff5c15f290b1bab3577..cd8b6dc23a620a6bc3a1c166897a846944b045b6 100644
+index 709730878178a351680177eadf0314985643b6b7..3eb13f2ae84a78532c292afec352778c0b93d6cf 100644
--- a/chrome/browser/extensions/api/identity/identity_get_auth_token_function.cc
+++ b/chrome/browser/extensions/api/identity/identity_get_auth_token_function.cc
@@ -172,6 +172,7 @@ ExtensionFunction::ResponseAction IdentityGetAuthTokenFunction::Run() {
diff --git a/patches/chrome-browser-external_protocol-external_protocol_handler.cc.patch b/patches/chrome-browser-external_protocol-external_protocol_handler.cc.patch
index 4f8756c1de12..eb0b2b206905 100644
--- a/patches/chrome-browser-external_protocol-external_protocol_handler.cc.patch
+++ b/patches/chrome-browser-external_protocol-external_protocol_handler.cc.patch
@@ -1,5 +1,5 @@
diff --git a/chrome/browser/external_protocol/external_protocol_handler.cc b/chrome/browser/external_protocol/external_protocol_handler.cc
-index 529a2a537e5271ee89a2b9757da37a5f5ced3772..6e5ba8c9770b5581abddab765a5ed92b5c0319ab 100644
+index 92de40320204953760f6a566219fba33be00eb43..2313cd2f3f836dee681e8200dcabdead2d3cf5d6 100644
--- a/chrome/browser/external_protocol/external_protocol_handler.cc
+++ b/chrome/browser/external_protocol/external_protocol_handler.cc
@@ -367,7 +367,7 @@ ExternalProtocolHandler::BlockState ExternalProtocolHandler::GetBlockState(
diff --git a/patches/chrome-browser-first_run-upgrade_util_win.cc.patch b/patches/chrome-browser-first_run-upgrade_util_win.cc.patch
index 8c9e761b35a3..5debbcd38cfb 100644
--- a/patches/chrome-browser-first_run-upgrade_util_win.cc.patch
+++ b/patches/chrome-browser-first_run-upgrade_util_win.cc.patch
@@ -1,5 +1,5 @@
diff --git a/chrome/browser/first_run/upgrade_util_win.cc b/chrome/browser/first_run/upgrade_util_win.cc
-index a6f742b4263f987d4ee29d465dabf42d7fd8c7a9..e09369814265dd2a101c7a4d709460279e3654dc 100644
+index 40d3b54f622ad37495f6521460d33d698839b4cf..94d8cb3c3ec01de0e354228aaf1e92e37e58cc38 100644
--- a/chrome/browser/first_run/upgrade_util_win.cc
+++ b/chrome/browser/first_run/upgrade_util_win.cc
@@ -46,7 +46,7 @@
diff --git a/patches/chrome-browser-importer-in_process_importer_bridge.cc.patch b/patches/chrome-browser-importer-in_process_importer_bridge.cc.patch
index 8c9133608c5a..a4fe49e6c955 100644
--- a/patches/chrome-browser-importer-in_process_importer_bridge.cc.patch
+++ b/patches/chrome-browser-importer-in_process_importer_bridge.cc.patch
@@ -1,5 +1,5 @@
diff --git a/chrome/browser/importer/in_process_importer_bridge.cc b/chrome/browser/importer/in_process_importer_bridge.cc
-index d337c9bd6a4a60e4d572e62ec4d26cc0b2a34728..045b89a1769d6e90d7258e1d05a8cf856175c860 100644
+index a790dff1dce88b40db1381d0fee32c20cfc1daec..f6295395655a8d0a37143d761f017304e8adc536 100644
--- a/chrome/browser/importer/in_process_importer_bridge.cc
+++ b/chrome/browser/importer/in_process_importer_bridge.cc
@@ -53,6 +53,8 @@ history::VisitSource ConvertImporterVisitSourceToHistoryVisitSource(
@@ -9,5 +9,5 @@ index d337c9bd6a4a60e4d572e62ec4d26cc0b2a34728..045b89a1769d6e90d7258e1d05a8cf85
+ case importer::VISIT_SOURCE_CHROME_IMPORTED:
+ return history::SOURCE_CHROME_IMPORTED;
}
- NOTREACHED();
+ NOTREACHED_IN_MIGRATION();
return history::SOURCE_SYNCED;
diff --git a/patches/chrome-browser-net-profile_network_context_service.cc.patch b/patches/chrome-browser-net-profile_network_context_service.cc.patch
index 9f7317c591e8..f0e949831753 100644
--- a/patches/chrome-browser-net-profile_network_context_service.cc.patch
+++ b/patches/chrome-browser-net-profile_network_context_service.cc.patch
@@ -1,8 +1,8 @@
diff --git a/chrome/browser/net/profile_network_context_service.cc b/chrome/browser/net/profile_network_context_service.cc
-index 627fc56f4f7cffbd15f95c40e7d25119d47bfa27..23435582e5937416b1bde41f062da7fbaa14b073 100644
+index 6a0d1c78df0dfa6ba545d848c3fd2aa273d68b78..cdd3b2a5e972b0f156baf3a7e46750f07132a5b1 100644
--- a/chrome/browser/net/profile_network_context_service.cc
+++ b/chrome/browser/net/profile_network_context_service.cc
-@@ -515,6 +515,7 @@ network::mojom::CTPolicyPtr ProfileNetworkContextService::GetCTPolicy() {
+@@ -498,6 +498,7 @@ network::mojom::CTPolicyPtr ProfileNetworkContextService::GetCTPolicy() {
std::vector excluded_legacy_spkis(
TranslateStringArray(ct_excluded_legacy_spkis));
diff --git a/patches/chrome-browser-net-proxy_config_monitor.cc.patch b/patches/chrome-browser-net-proxy_config_monitor.cc.patch
index 7be02c46a90b..5e0396cd6948 100644
--- a/patches/chrome-browser-net-proxy_config_monitor.cc.patch
+++ b/patches/chrome-browser-net-proxy_config_monitor.cc.patch
@@ -1,5 +1,5 @@
diff --git a/chrome/browser/net/proxy_config_monitor.cc b/chrome/browser/net/proxy_config_monitor.cc
-index c9281f7abfbdeaa4f0d9fe3c199b34fcb5acaf2c..4bd06d22bad8f82a1733eda4b20d290ba498bbe1 100644
+index c2adfa2bd0f79038cb50c69607827aef8fecca59..12b4889f5ad45e2398a753f5163f8dc48a92b007 100644
--- a/chrome/browser/net/proxy_config_monitor.cc
+++ b/chrome/browser/net/proxy_config_monitor.cc
@@ -52,6 +52,7 @@ ProxyConfigMonitor::ProxyConfigMonitor(Profile* profile) {
diff --git a/patches/chrome-browser-net-system_network_context_manager.cc.patch b/patches/chrome-browser-net-system_network_context_manager.cc.patch
index 0023e724b689..7ecaf389c4a3 100644
--- a/patches/chrome-browser-net-system_network_context_manager.cc.patch
+++ b/patches/chrome-browser-net-system_network_context_manager.cc.patch
@@ -1,5 +1,5 @@
diff --git a/chrome/browser/net/system_network_context_manager.cc b/chrome/browser/net/system_network_context_manager.cc
-index cd855d8c1a42809115abc3a08b11a4f2cea83285..943e730821f11a019bb377633e68fe70ada91d09 100644
+index d2acbdc28805c4eb6cc6fbfd4440a511011b7703..1bcc9471cc9049f047922c7f7433cdbe7c6dfb5d 100644
--- a/chrome/browser/net/system_network_context_manager.cc
+++ b/chrome/browser/net/system_network_context_manager.cc
@@ -401,7 +401,7 @@ class SystemNetworkContextManager::URLLoaderFactoryForSystem
diff --git a/patches/chrome-browser-notifications-BUILD.gn.patch b/patches/chrome-browser-notifications-BUILD.gn.patch
index 92c581bf1d24..4d2b07cf154c 100644
--- a/patches/chrome-browser-notifications-BUILD.gn.patch
+++ b/patches/chrome-browser-notifications-BUILD.gn.patch
@@ -1,8 +1,8 @@
diff --git a/chrome/browser/notifications/BUILD.gn b/chrome/browser/notifications/BUILD.gn
-index e52ddcbddd80f7e88eba8c7d117b4ee11ef524b1..ca0afb72525afccf34d41f53312e089f2f3b5893 100644
+index 49db8238010480739add40efd57c06325b1abd0c..537aa8b1a59c2132720d1755b74d7cf8bdbcf061 100644
--- a/chrome/browser/notifications/BUILD.gn
+++ b/chrome/browser/notifications/BUILD.gn
-@@ -83,6 +83,7 @@ if (is_android) {
+@@ -85,6 +85,7 @@ if (is_android) {
"//third_party/jni_zero:jni_zero_java",
"//ui/android:ui_no_recycler_view_java",
]
diff --git a/patches/chrome-browser-prefs-browser_prefs.cc.patch b/patches/chrome-browser-prefs-browser_prefs.cc.patch
index 380787baa980..413f90986d58 100644
--- a/patches/chrome-browser-prefs-browser_prefs.cc.patch
+++ b/patches/chrome-browser-prefs-browser_prefs.cc.patch
@@ -1,18 +1,17 @@
diff --git a/chrome/browser/prefs/browser_prefs.cc b/chrome/browser/prefs/browser_prefs.cc
-index 21f6c6f5edc956c131d198e652330f0b2ef21ac8..411c4c7f8ee95f08567f053fc20d8306e6c15a03 100644
+index f48b25bb957d11fc940c75a4dfea152cd0415667..5103ad90beecbd8bd51ab7e5dc73ee16fe1b28b0 100644
--- a/chrome/browser/prefs/browser_prefs.cc
+++ b/chrome/browser/prefs/browser_prefs.cc
-@@ -1839,6 +1839,8 @@ void RegisterLocalState(PrefRegistrySimple* registry) {
- DeviceOAuth2TokenStoreDesktop::RegisterPrefs(registry);
+@@ -1960,6 +1960,7 @@ void RegisterLocalState(PrefRegistrySimple* registry) {
#endif
+ // This is intentionally last.
+ brave::RegisterLocalStatePrefs(registry);
-+
- #if BUILDFLAG(ENABLE_SCREEN_AI_SERVICE)
- screen_ai::RegisterLocalStatePrefs(registry);
- #endif // BUILDFLAG(ENABLE_SCREEN_AI_SERVICE)
-@@ -2316,6 +2318,7 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry,
- false);
+ RegisterLocalStatePrefsForMigration(registry);
+ }
+
+@@ -2401,6 +2402,7 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry,
+ #endif
registry->RegisterIntegerPref(prefs::kLensOverlayStartCount, 0);
+ brave::RegisterProfilePrefs(registry);
diff --git a/patches/chrome-browser-profiles-profile.cc.patch b/patches/chrome-browser-profiles-profile.cc.patch
index f1d45b24e4c8..99a67f163d56 100644
--- a/patches/chrome-browser-profiles-profile.cc.patch
+++ b/patches/chrome-browser-profiles-profile.cc.patch
@@ -1,5 +1,5 @@
diff --git a/chrome/browser/profiles/profile.cc b/chrome/browser/profiles/profile.cc
-index a9762d47c397da91ec0c1ee4e91a8d4f75ea862b..8e9feab9d3f29e2434c7f6442c4a2de291bb859a 100644
+index cd4fd8104866c701ad234a6b857ab42f2ad0037a..479c434d5b4f14a53421c995d9614599e50a66ae 100644
--- a/chrome/browser/profiles/profile.cc
+++ b/chrome/browser/profiles/profile.cc
@@ -111,6 +111,7 @@ bool Profile::OTRProfileID::AllowsBrowserWindows() const {
diff --git a/patches/chrome-browser-profiles-profile_avatar_icon_util.cc.patch b/patches/chrome-browser-profiles-profile_avatar_icon_util.cc.patch
index 7126b31b95bc..ed477acd28e5 100644
--- a/patches/chrome-browser-profiles-profile_avatar_icon_util.cc.patch
+++ b/patches/chrome-browser-profiles-profile_avatar_icon_util.cc.patch
@@ -1,5 +1,5 @@
diff --git a/chrome/browser/profiles/profile_avatar_icon_util.cc b/chrome/browser/profiles/profile_avatar_icon_util.cc
-index 994a11a675955b392cd7ba8d3ec0838783c31b5b..8e1e5e93f7de625376e485587545ee43e80fbff3 100644
+index 0958ec93737be9a6e9696631c7bd867652842b2f..7d0bf900c0526906b2ab8f03203f1e15b0e2990b 100644
--- a/chrome/browser/profiles/profile_avatar_icon_util.cc
+++ b/chrome/browser/profiles/profile_avatar_icon_util.cc
@@ -277,7 +277,7 @@ constexpr size_t kDefaultAvatarIconsCount = 1;
@@ -11,7 +11,7 @@ index 994a11a675955b392cd7ba8d3ec0838783c31b5b..8e1e5e93f7de625376e485587545ee43
#endif
#if !BUILDFLAG(IS_ANDROID)
-@@ -379,6 +379,7 @@ size_t GetPlaceholderAvatarIndex() {
+@@ -378,6 +378,7 @@ size_t GetPlaceholderAvatarIndex() {
size_t GetModernAvatarIconStartIndex() {
#if !BUILDFLAG(IS_CHROMEOS_ASH) && !BUILDFLAG(IS_ANDROID)
@@ -19,7 +19,7 @@ index 994a11a675955b392cd7ba8d3ec0838783c31b5b..8e1e5e93f7de625376e485587545ee43
return GetPlaceholderAvatarIndex() + 1;
#else
// Only use the placeholder avatar on ChromeOS and Android.
-@@ -412,6 +413,7 @@ std::string GetPlaceholderAvatarIconUrl() {
+@@ -411,6 +412,7 @@ std::string GetPlaceholderAvatarIconUrl() {
const IconResourceInfo* GetDefaultAvatarIconResourceInfo(size_t index) {
CHECK_LT(index, kDefaultAvatarIconsCount);
@@ -27,7 +27,7 @@ index 994a11a675955b392cd7ba8d3ec0838783c31b5b..8e1e5e93f7de625376e485587545ee43
static const IconResourceInfo resource_info[kDefaultAvatarIconsCount] = {
// Old avatar icons:
#if !BUILDFLAG(IS_ANDROID)
-@@ -676,6 +678,7 @@ base::Value::List GetIconsAndLabelsForProfileAvatarSelector(
+@@ -675,6 +677,7 @@ base::Value::List GetIconsAndLabelsForProfileAvatarSelector(
selected_avatar_idx == GetPlaceholderAvatarIndex());
avatars.Insert(avatars.begin(),
base::Value(std::move(generic_avatar_info)));
diff --git a/patches/chrome-browser-renderer_context_menu-render_view_context_menu.cc.patch b/patches/chrome-browser-renderer_context_menu-render_view_context_menu.cc.patch
index 898901f7f6c7..d4cf7692a61b 100644
--- a/patches/chrome-browser-renderer_context_menu-render_view_context_menu.cc.patch
+++ b/patches/chrome-browser-renderer_context_menu-render_view_context_menu.cc.patch
@@ -1,11 +1,11 @@
diff --git a/chrome/browser/renderer_context_menu/render_view_context_menu.cc b/chrome/browser/renderer_context_menu/render_view_context_menu.cc
-index de0d60b2484140042444981759fd89f3ee615c02..6f156cda4bf9cba53742263854ff2c84f54a85ff 100644
+index b3908e6711f3e0df3a00b09dc886b9c77b2f9b7a..675f93aa264e2d0fdfa6b816026588f501b99b9b 100644
--- a/chrome/browser/renderer_context_menu/render_view_context_menu.cc
+++ b/chrome/browser/renderer_context_menu/render_view_context_menu.cc
-@@ -2357,6 +2357,7 @@ void RenderViewContextMenu::AppendSearchProvider() {
- selection_navigation_url_ = match.destination_url;
- if (!selection_navigation_url_.is_valid())
+@@ -2365,6 +2365,7 @@ void RenderViewContextMenu::AppendSearchProvider() {
+ if (!selection_navigation_url_.is_valid()) {
return;
+ }
+ BRAVE_APPEND_SEARCH_PROVIDER
std::u16string printable_selection_text = PrintableSelectionText();
diff --git a/patches/chrome-browser-renderer_context_menu-render_view_context_menu.h.patch b/patches/chrome-browser-renderer_context_menu-render_view_context_menu.h.patch
index 79ea21a92fe5..28909eab2656 100644
--- a/patches/chrome-browser-renderer_context_menu-render_view_context_menu.h.patch
+++ b/patches/chrome-browser-renderer_context_menu-render_view_context_menu.h.patch
@@ -1,8 +1,8 @@
diff --git a/chrome/browser/renderer_context_menu/render_view_context_menu.h b/chrome/browser/renderer_context_menu/render_view_context_menu.h
-index d9f97fbdced5389e00272e2b3d15f628663249aa..e4fbbd8cc72b467186c8e76c9f2a229ec79badde 100644
+index 8f0e62fe84ff2ec793489cb0ebb9c12b3fa7f892..d3076eed66c7ed04f7847505e83b46a5cdc9a4b5 100644
--- a/chrome/browser/renderer_context_menu/render_view_context_menu.h
+++ b/chrome/browser/renderer_context_menu/render_view_context_menu.h
-@@ -202,6 +202,7 @@ class RenderViewContextMenu
+@@ -198,6 +198,7 @@ class RenderViewContextMenu
// Returns true if keyboard lock is active and requires the user to press and
// hold escape to exit exclusive access mode.
bool IsPressAndHoldEscRequiredToExitFullscreen() const;
diff --git a/patches/chrome-browser-resources-history-BUILD.gn.patch b/patches/chrome-browser-resources-history-BUILD.gn.patch
index 7689a48c4514..2fb09a546852 100644
--- a/patches/chrome-browser-resources-history-BUILD.gn.patch
+++ b/patches/chrome-browser-resources-history-BUILD.gn.patch
@@ -1,8 +1,8 @@
diff --git a/chrome/browser/resources/history/BUILD.gn b/chrome/browser/resources/history/BUILD.gn
-index ee86459535346b93884e8b02607f80c340a582b1..cba67ce87f4577568b84d9fbcb74a6e786a61860 100644
+index a56f9a8821042064d6a5df4f5fc8cab1319baf59..abf2b07c69765d3f2d2ce8f7c851b6e218d0f747 100644
--- a/chrome/browser/resources/history/BUILD.gn
+++ b/chrome/browser/resources/history/BUILD.gn
-@@ -74,4 +74,5 @@ build_webui("build") {
+@@ -82,4 +82,5 @@ build_webui("build") {
"lazy_load.js",
]
}
diff --git a/patches/chrome-browser-resources-history-history.ts.patch b/patches/chrome-browser-resources-history-history.ts.patch
index 77c0b039d5b2..b0b8c1d8a300 100644
--- a/patches/chrome-browser-resources-history-history.ts.patch
+++ b/patches/chrome-browser-resources-history-history.ts.patch
@@ -1,5 +1,5 @@
diff --git a/chrome/browser/resources/history/history.ts b/chrome/browser/resources/history/history.ts
-index 969c4cbe93df90f3b15b18c529c4e1306af129ed..6c50f0c196dbc2fc5ae12c17657a066626b37e4a 100644
+index 4d26b67d7c52330fd6f3bab1d7e66d1a0b14c4d8..470b62456b61c51f4ca7c012cb9bc5db43fa8b3d 100644
--- a/chrome/browser/resources/history/history.ts
+++ b/chrome/browser/resources/history/history.ts
@@ -2,6 +2,7 @@
@@ -9,4 +9,4 @@ index 969c4cbe93df90f3b15b18c529c4e1306af129ed..6c50f0c196dbc2fc5ae12c17657a0666
+import './brave_overrides/index.js';
import './app.js';
- export {BrowserProxyImpl} from 'chrome://resources/cr_components/history_clusters/browser_proxy.js';
+ export {BrowserProxyImpl as ShoppingBrowserProxyImpl} from 'chrome://resources/cr_components/commerce/browser_proxy.js';
diff --git a/patches/chrome-browser-resources-history-history_item.html.patch b/patches/chrome-browser-resources-history-history_item.html.patch
index b4b38fb5cab6..8b6835f0c5b7 100644
--- a/patches/chrome-browser-resources-history-history_item.html.patch
+++ b/patches/chrome-browser-resources-history-history_item.html.patch
@@ -1,5 +1,5 @@
diff --git a/chrome/browser/resources/history/history_item.html b/chrome/browser/resources/history/history_item.html
-index 1fd97b3cd7d042f8f55781c0546a5bca1cf5a091..fbec3455c06e8c65db7c2d469ed5638096673c4e 100644
+index 4c1acc2aa84df35224d782bd6510eb85d8fbcbdd..fcccdda53d83604b60bb70c5aa5ec32f8cdb37b2 100644
--- a/chrome/browser/resources/history/history_item.html
+++ b/chrome/browser/resources/history/history_item.html
@@ -1,4 +1,4 @@
diff --git a/patches/chrome-browser-resources-history-history_item.ts.patch b/patches/chrome-browser-resources-history-history_item.ts.patch
index 385c45f1fc16..aac7d0c50246 100644
--- a/patches/chrome-browser-resources-history-history_item.ts.patch
+++ b/patches/chrome-browser-resources-history-history_item.ts.patch
@@ -1,8 +1,8 @@
diff --git a/chrome/browser/resources/history/history_item.ts b/chrome/browser/resources/history/history_item.ts
-index c1c2c47ea7dc481fd7b1b77ddc2a1605b1cf57d0..2d09d23d5cf7bd83cfe9d65ac8b628e2574d216a 100644
+index 0279d744c9513d40d56a3a7e6f21aee3bd90d90f..585f252a5c8d516ae5eef4368431f088e4ebfc65 100644
--- a/chrome/browser/resources/history/history_item.ts
+++ b/chrome/browser/resources/history/history_item.ts
-@@ -9,6 +9,7 @@ import 'chrome://resources/cr_elements/cr_icons.css.js';
+@@ -10,6 +10,7 @@ import 'chrome://resources/cr_elements/cr_icons.css.js';
import 'chrome://resources/cr_elements/cr_shared_vars.css.js';
import 'chrome://resources/js/icon.js';
import 'chrome://resources/polymer/v3_0/iron-icon/iron-icon.js';
diff --git a/patches/chrome-browser-resources-history-shared_style.css.patch b/patches/chrome-browser-resources-history-shared_style.css.patch
index bc6a1dec8b66..bbf1d83001d2 100644
--- a/patches/chrome-browser-resources-history-shared_style.css.patch
+++ b/patches/chrome-browser-resources-history-shared_style.css.patch
@@ -1,5 +1,5 @@
diff --git a/chrome/browser/resources/history/shared_style.css b/chrome/browser/resources/history/shared_style.css
-index 12398fbab88c139f6e4a211d18ae8c7119512676..37487dc865a4733aad5e616e98fdfa52c722d0f1 100644
+index 5db7e1351e8e9f28e85bd26d26683718db58eeeb..ee1bd0150987feac40f2dc75804654b9d1381b2d 100644
--- a/chrome/browser/resources/history/shared_style.css
+++ b/chrome/browser/resources/history/shared_style.css
@@ -7,7 +7,7 @@
diff --git a/patches/chrome-browser-resources-password_manager-BUILD.gn.patch b/patches/chrome-browser-resources-password_manager-BUILD.gn.patch
index 111a4dd017c2..5491cec86ab3 100644
--- a/patches/chrome-browser-resources-password_manager-BUILD.gn.patch
+++ b/patches/chrome-browser-resources-password_manager-BUILD.gn.patch
@@ -1,8 +1,8 @@
diff --git a/chrome/browser/resources/password_manager/BUILD.gn b/chrome/browser/resources/password_manager/BUILD.gn
-index fb0b4221bc5f6de913c68f2f897d4c3a1ccbdd7b..66f1437eaeb7c5924ed4d9b200b3fbc0e6566182 100644
+index d240570c0690c631badef826c50dcab88ceea61b..9c812405aa244fbb552ed442f550ad7d45dae32e 100644
--- a/chrome/browser/resources/password_manager/BUILD.gn
+++ b/chrome/browser/resources/password_manager/BUILD.gn
-@@ -147,4 +147,5 @@ build_webui("build") {
+@@ -148,4 +148,5 @@ build_webui("build") {
"$root_gen_dir/chrome/browser/resources/settings_shared/tsc",
root_build_dir) ]
}
diff --git a/patches/chrome-browser-resources-password_manager-password_manager.ts.patch b/patches/chrome-browser-resources-password_manager-password_manager.ts.patch
index cf6f76777074..20aae88012da 100644
--- a/patches/chrome-browser-resources-password_manager-password_manager.ts.patch
+++ b/patches/chrome-browser-resources-password_manager-password_manager.ts.patch
@@ -1,5 +1,5 @@
diff --git a/chrome/browser/resources/password_manager/password_manager.ts b/chrome/browser/resources/password_manager/password_manager.ts
-index 758bdfa2addbf9a06c8e4efd4f930e71a79f01e8..1ecd2d300bcf94e333f23a74489d25ed672d8b12 100644
+index 75cc76b96c41057322729a603b95bcf8c7f64814..fb0aa89966e1bdb0f6bee4b0f9f9c5d429397f34 100644
--- a/chrome/browser/resources/password_manager/password_manager.ts
+++ b/chrome/browser/resources/password_manager/password_manager.ts
@@ -2,6 +2,7 @@
diff --git a/patches/chrome-browser-resources-settings-BUILD.gn.patch b/patches/chrome-browser-resources-settings-BUILD.gn.patch
index d1cf7a654ec4..2098d4754418 100644
--- a/patches/chrome-browser-resources-settings-BUILD.gn.patch
+++ b/patches/chrome-browser-resources-settings-BUILD.gn.patch
@@ -1,8 +1,8 @@
diff --git a/chrome/browser/resources/settings/BUILD.gn b/chrome/browser/resources/settings/BUILD.gn
-index c9bf75334f53426d40cbb58405dd431508c057b7..011b11a6d07cfdf2b2da3976a253ccb07078fc24 100644
+index db5e35573b3caf0decb9aadb82571ac0ca1afbbe..c559668467efc92af3cc370973d4797fb7360686 100644
--- a/chrome/browser/resources/settings/BUILD.gn
+++ b/chrome/browser/resources/settings/BUILD.gn
-@@ -459,4 +459,5 @@ build_webui("build") {
+@@ -461,4 +461,5 @@ build_webui("build") {
"$root_gen_dir/chrome/browser/resources/settings_shared/tsc",
root_build_dir) ]
}
diff --git a/patches/chrome-browser-resources-settings-privacy_page-personalization_options.html.patch b/patches/chrome-browser-resources-settings-privacy_page-personalization_options.html.patch
index ebdcfba71ff3..a8590ac6dadf 100644
--- a/patches/chrome-browser-resources-settings-privacy_page-personalization_options.html.patch
+++ b/patches/chrome-browser-resources-settings-privacy_page-personalization_options.html.patch
@@ -1,17 +1,17 @@
diff --git a/chrome/browser/resources/settings/privacy_page/personalization_options.html b/chrome/browser/resources/settings/privacy_page/personalization_options.html
-index ed19f421048bc8618c5e0624e290f859d1b79bde..e502d0f0300ee06aedf52da2332756527a9cadb2 100644
+index 753448a6e816747918970833814f41330949266a..2a4af63436dce81f685b5671cd23f0d6185cb732 100644
--- a/chrome/browser/resources/settings/privacy_page/personalization_options.html
+++ b/chrome/browser/resources/settings/privacy_page/personalization_options.html
-@@ -20,7 +20,7 @@
+@@ -23,7 +23,7 @@
}
-
+
-
@@ -19,7 +19,7 @@ index ed19f421048bc8618c5e0624e290f859d1b79bde..e502d0f0300ee06aedf52da233275652
-@@ -74,6 +75,7 @@
+@@ -75,6 +76,7 @@
on-click="onMetricsReportingLinkClick_" external>
@@ -27,7 +27,7 @@ index ed19f421048bc8618c5e0624e290f859d1b79bde..e502d0f0300ee06aedf52da233275652
@@ -36,15 +36,15 @@ index ed19f421048bc8618c5e0624e290f859d1b79bde..e502d0f0300ee06aedf52da233275652
+@@ -116,6 +118,7 @@
+ on-click="onHistorySearchRowClick_">
+
@@ -52,7 +52,7 @@ index ed19f421048bc8618c5e0624e290f859d1b79bde..e502d0f0300ee06aedf52da233275652
-@@ -174,3 +178,4 @@
+@@ -184,3 +188,4 @@
on-close="onRelaunchDialogClose">
diff --git a/patches/chrome-browser-resources-settings-privacy_page-personalization_options.ts.patch b/patches/chrome-browser-resources-settings-privacy_page-personalization_options.ts.patch
index 70295c42da33..16115b2fc108 100644
--- a/patches/chrome-browser-resources-settings-privacy_page-personalization_options.ts.patch
+++ b/patches/chrome-browser-resources-settings-privacy_page-personalization_options.ts.patch
@@ -1,5 +1,5 @@
diff --git a/chrome/browser/resources/settings/privacy_page/personalization_options.ts b/chrome/browser/resources/settings/privacy_page/personalization_options.ts
-index ca6a2b1814c7cb735e15c161f766caaee34bc4b2..911673f4ba7deed962e40b34240bc8ce2f0a3af9 100644
+index 4d7e0696a6fa232ed4685c1d7b33b367906ddc1d..8627849b53ec9cc04b159ccee708e8564164eeca 100644
--- a/chrome/browser/resources/settings/privacy_page/personalization_options.ts
+++ b/chrome/browser/resources/settings/privacy_page/personalization_options.ts
@@ -91,7 +91,7 @@ export class SettingsPersonalizationOptionsElement extends
@@ -11,7 +11,7 @@ index ca6a2b1814c7cb735e15c161f766caaee34bc4b2..911673f4ba7deed962e40b34240bc8ce
// TODO(dbeam): make a virtual.* pref namespace and set/get this normally
// (but handled differently in C++).
metricsReportingPref_: {
-@@ -145,7 +145,7 @@ export class SettingsPersonalizationOptionsElement extends
+@@ -152,7 +152,7 @@ export class SettingsPersonalizationOptionsElement extends
focusConfig: FocusConfig;
syncStatus: SyncStatus;
@@ -20,7 +20,7 @@ index ca6a2b1814c7cb735e15c161f766caaee34bc4b2..911673f4ba7deed962e40b34240bc8ce
private metricsReportingPref_: chrome.settingsPrivate.PrefObject;
private showRestart_: boolean;
//
-@@ -201,7 +201,7 @@ export class SettingsPersonalizationOptionsElement extends
+@@ -209,7 +209,7 @@ export class SettingsPersonalizationOptionsElement extends
override ready() {
super.ready();
@@ -29,7 +29,7 @@ index ca6a2b1814c7cb735e15c161f766caaee34bc4b2..911673f4ba7deed962e40b34240bc8ce
const setMetricsReportingPref = (metricsReporting: MetricsReporting) =>
this.setMetricsReportingPref_(metricsReporting);
this.addWebUiListener('metrics-reporting-change', setMetricsReportingPref);
-@@ -216,9 +216,11 @@ export class SettingsPersonalizationOptionsElement extends
+@@ -224,9 +224,11 @@ export class SettingsPersonalizationOptionsElement extends
this.setChromeSigninUserChoiceInfo_.bind(this));
//
@@ -41,7 +41,7 @@ index ca6a2b1814c7cb735e15c161f766caaee34bc4b2..911673f4ba7deed962e40b34240bc8ce
}
//
-@@ -247,7 +249,7 @@ export class SettingsPersonalizationOptionsElement extends
+@@ -255,7 +257,7 @@ export class SettingsPersonalizationOptionsElement extends
}
//
diff --git a/patches/chrome-browser-resources-settings-privacy_page-privacy_page.html.patch b/patches/chrome-browser-resources-settings-privacy_page-privacy_page.html.patch
index b6d69e0d0f79..d64e3e3a91b5 100644
--- a/patches/chrome-browser-resources-settings-privacy_page-privacy_page.html.patch
+++ b/patches/chrome-browser-resources-settings-privacy_page-privacy_page.html.patch
@@ -1,5 +1,5 @@
diff --git a/chrome/browser/resources/settings/privacy_page/privacy_page.html b/chrome/browser/resources/settings/privacy_page/privacy_page.html
-index 5c1b8cabc8b6e59c128daceadd6e241ccf5cd026..a1b902af5305d952d3ebc65beb767ff5e528b092 100644
+index 8d955b618bba4bfe027ad3b8093e150c4cd19fe6..eaf3f03e4784c4e1ce095e0fddd76aa40de93cb5 100644
--- a/chrome/browser/resources/settings/privacy_page/privacy_page.html
+++ b/chrome/browser/resources/settings/privacy_page/privacy_page.html
@@ -36,6 +36,7 @@
@@ -10,7 +10,7 @@ index 5c1b8cabc8b6e59c128daceadd6e241ccf5cd026..a1b902af5305d952d3ebc65beb767ff5
@@ -18,7 +18,7 @@ index 5c1b8cabc8b6e59c128daceadd6e241ccf5cd026..a1b902af5305d952d3ebc65beb767ff5
diff --git a/patches/chrome-browser-resources-settings-route.ts.patch b/patches/chrome-browser-resources-settings-route.ts.patch
index d237d31db7e5..b52b297fb900 100644
--- a/patches/chrome-browser-resources-settings-route.ts.patch
+++ b/patches/chrome-browser-resources-settings-route.ts.patch
@@ -1,5 +1,5 @@
diff --git a/chrome/browser/resources/settings/route.ts b/chrome/browser/resources/settings/route.ts
-index c801b3c1d1e9985472aba2f1b4cd98491b45e5ed..550d67ad80d6d2a0864de3564fec8ef7ae6be2a5 100644
+index cb4f445f161cd89a99d3de92bba029950beb7008..1aa657d651e4430b877f5e68c987f739dfd893b9 100644
--- a/chrome/browser/resources/settings/route.ts
+++ b/chrome/browser/resources/settings/route.ts
@@ -9,6 +9,7 @@ import {pageVisibility} from './page_visibility.js';
@@ -10,7 +10,7 @@ index c801b3c1d1e9985472aba2f1b4cd98491b45e5ed..550d67ad80d6d2a0864de3564fec8ef7
/**
* Add all of the child routes that originate from the privacy route,
* regardless of whether the privacy section under basic or advanced.
-@@ -312,6 +313,7 @@ function createRoutes(): SettingsRoutes {
+@@ -309,6 +310,7 @@ function createRoutes(): SettingsRoutes {
}
//
}
diff --git a/patches/chrome-browser-resources-settings-router.ts.patch b/patches/chrome-browser-resources-settings-router.ts.patch
index bb691e6a3702..124f543c7de8 100644
--- a/patches/chrome-browser-resources-settings-router.ts.patch
+++ b/patches/chrome-browser-resources-settings-router.ts.patch
@@ -1,11 +1,11 @@
diff --git a/chrome/browser/resources/settings/router.ts b/chrome/browser/resources/settings/router.ts
-index 259e80e8b6c34618bb5d1372c2760dfdf4aee7e4..147b2081d2a74daedb002004c825fc29ed7d61a9 100644
+index 7e03316d8975291611bb095bd3b87c5133f1e33b..6b604189c90f73f0bdffcfcf05edfc732846093e 100644
--- a/chrome/browser/resources/settings/router.ts
+++ b/chrome/browser/resources/settings/router.ts
-@@ -114,6 +114,7 @@ export interface SettingsRoutes {
- SYSTEM: Route;
- TRACKING_PROTECTION: Route;
- TRIGGERED_RESET_DIALOG: Route;
+@@ -118,6 +118,7 @@ export interface SettingsRoutes {
+ IMPORT_DATA: Route;
+ SIGN_OUT: Route;
+ //
+ GET_STARTED: Route; SHIELDS: Route; SOCIAL_BLOCKING: Route; EXTENSIONS: Route; EXTENSIONS_V2: Route; BRAVE_SYNC: Route; BRAVE_SYNC_SETUP: Route; BRAVE_IPFS: Route; BRAVE_WALLET: Route; BRAVE_WEB3: Route; BRAVE_NEW_TAB: Route; THEMES: Route; BRAVE_SITE_SETTINGS_COOKIES_DETAILS: Route;
}
diff --git a/patches/chrome-browser-resources-settings-settings.ts.patch b/patches/chrome-browser-resources-settings-settings.ts.patch
index 7297d2d187b3..8739e4ac44ec 100644
--- a/patches/chrome-browser-resources-settings-settings.ts.patch
+++ b/patches/chrome-browser-resources-settings-settings.ts.patch
@@ -1,5 +1,5 @@
diff --git a/chrome/browser/resources/settings/settings.ts b/chrome/browser/resources/settings/settings.ts
-index f0ae67b8bd045da33bca2dbbddcaef36dfa5f34e..7abeaaab02f72b0b58d965d130c0c624bb31f729 100644
+index 36f64c682f4c31b10940a2053ae0257486ca68eb..5198d559e3481b2d5d4d58e78e2b154f752db2aa 100644
--- a/chrome/browser/resources/settings/settings.ts
+++ b/chrome/browser/resources/settings/settings.ts
@@ -2,6 +2,7 @@
diff --git a/patches/chrome-browser-resources-settings-site_settings_page-site_settings_page.ts.patch b/patches/chrome-browser-resources-settings-site_settings_page-site_settings_page.ts.patch
index feaeaf22dd89..ae037bb4f59d 100644
--- a/patches/chrome-browser-resources-settings-site_settings_page-site_settings_page.ts.patch
+++ b/patches/chrome-browser-resources-settings-site_settings_page-site_settings_page.ts.patch
@@ -1,5 +1,5 @@
diff --git a/chrome/browser/resources/settings/site_settings_page/site_settings_page.ts b/chrome/browser/resources/settings/site_settings_page/site_settings_page.ts
-index 9df792f1e3bf3ce9f301afed2fb119cbed1f5d8e..38ab64351fbfe37a0299793996e282cede059eb9 100644
+index b721e38741833c4d98e17cada3166bafcaf5295f..c2f64c269ec41356e7d0afae2a0276a6c443ff52 100644
--- a/chrome/browser/resources/settings/site_settings_page/site_settings_page.ts
+++ b/chrome/browser/resources/settings/site_settings_page/site_settings_page.ts
@@ -8,6 +8,7 @@
diff --git a/patches/chrome-browser-resources-side_panel-read_anything-BUILD.gn.patch b/patches/chrome-browser-resources-side_panel-read_anything-BUILD.gn.patch
index a3811d7fdeeb..0192d9eaf102 100644
--- a/patches/chrome-browser-resources-side_panel-read_anything-BUILD.gn.patch
+++ b/patches/chrome-browser-resources-side_panel-read_anything-BUILD.gn.patch
@@ -1,8 +1,8 @@
diff --git a/chrome/browser/resources/side_panel/read_anything/BUILD.gn b/chrome/browser/resources/side_panel/read_anything/BUILD.gn
-index 22549e7de5e3a77c9eb8b0c4a34f54e3fe6a5808..888f315ddf2005e665affd3b89f21d942430af42 100644
+index 2dcca6bf5cf479735fe56440d5bd583a532e7245..946646ce8abb25743d2f043ebde6ffaac99f7f65 100644
--- a/chrome/browser/resources/side_panel/read_anything/BUILD.gn
+++ b/chrome/browser/resources/side_panel/read_anything/BUILD.gn
-@@ -48,7 +48,7 @@ build_webui("build") {
+@@ -49,7 +49,7 @@ build_webui("build") {
target_gen_dir) ]
webui_context_type = "untrusted"
diff --git a/patches/chrome-browser-safe_browsing-download_protection-check_client_download_request_base.cc.patch b/patches/chrome-browser-safe_browsing-download_protection-check_client_download_request_base.cc.patch
index 8c4b1d5db5c8..ca01e6f94308 100644
--- a/patches/chrome-browser-safe_browsing-download_protection-check_client_download_request_base.cc.patch
+++ b/patches/chrome-browser-safe_browsing-download_protection-check_client_download_request_base.cc.patch
@@ -1,8 +1,8 @@
diff --git a/chrome/browser/safe_browsing/download_protection/check_client_download_request_base.cc b/chrome/browser/safe_browsing/download_protection/check_client_download_request_base.cc
-index b90497159805a110557a5c4c31ce2554080a8176..038106093eb4d7f5eb9fa54d8d388e23f4c14254 100644
+index 228e77109ea4b2f96e29bff9b402ac0e999f44d8..533d41a1092115572e7c95bcbf41938ec4f733fe 100644
--- a/chrome/browser/safe_browsing/download_protection/check_client_download_request_base.cc
+++ b/chrome/browser/safe_browsing/download_protection/check_client_download_request_base.cc
-@@ -346,6 +346,7 @@ void CheckClientDownloadRequestBase::OnRequestBuilt(
+@@ -327,6 +327,7 @@ void CheckClientDownloadRequestBase::OnRequestBuilt(
client_download_request_ = std::move(request);
SanitizeRequest();
diff --git a/patches/chrome-browser-signin-account_consistency_mode_manager.cc.patch b/patches/chrome-browser-signin-account_consistency_mode_manager.cc.patch
index 16240b30f8ca..bb455291f548 100644
--- a/patches/chrome-browser-signin-account_consistency_mode_manager.cc.patch
+++ b/patches/chrome-browser-signin-account_consistency_mode_manager.cc.patch
@@ -1,5 +1,5 @@
diff --git a/chrome/browser/signin/account_consistency_mode_manager.cc b/chrome/browser/signin/account_consistency_mode_manager.cc
-index 04a721f164e8569cc3586f591f519095be35f2a8..c4bcb0b9a65c76b1458b267b72a862c2f24f397b 100644
+index acf531439ae2c45f49f26b4cb4eb2244d33b06fd..ebe8fe337dbebfeb5df831d78829a906be2a0bd7 100644
--- a/chrome/browser/signin/account_consistency_mode_manager.cc
+++ b/chrome/browser/signin/account_consistency_mode_manager.cc
@@ -197,6 +197,7 @@ AccountConsistencyModeManager::ComputeAccountConsistencyMethod(
diff --git a/patches/chrome-browser-spellchecker-spellcheck_hunspell_dictionary.cc.patch b/patches/chrome-browser-spellchecker-spellcheck_hunspell_dictionary.cc.patch
index b66a08160ede..08b51a3415b3 100644
--- a/patches/chrome-browser-spellchecker-spellcheck_hunspell_dictionary.cc.patch
+++ b/patches/chrome-browser-spellchecker-spellcheck_hunspell_dictionary.cc.patch
@@ -1,5 +1,5 @@
diff --git a/chrome/browser/spellchecker/spellcheck_hunspell_dictionary.cc b/chrome/browser/spellchecker/spellcheck_hunspell_dictionary.cc
-index 528b6c994e66e2bf5c7652e886a057abe30877e1..380f80dda978619a06e64378cf9676a4baca885a 100644
+index 6ac76182e6a5b51ed164b1068aadb28029c4f6d4..4de0351bb05bf24aa2fea976c3f1e0434cc0a837 100644
--- a/chrome/browser/spellchecker/spellcheck_hunspell_dictionary.cc
+++ b/chrome/browser/spellchecker/spellcheck_hunspell_dictionary.cc
@@ -274,7 +274,7 @@ GURL SpellcheckHunspellDictionary::GetDictionaryURL() {
diff --git a/patches/chrome-browser-sync-sync_service_factory.cc.patch b/patches/chrome-browser-sync-sync_service_factory.cc.patch
index fe2841c05651..4caf561e93c1 100644
--- a/patches/chrome-browser-sync-sync_service_factory.cc.patch
+++ b/patches/chrome-browser-sync-sync_service_factory.cc.patch
@@ -1,8 +1,8 @@
diff --git a/chrome/browser/sync/sync_service_factory.cc b/chrome/browser/sync/sync_service_factory.cc
-index 1aac94a8049e5c9e040dc4c5bc5a1361a8c136f7..b05843e4b357cf89051fb04a476a1bb5e430f705 100644
+index 40630d08d518d695e97ef721f5f293728f61e69b..a8745e54a0b832c0b3916b964093bd10b75f0c8f 100644
--- a/chrome/browser/sync/sync_service_factory.cc
+++ b/chrome/browser/sync/sync_service_factory.cc
-@@ -169,7 +169,7 @@ std::unique_ptr BuildSyncService(
+@@ -171,7 +171,7 @@ std::unique_ptr BuildSyncService(
}
auto sync_service =
diff --git a/patches/chrome-browser-ui-BUILD.gn.patch b/patches/chrome-browser-ui-BUILD.gn.patch
index f77cc685bdb5..159868b5e51c 100644
--- a/patches/chrome-browser-ui-BUILD.gn.patch
+++ b/patches/chrome-browser-ui-BUILD.gn.patch
@@ -1,16 +1,16 @@
diff --git a/chrome/browser/ui/BUILD.gn b/chrome/browser/ui/BUILD.gn
-index f61a369f16ee369af72634c35e146fa4196f1dff..f288874df5308905c622f7ee17fc14dfba16d147 100644
+index 74460ac47921070062237bdbec77a6e5980bc64d..6ed25511180344cc4c50cc6c27135259923f0db9 100644
--- a/chrome/browser/ui/BUILD.gn
+++ b/chrome/browser/ui/BUILD.gn
-@@ -751,6 +751,7 @@ static_library("ui") {
-
- "//chrome/browser/permissions",
+@@ -772,6 +772,7 @@ static_library("ui") {
+ # TODO(crbug.com/344921703): Remove circular dependencies.
+ "//chrome/browser/sync",
]
+ public_deps += [ "//brave/browser/ui" ] allow_circular_includes_from += [ "//brave/browser/ui" ]
if (enable_vr && is_win) {
deps += [ "//chrome/browser/vr:vr_base" ]
-@@ -4767,7 +4768,10 @@ static_library("ui") {
+@@ -4803,7 +4804,10 @@ static_library("ui") {
]
deps += [ "//chrome/updater/app/server/win:updater_legacy_idl" ]
} else {
diff --git a/patches/chrome-browser-ui-actions-chrome_action_id.h.patch b/patches/chrome-browser-ui-actions-chrome_action_id.h.patch
index e564eaeb5a5f..4f50ef60c83d 100644
--- a/patches/chrome-browser-ui-actions-chrome_action_id.h.patch
+++ b/patches/chrome-browser-ui-actions-chrome_action_id.h.patch
@@ -1,8 +1,8 @@
diff --git a/chrome/browser/ui/actions/chrome_action_id.h b/chrome/browser/ui/actions/chrome_action_id.h
-index a986a1eb7ccb1583ff64a619639fd7707e6d3eb2..e32b966675abf2b559176086096ed2783504f1d5 100644
+index 91df18418fa3cd3fafe5667aa7d71f8679f690f8..fdbbf2ed5aaafc3b6b64191edb6e07f8f11ca7f4 100644
--- a/chrome/browser/ui/actions/chrome_action_id.h
+++ b/chrome/browser/ui/actions/chrome_action_id.h
-@@ -547,6 +547,8 @@
+@@ -543,6 +543,8 @@
/* Side Panel items */ \
E(kActionSidePanelShowAboutThisSite) \
E(kActionSidePanelShowAssistant) \
diff --git a/patches/chrome-browser-ui-android-toolbar-BUILD.gn.patch b/patches/chrome-browser-ui-android-toolbar-BUILD.gn.patch
index ddad39b98691..f3556e2c16be 100644
--- a/patches/chrome-browser-ui-android-toolbar-BUILD.gn.patch
+++ b/patches/chrome-browser-ui-android-toolbar-BUILD.gn.patch
@@ -1,8 +1,8 @@
diff --git a/chrome/browser/ui/android/toolbar/BUILD.gn b/chrome/browser/ui/android/toolbar/BUILD.gn
-index 1e23b9e0aad54b7d221fc456e1e8c7ebf8274b4e..792bf51f50bd287730da5b9c7a1140bb3a95fb4d 100644
+index 75e27a6c3b185ee4dbbb6164bef9cc43bfa2251f..8f39b8965d8c459f2f3e6b027e8e1f12c31f7beb 100644
--- a/chrome/browser/ui/android/toolbar/BUILD.gn
+++ b/chrome/browser/ui/android/toolbar/BUILD.gn
-@@ -115,6 +115,7 @@ android_library("java") {
+@@ -114,6 +114,7 @@ android_library("java") {
"java/src/org/chromium/chrome/browser/toolbar/top/ViewShiftingActionBarDelegate.java",
"java/src/org/chromium/chrome/browser/toolbar/top/VisibleUrlText.java",
]
diff --git a/patches/chrome-browser-ui-android-toolbar-java-src-org-chromium-chrome-browser-toolbar-top-ToolbarPhone.java.patch b/patches/chrome-browser-ui-android-toolbar-java-src-org-chromium-chrome-browser-toolbar-top-ToolbarPhone.java.patch
index 1b9c2a265292..cb15ef25d266 100644
--- a/patches/chrome-browser-ui-android-toolbar-java-src-org-chromium-chrome-browser-toolbar-top-ToolbarPhone.java.patch
+++ b/patches/chrome-browser-ui-android-toolbar-java-src-org-chromium-chrome-browser-toolbar-top-ToolbarPhone.java.patch
@@ -1,8 +1,8 @@
diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/ToolbarPhone.java b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/ToolbarPhone.java
-index b6879d6b7717dec155bf50c6ba531bef21c29117..599360363a7a2a21627b56f7867853cdb0ea0a14 100644
+index b1ffa404e405dff3ec523a8100df0cadd1354f6a..ee015d36fdbffb4a3d39016ff86b33243e095209 100644
--- a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/ToolbarPhone.java
+++ b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/ToolbarPhone.java
-@@ -446,6 +446,7 @@ public class ToolbarPhone extends ToolbarLayout
+@@ -451,6 +451,7 @@ public class ToolbarPhone extends ToolbarLayout
if (mOptionalButtonCoordinator != null) {
mOptionalButtonCoordinator.setBackgroundColorFilter(color);
}
@@ -10,7 +10,7 @@ index b6879d6b7717dec155bf50c6ba531bef21c29117..599360363a7a2a21627b56f7867853cd
}
private void updateModernLocationBarCorners() {
-@@ -607,6 +608,7 @@ public class ToolbarPhone extends ToolbarLayout
+@@ -612,6 +613,7 @@ public class ToolbarPhone extends ToolbarLayout
mTrackerSupplier.get().notifyEvent(EventConstants.PARTNER_HOME_PAGE_BUTTON_PRESSED);
}
}
@@ -18,15 +18,15 @@ index b6879d6b7717dec155bf50c6ba531bef21c29117..599360363a7a2a21627b56f7867853cd
}
@Override
-@@ -1100,6 +1102,7 @@ public class ToolbarPhone extends ToolbarLayout
- * New Tab Page.
+@@ -1108,6 +1110,7 @@ public class ToolbarPhone extends ToolbarLayout
+ * Tab Page.
*/
private void updateLocationBarLayoutForExpansionAnimation() {
+ if (!BraveToolbarLayout.class.cast(this).isLocationBarValid(mLocationBar)) return;
TraceEvent.begin("ToolbarPhone.updateLocationBarLayoutForExpansionAnimation");
if (isInTabSwitcherMode()) return;
-@@ -1522,6 +1525,7 @@ public class ToolbarPhone extends ToolbarLayout
+@@ -1531,6 +1534,7 @@ public class ToolbarPhone extends ToolbarLayout
canvas.restore();
}
@@ -34,7 +34,7 @@ index b6879d6b7717dec155bf50c6ba531bef21c29117..599360363a7a2a21627b56f7867853cd
// Draw the tab stack button and associated text if necessary.
if (mTabSwitcherAnimationTabStackDrawable != null
&& mToggleTabStackButton != null
-@@ -2324,6 +2328,7 @@ public class ToolbarPhone extends ToolbarLayout
+@@ -2347,6 +2351,7 @@ public class ToolbarPhone extends ToolbarLayout
} else {
populateUrlClearExpansionAnimatorSet(animators);
}
diff --git a/patches/chrome-browser-ui-android-toolbar-java-src-org-chromium-chrome-browser-toolbar-top-ToolbarTablet.java.patch b/patches/chrome-browser-ui-android-toolbar-java-src-org-chromium-chrome-browser-toolbar-top-ToolbarTablet.java.patch
index 75fbb088ca7a..e071babd3f49 100644
--- a/patches/chrome-browser-ui-android-toolbar-java-src-org-chromium-chrome-browser-toolbar-top-ToolbarTablet.java.patch
+++ b/patches/chrome-browser-ui-android-toolbar-java-src-org-chromium-chrome-browser-toolbar-top-ToolbarTablet.java.patch
@@ -1,5 +1,5 @@
diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/ToolbarTablet.java b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/ToolbarTablet.java
-index fbba4ebbdfc76eb0ad84a74706d25cb975a1f3cf..3864d65cc29df3c6ec79b50bb7ac6d82521d632d 100644
+index 219a731a87d7e98e2c0ea40da98fa712912e2bcf..816d81ad2c66890dc18e4ea1773b0fcfc76bfb10 100644
--- a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/ToolbarTablet.java
+++ b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/ToolbarTablet.java
@@ -412,10 +412,12 @@ public class ToolbarTablet extends ToolbarLayout
@@ -22,4 +22,4 @@ index fbba4ebbdfc76eb0ad84a74706d25cb975a1f3cf..3864d65cc29df3c6ec79b50bb7ac6d82
+ super.onThemeColorChanged(color, shouldAnimate);
// Notify the StatusBarColorController of the toolbar color change. This is to match the
- // status bar's color with the toolbar color when the tab strip is hidden on a tablet when
+ // status bar's color with the toolbar color when the tab strip is hidden on a tablet.
diff --git a/patches/chrome-browser-ui-browser.cc.patch b/patches/chrome-browser-ui-browser.cc.patch
index 24b7bd1304fb..88d72d5ef637 100644
--- a/patches/chrome-browser-ui-browser.cc.patch
+++ b/patches/chrome-browser-ui-browser.cc.patch
@@ -1,8 +1,8 @@
diff --git a/chrome/browser/ui/browser.cc b/chrome/browser/ui/browser.cc
-index f6302e83d3b00676b6ea3476f7d0750a346640f2..c107d4cfc27205a395eb7c5cd7047c37efdc4bdb 100644
+index 4683794bedaa9849da569fb5f362976f45e0fafb..e27832bc9cfe028acc6552adacc69380440babde 100644
--- a/chrome/browser/ui/browser.cc
+++ b/chrome/browser/ui/browser.cc
-@@ -507,6 +507,7 @@ Browser* Browser::Create(const CreateParams& params) {
+@@ -529,6 +529,7 @@ Browser* Browser::Create(const CreateParams& params) {
// not possible, e.g. using the wrong profile or during shutdown. The caller
// should handle this; see e.g. crbug.com/1141608 and crbug.com/1261628.
CHECK_EQ(CreationStatus::kOk, GetCreationStatusForProfile(params.profile));
@@ -10,7 +10,7 @@ index f6302e83d3b00676b6ea3476f7d0750a346640f2..c107d4cfc27205a395eb7c5cd7047c37
return new Browser(params);
}
-@@ -517,7 +518,7 @@ Browser::Browser(const CreateParams& params)
+@@ -539,7 +540,7 @@ Browser::Browser(const CreateParams& params)
window_(nullptr),
tab_strip_model_delegate_(
std::make_unique(this)),
diff --git a/patches/chrome-browser-ui-browser_actions.h.patch b/patches/chrome-browser-ui-browser_actions.h.patch
new file mode 100644
index 000000000000..633d77d3567e
--- /dev/null
+++ b/patches/chrome-browser-ui-browser_actions.h.patch
@@ -0,0 +1,13 @@
+diff --git a/chrome/browser/ui/browser_actions.h b/chrome/browser/ui/browser_actions.h
+index 11bf7f4960907f446267754344ddc7a19ae43a18..64e0c7e880baabda424af66d4176df916d5ebd6c 100644
+--- a/chrome/browser/ui/browser_actions.h
++++ b/chrome/browser/ui/browser_actions.h
+@@ -18,7 +18,7 @@ class BrowserActions {
+ explicit BrowserActions(Browser& browser);
+ BrowserActions(const BrowserActions&) = delete;
+ BrowserActions& operator=(const BrowserActions&) = delete;
+- ~BrowserActions();
++ virtual ~BrowserActions();
+
+ static std::u16string GetCleanTitleAndTooltipText(std::u16string string);
+
diff --git a/patches/chrome-browser-ui-browser_navigator.cc.patch b/patches/chrome-browser-ui-browser_navigator.cc.patch
index 69fc3179c085..e09915f39c0c 100644
--- a/patches/chrome-browser-ui-browser_navigator.cc.patch
+++ b/patches/chrome-browser-ui-browser_navigator.cc.patch
@@ -1,5 +1,5 @@
diff --git a/chrome/browser/ui/browser_navigator.cc b/chrome/browser/ui/browser_navigator.cc
-index 1bf5227d7c25210636f0dca6d4a422f49595a31c..e6d981c0de47cb02546b597a97b1940a5cae1e3b 100644
+index ec2ca0cefeb4aeb7138d96c14808ea46b308e18d..304fcbf5439cc3a926a1130b62622a1176b39572 100644
--- a/chrome/browser/ui/browser_navigator.cc
+++ b/chrome/browser/ui/browser_navigator.cc
@@ -633,6 +633,7 @@ base::WeakPtr Navigate(NavigateParams* params) {
@@ -10,7 +10,7 @@ index 1bf5227d7c25210636f0dca6d4a422f49595a31c..e6d981c0de47cb02546b597a97b1940a
// Open System Apps in their standalone window if necessary.
// TODO(crbug.com/40136163): Remove this code after we integrate with intent
-@@ -1049,6 +1050,7 @@ bool IsURLAllowedInIncognito(const GURL& url,
+@@ -1042,6 +1043,7 @@ bool IsURLAllowedInIncognito(const GURL& url,
return stripped_url.is_valid() &&
IsURLAllowedInIncognito(stripped_url, browser_context);
}
diff --git a/patches/chrome-browser-ui-chrome_pages.cc.patch b/patches/chrome-browser-ui-chrome_pages.cc.patch
index 0e38cc46e6d4..48328747e03e 100644
--- a/patches/chrome-browser-ui-chrome_pages.cc.patch
+++ b/patches/chrome-browser-ui-chrome_pages.cc.patch
@@ -1,8 +1,8 @@
diff --git a/chrome/browser/ui/chrome_pages.cc b/chrome/browser/ui/chrome_pages.cc
-index 91e36f5f3bb0edf9224c4d46ec187b6bdadab152..990f587729b79e496bb0c216f0d722edd97df492 100644
+index cb72db7caa587e9c691ac2887c3b7037c732dad9..218413a2aefcc9c57373657f382ca2894d93662b 100644
--- a/chrome/browser/ui/chrome_pages.cc
+++ b/chrome/browser/ui/chrome_pages.cc
-@@ -400,7 +400,7 @@ void ShowSlow(Browser* browser) {
+@@ -402,7 +402,7 @@ void ShowSlow(Browser* browser) {
#endif
}
diff --git a/patches/chrome-browser-ui-color-BUILD.gn.patch b/patches/chrome-browser-ui-color-BUILD.gn.patch
index 1bcb9cb695a2..6b4c723480d2 100644
--- a/patches/chrome-browser-ui-color-BUILD.gn.patch
+++ b/patches/chrome-browser-ui-color-BUILD.gn.patch
@@ -1,8 +1,8 @@
diff --git a/chrome/browser/ui/color/BUILD.gn b/chrome/browser/ui/color/BUILD.gn
-index 74721cbd34b58aba78911e769e60dfc60b7a8976..888cb5d349c66f31fe56f8066149b427eaf219d7 100644
+index 7380de8a5fad817f92c00622abbef5746893b600..92455435c4d858dafa4c7c5bfa538181a4988773 100644
--- a/chrome/browser/ui/color/BUILD.gn
+++ b/chrome/browser/ui/color/BUILD.gn
-@@ -62,6 +62,7 @@ source_set("mixers") {
+@@ -60,6 +60,7 @@ source_set("mixers") {
"//ui/color:color",
"//ui/color:mixers",
]
diff --git a/patches/chrome-browser-ui-tab_helpers.cc.patch b/patches/chrome-browser-ui-tab_helpers.cc.patch
index 5b0e23c7708b..49c2d664df59 100644
--- a/patches/chrome-browser-ui-tab_helpers.cc.patch
+++ b/patches/chrome-browser-ui-tab_helpers.cc.patch
@@ -1,8 +1,8 @@
diff --git a/chrome/browser/ui/tab_helpers.cc b/chrome/browser/ui/tab_helpers.cc
-index 796441c1061fa071cf037c75b3d1a448b75b2332..c68bfe008175bb9f2949f4f9d100f8cb86548478 100644
+index b48fab45a306dbf6e93c162e3aea2a7dcbc913d0..f3da9c1692edb96b218ea2a9c8d5dab63610b91b 100644
--- a/chrome/browser/ui/tab_helpers.cc
+++ b/chrome/browser/ui/tab_helpers.cc
-@@ -821,4 +821,5 @@ void TabHelpers::AttachTabHelpers(WebContents* web_contents) {
+@@ -843,4 +843,5 @@ void TabHelpers::AttachTabHelpers(WebContents* web_contents) {
// This is common code for all of us. PLEASE DO YOUR PART to keep it tidy and
// organized.
diff --git a/patches/chrome-browser-ui-tabs-recent_tabs_sub_menu_model.cc.patch b/patches/chrome-browser-ui-tabs-recent_tabs_sub_menu_model.cc.patch
index 12305c09a6d7..0ae46e0f99be 100644
--- a/patches/chrome-browser-ui-tabs-recent_tabs_sub_menu_model.cc.patch
+++ b/patches/chrome-browser-ui-tabs-recent_tabs_sub_menu_model.cc.patch
@@ -1,8 +1,8 @@
diff --git a/chrome/browser/ui/tabs/recent_tabs_sub_menu_model.cc b/chrome/browser/ui/tabs/recent_tabs_sub_menu_model.cc
-index 903dc46ab6e4b96ec985318ae81b50dbd061377c..e3a3c411361a5858e6ad02d6db2df586239f34d2 100644
+index e6fcc7d37a0accdd77ed453d5a55ed6d3dfb8e48..31f08fdd95b935b5d7f283347ead092e838ab82f 100644
--- a/chrome/browser/ui/tabs/recent_tabs_sub_menu_model.cc
+++ b/chrome/browser/ui/tabs/recent_tabs_sub_menu_model.cc
-@@ -447,6 +447,7 @@ void RecentTabsSubMenuModel::BuildTabsFromOtherDevices() {
+@@ -444,6 +444,7 @@ void RecentTabsSubMenuModel::BuildTabsFromOtherDevices() {
DCHECK(!session->GetSessionName().empty());
std::unique_ptr device_menu_model =
CreateOtherDeviceSubMenu(session, tabs_in_session);
diff --git a/patches/chrome-browser-ui-tabs-recent_tabs_sub_menu_model_unittest.cc.patch b/patches/chrome-browser-ui-tabs-recent_tabs_sub_menu_model_unittest.cc.patch
index 1d870f7e2469..36638a6ef622 100644
--- a/patches/chrome-browser-ui-tabs-recent_tabs_sub_menu_model_unittest.cc.patch
+++ b/patches/chrome-browser-ui-tabs-recent_tabs_sub_menu_model_unittest.cc.patch
@@ -1,8 +1,8 @@
diff --git a/chrome/browser/ui/tabs/recent_tabs_sub_menu_model_unittest.cc b/chrome/browser/ui/tabs/recent_tabs_sub_menu_model_unittest.cc
-index 25eccc1dbae2cc46a5232916d0a4bc9faf071548..d39e1a09d40cbfad1de943ba3143b7af63386ac3 100644
+index 2d99206f6f577d9112ee3fdbf7e3e5db086ed949..4636d82f6a21cc58af0a086bffd1dd55561453a4 100644
--- a/chrome/browser/ui/tabs/recent_tabs_sub_menu_model_unittest.cc
+++ b/chrome/browser/ui/tabs/recent_tabs_sub_menu_model_unittest.cc
-@@ -175,6 +175,7 @@ class RecentTabsSubMenuModelTest : public BrowserWithTestWindowTest,
+@@ -164,6 +164,7 @@ class RecentTabsSubMenuModelTest : public BrowserWithTestWindowTest {
helper->VerifyExport(session_sync_service_->GetOpenTabsUIDelegate());
}
diff --git a/patches/chrome-browser-ui-tabs-tab_strip_model.h.patch b/patches/chrome-browser-ui-tabs-tab_strip_model.h.patch
index 97d049114391..e16a560ef95e 100644
--- a/patches/chrome-browser-ui-tabs-tab_strip_model.h.patch
+++ b/patches/chrome-browser-ui-tabs-tab_strip_model.h.patch
@@ -1,8 +1,8 @@
diff --git a/chrome/browser/ui/tabs/tab_strip_model.h b/chrome/browser/ui/tabs/tab_strip_model.h
-index 735c379a8cd1dabfb7747114b6a18584e9af7e1c..f455d586704fb5a712e3881d45a1a14d150c4241 100644
+index 7066bfc4cc0738161a85c1e4935d556f48eb63f5..ddd8ffc839d8bb162dd238d9d02372f49e9cfdda 100644
--- a/chrome/browser/ui/tabs/tab_strip_model.h
+++ b/chrome/browser/ui/tabs/tab_strip_model.h
-@@ -660,6 +660,7 @@ class TabStripModel : public TabGroupController {
+@@ -649,6 +649,7 @@ class TabStripModel : public TabGroupController {
// Serialise this object into a trace.
void WriteIntoTrace(perfetto::TracedValue context) const;
diff --git a/patches/chrome-browser-ui-tabs-tab_style.cc.patch b/patches/chrome-browser-ui-tabs-tab_style.cc.patch
index ebf2e43fcbd7..545c22f92aa7 100644
--- a/patches/chrome-browser-ui-tabs-tab_style.cc.patch
+++ b/patches/chrome-browser-ui-tabs-tab_style.cc.patch
@@ -1,12 +1,12 @@
diff --git a/chrome/browser/ui/tabs/tab_style.cc b/chrome/browser/ui/tabs/tab_style.cc
-index aa9cd303743116892d65f71f66759bc4cefe05f5..25a252b713af07ecc4cf3ecd0312d48b9f9eba3a 100644
+index 7218fd7817da37188569f1a6459c6a2b03395128..c697d44065522cebd02b9e3b8d676d0d3598aa95 100644
--- a/chrome/browser/ui/tabs/tab_style.cc
+++ b/chrome/browser/ui/tabs/tab_style.cc
-@@ -275,6 +275,7 @@ SkColor ChromeRefresh2023TabStyle::GetTabBackgroundColor(
+@@ -189,6 +189,7 @@ float ChromeRefresh2023TabStyle::GetSelectedTabOpacity() const {
// static
const TabStyle* TabStyle::Get() {
+ BRAVE_TAB_STYLE_GET
static TabStyle* const tab_style =
- features::IsChromeRefresh2023()
- ? static_cast(new ChromeRefresh2023TabStyle())
+ static_cast(new ChromeRefresh2023TabStyle());
+
diff --git a/patches/chrome-browser-ui-views-bookmarks-bookmark_bar_view.cc.patch b/patches/chrome-browser-ui-views-bookmarks-bookmark_bar_view.cc.patch
index b247b9e4ff71..c8ef5baa64dd 100644
--- a/patches/chrome-browser-ui-views-bookmarks-bookmark_bar_view.cc.patch
+++ b/patches/chrome-browser-ui-views-bookmarks-bookmark_bar_view.cc.patch
@@ -1,8 +1,8 @@
diff --git a/chrome/browser/ui/views/bookmarks/bookmark_bar_view.cc b/chrome/browser/ui/views/bookmarks/bookmark_bar_view.cc
-index da67b388d758305816319ed2651934a4e69acdb3..f7762af312b37f6b50bab3963a8550f8b497ae10 100644
+index 838700a21091c16ce53921c9d9a5600daf4d766b..483f7a40f73aac2abbccbe46b5ea8b111d376061 100644
--- a/chrome/browser/ui/views/bookmarks/bookmark_bar_view.cc
+++ b/chrome/browser/ui/views/bookmarks/bookmark_bar_view.cc
-@@ -856,6 +856,7 @@ void BookmarkBarView::Layout(PassKey) {
+@@ -857,6 +857,7 @@ void BookmarkBarView::Layout(PassKey) {
x = next_x;
}
}
diff --git a/patches/chrome-browser-ui-views-extensions-extensions_menu_view_controller.cc.patch b/patches/chrome-browser-ui-views-extensions-extensions_menu_view_controller.cc.patch
index 3cd6d0855ea2..8a77321697e2 100644
--- a/patches/chrome-browser-ui-views-extensions-extensions_menu_view_controller.cc.patch
+++ b/patches/chrome-browser-ui-views-extensions-extensions_menu_view_controller.cc.patch
@@ -1,5 +1,5 @@
diff --git a/chrome/browser/ui/views/extensions/extensions_menu_view_controller.cc b/chrome/browser/ui/views/extensions/extensions_menu_view_controller.cc
-index 0cbb3cec6570007e5bc4baaddba10457afa7d0a4..266caae3a53f6bdf612ccee8dc6ed6d710d37ef0 100644
+index 43288b7cb8d29a4ed9031af6e49fbff4e958b452..fe868dbf129ced1357b6ee00b690c48801919a36 100644
--- a/chrome/browser/ui/views/extensions/extensions_menu_view_controller.cc
+++ b/chrome/browser/ui/views/extensions/extensions_menu_view_controller.cc
@@ -337,6 +337,7 @@ ExtensionsMenuViewController::~ExtensionsMenuViewController() {
diff --git a/patches/chrome-browser-ui-views-location_bar-location_bar_view.cc.patch b/patches/chrome-browser-ui-views-location_bar-location_bar_view.cc.patch
index 5d0b7da23cf7..de72a91ee853 100644
--- a/patches/chrome-browser-ui-views-location_bar-location_bar_view.cc.patch
+++ b/patches/chrome-browser-ui-views-location_bar-location_bar_view.cc.patch
@@ -1,8 +1,8 @@
diff --git a/chrome/browser/ui/views/location_bar/location_bar_view.cc b/chrome/browser/ui/views/location_bar/location_bar_view.cc
-index 70650da0fe905933a853cdd5fae8e218363034a9..a7c833be790baad21aea3f6d22d758e1206b2194 100644
+index de89b448cc7b50c0711955e96b911efb89f61166..6ddc079b7479c73a9ff106d36ac33520eb488356 100644
--- a/chrome/browser/ui/views/location_bar/location_bar_view.cc
+++ b/chrome/browser/ui/views/location_bar/location_bar_view.cc
-@@ -716,6 +716,7 @@ void LocationBarView::Layout(PassKey) {
+@@ -705,6 +705,7 @@ void LocationBarView::Layout(PassKey) {
// Indentation add padding when the permission chip is visible and replacing
// the LHS icon.
int text_overriding_permission_chip_indent = 0;
@@ -10,7 +10,7 @@ index 70650da0fe905933a853cdd5fae8e218363034a9..a7c833be790baad21aea3f6d22d758e1
if (should_indent) {
icon_left += icon_indent;
text_left += text_indent;
-@@ -802,6 +803,7 @@ void LocationBarView::Layout(PassKey) {
+@@ -791,6 +792,7 @@ void LocationBarView::Layout(PassKey) {
}
};
diff --git a/patches/chrome-browser-ui-views-location_bar-location_bar_view.h.patch b/patches/chrome-browser-ui-views-location_bar-location_bar_view.h.patch
index f9dfc6d16b85..b216f35664fd 100644
--- a/patches/chrome-browser-ui-views-location_bar-location_bar_view.h.patch
+++ b/patches/chrome-browser-ui-views-location_bar-location_bar_view.h.patch
@@ -1,5 +1,5 @@
diff --git a/chrome/browser/ui/views/location_bar/location_bar_view.h b/chrome/browser/ui/views/location_bar/location_bar_view.h
-index 840ef31f580e817605c4d43044bb7dc84011493c..8d8dd66e5dcd3acc86038f62d08a18b981c0bb43 100644
+index 7e6f12b15de4225180a5c0a647ceb8050f776731..b9fddf0ffe60e8cf6095b86f80b752f9a6006433 100644
--- a/chrome/browser/ui/views/location_bar/location_bar_view.h
+++ b/chrome/browser/ui/views/location_bar/location_bar_view.h
@@ -114,6 +114,7 @@ class LocationBarView
diff --git a/patches/chrome-browser-ui-views-location_bar-location_icon_view.cc.patch b/patches/chrome-browser-ui-views-location_bar-location_icon_view.cc.patch
index eeb8a85ff214..ff497ce2267e 100644
--- a/patches/chrome-browser-ui-views-location_bar-location_icon_view.cc.patch
+++ b/patches/chrome-browser-ui-views-location_bar-location_icon_view.cc.patch
@@ -1,5 +1,5 @@
diff --git a/chrome/browser/ui/views/location_bar/location_icon_view.cc b/chrome/browser/ui/views/location_bar/location_icon_view.cc
-index f0e1262b72b0c7d46f144df4ed473d575bbece81..9cc17bafec0423fcc47d339cb7bf85a66842b01f 100644
+index 22dacaf0e5deb81f333ab88c9aec2ba806a4f17a..e7e7e339a85cd0a7f24ab9b74973715be1e86124 100644
--- a/chrome/browser/ui/views/location_bar/location_icon_view.cc
+++ b/chrome/browser/ui/views/location_bar/location_icon_view.cc
@@ -171,6 +171,7 @@ bool LocationIconView::GetShowText() const {
diff --git a/patches/chrome-browser-ui-views-overlay-video_overlay_window_views.cc.patch b/patches/chrome-browser-ui-views-overlay-video_overlay_window_views.cc.patch
index 3dbe9f2da2e7..8fe8090df141 100644
--- a/patches/chrome-browser-ui-views-overlay-video_overlay_window_views.cc.patch
+++ b/patches/chrome-browser-ui-views-overlay-video_overlay_window_views.cc.patch
@@ -1,8 +1,8 @@
diff --git a/chrome/browser/ui/views/overlay/video_overlay_window_views.cc b/chrome/browser/ui/views/overlay/video_overlay_window_views.cc
-index 4e0b90c70b4b9ad3884b0e8e99c7bdb3476c18da..3cb76a7b94ae3ee07aaf28dfbe4d39bcb7e35214 100644
+index dcf238f57b1893c1cd83e640d3adfbc57cb7980d..4076b617b9baf6d13813dc9860c467011cc85543 100644
--- a/chrome/browser/ui/views/overlay/video_overlay_window_views.cc
+++ b/chrome/browser/ui/views/overlay/video_overlay_window_views.cc
-@@ -286,7 +286,7 @@ std::unique_ptr VideoOverlayWindowViews::Create(
+@@ -287,7 +287,7 @@ std::unique_ptr VideoOverlayWindowViews::Create(
// constructor. It's important that the constructor be private, because it
// doesn't initialize the object fully.
auto overlay_window =
@@ -11,7 +11,7 @@ index 4e0b90c70b4b9ad3884b0e8e99c7bdb3476c18da..3cb76a7b94ae3ee07aaf28dfbe4d39bc
overlay_window->CalculateAndUpdateWindowBounds();
overlay_window->SetUpViews();
-@@ -734,6 +734,7 @@ void VideoOverlayWindowViews::UpdateMaxSize(const gfx::Rect& work_area) {
+@@ -739,6 +739,7 @@ void VideoOverlayWindowViews::UpdateMaxSize(const gfx::Rect& work_area) {
max_size_ = new_max_size;
diff --git a/patches/chrome-browser-ui-views-page_info-page_info_view_factory.cc.patch b/patches/chrome-browser-ui-views-page_info-page_info_view_factory.cc.patch
index 8e9a55bce67f..2adc9549a2f4 100644
--- a/patches/chrome-browser-ui-views-page_info-page_info_view_factory.cc.patch
+++ b/patches/chrome-browser-ui-views-page_info-page_info_view_factory.cc.patch
@@ -1,10 +1,10 @@
diff --git a/chrome/browser/ui/views/page_info/page_info_view_factory.cc b/chrome/browser/ui/views/page_info/page_info_view_factory.cc
-index 57ff10b66b6f2f02e683649c3e6879193a2cd0ac..5a7d4c1a6ffa69ae022a2cb79644e4a7b7818833 100644
+index a7e661c7695915b93a80d55dedfdaf335e99a2bb..2e190ba0b959beb2c263337a8082543677f9466a 100644
--- a/chrome/browser/ui/views/page_info/page_info_view_factory.cc
+++ b/chrome/browser/ui/views/page_info/page_info_view_factory.cc
-@@ -444,6 +444,7 @@ const ui::ImageModel PageInfoViewFactory::GetPermissionIcon(
+@@ -426,6 +426,7 @@ const ui::ImageModel PageInfoViewFactory::GetPermissionIcon(
- const gfx::VectorIcon* icon = &gfx::kNoneIcon;
+ icon = &gfx::kNoneIcon;
switch (info.type) {
+ BRAVE_PAGE_INFO_VIEW_FACTORY_GET_PERMISSION_ICON
case ContentSettingsType::COOKIES:
diff --git a/patches/chrome-browser-ui-views-permissions-permission_prompt_bubble_base_view.cc.patch b/patches/chrome-browser-ui-views-permissions-permission_prompt_bubble_base_view.cc.patch
index 0de4910f60d7..15d31cf1299e 100644
--- a/patches/chrome-browser-ui-views-permissions-permission_prompt_bubble_base_view.cc.patch
+++ b/patches/chrome-browser-ui-views-permissions-permission_prompt_bubble_base_view.cc.patch
@@ -1,8 +1,8 @@
diff --git a/chrome/browser/ui/views/permissions/permission_prompt_bubble_base_view.cc b/chrome/browser/ui/views/permissions/permission_prompt_bubble_base_view.cc
-index 514931a83a4d32d5a3513cdb26d316248003ed0c..550b9ac58108ae38ad8f50d23350ba43be6e364e 100644
+index b5840579805b92496e6da351fab22460580f2e72..ecde5e6c16b2078f092ba98fe3da15d99462199d 100644
--- a/chrome/browser/ui/views/permissions/permission_prompt_bubble_base_view.cc
+++ b/chrome/browser/ui/views/permissions/permission_prompt_bubble_base_view.cc
-@@ -158,6 +158,7 @@ void PermissionPromptBubbleBaseView::CreatePermissionButtons(
+@@ -154,6 +154,7 @@ void PermissionPromptBubbleBaseView::CreatePermissionButtons(
SetButtonStyle(ui::DIALOG_BUTTON_OK, ui::ButtonStyle::kTonal);
SetButtonStyle(ui::DIALOG_BUTTON_CANCEL, ui::ButtonStyle::kTonal);
}
diff --git a/patches/chrome-browser-ui-views-profiles-avatar_toolbar_button.h.patch b/patches/chrome-browser-ui-views-profiles-avatar_toolbar_button.h.patch
index 3986052415f8..1464b73aa156 100644
--- a/patches/chrome-browser-ui-views-profiles-avatar_toolbar_button.h.patch
+++ b/patches/chrome-browser-ui-views-profiles-avatar_toolbar_button.h.patch
@@ -1,8 +1,8 @@
diff --git a/chrome/browser/ui/views/profiles/avatar_toolbar_button.h b/chrome/browser/ui/views/profiles/avatar_toolbar_button.h
-index b1860a7027e6e9514e66f9678e7914a97d350494..a8182e661f5b657342db70652309de3e3bff0df2 100644
+index 05b8f1996a55b29373346b8ae0051f5dc168abb1..9718bf76728f04f40d840cde69cea20d972ac12e 100644
--- a/chrome/browser/ui/views/profiles/avatar_toolbar_button.h
+++ b/chrome/browser/ui/views/profiles/avatar_toolbar_button.h
-@@ -119,6 +119,7 @@ class AvatarToolbarButton : public ToolbarButton {
+@@ -126,6 +126,7 @@ class AvatarToolbarButton : public ToolbarButton {
void NotifyShowSigninPausedDelayEnded() const;
private:
diff --git a/patches/chrome-browser-ui-views-profiles-profile_menu_view.h.patch b/patches/chrome-browser-ui-views-profiles-profile_menu_view.h.patch
index dcf462d75af7..711e58e4a9b2 100644
--- a/patches/chrome-browser-ui-views-profiles-profile_menu_view.h.patch
+++ b/patches/chrome-browser-ui-views-profiles-profile_menu_view.h.patch
@@ -1,8 +1,8 @@
diff --git a/chrome/browser/ui/views/profiles/profile_menu_view.h b/chrome/browser/ui/views/profiles/profile_menu_view.h
-index 264d52e56f7c99184fcdd29866e367e6cecf8dc8..0e1e27a4e4c553aa2dff519cdbe877fb3209adf3 100644
+index ddfc268135aae86428ebf1a73e756fcb8695b76a..52cdeb15550bcd0c659219ce35622bb7e23fa068 100644
--- a/chrome/browser/ui/views/profiles/profile_menu_view.h
+++ b/chrome/browser/ui/views/profiles/profile_menu_view.h
-@@ -45,6 +45,7 @@ class ProfileMenuView : public ProfileMenuViewBase {
+@@ -50,6 +50,7 @@ class ProfileMenuView : public ProfileMenuViewBase {
gfx::ImageSkia GetSyncIcon() const override;
private:
diff --git a/patches/chrome-browser-ui-views-profiles-profile_menu_view_base.cc.patch b/patches/chrome-browser-ui-views-profiles-profile_menu_view_base.cc.patch
new file mode 100644
index 000000000000..cc06bd97a84d
--- /dev/null
+++ b/patches/chrome-browser-ui-views-profiles-profile_menu_view_base.cc.patch
@@ -0,0 +1,12 @@
+diff --git a/chrome/browser/ui/views/profiles/profile_menu_view_base.cc b/chrome/browser/ui/views/profiles/profile_menu_view_base.cc
+index 70da374af533fd32f49ad0f4282ef4167eea6365..9919b2314c883205982c09fa77d4cdb16fdd4e5d 100644
+--- a/chrome/browser/ui/views/profiles/profile_menu_view_base.cc
++++ b/chrome/browser/ui/views/profiles/profile_menu_view_base.cc
+@@ -603,6 +603,7 @@ void ProfileMenuViewBase::BuildProfileBackgroundContainer(
+ identity_info_color_callback_ = base::BindRepeating(
+ &ProfileMenuViewBase::BuildIdentityInfoColorCallback,
+ base::Unretained(this));
++ BRAVE_PROFILE_MENU_VIEW_BASE_SET_BACKGROUND
+ } else {
+ DCHECK_EQ(SK_ColorTRANSPARENT, background_color);
+ profile_background_container_->SetBackground(
diff --git a/patches/chrome-browser-ui-views-profiles-profile_menu_view_base.h.patch b/patches/chrome-browser-ui-views-profiles-profile_menu_view_base.h.patch
index f9c7d6f7c36a..373a96ba0722 100644
--- a/patches/chrome-browser-ui-views-profiles-profile_menu_view_base.h.patch
+++ b/patches/chrome-browser-ui-views-profiles-profile_menu_view_base.h.patch
@@ -1,8 +1,8 @@
diff --git a/chrome/browser/ui/views/profiles/profile_menu_view_base.h b/chrome/browser/ui/views/profiles/profile_menu_view_base.h
-index 53b45d642fff0a5cbcca49c2d6fb9433e0c32b26..22b096f86117bc2bc20cd3461ffe9fff08c72bf0 100644
+index 87c736e3ec18818c53b0d30d6422305529975723..34b9e486e0bb073069c95df813182a0d07930627 100644
--- a/chrome/browser/ui/views/profiles/profile_menu_view_base.h
+++ b/chrome/browser/ui/views/profiles/profile_menu_view_base.h
-@@ -172,6 +172,7 @@ class ProfileMenuViewBase : public content::WebContentsDelegate,
+@@ -171,6 +171,7 @@ class ProfileMenuViewBase : public content::WebContentsDelegate,
void set_perform_menu_actions_for_testing(bool perform_menu_actions) {
perform_menu_actions_ = perform_menu_actions;
}
diff --git a/patches/chrome-browser-ui-views-side_panel-side_panel_coordinator.h.patch b/patches/chrome-browser-ui-views-side_panel-side_panel_coordinator.h.patch
index 5a2a4df1630a..d62f9acb2b82 100644
--- a/patches/chrome-browser-ui-views-side_panel-side_panel_coordinator.h.patch
+++ b/patches/chrome-browser-ui-views-side_panel-side_panel_coordinator.h.patch
@@ -1,8 +1,8 @@
diff --git a/chrome/browser/ui/views/side_panel/side_panel_coordinator.h b/chrome/browser/ui/views/side_panel/side_panel_coordinator.h
-index e4e89c6284984da3396c578e88e9a85a1bf23af3..60b261065d537e5f3090e2c36ebddf2893b7c992 100644
+index 50ac5f45cfc0dbc71d68edd477e0f3a0ef6abdc0..d950be5286240fcc231ba55479b435e1a92ca593 100644
--- a/chrome/browser/ui/views/side_panel/side_panel_coordinator.h
+++ b/chrome/browser/ui/views/side_panel/side_panel_coordinator.h
-@@ -55,7 +55,7 @@ class View;
+@@ -53,7 +53,7 @@ class View;
// registry's active_entry() then global registry's. These values are reset when
// the side panel is closed and |last_active_global_entry_id_| is used to
// determine what entry is seen when the panel is reopened.
diff --git a/patches/chrome-browser-ui-side_panel-side_panel_entry_id.h.patch b/patches/chrome-browser-ui-views-side_panel-side_panel_entry_id.h.patch
similarity index 63%
rename from patches/chrome-browser-ui-side_panel-side_panel_entry_id.h.patch
rename to patches/chrome-browser-ui-views-side_panel-side_panel_entry_id.h.patch
index de95cc25a0d4..9cb7969eb9f1 100644
--- a/patches/chrome-browser-ui-side_panel-side_panel_entry_id.h.patch
+++ b/patches/chrome-browser-ui-views-side_panel-side_panel_entry_id.h.patch
@@ -1,7 +1,7 @@
-diff --git a/chrome/browser/ui/side_panel/side_panel_entry_id.h b/chrome/browser/ui/side_panel/side_panel_entry_id.h
-index 76da7d49baaa9c61841c85d4641b7260ad1cb0d0..8d6b0a2a40e10221a2f77513b8cc50dba2f25319 100644
---- a/chrome/browser/ui/side_panel/side_panel_entry_id.h
-+++ b/chrome/browser/ui/side_panel/side_panel_entry_id.h
+diff --git a/chrome/browser/ui/views/side_panel/side_panel_entry_id.h b/chrome/browser/ui/views/side_panel/side_panel_entry_id.h
+index befb50f4b9b9d32543f8fe0edab5a0ebca5fecc2..b6c43873fc2dbcd107067d5134c10da253dec3d6 100644
+--- a/chrome/browser/ui/views/side_panel/side_panel_entry_id.h
++++ b/chrome/browser/ui/views/side_panel/side_panel_entry_id.h
@@ -33,6 +33,7 @@
V(kSideSearch, kActionSidePanelShowSideSearch, "SideSearch") \
V(kLens, kActionSidePanelShowLens, "Lens") \
diff --git a/patches/chrome-browser-ui-views-tab_search_bubble_host.cc.patch b/patches/chrome-browser-ui-views-tab_search_bubble_host.cc.patch
new file mode 100644
index 000000000000..f47f1ea49649
--- /dev/null
+++ b/patches/chrome-browser-ui-views-tab_search_bubble_host.cc.patch
@@ -0,0 +1,12 @@
+diff --git a/chrome/browser/ui/views/tab_search_bubble_host.cc b/chrome/browser/ui/views/tab_search_bubble_host.cc
+index 1022f23020fbd07b2020c1d65d5c3998ce9fd8aa..c32112d3afee5b07792982417ae3c33463d6d22c 100644
+--- a/chrome/browser/ui/views/tab_search_bubble_host.cc
++++ b/chrome/browser/ui/views/tab_search_bubble_host.cc
+@@ -269,6 +269,7 @@ bool TabSearchBubbleHost::ShouldTabSearchRenderBeforeTabStrip() {
+ // Tab Search button as a FrameCaptionButton, but it still needs to be on the
+ // left if it exists.
+ #if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN)
++ BRAVE_TAB_SEARCH_BUBBLE_HOST_SHOULD_TAB_SEARCH_RENDER_BEFORE_TAB_STRIP
+ return true;
+ #else
+ return false;
diff --git a/patches/chrome-browser-ui-views-tabs-tab.cc.patch b/patches/chrome-browser-ui-views-tabs-tab.cc.patch
index 28d64f6721e0..c1c920061b21 100644
--- a/patches/chrome-browser-ui-views-tabs-tab.cc.patch
+++ b/patches/chrome-browser-ui-views-tabs-tab.cc.patch
@@ -1,16 +1,16 @@
diff --git a/chrome/browser/ui/views/tabs/tab.cc b/chrome/browser/ui/views/tabs/tab.cc
-index 660bde873097919889460ae7151f424d95ff0a55..971acbdcd6e7e39c8c9c7e5cb06513fedd4ad867 100644
+index 95a5213e281e195556a9405ae34cada019ac5822..fb5d970f8cdb1f555d81af2b4816c0bb3a216ce3 100644
--- a/chrome/browser/ui/views/tabs/tab.cc
+++ b/chrome/browser/ui/views/tabs/tab.cc
-@@ -322,6 +322,7 @@ void Tab::Layout(PassKey) {
- // Height should go to the bottom of the tab for the crashed tab animation
- // to pop out of the bottom.
- favicon_bounds.set_y(contents_rect.y() +
-+ BRAVE_TAB_LAYOUT
- Center(features::IsChromeRefresh2023()
- ? gfx::kFaviconSize
- : contents_rect.height(),
-@@ -431,6 +432,7 @@ void Tab::Layout(PassKey) {
+@@ -310,6 +310,7 @@ void Tab::Layout(PassKey) {
+ // indicator, but visually it will be smaller at kFaviconSize wide.
+ gfx::Rect favicon_bounds(start, contents_rect.y(), 0, 0);
+ if (showing_icon_) {
++ BRAVE_UI_VIEWS_TABS_TAB_LAYOUT_ADJUST_ICON_POSITION
+ if (center_icon_) {
+ // When centering the favicon, the favicon is allowed to escape the normal
+ // contents rect.
+@@ -413,6 +414,7 @@ void Tab::Layout(PassKey) {
int title_right = contents_rect.right();
if (showing_alert_indicator_) {
title_right = alert_indicator_button_->x() - after_title_padding;
@@ -18,7 +18,7 @@ index 660bde873097919889460ae7151f424d95ff0a55..971acbdcd6e7e39c8c9c7e5cb06513fe
} else if (showing_close_button_) {
// Allow the title to overlay the close button's empty border padding.
title_right = close_x - after_title_padding;
-@@ -1101,6 +1103,7 @@ void Tab::UpdateIconVisibility() {
+@@ -1085,6 +1087,7 @@ void Tab::UpdateIconVisibility() {
}
showing_close_button_ = large_enough_for_close_button;
diff --git a/patches/chrome-browser-ui-views-tabs-tab_group_views.cc.patch b/patches/chrome-browser-ui-views-tabs-tab_group_views.cc.patch
index 6d1645452302..c6f08d39a732 100644
--- a/patches/chrome-browser-ui-views-tabs-tab_group_views.cc.patch
+++ b/patches/chrome-browser-ui-views-tabs-tab_group_views.cc.patch
@@ -1,8 +1,8 @@
diff --git a/chrome/browser/ui/views/tabs/tab_group_views.cc b/chrome/browser/ui/views/tabs/tab_group_views.cc
-index dcbb1f288a43972334f31554870b9a88cd83e78b..6cb47ecc649f1605df71fa441f25ec7dfb085eaa 100644
+index a1a63e801871c7e5d22762278bf562d20711b8cb..e17fa9419b8f28dd519a44c2fdb4dcf6c4719355 100644
--- a/chrome/browser/ui/views/tabs/tab_group_views.cc
+++ b/chrome/browser/ui/views/tabs/tab_group_views.cc
-@@ -167,6 +167,7 @@ TabGroupViews::GetLeadingTrailingGroupViews(
+@@ -164,6 +164,7 @@ TabGroupViews::GetLeadingTrailingGroupViews(
views::View* trailing_child = nullptr;
gfx::Rect trailing_child_widget_bounds;
diff --git a/patches/chrome-browser-ui-views-tabs-tab_strip.cc.patch b/patches/chrome-browser-ui-views-tabs-tab_strip.cc.patch
index 755f1cd7501a..081c322e5ccd 100644
--- a/patches/chrome-browser-ui-views-tabs-tab_strip.cc.patch
+++ b/patches/chrome-browser-ui-views-tabs-tab_strip.cc.patch
@@ -1,8 +1,8 @@
diff --git a/chrome/browser/ui/views/tabs/tab_strip.cc b/chrome/browser/ui/views/tabs/tab_strip.cc
-index 8d782f7c26a484579904e99a02741836db75c0c9..ec9fc08c67cbce788f83e54197bdfee80807f8a5 100644
+index b1a9f8d1ba6c17fe9101bd1eb0528e88163553a3..3d2c7f29f7bb4971acf779630735a71f3981e66d 100644
--- a/chrome/browser/ui/views/tabs/tab_strip.cc
+++ b/chrome/browser/ui/views/tabs/tab_strip.cc
-@@ -532,6 +532,7 @@ class TabStrip::TabDragContextImpl : public TabDragContext,
+@@ -530,6 +530,7 @@ class TabStrip::TabDragContextImpl : public TabDragContext,
std::vector CalculateBoundsForDraggedViews(
const std::vector>& views)
override {
@@ -10,7 +10,7 @@ index 8d782f7c26a484579904e99a02741836db75c0c9..ec9fc08c67cbce788f83e54197bdfee8
CHECK(!views.empty(), base::NotFatalUntil::M128)
<< "The views vector must not be empty.";
-@@ -725,6 +726,7 @@ class TabStrip::TabDragContextImpl : public TabDragContext,
+@@ -733,6 +734,7 @@ class TabStrip::TabDragContextImpl : public TabDragContext,
// index.
std::stable_sort(orderable_children.begin(), orderable_children.end());
@@ -18,7 +18,7 @@ index 8d782f7c26a484579904e99a02741836db75c0c9..ec9fc08c67cbce788f83e54197bdfee8
for (const ZOrderableTabContainerElement& child : orderable_children) {
child.view()->Paint(paint_info);
}
-@@ -818,6 +820,7 @@ class TabStrip::TabDragContextImpl : public TabDragContext,
+@@ -826,6 +828,7 @@ class TabStrip::TabDragContextImpl : public TabDragContext,
continue;
}
diff --git a/patches/chrome-browser-ui-views-toolbar-app_menu.h.patch b/patches/chrome-browser-ui-views-toolbar-app_menu.h.patch
index 120ae8ad7cd8..3881beb3d693 100644
--- a/patches/chrome-browser-ui-views-toolbar-app_menu.h.patch
+++ b/patches/chrome-browser-ui-views-toolbar-app_menu.h.patch
@@ -1,5 +1,5 @@
diff --git a/chrome/browser/ui/views/toolbar/app_menu.h b/chrome/browser/ui/views/toolbar/app_menu.h
-index 0d8614f19b9737ba49aa173aaca537ab2374eb0e..379d8459f2907a0aa08b1ab6811aae7dfd140131 100644
+index 6e0a4f3a2aed82b7caebf4a6a065e0e75881c32c..e765042e15086dadbc195dc8925cb2dfda7d77c1 100644
--- a/chrome/browser/ui/views/toolbar/app_menu.h
+++ b/chrome/browser/ui/views/toolbar/app_menu.h
@@ -31,7 +31,7 @@ class MenuRunner;
diff --git a/patches/chrome-browser-ui-views-toolbar-toolbar_view.cc.patch b/patches/chrome-browser-ui-views-toolbar-toolbar_view.cc.patch
index e53388b71c4a..94a052bcdd87 100644
--- a/patches/chrome-browser-ui-views-toolbar-toolbar_view.cc.patch
+++ b/patches/chrome-browser-ui-views-toolbar-toolbar_view.cc.patch
@@ -1,10 +1,10 @@
diff --git a/chrome/browser/ui/views/toolbar/toolbar_view.cc b/chrome/browser/ui/views/toolbar/toolbar_view.cc
-index e02fe5d5e629071a618cab8d7fbd4dcef0435e31..1b41162056c207d6f2c2f1729c4eca92a50a98f1 100644
+index 05ae08a41e203902ff901ab99081bf9ab9ce75c8..9fe5ccb18c5ad4c17926b899202931f1fd08e8f0 100644
--- a/chrome/browser/ui/views/toolbar/toolbar_view.cc
+++ b/chrome/browser/ui/views/toolbar/toolbar_view.cc
-@@ -471,6 +471,7 @@ void ToolbarView::Init() {
- }
- }
+@@ -453,6 +453,7 @@ void ToolbarView::Init() {
+ send_tab_to_self_button_ =
+ container_view_->AddChildView(std::move(send_tab_to_self_button));
+ BRAVE_TOOLBAR_VIEW_INIT
avatar_ = container_view_->AddChildView(
diff --git a/patches/chrome-browser-ui-views-translate-translate_bubble_view_unittest.cc.patch b/patches/chrome-browser-ui-views-translate-translate_bubble_view_unittest.cc.patch
index 876ae7f7c812..264cf81c7cf7 100644
--- a/patches/chrome-browser-ui-views-translate-translate_bubble_view_unittest.cc.patch
+++ b/patches/chrome-browser-ui-views-translate-translate_bubble_view_unittest.cc.patch
@@ -1,5 +1,5 @@
diff --git a/chrome/browser/ui/views/translate/translate_bubble_view_unittest.cc b/chrome/browser/ui/views/translate/translate_bubble_view_unittest.cc
-index ebdfd54621717cd6c8c75ef4f61011a92f3a2b55..29c3d5aa2feedc6b302db7393ec503f21925850c 100644
+index 493a83b16de20a29e2bd1c5371110cd723c5c81a..42386c2c2cd46dfdee67d78b7962ab6524d9b3dd 100644
--- a/chrome/browser/ui/views/translate/translate_bubble_view_unittest.cc
+++ b/chrome/browser/ui/views/translate/translate_bubble_view_unittest.cc
@@ -187,6 +187,7 @@ class TranslateBubbleViewTest : public ChromeViewsTestBase {
diff --git a/patches/chrome-browser-ui-webui-BUILD.gn.patch b/patches/chrome-browser-ui-webui-BUILD.gn.patch
index 64a8f5b91aa3..50d1b341beac 100644
--- a/patches/chrome-browser-ui-webui-BUILD.gn.patch
+++ b/patches/chrome-browser-ui-webui-BUILD.gn.patch
@@ -1,8 +1,8 @@
diff --git a/chrome/browser/ui/webui/BUILD.gn b/chrome/browser/ui/webui/BUILD.gn
-index 61554ef4dceb1c1a278fe446ccdaa2e9aaad64e1..bf9b05381fef9013eda6a6ee97c908870c576913 100644
+index feeb7411b2068e50492548bcfb21015bbe588586..1fcadedbea2c6d7293b562bd6c05b00f588795e0 100644
--- a/chrome/browser/ui/webui/BUILD.gn
+++ b/chrome/browser/ui/webui/BUILD.gn
-@@ -64,6 +64,7 @@ source_set("configs") {
+@@ -85,6 +85,7 @@ source_set("configs") {
deps += [ "//ash/webui/sample_system_web_app_ui" ]
}
}
diff --git a/patches/chrome-browser-ui-webui-chrome_web_ui_controller_factory.cc.patch b/patches/chrome-browser-ui-webui-chrome_web_ui_controller_factory.cc.patch
index dfa741a7cbf3..1e941015e175 100644
--- a/patches/chrome-browser-ui-webui-chrome_web_ui_controller_factory.cc.patch
+++ b/patches/chrome-browser-ui-webui-chrome_web_ui_controller_factory.cc.patch
@@ -1,8 +1,8 @@
diff --git a/chrome/browser/ui/webui/chrome_web_ui_controller_factory.cc b/chrome/browser/ui/webui/chrome_web_ui_controller_factory.cc
-index 3de04cfb908d905666e4d7a096b81ad480467bb6..eea3645840b64de8c19b6ecf987c1cfd5c14125f 100644
+index 7b61f43d8c72ae469045ea619b4fe1d08042ccf9..41ef1961f53276a6650287aaff888746e96e9e90 100644
--- a/chrome/browser/ui/webui/chrome_web_ui_controller_factory.cc
+++ b/chrome/browser/ui/webui/chrome_web_ui_controller_factory.cc
-@@ -882,6 +882,7 @@ void ChromeWebUIControllerFactory::GetFaviconForURL(
+@@ -890,6 +890,7 @@ void ChromeWebUIControllerFactory::GetFaviconForURL(
// static
ChromeWebUIControllerFactory* ChromeWebUIControllerFactory::GetInstance() {
diff --git a/patches/chrome-browser-ui-webui-cr_components-theme_color_picker-theme_color_picker_handler.cc.patch b/patches/chrome-browser-ui-webui-cr_components-theme_color_picker-theme_color_picker_handler.cc.patch
new file mode 100644
index 000000000000..a5986b590423
--- /dev/null
+++ b/patches/chrome-browser-ui-webui-cr_components-theme_color_picker-theme_color_picker_handler.cc.patch
@@ -0,0 +1,12 @@
+diff --git a/chrome/browser/ui/webui/cr_components/theme_color_picker/theme_color_picker_handler.cc b/chrome/browser/ui/webui/cr_components/theme_color_picker/theme_color_picker_handler.cc
+index 01615ce4465190dd2ef3d61bc348bf64f593bb8e..3a800b5e46d9efb20419c1594659b5d8948880e3 100644
+--- a/chrome/browser/ui/webui/cr_components/theme_color_picker/theme_color_picker_handler.cc
++++ b/chrome/browser/ui/webui/cr_components/theme_color_picker/theme_color_picker_handler.cc
+@@ -134,6 +134,7 @@ void ThemeColorPickerHandler::GetChromeColors(
+ bool extended_list,
+ GetChromeColorsCallback callback) {
+ std::vector colors;
++ BRAVE_THEME_COLOR_PICKER_HANDLER_GET_CHROME_COLORS
+ if (extended_list) {
+ for (const auto& color_info : chrome_colors::kGeneratedColorsInfo) {
+ colors.push_back(CreateChromeColor(color_info));
diff --git a/patches/chrome-browser-ui-webui-downloads-downloads_ui.cc.patch b/patches/chrome-browser-ui-webui-downloads-downloads_ui.cc.patch
index 88ff7ec3fb18..d4be374fe4e4 100644
--- a/patches/chrome-browser-ui-webui-downloads-downloads_ui.cc.patch
+++ b/patches/chrome-browser-ui-webui-downloads-downloads_ui.cc.patch
@@ -1,8 +1,8 @@
diff --git a/chrome/browser/ui/webui/downloads/downloads_ui.cc b/chrome/browser/ui/webui/downloads/downloads_ui.cc
-index a33d79de092aeefd2b736d02caea4bdf59af9cd4..fc2e23f746d11784b8f8672c955f42da298e2d4a 100644
+index 29732862cb1f1b4b85c76bb550728a78dc606508..1032611c05cff18dcf1e7112d504d9eb6f471f91 100644
--- a/chrome/browser/ui/webui/downloads/downloads_ui.cc
+++ b/chrome/browser/ui/webui/downloads/downloads_ui.cc
-@@ -66,6 +66,7 @@ namespace {
+@@ -65,6 +65,7 @@ namespace {
content::WebUIDataSource* CreateAndAddDownloadsUIHTMLSource(Profile* profile) {
content::WebUIDataSource* source = content::WebUIDataSource::CreateAndAdd(
profile, chrome::kChromeUIDownloadsHost);
diff --git a/patches/chrome-browser-ui-webui-history-history_ui.cc.patch b/patches/chrome-browser-ui-webui-history-history_ui.cc.patch
index 1f7d4f89fa55..ffa4f32f92a7 100644
--- a/patches/chrome-browser-ui-webui-history-history_ui.cc.patch
+++ b/patches/chrome-browser-ui-webui-history-history_ui.cc.patch
@@ -1,5 +1,5 @@
diff --git a/chrome/browser/ui/webui/history/history_ui.cc b/chrome/browser/ui/webui/history/history_ui.cc
-index 94f90fd869ce26253f908dcdb62357d5ba25e162..a16f06d0e0f019fdb70a91d6031d64ee7a75896f 100644
+index d2f865ef9917dded02faeec332a3b9cb4b4ec627..0eeebddc87d6cf7e2220c44f712083cf95101f05 100644
--- a/chrome/browser/ui/webui/history/history_ui.cc
+++ b/chrome/browser/ui/webui/history/history_ui.cc
@@ -82,6 +82,7 @@ content::WebUIDataSource* CreateAndAddHistoryUIHTMLSource(Profile* profile) {
diff --git a/patches/chrome-browser-ui-webui-print_preview-print_preview_ui.cc.patch b/patches/chrome-browser-ui-webui-print_preview-print_preview_ui.cc.patch
index f9612186e2ba..3281feb7613b 100644
--- a/patches/chrome-browser-ui-webui-print_preview-print_preview_ui.cc.patch
+++ b/patches/chrome-browser-ui-webui-print_preview-print_preview_ui.cc.patch
@@ -1,5 +1,5 @@
diff --git a/chrome/browser/ui/webui/print_preview/print_preview_ui.cc b/chrome/browser/ui/webui/print_preview/print_preview_ui.cc
-index 8aea19c0090dcd370eb3de2f89f5d0585b118a64..e06b1dd051c98b4e190b72d7b7549cd353433405 100644
+index 5f1daafe9c8157b3a8e60aad019a4e4c58086cf8..b77ad8c4b099a2c1d1bb8c74b644c1df8a621866 100644
--- a/chrome/browser/ui/webui/print_preview/print_preview_ui.cc
+++ b/chrome/browser/ui/webui/print_preview/print_preview_ui.cc
@@ -156,7 +156,7 @@ PrintPreviewRequestIdMap& GetPrintPreviewRequestIdMap() {
diff --git a/patches/chrome-browser-ui-webui-settings-people_handler.cc.patch b/patches/chrome-browser-ui-webui-settings-people_handler.cc.patch
index bde157b50d30..f43ad2ef5c09 100644
--- a/patches/chrome-browser-ui-webui-settings-people_handler.cc.patch
+++ b/patches/chrome-browser-ui-webui-settings-people_handler.cc.patch
@@ -1,8 +1,8 @@
diff --git a/chrome/browser/ui/webui/settings/people_handler.cc b/chrome/browser/ui/webui/settings/people_handler.cc
-index a560ab6268c7322ec9169f4ebf4e582e4a6cd99e..e9565e70a91e44c9aeef4cee34ff4e848d3ae45b 100644
+index ebee41ef48e688dafe37316d128fc621df31b44c..e13006f65095b670cd3dca4e0cb59cb4c1c17f95 100644
--- a/chrome/browser/ui/webui/settings/people_handler.cc
+++ b/chrome/browser/ui/webui/settings/people_handler.cc
-@@ -1069,6 +1069,7 @@ void PeopleHandler::OnStateChanged(syncer::SyncService* sync_service) {
+@@ -1038,6 +1038,7 @@ void PeopleHandler::OnStateChanged(syncer::SyncService* sync_service) {
void PeopleHandler::BeforeUnloadDialogCancelled() {
// The before unload dialog is only shown during the first sync setup.
@@ -10,7 +10,7 @@ index a560ab6268c7322ec9169f4ebf4e582e4a6cd99e..e9565e70a91e44c9aeef4cee34ff4e84
DCHECK(IdentityManagerFactory::GetForProfile(profile_)->HasPrimaryAccount(
signin::ConsentLevel::kSync));
syncer::SyncService* service = GetSyncService();
-@@ -1118,6 +1119,7 @@ base::Value::Dict PeopleHandler::GetSyncStatusDictionary() const {
+@@ -1087,6 +1088,7 @@ base::Value::Dict PeopleHandler::GetSyncStatusDictionary() const {
service && !disallowed_by_policy && service->IsSetupInProgress() &&
!service->GetUserSettings()->IsInitialSyncFeatureSetupComplete() &&
identity_manager->HasPrimaryAccount(signin::ConsentLevel::kSync));
@@ -18,7 +18,7 @@ index a560ab6268c7322ec9169f4ebf4e582e4a6cd99e..e9565e70a91e44c9aeef4cee34ff4e84
const SyncStatusLabels status_labels = GetSyncStatusLabels(profile_);
// TODO(crbug.com/40660240): Consider unifying some of the fields below to
-@@ -1292,6 +1294,7 @@ void PeopleHandler::MaybeMarkSyncConfiguring() {
+@@ -1271,6 +1273,7 @@ void PeopleHandler::MaybeMarkSyncConfiguring() {
}
bool PeopleHandler::IsProfileAuthNeededOrHasErrors() {
diff --git a/patches/chrome-browser-ui-webui-settings-settings_localized_strings_provider.cc.patch b/patches/chrome-browser-ui-webui-settings-settings_localized_strings_provider.cc.patch
index d0259a5b2603..5c638b18e6db 100644
--- a/patches/chrome-browser-ui-webui-settings-settings_localized_strings_provider.cc.patch
+++ b/patches/chrome-browser-ui-webui-settings-settings_localized_strings_provider.cc.patch
@@ -1,8 +1,8 @@
diff --git a/chrome/browser/ui/webui/settings/settings_localized_strings_provider.cc b/chrome/browser/ui/webui/settings/settings_localized_strings_provider.cc
-index 8fe72571cea77a1d4e00c86f75daba90da5273f7..2aafd65d0bf607ebba0d8258ac443e3655eba3ae 100644
+index c22e07de086a3df92298c87ef412d3b941b4a45d..1550f7af063535c3f1a65510bff3f70458c25f60 100644
--- a/chrome/browser/ui/webui/settings/settings_localized_strings_provider.cc
+++ b/chrome/browser/ui/webui/settings/settings_localized_strings_provider.cc
-@@ -3670,6 +3670,7 @@ void AddLocalizedStrings(content::WebUIDataSource* html_source,
+@@ -3700,6 +3700,7 @@ void AddLocalizedStrings(content::WebUIDataSource* html_source,
policy_indicator::AddLocalizedStrings(html_source);
AddSecurityKeysStrings(html_source);
diff --git a/patches/chrome-browser-ui-webui-settings-site_settings_helper.cc.patch b/patches/chrome-browser-ui-webui-settings-site_settings_helper.cc.patch
index 45e11e390f72..e3f7cd6a2c98 100644
--- a/patches/chrome-browser-ui-webui-settings-site_settings_helper.cc.patch
+++ b/patches/chrome-browser-ui-webui-settings-site_settings_helper.cc.patch
@@ -1,8 +1,8 @@
diff --git a/chrome/browser/ui/webui/settings/site_settings_helper.cc b/chrome/browser/ui/webui/settings/site_settings_helper.cc
-index fda8d005b3785a91a0d596405cd7cfa7f57e21d5..b948addf8051da9ecbd571b8494a014aaa7e784a 100644
+index eb56ea4bd8c50e6e63b6150c92ec2cd8ecc4985f..aa4b35537a8223fb1acd2f9f323172c924274932 100644
--- a/chrome/browser/ui/webui/settings/site_settings_helper.cc
+++ b/chrome/browser/ui/webui/settings/site_settings_helper.cc
-@@ -228,6 +228,7 @@ const ContentSettingsTypeNameEntry kContentSettingsTypeGroupNames[] = {
+@@ -229,6 +229,7 @@ const ContentSettingsTypeNameEntry kContentSettingsTypeGroupNames[] = {
{ContentSettingsType::DIRECT_SOCKETS, nullptr},
{ContentSettingsType::REVOKED_ABUSIVE_NOTIFICATION_PERMISSIONS, nullptr},
{ContentSettingsType::TOP_LEVEL_TPCD_ORIGIN_TRIAL, nullptr},
@@ -10,7 +10,7 @@ index fda8d005b3785a91a0d596405cd7cfa7f57e21d5..b948addf8051da9ecbd571b8494a014a
};
static_assert(
-@@ -472,6 +473,7 @@ bool HasRegisteredGroupName(ContentSettingsType type) {
+@@ -473,6 +474,7 @@ bool HasRegisteredGroupName(ContentSettingsType type) {
}
ContentSettingsType ContentSettingsTypeFromGroupName(std::string_view name) {
diff --git a/patches/chrome-browser-ui-webui-theme_source.cc.patch b/patches/chrome-browser-ui-webui-theme_source.cc.patch
index d8433fb3d1d5..7ce3738e03ce 100644
--- a/patches/chrome-browser-ui-webui-theme_source.cc.patch
+++ b/patches/chrome-browser-ui-webui-theme_source.cc.patch
@@ -1,5 +1,5 @@
diff --git a/chrome/browser/ui/webui/theme_source.cc b/chrome/browser/ui/webui/theme_source.cc
-index cf3fe5251f7e014cd67c944642bb9255f693c246..99ce3ceb0624fe5cf26d7a7dd0b7ec2b7e60b806 100644
+index db9ca69d3bbdce558d0937a58aecd9faf8b246aa..384f4cd0f5e9d460f4db23fd0935a2afa7666e78 100644
--- a/chrome/browser/ui/webui/theme_source.cc
+++ b/chrome/browser/ui/webui/theme_source.cc
@@ -138,7 +138,7 @@ void ThemeSource::StartDataRequest(
diff --git a/patches/chrome-browser-web_applications-os_integration-web_app_shortcut_mac.mm.patch b/patches/chrome-browser-web_applications-os_integration-web_app_shortcut_mac.mm.patch
index e9ec7e2d4809..896122b392ba 100644
--- a/patches/chrome-browser-web_applications-os_integration-web_app_shortcut_mac.mm.patch
+++ b/patches/chrome-browser-web_applications-os_integration-web_app_shortcut_mac.mm.patch
@@ -1,8 +1,8 @@
diff --git a/chrome/browser/web_applications/os_integration/web_app_shortcut_mac.mm b/chrome/browser/web_applications/os_integration/web_app_shortcut_mac.mm
-index c7ebc8c13af6d90c279c1c688d409863a7835965..14501e6d5b55d13f3d3900bcefbbce71285918db 100644
+index f9d0edd9ceb6f58647cb8e72f7ddc3f9d1995732..98540e08722f9a1a26d761f69bd81dc1a5f31362 100644
--- a/chrome/browser/web_applications/os_integration/web_app_shortcut_mac.mm
+++ b/chrome/browser/web_applications/os_integration/web_app_shortcut_mac.mm
-@@ -1165,6 +1165,7 @@ base::FilePath GetChromeAppsFolder() {
+@@ -1161,6 +1161,7 @@ base::FilePath GetChromeAppsFolder() {
if (path.empty())
return path;
diff --git a/patches/chrome-common-BUILD.gn.patch b/patches/chrome-common-BUILD.gn.patch
index 4e84df1676d7..af55fa524644 100644
--- a/patches/chrome-common-BUILD.gn.patch
+++ b/patches/chrome-common-BUILD.gn.patch
@@ -1,8 +1,8 @@
diff --git a/chrome/common/BUILD.gn b/chrome/common/BUILD.gn
-index 2d7c5d7155b02d22a85d09830516d812daab5d92..0a644971f9b8333c7fc84d38cce5413ec7938266 100644
+index ec131242b2f01954ca7e04e210dbfbc1e0faeac8..eb631fe9be94c60f80a66ff74bf1d5a40f507e24 100644
--- a/chrome/common/BUILD.gn
+++ b/chrome/common/BUILD.gn
-@@ -103,6 +103,7 @@ source_set("channel_info") {
+@@ -100,6 +100,7 @@ source_set("channel_info") {
} else if (is_posix) {
sources += [ "channel_info_posix.cc" ]
}
@@ -10,7 +10,7 @@ index 2d7c5d7155b02d22a85d09830516d812daab5d92..0a644971f9b8333c7fc84d38cce5413e
}
source_set("ini_parser") {
-@@ -279,6 +280,7 @@ static_library("common_lib") {
+@@ -276,6 +277,7 @@ static_library("common_lib") {
if (enable_ppapi) {
public_deps += [ "//ppapi/shared_impl" ]
}
@@ -18,7 +18,7 @@ index 2d7c5d7155b02d22a85d09830516d812daab5d92..0a644971f9b8333c7fc84d38cce5413e
if (enable_extensions) {
sources += [
-@@ -542,6 +544,7 @@ static_library("non_code_constants") {
+@@ -539,6 +541,7 @@ static_library("non_code_constants") {
if (is_win) {
sources += [ "chrome_icon_resources_win.h" ]
}
diff --git a/patches/chrome-common-extensions-chrome_extensions_client.cc.patch b/patches/chrome-common-extensions-chrome_extensions_client.cc.patch
index 22f23c56455a..1e4ba799796f 100644
--- a/patches/chrome-common-extensions-chrome_extensions_client.cc.patch
+++ b/patches/chrome-common-extensions-chrome_extensions_client.cc.patch
@@ -1,5 +1,5 @@
diff --git a/chrome/common/extensions/chrome_extensions_client.cc b/chrome/common/extensions/chrome_extensions_client.cc
-index 805398d564ca9854327b9a02afa2567d4a07c82d..4a17a923c34143725eb6efccfa1ed94988bc75a7 100644
+index 63376c9e05f9439eaca3c169498c78d0a5f990cd..91c0e5baa40575cd468d324866a27b98653fa68b 100644
--- a/chrome/common/extensions/chrome_extensions_client.cc
+++ b/chrome/common/extensions/chrome_extensions_client.cc
@@ -13,6 +13,7 @@
diff --git a/patches/chrome-installer-linux-BUILD.gn.patch b/patches/chrome-installer-linux-BUILD.gn.patch
index 2156e7589d4c..3e1a98ef9c3d 100644
--- a/patches/chrome-installer-linux-BUILD.gn.patch
+++ b/patches/chrome-installer-linux-BUILD.gn.patch
@@ -1,5 +1,5 @@
diff --git a/chrome/installer/linux/BUILD.gn b/chrome/installer/linux/BUILD.gn
-index acab6006542390bfecfcbe3bb7749c836176587c..594c5ef7d5116f99595605edaf8ead72aa66b357 100644
+index 0617aa9438d3295f39b11662646ea98e365ebadc..c24aa36bbadc78e8e6e4790ce7d03cd3bda96e67 100644
--- a/chrome/installer/linux/BUILD.gn
+++ b/chrome/installer/linux/BUILD.gn
@@ -62,6 +62,7 @@ if (build_with_internal_optimization_guide) {
diff --git a/patches/chrome-installer-linux-common-wrapper.patch b/patches/chrome-installer-linux-common-wrapper.patch
index a3eeb07e250c..03acbe8bb0f8 100644
--- a/patches/chrome-installer-linux-common-wrapper.patch
+++ b/patches/chrome-installer-linux-common-wrapper.patch
@@ -1,8 +1,8 @@
diff --git a/chrome/installer/linux/common/wrapper b/chrome/installer/linux/common/wrapper
-index 20c6e8fe2933f3bded5ed5c51087fafc13751c87..b726f53a178cd28688402aebf68a2f0649ab90e8 100755
+index aaa46bf71f6a369060a35d594dd509741db4d170..c79bb69e966781ad63174b31e70096e2f708aa8b 100755
--- a/chrome/installer/linux/common/wrapper
+++ b/chrome/installer/linux/common/wrapper
-@@ -45,5 +45,4 @@ exec < /dev/null
+@@ -36,5 +36,4 @@ exec < /dev/null
exec > >(exec cat)
exec 2> >(exec cat >&2)
diff --git a/patches/chrome-installer-linux-debian-update_dist_package_versions.py.patch b/patches/chrome-installer-linux-debian-update_dist_package_versions.py.patch
index 24d5a1edd4dd..ebaa5ed6d8af 100644
--- a/patches/chrome-installer-linux-debian-update_dist_package_versions.py.patch
+++ b/patches/chrome-installer-linux-debian-update_dist_package_versions.py.patch
@@ -1,8 +1,8 @@
diff --git a/chrome/installer/linux/debian/update_dist_package_versions.py b/chrome/installer/linux/debian/update_dist_package_versions.py
-index 76aa431abe4a3d26981a4e074491b43a6becadb8..d193baaf44c2dc9fa4d65f7d5190c881de6f9b82 100755
+index 099b8f1b838654c7f837b251caae5c0cc0233893..8ede64a1ebf34f9f5a028c3352f9252f5ad3e932 100755
--- a/chrome/installer/linux/debian/update_dist_package_versions.py
+++ b/chrome/installer/linux/debian/update_dist_package_versions.py
-@@ -39,6 +39,7 @@ PACKAGE_FILTER = {
+@@ -38,6 +38,7 @@ PACKAGE_FILTER = {
"libatspi2.0-0",
"libc6",
"libcairo2",
@@ -10,7 +10,7 @@ index 76aa431abe4a3d26981a4e074491b43a6becadb8..d193baaf44c2dc9fa4d65f7d5190c881
"libcups2",
"libdbus-1-3",
"libdrm2",
-@@ -71,6 +72,7 @@ PACKAGE_FILTER = {
+@@ -70,6 +71,7 @@ PACKAGE_FILTER = {
"libxshmfence1",
"libxss1",
"libxtst6",
diff --git a/patches/chrome-installer-linux-rpm-build.sh.patch b/patches/chrome-installer-linux-rpm-build.sh.patch
index ec01f03242ff..013473774980 100644
--- a/patches/chrome-installer-linux-rpm-build.sh.patch
+++ b/patches/chrome-installer-linux-rpm-build.sh.patch
@@ -1,5 +1,5 @@
diff --git a/chrome/installer/linux/rpm/build.sh b/chrome/installer/linux/rpm/build.sh
-index fdc61e7a98647ddce1a762c61ed731f21ab01526..b7459784114e932b3d39955c53bf4db6725bbaea 100755
+index 15b3638c242bacb8ba68c4ebe561f23e56bec6aa..1b85747832053fc91022cb4c89adc68c3917f8b6 100755
--- a/chrome/installer/linux/rpm/build.sh
+++ b/chrome/installer/linux/rpm/build.sh
@@ -15,8 +15,9 @@ gen_spec() {
@@ -13,7 +13,7 @@ index fdc61e7a98647ddce1a762c61ed731f21ab01526..b7459784114e932b3d39955c53bf4db6
local INSTALLDIR="${INSTALLDIR}-${CHANNEL}"
local PACKAGE="${PACKAGE}-${CHANNEL}"
local MENUNAME="${MENUNAME} (${CHANNEL})"
-@@ -87,6 +88,8 @@ do_package() {
+@@ -88,6 +89,8 @@ do_package() {
PROVIDES="${PACKAGE}"
RPM_COMMON_DEPS="${OUTPUTDIR}/rpm_common.deps"
DEPENDS=$(cat "${RPM_COMMON_DEPS}" | tr '\n' ',')
@@ -22,7 +22,7 @@ index fdc61e7a98647ddce1a762c61ed731f21ab01526..b7459784114e932b3d39955c53bf4db6
gen_spec
# Create temporary rpmbuild dirs.
-@@ -109,7 +112,10 @@ do_package() {
+@@ -110,7 +113,10 @@ do_package() {
--define "__os_install_post %{nil}" \
--define "_build_id_links none" \
"${SPEC}"
@@ -34,7 +34,7 @@ index fdc61e7a98647ddce1a762c61ed731f21ab01526..b7459784114e932b3d39955c53bf4db6
mv "$RPMBUILD_DIR/RPMS/$ARCHITECTURE/${PKGNAME}.${ARCHITECTURE}.rpm" \
"${OUTPUTDIR}"
# Make sure the package is world-readable, otherwise it causes problems when
-@@ -145,7 +151,10 @@ verify_channel() {
+@@ -146,7 +152,10 @@ verify_channel() {
CHANNEL=stable
;;
unstable|dev|alpha )
diff --git a/patches/chrome-installer-setup-BUILD.gn.patch b/patches/chrome-installer-setup-BUILD.gn.patch
index 976419124fd3..ddefc543240d 100644
--- a/patches/chrome-installer-setup-BUILD.gn.patch
+++ b/patches/chrome-installer-setup-BUILD.gn.patch
@@ -1,8 +1,8 @@
diff --git a/chrome/installer/setup/BUILD.gn b/chrome/installer/setup/BUILD.gn
-index 039ff4b1aaf399996d95a0e0354c6595dfc385b2..9a2d75133d87a341b8df1f48f74caca202b85d85 100644
+index 4e56c210dcd03649d8dde62109865a65b3330bcc..cb7ef71f0033eb9320796758b43400d5e34cf525 100644
--- a/chrome/installer/setup/BUILD.gn
+++ b/chrome/installer/setup/BUILD.gn
-@@ -130,6 +130,7 @@ if (is_win) {
+@@ -124,6 +124,7 @@ if (is_win) {
"channel_override_work_item.h",
]
}
diff --git a/patches/chrome-installer-util-BUILD.gn.patch b/patches/chrome-installer-util-BUILD.gn.patch
index 412eaaa0ab61..320b26736237 100644
--- a/patches/chrome-installer-util-BUILD.gn.patch
+++ b/patches/chrome-installer-util-BUILD.gn.patch
@@ -1,8 +1,8 @@
diff --git a/chrome/installer/util/BUILD.gn b/chrome/installer/util/BUILD.gn
-index cf8f5dfe90afd837a4527cc2260a3281540dd43a..05dbb3a6134835478ce622883e33689d473f6b59 100644
+index ae76dc29bc9a20b70dcda829c60785f3665ddefb..b58efffc8eb1e2e2333dbcbd9aba6e91d6380e79 100644
--- a/chrome/installer/util/BUILD.gn
+++ b/chrome/installer/util/BUILD.gn
-@@ -197,6 +197,7 @@ static_library("with_no_strings") {
+@@ -196,6 +196,7 @@ static_library("with_no_strings") {
"initial_preferences.h",
]
}
@@ -10,7 +10,7 @@ index cf8f5dfe90afd837a4527cc2260a3281540dd43a..05dbb3a6134835478ce622883e33689d
}
# Use this version of installer_util to link to the generated strings in .rc
-@@ -229,6 +230,7 @@ generate_embedded_i18n("generate_strings") {
+@@ -228,6 +229,7 @@ generate_embedded_i18n("generate_strings") {
output_file_name_base = "installer_util_strings"
branding = branding_path_product
diff --git a/patches/chrome-installer-util-shell_util.cc.patch b/patches/chrome-installer-util-shell_util.cc.patch
index bb23d6815e80..4b4e63f0aff0 100644
--- a/patches/chrome-installer-util-shell_util.cc.patch
+++ b/patches/chrome-installer-util-shell_util.cc.patch
@@ -1,8 +1,8 @@
diff --git a/chrome/installer/util/shell_util.cc b/chrome/installer/util/shell_util.cc
-index 3db0ccc05894cf4d0a3feff2bb57072b767f3795..a9886d9231dba4ad0af3bf1c1dbf8490fe51ac47 100644
+index 87a2c70b6cb1a0153c1afae935f316a6bb2710f9..40722d7674ea83ce7e3fe7e3431e014528e44427 100644
--- a/chrome/installer/util/shell_util.cc
+++ b/chrome/installer/util/shell_util.cc
-@@ -365,6 +365,7 @@ void GetChromeProgIdEntries(
+@@ -364,6 +364,7 @@ void GetChromeProgIdEntries(
app_info.delegate_clsid = install_static::GetLegacyCommandExecuteImplClsid();
GetProgIdEntries(app_info, entries);
@@ -10,7 +10,7 @@ index 3db0ccc05894cf4d0a3feff2bb57072b767f3795..a9886d9231dba4ad0af3bf1c1dbf8490
if (!app_info.delegate_clsid.empty()) {
auto delegate_execute_entries =
-@@ -460,6 +461,7 @@ void GetShellIntegrationEntries(
+@@ -459,6 +460,7 @@ void GetShellIntegrationEntries(
const std::wstring html_prog_id(GetBrowserProgId(suffix));
for (int i = 0; ShellUtil::kPotentialFileAssociations[i] != nullptr; i++) {
@@ -18,7 +18,7 @@ index 3db0ccc05894cf4d0a3feff2bb57072b767f3795..a9886d9231dba4ad0af3bf1c1dbf8490
entries->push_back(std::make_unique(
capabilities + L"\\FileAssociations",
ShellUtil::kPotentialFileAssociations[i], html_prog_id));
-@@ -484,6 +486,7 @@ void GetAppExtRegistrationEntries(
+@@ -483,6 +485,7 @@ void GetAppExtRegistrationEntries(
std::wstring key_name =
base::StrCat({ShellUtil::kRegClasses, kFilePathSeparator, ext,
kFilePathSeparator, ShellUtil::kRegOpenWithProgids});
@@ -26,7 +26,7 @@ index 3db0ccc05894cf4d0a3feff2bb57072b767f3795..a9886d9231dba4ad0af3bf1c1dbf8490
entries->push_back(
std::make_unique(key_name, prog_id, std::wstring()));
}
-@@ -1525,8 +1528,10 @@ const wchar_t* ShellUtil::kPotentialFileAssociations[] = {
+@@ -1524,8 +1527,10 @@ const wchar_t* ShellUtil::kPotentialFileAssociations[] = {
L".htm", L".html", L".pdf", L".shtml", L".svg",
L".xht", L".xhtml", L".webp", nullptr};
const wchar_t* ShellUtil::kBrowserProtocolAssociations[] = {L"http", L"https",
diff --git a/patches/chrome-renderer-BUILD.gn.patch b/patches/chrome-renderer-BUILD.gn.patch
index d18e3158e2aa..06d6786b0a22 100644
--- a/patches/chrome-renderer-BUILD.gn.patch
+++ b/patches/chrome-renderer-BUILD.gn.patch
@@ -1,5 +1,5 @@
diff --git a/chrome/renderer/BUILD.gn b/chrome/renderer/BUILD.gn
-index 857247dd93f75870018a6ac2058828e935fe9eb9..03e8397393f02bbb4dc1e10b72533609d7d61bac 100644
+index 3108e12b92e7fdfec2cf7b15ef7a52779a4db33a..be4384478f181581572d214a27970484c3009ce7 100644
--- a/chrome/renderer/BUILD.gn
+++ b/chrome/renderer/BUILD.gn
@@ -242,6 +242,7 @@ static_library("renderer") {
diff --git a/patches/chrome-renderer-chrome_content_renderer_client.cc.patch b/patches/chrome-renderer-chrome_content_renderer_client.cc.patch
index 79236ddbc88e..a97f68c1f7c4 100644
--- a/patches/chrome-renderer-chrome_content_renderer_client.cc.patch
+++ b/patches/chrome-renderer-chrome_content_renderer_client.cc.patch
@@ -1,8 +1,8 @@
diff --git a/chrome/renderer/chrome_content_renderer_client.cc b/chrome/renderer/chrome_content_renderer_client.cc
-index 60bc3751cb325c8e3b7383f2fa47454885c7dbbf..f74883d41deb8ff219445c9faf43c69fd62fd9ca 100644
+index 120ec8af72623f55a00ece4bbc3706d861baf692..f037dbc66ee4f8055a436e394f7b2c644d6f03f6 100644
--- a/chrome/renderer/chrome_content_renderer_client.cc
+++ b/chrome/renderer/chrome_content_renderer_client.cc
-@@ -603,7 +603,7 @@ void ChromeContentRendererClient::RenderFrameCreated(
+@@ -597,7 +597,7 @@ void ChromeContentRendererClient::RenderFrameCreated(
ChromeExtensionsRendererClient::GetInstance()->extension_dispatcher());
#endif
content_settings::ContentSettingsAgentImpl* content_settings =
@@ -11,11 +11,11 @@ index 60bc3751cb325c8e3b7383f2fa47454885c7dbbf..f74883d41deb8ff219445c9faf43c69f
render_frame, should_allow_for_content_settings,
std::move(content_settings_delegate));
if (chrome_observer_.get()) {
-@@ -786,6 +786,7 @@ void ChromeContentRendererClient::RenderFrameCreated(
- #if !BUILDFLAG(IS_ANDROID) && !BUILDFLAG(IS_CHROMEOS)
- MultilineDetector::InstallIfNecessary(render_frame);
+@@ -777,6 +777,7 @@ void ChromeContentRendererClient::RenderFrameCreated(
+ }
#endif
-+ BRAVE_RENDER_FRAME_CREATED
++ BRAVE_RENDER_FRAME_CREATED
if (render_frame->IsMainFrame()) {
new commerce::CommerceWebExtractor(render_frame, registry);
+ }
diff --git a/patches/chrome-renderer-chrome_content_renderer_client.h.patch b/patches/chrome-renderer-chrome_content_renderer_client.h.patch
index f0bb9682a6ca..ca8c81175907 100644
--- a/patches/chrome-renderer-chrome_content_renderer_client.h.patch
+++ b/patches/chrome-renderer-chrome_content_renderer_client.h.patch
@@ -1,8 +1,8 @@
diff --git a/chrome/renderer/chrome_content_renderer_client.h b/chrome/renderer/chrome_content_renderer_client.h
-index b66d6f180d2565b315ddad41ef55781d10757364..de6de493fee577a432685a2d536906c2f26dd30e 100644
+index f94ed13c6ea007e896e19c42001ec93c0d2d5145..ddd53ec60f6ca023550bf13dd95a90f47e1cba66 100644
--- a/chrome/renderer/chrome_content_renderer_client.h
+++ b/chrome/renderer/chrome_content_renderer_client.h
-@@ -242,6 +242,7 @@ class ChromeContentRendererClient
+@@ -244,6 +244,7 @@ class ChromeContentRendererClient
#endif
private:
diff --git a/patches/chrome-test-BUILD.gn.patch b/patches/chrome-test-BUILD.gn.patch
index 2299472264e5..54d57eb7cfef 100644
--- a/patches/chrome-test-BUILD.gn.patch
+++ b/patches/chrome-test-BUILD.gn.patch
@@ -1,8 +1,8 @@
diff --git a/chrome/test/BUILD.gn b/chrome/test/BUILD.gn
-index 6870df1cee3431d979f2a729316d6449dbf1bea5..9cfc85efc0e771fd6b720ec6764621d403f94c1a 100644
+index c224db1174c1d90f38860926d02b282ceb4e30bc..c8248437c8a550d28ab26c58764e2fcd977d704d 100644
--- a/chrome/test/BUILD.gn
+++ b/chrome/test/BUILD.gn
-@@ -501,6 +501,7 @@ static_library("test_support") {
+@@ -509,6 +509,7 @@ static_library("test_support") {
"//ui/gl",
]
diff --git a/patches/chrome-test-data-webui-settings-BUILD.gn.patch b/patches/chrome-test-data-webui-settings-BUILD.gn.patch
index aae3762f93ea..d7e81e158108 100644
--- a/patches/chrome-test-data-webui-settings-BUILD.gn.patch
+++ b/patches/chrome-test-data-webui-settings-BUILD.gn.patch
@@ -1,8 +1,8 @@
diff --git a/chrome/test/data/webui/settings/BUILD.gn b/chrome/test/data/webui/settings/BUILD.gn
-index f92a5f449af9e71b539f0bd6715320fbdbad0496..e8df45e27960cf0df54b87a0ec823ca7b59f2f5b 100644
+index 64aaf937350eafaf5368445540c2c4e2520065ef..236bb80b0b6643e058102f0149a2ce66736829b1 100644
--- a/chrome/test/data/webui/settings/BUILD.gn
+++ b/chrome/test/data/webui/settings/BUILD.gn
-@@ -241,6 +241,7 @@ build_webui_tests("build") {
+@@ -243,6 +243,7 @@ build_webui_tests("build") {
ts_definitions +=
[ "//tools/typescript/definitions/quick_unlock_private.d.ts" ]
}
diff --git a/patches/chrome-updater-branding.gni.patch b/patches/chrome-updater-branding.gni.patch
index 23754da23fcd..ac4e2135ee68 100644
--- a/patches/chrome-updater-branding.gni.patch
+++ b/patches/chrome-updater-branding.gni.patch
@@ -1,8 +1,8 @@
diff --git a/chrome/updater/branding.gni b/chrome/updater/branding.gni
-index e250669ab36610e20e16bd916b2162910037fa0c..c59c68e13711d69bddf98b002bd080dee17e0af0 100644
+index 46083019f33e1d65168565951e4ec3a1f896e8da..0551e85ba8dd06ce0d164c916ddaf0a39aac20f9 100644
--- a/chrome/updater/branding.gni
+++ b/chrome/updater/branding.gni
-@@ -184,3 +184,4 @@ if (is_chrome_branded) {
+@@ -192,3 +192,4 @@ if (is_chrome_branded) {
# Chrome and Chromium share the same endpoints for now.
update_check_url = "https://update.googleapis.com/service/update2/json"
device_management_server_url = "https://m.google.com/devicemanagement/data/api"
diff --git a/patches/components-browser_ui-settings-android-BUILD.gn.patch b/patches/components-browser_ui-settings-android-BUILD.gn.patch
index 511869cdfd52..382cc583667b 100644
--- a/patches/components-browser_ui-settings-android-BUILD.gn.patch
+++ b/patches/components-browser_ui-settings-android-BUILD.gn.patch
@@ -1,5 +1,5 @@
diff --git a/components/browser_ui/settings/android/BUILD.gn b/components/browser_ui/settings/android/BUILD.gn
-index 776700962d702299a9e575ec1607743765d8a0b5..6541f6fcd0ebd7887b32174876e4bb8767abb38d 100644
+index 4483d08b6aa86db5c8a12aaa6c85d2a06eb875d3..0e191908b01c05340ae8af15e9f1992e3ffa7075 100644
--- a/components/browser_ui/settings/android/BUILD.gn
+++ b/components/browser_ui/settings/android/BUILD.gn
@@ -49,6 +49,7 @@ android_library("java") {
diff --git a/patches/components-browser_ui-site_settings-android-java-src-org-chromium-components-browser_ui-site_settings-SingleCategorySettings.java.patch b/patches/components-browser_ui-site_settings-android-java-src-org-chromium-components-browser_ui-site_settings-SingleCategorySettings.java.patch
index ee9ad1a5f383..41cb1338e04c 100644
--- a/patches/components-browser_ui-site_settings-android-java-src-org-chromium-components-browser_ui-site_settings-SingleCategorySettings.java.patch
+++ b/patches/components-browser_ui-site_settings-android-java-src-org-chromium-components-browser_ui-site_settings-SingleCategorySettings.java.patch
@@ -1,8 +1,8 @@
diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SingleCategorySettings.java b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SingleCategorySettings.java
-index cd36af7801b56f82957648d9332812b072532377..f102c2bcc83937199ee52e1bce6b981cfd877f59 100644
+index cce77face992ff4749337e92efa29451d111a4b5..3e9cdddcd56ffa42ec517b5295d476d515924674 100644
--- a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SingleCategorySettings.java
+++ b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SingleCategorySettings.java
-@@ -560,7 +560,7 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment
+@@ -558,7 +558,7 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment
if (queryHasChanged) getInfoForOrigins();
return true;
}
diff --git a/patches/components-browser_ui-widget-android-java-res-values-dimens.xml.patch b/patches/components-browser_ui-widget-android-java-res-values-dimens.xml.patch
index 05053da5d73c..d0ac3d4e2215 100644
--- a/patches/components-browser_ui-widget-android-java-res-values-dimens.xml.patch
+++ b/patches/components-browser_ui-widget-android-java-res-values-dimens.xml.patch
@@ -1,5 +1,5 @@
diff --git a/components/browser_ui/widget/android/java/res/values/dimens.xml b/components/browser_ui/widget/android/java/res/values/dimens.xml
-index 207686bf8c566eb270123e157bfa2acfa4b86ed8..83bb7e0f4d20cc67f402c31f222aac4cf48bdcf9 100644
+index eee6885ee03f83ab9e05928a9a429504446efb89..337e3970dc1d78882f13f4739eb8fc93e7daecf1 100644
--- a/components/browser_ui/widget/android/java/res/values/dimens.xml
+++ b/components/browser_ui/widget/android/java/res/values/dimens.xml
@@ -67,7 +67,7 @@ found in the LICENSE file.
diff --git a/patches/components-content_settings-browser-page_specific_content_settings.cc.patch b/patches/components-content_settings-browser-page_specific_content_settings.cc.patch
index a8bf1eada108..fcbbc8ee688c 100644
--- a/patches/components-content_settings-browser-page_specific_content_settings.cc.patch
+++ b/patches/components-content_settings-browser-page_specific_content_settings.cc.patch
@@ -1,5 +1,5 @@
diff --git a/components/content_settings/browser/page_specific_content_settings.cc b/components/content_settings/browser/page_specific_content_settings.cc
-index 995562a826e576510e252b79f7dd6409f6c49114..98210db0990d47acebe74ee2bec45b23b8e79feb 100644
+index f5ab165bb68eb29fb10763b3ec688794e7d41be0..4be394f5a2999a9d14fed94547e246c59563f07e 100644
--- a/components/content_settings/browser/page_specific_content_settings.cc
+++ b/components/content_settings/browser/page_specific_content_settings.cc
@@ -821,6 +821,7 @@ bool PageSpecificContentSettings::IsContentBlocked(
diff --git a/patches/components-content_settings-core-browser-BUILD.gn.patch b/patches/components-content_settings-core-browser-BUILD.gn.patch
index e91528f05392..c977262e0433 100644
--- a/patches/components-content_settings-core-browser-BUILD.gn.patch
+++ b/patches/components-content_settings-core-browser-BUILD.gn.patch
@@ -1,5 +1,5 @@
diff --git a/components/content_settings/core/browser/BUILD.gn b/components/content_settings/core/browser/BUILD.gn
-index 31333abdfe47a904df53190311cdca6fb2319680..ca588f8165798d45d77105ee68b4b9ee32760e58 100644
+index c1dbea6948d2a95a235d31b6376e32e9b9fad3d6..78c729a99a3201c013fd470a32d0ad12ec8b493a 100644
--- a/components/content_settings/core/browser/BUILD.gn
+++ b/components/content_settings/core/browser/BUILD.gn
@@ -85,6 +85,7 @@ static_library("browser") {
diff --git a/patches/components-content_settings-core-browser-content_settings_default_provider.cc.patch b/patches/components-content_settings-core-browser-content_settings_default_provider.cc.patch
index c59df24bced8..9d33ae2dc8de 100644
--- a/patches/components-content_settings-core-browser-content_settings_default_provider.cc.patch
+++ b/patches/components-content_settings-core-browser-content_settings_default_provider.cc.patch
@@ -1,5 +1,5 @@
diff --git a/components/content_settings/core/browser/content_settings_default_provider.cc b/components/content_settings/core/browser/content_settings_default_provider.cc
-index ff55ff2d1f6d28d248f5c9a95310db7882d95030..1f51ae77577ae3be817129edc199f3f7193ea43b 100644
+index c4aa01e1ccd4fe80fdd1bb913ecadaad605ddfb6..c918800ea74befbaf04dc8011434877b02ebeb82 100644
--- a/components/content_settings/core/browser/content_settings_default_provider.cc
+++ b/components/content_settings/core/browser/content_settings_default_provider.cc
@@ -375,6 +375,7 @@ void DefaultProvider::DiscardOrMigrateObsoletePreferences() {
diff --git a/patches/components-content_settings-core-browser-content_settings_policy_provider.cc.patch b/patches/components-content_settings-core-browser-content_settings_policy_provider.cc.patch
index 369538249ddc..c196ad59d195 100644
--- a/patches/components-content_settings-core-browser-content_settings_policy_provider.cc.patch
+++ b/patches/components-content_settings-core-browser-content_settings_policy_provider.cc.patch
@@ -1,5 +1,5 @@
diff --git a/components/content_settings/core/browser/content_settings_policy_provider.cc b/components/content_settings/core/browser/content_settings_policy_provider.cc
-index 44302e399fb06e1b582d17f1ae33b233b5c74117..7cacff717e97f8f5951c8bf13b4ddcf8abfa7ca4 100644
+index aa444176c015327e260f22f4a723eb77b619311d..c34241e75444f3f08a85674a52c88a95a620f0b3 100644
--- a/components/content_settings/core/browser/content_settings_policy_provider.cc
+++ b/components/content_settings/core/browser/content_settings_policy_provider.cc
@@ -38,6 +38,7 @@ struct PrefsForManagedContentSettingsMapEntry {
diff --git a/patches/components-content_settings-core-browser-content_settings_registry.cc.patch b/patches/components-content_settings-core-browser-content_settings_registry.cc.patch
index f8e87b2c7924..31cd433cf8b6 100644
--- a/patches/components-content_settings-core-browser-content_settings_registry.cc.patch
+++ b/patches/components-content_settings-core-browser-content_settings_registry.cc.patch
@@ -1,5 +1,5 @@
diff --git a/components/content_settings/core/browser/content_settings_registry.cc b/components/content_settings/core/browser/content_settings_registry.cc
-index 6385481208be786b1c4a59563e2dcfa211c3d19e..4e31088b26707599490963377075286ed4eb5741 100644
+index 229ac346cfc83c25577f19fb7d3ad785056392e9..82beff70ae4e57a03d55ec8f08c4edc265698079 100644
--- a/components/content_settings/core/browser/content_settings_registry.cc
+++ b/components/content_settings/core/browser/content_settings_registry.cc
@@ -779,6 +779,7 @@ void ContentSettingsRegistry::Init() {
diff --git a/patches/components-content_settings-core-browser-content_settings_uma_util.cc.patch b/patches/components-content_settings-core-browser-content_settings_uma_util.cc.patch
index 0b43335d0016..c9a53785e4a9 100644
--- a/patches/components-content_settings-core-browser-content_settings_uma_util.cc.patch
+++ b/patches/components-content_settings-core-browser-content_settings_uma_util.cc.patch
@@ -1,5 +1,5 @@
diff --git a/components/content_settings/core/browser/content_settings_uma_util.cc b/components/content_settings/core/browser/content_settings_uma_util.cc
-index ad6118ed676e31326078fd86d016517a98dcb1d2..cc97115fcdf6211865e0082d013b357bb87edd18 100644
+index 98a53bc230aaad04be9e92e3336785f687e83ce7..e22c4c629daef83bf568237cc6b8d4bae6e5aef4 100644
--- a/components/content_settings/core/browser/content_settings_uma_util.cc
+++ b/components/content_settings/core/browser/content_settings_uma_util.cc
@@ -142,6 +142,7 @@ constexpr auto kHistogramValue = base::MakeFixedFlatMapGetApplicationClientIdForFileScanning(),
diff --git a/patches/components-download-public-background_service-clients.cc.patch b/patches/components-download-public-background_service-clients.cc.patch
index 2de1901f266c..ef637adec821 100644
--- a/patches/components-download-public-background_service-clients.cc.patch
+++ b/patches/components-download-public-background_service-clients.cc.patch
@@ -1,5 +1,5 @@
diff --git a/components/download/public/background_service/clients.cc b/components/download/public/background_service/clients.cc
-index ca9151e61761137094c550fdbe25e204fa2916e1..e7047b84199e9f962666cc7bdd2ea9c545f898ae 100644
+index 969153db7eb99cf2a700770243e0a51532e85243..2e830d1463ae8b8461c905ee0ba1fc2974797510 100644
--- a/components/download/public/background_service/clients.cc
+++ b/components/download/public/background_service/clients.cc
@@ -28,6 +28,7 @@ std::string BackgroundDownloadClientToString(DownloadClient client) {
diff --git a/patches/components-embedder_support-user_agent_utils.cc.patch b/patches/components-embedder_support-user_agent_utils.cc.patch
index dd29fbe77be9..8edabfd3d007 100644
--- a/patches/components-embedder_support-user_agent_utils.cc.patch
+++ b/patches/components-embedder_support-user_agent_utils.cc.patch
@@ -1,5 +1,5 @@
diff --git a/components/embedder_support/user_agent_utils.cc b/components/embedder_support/user_agent_utils.cc
-index fe76e8806f05f7cf424ad0b97d369e943ce6af68..44e4bc436e5d2d9a960978070e7915002adb1101 100644
+index 0d9ed98759c4bc39ae06b1c554079b6e12d3463d..b80d1c9e0d03b7be5c89bcaf2ddfeb19e827e53a 100644
--- a/components/embedder_support/user_agent_utils.cc
+++ b/components/embedder_support/user_agent_utils.cc
@@ -190,6 +190,7 @@ const blink::UserAgentBrandList GetUserAgentBrandList(
diff --git a/patches/components-error_page-common-localized_error.cc.patch b/patches/components-error_page-common-localized_error.cc.patch
index 7757bbf4db17..e280dbe6c594 100644
--- a/patches/components-error_page-common-localized_error.cc.patch
+++ b/patches/components-error_page-common-localized_error.cc.patch
@@ -1,5 +1,5 @@
diff --git a/components/error_page/common/localized_error.cc b/components/error_page/common/localized_error.cc
-index f0f0ef8bbdc61dc834b11bb3a41754a3cc4971ac..307fdbc8aa1d808e5fab20694a033b3d236e6651 100644
+index 4c3311422b7f95fbb4aab5563f4cb8f4066c2833..a85a54ab5cb36b4b12a0b17e07600f789f4e77f9 100644
--- a/components/error_page/common/localized_error.cc
+++ b/components/error_page/common/localized_error.cc
@@ -497,6 +497,7 @@ const LocalizedErrorMap* LookupErrorMap(const std::string& error_domain,
diff --git a/patches/components-history-core-browser-BUILD.gn.patch b/patches/components-history-core-browser-BUILD.gn.patch
index 40d279aded43..07d002cd6fd0 100644
--- a/patches/components-history-core-browser-BUILD.gn.patch
+++ b/patches/components-history-core-browser-BUILD.gn.patch
@@ -1,8 +1,8 @@
diff --git a/components/history/core/browser/BUILD.gn b/components/history/core/browser/BUILD.gn
-index f4b12f17a97f1be720a9ccec2b9c9c5ecfa083ab..c8f80b91c1d08b01abf12a5a1908987c146cf5c8 100644
+index 6a15a04334ef64eb5154592e0b0adbee86231f64..f2a3b57f112812e08235e0b7b32851a7e5006bcf 100644
--- a/components/history/core/browser/BUILD.gn
+++ b/components/history/core/browser/BUILD.gn
-@@ -154,6 +154,7 @@ static_library("browser") {
+@@ -151,6 +151,7 @@ static_library("browser") {
"android/visit_sql_handler.h",
]
}
diff --git a/patches/components-infobars-core-infobar_delegate.h.patch b/patches/components-infobars-core-infobar_delegate.h.patch
index b1535480fd1d..4a8e2746efdb 100644
--- a/patches/components-infobars-core-infobar_delegate.h.patch
+++ b/patches/components-infobars-core-infobar_delegate.h.patch
@@ -1,5 +1,5 @@
diff --git a/components/infobars/core/infobar_delegate.h b/components/infobars/core/infobar_delegate.h
-index 7c3535e8c33aa8cd06ec40c45907e1399153f2e8..8b9ccb21376cc91ff5762cece86d8bb229156bd8 100644
+index 3e8c84b72300b7b4adb12a6b6d96791b96523280..bd83ac9a9809d57ad943346b43b03b789fc65df4 100644
--- a/components/infobars/core/infobar_delegate.h
+++ b/components/infobars/core/infobar_delegate.h
@@ -186,6 +186,7 @@ class InfoBarDelegate {
diff --git a/patches/components-metrics-machine_id_provider_win.cc.patch b/patches/components-metrics-machine_id_provider_win.cc.patch
index d4d832d6229f..c4edfb0730a4 100644
--- a/patches/components-metrics-machine_id_provider_win.cc.patch
+++ b/patches/components-metrics-machine_id_provider_win.cc.patch
@@ -1,5 +1,5 @@
diff --git a/components/metrics/machine_id_provider_win.cc b/components/metrics/machine_id_provider_win.cc
-index c7c96ff87563bb673efd71f80d157a6a3c808b00..00d25b6027d842b2c7a88709030e20ad08e8ae1e 100644
+index 6dbabb6790b2d8230bede25ecc811c2a4b05abd9..ac15f437c6dda1ccc87e5425919156168cb08ed2 100644
--- a/components/metrics/machine_id_provider_win.cc
+++ b/components/metrics/machine_id_provider_win.cc
@@ -20,7 +20,7 @@ namespace metrics {
diff --git a/patches/components-omnibox-browser-BUILD.gn.patch b/patches/components-omnibox-browser-BUILD.gn.patch
index 42a9ad1d6646..f875c904c6a3 100644
--- a/patches/components-omnibox-browser-BUILD.gn.patch
+++ b/patches/components-omnibox-browser-BUILD.gn.patch
@@ -1,8 +1,8 @@
diff --git a/components/omnibox/browser/BUILD.gn b/components/omnibox/browser/BUILD.gn
-index 8369f38591908bf93afebfc0c026ea27a5d3c9e5..632ace7ef590c36af431812a982ca91e71913ede 100644
+index bc4f61d72e4510ce3f8ccbd7c66b154a49d6083e..448933897b4c696747e345cda7202ba9bbf08f62 100644
--- a/components/omnibox/browser/BUILD.gn
+++ b/components/omnibox/browser/BUILD.gn
-@@ -370,6 +370,7 @@ static_library("browser") {
+@@ -373,6 +373,7 @@ static_library("browser") {
"//ui/base",
"//ui/gfx",
]
@@ -10,7 +10,7 @@ index 8369f38591908bf93afebfc0c026ea27a5d3c9e5..632ace7ef590c36af431812a982ca91e
configs += [ "//build/config/compiler:wexit_time_destructors" ]
-@@ -967,6 +968,7 @@ fuzzer_test("search_suggestion_parser_fuzzer") {
+@@ -971,6 +972,7 @@ fuzzer_test("search_suggestion_parser_fuzzer") {
mojom("mojo_bindings") {
sources = [ "omnibox.mojom" ]
diff --git a/patches/components-omnibox-browser-autocomplete_controller.cc.patch b/patches/components-omnibox-browser-autocomplete_controller.cc.patch
index fde741d35cfb..cc43a8892030 100644
--- a/patches/components-omnibox-browser-autocomplete_controller.cc.patch
+++ b/patches/components-omnibox-browser-autocomplete_controller.cc.patch
@@ -1,5 +1,5 @@
diff --git a/components/omnibox/browser/autocomplete_controller.cc b/components/omnibox/browser/autocomplete_controller.cc
-index 92f8ac3b0d45b03c5b0f2894bafbd7d91172914b..52de440079a8d195875f633be01b1ccc18451201 100644
+index cf49347462074fd33f2ac85325bc60ac8d018d09..ec494a39a7365952279906a2d2d389e58129f7fd 100644
--- a/components/omnibox/browser/autocomplete_controller.cc
+++ b/components/omnibox/browser/autocomplete_controller.cc
@@ -997,6 +997,7 @@ void AutocompleteController::InitializeAsyncProviders(int provider_types) {
diff --git a/patches/components-omnibox-browser-omnibox_edit_model.cc.patch b/patches/components-omnibox-browser-omnibox_edit_model.cc.patch
index fa0c8d846660..7d2b8597eaf0 100644
--- a/patches/components-omnibox-browser-omnibox_edit_model.cc.patch
+++ b/patches/components-omnibox-browser-omnibox_edit_model.cc.patch
@@ -1,5 +1,5 @@
diff --git a/components/omnibox/browser/omnibox_edit_model.cc b/components/omnibox/browser/omnibox_edit_model.cc
-index db23ea33a6932d8414f0377faa25d46f0a5e014d..f4686374f4617f8cd3ca320ccb862a0e60e6037c 100644
+index 11c8e9b3ce06b12252f564565f817b57a78127df..238e64baa52642ce1096baeb99e0c54ebd3236aa 100644
--- a/components/omnibox/browser/omnibox_edit_model.cc
+++ b/components/omnibox/browser/omnibox_edit_model.cc
@@ -502,6 +502,7 @@ void OmniboxEditModel::AdjustTextForCopy(int sel_min,
diff --git a/patches/components-os_crypt-sync-key_storage_kwallet.cc.patch b/patches/components-os_crypt-sync-key_storage_kwallet.cc.patch
index b759cf2f5f9a..6fed156ed290 100644
--- a/patches/components-os_crypt-sync-key_storage_kwallet.cc.patch
+++ b/patches/components-os_crypt-sync-key_storage_kwallet.cc.patch
@@ -1,5 +1,5 @@
diff --git a/components/os_crypt/sync/key_storage_kwallet.cc b/components/os_crypt/sync/key_storage_kwallet.cc
-index 285eaa4ca27c1075bdb15525b5f2f639aa7261e3..b04babecab52ddc0f4d7a8a772723014e989423b 100644
+index 6c5f71b0219cd7daf822f1066f98879bbcfa6e32..9341d689dbbfb00703e00e0dd90aa163d7540968 100644
--- a/components/os_crypt/sync/key_storage_kwallet.cc
+++ b/components/os_crypt/sync/key_storage_kwallet.cc
@@ -127,6 +127,7 @@ std::optional KeyStorageKWallet::GetKeyImpl() {
diff --git a/patches/components-os_crypt-sync-key_storage_linux.cc.patch b/patches/components-os_crypt-sync-key_storage_linux.cc.patch
index 3470376e41c6..aaa184f6f69b 100644
--- a/patches/components-os_crypt-sync-key_storage_linux.cc.patch
+++ b/patches/components-os_crypt-sync-key_storage_linux.cc.patch
@@ -1,5 +1,5 @@
diff --git a/components/os_crypt/sync/key_storage_linux.cc b/components/os_crypt/sync/key_storage_linux.cc
-index 680fa13fb15ea1e48fb19b83d069c9aa9b077159..f511a9d75b50c3d8cfeb12051f071ff26abcbe2d 100644
+index 2773d9faa792f5d8e4b42e4650ffe95222d31ac0..ef041f505c213c904b6bb5845ead23f2b735d883 100644
--- a/components/os_crypt/sync/key_storage_linux.cc
+++ b/components/os_crypt/sync/key_storage_linux.cc
@@ -29,8 +29,7 @@
diff --git a/patches/components-os_crypt-sync-os_crypt_win.cc.patch b/patches/components-os_crypt-sync-os_crypt_win.cc.patch
index f585ae7c735e..d47f6fac1326 100644
--- a/patches/components-os_crypt-sync-os_crypt_win.cc.patch
+++ b/patches/components-os_crypt-sync-os_crypt_win.cc.patch
@@ -1,5 +1,5 @@
diff --git a/components/os_crypt/sync/os_crypt_win.cc b/components/os_crypt/sync/os_crypt_win.cc
-index c5cccf2447c7750afba3b8b4883851ce0c1063c1..51881b6ca6dddbc0f63bacd7d77898dab08e3156 100644
+index e7f29a12be5bea413b0fb0818b9f52c9f7c5f800..61de6136678e4ae08e3795d7dcd28fe027296e38 100644
--- a/components/os_crypt/sync/os_crypt_win.cc
+++ b/components/os_crypt/sync/os_crypt_win.cc
@@ -188,6 +188,7 @@ bool OSCryptImpl::DecryptString16(const std::string& ciphertext,
diff --git a/patches/components-page_info-page_info.cc.patch b/patches/components-page_info-page_info.cc.patch
index e2280f02ecac..3a6a34907a15 100644
--- a/patches/components-page_info-page_info.cc.patch
+++ b/patches/components-page_info-page_info.cc.patch
@@ -1,8 +1,8 @@
diff --git a/components/page_info/page_info.cc b/components/page_info/page_info.cc
-index f6e5cf46d689b34919d6a74b2326132920ac06a7..9932029cd966b6a49f15a89ab9953c1834f37161 100644
+index 4778808aa0df65fa05df0305cb59b2d458719654..5ab1f1ab1f945cafaf463f600f95231f9bd34078 100644
--- a/components/page_info/page_info.cc
+++ b/components/page_info/page_info.cc
-@@ -1228,6 +1228,7 @@ void PageInfo::PopulatePermissionInfo(PermissionInfo& permission_info,
+@@ -1230,6 +1230,7 @@ void PageInfo::PopulatePermissionInfo(PermissionInfo& permission_info,
// applies to permissions listed in |kPermissionType|.
bool PageInfo::ShouldShowPermission(
const PageInfo::PermissionInfo& info) const {
diff --git a/patches/components-password_manager-core-browser-password_form_filling.cc.patch b/patches/components-password_manager-core-browser-password_form_filling.cc.patch
index ddf6340ff71e..5eddedef33f1 100644
--- a/patches/components-password_manager-core-browser-password_form_filling.cc.patch
+++ b/patches/components-password_manager-core-browser-password_form_filling.cc.patch
@@ -1,8 +1,8 @@
diff --git a/components/password_manager/core/browser/password_form_filling.cc b/components/password_manager/core/browser/password_form_filling.cc
-index 26b70a04c1942d615a84618ed8e1f47403880d58..91898fc6702fadb52515f2002a83907839d8b940 100644
+index f4c0435a03e08c480d8a3836dfa0aaf307b37308..494e3d267651ee83d9c35f4de1a62296ce706510 100644
--- a/components/password_manager/core/browser/password_form_filling.cc
+++ b/components/password_manager/core/browser/password_form_filling.cc
-@@ -223,6 +223,7 @@ LikelyFormFilling SendFillInformationToRenderer(
+@@ -221,6 +221,7 @@ LikelyFormFilling SendFillInformationToRenderer(
bool wait_for_username =
wait_for_username_reason != WaitForUsernameReason::kDontWait;
diff --git a/patches/components-password_manager-core-browser-password_store-login_database.cc.patch b/patches/components-password_manager-core-browser-password_store-login_database.cc.patch
deleted file mode 100644
index 2891a6a37e87..000000000000
--- a/patches/components-password_manager-core-browser-password_store-login_database.cc.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff --git a/components/password_manager/core/browser/password_store/login_database.cc b/components/password_manager/core/browser/password_store/login_database.cc
-index be069c167f7c4483cf6ebdf627773661aaf5c096..3498f9eabc8d6b20b604b4310690e27bf32d2194 100644
---- a/components/password_manager/core/browser/password_store/login_database.cc
-+++ b/components/password_manager/core/browser/password_store/login_database.cc
-@@ -2251,6 +2251,7 @@ FormRetrievalResult LoginDatabase::StatementToForms(
- std::u16string plaintext_password;
- EncryptionResult result =
- DecryptPasswordFromStatement(*statement, &plaintext_password);
-+ BRAVE_STATEMENT_TO_FORMS
- if (result == ENCRYPTION_RESULT_SERVICE_FAILURE) {
- has_service_failure = true;
- continue;
diff --git a/patches/components-permissions-BUILD.gn.patch b/patches/components-permissions-BUILD.gn.patch
index 00ae5c2f6991..eed4b5b0fa35 100644
--- a/patches/components-permissions-BUILD.gn.patch
+++ b/patches/components-permissions-BUILD.gn.patch
@@ -1,5 +1,5 @@
diff --git a/components/permissions/BUILD.gn b/components/permissions/BUILD.gn
-index c3f90e94bddc8d4d32bcb5211b0e5a96ae5c3bca..fbb975efc664e48f39c1fc91b1a303a6ecd7a89c 100644
+index 58bb8cc13615fb6b2b169f421094a91fc6153767..7b5254843d4932074e6a486c3e7207054aa51867 100644
--- a/components/permissions/BUILD.gn
+++ b/components/permissions/BUILD.gn
@@ -5,7 +5,7 @@
@@ -11,7 +11,7 @@ index c3f90e94bddc8d4d32bcb5211b0e5a96ae5c3bca..fbb975efc664e48f39c1fc91b1a303a6
sources = [
"constants.cc",
"constants.h",
-@@ -158,6 +158,7 @@ source_set("permissions") {
+@@ -160,6 +160,7 @@ source_set("permissions") {
if (!is_android) {
deps += [ "//components/guest_view/browser" ]
}
diff --git a/patches/components-permissions-android-permission_prompt-permission_dialog_delegate.cc.patch b/patches/components-permissions-android-permission_prompt-permission_dialog_delegate.cc.patch
index 4bb292c44f15..a8abdeeedc32 100644
--- a/patches/components-permissions-android-permission_prompt-permission_dialog_delegate.cc.patch
+++ b/patches/components-permissions-android-permission_prompt-permission_dialog_delegate.cc.patch
@@ -1,8 +1,8 @@
diff --git a/components/permissions/android/permission_prompt/permission_dialog_delegate.cc b/components/permissions/android/permission_prompt/permission_dialog_delegate.cc
-index 21aaa8349a4a22ef0517423eedce07d2c461807d..1b9aa88bfb9f5201f5cfe1389e08f056ec5d7a43 100644
+index 05daf57d9a80df6558cf3d51b341975e98e194b7..fbf1bcd0658c397f69d6f89fa316b234e520e6d9 100644
--- a/components/permissions/android/permission_prompt/permission_dialog_delegate.cc
+++ b/components/permissions/android/permission_prompt/permission_dialog_delegate.cc
-@@ -185,6 +185,7 @@ PermissionDialogDelegate* PermissionDialogDelegate::CreateForTesting(
+@@ -187,6 +187,7 @@ PermissionDialogDelegate* PermissionDialogDelegate::CreateForTesting(
void PermissionDialogDelegate::Accept(JNIEnv* env,
const JavaParamRef& obj) {
CHECK(permission_prompt_);
@@ -10,7 +10,7 @@ index 21aaa8349a4a22ef0517423eedce07d2c461807d..1b9aa88bfb9f5201f5cfe1389e08f056
permission_prompt_->Accept();
}
-@@ -198,6 +199,7 @@ void PermissionDialogDelegate::AcceptThisTime(
+@@ -200,6 +201,7 @@ void PermissionDialogDelegate::AcceptThisTime(
void PermissionDialogDelegate::Cancel(JNIEnv* env,
const JavaParamRef& obj) {
CHECK(permission_prompt_);
diff --git a/patches/components-permissions-permission_context_base.h.patch b/patches/components-permissions-permission_context_base.h.patch
index e3a3b488d53f..5ee8125f2693 100644
--- a/patches/components-permissions-permission_context_base.h.patch
+++ b/patches/components-permissions-permission_context_base.h.patch
@@ -1,9 +1,9 @@
diff --git a/components/permissions/permission_context_base.h b/components/permissions/permission_context_base.h
-index 72a307ee4d213faf8611d06442f8688cd93513bb..aae95c86a89814a6aae4dd54b9dcee4c54e20dc7 100644
+index 8ed92598b764eb1d9f320a950c7909d049508fcd..b78cb9631f780c76ecc24cdc9dbd978030a1fd6b 100644
--- a/components/permissions/permission_context_base.h
+++ b/components/permissions/permission_context_base.h
-@@ -146,6 +146,7 @@ class PermissionContextBase : public content_settings::Observer {
- return content_settings_type_;
+@@ -150,6 +150,7 @@ class PermissionContextBase : public content_settings::Observer {
+ has_device_permission_for_test_ = has_permission;
}
+ BRAVE_PERMISSION_CONTEXT_BASE_H_
diff --git a/patches/components-permissions-permission_uma_util.cc.patch b/patches/components-permissions-permission_uma_util.cc.patch
index c5cabd8d109e..96daf962e8a6 100644
--- a/patches/components-permissions-permission_uma_util.cc.patch
+++ b/patches/components-permissions-permission_uma_util.cc.patch
@@ -1,5 +1,5 @@
diff --git a/components/permissions/permission_uma_util.cc b/components/permissions/permission_uma_util.cc
-index 028a47c6f23892e7fc1e33f742717d379543c3be..3e256e549eb7747113fb8c76cfdbc3cffc3bb558 100644
+index c86938079cd1e0c3763c8e04bf4e46d417b6dc6a..5bb5b48e80e1ccb99a8dfaaab93d4421e9cf5416 100644
--- a/components/permissions/permission_uma_util.cc
+++ b/components/permissions/permission_uma_util.cc
@@ -150,6 +150,7 @@ RequestTypeForUma GetUmaValueForRequestType(RequestType request_type) {
diff --git a/patches/components-permissions-permission_util.cc.patch b/patches/components-permissions-permission_util.cc.patch
index 351f889f1301..775f8398210e 100644
--- a/patches/components-permissions-permission_util.cc.patch
+++ b/patches/components-permissions-permission_util.cc.patch
@@ -1,5 +1,5 @@
diff --git a/components/permissions/permission_util.cc b/components/permissions/permission_util.cc
-index 190bc0fea71ffce81a0294e49518e88d2e87c8ad..41c9aa60479bc88c363ec15cdc4f53ac0ffd7f1d 100644
+index 4cad8b8ea0c169ad3c147edef6c80c1b244a886a..eced6971b621e0fe55294c27cd0ea90e81ac6052 100644
--- a/components/permissions/permission_util.cc
+++ b/components/permissions/permission_util.cc
@@ -356,6 +356,7 @@ ContentSettingsType PermissionUtil::PermissionTypeToContentSettingTypeSafe(
diff --git a/patches/components-permissions-request_type.cc.patch b/patches/components-permissions-request_type.cc.patch
index 6b34d5b8ebda..ece6f2b3acf1 100644
--- a/patches/components-permissions-request_type.cc.patch
+++ b/patches/components-permissions-request_type.cc.patch
@@ -1,8 +1,8 @@
diff --git a/components/permissions/request_type.cc b/components/permissions/request_type.cc
-index 0782e4cafa914ea236e53a1647f5232fadc8e325..2a1cebf71a409839fb5b5876316fec6c1f6fc0da 100644
+index a40c5f7d4d933aa1b9781ea3a15aae85e4c4b022..df5b3ff79716460792aeb067059f101742dba40a 100644
--- a/components/permissions/request_type.cc
+++ b/components/permissions/request_type.cc
-@@ -457,6 +457,7 @@ const char* PermissionKeyForRequestType(permissions::RequestType request_type) {
+@@ -447,6 +447,7 @@ const char* PermissionKeyForRequestType(permissions::RequestType request_type) {
#endif
case permissions::RequestType::kIdentityProvider:
return "identity_provider";
diff --git a/patches/components-safe_browsing-content-browser-safe_browsing_network_context.cc.patch b/patches/components-safe_browsing-content-browser-safe_browsing_network_context.cc.patch
index 3805e2dce6af..3179a5fb3a79 100644
--- a/patches/components-safe_browsing-content-browser-safe_browsing_network_context.cc.patch
+++ b/patches/components-safe_browsing-content-browser-safe_browsing_network_context.cc.patch
@@ -1,5 +1,5 @@
diff --git a/components/safe_browsing/content/browser/safe_browsing_network_context.cc b/components/safe_browsing/content/browser/safe_browsing_network_context.cc
-index 37852c47b90d46dd66b723c4af62bcac0d657c9f..6934f3267907041cd944c4fef46e09490489e40f 100644
+index d37dd1a0937f2f3288364a76724e6199ff02ec44..4347e2056ea4fb754c7c48c9fdb0f081aa7b3b35 100644
--- a/components/safe_browsing/content/browser/safe_browsing_network_context.cc
+++ b/components/safe_browsing/content/browser/safe_browsing_network_context.cc
@@ -81,8 +81,8 @@ class SafeBrowsingNetworkContext::SharedURLLoaderFactory
diff --git a/patches/components-safe_browsing-core-common-safe_browsing_prefs.cc.patch b/patches/components-safe_browsing-core-common-safe_browsing_prefs.cc.patch
index d79875bceed7..520292344d42 100644
--- a/patches/components-safe_browsing-core-common-safe_browsing_prefs.cc.patch
+++ b/patches/components-safe_browsing-core-common-safe_browsing_prefs.cc.patch
@@ -1,5 +1,5 @@
diff --git a/components/safe_browsing/core/common/safe_browsing_prefs.cc b/components/safe_browsing/core/common/safe_browsing_prefs.cc
-index 13d3adea7c15a48c4b7e37bc1a456803b9dee8ca..79fe00f3e1c57a0f1ee8bcc65c9486906685f64b 100644
+index f7727d79470105022d02d6c6f6638ada37bd3054..48097313c8d86f6040c594c6a15bdb9da9ebdea9 100644
--- a/components/safe_browsing/core/common/safe_browsing_prefs.cc
+++ b/components/safe_browsing/core/common/safe_browsing_prefs.cc
@@ -101,6 +101,7 @@ bool IsSafeBrowsingEnabled(const PrefService& prefs) {
diff --git a/patches/components-search_engines-BUILD.gn.patch b/patches/components-search_engines-BUILD.gn.patch
index 6fb0fbe123a4..8450f3f9b159 100644
--- a/patches/components-search_engines-BUILD.gn.patch
+++ b/patches/components-search_engines-BUILD.gn.patch
@@ -1,8 +1,8 @@
diff --git a/components/search_engines/BUILD.gn b/components/search_engines/BUILD.gn
-index 92423a8178c0faa37716260b9932d70062f21bf0..fed6139423a57565f445652dd10a58d84185f17a 100644
+index fb483cf99b447e1cdd01c78a4f568e7345862b6f..7a8166d4efc7b61e00f3d6905ae3a51bd16eb770 100644
--- a/components/search_engines/BUILD.gn
+++ b/components/search_engines/BUILD.gn
-@@ -248,6 +248,7 @@ json_to_struct("prepopulated_engines") {
+@@ -257,6 +257,7 @@ json_to_struct("prepopulated_engines") {
schema_file = "prepopulated_engines_schema.json"
namespace = "TemplateURLPrepopulateData"
deps = [ ":search_engine_type" ]
diff --git a/patches/components-search_engines-default_search_manager.cc.patch b/patches/components-search_engines-default_search_manager.cc.patch
index 8c94020c515e..b459d44a0319 100644
--- a/patches/components-search_engines-default_search_manager.cc.patch
+++ b/patches/components-search_engines-default_search_manager.cc.patch
@@ -1,8 +1,8 @@
diff --git a/components/search_engines/default_search_manager.cc b/components/search_engines/default_search_manager.cc
-index e1603fc8c6ce6dd7ae80973f1f6590849f0a5102..1f9217d1146327a0ab20c36c3795da54e8c52189 100644
+index 48624d57ed3c6a5e983b5b1f36310f283a6bdd2f..60745d02e06e769073d9694ad8b6349619b7db22 100644
--- a/components/search_engines/default_search_manager.cc
+++ b/components/search_engines/default_search_manager.cc
-@@ -398,6 +398,7 @@ void DefaultSearchManager::LoadDefaultSearchEngineFromPrefs() {
+@@ -395,6 +395,7 @@ void DefaultSearchManager::LoadDefaultSearchEngineFromPrefs() {
// Check if default search preference is overriden by extension.
if (pref->IsExtensionControlled()) {
extension_default_search_ = std::move(turl_data);
diff --git a/patches/components-search_engines-prepopulated_engines.json.patch b/patches/components-search_engines-prepopulated_engines.json.patch
index 32f0b5e53afe..8f40aaceb029 100644
--- a/patches/components-search_engines-prepopulated_engines.json.patch
+++ b/patches/components-search_engines-prepopulated_engines.json.patch
@@ -1,5 +1,5 @@
diff --git a/components/search_engines/prepopulated_engines.json b/components/search_engines/prepopulated_engines.json
-index 91539be7a0e836f19132d6828f52e52cc1c7ada5..729ce638317eb5c2acd5da8abc4b9dba7b2aa014 100644
+index cdb763081d22b290ca20df1be95ce4e838628529..62578765129ee605a362cf5bed8e9888c268fa7d 100644
--- a/components/search_engines/prepopulated_engines.json
+++ b/components/search_engines/prepopulated_engines.json
@@ -102,17 +102,6 @@
diff --git a/patches/components-sync-engine-sync_scheduler_impl.cc.patch b/patches/components-sync-engine-sync_scheduler_impl.cc.patch
index 9ae612c4acbf..c882f98f5e71 100644
--- a/patches/components-sync-engine-sync_scheduler_impl.cc.patch
+++ b/patches/components-sync-engine-sync_scheduler_impl.cc.patch
@@ -1,5 +1,5 @@
diff --git a/components/sync/engine/sync_scheduler_impl.cc b/components/sync/engine/sync_scheduler_impl.cc
-index 2533d161a1a210cd27719fdd02e97585493bca13..3d48ac96a9b86355c5ad321af30264f3cdfe76e0 100644
+index 9153f0841f93bf14a90af8df1bc54e4fb874acc3..c99300df8f8bb83fd73e8476ba6c37a80e7a3cde 100644
--- a/components/sync/engine/sync_scheduler_impl.cc
+++ b/components/sync/engine/sync_scheduler_impl.cc
@@ -502,6 +502,7 @@ void SyncSchedulerImpl::HandleFailure(
diff --git a/patches/components-sync-engine-syncer_proto_util.cc.patch b/patches/components-sync-engine-syncer_proto_util.cc.patch
index 653dadd823a5..4d17ac559a9e 100644
--- a/patches/components-sync-engine-syncer_proto_util.cc.patch
+++ b/patches/components-sync-engine-syncer_proto_util.cc.patch
@@ -1,5 +1,5 @@
diff --git a/components/sync/engine/syncer_proto_util.cc b/components/sync/engine/syncer_proto_util.cc
-index b65a378e3642f583c26f550dcdd44e7bfaee2278..d67e790618bbd98f10636c9c107901917c56cb8c 100644
+index 2bae9480ee8f370b72333a3ad676b9277c9878b6..ffaa3fcaac6766d4bae88f195e43aff7475ec99d 100644
--- a/components/sync/engine/syncer_proto_util.cc
+++ b/components/sync/engine/syncer_proto_util.cc
@@ -269,6 +269,7 @@ SyncerError SyncerProtoUtil::HandleClientToServerMessageResponse(
diff --git a/patches/components-sync-protocol-proto_visitors.h.patch b/patches/components-sync-protocol-proto_visitors.h.patch
index 7253df8d9e24..b503209298e7 100644
--- a/patches/components-sync-protocol-proto_visitors.h.patch
+++ b/patches/components-sync-protocol-proto_visitors.h.patch
@@ -1,8 +1,8 @@
diff --git a/components/sync/protocol/proto_visitors.h b/components/sync/protocol/proto_visitors.h
-index 55ee1327e39edc30964abe37d3c22b5de14db587..f4f1bbee41cf117be1b9d1499eaabc783f49eef6 100644
+index 8068c0236e5134e6cb1660ac0c004401e08e28f5..6ed9bc3b9fa79133853f311fb1c52410067f0425 100644
--- a/components/sync/protocol/proto_visitors.h
+++ b/components/sync/protocol/proto_visitors.h
-@@ -584,6 +584,7 @@ VISIT_PROTO_FIELDS(const sync_pb::DeviceInfoSpecifics& proto) {
+@@ -586,6 +586,7 @@ VISIT_PROTO_FIELDS(const sync_pb::DeviceInfoSpecifics& proto) {
VISIT(manufacturer);
VISIT(last_updated_timestamp);
VISIT(feature_fields);
@@ -10,7 +10,7 @@ index 55ee1327e39edc30964abe37d3c22b5de14db587..f4f1bbee41cf117be1b9d1499eaabc78
VISIT(sharing_fields);
VISIT(invalidation_fields);
VISIT(paask_fields);
-@@ -598,6 +599,7 @@ VISIT_PROTO_FIELDS(const sync_pb::FeatureSpecificFields& proto) {
+@@ -600,6 +601,7 @@ VISIT_PROTO_FIELDS(const sync_pb::FeatureSpecificFields& proto) {
VISIT(send_tab_to_self_receiving_enabled);
}
diff --git a/patches/components-sync-protocol-protocol_sources.gni.patch b/patches/components-sync-protocol-protocol_sources.gni.patch
index 0276516adc43..d05dea05bf40 100644
--- a/patches/components-sync-protocol-protocol_sources.gni.patch
+++ b/patches/components-sync-protocol-protocol_sources.gni.patch
@@ -1,8 +1,8 @@
diff --git a/components/sync/protocol/protocol_sources.gni b/components/sync/protocol/protocol_sources.gni
-index 93d20f9cb3773c8174f351e8d71f05580928c431..060ad1cc74be6f039d2e5eb7a6360b2126c90fc9 100644
+index c48e3ea843b708d17b779877f90813fa2c7f0f09..5c64f00071b650b7099fe37a10be273c32ffd9d4 100644
--- a/components/sync/protocol/protocol_sources.gni
+++ b/components/sync/protocol/protocol_sources.gni
-@@ -81,3 +81,4 @@ sync_protocol_sources = [
+@@ -83,3 +83,4 @@ sync_protocol_sources = [
"wifi_configuration_specifics.proto",
"workspace_desk_specifics.proto",
]
diff --git a/patches/components-sync-service-BUILD.gn.patch b/patches/components-sync-service-BUILD.gn.patch
index 63c17a33c802..4438abe40d6d 100644
--- a/patches/components-sync-service-BUILD.gn.patch
+++ b/patches/components-sync-service-BUILD.gn.patch
@@ -1,8 +1,8 @@
diff --git a/components/sync/service/BUILD.gn b/components/sync/service/BUILD.gn
-index 639b76af613dfec0089006d0d73ffacdcc85e759..1cf5bd074d341d448e26292127f26c5c219bbbc6 100644
+index 4b4d5fdb268a40a8900c3e8f58005365a9a236fd..4a1cd7cc2537715ea3c9f9555b5571e8a7a7fcec 100644
--- a/components/sync/service/BUILD.gn
+++ b/components/sync/service/BUILD.gn
-@@ -119,4 +119,5 @@ static_library("service") {
+@@ -121,4 +121,5 @@ static_library("service") {
}
configs += [ "//build/config/compiler:wexit_time_destructors" ]
diff --git a/patches/components-sync-service-sync_service_impl.h.patch b/patches/components-sync-service-sync_service_impl.h.patch
index 5eb1048706ec..3845789c0a21 100644
--- a/patches/components-sync-service-sync_service_impl.h.patch
+++ b/patches/components-sync-service-sync_service_impl.h.patch
@@ -1,5 +1,5 @@
diff --git a/components/sync/service/sync_service_impl.h b/components/sync/service/sync_service_impl.h
-index 10e4f7b9ad98592064ec959210862c5f7b0d1c79..1c31220db9f4e823861d55810925bb610434378b 100644
+index ed1a833f5eea03eeba45252ce9e513a2b5d43258..d616eea5c18ac8e0f328ef6f2810891bb09da9b1 100644
--- a/components/sync/service/sync_service_impl.h
+++ b/components/sync/service/sync_service_impl.h
@@ -263,6 +263,7 @@ class SyncServiceImpl : public SyncService,
diff --git a/patches/components-sync_device_info-device_info_sync_bridge.cc.patch b/patches/components-sync_device_info-device_info_sync_bridge.cc.patch
index 137df7f9522d..03e0f5c07713 100644
--- a/patches/components-sync_device_info-device_info_sync_bridge.cc.patch
+++ b/patches/components-sync_device_info-device_info_sync_bridge.cc.patch
@@ -1,5 +1,5 @@
diff --git a/components/sync_device_info/device_info_sync_bridge.cc b/components/sync_device_info/device_info_sync_bridge.cc
-index 6355ada2e67908671558c8fe748cd906a12b6e6c..058db147e114f404ed10a75f13f1c25354489a38 100644
+index 7cc78ef5e7c1b71d8b4ad8689971deb09984b0d9..060b6f2cdf1f432464d7cd9f0ef9fc4e017742af 100644
--- a/components/sync_device_info/device_info_sync_bridge.cc
+++ b/components/sync_device_info/device_info_sync_bridge.cc
@@ -273,6 +273,7 @@ std::unique_ptr MakeLocalDeviceSpecifics(
@@ -27,7 +27,7 @@ index 6355ada2e67908671558c8fe748cd906a12b6e6c..058db147e114f404ed10a75f13f1c253
}
if (change->type() == EntityChange::ACTION_DELETE) {
-@@ -748,6 +750,7 @@ void DeviceInfoSyncBridge::OnReadAllMetadata(
+@@ -750,6 +752,7 @@ void DeviceInfoSyncBridge::OnReadAllMetadata(
return;
}
@@ -35,7 +35,7 @@ index 6355ada2e67908671558c8fe748cd906a12b6e6c..058db147e114f404ed10a75f13f1c253
// In the regular case for sync being disabled, wait for MergeFullSyncData()
// before initializing the LocalDeviceInfoProvider.
if (!syncer::IsInitialSyncDone(
-@@ -977,6 +980,7 @@ DeviceInfoSyncBridge::CountActiveDevicesByType() const {
+@@ -979,6 +982,7 @@ DeviceInfoSyncBridge::CountActiveDevicesByType() const {
void DeviceInfoSyncBridge::ExpireOldEntries() {
TRACE_EVENT0("sync", "DeviceInfoSyncBridge::ExpireOldEntries");
diff --git a/patches/components-translate-content-renderer-translate_agent.cc.patch b/patches/components-translate-content-renderer-translate_agent.cc.patch
index b3515dd90c5f..2ad9b13b7f8d 100644
--- a/patches/components-translate-content-renderer-translate_agent.cc.patch
+++ b/patches/components-translate-content-renderer-translate_agent.cc.patch
@@ -1,5 +1,5 @@
diff --git a/components/translate/content/renderer/translate_agent.cc b/components/translate/content/renderer/translate_agent.cc
-index 2f398b474556af02791cd54bc841b277b3627ab0..0b14e9a9038a82a2a221534446b869f5b2312b21 100644
+index efafe894e411783713b6205d6fe4cc804a403034..c79ca2f41519eb6cdd8e799dd8e43d2d79299975 100644
--- a/components/translate/content/renderer/translate_agent.cc
+++ b/components/translate/content/renderer/translate_agent.cc
@@ -57,7 +57,7 @@ const int kTranslateInitCheckDelayMs = 150;
diff --git a/patches/content-app_shim_remote_cocoa-render_widget_host_view_cocoa.mm.patch b/patches/content-app_shim_remote_cocoa-render_widget_host_view_cocoa.mm.patch
index 453181e1cd37..b0de4c787054 100644
--- a/patches/content-app_shim_remote_cocoa-render_widget_host_view_cocoa.mm.patch
+++ b/patches/content-app_shim_remote_cocoa-render_widget_host_view_cocoa.mm.patch
@@ -1,8 +1,8 @@
diff --git a/content/app_shim_remote_cocoa/render_widget_host_view_cocoa.mm b/content/app_shim_remote_cocoa/render_widget_host_view_cocoa.mm
-index 1cb6eb60ef419ff7c2ff104049a3a80e3854c4e9..8039159dbad3dfc7c10b9accff73a48303d2ebbd 100644
+index a14c65728ec516e437015d66f56eabaa05bf2376..4fce43f4f6924f78c043a64a08bacc3476ef3d87 100644
--- a/content/app_shim_remote_cocoa/render_widget_host_view_cocoa.mm
+++ b/content/app_shim_remote_cocoa/render_widget_host_view_cocoa.mm
-@@ -1965,6 +1965,7 @@ void ExtractUnderlines(NSAttributedString* string,
+@@ -1970,6 +1970,7 @@ void ExtractUnderlines(NSAttributedString* string,
}
- (id)accessibilityParent {
diff --git a/patches/content-browser-browsing_data-browsing_data_filter_builder_impl.cc.patch b/patches/content-browser-browsing_data-browsing_data_filter_builder_impl.cc.patch
index 529333948cdc..b6b087e19bae 100644
--- a/patches/content-browser-browsing_data-browsing_data_filter_builder_impl.cc.patch
+++ b/patches/content-browser-browsing_data-browsing_data_filter_builder_impl.cc.patch
@@ -1,5 +1,5 @@
diff --git a/content/browser/browsing_data/browsing_data_filter_builder_impl.cc b/content/browser/browsing_data/browsing_data_filter_builder_impl.cc
-index e23e591b58099c6dc41f6956270f42f6f8af7f92..51a2a848d81414eb6beff27baf3ac9dc3a284f08 100644
+index 04a97bf981a1a58e244ebf672dbc50a4e6d56858..a3bd38d3323f081cf014ceb240e99be3df0ea33a 100644
--- a/content/browser/browsing_data/browsing_data_filter_builder_impl.cc
+++ b/content/browser/browsing_data/browsing_data_filter_builder_impl.cc
@@ -58,6 +58,7 @@ bool MatchesStorageKey(const std::set& origins,
diff --git a/patches/content-browser-gpu-gpu_internals_ui.cc.patch b/patches/content-browser-gpu-gpu_internals_ui.cc.patch
index 3929e56eb235..b9d854e52059 100644
--- a/patches/content-browser-gpu-gpu_internals_ui.cc.patch
+++ b/patches/content-browser-gpu-gpu_internals_ui.cc.patch
@@ -1,8 +1,8 @@
diff --git a/content/browser/gpu/gpu_internals_ui.cc b/content/browser/gpu/gpu_internals_ui.cc
-index fc77d384b66ff5bcbc3dcdb5a7d0df1cf6575734..aa049b50b8a81ea3c2e84c7440fdb9c53f97d44e 100644
+index 4a297670b08737705cbe19d767c835d97d156ef1..a33e0349221855861cb6f9217c730b572ec44d6a 100644
--- a/content/browser/gpu/gpu_internals_ui.cc
+++ b/content/browser/gpu/gpu_internals_ui.cc
-@@ -809,6 +809,7 @@ base::Value::Dict GpuMessageHandler::GetClientInfo() {
+@@ -813,6 +813,7 @@ base::Value::Dict GpuMessageHandler::GetClientInfo() {
std::string("Skia/" STRINGIZE(SK_MILESTONE) " " SKIA_COMMIT_HASH));
dict.Set("revision_identifier", GPU_LISTS_VERSION);
diff --git a/patches/content-browser-renderer_host-navigation_controller_impl.cc.patch b/patches/content-browser-renderer_host-navigation_controller_impl.cc.patch
index d494766ab56d..fc13568e38e7 100644
--- a/patches/content-browser-renderer_host-navigation_controller_impl.cc.patch
+++ b/patches/content-browser-renderer_host-navigation_controller_impl.cc.patch
@@ -1,8 +1,8 @@
diff --git a/content/browser/renderer_host/navigation_controller_impl.cc b/content/browser/renderer_host/navigation_controller_impl.cc
-index 4c44928e07227169d710bd3e9c69fb446c352f5e..e57fa4033132eb631828d1d074b04a8fcf220835 100644
+index 1cc97e24eb28be115579a8dd063e596176666cc3..8c6943cd392a21e9b1244fd9639c08966a47671f 100644
--- a/content/browser/renderer_host/navigation_controller_impl.cc
+++ b/content/browser/renderer_host/navigation_controller_impl.cc
-@@ -3630,16 +3630,17 @@ base::WeakPtr NavigationControllerImpl::NavigateWithoutEntry(
+@@ -3665,16 +3665,17 @@ base::WeakPtr NavigationControllerImpl::NavigateWithoutEntry(
// Note: we intentionally leave the pending entry in place for renderer debug
// URLs, unlike the cases below where we clear it if the navigation doesn't
// proceed.
diff --git a/patches/content-browser-renderer_host-navigation_request.cc.patch b/patches/content-browser-renderer_host-navigation_request.cc.patch
index 2c2a71c654c3..0210e4282bb1 100644
--- a/patches/content-browser-renderer_host-navigation_request.cc.patch
+++ b/patches/content-browser-renderer_host-navigation_request.cc.patch
@@ -1,8 +1,8 @@
diff --git a/content/browser/renderer_host/navigation_request.cc b/content/browser/renderer_host/navigation_request.cc
-index 77ee94a9c99b67116bb84bed41a6c4da3048a05a..5551bd66da6dfe598ad6066a71a79cab42033170 100644
+index 87db8bec186031ca4633d59759b569ee866bd2df..2a38dade36c8c7bea06aa365ea631c3e1ef822dd 100644
--- a/content/browser/renderer_host/navigation_request.cc
+++ b/content/browser/renderer_host/navigation_request.cc
-@@ -3397,6 +3397,7 @@ void NavigationRequest::OnRequestRedirected(
+@@ -3422,6 +3422,7 @@ void NavigationRequest::OnRequestRedirected(
common_params_->url = redirect_info.new_url;
common_params_->method = redirect_info.new_method;
common_params_->referrer->url = GURL(redirect_info.new_referrer);
@@ -10,7 +10,7 @@ index 77ee94a9c99b67116bb84bed41a6c4da3048a05a..5551bd66da6dfe598ad6066a71a79cab
common_params_->referrer = Referrer::SanitizeForRequest(
common_params_->url, *common_params_->referrer);
-@@ -5116,6 +5117,7 @@ void NavigationRequest::OnStartChecksComplete(
+@@ -5162,6 +5163,7 @@ void NavigationRequest::OnStartChecksComplete(
headers.MergeFrom(TakeModifiedRequestHeaders());
begin_params_->headers = headers.ToString();
diff --git a/patches/content-browser-renderer_host-render_frame_host_impl.cc.patch b/patches/content-browser-renderer_host-render_frame_host_impl.cc.patch
index 7595d84e5e1e..b1d4899232b5 100644
--- a/patches/content-browser-renderer_host-render_frame_host_impl.cc.patch
+++ b/patches/content-browser-renderer_host-render_frame_host_impl.cc.patch
@@ -1,8 +1,8 @@
diff --git a/content/browser/renderer_host/render_frame_host_impl.cc b/content/browser/renderer_host/render_frame_host_impl.cc
-index 3821695f6561ff8e00d861ce49ea7ff27f5fcd7e..35130de6db112608fc4d88f2ff51565bfa8728ce 100644
+index 9c8b401d00136cdb5e1edde7973f176faf6fd89c..1580866995da523362699466ebc1bcd2740c1e9d 100644
--- a/content/browser/renderer_host/render_frame_host_impl.cc
+++ b/content/browser/renderer_host/render_frame_host_impl.cc
-@@ -4341,6 +4341,7 @@ net::IsolationInfo RenderFrameHostImpl::ComputeIsolationInfoInternal(
+@@ -4335,6 +4335,7 @@ net::IsolationInfo RenderFrameHostImpl::ComputeIsolationInfoInternal(
candidate_site_for_cookies = net::SiteForCookies(top_frame_site);
}
@@ -10,7 +10,7 @@ index 3821695f6561ff8e00d861ce49ea7ff27f5fcd7e..35130de6db112608fc4d88f2ff51565b
std::optional nonce =
ComputeNonce(is_credentialless, fenced_frame_nonce_for_navigation);
return net::IsolationInfo::Create(request_type, top_frame_origin,
-@@ -4351,6 +4352,7 @@ net::IsolationInfo RenderFrameHostImpl::ComputeIsolationInfoInternal(
+@@ -4345,6 +4346,7 @@ net::IsolationInfo RenderFrameHostImpl::ComputeIsolationInfoInternal(
std::optional RenderFrameHostImpl::ComputeNonce(
bool is_credentialless,
std::optional fenced_frame_nonce_for_navigation) {
@@ -18,7 +18,7 @@ index 3821695f6561ff8e00d861ce49ea7ff27f5fcd7e..35130de6db112608fc4d88f2ff51565b
// If it's a credentialless frame tree, use its nonce even if it's within a
// fenced frame tree to maintain the guarantee that a credentialless frame
// tree has a unique nonce.
-@@ -8604,6 +8606,8 @@ void RenderFrameHostImpl::CreateNewWindow(
+@@ -8593,6 +8595,8 @@ void RenderFrameHostImpl::CreateNewWindow(
dom_storage_context, params->session_storage_namespace_id);
}
diff --git a/patches/content-browser-web_contents-web_contents_impl.cc.patch b/patches/content-browser-web_contents-web_contents_impl.cc.patch
index 8a596fb254ad..cd9e857a7e1e 100644
--- a/patches/content-browser-web_contents-web_contents_impl.cc.patch
+++ b/patches/content-browser-web_contents-web_contents_impl.cc.patch
@@ -1,8 +1,8 @@
diff --git a/content/browser/web_contents/web_contents_impl.cc b/content/browser/web_contents/web_contents_impl.cc
-index d08ad3ae25ab39a7c3a455271f26e339a0a15721..0333205051f47ba73ca5603173ce2d491199fd07 100644
+index 205a1bb692091e425233bf6bd1e9910104585667..c43b9db5122a93dfb86bdb3dfea5a81de23aae07 100644
--- a/content/browser/web_contents/web_contents_impl.cc
+++ b/content/browser/web_contents/web_contents_impl.cc
-@@ -4679,7 +4679,7 @@ FrameTree* WebContentsImpl::CreateNewWindow(
+@@ -4725,7 +4725,7 @@ FrameTree* WebContentsImpl::CreateNewWindow(
// Save the window for later if we're not suppressing the opener (since it
// will be shown immediately).
diff --git a/patches/content-browser-webui-web_ui_impl.cc.patch b/patches/content-browser-webui-web_ui_impl.cc.patch
index ba50a242eb56..af84cd101b9e 100644
--- a/patches/content-browser-webui-web_ui_impl.cc.patch
+++ b/patches/content-browser-webui-web_ui_impl.cc.patch
@@ -1,8 +1,8 @@
diff --git a/content/browser/webui/web_ui_impl.cc b/content/browser/webui/web_ui_impl.cc
-index bdf694ef95914c0f95ffdcabcc9e131aec601a8c..093b95523dca4d342492eb83bc20831b4cb67329 100644
+index 5437bfe1866cddce348e02a12e9c75003f50f871..c372571845a604f53c5e44c10c06f5769151e742 100644
--- a/content/browser/webui/web_ui_impl.cc
+++ b/content/browser/webui/web_ui_impl.cc
-@@ -83,6 +83,7 @@ WebUIImpl::WebUIImpl(WebContents* web_contents)
+@@ -82,6 +82,7 @@ WebUIImpl::WebUIImpl(WebContents* web_contents)
web_contents_observer_(
std::make_unique(this, web_contents_)) {
DCHECK(web_contents_);
diff --git a/patches/content-common-BUILD.gn.patch b/patches/content-common-BUILD.gn.patch
index 7538c22d101c..ae3b1d8f1503 100644
--- a/patches/content-common-BUILD.gn.patch
+++ b/patches/content-common-BUILD.gn.patch
@@ -1,5 +1,5 @@
diff --git a/content/common/BUILD.gn b/content/common/BUILD.gn
-index 066bea940f2889351e6cc151cfc10da3a7e86f6a..bf8142ae29f3a5aad7f56cfc872534bf0b6336f5 100644
+index 4c05c03b390262dfccc34c58310a3077ff2bebab..11d0bbf0a2180c48fb73abb67544db19c46f8d13 100644
--- a/content/common/BUILD.gn
+++ b/content/common/BUILD.gn
@@ -69,6 +69,7 @@ source_set("common") {
diff --git a/patches/content-common-frame.mojom.patch b/patches/content-common-frame.mojom.patch
index ba9ad3706ddd..a0033b175d9f 100644
--- a/patches/content-common-frame.mojom.patch
+++ b/patches/content-common-frame.mojom.patch
@@ -1,8 +1,8 @@
diff --git a/content/common/frame.mojom b/content/common/frame.mojom
-index d72ce84100f584832b22058648e7f21ae8325236..ba0ae4eeddf51048ad301a59a90cb2b672046fad 100644
+index 6df9186bcee6a56da11da8e365c7cf5b4375e366..c8903b3f0b7d6fc6fae734f899357287d927a5a7 100644
--- a/content/common/frame.mojom
+++ b/content/common/frame.mojom
-@@ -566,6 +566,7 @@ struct CreateNewWindowParams {
+@@ -568,6 +568,7 @@ struct CreateNewWindowParams {
// Whether the opener will be suppressed in the new window, in which case
// scripting the new window is not allowed.
bool opener_suppressed;
diff --git a/patches/content-renderer-render_frame_impl.cc.patch b/patches/content-renderer-render_frame_impl.cc.patch
index 1c940ded4f9f..1834c8e2c3d2 100644
--- a/patches/content-renderer-render_frame_impl.cc.patch
+++ b/patches/content-renderer-render_frame_impl.cc.patch
@@ -1,5 +1,5 @@
diff --git a/content/renderer/render_frame_impl.cc b/content/renderer/render_frame_impl.cc
-index c8113196eeb34e2067b83297577eed4464e8059c..b8407ed11019ba883679c4a247d3be0a865c1117 100644
+index a8d9b10d1cfc44fd7b3c76b813be6c41b9a1b827..cb4369956ae5d80ee829223069f9623c789a2372 100644
--- a/content/renderer/render_frame_impl.cc
+++ b/content/renderer/render_frame_impl.cc
@@ -4749,6 +4749,7 @@ bool RenderFrameImpl::ShouldUseUserAgentOverride() const {
diff --git a/patches/content-renderer-render_thread_impl.cc.patch b/patches/content-renderer-render_thread_impl.cc.patch
index 16cfc85caf2e..03f4704787a4 100644
--- a/patches/content-renderer-render_thread_impl.cc.patch
+++ b/patches/content-renderer-render_thread_impl.cc.patch
@@ -1,8 +1,8 @@
diff --git a/content/renderer/render_thread_impl.cc b/content/renderer/render_thread_impl.cc
-index da4a8410a6c5d2eb7e35eb10b1629dca8d4011e1..0c8fbbb55d3b9562960aa926f0782293a118de88 100644
+index c977c0ed1815106673b34156fb085889a956ae6c..97ed8c17a22ae39b4d2ee9690bd1b2a3d5a80f5b 100644
--- a/content/renderer/render_thread_impl.cc
+++ b/content/renderer/render_thread_impl.cc
-@@ -887,6 +887,7 @@ void RenderThreadImpl::InitializeRenderer(
+@@ -886,6 +886,7 @@ void RenderThreadImpl::InitializeRenderer(
}
void RenderThreadImpl::RegisterSchemes() {
diff --git a/patches/extensions-browser-api-web_request-extension_web_request_event_router.cc.patch b/patches/extensions-browser-api-web_request-extension_web_request_event_router.cc.patch
index 21eb45af0081..a7241248621b 100644
--- a/patches/extensions-browser-api-web_request-extension_web_request_event_router.cc.patch
+++ b/patches/extensions-browser-api-web_request-extension_web_request_event_router.cc.patch
@@ -1,8 +1,8 @@
diff --git a/extensions/browser/api/web_request/extension_web_request_event_router.cc b/extensions/browser/api/web_request/extension_web_request_event_router.cc
-index 7e124531a4046307770d73330ea7a407ec10c3cc..6ca83b42585f9c96a9d4fd7eb4148ce4dc1102f7 100644
+index 498cf51a5a0c1dbaf7c8a579606292ebba248798..8e2be60f9812103828f5f74ab95f8530901daa4c 100644
--- a/extensions/browser/api/web_request/extension_web_request_event_router.cc
+++ b/extensions/browser/api/web_request/extension_web_request_event_router.cc
-@@ -1291,6 +1291,7 @@ WebRequestEventRouter::OnAuthRequired(content::BrowserContext* browser_context,
+@@ -1304,6 +1304,7 @@ WebRequestEventRouter::OnAuthRequired(content::BrowserContext* browser_context,
*request)) {
return AuthRequiredResponse::AUTH_REQUIRED_RESPONSE_NO_ACTION;
}
diff --git a/patches/ios-chrome-app-BUILD.gn.patch b/patches/ios-chrome-app-BUILD.gn.patch
index 75157bede115..2c894a6a58c8 100644
--- a/patches/ios-chrome-app-BUILD.gn.patch
+++ b/patches/ios-chrome-app-BUILD.gn.patch
@@ -1,8 +1,8 @@
diff --git a/ios/chrome/app/BUILD.gn b/ios/chrome/app/BUILD.gn
-index 101c2fb7e83aaeaa8e34097ae18ab7827470dfd0..470628cb92d5108eb1407ce2dec1b413f8619c0a 100644
+index c2ce56f282cf92ee9d2972380411bd8ab435e27e..df10a76fcaa26f9508599edc4c23793afe4845f1 100644
--- a/ios/chrome/app/BUILD.gn
+++ b/ios/chrome/app/BUILD.gn
-@@ -862,8 +862,7 @@ chrome_app("chrome") {
+@@ -859,8 +859,7 @@ chrome_app("chrome") {
# (see https://crbug.com/1394553 for details of the build failure). This
# is a stop-gap solution.
if (target_environment == "catalyst" ||
diff --git a/patches/ios-chrome-browser-flags-about_flags.mm.patch b/patches/ios-chrome-browser-flags-about_flags.mm.patch
index fe8027f4f642..95debf7dfc79 100644
--- a/patches/ios-chrome-browser-flags-about_flags.mm.patch
+++ b/patches/ios-chrome-browser-flags-about_flags.mm.patch
@@ -1,8 +1,8 @@
diff --git a/ios/chrome/browser/flags/about_flags.mm b/ios/chrome/browser/flags/about_flags.mm
-index 9a9cbaee6bf21de19296c583b5e4af7d3370171c..7eb0f80258195953302f6579f027f6f5bc29950a 100644
+index 6788c5c5db12c6fc6363767f8ed73a92867b3d96..cc33b3e704b96d2d0c617dd2a9446716ba0cad13 100644
--- a/ios/chrome/browser/flags/about_flags.mm
+++ b/ios/chrome/browser/flags/about_flags.mm
-@@ -692,6 +692,7 @@ const FeatureEntry::FeatureVariation kModernTabStripVariations[] = {
+@@ -782,6 +782,7 @@ const FeatureEntry::FeatureVariation kLensTranslateToggleModeVariations[] = {
//
// When adding a new choice, add it to the end of the list.
const flags_ui::FeatureEntry kFeatureEntries[] = {
diff --git a/patches/ios-chrome-browser-shared-model-prefs-browser_prefs.mm.patch b/patches/ios-chrome-browser-shared-model-prefs-browser_prefs.mm.patch
index 31d8375fd23c..73ebf22b8794 100644
--- a/patches/ios-chrome-browser-shared-model-prefs-browser_prefs.mm.patch
+++ b/patches/ios-chrome-browser-shared-model-prefs-browser_prefs.mm.patch
@@ -1,19 +1,19 @@
diff --git a/ios/chrome/browser/shared/model/prefs/browser_prefs.mm b/ios/chrome/browser/shared/model/prefs/browser_prefs.mm
-index 5bf05f864b7300f46c1cd5c7854e5384841f14d1..cf8ef485feac49762ac05ad845373c5dae35cc18 100644
+index 2edc99539f731c9718b24f935477bfd921f3b319..6397955c13643d63fba2e688867ebaffea54bdde 100644
--- a/ios/chrome/browser/shared/model/prefs/browser_prefs.mm
+++ b/ios/chrome/browser/shared/model/prefs/browser_prefs.mm
-@@ -525,6 +525,7 @@ void RegisterLocalStatePrefs(PrefRegistrySimple* registry) {
- registry->RegisterStringPref(kIOSChromeNextVersionKey, std::string());
- registry->RegisterStringPref(kIOSChromeUpgradeURLKey, std::string());
- registry->RegisterTimePref(kLastInfobarDisplayTimeKey, base::Time());
+@@ -568,6 +568,7 @@ void RegisterLocalStatePrefs(PrefRegistrySimple* registry) {
+ // Bottom omnibox preferences.
+ registry->RegisterBooleanPref(prefs::kBottomOmnibox, false);
+ registry->RegisterBooleanPref(prefs::kBottomOmniboxByDefault, false);
+ BRAVE_REGISTER_LOCAL_STATE_PREFS
}
void RegisterBrowserStatePrefs(user_prefs::PrefRegistrySyncable* registry) {
-@@ -802,6 +803,7 @@ void RegisterBrowserStatePrefs(user_prefs::PrefRegistrySyncable* registry) {
- prefs::kContentNotificationsEnrollmentEligibility);
+@@ -856,6 +857,7 @@ void RegisterBrowserStatePrefs(user_prefs::PrefRegistrySyncable* registry) {
- registry->RegisterStringPref(kSyncCachedTrustedVaultAutoUpgradeDebugInfo, "");
+ registry->RegisterBooleanPref(kObsoletePasswordsPerAccountPrefMigrationDone,
+ false);
+ BRAVE_REGISTER_BROWSER_STATE_PREFS
}
diff --git a/patches/ios-chrome-browser-sync-model-sync_service_factory.mm.patch b/patches/ios-chrome-browser-sync-model-sync_service_factory.mm.patch
index e2710e92bc69..0d8e85b0eda5 100644
--- a/patches/ios-chrome-browser-sync-model-sync_service_factory.mm.patch
+++ b/patches/ios-chrome-browser-sync-model-sync_service_factory.mm.patch
@@ -1,8 +1,8 @@
diff --git a/ios/chrome/browser/sync/model/sync_service_factory.mm b/ios/chrome/browser/sync/model/sync_service_factory.mm
-index 818bc1e15df6acaddceac2ef9e9d75dff71a4593..58d0229c409bd2a3653d0518e978d089c9069750 100644
+index ffe74fc5e22431fdfdc492cae37a27a9da707d50..554421eca6a53bf8039b31a454b61df872aeb8cf 100644
--- a/ios/chrome/browser/sync/model/sync_service_factory.mm
+++ b/ios/chrome/browser/sync/model/sync_service_factory.mm
-@@ -93,7 +93,7 @@ std::unique_ptr BuildSyncService(web::BrowserState* context) {
+@@ -96,7 +96,7 @@ std::unique_ptr BuildSyncService(web::BrowserState* context) {
init_params.debug_identifier = browser_state->GetDebugName();
auto sync_service =
diff --git a/patches/media-audio-pulse-pulse_util.cc.patch b/patches/media-audio-pulse-pulse_util.cc.patch
index 7b5dc7f09b72..adfd4233b952 100644
--- a/patches/media-audio-pulse-pulse_util.cc.patch
+++ b/patches/media-audio-pulse-pulse_util.cc.patch
@@ -1,5 +1,5 @@
diff --git a/media/audio/pulse/pulse_util.cc b/media/audio/pulse/pulse_util.cc
-index 84b84ceea234e6b52db434434f16bc288cc652b6..6625b6037666f9a601dfb90079dfcdfa84bbb8a7 100644
+index df6680ccae07c5d8aa19ae9773d471c4d68c2e98..a9cc404ddd5831ffe6aa5e0900e2f30f4b4ae55d 100644
--- a/media/audio/pulse/pulse_util.cc
+++ b/media/audio/pulse/pulse_util.cc
@@ -38,7 +38,7 @@ namespace {
diff --git a/patches/net-BUILD.gn.patch b/patches/net-BUILD.gn.patch
index c4f8cdbfad91..4d8d37810b83 100644
--- a/patches/net-BUILD.gn.patch
+++ b/patches/net-BUILD.gn.patch
@@ -1,8 +1,8 @@
diff --git a/net/BUILD.gn b/net/BUILD.gn
-index 32643c0b16969e68ef09d263f36a039af927af1b..3de4c51c22cb421795421a043c0a363eae1a4da1 100644
+index 54ec7aa34afdf18d8aa048f1a4ecdc1c3c0c7ad6..17aabd19c5edaccf3e72f289046921d26e2b975c 100644
--- a/net/BUILD.gn
+++ b/net/BUILD.gn
-@@ -1109,6 +1109,7 @@ component("net") {
+@@ -1111,6 +1111,7 @@ component("net") {
"reporting/reporting_uploader.h",
]
}
diff --git a/patches/net-cookies-canonical_cookie.cc.patch b/patches/net-cookies-canonical_cookie.cc.patch
index 3c10cf7658c3..f23786d9499d 100644
--- a/patches/net-cookies-canonical_cookie.cc.patch
+++ b/patches/net-cookies-canonical_cookie.cc.patch
@@ -1,8 +1,8 @@
diff --git a/net/cookies/canonical_cookie.cc b/net/cookies/canonical_cookie.cc
-index 42d58730642db2c2fbbdbb50a019eddbbc1abad8..1307145415bf7ccad5c90cc808caf578a6499018 100644
+index eb3abed4985776ecc2be6425119158ee80e89721..926ed829f197dc10189bb4ad4e6ec84e3b94e143 100644
--- a/net/cookies/canonical_cookie.cc
+++ b/net/cookies/canonical_cookie.cc
-@@ -287,6 +287,7 @@ base::Time CanonicalCookie::ValidateAndAdjustExpiryDate(
+@@ -292,6 +292,7 @@ base::Time CanonicalCookie::ValidateAndAdjustExpiryDate(
// * network_handler.cc::MakeCookieFromProtocolValues
fixed_creation_date = base::Time::Now();
}
diff --git a/patches/net-dns-host_resolver_manager_job.cc.patch b/patches/net-dns-host_resolver_manager_job.cc.patch
index e28fb211a26c..7d2713c0968d 100644
--- a/patches/net-dns-host_resolver_manager_job.cc.patch
+++ b/patches/net-dns-host_resolver_manager_job.cc.patch
@@ -1,8 +1,8 @@
diff --git a/net/dns/host_resolver_manager_job.cc b/net/dns/host_resolver_manager_job.cc
-index a370e65f53f81d30b10f08fc272a36bb14322670..c9c8b763c4f4fb1a5587a7a93a1f07168c83b4d6 100644
+index 75087f4bf8737f345cfc1ae9260f2ecefd138c33..db81a06a0b3177a3aaeb454d049f7d6d122746e6 100644
--- a/net/dns/host_resolver_manager_job.cc
+++ b/net/dns/host_resolver_manager_job.cc
-@@ -1034,6 +1034,7 @@ void HostResolverManager::Job::CompleteRequests(
+@@ -1043,6 +1043,7 @@ void HostResolverManager::Job::CompleteRequests(
}
RecordJobHistograms(results, task_type);
diff --git a/patches/net-http-transport_security_state.cc.patch b/patches/net-http-transport_security_state.cc.patch
index 50933637bc08..ef37dcb27802 100644
--- a/patches/net-http-transport_security_state.cc.patch
+++ b/patches/net-http-transport_security_state.cc.patch
@@ -1,8 +1,8 @@
diff --git a/net/http/transport_security_state.cc b/net/http/transport_security_state.cc
-index 9f159d823c8897c0853803e8cb4492f747f1c9ef..2ff502d74883450909f1d07c53462a72c2033c0c 100644
+index 141635e65b1c4e777491851fc0392c7737d8ebcd..200446bc457e697a89e4061d66a8826ad5aa4e7a 100644
--- a/net/http/transport_security_state.cc
+++ b/net/http/transport_security_state.cc
-@@ -243,6 +243,7 @@ TransportSecurityState::TransportSecurityState(
+@@ -248,6 +248,7 @@ TransportSecurityState::TransportSecurityState(
// others don't end up with pins that cannot be easily updated.
#if !BUILDFLAG(GOOGLE_CHROME_BRANDING) || BUILDFLAG(IS_IOS)
enable_static_pins_ = false;
diff --git a/patches/net-proxy_resolution-configured_proxy_resolution_service.cc.patch b/patches/net-proxy_resolution-configured_proxy_resolution_service.cc.patch
index 7cdaa1fa51ab..c0617c872617 100644
--- a/patches/net-proxy_resolution-configured_proxy_resolution_service.cc.patch
+++ b/patches/net-proxy_resolution-configured_proxy_resolution_service.cc.patch
@@ -1,5 +1,5 @@
diff --git a/net/proxy_resolution/configured_proxy_resolution_service.cc b/net/proxy_resolution/configured_proxy_resolution_service.cc
-index 6c4f0f8c3440b43bf46a7bf4b9e86b6a8d8648e5..39355266fa93a0afd4d80d4c7bb8faa35562c63e 100644
+index 15caf805c0d677f74b934ff5530d866f2509b872..87e16ba9d91a1c1f77cbed1454c6bd0e57c4735e 100644
--- a/net/proxy_resolution/configured_proxy_resolution_service.cc
+++ b/net/proxy_resolution/configured_proxy_resolution_service.cc
@@ -988,6 +988,7 @@ int ConfiguredProxyResolutionService::ResolveProxy(
diff --git a/patches/net-socket-socks5_client_socket.cc.patch b/patches/net-socket-socks5_client_socket.cc.patch
index 0d5ed9ae9aff..9853cc583fce 100644
--- a/patches/net-socket-socks5_client_socket.cc.patch
+++ b/patches/net-socket-socks5_client_socket.cc.patch
@@ -1,8 +1,8 @@
diff --git a/net/socket/socks5_client_socket.cc b/net/socket/socks5_client_socket.cc
-index e6677d9c8a13a3be96ed0fc2bc9a69f47ffe530e..5985594663fa571596b1fdd5e788b5de1cc2e199 100644
+index a51cf90b3159e798318f1d4f6b54192abf4cd161..870af28d6e2768bf8617fd92924575efe440dffa 100644
--- a/net/socket/socks5_client_socket.cc
+++ b/net/socket/socks5_client_socket.cc
-@@ -222,6 +222,9 @@ int SOCKS5ClientSocket::DoLoop(int last_io_result) {
+@@ -227,6 +227,9 @@ int SOCKS5ClientSocket::DoLoop(int last_io_result) {
net_log_.EndEventWithNetErrorCode(NetLogEventType::SOCKS5_GREET_READ,
rv);
break;
@@ -12,7 +12,7 @@ index e6677d9c8a13a3be96ed0fc2bc9a69f47ffe530e..5985594663fa571596b1fdd5e788b5de
case STATE_HANDSHAKE_WRITE:
DCHECK_EQ(OK, rv);
net_log_.BeginEvent(NetLogEventType::SOCKS5_HANDSHAKE_WRITE);
-@@ -251,8 +254,6 @@ int SOCKS5ClientSocket::DoLoop(int last_io_result) {
+@@ -256,8 +259,6 @@ int SOCKS5ClientSocket::DoLoop(int last_io_result) {
return rv;
}
@@ -21,7 +21,7 @@ index e6677d9c8a13a3be96ed0fc2bc9a69f47ffe530e..5985594663fa571596b1fdd5e788b5de
int SOCKS5ClientSocket::DoGreetWrite() {
// Since we only have 1 byte to send the hostname length in, if the
// URL has a hostname longer than 255 characters we can't send it.
-@@ -262,8 +263,12 @@ int SOCKS5ClientSocket::DoGreetWrite() {
+@@ -267,8 +268,12 @@ int SOCKS5ClientSocket::DoGreetWrite() {
}
if (buffer_.empty()) {
@@ -36,7 +36,7 @@ index e6677d9c8a13a3be96ed0fc2bc9a69f47ffe530e..5985594663fa571596b1fdd5e788b5de
bytes_sent_ = 0;
}
-@@ -322,14 +327,14 @@ int SOCKS5ClientSocket::DoGreetReadComplete(int result) {
+@@ -327,14 +332,14 @@ int SOCKS5ClientSocket::DoGreetReadComplete(int result) {
"version", buffer_[0]);
return ERR_SOCKS_CONNECTION_FAILED;
}
diff --git a/patches/net-socket-socks_connect_job.cc.patch b/patches/net-socket-socks_connect_job.cc.patch
index 71d9fcca5f95..7592c767d51a 100644
--- a/patches/net-socket-socks_connect_job.cc.patch
+++ b/patches/net-socket-socks_connect_job.cc.patch
@@ -1,5 +1,5 @@
diff --git a/net/socket/socks_connect_job.cc b/net/socket/socks_connect_job.cc
-index d8ed2e8252a9768567cb830606a2ead499e3b360..ce9d01ec5f8831c04174652388771b75f2aee972 100644
+index c9d1ddf2f9d33622c3c4fa2763eafc890e798062..b58850b24a3e7859786316020931534e6381973a 100644
--- a/net/socket/socks_connect_job.cc
+++ b/net/socket/socks_connect_job.cc
@@ -179,9 +179,11 @@ int SOCKSConnectJob::DoSOCKSConnect() {
diff --git a/patches/sandbox-policy-win-sandbox_win.cc.patch b/patches/sandbox-policy-win-sandbox_win.cc.patch
index 8cc125b1cff0..84c366dc98d4 100644
--- a/patches/sandbox-policy-win-sandbox_win.cc.patch
+++ b/patches/sandbox-policy-win-sandbox_win.cc.patch
@@ -1,8 +1,8 @@
diff --git a/sandbox/policy/win/sandbox_win.cc b/sandbox/policy/win/sandbox_win.cc
-index 05a9bd7063f7800f608a3b77d5d48f76cf93ed7d..1068f98b0dcd775633f5b6d425114a66d186b6f8 100644
+index 0e6de2b7b49569883a72cda97ad0abcd601ac05f..01bb47f408b53791178f14083d270b947de809b3 100644
--- a/sandbox/policy/win/sandbox_win.cc
+++ b/sandbox/policy/win/sandbox_win.cc
-@@ -770,6 +770,7 @@ ResultCode LaunchWithoutSandbox(
+@@ -697,6 +697,7 @@ ResultCode LaunchWithoutSandbox(
base::Process* process) {
base::LaunchOptions options;
options.handles_to_inherit = handles_to_inherit;
diff --git a/patches/services-network-cookie_manager.cc.patch b/patches/services-network-cookie_manager.cc.patch
index 31f81fff5c58..2664041772ff 100644
--- a/patches/services-network-cookie_manager.cc.patch
+++ b/patches/services-network-cookie_manager.cc.patch
@@ -1,8 +1,8 @@
diff --git a/services/network/cookie_manager.cc b/services/network/cookie_manager.cc
-index 60cd3989fe135fc06a878c612e3d1964968ac2ea..e8c2286c9920689f1c65bc412d1d9eb665e9181f 100644
+index 613f34e4bc53655b23a7d96eec7b30b886e260ad..957ad71bc77a0b25962803d39d1d72161a501f29 100644
--- a/services/network/cookie_manager.cc
+++ b/services/network/cookie_manager.cc
-@@ -392,6 +392,7 @@ CookieDeletionInfo DeletionFilterToInfo(mojom::CookieDeletionFilterPtr filter) {
+@@ -413,6 +413,7 @@ CookieDeletionInfo DeletionFilterToInfo(mojom::CookieDeletionFilterPtr filter) {
delete_info.name = std::move(filter->cookie_name);
delete_info.url = std::move(filter->url);
delete_info.host = std::move(filter->host_name);
diff --git a/patches/services-network-cors-cors_url_loader.cc.patch b/patches/services-network-cors-cors_url_loader.cc.patch
index 80f5d04b2c83..a3674a1a0f7f 100644
--- a/patches/services-network-cors-cors_url_loader.cc.patch
+++ b/patches/services-network-cors-cors_url_loader.cc.patch
@@ -1,8 +1,8 @@
diff --git a/services/network/cors/cors_url_loader.cc b/services/network/cors/cors_url_loader.cc
-index 7a26a4b80e3a6996497c93bc0b67b74091a55ae0..8ddf86525e64ce9215f22acfe73a0580a285f127 100644
+index b315db2fbaea832ddcc12e053d2b690f18f006c5..e5d670dcf69c6a67ad4b38fe779f9b3ab1c266dd 100644
--- a/services/network/cors/cors_url_loader.cc
+++ b/services/network/cors/cors_url_loader.cc
-@@ -868,6 +868,7 @@ void CorsURLLoader::StartRequest() {
+@@ -869,6 +869,7 @@ void CorsURLLoader::StartRequest() {
(fetch_cors_flag_ ||
(request_.method != net::HttpRequestHeaders::kGetMethod &&
request_.method != net::HttpRequestHeaders::kHeadMethod))) {
diff --git a/patches/third_party-android_deps-BUILD.gn.patch b/patches/third_party-android_deps-BUILD.gn.patch
index 52dcb3794122..23744822295e 100644
--- a/patches/third_party-android_deps-BUILD.gn.patch
+++ b/patches/third_party-android_deps-BUILD.gn.patch
@@ -1,5 +1,5 @@
diff --git a/third_party/android_deps/BUILD.gn b/third_party/android_deps/BUILD.gn
-index 66998181e74f8ccb295761a86f5be4fdde47d308..cdf2a2b12b17792029beee1bb9cc29a090d8bf2b 100644
+index 4314a72710442cf991d1ebdb0f44c98a12b2b673..396377c41a2846bf8d784e765855d7c67a930f59 100644
--- a/third_party/android_deps/BUILD.gn
+++ b/third_party/android_deps/BUILD.gn
@@ -465,6 +465,7 @@ java_prebuilt("com_google_auto_value_auto_value_annotations_java") {
diff --git a/patches/third_party-blink-common-permissions-permission_utils.cc.patch b/patches/third_party-blink-common-permissions-permission_utils.cc.patch
index 67318f38b42b..faa96b4ec77f 100644
--- a/patches/third_party-blink-common-permissions-permission_utils.cc.patch
+++ b/patches/third_party-blink-common-permissions-permission_utils.cc.patch
@@ -1,5 +1,5 @@
diff --git a/third_party/blink/common/permissions/permission_utils.cc b/third_party/blink/common/permissions/permission_utils.cc
-index a380c9b2cbeaea1c74fad55d81bd6eee4b5836a4..2388aa75979e1517ff1c5e11793b96ad3b24d48f 100644
+index bc48e8cd354d6c4ebb1ac8a1ac0b7f6c42397779..41c4d7321f4e7983ee11a1da7637a6fdf82ee9bc 100644
--- a/third_party/blink/common/permissions/permission_utils.cc
+++ b/third_party/blink/common/permissions/permission_utils.cc
@@ -28,6 +28,7 @@ mojom::PermissionStatus ToPermissionStatus(const std::string& status) {
diff --git a/patches/third_party-blink-renderer-bindings-core-v8-v8_script_runner.cc.patch b/patches/third_party-blink-renderer-bindings-core-v8-v8_script_runner.cc.patch
index 269aaa8d259c..842b62b3e7a2 100644
--- a/patches/third_party-blink-renderer-bindings-core-v8-v8_script_runner.cc.patch
+++ b/patches/third_party-blink-renderer-bindings-core-v8-v8_script_runner.cc.patch
@@ -1,5 +1,5 @@
diff --git a/third_party/blink/renderer/bindings/core/v8/v8_script_runner.cc b/third_party/blink/renderer/bindings/core/v8/v8_script_runner.cc
-index 9f2d95bf4c94aff446f7ae23547672e3124f6ffb..8ed1152732bc0a2a9b48dc4dda5f0cd002c4b459 100644
+index 94d932734150a58fa8b3970ad62cf1338b95660c..c486e3a0349d7eb7e6413f9aabcb95785075a903 100644
--- a/third_party/blink/renderer/bindings/core/v8/v8_script_runner.cc
+++ b/third_party/blink/renderer/bindings/core/v8/v8_script_runner.cc
@@ -302,7 +302,7 @@ int GetMicrotasksScopeDepth(v8::Isolate* isolate,
diff --git a/patches/third_party-blink-renderer-bindings-generated_in_modules.gni.patch b/patches/third_party-blink-renderer-bindings-generated_in_modules.gni.patch
index 1d891b0e088d..480a83d8a5a8 100644
--- a/patches/third_party-blink-renderer-bindings-generated_in_modules.gni.patch
+++ b/patches/third_party-blink-renderer-bindings-generated_in_modules.gni.patch
@@ -1,8 +1,8 @@
diff --git a/third_party/blink/renderer/bindings/generated_in_modules.gni b/third_party/blink/renderer/bindings/generated_in_modules.gni
-index cbaa75c11e61812f19930ee791cceb2443008e83..add022a3798aaebe54b6e3276c8717018eb9f76e 100644
+index dfa8e66d231a75806d9ba48f8d8ad43cca63ee2a..763f6dcd8d855cfbc26a56dbb2ea28290598b5c4 100644
--- a/third_party/blink/renderer/bindings/generated_in_modules.gni
+++ b/third_party/blink/renderer/bindings/generated_in_modules.gni
-@@ -2977,6 +2977,7 @@ generated_interface_sources_in_modules = [
+@@ -2981,6 +2981,7 @@ generated_interface_sources_in_modules = [
"$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_xr_webgl_sub_image.cc",
"$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_xr_webgl_sub_image.h",
]
diff --git a/patches/third_party-blink-renderer-bindings-idl_in_modules.gni.patch b/patches/third_party-blink-renderer-bindings-idl_in_modules.gni.patch
index 823719213a3d..da53e7690af9 100644
--- a/patches/third_party-blink-renderer-bindings-idl_in_modules.gni.patch
+++ b/patches/third_party-blink-renderer-bindings-idl_in_modules.gni.patch
@@ -1,8 +1,8 @@
diff --git a/third_party/blink/renderer/bindings/idl_in_modules.gni b/third_party/blink/renderer/bindings/idl_in_modules.gni
-index bb899da428917268848c37a14c3f3be6906b3fff..97694ccbd6eb3cebb5f3f15579207f33b68c9a7e 100644
+index 247dadc25d846b9d67be22144582e6caf9a46be4..10233c955790a1280ac393d11ab3bea3981f64a0 100644
--- a/third_party/blink/renderer/bindings/idl_in_modules.gni
+++ b/third_party/blink/renderer/bindings/idl_in_modules.gni
-@@ -1261,6 +1261,7 @@ static_idl_files_in_modules = [
+@@ -1264,6 +1264,7 @@ static_idl_files_in_modules = [
"//third_party/blink/renderer/modules/xr/xr_webgl_layer_init.idl",
"//third_party/blink/renderer/modules/xr/xr_webgl_sub_image.idl",
]
diff --git a/patches/third_party-blink-renderer-bindings-scripts-bind_gen-interface.py.patch b/patches/third_party-blink-renderer-bindings-scripts-bind_gen-interface.py.patch
index 296432190113..9593a00dbdeb 100644
--- a/patches/third_party-blink-renderer-bindings-scripts-bind_gen-interface.py.patch
+++ b/patches/third_party-blink-renderer-bindings-scripts-bind_gen-interface.py.patch
@@ -1,8 +1,8 @@
diff --git a/third_party/blink/renderer/bindings/scripts/bind_gen/interface.py b/third_party/blink/renderer/bindings/scripts/bind_gen/interface.py
-index 1bd2fbca00956b9e50a53f00a7b1f9d3c7a06f3b..3d3158bd053293449c74dd8f54e6664e4d23fbfc 100644
+index b1f2b691fcd8e4ead871f6546e212cf3778cd699..19afc3c9d0fe3b45676604d33d096c23884d7e31 100644
--- a/third_party/blink/renderer/bindings/scripts/bind_gen/interface.py
+++ b/third_party/blink/renderer/bindings/scripts/bind_gen/interface.py
-@@ -7519,3 +7519,4 @@ def generate_interfaces(task_queue):
+@@ -7534,3 +7534,4 @@ def generate_interfaces(task_queue):
"InitIDLInterfacesForTesting",
"init_idl_interfaces_for_testing",
for_testing=True)
diff --git a/patches/third_party-blink-renderer-core-BUILD.gn.patch b/patches/third_party-blink-renderer-core-BUILD.gn.patch
index 560197b54c61..9d872143dbc2 100644
--- a/patches/third_party-blink-renderer-core-BUILD.gn.patch
+++ b/patches/third_party-blink-renderer-core-BUILD.gn.patch
@@ -1,8 +1,8 @@
diff --git a/third_party/blink/renderer/core/BUILD.gn b/third_party/blink/renderer/core/BUILD.gn
-index 4feaed1ede9739cb92860c995c1f9730ff0abe84..cb030a011d807e87ee10897c5d0896b087fedf63 100644
+index 2a9d420eabfee17a39604e525af6f0fa95fafc04..3d4b1b65b597966d92595aae0dec31b5b129c1ce 100644
--- a/third_party/blink/renderer/core/BUILD.gn
+++ b/third_party/blink/renderer/core/BUILD.gn
-@@ -414,6 +414,7 @@ component("core") {
+@@ -427,6 +427,7 @@ component("core") {
"Carbon.framework",
]
}
diff --git a/patches/third_party-blink-renderer-core-dom-events-event_target.cc.patch b/patches/third_party-blink-renderer-core-dom-events-event_target.cc.patch
index b77f7136f9dc..d1e38591da5f 100644
--- a/patches/third_party-blink-renderer-core-dom-events-event_target.cc.patch
+++ b/patches/third_party-blink-renderer-core-dom-events-event_target.cc.patch
@@ -1,5 +1,5 @@
diff --git a/third_party/blink/renderer/core/dom/events/event_target.cc b/third_party/blink/renderer/core/dom/events/event_target.cc
-index e1b85d9f9eff52595afa02e6620205b6effb707b..25c5bb98aa9c4f55c103236d53e03b585f423914 100644
+index b28217a84096169a43006ef4e8bcab1244ba0b43..22ecb6d0fbac6ce28b9db35773e181c30e5a68b2 100644
--- a/third_party/blink/renderer/core/dom/events/event_target.cc
+++ b/third_party/blink/renderer/core/dom/events/event_target.cc
@@ -650,6 +650,7 @@ bool EventTarget::AddEventListenerInternal(
diff --git a/patches/third_party-blink-renderer-core-frame-local_dom_window.cc.patch b/patches/third_party-blink-renderer-core-frame-local_dom_window.cc.patch
index 77c6013ea57c..0c26c591e4ba 100644
--- a/patches/third_party-blink-renderer-core-frame-local_dom_window.cc.patch
+++ b/patches/third_party-blink-renderer-core-frame-local_dom_window.cc.patch
@@ -1,8 +1,8 @@
diff --git a/third_party/blink/renderer/core/frame/local_dom_window.cc b/third_party/blink/renderer/core/frame/local_dom_window.cc
-index 22ad72f457bcd70d6448b9313d21c9cad0a4df11..d51dcaf2c43ca5441ddef6cc21659b6152ccf12e 100644
+index 679a9f2aeeebb2b238f6fabaebb40c67c60c09b9..31e001c15a3938e7944070722b5d1b254d80f1e1 100644
--- a/third_party/blink/renderer/core/frame/local_dom_window.cc
+++ b/third_party/blink/renderer/core/frame/local_dom_window.cc
-@@ -477,6 +477,7 @@ bool LocalDOMWindow::CanExecuteScripts(
+@@ -489,6 +489,7 @@ bool LocalDOMWindow::CanExecuteScripts(
bool allow_script_content_setting =
GetFrame()->GetContentSettings()->allow_script;
bool script_enabled = allow_script_renderer && allow_script_content_setting;
diff --git a/patches/third_party-blink-renderer-core-html-canvas-html_canvas_element.cc.patch b/patches/third_party-blink-renderer-core-html-canvas-html_canvas_element.cc.patch
index 3f518cbcbe2f..a10c5a47c1de 100644
--- a/patches/third_party-blink-renderer-core-html-canvas-html_canvas_element.cc.patch
+++ b/patches/third_party-blink-renderer-core-html-canvas-html_canvas_element.cc.patch
@@ -1,5 +1,5 @@
diff --git a/third_party/blink/renderer/core/html/canvas/html_canvas_element.cc b/third_party/blink/renderer/core/html/canvas/html_canvas_element.cc
-index d28de5cda3fbb2c992ae708f82bba0113c81d7b9..64681439ef0f4cbf8f782c78397f522d61245403 100644
+index 9260a39f38bf68fc33e2b84ac3c65e8a8986042d..e77d8fece68a290f90c557dc5756c0e5f35fcc28 100644
--- a/third_party/blink/renderer/core/html/canvas/html_canvas_element.cc
+++ b/third_party/blink/renderer/core/html/canvas/html_canvas_element.cc
@@ -1159,6 +1159,7 @@ String HTMLCanvasElement::ToDataURLInternal(
diff --git a/patches/third_party-blink-renderer-core-html-canvas-html_canvas_element.h.patch b/patches/third_party-blink-renderer-core-html-canvas-html_canvas_element.h.patch
index 63e7fe43aa71..98179785fed4 100644
--- a/patches/third_party-blink-renderer-core-html-canvas-html_canvas_element.h.patch
+++ b/patches/third_party-blink-renderer-core-html-canvas-html_canvas_element.h.patch
@@ -1,8 +1,8 @@
diff --git a/third_party/blink/renderer/core/html/canvas/html_canvas_element.h b/third_party/blink/renderer/core/html/canvas/html_canvas_element.h
-index 9d6252b2984f24d348593944b3b216c4f47417e0..24b0f6cbc9351c0a4b863b0c379a161c64357f16 100644
+index d4efe68001a25d471fabd1233862a3077b129e04..9e21f98fbf872a5517e58385d6d0d95b240cade5 100644
--- a/third_party/blink/renderer/core/html/canvas/html_canvas_element.h
+++ b/third_party/blink/renderer/core/html/canvas/html_canvas_element.h
-@@ -316,6 +316,7 @@ class CORE_EXPORT HTMLCanvasElement final
+@@ -317,6 +317,7 @@ class CORE_EXPORT HTMLCanvasElement final
bool ShouldDisableAccelerationBecauseOfReadback() const;
diff --git a/patches/third_party-blink-renderer-core-html-media-autoplay_policy.cc.patch b/patches/third_party-blink-renderer-core-html-media-autoplay_policy.cc.patch
index e76821821a90..ea99970e6dd3 100644
--- a/patches/third_party-blink-renderer-core-html-media-autoplay_policy.cc.patch
+++ b/patches/third_party-blink-renderer-core-html-media-autoplay_policy.cc.patch
@@ -1,5 +1,5 @@
diff --git a/third_party/blink/renderer/core/html/media/autoplay_policy.cc b/third_party/blink/renderer/core/html/media/autoplay_policy.cc
-index 3094e21c7cea10a98cf4bcb4d075092681b78205..35af6548cd8564bd367caf160f11f2c4ded10faa 100644
+index 5ff4cc217fca4331a69d3819313106fcb1f7a489..b430629131ad1722bc7b2ca6d751b253f1d74cc6 100644
--- a/third_party/blink/renderer/core/html/media/autoplay_policy.cc
+++ b/third_party/blink/renderer/core/html/media/autoplay_policy.cc
@@ -65,6 +65,7 @@ bool ComputeLockPendingUserGestureRequired(const Document& document) {
diff --git a/patches/third_party-blink-renderer-core-loader-frame_fetch_context.cc.patch b/patches/third_party-blink-renderer-core-loader-frame_fetch_context.cc.patch
index ace73e9ff05c..879c3ea0d8e5 100644
--- a/patches/third_party-blink-renderer-core-loader-frame_fetch_context.cc.patch
+++ b/patches/third_party-blink-renderer-core-loader-frame_fetch_context.cc.patch
@@ -1,8 +1,8 @@
diff --git a/third_party/blink/renderer/core/loader/frame_fetch_context.cc b/third_party/blink/renderer/core/loader/frame_fetch_context.cc
-index 38373826db117ac11e99cab7f8ac69c8e0c5e347..7e1058f511a93d6dd431ed395e2ea47c162a49cd 100644
+index 784da84aeb7da5296cce8526eb754d009c132707..0d481376ba8926769c07e8358db2960dd4fa9a76 100644
--- a/third_party/blink/renderer/core/loader/frame_fetch_context.cc
+++ b/third_party/blink/renderer/core/loader/frame_fetch_context.cc
-@@ -453,6 +453,7 @@ void FrameFetchContext::AddClientHintsIfNecessary(
+@@ -455,6 +455,7 @@ void FrameFetchContext::AddClientHintsIfNecessary(
// Check if |url| is allowed to run JavaScript. If not, client hints are not
// attached to the requests that initiate on the render side.
diff --git a/patches/third_party-blink-renderer-core-loader-mixed_content_checker.cc.patch b/patches/third_party-blink-renderer-core-loader-mixed_content_checker.cc.patch
index 9bd14d068c65..faa462cbb146 100644
--- a/patches/third_party-blink-renderer-core-loader-mixed_content_checker.cc.patch
+++ b/patches/third_party-blink-renderer-core-loader-mixed_content_checker.cc.patch
@@ -1,5 +1,5 @@
diff --git a/third_party/blink/renderer/core/loader/mixed_content_checker.cc b/third_party/blink/renderer/core/loader/mixed_content_checker.cc
-index 087986ad7ee53cf9a3c056e21066660c5baada6a..c1acf4701a603aba6ca806a5d343f2a2f33f04ab 100644
+index 3824acd803e956010aa3f5c6dc47c1939d977a18..4243666a2c526d9c1487edeb6bd31b8a567d7992 100644
--- a/third_party/blink/renderer/core/loader/mixed_content_checker.cc
+++ b/third_party/blink/renderer/core/loader/mixed_content_checker.cc
@@ -276,6 +276,7 @@ bool RequestIsSubframeSubresource(Frame* frame) {
diff --git a/patches/third_party-blink-renderer-core-loader-modulescript-module_script_loader.cc.patch b/patches/third_party-blink-renderer-core-loader-modulescript-module_script_loader.cc.patch
index 91e3b47e676f..a159f664e519 100644
--- a/patches/third_party-blink-renderer-core-loader-modulescript-module_script_loader.cc.patch
+++ b/patches/third_party-blink-renderer-core-loader-modulescript-module_script_loader.cc.patch
@@ -1,5 +1,5 @@
diff --git a/third_party/blink/renderer/core/loader/modulescript/module_script_loader.cc b/third_party/blink/renderer/core/loader/modulescript/module_script_loader.cc
-index b3d861555d8ecb4295c8f57414784a9b7f8e1745..f2f344ca00a96f8ea31e796bbf7cc59bae707d6a 100644
+index f32bdc144f26a1ea5da2dad9ac0c8a782b0b2ff9..89596359bb955507d80f0b5860adb840552e05f8 100644
--- a/third_party/blink/renderer/core/loader/modulescript/module_script_loader.cc
+++ b/third_party/blink/renderer/core/loader/modulescript/module_script_loader.cc
@@ -181,6 +181,7 @@ void ModuleScriptLoader::FetchInternal(
diff --git a/patches/third_party-blink-renderer-core-loader-modulescript-module_tree_linker.cc.patch b/patches/third_party-blink-renderer-core-loader-modulescript-module_tree_linker.cc.patch
index 59fff8745f1d..df5072fdb655 100644
--- a/patches/third_party-blink-renderer-core-loader-modulescript-module_tree_linker.cc.patch
+++ b/patches/third_party-blink-renderer-core-loader-modulescript-module_tree_linker.cc.patch
@@ -1,5 +1,5 @@
diff --git a/third_party/blink/renderer/core/loader/modulescript/module_tree_linker.cc b/third_party/blink/renderer/core/loader/modulescript/module_tree_linker.cc
-index a9cb36eff7946e63b11265442d6a0e265915bf24..811234b2dbf4eff5206baaf48de1120a92b7df10 100644
+index ce143009784bed6df938aac4c150d580fe28d1dc..ac6c819091b152c1852f7b9c7a0240765c2531be 100644
--- a/third_party/blink/renderer/core/loader/modulescript/module_tree_linker.cc
+++ b/third_party/blink/renderer/core/loader/modulescript/module_tree_linker.cc
@@ -449,6 +449,7 @@ void ModuleTreeLinker::FetchDescendants(const ModuleScript* module_script) {
diff --git a/patches/third_party-blink-renderer-core-permissions_policy-permissions_policy_features.json5.patch b/patches/third_party-blink-renderer-core-permissions_policy-permissions_policy_features.json5.patch
index 36271b1d6a98..7c827b42fe84 100644
--- a/patches/third_party-blink-renderer-core-permissions_policy-permissions_policy_features.json5.patch
+++ b/patches/third_party-blink-renderer-core-permissions_policy-permissions_policy_features.json5.patch
@@ -1,8 +1,8 @@
diff --git a/third_party/blink/renderer/core/permissions_policy/permissions_policy_features.json5 b/third_party/blink/renderer/core/permissions_policy/permissions_policy_features.json5
-index e808f502fb0cdcbd823698e97d3657f1357f2d0e..c06ba6c07e169a917a8814f45b8a08784473ba9b 100644
+index dca7ebc01d852cee71db1753b2806257058f9f19..08e5e0a1ed80be6ccd5213e07bd44388cfa3f044 100644
--- a/third_party/blink/renderer/core/permissions_policy/permissions_policy_features.json5
+++ b/third_party/blink/renderer/core/permissions_policy/permissions_policy_features.json5
-@@ -453,5 +453,13 @@
+@@ -473,5 +473,13 @@
name: "WindowManagement",
permissions_policy_name: "window-management",
},
diff --git a/patches/third_party-blink-renderer-core-script-script_loader.cc.patch b/patches/third_party-blink-renderer-core-script-script_loader.cc.patch
index ac463ca001a7..968165e647a6 100644
--- a/patches/third_party-blink-renderer-core-script-script_loader.cc.patch
+++ b/patches/third_party-blink-renderer-core-script-script_loader.cc.patch
@@ -1,8 +1,8 @@
diff --git a/third_party/blink/renderer/core/script/script_loader.cc b/third_party/blink/renderer/core/script/script_loader.cc
-index 30245f9afeee2b7302ff01a9dbce23d75ca49219..0cb65ad4116e09f2a7f769147c50c1bbb10aa061 100644
+index e992e63868d3ed589b867a4303ac3c3e73cd7876..72cf4496909a41440f559ebc7b78ee095a7bd935 100644
--- a/third_party/blink/renderer/core/script/script_loader.cc
+++ b/third_party/blink/renderer/core/script/script_loader.cc
-@@ -768,6 +768,7 @@ PendingScript* ScriptLoader::PrepareScript(
+@@ -720,6 +720,7 @@ PendingScript* ScriptLoader::PrepareScript(
parser_state, credentials_mode, referrer_policy,
fetch_priority_hint, render_blocking_behavior,
RejectCoepUnsafeNone(false));
diff --git a/patches/third_party-blink-renderer-modules-BUILD.gn.patch b/patches/third_party-blink-renderer-modules-BUILD.gn.patch
index f31dc4186116..124cf4d98264 100644
--- a/patches/third_party-blink-renderer-modules-BUILD.gn.patch
+++ b/patches/third_party-blink-renderer-modules-BUILD.gn.patch
@@ -1,5 +1,5 @@
diff --git a/third_party/blink/renderer/modules/BUILD.gn b/third_party/blink/renderer/modules/BUILD.gn
-index 07f21c925497a179c7ec6aad25ee28da26874bbf..d9f780e2cffa059c12a25aac84817c0235652f0a 100644
+index 8d39a0290f343208ca0fa6000a4ec7207627fdee..60dbb1bf8c9ff483f4b1437093cd9508440f5522 100644
--- a/third_party/blink/renderer/modules/BUILD.gn
+++ b/third_party/blink/renderer/modules/BUILD.gn
@@ -19,6 +19,7 @@ if (is_ios) {
diff --git a/patches/third_party-blink-renderer-modules-canvas-canvas2d-base_rendering_context_2d.cc.patch b/patches/third_party-blink-renderer-modules-canvas-canvas2d-base_rendering_context_2d.cc.patch
index 31da7cbc8a84..eb26c4ae2465 100644
--- a/patches/third_party-blink-renderer-modules-canvas-canvas2d-base_rendering_context_2d.cc.patch
+++ b/patches/third_party-blink-renderer-modules-canvas-canvas2d-base_rendering_context_2d.cc.patch
@@ -1,16 +1,16 @@
diff --git a/third_party/blink/renderer/modules/canvas/canvas2d/base_rendering_context_2d.cc b/third_party/blink/renderer/modules/canvas/canvas2d/base_rendering_context_2d.cc
-index 0f3f8474071432f0b5737b07bfe73bf2ced8b36a..c1d20cbaf3f73b56a2f4a673b52996d5d381c423 100644
+index 9587913ad7dd1e93add27147c152c78c9ca0506d..8a77cc4dea63d080dfc92b5470b03b30804a6464 100644
--- a/third_party/blink/renderer/modules/canvas/canvas2d/base_rendering_context_2d.cc
+++ b/third_party/blink/renderer/modules/canvas/canvas2d/base_rendering_context_2d.cc
-@@ -2437,6 +2437,7 @@ ImageData* BaseRenderingContext2D::getImageData(
- }
+@@ -2576,6 +2576,7 @@ ImageData* BaseRenderingContext2D::getImageData(
+ perfetto::EventContext GetEventContext();
ImageData* BaseRenderingContext2D::getImageDataInternal(
+ BRAVE_GET_IMAGE_DATA_PARAMS
int sx,
int sy,
int sw,
-@@ -2602,6 +2603,7 @@ ImageData* BaseRenderingContext2D::getImageDataInternal(
+@@ -2741,6 +2742,7 @@ ImageData* BaseRenderingContext2D::getImageDataInternal(
DCHECK(!bounds.intersect(SkIRect::MakeXYWH(sx, sy, sw, sh)));
}
}
@@ -18,7 +18,7 @@ index 0f3f8474071432f0b5737b07bfe73bf2ced8b36a..c1d20cbaf3f73b56a2f4a673b52996d5
return image_data;
}
-@@ -3270,6 +3272,7 @@ TextMetrics* BaseRenderingContext2D::measureText(const String& text) {
+@@ -3410,6 +3412,7 @@ TextMetrics* BaseRenderingContext2D::measureText(const String& text) {
return MakeGarbageCollected();
}
diff --git a/patches/third_party-blink-renderer-modules-canvas-canvas2d-canvas_rendering_context_2d.idl.patch b/patches/third_party-blink-renderer-modules-canvas-canvas2d-canvas_rendering_context_2d.idl.patch
index 52237657546b..e1119b50edcb 100644
--- a/patches/third_party-blink-renderer-modules-canvas-canvas2d-canvas_rendering_context_2d.idl.patch
+++ b/patches/third_party-blink-renderer-modules-canvas-canvas2d-canvas_rendering_context_2d.idl.patch
@@ -1,5 +1,5 @@
diff --git a/third_party/blink/renderer/modules/canvas/canvas2d/canvas_rendering_context_2d.idl b/third_party/blink/renderer/modules/canvas/canvas2d/canvas_rendering_context_2d.idl
-index ee02d822ff8c1ba9ed5cf38d7230589d5413bd5f..e571b2e24466828a26a9a0bff42754522a713286 100644
+index 5edfbb82c8bee629fe09202f57f40ea961c0bc2c..56aa4111518438c6ac69446d5da950733b489e7d 100644
--- a/third_party/blink/renderer/modules/canvas/canvas2d/canvas_rendering_context_2d.idl
+++ b/third_party/blink/renderer/modules/canvas/canvas2d/canvas_rendering_context_2d.idl
@@ -118,10 +118,10 @@ interface CanvasRenderingContext2D {
diff --git a/patches/third_party-blink-renderer-modules-canvas-offscreencanvas2d-offscreen_canvas_rendering_context_2d.idl.patch b/patches/third_party-blink-renderer-modules-canvas-offscreencanvas2d-offscreen_canvas_rendering_context_2d.idl.patch
index 529d3d45050f..3a49d777e3e9 100644
--- a/patches/third_party-blink-renderer-modules-canvas-offscreencanvas2d-offscreen_canvas_rendering_context_2d.idl.patch
+++ b/patches/third_party-blink-renderer-modules-canvas-offscreencanvas2d-offscreen_canvas_rendering_context_2d.idl.patch
@@ -1,5 +1,5 @@
diff --git a/third_party/blink/renderer/modules/canvas/offscreencanvas2d/offscreen_canvas_rendering_context_2d.idl b/third_party/blink/renderer/modules/canvas/offscreencanvas2d/offscreen_canvas_rendering_context_2d.idl
-index aeb999eaac842a9ac37b8d1771286b550200df10..644f7f3703cfeeb53901ecffdeac1a30f6236ce6 100644
+index 02b76a9b13c09e3ae310c8e766de6170a6e71d36..2eb4339efc20b6b207cdc77533a84a69df80102e 100644
--- a/third_party/blink/renderer/modules/canvas/offscreencanvas2d/offscreen_canvas_rendering_context_2d.idl
+++ b/third_party/blink/renderer/modules/canvas/offscreencanvas2d/offscreen_canvas_rendering_context_2d.idl
@@ -68,10 +68,10 @@
diff --git a/patches/third_party-blink-renderer-modules-encryptedmedia-navigator_request_media_key_system_access.cc.patch b/patches/third_party-blink-renderer-modules-encryptedmedia-navigator_request_media_key_system_access.cc.patch
index 28a1acf26a2d..b6cd5f65cbcb 100644
--- a/patches/third_party-blink-renderer-modules-encryptedmedia-navigator_request_media_key_system_access.cc.patch
+++ b/patches/third_party-blink-renderer-modules-encryptedmedia-navigator_request_media_key_system_access.cc.patch
@@ -1,5 +1,5 @@
diff --git a/third_party/blink/renderer/modules/encryptedmedia/navigator_request_media_key_system_access.cc b/third_party/blink/renderer/modules/encryptedmedia/navigator_request_media_key_system_access.cc
-index 4e0e93965be696417825fbdb59a944b0322105b3..389b700872238010175fbf107a897042656f2bf1 100644
+index 78a3909e66f70c162f2707cf7fa61bca2d51cd31..891754a11353111f750dd01e904e5b72e88e1e2b 100644
--- a/third_party/blink/renderer/modules/encryptedmedia/navigator_request_media_key_system_access.cc
+++ b/third_party/blink/renderer/modules/encryptedmedia/navigator_request_media_key_system_access.cc
@@ -201,6 +201,7 @@ NavigatorRequestMediaKeySystemAccess::requestMediaKeySystemAccess(
diff --git a/patches/third_party-blink-renderer-modules-mediastream-media_devices.cc.patch b/patches/third_party-blink-renderer-modules-mediastream-media_devices.cc.patch
index 39011db14d4b..14796508fff5 100644
--- a/patches/third_party-blink-renderer-modules-mediastream-media_devices.cc.patch
+++ b/patches/third_party-blink-renderer-modules-mediastream-media_devices.cc.patch
@@ -1,5 +1,5 @@
diff --git a/third_party/blink/renderer/modules/mediastream/media_devices.cc b/third_party/blink/renderer/modules/mediastream/media_devices.cc
-index 0d7fbcb6c1339100ff69caa3ceea481c9ffd3b21..21c36450ef42d687168451729f1eb8e640fefc8b 100644
+index c62ed4909623c1ae315f3de6f8b5e1105a6822e0..0b88642018a3b0f5ab927b2c6d34689f75fdb27b 100644
--- a/third_party/blink/renderer/modules/mediastream/media_devices.cc
+++ b/third_party/blink/renderer/modules/mediastream/media_devices.cc
@@ -1142,6 +1142,7 @@ void MediaDevices::DevicesEnumerated(
diff --git a/patches/third_party-blink-renderer-modules-webgl-webgl2_rendering_context_base.cc.patch b/patches/third_party-blink-renderer-modules-webgl-webgl2_rendering_context_base.cc.patch
index 2b071707346f..819a3d5de9d7 100644
--- a/patches/third_party-blink-renderer-modules-webgl-webgl2_rendering_context_base.cc.patch
+++ b/patches/third_party-blink-renderer-modules-webgl-webgl2_rendering_context_base.cc.patch
@@ -1,5 +1,5 @@
diff --git a/third_party/blink/renderer/modules/webgl/webgl2_rendering_context_base.cc b/third_party/blink/renderer/modules/webgl/webgl2_rendering_context_base.cc
-index c26ff74312d0ea8205d0f92a4cf0069491aa5d40..bde0169953df545e97d615f7b135be3e510f008d 100644
+index ad68b2c3184da52b55b14fe825965fd4332b57d9..9355f32a1aed19ecd2a5dd8d71aaa5a6a7b7f8d6 100644
--- a/third_party/blink/renderer/modules/webgl/webgl2_rendering_context_base.cc
+++ b/third_party/blink/renderer/modules/webgl/webgl2_rendering_context_base.cc
@@ -5291,6 +5291,7 @@ ScriptValue WebGL2RenderingContextBase::getParameter(ScriptState* script_state,
diff --git a/patches/third_party-blink-renderer-modules-webgl-webgl_rendering_context_base.cc.patch b/patches/third_party-blink-renderer-modules-webgl-webgl_rendering_context_base.cc.patch
index 5fa1c3a82614..d9b11fcab919 100644
--- a/patches/third_party-blink-renderer-modules-webgl-webgl_rendering_context_base.cc.patch
+++ b/patches/third_party-blink-renderer-modules-webgl-webgl_rendering_context_base.cc.patch
@@ -1,8 +1,8 @@
diff --git a/third_party/blink/renderer/modules/webgl/webgl_rendering_context_base.cc b/third_party/blink/renderer/modules/webgl/webgl_rendering_context_base.cc
-index 118c8a892272124c4a74aab5615e6e1fea5f0deb..31472339015963b14a5fbe582dd74d19eabaf1a6 100644
+index 801c6e3fc15714071ab325593c0ff40602450a87..6338179111fe0804d684e6c269e04977d0f940a9 100644
--- a/third_party/blink/renderer/modules/webgl/webgl_rendering_context_base.cc
+++ b/third_party/blink/renderer/modules/webgl/webgl_rendering_context_base.cc
-@@ -3209,6 +3209,7 @@ WebGLActiveInfo* WebGLRenderingContextBase::getActiveAttrib(
+@@ -3185,6 +3185,7 @@ WebGLActiveInfo* WebGLRenderingContextBase::getActiveAttrib(
GLuint index) {
if (!ValidateWebGLProgramOrShader("getActiveAttrib", program))
return nullptr;
@@ -10,7 +10,7 @@ index 118c8a892272124c4a74aab5615e6e1fea5f0deb..31472339015963b14a5fbe582dd74d19
GLuint program_id = ObjectNonZero(program);
GLint max_name_length = -1;
ContextGL()->GetProgramiv(program_id, GL_ACTIVE_ATTRIBUTE_MAX_LENGTH,
-@@ -3240,6 +3241,7 @@ WebGLActiveInfo* WebGLRenderingContextBase::getActiveUniform(
+@@ -3216,6 +3217,7 @@ WebGLActiveInfo* WebGLRenderingContextBase::getActiveUniform(
GLuint index) {
if (!ValidateWebGLProgramOrShader("getActiveUniform", program))
return nullptr;
@@ -18,7 +18,7 @@ index 118c8a892272124c4a74aab5615e6e1fea5f0deb..31472339015963b14a5fbe582dd74d19
GLuint program_id = ObjectNonZero(program);
GLint max_name_length = -1;
ContextGL()->GetProgramiv(program_id, GL_ACTIVE_UNIFORM_MAX_LENGTH,
-@@ -3269,6 +3271,7 @@ WebGLActiveInfo* WebGLRenderingContextBase::getActiveUniform(
+@@ -3245,6 +3247,7 @@ WebGLActiveInfo* WebGLRenderingContextBase::getActiveUniform(
std::optional>>
WebGLRenderingContextBase::getAttachedShaders(WebGLProgram* program) {
if (!ValidateWebGLProgramOrShader("getAttachedShaders", program))
@@ -26,7 +26,7 @@ index 118c8a892272124c4a74aab5615e6e1fea5f0deb..31472339015963b14a5fbe582dd74d19
return std::nullopt;
HeapVector> shader_objects;
-@@ -3284,6 +3287,7 @@ GLint WebGLRenderingContextBase::getAttribLocation(WebGLProgram* program,
+@@ -3260,6 +3263,7 @@ GLint WebGLRenderingContextBase::getAttribLocation(WebGLProgram* program,
const String& name) {
if (!ValidateWebGLProgramOrShader("getAttribLocation", program))
return -1;
@@ -34,7 +34,7 @@ index 118c8a892272124c4a74aab5615e6e1fea5f0deb..31472339015963b14a5fbe582dd74d19
if (!ValidateLocationLength("getAttribLocation", name))
return -1;
if (!ValidateString("getAttribLocation", name))
-@@ -3317,6 +3321,7 @@ ScriptValue WebGLRenderingContextBase::getBufferParameter(
+@@ -3293,6 +3297,7 @@ ScriptValue WebGLRenderingContextBase::getBufferParameter(
GLenum pname) {
if (isContextLost() || !ValidateBufferTarget("getBufferParameter", target))
return ScriptValue::CreateNull(script_state->GetIsolate());
@@ -42,7 +42,7 @@ index 118c8a892272124c4a74aab5615e6e1fea5f0deb..31472339015963b14a5fbe582dd74d19
switch (pname) {
case GL_BUFFER_USAGE: {
-@@ -3454,6 +3459,7 @@ ScriptValue WebGLRenderingContextBase::getFramebufferAttachmentParameter(
+@@ -3430,6 +3435,7 @@ ScriptValue WebGLRenderingContextBase::getFramebufferAttachmentParameter(
return ScriptValue::CreateNull(script_state->GetIsolate());
}
@@ -50,7 +50,7 @@ index 118c8a892272124c4a74aab5615e6e1fea5f0deb..31472339015963b14a5fbe582dd74d19
if (!framebuffer_binding_ || !framebuffer_binding_->Object()) {
SynthesizeGLError(GL_INVALID_OPERATION, kFunctionName,
"no framebuffer bound");
-@@ -3858,6 +3864,7 @@ ScriptValue WebGLRenderingContextBase::getParameter(ScriptState* script_state,
+@@ -3834,6 +3840,7 @@ ScriptValue WebGLRenderingContextBase::getParameter(ScriptState* script_state,
"invalid parameter name, OES_standard_derivatives not enabled");
return ScriptValue::CreateNull(script_state->GetIsolate());
case WebGLDebugRendererInfo::kUnmaskedRendererWebgl:
@@ -58,7 +58,7 @@ index 118c8a892272124c4a74aab5615e6e1fea5f0deb..31472339015963b14a5fbe582dd74d19
if (ExtensionEnabled(kWebGLDebugRendererInfoName)) {
if (IdentifiabilityStudySettings::Get()->ShouldSampleType(
blink::IdentifiableSurface::Type::kWebGLParameter)) {
-@@ -3873,6 +3880,7 @@ ScriptValue WebGLRenderingContextBase::getParameter(ScriptState* script_state,
+@@ -3849,6 +3856,7 @@ ScriptValue WebGLRenderingContextBase::getParameter(ScriptState* script_state,
"invalid parameter name, WEBGL_debug_renderer_info not enabled");
return ScriptValue::CreateNull(script_state->GetIsolate());
case WebGLDebugRendererInfo::kUnmaskedVendorWebgl:
@@ -66,7 +66,7 @@ index 118c8a892272124c4a74aab5615e6e1fea5f0deb..31472339015963b14a5fbe582dd74d19
if (ExtensionEnabled(kWebGLDebugRendererInfoName)) {
if (IdentifiabilityStudySettings::Get()->ShouldSampleType(
blink::IdentifiableSurface::Type::kWebGLParameter)) {
-@@ -4008,6 +4016,7 @@ ScriptValue WebGLRenderingContextBase::getProgramParameter(
+@@ -3984,6 +3992,7 @@ ScriptValue WebGLRenderingContextBase::getProgramParameter(
// intended to prevent applications from entering an infinite polling loop.
if (isContextLost() && pname == GL_COMPLETION_STATUS_KHR)
return WebGLAny(script_state, true);
@@ -74,7 +74,7 @@ index 118c8a892272124c4a74aab5615e6e1fea5f0deb..31472339015963b14a5fbe582dd74d19
if (!ValidateWebGLProgramOrShader("getProgramParamter", program)) {
return ScriptValue::CreateNull(script_state->GetIsolate());
}
-@@ -4063,6 +4072,7 @@ ScriptValue WebGLRenderingContextBase::getProgramParameter(
+@@ -4039,6 +4048,7 @@ ScriptValue WebGLRenderingContextBase::getProgramParameter(
String WebGLRenderingContextBase::getProgramInfoLog(WebGLProgram* program) {
if (!ValidateWebGLProgramOrShader("getProgramInfoLog", program))
return String();
@@ -82,7 +82,7 @@ index 118c8a892272124c4a74aab5615e6e1fea5f0deb..31472339015963b14a5fbe582dd74d19
GLStringQuery query(ContextGL());
return query.Run(ObjectNonZero(program));
}
-@@ -4073,6 +4083,7 @@ ScriptValue WebGLRenderingContextBase::getRenderbufferParameter(
+@@ -4049,6 +4059,7 @@ ScriptValue WebGLRenderingContextBase::getRenderbufferParameter(
GLenum pname) {
if (isContextLost())
return ScriptValue::CreateNull(script_state->GetIsolate());
@@ -90,7 +90,7 @@ index 118c8a892272124c4a74aab5615e6e1fea5f0deb..31472339015963b14a5fbe582dd74d19
if (target != GL_RENDERBUFFER) {
SynthesizeGLError(GL_INVALID_ENUM, "getRenderbufferParameter",
"invalid target");
-@@ -4124,6 +4135,7 @@ ScriptValue WebGLRenderingContextBase::getShaderParameter(
+@@ -4100,6 +4111,7 @@ ScriptValue WebGLRenderingContextBase::getShaderParameter(
// intended to prevent applications from entering an infinite polling loop.
if (isContextLost() && pname == GL_COMPLETION_STATUS_KHR)
return WebGLAny(script_state, true);
@@ -98,7 +98,7 @@ index 118c8a892272124c4a74aab5615e6e1fea5f0deb..31472339015963b14a5fbe582dd74d19
if (!ValidateWebGLProgramOrShader("getShaderParameter", shader)) {
return ScriptValue::CreateNull(script_state->GetIsolate());
}
-@@ -4155,6 +4167,7 @@ ScriptValue WebGLRenderingContextBase::getShaderParameter(
+@@ -4131,6 +4143,7 @@ ScriptValue WebGLRenderingContextBase::getShaderParameter(
String WebGLRenderingContextBase::getShaderInfoLog(WebGLShader* shader) {
if (!ValidateWebGLProgramOrShader("getShaderInfoLog", shader))
return String();
@@ -106,7 +106,7 @@ index 118c8a892272124c4a74aab5615e6e1fea5f0deb..31472339015963b14a5fbe582dd74d19
GLStringQuery query(ContextGL());
return query.Run(ObjectNonZero(shader));
}
-@@ -4185,6 +4198,7 @@ WebGLShaderPrecisionFormat* WebGLRenderingContextBase::getShaderPrecisionFormat(
+@@ -4161,6 +4174,7 @@ WebGLShaderPrecisionFormat* WebGLRenderingContextBase::getShaderPrecisionFormat(
GLint precision = 0;
ContextGL()->GetShaderPrecisionFormat(shader_type, precision_type, range,
&precision);
@@ -114,7 +114,7 @@ index 118c8a892272124c4a74aab5615e6e1fea5f0deb..31472339015963b14a5fbe582dd74d19
auto* result = MakeGarbageCollected(
range[0], range[1], precision);
if (IdentifiabilityStudySettings::Get()->ShouldSampleType(
-@@ -4197,6 +4211,7 @@ WebGLShaderPrecisionFormat* WebGLRenderingContextBase::getShaderPrecisionFormat(
+@@ -4173,6 +4187,7 @@ WebGLShaderPrecisionFormat* WebGLRenderingContextBase::getShaderPrecisionFormat(
String WebGLRenderingContextBase::getShaderSource(WebGLShader* shader) {
if (!ValidateWebGLProgramOrShader("getShaderSource", shader))
return String();
@@ -122,7 +122,7 @@ index 118c8a892272124c4a74aab5615e6e1fea5f0deb..31472339015963b14a5fbe582dd74d19
return EnsureNotNull(shader->Source());
}
-@@ -4222,6 +4237,7 @@ ScriptValue WebGLRenderingContextBase::getTexParameter(
+@@ -4198,6 +4213,7 @@ ScriptValue WebGLRenderingContextBase::getTexParameter(
GLenum pname) {
if (isContextLost())
return ScriptValue::CreateNull(script_state->GetIsolate());
@@ -130,7 +130,7 @@ index 118c8a892272124c4a74aab5615e6e1fea5f0deb..31472339015963b14a5fbe582dd74d19
if (!ValidateTextureBinding("getTexParameter", target))
return ScriptValue::CreateNull(script_state->GetIsolate());
switch (pname) {
-@@ -4256,6 +4272,7 @@ ScriptValue WebGLRenderingContextBase::getUniform(
+@@ -4232,6 +4248,7 @@ ScriptValue WebGLRenderingContextBase::getUniform(
const WebGLUniformLocation* uniform_location) {
if (!ValidateWebGLProgramOrShader("getUniform", program))
return ScriptValue::CreateNull(script_state->GetIsolate());
@@ -138,7 +138,7 @@ index 118c8a892272124c4a74aab5615e6e1fea5f0deb..31472339015963b14a5fbe582dd74d19
DCHECK(uniform_location);
if (!ValidateUniformLocation("getUniform", uniform_location, program)) {
return ScriptValue::CreateNull(script_state->GetIsolate());
-@@ -4503,6 +4520,7 @@ WebGLUniformLocation* WebGLRenderingContextBase::getUniformLocation(
+@@ -4479,6 +4496,7 @@ WebGLUniformLocation* WebGLRenderingContextBase::getUniformLocation(
const String& name) {
if (!ValidateWebGLProgramOrShader("getUniformLocation", program))
return nullptr;
@@ -146,7 +146,7 @@ index 118c8a892272124c4a74aab5615e6e1fea5f0deb..31472339015963b14a5fbe582dd74d19
if (!ValidateLocationLength("getUniformLocation", name))
return nullptr;
if (!ValidateString("getUniformLocation", name))
-@@ -4527,6 +4545,7 @@ ScriptValue WebGLRenderingContextBase::getVertexAttrib(
+@@ -4503,6 +4521,7 @@ ScriptValue WebGLRenderingContextBase::getVertexAttrib(
GLenum pname) {
if (isContextLost())
return ScriptValue::CreateNull(script_state->GetIsolate());
@@ -154,7 +154,7 @@ index 118c8a892272124c4a74aab5615e6e1fea5f0deb..31472339015963b14a5fbe582dd74d19
if (index >= max_vertex_attribs_) {
SynthesizeGLError(GL_INVALID_VALUE, "getVertexAttrib",
"index out of range");
-@@ -4604,6 +4623,7 @@ int64_t WebGLRenderingContextBase::getVertexAttribOffset(GLuint index,
+@@ -4580,6 +4599,7 @@ int64_t WebGLRenderingContextBase::getVertexAttribOffset(GLuint index,
GLenum pname) {
if (isContextLost())
return 0;
@@ -162,7 +162,7 @@ index 118c8a892272124c4a74aab5615e6e1fea5f0deb..31472339015963b14a5fbe582dd74d19
GLvoid* result = nullptr;
// NOTE: If pname is ever a value that returns more than 1 element
// this will corrupt memory.
-@@ -4963,6 +4983,7 @@ void WebGLRenderingContextBase::ReadPixelsHelper(GLint x,
+@@ -4939,6 +4959,7 @@ void WebGLRenderingContextBase::ReadPixelsHelper(GLint x,
int64_t offset) {
if (isContextLost())
return;
diff --git a/patches/third_party-blink-renderer-platform-BUILD.gn.patch b/patches/third_party-blink-renderer-platform-BUILD.gn.patch
index d1d1499ed4cb..e346e992a62a 100644
--- a/patches/third_party-blink-renderer-platform-BUILD.gn.patch
+++ b/patches/third_party-blink-renderer-platform-BUILD.gn.patch
@@ -1,8 +1,8 @@
diff --git a/third_party/blink/renderer/platform/BUILD.gn b/third_party/blink/renderer/platform/BUILD.gn
-index 5f304abbb561e1bc368c50eef329e949855b89b0..2d54626aa0e758a7657e8eb11bf148bf9ed4c2d1 100644
+index b763c9dde41ccac3590d1ed18ec62cf6bff8fdc8..91324f2c8903adb9b6d2e1f85acd495406a7e7cb 100644
--- a/third_party/blink/renderer/platform/BUILD.gn
+++ b/third_party/blink/renderer/platform/BUILD.gn
-@@ -1899,6 +1899,7 @@ component("platform") {
+@@ -1904,6 +1904,7 @@ component("platform") {
configs -= [ "//build/config/compiler:default_symbols" ]
configs += blink_symbols_config
diff --git a/patches/third_party-blink-renderer-platform-runtime_enabled_features.json5.patch b/patches/third_party-blink-renderer-platform-runtime_enabled_features.json5.patch
index 13fb79be3d2f..83542f0b75e3 100644
--- a/patches/third_party-blink-renderer-platform-runtime_enabled_features.json5.patch
+++ b/patches/third_party-blink-renderer-platform-runtime_enabled_features.json5.patch
@@ -1,8 +1,8 @@
diff --git a/third_party/blink/renderer/platform/runtime_enabled_features.json5 b/third_party/blink/renderer/platform/runtime_enabled_features.json5
-index cb6c363fceede688fd0a5304503d8489bfcbdcc6..9500557177a4a76ecf92fe4da16ddb555c463272 100644
+index d619043fc13058850a7d33364e1a911ba8f82657..cc880ae445cc106a823ecd925cba35b7091d95c0 100644
--- a/third_party/blink/renderer/platform/runtime_enabled_features.json5
+++ b/third_party/blink/renderer/platform/runtime_enabled_features.json5
-@@ -1683,6 +1683,7 @@
+@@ -1694,6 +1694,7 @@
// In-development features for the File System Access API.
name: "FileSystemAccessAPIExperimental",
status: "experimental",
@@ -10,7 +10,7 @@ index cb6c363fceede688fd0a5304503d8489bfcbdcc6..9500557177a4a76ecf92fe4da16ddb55
},
{
// The FileSystemHandle.getCloudIdentifiers() method (see
-@@ -1698,6 +1699,7 @@
+@@ -1709,6 +1710,7 @@
// Non-OPFS File System Access API.
name: "FileSystemAccessLocal",
status: {"Android": "test", "default": "stable"},
@@ -18,7 +18,7 @@ index cb6c363fceede688fd0a5304503d8489bfcbdcc6..9500557177a4a76ecf92fe4da16ddb55
},
{
name: "FileSystemAccessLockingScheme",
-@@ -2484,6 +2486,7 @@
+@@ -2514,6 +2516,7 @@
{
name: "MiddleClickAutoscroll",
status: "test",
@@ -26,7 +26,7 @@ index cb6c363fceede688fd0a5304503d8489bfcbdcc6..9500557177a4a76ecf92fe4da16ddb55
},
{
name: "MobileLayoutTheme",
-@@ -3536,6 +3539,7 @@
+@@ -3560,6 +3563,7 @@
{
name: "Serial",
status: {"Android": "", "default": "stable"},
diff --git a/patches/third_party-lit-v3_0-BUILD.gn.patch b/patches/third_party-lit-v3_0-BUILD.gn.patch
index 0fb521c35c45..fb515183dbe2 100644
--- a/patches/third_party-lit-v3_0-BUILD.gn.patch
+++ b/patches/third_party-lit-v3_0-BUILD.gn.patch
@@ -1,8 +1,8 @@
diff --git a/third_party/lit/v3_0/BUILD.gn b/third_party/lit/v3_0/BUILD.gn
-index 850660bc45180953e32b0b1d38ace3c5263d56dc..16055ce3cb4db7b176f0781c7b401b8ddfec9e48 100644
+index a6300e3c83e39ddddc8968255d7c2fdfc5777385..eed740e296ba76172d682aec46beaa0b233ceb8a 100644
--- a/third_party/lit/v3_0/BUILD.gn
+++ b/third_party/lit/v3_0/BUILD.gn
-@@ -37,6 +37,7 @@ ts_library("build_ts") {
+@@ -49,6 +49,7 @@ ts_library("build_ts") {
"//ui/webui/resources/cr_components/most_visited:build_ts",
"//ui/webui/resources/cr_components/theme_color_picker:build_ts",
"//ui/webui/resources/cr_elements:build_ts",
@@ -10,7 +10,7 @@ index 850660bc45180953e32b0b1d38ace3c5263d56dc..16055ce3cb4db7b176f0781c7b401b8d
]
composite = true
in_files = [
-@@ -115,6 +116,7 @@ ts_library("build_ts") {
+@@ -127,6 +128,7 @@ ts_library("build_ts") {
"${node_modules}/@lit/reactive-element/reactive-element.d.ts",
target_gen_dir),
]
diff --git a/patches/third_party-polymer-v3_0-BUILD.gn.patch b/patches/third_party-polymer-v3_0-BUILD.gn.patch
index 39a6ac15b6d3..343bb643bff8 100644
--- a/patches/third_party-polymer-v3_0-BUILD.gn.patch
+++ b/patches/third_party-polymer-v3_0-BUILD.gn.patch
@@ -1,16 +1,16 @@
diff --git a/third_party/polymer/v3_0/BUILD.gn b/third_party/polymer/v3_0/BUILD.gn
-index b3360d53fde11c1629c515a38f443efcb1df5c82..203c8c769d9d225596ce025b82ef84488423b4bf 100644
+index b05865f1122730fd6f689b9152c199491dafd905..4770e225a679beb0d1b55630c96dcffb500c68f1 100644
--- a/third_party/polymer/v3_0/BUILD.gn
+++ b/third_party/polymer/v3_0/BUILD.gn
-@@ -43,6 +43,7 @@ js_files = [
+@@ -40,6 +40,7 @@ js_files = [
]
if (is_chromeos_ash) {
+} if (!is_android) {
js_files += [
"iron-a11y-announcer/iron-a11y-announcer.js",
- "iron-dropdown/iron-dropdown.js",
-@@ -286,6 +287,7 @@ ts_library("library") {
+ "iron-behaviors/iron-control-state.js",
+@@ -271,6 +272,7 @@ ts_library("library") {
]
if (is_chromeos_ash) {
@@ -18,7 +18,7 @@ index b3360d53fde11c1629c515a38f443efcb1df5c82..203c8c769d9d225596ce025b82ef8448
definitions += [
"components-chromium/iron-a11y-announcer/iron-a11y-announcer.d.ts",
"components-chromium/iron-dropdown/iron-dropdown.d.ts",
-@@ -306,4 +308,5 @@ ts_library("library") {
+@@ -293,4 +295,5 @@ ts_library("library") {
"components-chromium/paper-tooltip/paper-tooltip.d.ts",
]
}
diff --git a/patches/third_party-rust-anyhow-v1-BUILD.gn.patch b/patches/third_party-rust-anyhow-v1-BUILD.gn.patch
index 725b9254bf11..ce1b381820bf 100644
--- a/patches/third_party-rust-anyhow-v1-BUILD.gn.patch
+++ b/patches/third_party-rust-anyhow-v1-BUILD.gn.patch
@@ -1,10 +1,10 @@
diff --git a/third_party/rust/anyhow/v1/BUILD.gn b/third_party/rust/anyhow/v1/BUILD.gn
-index 514cbc337e82de2ef4f0f9e90d92d7eafd115051..bec5a0e3ce5fee3a3ecbb5cc6e3994e67d0d372a 100644
+index c2827c13cc99d8a001728770f425254f73da77bb..9980c28e492b7a45a641cc3ca5f7f4ea1f1be06d 100644
--- a/third_party/rust/anyhow/v1/BUILD.gn
+++ b/third_party/rust/anyhow/v1/BUILD.gn
-@@ -47,5 +47,4 @@ cargo_crate("lib") {
- "//third_party/rust/chromium_crates_io/vendor/anyhow-1.0.82/build.rs"
+@@ -48,5 +48,4 @@ cargo_crate("lib") {
build_sources =
- [ "//third_party/rust/chromium_crates_io/vendor/anyhow-1.0.82/build.rs" ]
+ [ "//third_party/rust/chromium_crates_io/vendor/anyhow-1.0.86/build.rs" ]
+
- testonly = true
}
diff --git a/patches/third_party-rust-base64-v0_13-BUILD.gn.patch b/patches/third_party-rust-base64-v0_13-BUILD.gn.patch
index 31924c487ea3..f70dac8a8aaa 100644
--- a/patches/third_party-rust-base64-v0_13-BUILD.gn.patch
+++ b/patches/third_party-rust-base64-v0_13-BUILD.gn.patch
@@ -1,10 +1,10 @@
diff --git a/third_party/rust/base64/v0_13/BUILD.gn b/third_party/rust/base64/v0_13/BUILD.gn
-index 53c2ce8edf62c2fa4d7e5a15ed31ec7bb4fdb898..9f0b9bcc0b4e927ff89c91519d92e26949458397 100644
+index bf3074ae80fcbef61788f013e0bf002e6682639e..042e6a5a9a6615de8b52ec36d78fb14d3ecae50a 100644
--- a/third_party/rust/base64/v0_13/BUILD.gn
+++ b/third_party/rust/base64/v0_13/BUILD.gn
-@@ -46,5 +46,4 @@ cargo_crate("lib") {
- proc_macro_configs -= [ "//build/config/compiler:chromium_code" ]
+@@ -47,5 +47,4 @@ cargo_crate("lib") {
proc_macro_configs += [ "//build/config/compiler:no_chromium_code" ]
features = [ "std" ]
+
- testonly = true
}
diff --git a/patches/third_party-rust-getrandom-v0_2-BUILD.gn.patch b/patches/third_party-rust-getrandom-v0_2-BUILD.gn.patch
index f891518e2347..8f685bed5b8b 100644
--- a/patches/third_party-rust-getrandom-v0_2-BUILD.gn.patch
+++ b/patches/third_party-rust-getrandom-v0_2-BUILD.gn.patch
@@ -1,8 +1,8 @@
diff --git a/third_party/rust/getrandom/v0_2/BUILD.gn b/third_party/rust/getrandom/v0_2/BUILD.gn
-index cc01a328786cdcdfb983f6dead0bb9549754aaff..cf91a47fcc7096e48804448ab352360571ec73c1 100644
+index 07f41eb13c66c5d04004ea8b11fbe7ce7cb4749c..ddd219b3b1bf1f0f788b1af328491e9ad5512f0f 100644
--- a/third_party/rust/getrandom/v0_2/BUILD.gn
+++ b/third_party/rust/getrandom/v0_2/BUILD.gn
-@@ -69,5 +69,4 @@ cargo_crate("lib") {
+@@ -64,5 +64,4 @@ cargo_crate("lib") {
# //third_party/rust/chromium_crates_io/Cargo.toml to use
# it from first-party code.
visibility = [ "//third_party/rust/*" ]
diff --git a/patches/third_party-rust-hex-v0_4-BUILD.gn.patch b/patches/third_party-rust-hex-v0_4-BUILD.gn.patch
index 35b7668c5561..c6479a2564b9 100644
--- a/patches/third_party-rust-hex-v0_4-BUILD.gn.patch
+++ b/patches/third_party-rust-hex-v0_4-BUILD.gn.patch
@@ -1,10 +1,10 @@
diff --git a/third_party/rust/hex/v0_4/BUILD.gn b/third_party/rust/hex/v0_4/BUILD.gn
-index 01f9a8648b86f570c9ff4d52ecb99827a7b70d13..21562129c5a39fbcdf10d76770e18bc0b62e5dde 100644
+index 10bf6aa021e6d2d9e088121acf7c7b976614fea4..0021fc336028972cf04096ab19b465b78c3a6d6c 100644
--- a/third_party/rust/hex/v0_4/BUILD.gn
+++ b/third_party/rust/hex/v0_4/BUILD.gn
-@@ -38,5 +38,4 @@ cargo_crate("lib") {
- "alloc",
+@@ -39,5 +39,4 @@ cargo_crate("lib") {
"std",
]
+
- testonly = true
}
diff --git a/patches/third_party-rust-log-v0_4-BUILD.gn.patch b/patches/third_party-rust-log-v0_4-BUILD.gn.patch
index 663215652c0a..d33497074a5f 100644
--- a/patches/third_party-rust-log-v0_4-BUILD.gn.patch
+++ b/patches/third_party-rust-log-v0_4-BUILD.gn.patch
@@ -1,10 +1,10 @@
diff --git a/third_party/rust/log/v0_4/BUILD.gn b/third_party/rust/log/v0_4/BUILD.gn
-index dbf08e71afa0896093d07658f69bf0247e3a81de..852f326e5b0fe1b0832db3f0dbe1502b3ede97d9 100644
+index ecdfbfd7b886dc5c340cfcfa254a7561ea598442..b80eaf94e1e358edc82117d1fc2c499d0d06b7a4 100644
--- a/third_party/rust/log/v0_4/BUILD.gn
+++ b/third_party/rust/log/v0_4/BUILD.gn
-@@ -39,5 +39,4 @@ cargo_crate("lib") {
- executable_configs += [ "//build/config/compiler:no_chromium_code" ]
+@@ -40,5 +40,4 @@ cargo_crate("lib") {
proc_macro_configs -= [ "//build/config/compiler:chromium_code" ]
proc_macro_configs += [ "//build/config/compiler:no_chromium_code" ]
+
- testonly = true
}
diff --git a/patches/third_party-rust-rand-v0_8-BUILD.gn.patch b/patches/third_party-rust-rand-v0_8-BUILD.gn.patch
index 2d1c682bc9ba..e6661d08fa0d 100644
--- a/patches/third_party-rust-rand-v0_8-BUILD.gn.patch
+++ b/patches/third_party-rust-rand-v0_8-BUILD.gn.patch
@@ -1,11 +1,11 @@
diff --git a/third_party/rust/rand/v0_8/BUILD.gn b/third_party/rust/rand/v0_8/BUILD.gn
-index a7e5483a7721b43c9e7370a2487dbf16d6913599..1991ccfdabc7f4461d13cccba97b62e4545ce76c 100644
+index e74e5b1c9e3651aedc97c0e64afddcf91f3f64c1..2fed2e8aed8db2b8dea3559b85a205558472f7a2 100644
--- a/third_party/rust/rand/v0_8/BUILD.gn
+++ b/third_party/rust/rand/v0_8/BUILD.gn
-@@ -72,5 +72,5 @@ cargo_crate("lib") {
- "std",
+@@ -73,5 +73,5 @@ cargo_crate("lib") {
"std_rng",
]
+
- testonly = true
+ features += [ "small_rng" ]
}
diff --git a/patches/third_party-rust-regex-v1-BUILD.gn.patch b/patches/third_party-rust-regex-v1-BUILD.gn.patch
index cd578af01711..254cb0702b62 100644
--- a/patches/third_party-rust-regex-v1-BUILD.gn.patch
+++ b/patches/third_party-rust-regex-v1-BUILD.gn.patch
@@ -1,10 +1,10 @@
diff --git a/third_party/rust/regex/v1/BUILD.gn b/third_party/rust/regex/v1/BUILD.gn
-index c588468684483f5b84c426623c9c3d4d75978f79..f4737f46692856b2f8084a208a5812def595e7e1 100644
+index 7c04e328aa38d79f086f002ff1f4b8df64630e4b..df6010fa05d98203b944ecb33aaaf4b16078fad7 100644
--- a/third_party/rust/regex/v1/BUILD.gn
+++ b/third_party/rust/regex/v1/BUILD.gn
-@@ -67,5 +67,4 @@ cargo_crate("lib") {
- "unicode-script",
+@@ -68,5 +68,4 @@ cargo_crate("lib") {
"unicode-segment",
]
+
- testonly = true
}
diff --git a/patches/third_party-rust-regex_automata-v0_4-BUILD.gn.patch b/patches/third_party-rust-regex_automata-v0_4-BUILD.gn.patch
index 2f9d139f4c10..b18ba51e2e51 100644
--- a/patches/third_party-rust-regex_automata-v0_4-BUILD.gn.patch
+++ b/patches/third_party-rust-regex_automata-v0_4-BUILD.gn.patch
@@ -1,5 +1,5 @@
diff --git a/third_party/rust/regex_automata/v0_4/BUILD.gn b/third_party/rust/regex_automata/v0_4/BUILD.gn
-index 774ba64ca3916a90b2e4b5f1609b0c9ff50cf92b..855d240abb5d3cb47bac298f318e5f5f40f36139 100644
+index 792a470244629f6e681deeff14f31941bc51c29c..8b00589378783e3142a227076a50e3ab8036f8d3 100644
--- a/third_party/rust/regex_automata/v0_4/BUILD.gn
+++ b/third_party/rust/regex_automata/v0_4/BUILD.gn
@@ -135,5 +135,4 @@ cargo_crate("lib") {
diff --git a/patches/third_party-rust-regex_syntax-v0_8-BUILD.gn.patch b/patches/third_party-rust-regex_syntax-v0_8-BUILD.gn.patch
index 083471c23193..9ee3fd39564e 100644
--- a/patches/third_party-rust-regex_syntax-v0_8-BUILD.gn.patch
+++ b/patches/third_party-rust-regex_syntax-v0_8-BUILD.gn.patch
@@ -1,5 +1,5 @@
diff --git a/third_party/rust/regex_syntax/v0_8/BUILD.gn b/third_party/rust/regex_syntax/v0_8/BUILD.gn
-index 348e2c656e82440590cb8a47c95c488360e94127..ba9d8066b37e1cd35d0c3cf2b8d6c581d00ab1f5 100644
+index da1da6298e8175e149aea0be57dddf01ff24c9eb..5ea41e5057912c58686f88b9dc3ee3259cfb6c12 100644
--- a/third_party/rust/regex_syntax/v0_8/BUILD.gn
+++ b/third_party/rust/regex_syntax/v0_8/BUILD.gn
@@ -79,5 +79,4 @@ cargo_crate("lib") {
diff --git a/patches/third_party-rust-semver-v1-BUILD.gn.patch b/patches/third_party-rust-semver-v1-BUILD.gn.patch
index 6fc5d9533015..b7a50c6656e4 100644
--- a/patches/third_party-rust-semver-v1-BUILD.gn.patch
+++ b/patches/third_party-rust-semver-v1-BUILD.gn.patch
@@ -1,5 +1,5 @@
diff --git a/third_party/rust/semver/v1/BUILD.gn b/third_party/rust/semver/v1/BUILD.gn
-index db642412e6b3f56aa5868f38d6ace879c2fb6924..019bedcf7ffc05d0875ca13ffeca376ddf4899e7 100644
+index 04673af83f0b1ee08e6c40895dd8e1d86163f80e..ddf9675a8942efb939bc4ba8a434d0e365075238 100644
--- a/third_party/rust/semver/v1/BUILD.gn
+++ b/third_party/rust/semver/v1/BUILD.gn
@@ -50,5 +50,4 @@ cargo_crate("lib") {
diff --git a/patches/third_party-rust-serde-v1-BUILD.gn.patch b/patches/third_party-rust-serde-v1-BUILD.gn.patch
index 6bcd9ceb5604..c3df35ca307d 100644
--- a/patches/third_party-rust-serde-v1-BUILD.gn.patch
+++ b/patches/third_party-rust-serde-v1-BUILD.gn.patch
@@ -1,5 +1,5 @@
diff --git a/third_party/rust/serde/v1/BUILD.gn b/third_party/rust/serde/v1/BUILD.gn
-index e7b3157eb91fd24074a869e02f3fba0c9e074f96..d77b3b993053344360c9d09287c5c18f01b6673a 100644
+index 68a458b3a5a0dad192757cc4b15a9e99e72946c3..136a7abebf6c471820b605c9e4073106ed4aa7fc 100644
--- a/third_party/rust/serde/v1/BUILD.gn
+++ b/third_party/rust/serde/v1/BUILD.gn
@@ -55,6 +55,7 @@ cargo_crate("lib") {
@@ -8,5 +8,5 @@ index e7b3157eb91fd24074a869e02f3fba0c9e074f96..d77b3b993053344360c9d09287c5c18f
]
+ features += [ "alloc", "rc" ]
build_root =
- "//third_party/rust/chromium_crates_io/vendor/serde-1.0.198/build.rs"
+ "//third_party/rust/chromium_crates_io/vendor/serde-1.0.203/build.rs"
build_sources =
diff --git a/patches/third_party-rust-serde_json-v1-BUILD.gn.patch b/patches/third_party-rust-serde_json-v1-BUILD.gn.patch
index 8ae2fe73de13..396ca003c3d7 100644
--- a/patches/third_party-rust-serde_json-v1-BUILD.gn.patch
+++ b/patches/third_party-rust-serde_json-v1-BUILD.gn.patch
@@ -1,10 +1,10 @@
diff --git a/third_party/rust/serde_json/v1/BUILD.gn b/third_party/rust/serde_json/v1/BUILD.gn
-index 84d14bdcb336656db1be3d81fc69397a1c7ca949..2ac2802999dfa559822d2b962ef3c5764863dc76 100644
+index f04168b6cdab6aed4aefc699fa3c9c73d9c0fc59..f2bdc49b64df2693a6c7bff72f69b9c718ac3295 100644
--- a/third_party/rust/serde_json/v1/BUILD.gn
+++ b/third_party/rust/serde_json/v1/BUILD.gn
-@@ -77,5 +77,4 @@ cargo_crate("lib") {
- build_sources = [
- "//third_party/rust/chromium_crates_io/vendor/serde_json-1.0.116/build.rs",
+@@ -78,5 +78,4 @@ cargo_crate("lib") {
+ "//third_party/rust/chromium_crates_io/vendor/serde_json-1.0.117/build.rs",
]
+
- testonly = true
}
diff --git a/patches/third_party-rust-syn-v2-BUILD.gn.patch b/patches/third_party-rust-syn-v2-BUILD.gn.patch
index 21d626ddf430..57d49b2fd6b7 100644
--- a/patches/third_party-rust-syn-v2-BUILD.gn.patch
+++ b/patches/third_party-rust-syn-v2-BUILD.gn.patch
@@ -1,8 +1,8 @@
diff --git a/third_party/rust/syn/v2/BUILD.gn b/third_party/rust/syn/v2/BUILD.gn
-index 043ad02c064a0e878a516c72b5786e360df6088c..8cf4c192de137a22125936e468345b7320505dd9 100644
+index c1b72547794b0c0fd089ad8afe8bd2437f552716..e8d0682e42fbc43df7d8f2413b681c05b316c852 100644
--- a/third_party/rust/syn/v2/BUILD.gn
+++ b/third_party/rust/syn/v2/BUILD.gn
-@@ -96,4 +96,5 @@ cargo_crate("lib") {
+@@ -98,4 +98,5 @@ cargo_crate("lib") {
"printing",
"proc-macro",
]
diff --git a/patches/third_party-rust-winapi-v0_3-BUILD.gn.patch b/patches/third_party-rust-winapi-v0_3-BUILD.gn.patch
deleted file mode 100644
index 9afee8ff0e81..000000000000
--- a/patches/third_party-rust-winapi-v0_3-BUILD.gn.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff --git a/third_party/rust/winapi/v0_3/BUILD.gn b/third_party/rust/winapi/v0_3/BUILD.gn
-index 80afe5d9b929448f7b3009761ec262657e930db7..cc1216e5db3dc7d69fff7a8cf45c22bea5a5966e 100644
---- a/third_party/rust/winapi/v0_3/BUILD.gn
-+++ b/third_party/rust/winapi/v0_3/BUILD.gn
-@@ -447,6 +447,7 @@ cargo_crate("lib") {
- "winerror",
- "winnt",
- ]
-+ features += [ "basetsd", "cfg", "cfgmgr32", "devpropdef", "excpt", "handleapi", "ktmtypes", "libloaderapi", "limits", "ntdef", "ntstatus", "processthreadsapi", "reason", "rpcndr", "timezoneapi", "vadefs", "vcruntime", "wincontypes", "wingdi", "windef", "winreg", "winuser", "wtypesbase" ]
- build_root =
- "//third_party/rust/chromium_crates_io/vendor/winapi-0.3.9/build.rs"
- build_sources =
diff --git a/patches/third_party/catapult/tracing-tracing-metrics-all_metrics.html.patch b/patches/third_party/catapult/tracing-tracing-metrics-all_metrics.html.patch
index b2379445020b..473d45c4fb1b 100644
--- a/patches/third_party/catapult/tracing-tracing-metrics-all_metrics.html.patch
+++ b/patches/third_party/catapult/tracing-tracing-metrics-all_metrics.html.patch
@@ -1,8 +1,8 @@
diff --git a/tracing/tracing/metrics/all_metrics.html b/tracing/tracing/metrics/all_metrics.html
-index 4e589e98d31afd7ca0c63c2ce9ac0d306ab4b123..48a777fa559d02d7cf22ecfcd155e297f2263fa1 100644
+index c41795e13ff303cf9a422ce14bbe44d9d6ccc838..c85299d7af0cf2e72b35e859821cc2e573589f62 100644
--- a/tracing/tracing/metrics/all_metrics.html
+++ b/tracing/tracing/metrics/all_metrics.html
-@@ -48,3 +48,4 @@ found in the LICENSE file.
+@@ -47,3 +47,4 @@ found in the LICENSE file.
diff --git a/patches/tools-clang-pylib-clang-compile_db.py.patch b/patches/tools-clang-pylib-clang-compile_db.py.patch
index 9eb12db0f779..20b83f707b32 100644
--- a/patches/tools-clang-pylib-clang-compile_db.py.patch
+++ b/patches/tools-clang-pylib-clang-compile_db.py.patch
@@ -1,8 +1,8 @@
diff --git a/tools/clang/pylib/clang/compile_db.py b/tools/clang/pylib/clang/compile_db.py
-index c34c27ff3f95a23d6ce1d5aa7c248ec5b364828e..9a810db218e9f23949b6cc0ae61a5d5746d62b55 100755
+index b6d054128a37af75936c570d16d2adaa06b061a8..1885bf5824e0adf293736e7351aa064376003a5b 100755
--- a/tools/clang/pylib/clang/compile_db.py
+++ b/tools/clang/pylib/clang/compile_db.py
-@@ -227,3 +227,4 @@ def Read(path):
+@@ -223,3 +223,4 @@ def Read(path):
"""
with open(os.path.join(path, 'compile_commands.json'), 'rb') as db:
return json.load(db)
diff --git a/patches/tools-crates-gnrt-gen.rs.patch b/patches/tools-crates-gnrt-gen.rs.patch
index f0d69df52cf6..87f2b1306282 100644
--- a/patches/tools-crates-gnrt-gen.rs.patch
+++ b/patches/tools-crates-gnrt-gen.rs.patch
@@ -1,5 +1,5 @@
diff --git a/tools/crates/gnrt/gen.rs b/tools/crates/gnrt/gen.rs
-index c1c4b1b73e50ccd306f7c7e9773aa2bbbfff8eb3..0b1593d17d1ee223b365d0bf5f227061a811a680 100644
+index 5ef8e564b1dcdd62743391ef68c45fd97f4c827e..486c25e8500691739472afaddc7e3a0f8930a876 100644
--- a/tools/crates/gnrt/gen.rs
+++ b/tools/crates/gnrt/gen.rs
@@ -278,6 +278,7 @@ fn generate_for_third_party(args: GenCommandArgs, paths: &paths::ChromiumPaths)
diff --git a/patches/tools-crates-gnrt-lib-gn.rs.patch b/patches/tools-crates-gnrt-lib-gn.rs.patch
index a3bb8b7ff6a2..95f01aa919de 100644
--- a/patches/tools-crates-gnrt-lib-gn.rs.patch
+++ b/patches/tools-crates-gnrt-lib-gn.rs.patch
@@ -1,8 +1,8 @@
diff --git a/tools/crates/gnrt/lib/gn.rs b/tools/crates/gnrt/lib/gn.rs
-index cc971d5e575565bc41c9a4c8d223ef3e99851b55..a8eecc2a07501194143ebfd990c3d586d6b90670 100644
+index 69fd9562101dac2a03decf973b363935f80983e0..772d544d83a3dfc63c24def29d77b7b0670c1017 100644
--- a/tools/crates/gnrt/lib/gn.rs
+++ b/tools/crates/gnrt/lib/gn.rs
-@@ -201,8 +201,9 @@ pub fn build_rule_from_std_dep(
+@@ -202,8 +202,9 @@ pub fn build_rule_from_dep(
let mut aliases = Vec::new();
for dep in &normal_deps {
let target_name = NormalizedName::from_crate_name(&dep.package_name).to_string();
@@ -13,11 +13,11 @@ index cc971d5e575565bc41c9a4c8d223ef3e99851b55..a8eecc2a07501194143ebfd990c3d586
}
}
aliases.sort_unstable();
-@@ -555,6 +556,7 @@ static TRIPLE_TO_GN_CONDITION: &[(&str, &str)] = &[
- static TARGET_OS_TO_GN_CONDITION: &[(&str, &str)] = &[
- ("android", "is_android"),
- ("darwin", "is_mac"),
-+ ("macos", "is_mac"),
- ("fuchsia", "is_fuchsia"),
- ("ios", "is_ios"),
- ("linux", "is_linux || is_chromeos"),
+@@ -536,6 +537,7 @@ fn target_os_to_condition(target_os: &str) -> &'static str {
+ for (t, c) in &[
+ ("android", "is_android"),
+ ("darwin", "is_mac"),
++ ("macos", "is_mac"),
+ ("fuchsia", "is_fuchsia"),
+ ("ios", "is_ios"),
+ ("linux", "is_linux || is_chromeos"),
diff --git a/patches/tools-crates-gnrt-lib-platforms.rs.patch b/patches/tools-crates-gnrt-lib-platforms.rs.patch
index f15155302e64..59a2ca73648b 100644
--- a/patches/tools-crates-gnrt-lib-platforms.rs.patch
+++ b/patches/tools-crates-gnrt-lib-platforms.rs.patch
@@ -1,8 +1,8 @@
diff --git a/tools/crates/gnrt/lib/platforms.rs b/tools/crates/gnrt/lib/platforms.rs
-index 3e209656e30822f93ab8b4b6dfffa5c99c2d553e..b355ae2c02807a6e2541328915f9b1b37d0f19de 100644
+index 71f2a41a337b4ec1628c74c33549ac6794f692e8..c3ea6c76ef6372aea80ba807c32114242d220cd7 100644
--- a/tools/crates/gnrt/lib/platforms.rs
+++ b/tools/crates/gnrt/lib/platforms.rs
-@@ -233,7 +233,7 @@ fn supported_os_cfgs() -> &'static [Cfg] {
+@@ -257,7 +257,7 @@ fn supported_os_cfgs() -> &'static [Cfg] {
CFG_SET.get_or_init(|| {
[
// Set of supported OSes for `cfg(target_os = ...)`.
diff --git a/patches/tools-gritsettings-resource_ids.spec.patch b/patches/tools-gritsettings-resource_ids.spec.patch
index 121906202268..8286d5b53458 100644
--- a/patches/tools-gritsettings-resource_ids.spec.patch
+++ b/patches/tools-gritsettings-resource_ids.spec.patch
@@ -1,5 +1,5 @@
diff --git a/tools/gritsettings/resource_ids.spec b/tools/gritsettings/resource_ids.spec
-index 06d0495497697ed2716a9e665a417aa13a1883eb..687e5c6be056b604c12c4e70296437984fc342b9 100644
+index 2450f2cece03374b6ee91b5e7b4e4f112ecefbb3..98b058575f95c52dce48be4ae50633b6ff8973f4 100644
--- a/tools/gritsettings/resource_ids.spec
+++ b/tools/gritsettings/resource_ids.spec
@@ -38,6 +38,9 @@
@@ -21,7 +21,7 @@ index 06d0495497697ed2716a9e665a417aa13a1883eb..687e5c6be056b604c12c4e7029643798
"includes": [3320],
},
"<(SHARED_INTERMEDIATE_DIR)/chrome/browser/resources/identity_internals/resources.grd": {
-@@ -443,7 +446,7 @@
+@@ -442,7 +445,7 @@
"includes": [4020],
},
"<(SHARED_INTERMEDIATE_DIR)/chrome/browser/resources/settings/resources.grd": {
@@ -30,7 +30,7 @@ index 06d0495497697ed2716a9e665a417aa13a1883eb..687e5c6be056b604c12c4e7029643798
"includes": [4040],
},
"<(SHARED_INTERMEDIATE_DIR)/chrome/browser/resources/settings_shared/resources.grd": {
-@@ -966,6 +969,9 @@
+@@ -995,6 +998,9 @@
"components/components_chromium_strings.grd": {
"messages": [7020],
},
diff --git a/patches/tools-json_schema_compiler-cc_generator.py.patch b/patches/tools-json_schema_compiler-cc_generator.py.patch
index d263994391c9..b3fcdc261530 100644
--- a/patches/tools-json_schema_compiler-cc_generator.py.patch
+++ b/patches/tools-json_schema_compiler-cc_generator.py.patch
@@ -1,5 +1,5 @@
diff --git a/tools/json_schema_compiler/cc_generator.py b/tools/json_schema_compiler/cc_generator.py
-index 3bc5dca067e921863f8af0af86b7aecf94c1e6bb..e8fcc40806818e175e40dbb85d97c031c5d3a8fb 100644
+index ff8306ab723784d57718019f58c593b8be07fab9..e7511a9320f9d8035f6250dcfbbbd52efec48406 100644
--- a/tools/json_schema_compiler/cc_generator.py
+++ b/tools/json_schema_compiler/cc_generator.py
@@ -28,6 +28,7 @@ class _Generator(object):
@@ -10,7 +10,7 @@ index 3bc5dca067e921863f8af0af86b7aecf94c1e6bb..e8fcc40806818e175e40dbb85d97c031
def Generate(self):
"""Generates a Code object with the .cc for a single namespace.
-@@ -398,7 +399,7 @@ class _Generator(object):
+@@ -409,7 +410,7 @@ class _Generator(object):
c.Append('const base::Value* %(value_var)s = %(src)s.Find("%(key)s");')
if prop.optional:
(c.Sblock(
diff --git a/patches/tools-licenses-licenses.py.patch b/patches/tools-licenses-licenses.py.patch
index 1866b6dd4ea3..b0b927d33886 100644
--- a/patches/tools-licenses-licenses.py.patch
+++ b/patches/tools-licenses-licenses.py.patch
@@ -1,5 +1,5 @@
diff --git a/tools/licenses/licenses.py b/tools/licenses/licenses.py
-index f3a8ba3756a19beb286a3f7bba52399705bf59bf..59b7f2ac132cb6ff921fc23009fa74e76c6f88a5 100755
+index d2ec0bae06276fdb42dc43704b73c1705461d994..7ab6a87d7b5197278933d28da9ca796298d81986 100755
--- a/tools/licenses/licenses.py
+++ b/tools/licenses/licenses.py
@@ -41,6 +41,7 @@ _REPOSITORY_ROOT = os.path.abspath(
@@ -18,7 +18,7 @@ index f3a8ba3756a19beb286a3f7bba52399705bf59bf..59b7f2ac132cb6ff921fc23009fa74e7
# These buildtools/third_party directories only contain
# chromium build files. The actual third_party source files and their
-@@ -783,7 +785,8 @@ def FindThirdPartyDirs(prune_paths, root, extra_third_party_dirs=None):
+@@ -788,7 +790,8 @@ def FindThirdPartyDirs(root, extra_third_party_dirs=None):
if skip in dirs:
dirs.remove(skip)
@@ -26,9 +26,9 @@ index f3a8ba3756a19beb286a3f7bba52399705bf59bf..59b7f2ac132cb6ff921fc23009fa74e7
+ if (os.path.basename(path) == 'third_party' or
+ os.path.basename(path) in BRAVE_THIRD_PARTY_DIRS or IsBraveRustCrate(path)):
# Add all subdirectories that are not marked for skipping.
- for dir in dirs:
- dirpath = os.path.join(path, dir)
-@@ -1045,8 +1048,10 @@ def GenerateCredits(file_template_file,
+ for d in dirs:
+ dirpath = os.path.join(path, d)
+@@ -1035,8 +1038,10 @@ def GenerateCredits(file_template_file,
_REPOSITORY_ROOT,
enable_warnings=enable_warnings)
if not directory_metadata:
diff --git a/patches/tools-metrics-histograms-metadata-histogram_suffixes_list.xml.patch b/patches/tools-metrics-histograms-metadata-histogram_suffixes_list.xml.patch
index dd83cb55c622..f2b0b5108288 100644
--- a/patches/tools-metrics-histograms-metadata-histogram_suffixes_list.xml.patch
+++ b/patches/tools-metrics-histograms-metadata-histogram_suffixes_list.xml.patch
@@ -1,8 +1,8 @@
diff --git a/tools/metrics/histograms/metadata/histogram_suffixes_list.xml b/tools/metrics/histograms/metadata/histogram_suffixes_list.xml
-index 28f9d8d6e0934f95eb109920bd48d6096dc93982..3e3e4a166ef6dd41b4d1db6b2e631731d64750fb 100644
+index 557b415e575ee9dc660da331d94b85785f736582..2cc808ea3a790f08f8da99421719dc15458bc492 100644
--- a/tools/metrics/histograms/metadata/histogram_suffixes_list.xml
+++ b/tools/metrics/histograms/metadata/histogram_suffixes_list.xml
-@@ -2722,6 +2722,7 @@ chromium-metrics-reviews@google.com.
+@@ -2713,6 +2713,7 @@ chromium-metrics-reviews@google.com.
diff --git a/patches/tools-metrics-histograms-metadata-page-histograms.xml.patch b/patches/tools-metrics-histograms-metadata-page-histograms.xml.patch
index 843107b1c93d..b78b1fb9a451 100644
--- a/patches/tools-metrics-histograms-metadata-page-histograms.xml.patch
+++ b/patches/tools-metrics-histograms-metadata-page-histograms.xml.patch
@@ -1,8 +1,8 @@
diff --git a/tools/metrics/histograms/metadata/page/histograms.xml b/tools/metrics/histograms/metadata/page/histograms.xml
-index f30866199d29ada73e47365f228ab155ffb210d3..be177f2993eb4277e8943c5f5f73ad934a8870c6 100644
+index 05301ce613cd599b7871b9348fe0391d0ba7c989..3c5eb4d88aae43913c68888c7eaf86b22a586e6d 100644
--- a/tools/metrics/histograms/metadata/page/histograms.xml
+++ b/tools/metrics/histograms/metadata/page/histograms.xml
-@@ -102,6 +102,17 @@ chromium-metrics-reviews@google.com.
+@@ -103,6 +103,17 @@ chromium-metrics-reviews@google.com.
diff --git a/patches/ui-accessibility-platform-ax_platform_node_cocoa.mm.patch b/patches/ui-accessibility-platform-ax_platform_node_cocoa.mm.patch
index fa7608a99311..685849732655 100644
--- a/patches/ui-accessibility-platform-ax_platform_node_cocoa.mm.patch
+++ b/patches/ui-accessibility-platform-ax_platform_node_cocoa.mm.patch
@@ -1,8 +1,8 @@
diff --git a/ui/accessibility/platform/ax_platform_node_cocoa.mm b/ui/accessibility/platform/ax_platform_node_cocoa.mm
-index 7af663f2d69495d3d46a2d1411287d1514445ed3..f4efb2586186842d5b2a9a44d5b26c4dc9730483 100644
+index b9fcdb6f55e6c08945c08a49bcd8e504c2c72336..9e03e016a50e7bc3c9eab850ecae39414be48ec9 100644
--- a/ui/accessibility/platform/ax_platform_node_cocoa.mm
+++ b/ui/accessibility/platform/ax_platform_node_cocoa.mm
-@@ -2564,6 +2564,7 @@ void CollectAncestorRoles(
+@@ -2563,6 +2563,7 @@ void CollectAncestorRoles(
if (!_node)
return nil;
diff --git a/patches/ui-base-BUILD.gn.patch b/patches/ui-base-BUILD.gn.patch
index 8bb495eb0817..c5e437c71ce5 100644
--- a/patches/ui-base-BUILD.gn.patch
+++ b/patches/ui-base-BUILD.gn.patch
@@ -1,5 +1,5 @@
diff --git a/ui/base/BUILD.gn b/ui/base/BUILD.gn
-index 3b28b01cebedfbc66539e3516a69643198b15fd1..a5a69005e1d4a37f9ba89577413f6e8d42688f9e 100644
+index 70342aaf70db9d0d53494ea98c4eec5e36c58de5..f8a64d87749ad69a428bc706c5331395e131491a 100644
--- a/ui/base/BUILD.gn
+++ b/ui/base/BUILD.gn
@@ -561,6 +561,7 @@ component("base") {
diff --git a/patches/ui-base-accelerators-accelerator.cc.patch b/patches/ui-base-accelerators-accelerator.cc.patch
index da10a49eb8a7..58c578a7191f 100644
--- a/patches/ui-base-accelerators-accelerator.cc.patch
+++ b/patches/ui-base-accelerators-accelerator.cc.patch
@@ -1,5 +1,5 @@
diff --git a/ui/base/accelerators/accelerator.cc b/ui/base/accelerators/accelerator.cc
-index 3094f8f1b445b639f43573af6f6b5ae5eddf7227..64eb26a2f5897857f23987d23797c1a6cd02384a 100644
+index e260f801eaf3ab3c2e3bbf09c94ee8a055bc8378..3f5d3c05d9c422e67c26c10d7106d7315ef26b56 100644
--- a/ui/base/accelerators/accelerator.cc
+++ b/ui/base/accelerators/accelerator.cc
@@ -388,6 +388,7 @@ std::u16string Accelerator::KeyCodeToName() const {
diff --git a/patches/ui-native_theme-native_theme_win.cc.patch b/patches/ui-native_theme-native_theme_win.cc.patch
index d94bc2a7e957..f1d7a551e7b2 100644
--- a/patches/ui-native_theme-native_theme_win.cc.patch
+++ b/patches/ui-native_theme-native_theme_win.cc.patch
@@ -1,8 +1,8 @@
diff --git a/ui/native_theme/native_theme_win.cc b/ui/native_theme/native_theme_win.cc
-index 547872076d126fe963650a74c0b8a72420c725a8..870a6ae11bf5dfc194cd0e841d89d91158338fec 100644
+index b5bdcf72d8b337b53dc3adbc579b9701e649cd7d..2b258713c5b6c858e0e49c8226e39b8edfce4cc7 100644
--- a/ui/native_theme/native_theme_win.cc
+++ b/ui/native_theme/native_theme_win.cc
-@@ -1678,6 +1678,7 @@ void NativeThemeWin::UpdateDarkModeStatus() {
+@@ -1680,6 +1680,7 @@ void NativeThemeWin::UpdateDarkModeStatus() {
&apps_use_light_theme);
dark_mode_enabled = (apps_use_light_theme == 0);
}
diff --git a/patches/ui-views-controls-menu-menu_separator.cc.patch b/patches/ui-views-controls-menu-menu_separator.cc.patch
index 1b3f22d52a51..573287599b50 100644
--- a/patches/ui-views-controls-menu-menu_separator.cc.patch
+++ b/patches/ui-views-controls-menu-menu_separator.cc.patch
@@ -1,8 +1,8 @@
diff --git a/ui/views/controls/menu/menu_separator.cc b/ui/views/controls/menu/menu_separator.cc
-index beec32eeff12ac6f377bf2052057b61a26cbf56f..588ee278ce225febda882bac2ecc1101204aec4b 100644
+index f40ad4b9110f10713c5f756ecba4869125433d0f..f9a730a69259e5da8ff01f53a36edb7d141fd08b 100644
--- a/ui/views/controls/menu/menu_separator.cc
+++ b/ui/views/controls/menu/menu_separator.cc
-@@ -49,6 +49,7 @@ void MenuSeparator::OnPaint(gfx::Canvas* canvas) {
+@@ -50,6 +50,7 @@ void MenuSeparator::OnPaint(gfx::Canvas* canvas) {
menu_config.separator_horizontal_border_padding, y,
width() - menu_config.separator_horizontal_border_padding * 2,
separator_thickness);
diff --git a/patches/ui-views-layout-layout_provider.cc.patch b/patches/ui-views-layout-layout_provider.cc.patch
deleted file mode 100644
index b78e898f6dd7..000000000000
--- a/patches/ui-views-layout-layout_provider.cc.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff --git a/ui/views/layout/layout_provider.cc b/ui/views/layout/layout_provider.cc
-index 3684e277668347e8d4d6d08097bd8db429dcc26c..088ce543138d3e0b3a89886dacc55e59b07d328a 100644
---- a/ui/views/layout/layout_provider.cc
-+++ b/ui/views/layout/layout_provider.cc
-@@ -224,7 +224,7 @@ int LayoutProvider::GetCornerRadiusMetric(ShapeContextTokens id,
- case ShapeContextTokens::kMenuTouchRadius:
- return GetCornerRadiusMetric(Emphasis::kHigh);
- case ShapeContextTokens::kOmniboxExpandedRadius:
-- return 16;
-+ return 4;
- case ShapeContextTokens::kTextfieldRadius:
- return FocusRing::kDefaultCornerRadiusDp;
- case ShapeContextTokens::kSidePanelContentRadius:
diff --git a/patches/ui-webui-resources-cr_elements-BUILD.gn.patch b/patches/ui-webui-resources-cr_elements-BUILD.gn.patch
index 65adadf177f1..78a858933d0c 100644
--- a/patches/ui-webui-resources-cr_elements-BUILD.gn.patch
+++ b/patches/ui-webui-resources-cr_elements-BUILD.gn.patch
@@ -1,8 +1,8 @@
diff --git a/ui/webui/resources/cr_elements/BUILD.gn b/ui/webui/resources/cr_elements/BUILD.gn
-index 9dea844c33bfc8df3d10eec8f2b13b110a412219..450a482439160e763f9ea50c11f224ace8deedc1 100644
+index 058a9aac298fcc3d6a1f201d592068446332b2f7..5e8661253f78beaa8e2ed48a64db1d45eb9d03d4 100644
--- a/ui/webui/resources/cr_elements/BUILD.gn
+++ b/ui/webui/resources/cr_elements/BUILD.gn
-@@ -209,6 +209,7 @@ build_webui("build") {
+@@ -214,6 +214,7 @@ build_webui("build") {
ts_composite = true
ts_deps = [ "../js:build_ts" ]
if (include_polymer) {
diff --git a/patches/ui-webui-resources-cr_elements-cr_shared_style.css.patch b/patches/ui-webui-resources-cr_elements-cr_shared_style.css.patch
index c17273d5d734..95e3027db531 100644
--- a/patches/ui-webui-resources-cr_elements-cr_shared_style.css.patch
+++ b/patches/ui-webui-resources-cr_elements-cr_shared_style.css.patch
@@ -1,5 +1,5 @@
diff --git a/ui/webui/resources/cr_elements/cr_shared_style.css b/ui/webui/resources/cr_elements/cr_shared_style.css
-index 89870c0ee9fcdc9a7b9a33fba0231ab5ee8403fb..b86edad614eaaac83a46786a003fcb44d12c6123 100644
+index eefaf6d369fb2a268045cfd33973a8cced5f56cb..97e8dddd89de1d7340f306931692e377977b8951 100644
--- a/ui/webui/resources/cr_elements/cr_shared_style.css
+++ b/ui/webui/resources/cr_elements/cr_shared_style.css
@@ -8,7 +8,8 @@
@@ -11,4 +11,4 @@ index 89870c0ee9fcdc9a7b9a33fba0231ab5ee8403fb..b86edad614eaaac83a46786a003fcb44
+ * #include=cr-hidden-style br-shared-style cr-icons
* #css_wrapper_metadata_end */
- html,
+ [actionable] {
diff --git a/patches/ui-webui-resources-cr_elements-cr_shared_vars.css.patch b/patches/ui-webui-resources-cr_elements-cr_shared_vars.css.patch
index 8fd92f2f93fc..75e7919df6d3 100644
--- a/patches/ui-webui-resources-cr_elements-cr_shared_vars.css.patch
+++ b/patches/ui-webui-resources-cr_elements-cr_shared_vars.css.patch
@@ -1,5 +1,5 @@
diff --git a/ui/webui/resources/cr_elements/cr_shared_vars.css b/ui/webui/resources/cr_elements/cr_shared_vars.css
-index 8a46bf30e78a3422c9a0e3e75b04a83243181e62..2fb34eb033aeb9f0a90be184ca56f05bfbd310b5 100644
+index 72a597e945e8c1037f5d06867c53b2d5649aaccc..1d18efb17764c7f598ce0f5af410fef7474de2ea 100644
--- a/ui/webui/resources/cr_elements/cr_shared_vars.css
+++ b/ui/webui/resources/cr_elements/cr_shared_vars.css
@@ -4,6 +4,7 @@
diff --git a/patches/ui-webui-resources-cr_elements-cr_toolbar-cr_toolbar.ts.patch b/patches/ui-webui-resources-cr_elements-cr_toolbar-cr_toolbar.ts.patch
index b387e9508415..9ca95960997c 100644
--- a/patches/ui-webui-resources-cr_elements-cr_toolbar-cr_toolbar.ts.patch
+++ b/patches/ui-webui-resources-cr_elements-cr_toolbar-cr_toolbar.ts.patch
@@ -1,8 +1,8 @@
diff --git a/ui/webui/resources/cr_elements/cr_toolbar/cr_toolbar.ts b/ui/webui/resources/cr_elements/cr_toolbar/cr_toolbar.ts
-index 373d40085893060668d7a9de4dc97892cb25a0be..88ba654c61e665b1509e78d1da67b67baa85bfc2 100644
+index cef314e6e983d546b0c42d40ada95c9a66b4662c..f6712cd7f5b7f401bbf659886a3c24a094db078e 100644
--- a/ui/webui/resources/cr_elements/cr_toolbar/cr_toolbar.ts
+++ b/ui/webui/resources/cr_elements/cr_toolbar/cr_toolbar.ts
-@@ -156,4 +156,4 @@ declare global {
+@@ -158,4 +158,4 @@ declare global {
}
}
diff --git a/patches/v8/BUILD.gn.patch b/patches/v8/BUILD.gn.patch
index 228b425fd1a7..9251f5a537d4 100644
--- a/patches/v8/BUILD.gn.patch
+++ b/patches/v8/BUILD.gn.patch
@@ -1,8 +1,8 @@
diff --git a/BUILD.gn b/BUILD.gn
-index c2c11c24ace1b2c54f47ce9a1587102f9682f22d..ee168abbc47ebc935dce9d7e3c906665114a7bae 100644
+index a4faf8e7a87de572555122088798ae2bc5108592..f7f743b14b17a1b42c0fe7e2f31ec640bedf5cd2 100644
--- a/BUILD.gn
+++ b/BUILD.gn
-@@ -754,6 +754,7 @@ config("internal_config_base") {
+@@ -740,6 +740,7 @@ config("internal_config_base") {
"include",
"$target_gen_dir",
]
@@ -10,7 +10,7 @@ index c2c11c24ace1b2c54f47ce9a1587102f9682f22d..ee168abbc47ebc935dce9d7e3c906665
}
config("internal_config") {
-@@ -3125,6 +3126,7 @@ v8_header_set("v8_headers") {
+@@ -3109,6 +3110,7 @@ v8_header_set("v8_headers") {
":cppgc_headers",
":v8_version",
]
diff --git a/patches/v8/src-codegen-compiler.cc.patch b/patches/v8/src-codegen-compiler.cc.patch
index 051f9dd2c6a9..21a074c85e85 100644
--- a/patches/v8/src-codegen-compiler.cc.patch
+++ b/patches/v8/src-codegen-compiler.cc.patch
@@ -1,8 +1,8 @@
diff --git a/src/codegen/compiler.cc b/src/codegen/compiler.cc
-index ff33cd15b19622d35d417d9407864bf50fb04b9d..7e7a8b005f246e0bf4a537819a6f77904ed7f495 100644
+index 538fb67a5a13a4dbba5e85bb5c75f0c35290a237..76fab29d0ce57338b2d4f982c8c8e037c32727c8 100644
--- a/src/codegen/compiler.cc
+++ b/src/codegen/compiler.cc
-@@ -3015,6 +3015,7 @@ MaybeHandle Compiler::GetFunctionFromEval(
+@@ -3016,6 +3016,7 @@ MaybeHandle Compiler::GetFunctionFromEval(
}
}
DCHECK(is_compiled_scope.is_compiled());
diff --git a/renderer/brave_wallet/brave_wallet_render_frame_observer.cc b/renderer/brave_wallet/brave_wallet_render_frame_observer.cc
index ad168a26f5ec..f22a9d4b099d 100644
--- a/renderer/brave_wallet/brave_wallet_render_frame_observer.cc
+++ b/renderer/brave_wallet/brave_wallet_render_frame_observer.cc
@@ -100,7 +100,7 @@ void BraveWalletRenderFrameObserver::DidClearWindowObject() {
if (!dynamic_params.install_window_brave_ethereum_provider &&
dynamic_params.install_window_ethereum_provider) {
- NOTREACHED();
+ NOTREACHED_IN_MIGRATION();
return;
}
diff --git a/resources/resource_ids.spec b/resources/resource_ids.spec
index 52bb2bc1f825..2309c8223c57 100644
--- a/resources/resource_ids.spec
+++ b/resources/resource_ids.spec
@@ -4,226 +4,226 @@
{
"SRCDIR": "../..",
"brave/common/extensions/api/brave_api_resources.grd": {
- "includes": [55400],
+ "includes": [57400],
},
"brave/components/resources/brave_components_resources.grd": {
- "includes": [55410],
+ "includes": [57410],
},
# This file is generated during the build.
"<(SHARED_INTERMEDIATE_DIR)/brave/web-ui-brave_adblock/brave_adblock.grd": {
"META": {"sizes": {"includes": [10]}},
- "includes": [55600],
+ "includes": [57600],
},
# This file is generated during the build.
"<(SHARED_INTERMEDIATE_DIR)/brave/web-ui-brave_new_tab/brave_new_tab.grd": {
"META": {"sizes": {"includes": [50]}},
- "includes": [55620],
+ "includes": [57620],
},
# This file is generated during the build.
"<(SHARED_INTERMEDIATE_DIR)/brave/web-ui-brave_welcome/brave_welcome.grd": {
"META": {"sizes": {"includes": [20]}},
- "includes": [55670],
+ "includes": [57670],
},
# This file is generated during the build.
"<(SHARED_INTERMEDIATE_DIR)/brave/browser/resources/settings/brave_settings_resources.grd": {
"META": {"sizes": {"includes": [20]}},
- "includes": [55690],
+ "includes": [57690],
},
"brave/app/brave_generated_resources.grd": {
- "includes": [55700],
- "messages": [55750],
+ "includes": [57700],
+ "messages": [57750],
},
"brave/app/theme/brave_theme_resources.grd": {
- "structures": [56700],
+ "structures": [58700],
},
"brave/app/theme/brave_unscaled_resources.grd": {
- "includes": [56800],
+ "includes": [58800],
},
# This file is generated during the build.
"<(SHARED_INTERMEDIATE_DIR)/brave/web-ui-brave_webtorrent/brave_webtorrent.grd": {
"META": {"sizes": {"includes": [10]}},
- "includes": [56810],
+ "includes": [58810],
},
"brave/components/brave_webtorrent/resources.grd": {
- "includes": [56820],
+ "includes": [58820],
},
# This file is generated during the build.
"<(SHARED_INTERMEDIATE_DIR)/brave/web-ui-brave_rewards_panel/brave_rewards_panel.grd": {
"META": {"sizes": {"includes": [20]}},
- "includes": [56830],
+ "includes": [58830],
},
"brave/components/brave_rewards/resources/brave_rewards_static_resources.grd": {
- "includes": [56850],
+ "includes": [58850],
},
# This file is generated during the build.
"<(SHARED_INTERMEDIATE_DIR)/brave/web-ui-brave_rewards_page/brave_rewards_page.grd": {
"META": {"sizes": {"includes": [20]}},
- "includes": [56860],
+ "includes": [58860],
},
# This file is generated during the build.
"<(SHARED_INTERMEDIATE_DIR)/brave/web-ui-brave_rewards_internals/brave_rewards_internals.grd": {
"META": {"sizes": {"includes": [10]}},
- "includes": [56880],
+ "includes": [58880],
},
# This file is generated during the build.
"<(SHARED_INTERMEDIATE_DIR)/brave/web-ui-brave_rewards_tip/brave_rewards_tip.grd": {
"META": {"sizes": {"includes": [20]}},
- "includes": [56890],
+ "includes": [58890],
},
"brave/components/resources/brave_components_strings.grd": {
- "messages": [56950],
+ "messages": [58950],
},
"brave/components/brave_ads/resources/bat_ads_resources.grd": {
- "includes": [59450]
+ "includes": [61450]
},
# This file is generated during the build.
"<(SHARED_INTERMEDIATE_DIR)/brave/web-ui-brave_wallet_page/brave_wallet_page.grd": {
"META": {"sizes": {"includes": [200]}},
- "includes": [59460],
+ "includes": [61460],
},
# This file is generated during the build.
"<(SHARED_INTERMEDIATE_DIR)/brave/web-ui-ethereum_remote_client_page/ethereum_remote_client_page.grd": {
"META": {"sizes": {"includes": [10]}},
- "includes": [59660],
+ "includes": [61660],
},
# This file is generated during the build.
"<(SHARED_INTERMEDIATE_DIR)/brave/web-ui-brave_wallet_panel/brave_wallet_panel.grd": {
"META": {"sizes": {"includes": [200]}},
- "includes": [59670],
+ "includes": [61670],
},
"brave/components/brave_extension/extension/resources.grd": {
- "includes": [59950],
+ "includes": [61950],
},
# This file is generated during the build.
"<(SHARED_INTERMEDIATE_DIR)/brave/web-ui-brave_extension/brave_extension.grd": {
"META": {"sizes": {"includes": [10]}},
- "includes": [59970],
+ "includes": [61970],
},
# This file is generated during the build.
"<(SHARED_INTERMEDIATE_DIR)/brave/web-ui-webcompat_reporter/webcompat_reporter.grd": {
"META": {"sizes": {"includes": [10]}},
- "includes": [59980],
+ "includes": [61980],
},
# This file is generated during the build.
"<(SHARED_INTERMEDIATE_DIR)/brave/web-ui-ipfs/ipfs.grd": {
"META": {"sizes": {"includes": [10]}},
- "includes": [59990],
+ "includes": [61990],
},
# This file is generated during the build.
"<(SHARED_INTERMEDIATE_DIR)/brave/web-ui-cosmetic_filters/cosmetic_filters.grd": {
"META": {"sizes": {"includes": [10]}},
- "includes": [60000],
+ "includes": [62000],
},
"brave/components/tor/resources/tor_static_resources.grd": {
- "includes": [60010],
+ "includes": [62010],
},
# This file is generated during the build.
"<(SHARED_INTERMEDIATE_DIR)/brave/web-ui-tor_internals/tor_internals.grd": {
"META": {"sizes": {"includes": [10]}},
- "includes": [60020],
+ "includes": [62020],
},
# This file is generated during the build.
"<(SHARED_INTERMEDIATE_DIR)/brave/web-ui-brave_wallet_script/brave_wallet_script.grd": {
"META": {"sizes": {"includes": [10]}},
- "includes": [60030],
+ "includes": [62030],
},
# This file is generated during the build.
"<(SHARED_INTERMEDIATE_DIR)/brave/web-ui-brave_vpn_panel/brave_vpn_panel.grd": {
"META": {"sizes": {"includes": [10]}},
- "includes": [60040],
+ "includes": [62040],
},
# This file is generated during the build.
"<(SHARED_INTERMEDIATE_DIR)/brave/web-ui-brave_shields_panel/brave_shields_panel.grd": {
"META": {"sizes": {"includes": [10]}},
- "includes": [60050],
+ "includes": [62050],
},
# This file is generated during the build.
"<(SHARED_INTERMEDIATE_DIR)/brave/web-ui-trezor_bridge/trezor_bridge.grd": {
"META": {"sizes": {"includes": [10]}},
- "includes": [60060],
+ "includes": [62060],
},
# This file is generated during the build.
"<(SHARED_INTERMEDIATE_DIR)/brave/web-ui-market_display/market_display.grd": {
"META": {"sizes": {"includes": [100]}},
- "includes": [60070],
+ "includes": [62070],
},
# This file is generated during the build.
"<(SHARED_INTERMEDIATE_DIR)/brave/web-ui-brave_private_new_tab/brave_private_new_tab.grd": {
"META": {"sizes": {"includes": [10]}},
- "includes": [60170],
+ "includes": [62170],
},
"<(SHARED_INTERMEDIATE_DIR)/brave/web-ui-playlist/playlist.grd": {
"META": {"sizes": {"includes": [10]}},
- "includes": [60180],
+ "includes": [62180],
},
"<(SHARED_INTERMEDIATE_DIR)/brave/web-ui-ledger_bridge/ledger_bridge.grd": {
"META": {"sizes": {"includes": [10]}},
- "includes": [60190],
+ "includes": [62190],
},
# This file is generated during the build.
"<(SHARED_INTERMEDIATE_DIR)/brave/web-ui-nft_display/nft_display.grd": {
"META": {"sizes": {"includes": [90]}},
- "includes": [60200],
+ "includes": [62200],
},
"<(SHARED_INTERMEDIATE_DIR)/brave/web-ui-cookie_list_opt_in/cookie_list_opt_in.grd": {
"META": {"sizes": {"includes": [10]}},
- "includes": [60290],
+ "includes": [62290],
},
"<(SHARED_INTERMEDIATE_DIR)/brave/web-ui-brave_speedreader_toolbar/brave_speedreader_toolbar.grd": {
"META": {"sizes": {"includes": [10]}},
- "includes": [60300],
+ "includes": [62300],
},
"<(SHARED_INTERMEDIATE_DIR)/brave/web-ui-brave_adblock_internals/brave_adblock_internals.grd": {
"META": {"sizes": {"includes": [10]}},
- "includes": [60310],
+ "includes": [62310],
},
"<(SHARED_INTERMEDIATE_DIR)/brave/web-ui-commands/commands.grd": {
"META": {"sizes": {"includes": [10]}},
- "includes": [60320],
+ "includes": [62320],
},
"<(SHARED_INTERMEDIATE_DIR)/brave/web-ui-brave_wallet_swap_page/brave_wallet_swap_page.grd": {
"META": {"sizes": {"includes": [150]}},
- "includes": [60330],
+ "includes": [62330],
},
"<(SHARED_INTERMEDIATE_DIR)/brave/web-ui-brave_wallet_send_page/brave_wallet_send_page.grd": {
"META": {"sizes": {"includes": [100]}},
- "includes": [60470],
+ "includes": [62470],
},
"<(SHARED_INTERMEDIATE_DIR)/brave/web-ui-brave_wallet_deposit_page/brave_wallet_deposit_page.grd": {
"META": {"sizes": {"includes": [100]}},
- "includes": [60570],
+ "includes": [62570],
},
"<(SHARED_INTERMEDIATE_DIR)/brave/web-ui-brave_wallet_fund_wallet_page/brave_wallet_fund_wallet_page.grd": {
"META": {"sizes": {"includes": [100]}},
- "includes": [60670],
+ "includes": [62670],
},
"<(SHARED_INTERMEDIATE_DIR)/brave/web-ui-tip_panel/tip_panel.grd": {
"META": {"sizes": {"includes": [20]}},
- "includes": [60770]
+ "includes": [62770]
},
"<(SHARED_INTERMEDIATE_DIR)/brave/web-ui-ai_chat_ui/ai_chat_ui.grd": {
"META": {"sizes": {"includes": [200]}},
- "includes": [60970],
+ "includes": [62970],
},
"<(SHARED_INTERMEDIATE_DIR)/brave/web-ui-skus_internals/skus_internals.grd": {
"META": {"sizes": {"includes": [10]}},
- "includes": [60980],
+ "includes": [62980],
},
"<(SHARED_INTERMEDIATE_DIR)/brave/web-ui-brave_news_internals/brave_news_internals.grd": {
"META": {"sizes": {"includes": [10]}},
- "includes": [60990],
+ "includes": [62990],
},
# This file is generated during the build.
"<(SHARED_INTERMEDIATE_DIR)/brave/web-ui-line_chart_display/line_chart_display.grd": {
"META": {"sizes": {"includes": [10]}},
- "includes": [61000]
+ "includes": [63000]
},
"<(SHARED_INTERMEDIATE_DIR)/brave/web-ui-brave_player/brave_player.grd": {
"META": {"sizes": {"includes": [10]}},
- "includes": [61010],
+ "includes": [63010],
},
"<(SHARED_INTERMEDIATE_DIR)/brave/web-ui-ai_rewriter_ui/ai_rewriter_ui.grd": {
"META": {"sizes": {"includes": [10]}},
- "includes": [61020],
+ "includes": [63020],
},
}
diff --git a/test/BUILD.gn b/test/BUILD.gn
index 392ec2b63924..667899f93929 100644
--- a/test/BUILD.gn
+++ b/test/BUILD.gn
@@ -275,6 +275,7 @@ test("brave_unit_tests") {
"//chrome/app:command_ids",
"//chrome/browser/favicon",
"//chrome/browser/permissions",
+ "//chrome/browser/sync",
"//chrome/browser/ui",
"//chrome/test:test_support",
"//components/assist_ranker",
@@ -492,18 +493,30 @@ test("brave_unit_tests") {
if (is_android) {
deps += [
":brave_public_test_apk",
+ "//android_webview/nonembedded",
+ "//android_webview/test:webview_instrumentation_test_native_jni_impl",
"//brave:brave_pak_assets",
"//chrome:chrome_android_core",
+ "//chrome/android:browser_test_support",
"//chrome/android:chrome_apk_paks",
- "//chrome/android:chrome_public_base_module_java_for_test",
+ "//chrome/android:chrome_test_util",
+ "//chrome/browser/android/metrics:ukm_utils_for_test",
+ "//chrome/browser/password_manager/android:test_support",
+ "//chrome/browser/subresource_filter:android_test_support",
"//chrome/test/android:chrome_java_test_support_common",
+ "//components/component_updater/android:embedded_component_loader_java",
+ "//components/external_intents/android:test_support",
"//components/gcm_driver/instance_id/android:instance_id_driver_test_support_java",
+ "//components/paint_preview/player/android:test_support",
+ "//components/variations/android:test_support",
+ "//content/public/test/android:content_native_test_support",
+ "//net/android:java_test_native_support",
]
if (enable_brave_vpn || enable_ai_chat) {
deps += [ "//brave/components/brave_mobile_subscription/renderer/android:unit_tests" ]
}
if (use_v8_context_snapshot) {
- deps += [ "//tools/v8_context_snapshot:v8_context_snapshot_assets" ]
+ deps += [ "//tools/v8_context_snapshot" ]
}
if (!use_v8_context_snapshot || include_both_v8_snapshots) {
@@ -915,10 +928,10 @@ test("brave_browser_tests") {
"//chrome/app:command_ids",
"//chrome/browser",
"//chrome/browser:browser_process",
- "//chrome/browser:theme_properties",
"//chrome/browser/enterprise/connectors/analysis:features",
"//chrome/browser/media/router:media_router_feature",
"//chrome/browser/profiles:profile",
+ "//chrome/browser/search_engines",
"//chrome/browser/ui",
"//chrome/browser/ui/color:color_headers",
"//chrome/browser/ui/color:mixers",
@@ -1136,6 +1149,7 @@ test("brave_browser_tests") {
"//brave/components/brave_wallet/browser:test_support",
"//chrome/browser/apps/app_service:app_service",
"//chrome/browser/apps/app_service:constants",
+ "//chrome/browser/themes",
"//chrome/browser/ui/webui/side_panel/bookmarks:mojo_bindings",
"//components/autofill/content/browser",
"//components/autofill/core/browser",
@@ -1253,6 +1267,7 @@ if (is_android) {
"//base:base_shared_preferences_java",
"//brave/components/brave_wallet/common:mojom_java",
"//cc:cc_java",
+ "//chrome/android/features/keyboard_accessory/public:public_java",
"//chrome/browser/android/browserservices/intents:java",
"//chrome/browser/android/lifecycle:java",
"//chrome/browser/back_press/android:java",
diff --git a/test/filters/browser_tests.filter b/test/filters/browser_tests.filter
index fd3ecb6ae14b..acec6d7e6a63 100644
--- a/test/filters/browser_tests.filter
+++ b/test/filters/browser_tests.filter
@@ -21,29 +21,31 @@
-VisualQueryClassifierAgentTest.StartClassification_SingleImageNonShoppy_AgentEnabled
# kWebAppUniversalInstall is disabled
--WebAppIconHealthChecksBrowserTest.*
--LaunchWebAppCommandTest.*
--FetchManifestAndInstallCommandTest.*
-All/FetchManifestAndInstallCommandTestWithSVG.*
+-AppBannerManagerDesktopBrowserTest.*
+-FetchManifestAndInstallCommandTest.*
+-LaunchWebAppCommandTest.*
-ManifestUpdateManagerImmediateUpdateBrowserTest.*
+-MLPromotionBrowserTest.MLPipelineNoCrashForExistingTracker
-PreinstalledWebAppManagerBrowserTest.*
+-WebAppIconHealthChecksBrowserTest.*
-WebAppIconManagerBrowserTest.*
--AppBannerManagerDesktopBrowserTest.*
# Google signin is disabled
-BoundSessionCookieRefreshServiceImplBrowserTest.CookieRotationOnStartup
# Read anything is disabled
+-All/ContextMenuBrowserTest.OpenInReadingMode/LinkPreview*
-ReadAnythingAppControllerTest.*
-ReadAnythingAppModelTest.*
# Google translate is disabled
--TranslateAgentBrowserTest.*
--TranslateScriptBrowserTest.*
-OverrideLanguagePrefsForAutoHrefTranslateBrowserTest.*
-OverrideSitePrefsForAutoHrefTranslateBrowserTest.*
+-TranslateAgentBrowserTest.*
-TranslateManagerBrowserTest.*
-TranslateModelServiceBrowserTest.*
+-TranslateScriptBrowserTest.*
# Chromium ads are disabled
-AdClickLandingPageMetricsBrowserTest.*
@@ -72,7 +74,6 @@
-AudioLifetimeEnforcerBrowserTest.DocumentInactiveIfNeverPlayedAudio
-ChromeWebPlatformSecurityMetricsBrowserTest.*
-ChromeWebUsbTest.*
--ContextMenuFencedFrameTest.AutomaticBeaconSentAfterContextMenuNavigation
-CookiesTreeModelBrowserTest.NonDefaultStoragePartition
-CredentialManagerAvatarTest.AvatarFetchIsolatedPerOrigin
-IsolatedOriginNTPBrowserTest.IsolatedOriginDoesNotInterfereWithNTP
@@ -103,9 +104,6 @@
-DeveloperPrivateApiTest.InspectOffscreenDocument
-DynamicOriginBrowserTest.DynamicUrl
-DynamicOriginBrowserTest.InvalidDynamicResourceFailsToLoad
--ServiceWorker/DeclarativeContentApiTestWithContextType.RulesPersistence/0
--ServiceWorker/ExtensionApiTabTestWithContextType.OnUpdated/0
--PersistentBackground/ContentScriptApiTestWithContextType.ExtensionIframe/0
-ExtensionWebRequestApiTestWithContextType.WebRequestRedirects/0 # Request id not the same
-ExtensionWebRequestApiTestWithContextType.WebRequestRedirectsWithExtraHeaders/0 # request id not the same
-ExtensionWebRequestApiWebTransportTest.Main
@@ -120,6 +118,7 @@
-PasswordGeneration*
-PersistentBackground/ContentScriptApiPrerenderingTest.Prerendering/0
-PersistentBackground/ContentScriptApiTestWithContextType.CannotScriptTheNewTabPage/0
+-PersistentBackground/ContentScriptApiTestWithContextType.ExtensionIframe/0
-PersistentBackground/ContentScriptApiTestWithContextType.Messaging/0
-PersistentBackground/DeclarativeContentApiTestWithContextType.RulesPersistence/0
-PersistentBackground/ExtensionApiTabTestWithContextType.OnUpdated/0
@@ -137,6 +136,8 @@
-PersistentBackgroundOnBeforeRequest/RedirectInfoWebRequestApiTest.VerifyInvalidUrlRedirection/0
-PersistentBackgroundOnHeadersReceived/RedirectInfoWebRequestApiTest.VerifyInvalidUrlRedirection/0
-ServiceWorker/DeclarativeContentApiTestWithContextType.RulesPersistence/0
+-ServiceWorker/DeclarativeContentApiTestWithContextType.RulesPersistence/0
+-ServiceWorker/ExtensionApiTabTestWithContextType.OnUpdated/0
-ServiceWorker/ExtensionApiTabTestWithContextType.OnUpdated/0
-ServiceWorker/ExtensionWebRequestApiTestWithContextType.WebRequestRedirects/0
-ServiceWorker/ExtensionWebRequestApiTestWithContextType.WebRequestRedirects/BackgroundResourceFetchDisabled
@@ -238,6 +239,7 @@
-OmniboxPrerenderDefaultPrerender2BrowserTest.PrerenderFunctionsCheckWithDefaultFlag
-PreloadingConfigHoldbackSearchPreloadUnifiedBrowserTest.PrerenderDSEHoldbackTest
-PrerenderDataSaverProtocolTest.CheckReportedDisabledByDataSaverPreloadingState
+-SafeBrowsingBlockingPageAsyncChecksPrerenderingTest.PostCommitInterstitialReportThreatDetails_DontContainPrerenderingInfo
-SearchPreloadUnifiedFallbackBrowserTest.FetchPrerenderActivated
-SearchPreloadUnifiedFallbackBrowserTest.FetchPrerenderFetch
-SearchPreloadUnifiedFallbackBrowserTest.PrefetchErrorCancelsPrerender
@@ -427,15 +429,12 @@
-PrivacySandboxSettingsEventReportingBrowserTest/PrivacySandboxSettingsEventReportingBrowserTest.ReportWinDestinationEnrollment/*
-PrivacySandboxSettingsEventReportingBrowserTest/PrivacySandboxSettingsEventReportingBrowserTest.ReportResultDestinationEnrollment/*
-# These tests fail because we disable privacy_sandbox::kTrackingProtectionContentSetting
+# These tests fail because we disable privacy_sandbox::kTrackingProtectionContentSettingUbControl
-All/PageInfoBubbleViewBrowserTestCookiesSubpage.ToggleForBlockingThirdPartyCookiesUpdatesTrackingProtectionException/*
# These tests fail because we override privacy sandbox settings config
--PrivacySandboxConsentConfirmationTest.ConsentTest/3
--PrivacySandboxConsentConfirmationTest.ConsentTest/7
--PrivacySandboxNoticeConfirmationTest.NoticeTest/3
--PrivacySandboxNoticeConfirmationTest.NoticeTest/7
--PrivacySandboxNoticeConfirmationTest.NoticeTest/11
+-PrivacySandboxConsentConfirmationTest.*/*
+-PrivacySandboxNoticeConfirmationTest.*/*
# This also fails because we override privacy sandbox settings.
# Specifically, because Privacy sandbox is restricted
@@ -496,6 +495,7 @@
# signin::ConsentLevel::kSignin
-All/ParentApprovalHandlingByExtensionSwitchTest.GrantParentApprovalWhenExtensionSwitchBecomesEnabled/*
-All/ParentApprovalHandlingByExtensionSwitchTest.GrantParentParentApprovalOnInstallationIfExtensionSwitchEnabled/*
+-All/ParentApprovalRequestTest.RequestToInstallApprovedExtension/WithParentalControlsOnExtensionsManagedBy*
-All/SupervisedUserURLFilterPrerenderingTest.OnURLChecked/*
-All/SupervisedUserURLFilterTest.*
-ContextMenuForSupervisedUsersBrowserTest.SaveLinkAsEntryIsDisabledForUrlsBlockedByAsyncCheckerForChild
@@ -503,19 +503,17 @@
-ContextMenuForSupervisedUsersBrowserTest.SaveLinkAsEntryIsEnabledForUrlsAllowedByAsyncCheckerForChild
-CookieClearOnExitMigrationNoticeBrowserTest.*
-CookieClearOnExitMigrationNoticePixelTest.*
--DiceBrowserTextWithExplicitSignin.SigninWithChoiceRemembered_*
--EnclaveAuthenticatorBrowserTest.GpmPinRegistrationPersistAcrossRestart
--EnclaveAuthenticatorBrowserTest.MakeCredential_RecoverWithGPMPIN_Success
--EnclaveAuthenticatorBrowserTest.MakeCredential_RecoverWithLSKF_Success
--EnclaveAuthenticatorBrowserTest.RecoverWithLSKF_GetAssertion_Success
--EnclaveAuthenticatorBrowserTest.RegisterDeviceWithGpmPin_MakeCredentialWithUV_Success
--EnclaveAuthenticatorBrowserTest.RegisterDeviceWithGpmPin_MakeCredential_Success
--EnclaveAuthenticatorBrowserTest.RegisterDeviceWithGpmPin_UVRequestsWithWrongPIN
+-DogfoodOptimizationGuideKeyedServiceBrowserTest.LoggingDisabledByEnterprisePolicy_Dogfood_*
+-EnclaveAuthenticatorBrowserTest.*
+-EnclaveAuthenticatorCachingTest.*
-EnclaveAuthenticatorWithoutPinBrowserTest.*
-EnclaveAuthenticatorWithPinBrowserTest.*
-LocalWebApprovalsEnabled/SupervisedUserIframeFilterTest.*/*
-PasswordStatusCheckServiceBaseTest.CheckTimeUpdatedAfterRunScheduledInThePast
-PowerBookmarkBubbleViewBrowserTest.InvokeUi_bookmark_details_on_trackable_product
+-ProfileMenuClickTest_GuestProfileButtonAvailable_SignedInNotSupervised.*/*
+-ProfileMenuClickTest_GuestProfileButtonNotAvailable_SignedInSupervised.*/*
+-ProfileMenuClickTest_PasswordManagerWebApp.ProfileMenuClickTest_PasswordManagerWebApp/*
-ProfileMenuClickTest_SyncEnabled_UnoDisabled.ProfileMenuClickTest_*
-ProfileMenuClickTest_SyncEnabled_UnoEnabled.ProfileMenuClickTest_*
-ProfileMenuClickTest_SyncError_UnoDisabled.ProfileMenuClickTest_*
@@ -645,13 +643,17 @@
-RuntimeFeatureStateBrowserTest.ThirdPartyCookieAllowedByUserBypass
-ThirdPartyCookieDeprecationObserverBrowserTest.ThirdPartyAdCookieReadScriptTaggedSubframe/*
-ThirdPartyCookieDeprecationObserverTriggerBrowserTest.ThirdPartyCookiesBothWriteRead
+-ThirdPartyCookieDeprecationObserverTriggerBrowserTest.ThirdPartyCookiesSingleRead
-ThirdPartyPartitionedStorageAccessibilityCanBeDisabledTest.Basic/*
-ThirdPartyPartitionedStorageAccessibilitySharedWorkerTest.*
-ThirdPartyPartitionedStorageAccessibilityTest.*
+-TopLevelTpcdTrialBrowserTest.UkmNotEmittedWhenRedirectResponseHas*
+-TpcdMetadataDevtoolsObserverBrowserTest.DoesNotEmitDevtoolsIssueForAdTaggedCookie
-TpcdMetadataDevtoolsObserverBrowserTest.DoesNotEmitDevtoolsIssueForSiteNotInAllowlist
-TpcdMetadataDevtoolsObserverBrowserTest.DoesNotEmitDevtoolsIssueWithBlockedCookiesSetting
-TpcdMetadataDevtoolsObserverBrowserTest.EmitsDevtoolsIssues
-TpcdMetadataDevtoolsObserverDisabledBrowserTest.DoesNotEmitDevtoolsIssueWithMissingFeature
+-TpcdOriginTrialBrowserTest.*
# These tests fail because we disable creation of CookieControlsIconView in
# PageActionIconController::Init's switch
@@ -805,6 +807,7 @@
-ContentSettingsWithFencedFrameBrowserTest.RendererContentSettings
-ContentSettingsWithFencedFrameBrowserTest.StorageAccessInFencedFrame
-ContentSettingsWorkerModulesWithFencedFrameBrowserTest.WorkerImportModuleBlocked
+-ContextMenuFencedFrameTest.AutomaticBeaconSentAfterContextMenuNavigation
-ContextMenuFencedFrameTest.MenuContentsVerification_Fencedframe
-ContextMenuFencedFrameTestNoTestingConfig.AutomaticBeaconSentAfterContextMenuNavigation
-DeclarativeNetRequestApiFencedFrameTest/DeclarativeNetRequestApiFencedFrameTest.*
@@ -895,6 +898,9 @@
-DevToolsConsoleInsightsTest.IsNotEnabledForEduUsers
-DevToolsConsoleInsightsTest.IsNotEnabledForEnterpriseUsers
-DevToolsConsoleInsightsTest.IsNotEnabledForMinors
+-DiceBrowserTestWithExplicitSignin.SigninWithChoiceRemembered_*
+-DiceExplicitSigninBrowserTest.DiceUserMigratedClearsCookie
+-DiceExplicitSigninRollbackBrowserTest.*
-EnterpriseSigninServiceTest.CurrentlyActiveTabIsAlreadyLoginPage
-EnterpriseSigninServiceTest.DoesNothingIfPolicyNotSet
-EnterpriseSigninServiceTest.OpensNewTabOnSyncPaused
@@ -907,6 +913,7 @@
-ForceSigninProfilePickerCreationFlowBrowserTest.ForceSigninReauthWithAnotherAccount
-ForceSigninProfilePickerCreationFlowBrowserTest.ForceSigninSuccessful
-GaiaRemoteConsentFlowParamBrowserTest.*
+-GraduatedComposeEnablingBrowserTest.GraduatedCompose
-PasswordRevampedManagementBubbleBrowserTest.InvokeUi_ManagePasswordBubbleWithRevampedDesign/*
-PlusAddressServiceBrowserTest.VerifySupportsPlusAddresses
-PrivacyBudgetMetaExperimentBrowserTestWithUkmRecording.ReportsEncounteredSurfacesAndDocumentCreatedMetrics
@@ -939,6 +946,8 @@
-KAnonymityServiceClientBrowserTest.TestJoin
-KAnonymityServiceClientBrowserTest.TestQuery
-ModelExecutionComposeLoggingDisabledTest.LoggingForFeatureNotEnabled
+-ModelExecutionEnterprisePolicyBrowserTest.EnableComposeWithoutLogging
+-ModelExecutionEnterprisePolicyBrowserTest.EnableTabOrganizationWithoutLogging
-ModelExecutionNewFeaturesEnabledAutomaticallyTest.NewFeaturesEnabledWhenMainToggleEnabled
-ModelExecutionValidationBrowserTest.ModelExecutionFailsServerFailure
-ModelExecutionValidationBrowserTest.ModelExecutionSuccess
@@ -1072,37 +1081,7 @@
-ProfileTypeChoiceUIPixelTest.InvokeUi_default/TS
# These tests fail because we are modifying the HttpsUpgrades feature.
--HttpsUpgradesBrowserTest.AccidentalTypicallySecureUsersRemediation/*
--HttpsUpgradesBrowserTest.AllowlistEntryExpires/*
--HttpsUpgradesBrowserTest.EnterpriseAllowlistDisablesHttpsFirstModeForSiteEngagament/*
--HttpsUpgradesBrowserTest.EnterpriseAllowlistDisablesUpgrades/*
--HttpsUpgradesBrowserTest.HttpPageHttpPost_NotUpgraded/*
--HttpsUpgradesBrowserTest.HttpParentHttpSubframeNavigation_NotUpgraded/*
--HttpsUpgradesBrowserTest.HttpsToHttpRedirect_ShouldUpgrade/*
--HttpsUpgradesBrowserTest.HttpsUpgradeWithBrokenSSL_ShouldTriggerSSLInterstitial/*
--HttpsUpgradesBrowserTest.InterstitialBypassed_HttpFallbackLoaded/*
--HttpsUpgradesBrowserTest.InterstitialLearnMoreLink/HttpsFirstModeIncognito
--HttpsUpgradesBrowserTest.Localhost_ShouldNotUpgrade/*
--HttpsUpgradesBrowserTest.NetErrorOnUpgrade_ShouldInterstitial/*
--HttpsUpgradesBrowserTest.NonRoutableIPAddress_ShouldNotUpgrade/*
--HttpsUpgradesBrowserTest.NonUniqueHost_RecordsMetrics/*
--HttpsUpgradesBrowserTest.PreferHstsOverHttpsFirstMode/*
--HttpsUpgradesBrowserTest.RedirectLoop_ShouldInterstitial/*
--HttpsUpgradesBrowserTest.RevisitingBumpsExpiration/*
--HttpsUpgradesBrowserTest.SlowHttps_ShouldInterstitial/*
--HttpsUpgradesBrowserTest.URLsAutocompletedWithHttpSchemeAreUpgraded/*
--HttpsUpgradesBrowserTest.URLsTypedWithHttpSchemeNoUpgrades/*
--HttpsUpgradesBrowserTest.UrlWithHttpScheme_BrokenSSL_ShouldInterstitial_TypicallySecureUser/*
--HttpsUpgradesBrowserTest.UrlWithHttpScheme_BrokenSSL_SiteEngagementHeuristic_ShouldIgnoreUrlsWithNonDefaultPorts/*
--HttpsUpgradesBrowserTest.UrlWithHttpScheme_BrokenSSL_SiteEngagementHeuristic_ShouldInterstitial/*
--HttpsUpgradesBrowserTest.URLsTypedWithHttpSchemeNoUpgradesAllowlist/AllAutoHFM
--HttpsUpgradesBrowserTest.URLsTypedWithHttpSchemeNoUpgradesAllowlist/HttpsFirstModeForTypicallySecureUsersAndHttpsUpgrades
--HttpsUpgradesBrowserTest.URLsTypedWithHttpSchemeNoUpgradesAllowlist/HttpsFirstModeWithSiteEngagementAndHttpsUpgrades
--HttpsUpgradesBrowserTest.URLsTypedWithHttpSchemeNoUpgradesAllowlist/HttpsUpgradesOnly
--HttpsUpgradesBrowserTest.UrlWithHttpScheme_BrokenSSL_ShouldInterstitial/*
--HttpsUpgradesBrowserTest.UrlWithHttpScheme_BrokenSSL_ShouldInterstitial_SiteEngagement/*
--HttpsUpgradesBrowserTest.UrlWithHttpScheme_ShouldUpgrade/*
--HttpsUpgradesBrowserTest.UrlWithHttpsScheme_ShouldLoad/*
+-HttpsUpgradesBrowserTest.*
-HttpsUpgradesPrefsBrowserTest.PrefStatesRecorded
-HttpsUpgradesPrefsIncognitoEnabledBrowserTest.PrefStatesRecorded
@@ -1224,63 +1203,21 @@
-CompanionPage*
-SidePanelCompanion2BrowserEnabledTest.FeatureEnabled
-# This test fails because we provide our own override of the side panel which
+# These tests fail because we provide our own override of the side panel which
# does not enable this feature
--LensOverlayControllerBrowserTest.OverlaySidePanelEdgeCaseInteractions
-
-# These tests fail because they enable (or require) the kChromeRefresh2023
-# feature, which our code is not expecting.
--All/BrowserFrameColorProviderTest.BaselineThemeIgnoresNativeThemeColor/1
--All/BrowserFrameColorProviderTest.BrowserFrameTracksBrowserColorVariant/1
--All/BrowserFrameColorProviderTest.BrowserFrameTracksIsGrayscale/1
--All/BrowserFrameColorProviderTest.GrayscaleIgnoresUserColor/1
--All/BrowserFrameColorProviderTest.GrayscaleUsesBaselinePalette/1
--All/BrowserFrameColorProviderTest.IncognitoAlwaysDarkMode/1
--All/BrowserFrameColorProviderTest.IncognitoAlwaysIgnoresUserColor/1
--All/BrowserFrameColorProviderTest.IncognitoIsAlwaysGrayscale/1
--All/BrowserFrameColorProviderTest.TracksBrowserColorScheme/1
--All/BrowserFrameColorProviderTest.UseDeviceIgnoresTheme/1
--All/BrowserFrameColorProviderTest.UserColorProfilePrefTrackedCorrectly/1
--All/BrowserFrameColorProviderTest.UserColorTracksAutogeneratedThemeColor/1
+-LensOverlayControllerBrowserTest.*
+
+# This test fails because we don't implement an accent color for titlebars or
+# tabs on Windows
-All/NativeChromeColorMixerWinBrowsertest.HeaderColorsFollowAccentColor/*
--All/OfferNotificationIconViewBrowserTest.InvokeUi_show_offer_notification_icon_expanded/Chrome_refresh_style
--All/OfferNotificationIconViewBrowserTest.InvokeUi_show_offer_notification_icon_only/Chrome_refresh_style
+-NativeChromeColorMixerWinBrowsertest.HeaderColorsFollowAccentColor
+
+# These tests fail since upstream transitioned to ChromeRefresh2023 by default;
+# some of them may require further investigation, while some we may continue to
+# disable
-AppMenuBrowserTestRefreshOnly.*
-BrowserCommandControllerBrowserTestRefreshOnly.*
--BrowserCommandsTest.BookmarkCurrentTabAfterCloseTabs
--BrowserCommandsTest.MoveActiveTabToNewWindow
--BrowserCommandsTest.MoveActiveTabToNewWindowMultipleSelection
--BrowserCommandsTest.MoveTabsToNewWindow
--BrowserCommandsTest.MoveToExistingWindow
--BrowserCommandsTest.ReloadSelectedTabs
--BrowserCommandsTest.StartsOrganizationRequest
--ExtensionOpenSidePanelBrowserTest.*
--ExtensionSidePanelBrowserTest.*
--FirstRunIntroPixelTest.InvokeUi_default/CR2023
--PinnedToolbarActionsModelBrowserTest.*
-ProfileMenuViewPixelTest.InvokeUi_default/*
--ProfilePickerUIPixelTest.InvokeUi_default/CR2023
--ProductSpecificationsButtonBrowserTest.*
--RealboxHandlerIconTest/BrowserTestWithParam.ActionVectorIcons/0
--RealboxHandlerIconTest/BrowserTestWithParam.ActionVectorIcons/2
--RealboxHandlerIconTest/BrowserTestWithParam.AnswerVectorIcons/0
--RealboxHandlerIconTest/BrowserTestWithParam.AnswerVectorIcons/2
--RealboxHandlerIconTest/BrowserTestWithParam.MatchVectorIcons/0
--RealboxHandlerIconTest/BrowserTestWithParam.MatchVectorIcons/2
--RealboxHandlerIconTest/BrowserTestWithParam.PedalVectorIcons/0
--RealboxHandlerIconTest/BrowserTestWithParam.PedalVectorIcons/2
--TabSearchContainerBrowserTest.DelaysHide
--TabSearchContainerBrowserTest.DelaysShow
--TabSearchContainerBrowserTest.DelayedHidesWhenOrganizeButtonTimesOut
--TabSearchContainerBrowserTest.ImmediatelyHidesWhenOrganizeButtonClicked
--TabSearchContainerBrowserTest.ImmediatelyHidesWhenOrganizeButtonDismissed
--TabSearchContainerBrowserTest.LogsFailureWhenButtonDismissed
--TabSearchContainerBrowserTest.LogsFailureWhenButtonTimeout
--TabSearchContainerBrowserTest.LogsSuccessWhenButtonClicked
--TabSearchContainerBrowserTest.TogglesActionUIState
--TabStripModelBrowserTest.CommandOrganizeTabs
--TestWebAppMenuModelCR2023.CommandStatusTest
--TestWebAppMenuModelCR2023.ModelHasIcons
-WallpaperSearchBrowserTest.EnablingWallpaperSearchEnables
# These tests fail because we do not allow most request client hints
@@ -1345,10 +1282,8 @@
-All/ExtensionTelemetryServiceBrowserTestWithInterceptRemoteHostsContactedInRendererEnabled.DetectsWebRequestFromContentScript/*
-All/ExtensionTelemetryServiceBrowserTestWithInterceptRemoteHostsContactedInRendererEnabled.InterceptsRemoteHostContactedSignalInRenderer/*
-CheckCompleteAfterNavigationFinish/SafeBrowsingBlockingPageAsyncChecksTimingTest*
--ClientSideDetectionHostPrerenderExclusiveAccessBrowserTest.KeyboardLockClassificationTriggersCSPPPing
--ClientSideDetectionHostPrerenderExclusiveAccessBrowserTest.KeyboardLockTriggersPreclassificationCheck
--ClientSideDetectionHostPrerenderExclusiveAccessBrowserTest.PointerLockClassificationTriggersCSPPPing
--ClientSideDetectionHostPrerenderExclusiveAccessBrowserTest.PointerLockTriggersPreClassificationCheck
+-ClientSideDetectionHostPrerenderExclusiveAccessBrowserTest.*
+-ClientSideDetectionHostVibrateTest.VibrationApiTriggersPreclassificationCheck
-ExtensionTelemetryServiceBrowserTest.*
-ExtensionTelemetryServiceBrowserTestWithInterceptRemoteHostsContactedInRendererEnabled.InterceptsRemoteHostContactedSignalInRenderer
@@ -1493,6 +1428,10 @@
-StorageAccessAPIAutograntsWithFedCMBrowserTest.FedCMGrantsAllowCookieAccess*
-StorageAccessAPIAutograntsWithFedCMBrowserTest.FedCMGrants_RequiresPermissionPolicy
-StorageAccessAPIBrowserTest.*
+-StorageAccessHeadersBrowserTest.LoadHeader*
+-StorageAccessHeadersBrowserTest.RetryHeader*
+-StorageAccessHeadersDisabledBrowserTest.RetryHeader
+-StorageAccessHeadersWithFedCMBrowserTest.RetryHeader
# This test fails because we disable FileSystemAccessAPI
-PageInfoBubbleViewBrowserTest.InteractedWithFileSystemSubpage
@@ -1535,6 +1474,40 @@
# This test fails because we rename profile names from (for example) "Person 1"
# to "Profile 1"
-CreateDesktopShortcutDialogViewBrowserTest.InvokeUi_TitleHasProfileNameInfoMultiProfile
+-ShortcutIntegrationMultiProfileBrowserTest.CreatedForCorrectProfile
+
+# These tests fail because we intentionally disable features::kFedCm
+-FederatedIdentityApiPermissionContextTest.*
+
+# These tests fail because we disable blink::features::kFileSystemAccessAPI and
+# they try to call showOpenFilePicker
+-FileSystemObserverStorageAccessTest.StateChangeFromAllowedToBlocked
+-FileSystemObserverStorageAccessTest.StorageAccess*
+
+# This test is disabled because it fails when it encounters unrecognized (Brave)
+# WebUI URL hashes.
+-WebUIUrlHashesBrowserTest.UrlsInHistogram
+
+# We show tab search on the right side of the tab strip, which this test does
+# not expect
+-FullscreenTabSearchBubbleDialogTest.InvokeUi_default
+
+# Temporarily needed due to ChromeRefresh2023 changes, but will be addressed
+# shortly by https://github.com/brave/brave-browser/issues/39041
+-ExtensionSidePanelBrowserTest.TabSpecificPanelsOwnViewState
+
+# This test fails because we remove toolbar's panel pin button container.
+# When extension side panel is opened, usptream shows close button in toolbar
+# for closing it. However, it's not shown if panel pin button container is not
+# exited. See SidePanelCoordinator::NotifyPinnedContainerOfActiveStateChange().
+-ExtensionSidePanelBrowserTest.CloseSidePanelButtonVisibleWhenExtensionsSidePanelOpen
+
+# This test crashed because ToolbarView tries to access |pinned_toolbar_actions_container_|
+# in ToolbarView::GetAnchorView(). But we made that container null as we don't want panel
+# pin button container. In production, this crash doesn't happen because that code path
+# is only effective if features::IsToolbarPinningEnabled(). That feature is disabled by
+# default.
+-BrowserCommandControllerBrowserTestToolbarPinningOnly.ShowTranslateStatusFrenchPage
# Tests below this point have not been diagnosed or had issues created yet.
-_/WebrtcLoggingPrivateApiStartEventLoggingTestFeatureAndPolicyEnabled.*
@@ -1559,6 +1532,7 @@
-All/ClickToCallPolicyTest.*
-All/ClientHintsAllowThirdPartyBrowserTest.*
-All/ClientHintsBrowserTest.*
+-All/ClientHintsBrowserTestForBlockAcceptClientHintsExperiment.Block/*
-All/ClientHintsBrowserTestForMetaTagTypes.*
-All/CookieSettingsTest.*
-All/DataSaverHoldbackBrowserTest.*
@@ -2105,6 +2079,7 @@
-SafeBrowsingNetworkContext/NetworkContextConfigurationReportingAndNelBrowserTest.*
-SafeBrowsingPolicyTest.*
-SafeBrowsingTriggeredPopupBlockerBrowserTest.*
+-SafeBrowsingUrlLookupServiceTest.*
-SafetyTipPageInfoBubbleViewBrowserTest.ComboSquattingSiteEngagement_UIDisabled_ShouldRecordMetrics
-SafetyTipPageInfoBubbleViewBrowserTest.ComboSquattingSiteEngagement_UIEnabled
-SafetyTipPageInfoBubbleViewBrowserTest.ComboSquatting_UIDisabled_ShouldRecordMetrics
@@ -2161,6 +2136,7 @@
-SessionRestoreObserverTest.MultipleTabSessionRestore
-SessionRestorePageLoadMetricsBrowserTest.InitialVisibilityOfMultipleRestoredTabs
-SessionRestoreSilentLaunchTest.*
+-SessionRestoreStaleSessionCookieDeletionTest.CookieStorage/*
-SessionRestoreTest.*
-SessionServiceLogTest.*
-SettingsOverriddenParamsProvidersBrowserTest.*
@@ -2285,6 +2261,7 @@
-WebAppLaunchHandlerDisabledBrowserTest.*
-WebAppMoverBadPatternBrowsertest.*
-WebAppOfflineDarkModeTest.*
+-WebAppScopeExtensionsBrowserTest.ExtendedLinkCapturingFocusExisting
-WebAppTabStripBrowserTest.HomeTabScopeWildcardString
-WebAppTabStripBrowserTest.NavigationThrottle
-WebAppTabStripBrowserTest.ReparentingPinsHomeTab
diff --git a/test/filters/unit_tests.filter b/test/filters/unit_tests.filter
index 143bd0b62342..27a350ae07d4 100644
--- a/test/filters/unit_tests.filter
+++ b/test/filters/unit_tests.filter
@@ -33,7 +33,8 @@
-All/ManagedUserProfileNoticeHandleProceedTest.HandleProceed/*
-All/MemorySaverBubbleViewMemorySavingsImprovementsTest.ShowsCorrectLabelsForDifferentSavings/*
-All/MemorySaverBubbleViewTest.ShowsCorrectLabelsForDifferentSavings/*
--All/OidcAuthenticationSigninInterceptorFailureTest.PolicyFetchFailure/*
+-All/OidcAuthenticationSigninInterceptorFetchFailureTest.PolicyFetchFailure/*
+-All/OidcAuthenticationSigninInterceptorIdFailureTest.DeviceIdFailure/*
-All/OidcAuthenticationSigninInterceptorTest.*
-All/OidcAuthResponseCaptureNavigationThrottleTest.*
-All/PageInfoCookiesContentView3pcdCookieToggleTest.*
@@ -49,7 +50,7 @@
-ApcScrimManagerImplTest.RestoresTheOriginalHiddenStateOnWebcontentsVisibibleTransition
-ApcScrimManagerImplTest.ShutDownDisablesAndHidesScrim
-ApcScrimManagerImplTest.UpdatesVisibilityOnWebcontentsVisibilityChanged
--AudioStreamCoordinatorTest.ConnectToAudioCaptuerAndReceiveBuses
+-AudioStreamCoordinatorTest.ConnectToAudioCapturerAndReceiveBuses
-AutofillFieldPromoControllerImplTest.CloseViewOnFailingMaybeShowPromo
-AutofillFieldPromoControllerImplTestWithView.CloseViewOnControllerDeletion
-AutofillFieldPromoControllerImplTestWithView.CloseViewOnFrameDeleted
@@ -88,9 +89,11 @@
-CookieControlsContentViewUnitTest.ToggleButton_Initial
-CookieControlsContentViewUnitTest.ToggleButton_UpdatedSites
-CookieControlsIconViewUnitTest.*
--CookieControlsUserBypassTest.SiteCounts
+-CookieControlsUserBypassTest.*
-CoreTabHelperWindowUnitTest.SearchWithLens_LensPingEnabled_TriggersLensPing
-CpuHealthTrackerBrowserTest.*
+-CreateShortcutBrowserCommandControllerTest.EnabledValidUrl
+-CreateShortcutBrowserCommandControllerTest.InvalidSchemeDisabled
-CustomCursorSuppressorTest.*
-CustomizeChromeFeaturePromoHelperTest.*
-DefaultBrowserPromptManagerTest.*
@@ -183,6 +186,9 @@
-PreRedirectionURLObserverTest.OneNavigationTwoSameDocumentNavigations
-PreRedirectionURLObserverTest.OneNavigationTwoSubframeNavigations
-PreRedirectionURLObserverTest.ThreeNavigations
+-ProductSpecificationsIconViewIntegrationTest.IconExecution
+-ProductSpecificationsIconViewIntegrationTest.IconVisibility
+-ProductSpecificationsIconViewIntegrationTest.TestVisualState
-ProfileManagementNavigationThrottleRedirectTest.*
-ProfileManagementNavigationThrottleTest.*
-ProfileTokenNavigationThrottleTest.*
@@ -282,7 +288,7 @@
-TabContainerTest.GroupUnderlineBasics
# Test below are disabled as we have our own ink drop configs.
--ChromeRefresh2023OnOff/ToolbarInkDropUtilTest.ConfigureInkDropForToolbarTest/*
+-ToolbarInkDropUtilTest.ConfigureInkDropForToolbarTest
# The following tests are disabled for BraveRenderViewContextMenu::InitMenu
# attempting to check Tor statuses, which dereferences an uninitialised
@@ -333,14 +339,15 @@
-DiceWebSigninInterceptorForcedSeparationTest.*
-DiceWebSigninInterceptorTest.*
-GAIAInfoUpdateServiceTest.*
+-SigninUiUtilWithUnoDesktopTest.ShowExtensionSigninPrompt*
# This test fails because we intentionally stub out
# IdentityManager::PrepareForAddingNewAccount
-DiceTabHelperTest.Initialization
-PreconnectEnabled/SigninDiceResponseHandlerTestPreconnect.Signin/1
-# This test fails because we disable the privacy sandbox
--PrivacySandboxServiceTest.MetricsLoggingOccursCorrectly
+# These tests fail because we disable the privacy sandbox
+-PrivacySandboxServiceTest.*
# These tests fail because we disable the
# privacy_sandbox::kEnforcePrivacySandboxAttestations feature
@@ -430,6 +437,7 @@
# These tests fail because IdentityManager's primary account has no kSignin
# consent level
+-EnclaveAuthenticatorRequestDelegateTest.BrowserProvidedPasskeysAvailable
-EnclaveManagerTest.PrimaryUserChange
-ManagePasswordsUIControllerWithBrowserTestExplicitBrowserSignin.MovePasswordUponSigninWithExistingAccount
-PeopleHandlerDiceTest.StoredAccountsList
@@ -527,21 +535,13 @@
# was not initialized in test.
-RenderViewContextMenuPrefsTest.ShowAllPasswordsIncognito
-# Flaky upstream test.
+# Flaky upstream tests
-All/FirstPartySetsPolicyServicePrefTest.FindEntry_FpsEnabled_ReturnsEmptyUntilAllSetsReady/0
-All/FirstPartySetsPolicyServicePrefTest.FindEntry_NumQueriesRecorded_AfterConfigReady/0
-All/FirstPartySetsPolicyServicePrefTest.FindEntry_NumQueriesRecorded_BeforeConfigReady/0
-All/FirstPartySetsPolicyServicePrefTest.ForEachEffectiveSetEntry_ReturnsEmptyUntilAllSetsReady/0
-All/FirstPartySetsPolicyServicePrefTest.ForEachEffectiveSetEntry_WithNonEmptyConfig/0
--All/RecentTabsSubMenuModelTest.NoTabs/1
--All/RecentTabsSubMenuModelTest.OtherDevices/1
--All/RecentTabsSubMenuModelTest.OtherDevicesDynamicUpdate/1
-EncryptedReportingUploadProviderTest.SuccessfullyUploadsRecord
--PrivacySandboxServiceTest.FirstPartySetsEnabledMetric
--PrivacySandboxServiceTest.FpsPrefInit
--PrivacySandboxServiceTest.SampleFpsData
--PrivacySandboxServiceTest.SimulatedFpsData_FpsEnabled_WithGlobalSetsAndProfileSets
--PrivacySandboxServiceTest.UsesFpsSampleSetsWhenProvided
# This test fails because we insert our own bookmarks submenu into the app menu
# model
@@ -591,7 +591,7 @@
# brave/chromium_src/components/permissions/permission_uma_util.cc
# GetUkmSourceId override.
-All/SiteSettingsHandlerTest.NotificationPermissionRevokeUkm/*
--UnusedSitePermissionsServiceTest.UnusedSitePermissionsServiceTest
+-All/UnusedSitePermissionsServiceTest.UnusedSitePermissionsServiceTest/*
# This test fails because we disable kVisualQuerySuggestions
-CompanionUrlBuilderTest.MsbbAndPcOn
@@ -644,14 +644,6 @@
-TrustedVaultEncryptionKeysTabHelperPrerenderingTest.CreateEncryptionKeysInPrerendering
-WebAppIconDownloaderPrerenderTest.PrerenderedPageNavigates
-# These tests fail because we disable the kChromeRefresh2023 feature
--All/NewTabPageHandlerThemeTest.SetTheme/2
--All/NewTabPageHandlerThemeTest.SetTheme/3
--All/OpaqueBrowserFrameViewLayoutTest.BasicWindow/Maximized
--All/OpaqueBrowserFrameViewLayoutTest.WindowButtonsOnLeft/Maximized
--All/OpaqueBrowserFrameViewLayoutTest.WindowWithTitleAndIcon/Maximized
--DownloadBubbleRowViewInfoTest.InterruptedInfo
-
# This test crashes because brave.sidebar.side_panel_width isn't registered by
# SidebarService for the test.
-ExtensionsToolbarButtonFeatureUnitTest.UpdateState
@@ -686,6 +678,19 @@
# false
-ShowSyncPromoTest.*
+# These tests are disabled due to an issue related to calling
+# browsertest_util::AddTab. This problem should be investigated and these tests
+# reenabled. See https://github.com/brave/brave-browser/issues/39075
+-SavedTabGroupKeyedServiceUnitTestV2.*
+
+# These tests are disabled because we explicitly patch the
+# ThemeColorPickerHandler "extended_list" code path to always be active and we
+# override the handling of the seed color to restore it to pre-ChromeRefresh2023
+# behavior
+-ThemeColorPickerHandlerTest.GetChromeColors
+-ThemeColorPickerHandlerTest.GetChromeColorsExtended
+-ThemeColorPickerHandlerTest.SetSeedColor
+
# Tests below this point have not been diagnosed or had issues created yet.
-AboutFlagsHistogramTest.*
-AboutFlagsTest.*
@@ -928,6 +933,8 @@
-PermissionChipUnitTest.*
-PermissionMessageCombinationsUnittest.*
-PermissionMessagesUnittest.*
+-PermissionsAPISiteAccessRequestsUnitTest.AddSiteAccessRequest*
+-PermissionsAPISiteAccessRequestsUnitTest.RemoveSiteAccessRequest*
-PermissionsAPIUnitTest.*
-PermissionsManagerUnitTest.FaviconPermissionsAreNotWithheld
-PermissionsTest.*
diff --git a/third_party/blink/renderer/core/brave_page_graph/page_graph.cc b/third_party/blink/renderer/core/brave_page_graph/page_graph.cc
index eb09c6d44f76..fe57dabf1b80 100644
--- a/third_party/blink/renderer/core/brave_page_graph/page_graph.cc
+++ b/third_party/blink/renderer/core/brave_page_graph/page_graph.cc
@@ -1016,7 +1016,7 @@ void PageGraph::AddGraphItem(std::unique_ptr graph_item) {
edges_.push_back(graph_edge);
}
} else {
- NOTREACHED();
+ NOTREACHED_IN_MIGRATION();
}
}
diff --git a/third_party/blink/renderer/core/farbling/brave_session_cache.cc b/third_party/blink/renderer/core/farbling/brave_session_cache.cc
index 602e7ab73037..46f89802052c 100644
--- a/third_party/blink/renderer/core/farbling/brave_session_cache.cc
+++ b/third_party/blink/renderer/core/farbling/brave_session_cache.cc
@@ -366,7 +366,7 @@ bool BraveSessionCache::AllowFontFamily(
}
}
default:
- NOTREACHED();
+ NOTREACHED_IN_MIGRATION();
}
return true;
}
diff --git a/third_party/blink/renderer/core/resource_pool_limiter/resource_pool_limiter.cc b/third_party/blink/renderer/core/resource_pool_limiter/resource_pool_limiter.cc
index b734d08af8da..7c6ff9a7ec6f 100644
--- a/third_party/blink/renderer/core/resource_pool_limiter/resource_pool_limiter.cc
+++ b/third_party/blink/renderer/core/resource_pool_limiter/resource_pool_limiter.cc
@@ -53,7 +53,7 @@ int GetResourceLimit(ResourcePoolLimiter::ResourceType resource_type) {
case ResourcePoolLimiter::ResourceType::kEventSource:
return 250;
}
- NOTREACHED();
+ NOTREACHED_IN_MIGRATION();
return 0;
}
diff --git a/third_party/rust/aes/v0_8/BUILD.gn b/third_party/rust/aes/v0_8/BUILD.gn
index 9c767e3fa998..e993b310d6ae 100644
--- a/third_party/rust/aes/v0_8/BUILD.gn
+++ b/third_party/rust/aes/v0_8/BUILD.gn
@@ -54,7 +54,10 @@ cargo_crate("lib") {
"//brave/third_party/rust/cfg_if/v1:lib",
"//brave/third_party/rust/cipher/v0_4:lib",
]
- if (target_cpu == "x64" || target_cpu == "x86") {
+ if (target_cpu == "arm64" || target_cpu == "x64" || target_cpu == "x86") {
deps += [ "//brave/third_party/rust/cpufeatures/v0_2:lib" ]
}
+ if (target_os == "android" && target_cpu == "arm64") {
+ deps -= [ "//brave/third_party/rust/cpufeatures/v0_2:lib" ]
+ }
}
diff --git a/third_party/rust/anyhow/v1/README.chromium b/third_party/rust/anyhow/v1/README.chromium
index 510c8586bcf1..f5e098511f52 100644
--- a/third_party/rust/anyhow/v1/README.chromium
+++ b/third_party/rust/anyhow/v1/README.chromium
@@ -1,7 +1,7 @@
Name: anyhow
URL: https://crates.io/crates/anyhow
Description: Flexible concrete Error type built on std::error::Error
-Version: 1.0.82
+Version: 1.0.86
Security Critical: yes
Shipped: yes
License: Apache 2.0
diff --git a/third_party/rust/chacha20/v0_9/BUILD.gn b/third_party/rust/chacha20/v0_9/BUILD.gn
index 2cf3db65cae8..e30090b6373c 100644
--- a/third_party/rust/chacha20/v0_9/BUILD.gn
+++ b/third_party/rust/chacha20/v0_9/BUILD.gn
@@ -42,6 +42,9 @@ cargo_crate("lib") {
"//brave/third_party/rust/cfg_if/v1:lib",
"//brave/third_party/rust/cipher/v0_4:lib",
]
+ if (target_cpu == "x64" || target_cpu == "x86") {
+ deps += [ "//brave/third_party/rust/cpufeatures/v0_2:lib" ]
+ }
features = [ "zeroize" ]
if (target_cpu == "x64" || target_cpu == "x86") {
deps += [ "//brave/third_party/rust/cpufeatures/v0_2:lib" ]
diff --git a/third_party/rust/chromium_crates_io/Cargo.lock b/third_party/rust/chromium_crates_io/Cargo.lock
index 9546ebfa0437..281d8105b706 100644
--- a/third_party/rust/chromium_crates_io/Cargo.lock
+++ b/third_party/rust/chromium_crates_io/Cargo.lock
@@ -80,7 +80,7 @@ name = "ahash"
version = "0.7.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
- "getrandom 0.2.14",
+ "getrandom 0.2.15",
"once_cell",
"version_check",
]
@@ -110,7 +110,7 @@ dependencies = [
[[package]]
name = "anyhow"
-version = "1.0.82"
+version = "1.0.86"
[[package]]
name = "arrayref"
@@ -576,12 +576,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
"proc-macro2",
"quote",
- "syn 2.0.60",
+ "syn 2.0.66",
]
[[package]]
name = "cxx"
-version = "1.0.121"
+version = "1.0.122"
dependencies = [
"cc",
"cxxbridge-flags",
@@ -591,15 +591,15 @@ dependencies = [
[[package]]
name = "cxxbridge-flags"
-version = "1.0.121"
+version = "1.0.122"
[[package]]
name = "cxxbridge-macro"
-version = "1.0.121"
+version = "1.0.122"
dependencies = [
"proc-macro2",
"quote",
- "syn 2.0.60",
+ "syn 2.0.66",
]
[[package]]
@@ -1020,7 +1020,7 @@ dependencies = [
[[package]]
name = "getrandom"
-version = "0.2.14"
+version = "0.2.15"
dependencies = [
"cfg-if",
"libc",
@@ -1321,7 +1321,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
[[package]]
name = "libc"
-version = "0.2.153"
+version = "0.2.155"
[[package]]
name = "libm"
@@ -1841,7 +1841,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
[[package]]
name = "proc-macro2"
-version = "1.0.81"
+version = "1.0.85"
dependencies = [
"unicode-ident",
]
@@ -1918,7 +1918,7 @@ dependencies = [
name = "rand_core"
version = "0.6.4"
dependencies = [
- "getrandom 0.2.14",
+ "getrandom 0.2.15",
]
[[package]]
@@ -1979,7 +1979,7 @@ dependencies = [
[[package]]
name = "regex"
-version = "1.10.4"
+version = "1.10.5"
dependencies = [
"aho-corasick",
"memchr",
@@ -1989,7 +1989,7 @@ dependencies = [
[[package]]
name = "regex-automata"
-version = "0.4.6"
+version = "0.4.7"
dependencies = [
"aho-corasick",
"memchr",
@@ -1998,7 +1998,7 @@ dependencies = [
[[package]]
name = "regex-syntax"
-version = "0.8.3"
+version = "0.8.4"
[[package]]
name = "ripemd"
@@ -2037,7 +2037,7 @@ dependencies = [
[[package]]
name = "ryu"
-version = "1.0.17"
+version = "1.0.18"
[[package]]
name = "safemem"
@@ -2092,11 +2092,11 @@ dependencies = [
[[package]]
name = "semver"
-version = "1.0.22"
+version = "1.0.23"
[[package]]
name = "serde"
-version = "1.0.198"
+version = "1.0.203"
dependencies = [
"serde_derive",
]
@@ -2119,11 +2119,11 @@ dependencies = [
[[package]]
name = "serde_derive"
-version = "1.0.198"
+version = "1.0.203"
dependencies = [
"proc-macro2",
"quote",
- "syn 2.0.60",
+ "syn 2.0.66",
]
[[package]]
@@ -2139,7 +2139,7 @@ dependencies = [
[[package]]
name = "serde_json"
-version = "1.0.116"
+version = "1.0.117"
dependencies = [
"itoa 1.0.11",
"ryu",
@@ -2412,7 +2412,7 @@ dependencies = [
[[package]]
name = "syn"
-version = "2.0.60"
+version = "2.0.66"
dependencies = [
"proc-macro2",
"quote",
@@ -2539,7 +2539,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
"proc-macro2",
"quote",
- "syn 2.0.60",
+ "syn 2.0.66",
]
[[package]]
@@ -2639,7 +2639,7 @@ name = "uuid"
version = "1.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
- "getrandom 0.2.14",
+ "getrandom 0.2.15",
]
[[package]]
@@ -2681,7 +2681,7 @@ dependencies = [
"once_cell",
"proc-macro2",
"quote",
- "syn 2.0.60",
+ "syn 2.0.66",
"wasm-bindgen-shared",
]
@@ -2701,7 +2701,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
"proc-macro2",
"quote",
- "syn 2.0.60",
+ "syn 2.0.66",
"wasm-bindgen-backend",
"wasm-bindgen-shared",
]
@@ -2714,6 +2714,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
[[package]]
name = "winapi"
version = "0.3.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
"winapi-i686-pc-windows-gnu",
"winapi-x86_64-pc-windows-gnu",
diff --git a/third_party/rust/chromium_crates_io/Cargo.toml b/third_party/rust/chromium_crates_io/Cargo.toml
index 0e1685d2347e..ea92188a663d 100644
--- a/third_party/rust/chromium_crates_io/Cargo.toml
+++ b/third_party/rust/chromium_crates_io/Cargo.toml
@@ -84,7 +84,7 @@ path = "../../../../third_party/rust/chromium_crates_io/vendor/aho-corasick-1.1.
package = "aho-corasick"
[patch.crates-io.anyhow_v1]
-path = "../../../../third_party/rust/chromium_crates_io/vendor/anyhow-1.0.82"
+path = "../../../../third_party/rust/chromium_crates_io/vendor/anyhow-1.0.86"
package = "anyhow"
[patch.crates-io.base64_v0_13]
@@ -96,19 +96,19 @@ path = "../../../../third_party/rust/chromium_crates_io/vendor/cfg-if-1.0.0"
package = "cfg-if"
[patch.crates-io.cxx_v1]
-path = "../../../../third_party/rust/chromium_crates_io/vendor/cxx-1.0.121"
+path = "../../../../third_party/rust/chromium_crates_io/vendor/cxx-1.0.122"
package = "cxx"
[patch.crates-io.cxxbridge-flags_v1]
-path = "../../../../third_party/rust/chromium_crates_io/vendor/cxxbridge-flags-1.0.121"
+path = "../../../../third_party/rust/chromium_crates_io/vendor/cxxbridge-flags-1.0.122"
package = "cxxbridge-flags"
[patch.crates-io.cxxbridge-macro_v1]
-path = "../../../../third_party/rust/chromium_crates_io/vendor/cxxbridge-macro-1.0.121"
+path = "../../../../third_party/rust/chromium_crates_io/vendor/cxxbridge-macro-1.0.122"
package = "cxxbridge-macro"
[patch.crates-io.getrandom_v0_2]
-path = "../../../../third_party/rust/chromium_crates_io/vendor/getrandom-0.2.14"
+path = "../../../../third_party/rust/chromium_crates_io/vendor/getrandom-0.2.15"
package = "getrandom"
[patch.crates-io.hex_v0_4]
@@ -124,7 +124,7 @@ path = "../../../../third_party/rust/chromium_crates_io/vendor/lazy_static-1.4.0
package = "lazy_static"
[patch.crates-io.libc_v0_2]
-path = "../../../../third_party/rust/chromium_crates_io/vendor/libc-0.2.153"
+path = "../../../../third_party/rust/chromium_crates_io/vendor/libc-0.2.155"
package = "libc"
[patch.crates-io.log_v0_4]
@@ -140,7 +140,7 @@ path = "../../../../third_party/rust/chromium_crates_io/vendor/ppv-lite86-0.2.17
package = "ppv-lite86"
[patch.crates-io.proc_macro2_v1]
-path = "../../../../third_party/rust/chromium_crates_io/vendor/proc-macro2-1.0.81"
+path = "../../../../third_party/rust/chromium_crates_io/vendor/proc-macro2-1.0.85"
package = "proc-macro2"
[patch.crates-io.quote_v1]
@@ -160,15 +160,15 @@ path = "../../../../third_party/rust/chromium_crates_io/vendor/rand-0.8.5"
package = "rand"
[patch.crates-io.regex_v1]
-path = "../../../../third_party/rust/chromium_crates_io/vendor/regex-1.10.4"
+path = "../../../../third_party/rust/chromium_crates_io/vendor/regex-1.10.5"
package = "regex"
[patch.crates-io.regex_automata_v0_4]
-path = "../../../../third_party/rust/chromium_crates_io/vendor/regex-automata-0.4.6"
+path = "../../../../third_party/rust/chromium_crates_io/vendor/regex-automata-0.4.7"
package = "regex-automata"
[patch.crates-io.regex_syntax_v0_8]
-path = "../../../../third_party/rust/chromium_crates_io/vendor/regex-syntax-0.8.3"
+path = "../../../../third_party/rust/chromium_crates_io/vendor/regex-syntax-0.8.4"
package = "regex-syntax"
[patch.crates-io.rustc_version_v0_4]
@@ -176,23 +176,23 @@ path = "../../../../third_party/rust/chromium_crates_io/vendor/rustc_version-0.4
package = "rustc_version"
[patch.crates-io.ryu_v1]
-path = "../../../../third_party/rust/chromium_crates_io/vendor/ryu-1.0.17"
+path = "../../../../third_party/rust/chromium_crates_io/vendor/ryu-1.0.18"
package = "ryu"
[patch.crates-io.semver_v1]
-path = "../../../../third_party/rust/chromium_crates_io/vendor/semver-1.0.22"
+path = "../../../../third_party/rust/chromium_crates_io/vendor/semver-1.0.23"
package = "semver"
[patch.crates-io.serde_derive_v1]
-path = "../../../../third_party/rust/chromium_crates_io/vendor/serde_derive-1.0.198"
+path = "../../../../third_party/rust/chromium_crates_io/vendor/serde_derive-1.0.203"
package = "serde_derive"
[patch.crates-io.serde_json_v1]
-path = "../../../../third_party/rust/chromium_crates_io/vendor/serde_json-1.0.116"
+path = "../../../../third_party/rust/chromium_crates_io/vendor/serde_json-1.0.117"
package = "serde_json"
[patch.crates-io.serde_v1]
-path = "../../../../third_party/rust/chromium_crates_io/vendor/serde-1.0.198"
+path = "../../../../third_party/rust/chromium_crates_io/vendor/serde-1.0.203"
package = "serde"
[patch.crates-io.static_assertions_v0_1]
@@ -204,17 +204,13 @@ path = "../../../../third_party/rust/chromium_crates_io/vendor/syn-1.0.109"
package = "syn"
[patch.crates-io.syn_v2]
-path = "../../../../third_party/rust/chromium_crates_io/vendor/syn-2.0.60"
+path = "../../../../third_party/rust/chromium_crates_io/vendor/syn-2.0.66"
package = "syn"
[patch.crates-io.unicode-ident_v1]
path = "../../../../third_party/rust/chromium_crates_io/vendor/unicode-ident-1.0.12"
package = "unicode-ident"
-[patch.crates-io.winapi_v0_3]
-path = "../../../../third_party/rust/chromium_crates_io/vendor/winapi-0.3.9"
-package = "winapi"
-
[patch.crates-io.zcash_v1]
path = "../../../components/brave_wallet/browser/zcash/rust"
package = "zcash"
diff --git a/third_party/rust/chromium_crates_io/gnrt_config.toml b/third_party/rust/chromium_crates_io/gnrt_config.toml
index fd6ac08f2e23..72fa94df9966 100644
--- a/third_party/rust/chromium_crates_io/gnrt_config.toml
+++ b/third_party/rust/chromium_crates_io/gnrt_config.toml
@@ -105,8 +105,8 @@ license_files = ['LICENSE']
[crate.aes]
extra_kv = { raw_gn = '''
-if (target_cpu == "x64" || target_cpu == "x86") {
- deps += [ "//brave/third_party/rust/cpufeatures/v0_2:lib" ]
+if (target_os == "android" && target_cpu == "arm64") {
+ deps -= [ "//brave/third_party/rust/cpufeatures/v0_2:lib" ]
}
''' }
@@ -140,6 +140,13 @@ license_files = ['LICENSE']
[crate.chrono]
license_files = ['LICENSE.txt']
+[crate.cpufeatures]
+extra_kv = { raw_gn = '''
+if (is_apple && target_cpu == "arm64") {
+ deps += [ "//brave/third_party/rust/libc/v0_2:lib" ]
+}
+''' }
+
[crate.crunchy]
build_script_outputs = [ "lib.rs" ]
@@ -162,6 +169,9 @@ if (target_cpu == "x64") {
}
''' }
+[crate.curve25519-dalek-derive]
+extra_input_roots = [ "../README.md" ]
+
[crate.derivation-path]
license_files = ['../../../../../common/licenses/Apache-2.0']
@@ -230,6 +240,17 @@ build_script_outputs = [ "rules.rs" ]
[crate.itoa]
license_files = ['LICENSE-APACHE']
+# gnrt conditional for this dep is merely if (target_cpu == "arm64")
+[crate.keccak]
+extra_kv = { raw_gn = '''
+if (target_cpu == "x64" || target_cpu == "x86") {
+ deps += [ "//brave/third_party/rust/cpufeatures/v0_2:lib" ]
+}
+if (target_os == "android" && target_cpu == "arm64") {
+ deps -= [ "//brave/third_party/rust/cpufeatures/v0_2:lib" ]
+}
+''' }
+
[crate.libm]
extra_kv = { rustenv = [ "OPT_LEVEL=0" ]}
@@ -318,10 +339,8 @@ license_files = ['../../../../../common/licenses/Apache-2.0']
[crate.sha2]
extra_kv = { raw_gn = '''
-if ((target_cpu == "arm64" &&
- (target_os == "mac" || target_os == "linux" || target_os == "ios")) ||
- target_cpu == "x64" || target_cpu == "x86") {
- deps += [ "//brave/third_party/rust/cpufeatures/v0_2:lib" ]
+if (target_os == "android" && target_cpu == "arm64") {
+ deps -= [ "//brave/third_party/rust/cpufeatures/v0_2:lib" ]
}
''' }
diff --git a/third_party/rust/chromium_crates_io/vendor/winapi-0.3.9/.cargo-checksum.json b/third_party/rust/chromium_crates_io/vendor/winapi-0.3.9/.cargo-checksum.json
new file mode 100644
index 000000000000..697c9ce2fbb4
--- /dev/null
+++ b/third_party/rust/chromium_crates_io/vendor/winapi-0.3.9/.cargo-checksum.json
@@ -0,0 +1 @@
+{"files":{}}
diff --git a/third_party/rust/chromium_crates_io/vendor/winapi-0.3.9/.cargo_vcs_info.json b/third_party/rust/chromium_crates_io/vendor/winapi-0.3.9/.cargo_vcs_info.json
new file mode 100644
index 000000000000..00d9ccc93ed1
--- /dev/null
+++ b/third_party/rust/chromium_crates_io/vendor/winapi-0.3.9/.cargo_vcs_info.json
@@ -0,0 +1,5 @@
+{
+ "git": {
+ "sha1": "796a8e6c2971dc2ff1bcff166e6671284f9b5b6b"
+ }
+}
diff --git a/third_party/rust/chromium_crates_io/vendor/winapi-0.3.9/Cargo.toml b/third_party/rust/chromium_crates_io/vendor/winapi-0.3.9/Cargo.toml
new file mode 100644
index 000000000000..beeaf3385675
--- /dev/null
+++ b/third_party/rust/chromium_crates_io/vendor/winapi-0.3.9/Cargo.toml
@@ -0,0 +1,434 @@
+# THIS FILE IS AUTOMATICALLY GENERATED BY CARGO
+#
+# When uploading crates to the registry Cargo will automatically
+# "normalize" Cargo.toml files for maximal compatibility
+# with all versions of Cargo and also rewrite `path` dependencies
+# to registry (e.g., crates.io) dependencies
+#
+# If you believe there's an error in this file please file an
+# issue against the rust-lang/cargo repository. If you're
+# editing this file be aware that the upstream Cargo.toml
+# will likely look very different (and much more reasonable)
+
+[package]
+name = "winapi"
+version = "0.3.9"
+authors = ["Peter Atashian "]
+build = "build.rs"
+include = ["/src/**/*", "/Cargo.toml", "/LICENSE-MIT", "/LICENSE-APACHE", "/build.rs", "/README.md"]
+description = "Raw FFI bindings for all of Windows API."
+documentation = "https://docs.rs/winapi/"
+readme = "README.md"
+keywords = ["windows", "ffi", "win32", "com", "directx"]
+categories = ["external-ffi-bindings", "no-std", "os::windows-apis"]
+license = "MIT/Apache-2.0"
+repository = "https://github.com/retep998/winapi-rs"
+[package.metadata.docs.rs]
+default-target = "x86_64-pc-windows-msvc"
+features = ["everything", "impl-debug", "impl-default"]
+targets = ["aarch64-pc-windows-msvc", "i686-pc-windows-msvc", "x86_64-pc-windows-msvc"]
+
+[features]
+accctrl = []
+aclapi = []
+activation = []
+adhoc = []
+appmgmt = []
+audioclient = []
+audiosessiontypes = []
+avrt = []
+basetsd = []
+bcrypt = []
+bits = []
+bits10_1 = []
+bits1_5 = []
+bits2_0 = []
+bits2_5 = []
+bits3_0 = []
+bits4_0 = []
+bits5_0 = []
+bitscfg = []
+bitsmsg = []
+bluetoothapis = []
+bluetoothleapis = []
+bthdef = []
+bthioctl = []
+bthledef = []
+bthsdpdef = []
+bugcodes = []
+cderr = []
+cfg = []
+cfgmgr32 = []
+cguid = []
+combaseapi = []
+coml2api = []
+commapi = []
+commctrl = []
+commdlg = []
+commoncontrols = []
+consoleapi = []
+corecrt = []
+corsym = []
+d2d1 = []
+d2d1_1 = []
+d2d1_2 = []
+d2d1_3 = []
+d2d1effectauthor = []
+d2d1effects = []
+d2d1effects_1 = []
+d2d1effects_2 = []
+d2d1svg = []
+d2dbasetypes = []
+d3d = []
+d3d10 = []
+d3d10_1 = []
+d3d10_1shader = []
+d3d10effect = []
+d3d10misc = []
+d3d10sdklayers = []
+d3d10shader = []
+d3d11 = []
+d3d11_1 = []
+d3d11_2 = []
+d3d11_3 = []
+d3d11_4 = []
+d3d11on12 = []
+d3d11sdklayers = []
+d3d11shader = []
+d3d11tokenizedprogramformat = []
+d3d12 = []
+d3d12sdklayers = []
+d3d12shader = []
+d3d9 = []
+d3d9caps = []
+d3d9types = []
+d3dcommon = []
+d3dcompiler = []
+d3dcsx = []
+d3dkmdt = []
+d3dkmthk = []
+d3dukmdt = []
+d3dx10core = []
+d3dx10math = []
+d3dx10mesh = []
+datetimeapi = []
+davclnt = []
+dbghelp = []
+dbt = []
+dcommon = []
+dcomp = []
+dcompanimation = []
+dcomptypes = []
+dde = []
+ddraw = []
+ddrawi = []
+ddrawint = []
+debug = ["impl-debug"]
+debugapi = []
+devguid = []
+devicetopology = []
+devpkey = []
+devpropdef = []
+dinput = []
+dinputd = []
+dispex = []
+dmksctl = []
+dmusicc = []
+docobj = []
+documenttarget = []
+dot1x = []
+dpa_dsa = []
+dpapi = []
+dsgetdc = []
+dsound = []
+dsrole = []
+dvp = []
+dwmapi = []
+dwrite = []
+dwrite_1 = []
+dwrite_2 = []
+dwrite_3 = []
+dxdiag = []
+dxfile = []
+dxgi = []
+dxgi1_2 = []
+dxgi1_3 = []
+dxgi1_4 = []
+dxgi1_5 = []
+dxgi1_6 = []
+dxgidebug = []
+dxgiformat = []
+dxgitype = []
+dxva2api = []
+dxvahd = []
+eaptypes = []
+enclaveapi = []
+endpointvolume = []
+errhandlingapi = []
+everything = []
+evntcons = []
+evntprov = []
+evntrace = []
+excpt = []
+exdisp = []
+fibersapi = []
+fileapi = []
+functiondiscoverykeys_devpkey = []
+gl-gl = []
+guiddef = []
+handleapi = []
+heapapi = []
+hidclass = []
+hidpi = []
+hidsdi = []
+hidusage = []
+highlevelmonitorconfigurationapi = []
+hstring = []
+http = []
+ifdef = []
+ifmib = []
+imm = []
+impl-debug = []
+impl-default = []
+in6addr = []
+inaddr = []
+inspectable = []
+interlockedapi = []
+intsafe = []
+ioapiset = []
+ipexport = []
+iphlpapi = []
+ipifcons = []
+ipmib = []
+iprtrmib = []
+iptypes = []
+jobapi = []
+jobapi2 = []
+knownfolders = []
+ks = []
+ksmedia = []
+ktmtypes = []
+ktmw32 = []
+l2cmn = []
+libloaderapi = []
+limits = []
+lmaccess = []
+lmalert = []
+lmapibuf = []
+lmat = []
+lmcons = []
+lmdfs = []
+lmerrlog = []
+lmjoin = []
+lmmsg = []
+lmremutl = []
+lmrepl = []
+lmserver = []
+lmshare = []
+lmstats = []
+lmsvc = []
+lmuse = []
+lmwksta = []
+lowlevelmonitorconfigurationapi = []
+lsalookup = []
+memoryapi = []
+minschannel = []
+minwinbase = []
+minwindef = []
+mmdeviceapi = []
+mmeapi = []
+mmreg = []
+mmsystem = []
+mprapidef = []
+msaatext = []
+mscat = []
+mschapp = []
+mssip = []
+mstcpip = []
+mswsock = []
+mswsockdef = []
+namedpipeapi = []
+namespaceapi = []
+nb30 = []
+ncrypt = []
+netioapi = []
+nldef = []
+ntddndis = []
+ntddscsi = []
+ntddser = []
+ntdef = []
+ntlsa = []
+ntsecapi = []
+ntstatus = []
+oaidl = []
+objbase = []
+objidl = []
+objidlbase = []
+ocidl = []
+ole2 = []
+oleauto = []
+olectl = []
+oleidl = []
+opmapi = []
+pdh = []
+perflib = []
+physicalmonitorenumerationapi = []
+playsoundapi = []
+portabledevice = []
+portabledeviceapi = []
+portabledevicetypes = []
+powerbase = []
+powersetting = []
+powrprof = []
+processenv = []
+processsnapshot = []
+processthreadsapi = []
+processtopologyapi = []
+profileapi = []
+propidl = []
+propkey = []
+propkeydef = []
+propsys = []
+prsht = []
+psapi = []
+qos = []
+realtimeapiset = []
+reason = []
+restartmanager = []
+restrictederrorinfo = []
+rmxfguid = []
+roapi = []
+robuffer = []
+roerrorapi = []
+rpc = []
+rpcdce = []
+rpcndr = []
+rtinfo = []
+sapi = []
+sapi51 = []
+sapi53 = []
+sapiddk = []
+sapiddk51 = []
+schannel = []
+sddl = []
+securityappcontainer = []
+securitybaseapi = []
+servprov = []
+setupapi = []
+shellapi = []
+shellscalingapi = []
+shlobj = []
+shobjidl = []
+shobjidl_core = []
+shtypes = []
+softpub = []
+spapidef = []
+spellcheck = []
+sporder = []
+sql = []
+sqlext = []
+sqltypes = []
+sqlucode = []
+sspi = []
+std = []
+stralign = []
+stringapiset = []
+strmif = []
+subauth = []
+synchapi = []
+sysinfoapi = []
+systemtopologyapi = []
+taskschd = []
+tcpestats = []
+tcpmib = []
+textstor = []
+threadpoolapiset = []
+threadpoollegacyapiset = []
+timeapi = []
+timezoneapi = []
+tlhelp32 = []
+transportsettingcommon = []
+tvout = []
+udpmib = []
+unknwnbase = []
+urlhist = []
+urlmon = []
+usb = []
+usbioctl = []
+usbiodef = []
+usbscan = []
+usbspec = []
+userenv = []
+usp10 = []
+utilapiset = []
+uxtheme = []
+vadefs = []
+vcruntime = []
+vsbackup = []
+vss = []
+vsserror = []
+vswriter = []
+wbemads = []
+wbemcli = []
+wbemdisp = []
+wbemprov = []
+wbemtran = []
+wct = []
+werapi = []
+winbase = []
+wincodec = []
+wincodecsdk = []
+wincon = []
+wincontypes = []
+wincred = []
+wincrypt = []
+windef = []
+windot11 = []
+windowsceip = []
+windowsx = []
+winefs = []
+winerror = []
+winevt = []
+wingdi = []
+winhttp = []
+wininet = []
+winineti = []
+winioctl = []
+winnetwk = []
+winnls = []
+winnt = []
+winreg = []
+winsafer = []
+winscard = []
+winsmcrd = []
+winsock2 = []
+winspool = []
+winstring = []
+winsvc = []
+wintrust = []
+winusb = []
+winusbio = []
+winuser = []
+winver = []
+wlanapi = []
+wlanihv = []
+wlanihvtypes = []
+wlantypes = []
+wlclient = []
+wmistr = []
+wnnc = []
+wow64apiset = []
+wpdmtpextensions = []
+ws2bth = []
+ws2def = []
+ws2ipdef = []
+ws2spi = []
+ws2tcpip = []
+wtsapi32 = []
+wtypes = []
+wtypesbase = []
+xinput = []
+[target.i686-pc-windows-gnu.dependencies.winapi-i686-pc-windows-gnu]
+version = "0.4"
+[target.x86_64-pc-windows-gnu.dependencies.winapi-x86_64-pc-windows-gnu]
+version = "0.4"
diff --git a/third_party/rust/chromium_crates_io/vendor/winapi-0.3.9/Cargo.toml.orig b/third_party/rust/chromium_crates_io/vendor/winapi-0.3.9/Cargo.toml.orig
new file mode 100644
index 000000000000..524487083a0c
--- /dev/null
+++ b/third_party/rust/chromium_crates_io/vendor/winapi-0.3.9/Cargo.toml.orig
@@ -0,0 +1,431 @@
+[package]
+name = "winapi"
+version = "0.3.9"
+authors = ["Peter Atashian "]
+license = "MIT/Apache-2.0"
+description = "Raw FFI bindings for all of Windows API."
+documentation = "https://docs.rs/winapi/"
+repository = "https://github.com/retep998/winapi-rs"
+readme = "README.md"
+keywords = ["windows", "ffi", "win32", "com", "directx"]
+categories = ["external-ffi-bindings", "no-std", "os::windows-apis"]
+include = ["/src/**/*", "/Cargo.toml", "/LICENSE-MIT", "/LICENSE-APACHE", "/build.rs", "/README.md"]
+build = "build.rs"
+
+[package.metadata.docs.rs]
+features = ["everything", "impl-debug", "impl-default"]
+default-target = "x86_64-pc-windows-msvc"
+targets = ["aarch64-pc-windows-msvc", "i686-pc-windows-msvc", "x86_64-pc-windows-msvc"]
+
+[target.i686-pc-windows-gnu.dependencies]
+winapi-i686-pc-windows-gnu = { version = "0.4", path = "i686" }
+[target.x86_64-pc-windows-gnu.dependencies]
+winapi-x86_64-pc-windows-gnu = { version = "0.4", path = "x86_64" }
+
+[features]
+debug = ["impl-debug"]
+everything = []
+impl-debug = []
+impl-default = []
+std = []
+#km
+d3dkmthk = []
+#mmos
+#shared
+basetsd = []
+bcrypt = []
+bthdef = []
+bthioctl = []
+bthsdpdef = []
+bugcodes = []
+cderr = []
+cfg = []
+d3d9 = []
+d3d9caps = []
+d3d9types = []
+d3dkmdt = []
+d3dukmdt = []
+dcomptypes = []
+devguid = []
+devpkey = []
+devpropdef = []
+dinputd = []
+dxgi = []
+dxgi1_2 = []
+dxgi1_3 = []
+dxgi1_4 = []
+dxgi1_5 = []
+dxgi1_6 = []
+dxgiformat = []
+dxgitype = []
+enclaveapi = []
+evntprov = []
+evntrace = []
+exdisp = []
+guiddef = []
+hidclass = []
+hidpi = []
+hidsdi = []
+hidusage = []
+ifdef = []
+ifmib = []
+in6addr = []
+inaddr = []
+intsafe = []
+ipifcons = []
+ipmib = []
+iprtrmib = []
+ks = []
+ksmedia = []
+ktmtypes = []
+lmcons = []
+minwindef = []
+mmreg = []
+mprapidef = []
+mstcpip = []
+mswsockdef = []
+netioapi = []
+nldef = []
+ntddndis = []
+ntddscsi = []
+ntddser = []
+ntdef = []
+ntstatus = []
+qos = []
+rpc = []
+rpcdce = []
+rpcndr = []
+sddl = []
+spellcheck = []
+sspi = []
+stralign = []
+tcpestats = []
+tcpmib = []
+transportsettingcommon = []
+tvout = []
+udpmib = []
+usb = []
+usbioctl = []
+usbiodef = []
+usbscan = []
+usbspec = []
+windef = []
+windot11 = []
+windowsx = []
+winerror = []
+winusbio = []
+wlantypes = []
+wmistr = []
+wnnc = []
+ws2def = []
+ws2ipdef = []
+wtypes = []
+wtypesbase = []
+#ucrt
+corecrt = []
+#um
+accctrl = []
+aclapi = []
+adhoc = []
+appmgmt = []
+audioclient = []
+audiosessiontypes = []
+avrt = []
+bits = []
+bits10_1 = []
+bits1_5 = []
+bits2_0 = []
+bits2_5 = []
+bits3_0 = []
+bits4_0 = []
+bits5_0 = []
+bitscfg = []
+bitsmsg = []
+bluetoothapis = []
+bluetoothleapis = []
+bthledef = []
+cfgmgr32 = []
+cguid = []
+combaseapi = []
+coml2api = []
+commapi = []
+commctrl = []
+commdlg = []
+commoncontrols = []
+consoleapi = []
+corsym = []
+d2d1 = []
+d2d1_1 = []
+d2d1_2 = []
+d2d1_3 = []
+d2d1effectauthor = []
+d2d1effects = []
+d2d1effects_1 = []
+d2d1effects_2 = []
+d2d1svg = []
+d2dbasetypes = []
+d3d = []
+d3d10 = []
+d3d10_1 = []
+d3d10_1shader = []
+d3d10effect = []
+d3d10misc = []
+d3d10sdklayers = []
+d3d10shader = []
+d3d11 = []
+d3d11_1 = []
+d3d11_2 = []
+d3d11_3 = []
+d3d11_4 = []
+d3d11on12 = []
+d3d11sdklayers = []
+d3d11shader = []
+d3d11tokenizedprogramformat = []
+d3d12 = []
+d3d12sdklayers = []
+d3d12shader = []
+d3dcommon = []
+d3dcompiler = []
+d3dcsx = []
+d3dx10core = []
+d3dx10math = []
+d3dx10mesh = []
+datetimeapi = []
+davclnt = []
+dbghelp = []
+dbt = []
+dcommon = []
+dcomp = []
+dcompanimation = []
+dde = []
+ddraw = []
+ddrawi = []
+ddrawint = []
+debugapi = []
+devicetopology = []
+dinput = []
+dispex = []
+dmksctl = []
+dmusicc = []
+docobj = []
+documenttarget = []
+dot1x = []
+dpa_dsa = []
+dpapi = []
+dsgetdc = []
+dsound = []
+dsrole = []
+dvp = []
+dwmapi = []
+dwrite = []
+dwrite_1 = []
+dwrite_2 = []
+dwrite_3 = []
+dxdiag = []
+dxfile = []
+dxgidebug = []
+dxva2api = []
+dxvahd = []
+eaptypes = []
+endpointvolume = []
+errhandlingapi = []
+evntcons = []
+fibersapi = []
+fileapi = []
+functiondiscoverykeys_devpkey = []
+"gl-gl" = []
+handleapi = []
+heapapi = []
+highlevelmonitorconfigurationapi = []
+http = []
+imm = []
+interlockedapi = []
+ioapiset = []
+ipexport = []
+iphlpapi = []
+iptypes = []
+jobapi = []
+jobapi2 = []
+knownfolders = []
+ktmw32 = []
+l2cmn = []
+libloaderapi = []
+lmaccess = []
+lmalert = []
+lmapibuf = []
+lmat = []
+lmdfs = []
+lmerrlog = []
+lmjoin = []
+lmmsg = []
+lmremutl = []
+lmrepl = []
+lmserver = []
+lmshare = []
+lmstats = []
+lmsvc = []
+lmuse = []
+lmwksta = []
+lowlevelmonitorconfigurationapi = []
+lsalookup = []
+memoryapi = []
+minschannel = []
+minwinbase = []
+mmdeviceapi = []
+mmeapi = []
+mmsystem = []
+msaatext = []
+mscat = []
+mschapp = []
+mssip = []
+mswsock = []
+namedpipeapi = []
+namespaceapi = []
+nb30 = []
+ncrypt = []
+ntlsa = []
+ntsecapi = []
+oaidl = []
+objbase = []
+objidl = []
+objidlbase = []
+ocidl = []
+ole2 = []
+oleauto = []
+olectl = []
+oleidl = []
+opmapi = []
+pdh = []
+perflib = []
+physicalmonitorenumerationapi = []
+playsoundapi = []
+portabledevice = []
+portabledeviceapi = []
+portabledevicetypes = []
+powerbase = []
+powersetting = []
+powrprof = []
+processenv = []
+processsnapshot = []
+processthreadsapi = []
+processtopologyapi = []
+profileapi = []
+propidl = []
+propkey = []
+propkeydef = []
+propsys = []
+prsht = []
+psapi = []
+realtimeapiset = []
+reason = []
+restartmanager = []
+restrictederrorinfo = []
+rmxfguid = []
+rtinfo = []
+sapi = []
+sapi51 = []
+sapi53 = []
+sapiddk = []
+sapiddk51 = []
+schannel = []
+securityappcontainer = []
+securitybaseapi = []
+servprov = []
+setupapi = []
+shellapi = []
+shellscalingapi = []
+shlobj = []
+shobjidl = []
+shobjidl_core = []
+shtypes = []
+softpub = []
+spapidef = []
+sporder = []
+sql = []
+sqlext = []
+sqltypes = []
+sqlucode = []
+stringapiset = []
+strmif = []
+subauth = []
+synchapi = []
+sysinfoapi = []
+systemtopologyapi = []
+taskschd = []
+textstor = []
+threadpoolapiset = []
+threadpoollegacyapiset = []
+timeapi = []
+timezoneapi = []
+tlhelp32 = []
+unknwnbase = []
+urlhist = []
+urlmon = []
+userenv = []
+usp10 = []
+utilapiset = []
+uxtheme = []
+vsbackup = []
+vss = []
+vsserror = []
+vswriter = []
+wbemads = []
+wbemcli = []
+wbemdisp = []
+wbemprov = []
+wbemtran = []
+wct = []
+werapi = []
+winbase = []
+wincodec = []
+wincodecsdk = []
+wincon = []
+wincontypes = []
+wincred = []
+wincrypt = []
+windowsceip = []
+winefs = []
+winevt = []
+wingdi = []
+winhttp = []
+wininet = []
+winineti = []
+winioctl = []
+winnetwk = []
+winnls = []
+winnt = []
+winreg = []
+winsafer = []
+winscard = []
+winsmcrd = []
+winsock2 = []
+winspool = []
+winsvc = []
+wintrust = []
+winusb = []
+winuser = []
+winver = []
+wlanapi = []
+wlanihv = []
+wlanihvtypes = []
+wlclient = []
+wow64apiset = []
+wpdmtpextensions = []
+ws2bth = []
+ws2spi = []
+ws2tcpip = []
+wtsapi32 = []
+xinput = []
+#vc
+excpt = []
+limits = []
+vadefs = []
+vcruntime = []
+#winrt
+activation = []
+hstring = []
+inspectable = []
+roapi = []
+robuffer = []
+roerrorapi = []
+winstring = []
diff --git a/third_party/rust/chromium_crates_io/vendor/winapi-0.3.9/LICENSE-APACHE b/third_party/rust/chromium_crates_io/vendor/winapi-0.3.9/LICENSE-APACHE
new file mode 100644
index 000000000000..8dada3edaf50
--- /dev/null
+++ b/third_party/rust/chromium_crates_io/vendor/winapi-0.3.9/LICENSE-APACHE
@@ -0,0 +1,201 @@
+ Apache License
+ Version 2.0, January 2004
+ http://www.apache.org/licenses/
+
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+ 1. Definitions.
+
+ "License" shall mean the terms and conditions for use, reproduction,
+ and distribution as defined by Sections 1 through 9 of this document.
+
+ "Licensor" shall mean the copyright owner or entity authorized by
+ the copyright owner that is granting the License.
+
+ "Legal Entity" shall mean the union of the acting entity and all
+ other entities that control, are controlled by, or are under common
+ control with that entity. For the purposes of this definition,
+ "control" means (i) the power, direct or indirect, to cause the
+ direction or management of such entity, whether by contract or
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
+ outstanding shares, or (iii) beneficial ownership of such entity.
+
+ "You" (or "Your") shall mean an individual or Legal Entity
+ exercising permissions granted by this License.
+
+ "Source" form shall mean the preferred form for making modifications,
+ including but not limited to software source code, documentation
+ source, and configuration files.
+
+ "Object" form shall mean any form resulting from mechanical
+ transformation or translation of a Source form, including but
+ not limited to compiled object code, generated documentation,
+ and conversions to other media types.
+
+ "Work" shall mean the work of authorship, whether in Source or
+ Object form, made available under the License, as indicated by a
+ copyright notice that is included in or attached to the work
+ (an example is provided in the Appendix below).
+
+ "Derivative Works" shall mean any work, whether in Source or Object
+ form, that is based on (or derived from) the Work and for which the
+ editorial revisions, annotations, elaborations, or other modifications
+ represent, as a whole, an original work of authorship. For the purposes
+ of this License, Derivative Works shall not include works that remain
+ separable from, or merely link (or bind by name) to the interfaces of,
+ the Work and Derivative Works thereof.
+
+ "Contribution" shall mean any work of authorship, including
+ the original version of the Work and any modifications or additions
+ to that Work or Derivative Works thereof, that is intentionally
+ submitted to Licensor for inclusion in the Work by the copyright owner
+ or by an individual or Legal Entity authorized to submit on behalf of
+ the copyright owner. For the purposes of this definition, "submitted"
+ means any form of electronic, verbal, or written communication sent
+ to the Licensor or its representatives, including but not limited to
+ communication on electronic mailing lists, source code control systems,
+ and issue tracking systems that are managed by, or on behalf of, the
+ Licensor for the purpose of discussing and improving the Work, but
+ excluding communication that is conspicuously marked or otherwise
+ designated in writing by the copyright owner as "Not a Contribution."
+
+ "Contributor" shall mean Licensor and any individual or Legal Entity
+ on behalf of whom a Contribution has been received by Licensor and
+ subsequently incorporated within the Work.
+
+ 2. Grant of Copyright License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ copyright license to reproduce, prepare Derivative Works of,
+ publicly display, publicly perform, sublicense, and distribute the
+ Work and such Derivative Works in Source or Object form.
+
+ 3. Grant of Patent License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ (except as stated in this section) patent license to make, have made,
+ use, offer to sell, sell, import, and otherwise transfer the Work,
+ where such license applies only to those patent claims licensable
+ by such Contributor that are necessarily infringed by their
+ Contribution(s) alone or by combination of their Contribution(s)
+ with the Work to which such Contribution(s) was submitted. If You
+ institute patent litigation against any entity (including a
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
+ or a Contribution incorporated within the Work constitutes direct
+ or contributory patent infringement, then any patent licenses
+ granted to You under this License for that Work shall terminate
+ as of the date such litigation is filed.
+
+ 4. Redistribution. You may reproduce and distribute copies of the
+ Work or Derivative Works thereof in any medium, with or without
+ modifications, and in Source or Object form, provided that You
+ meet the following conditions:
+
+ (a) You must give any other recipients of the Work or
+ Derivative Works a copy of this License; and
+
+ (b) You must cause any modified files to carry prominent notices
+ stating that You changed the files; and
+
+ (c) You must retain, in the Source form of any Derivative Works
+ that You distribute, all copyright, patent, trademark, and
+ attribution notices from the Source form of the Work,
+ excluding those notices that do not pertain to any part of
+ the Derivative Works; and
+
+ (d) If the Work includes a "NOTICE" text file as part of its
+ distribution, then any Derivative Works that You distribute must
+ include a readable copy of the attribution notices contained
+ within such NOTICE file, excluding those notices that do not
+ pertain to any part of the Derivative Works, in at least one
+ of the following places: within a NOTICE text file distributed
+ as part of the Derivative Works; within the Source form or
+ documentation, if provided along with the Derivative Works; or,
+ within a display generated by the Derivative Works, if and
+ wherever such third-party notices normally appear. The contents
+ of the NOTICE file are for informational purposes only and
+ do not modify the License. You may add Your own attribution
+ notices within Derivative Works that You distribute, alongside
+ or as an addendum to the NOTICE text from the Work, provided
+ that such additional attribution notices cannot be construed
+ as modifying the License.
+
+ You may add Your own copyright statement to Your modifications and
+ may provide additional or different license terms and conditions
+ for use, reproduction, or distribution of Your modifications, or
+ for any such Derivative Works as a whole, provided Your use,
+ reproduction, and distribution of the Work otherwise complies with
+ the conditions stated in this License.
+
+ 5. Submission of Contributions. Unless You explicitly state otherwise,
+ any Contribution intentionally submitted for inclusion in the Work
+ by You to the Licensor shall be under the terms and conditions of
+ this License, without any additional terms or conditions.
+ Notwithstanding the above, nothing herein shall supersede or modify
+ the terms of any separate license agreement you may have executed
+ with Licensor regarding such Contributions.
+
+ 6. Trademarks. This License does not grant permission to use the trade
+ names, trademarks, service marks, or product names of the Licensor,
+ except as required for reasonable and customary use in describing the
+ origin of the Work and reproducing the content of the NOTICE file.
+
+ 7. Disclaimer of Warranty. Unless required by applicable law or
+ agreed to in writing, Licensor provides the Work (and each
+ Contributor provides its Contributions) on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ implied, including, without limitation, any warranties or conditions
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+ PARTICULAR PURPOSE. You are solely responsible for determining the
+ appropriateness of using or redistributing the Work and assume any
+ risks associated with Your exercise of permissions under this License.
+
+ 8. Limitation of Liability. In no event and under no legal theory,
+ whether in tort (including negligence), contract, or otherwise,
+ unless required by applicable law (such as deliberate and grossly
+ negligent acts) or agreed to in writing, shall any Contributor be
+ liable to You for damages, including any direct, indirect, special,
+ incidental, or consequential damages of any character arising as a
+ result of this License or out of the use or inability to use the
+ Work (including but not limited to damages for loss of goodwill,
+ work stoppage, computer failure or malfunction, or any and all
+ other commercial damages or losses), even if such Contributor
+ has been advised of the possibility of such damages.
+
+ 9. Accepting Warranty or Additional Liability. While redistributing
+ the Work or Derivative Works thereof, You may choose to offer,
+ and charge a fee for, acceptance of support, warranty, indemnity,
+ or other liability obligations and/or rights consistent with this
+ License. However, in accepting such obligations, You may act only
+ on Your own behalf and on Your sole responsibility, not on behalf
+ of any other Contributor, and only if You agree to indemnify,
+ defend, and hold each Contributor harmless for any liability
+ incurred by, or claims asserted against, such Contributor by reason
+ of your accepting any such warranty or additional liability.
+
+ END OF TERMS AND CONDITIONS
+
+ APPENDIX: How to apply the Apache License to your work.
+
+ To apply the Apache License to your work, attach the following
+ boilerplate notice, with the fields enclosed by brackets "{}"
+ replaced with your own identifying information. (Don't include
+ the brackets!) The text should be enclosed in the appropriate
+ comment syntax for the file format. We also recommend that a
+ file or class name and description of purpose be included on the
+ same "printed page" as the copyright notice for easier
+ identification within third-party archives.
+
+ Copyright {yyyy} {name of copyright owner}
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
diff --git a/third_party/rust/chromium_crates_io/vendor/winapi-0.3.9/LICENSE-MIT b/third_party/rust/chromium_crates_io/vendor/winapi-0.3.9/LICENSE-MIT
new file mode 100644
index 000000000000..6f1b4c850cd2
--- /dev/null
+++ b/third_party/rust/chromium_crates_io/vendor/winapi-0.3.9/LICENSE-MIT
@@ -0,0 +1,19 @@
+Copyright (c) 2015-2018 The winapi-rs Developers
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
diff --git a/third_party/rust/chromium_crates_io/vendor/winapi-0.3.9/README.md b/third_party/rust/chromium_crates_io/vendor/winapi-0.3.9/README.md
new file mode 100644
index 000000000000..18664493332b
--- /dev/null
+++ b/third_party/rust/chromium_crates_io/vendor/winapi-0.3.9/README.md
@@ -0,0 +1,90 @@
+# winapi-rs
+[![Build status](https://github.com/retep998/winapi-rs/workflows/Rust/badge.svg)](https://github.com/retep998/winapi-rs/actions)
+[![Build status](https://ci.appveyor.com/api/projects/status/i47oonf5e7qm5utq/branch/0.3?svg=true)](https://ci.appveyor.com/project/retep998/winapi-rs/branch/0.3)
+[![Build Status](https://travis-ci.org/retep998/winapi-rs.svg?branch=0.3)](https://travis-ci.org/retep998/winapi-rs)
+[![Gitter](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/retep998/winapi-rs)
+[![Crates.io](https://img.shields.io/crates/v/winapi.svg)](https://crates.io/crates/winapi)
+![Lines of Code](https://tokei.rs/b1/github/retep998/winapi-rs)
+![100% unsafe](https://img.shields.io/badge/unsafe-100%25-blue.svg)
+[![Open issues](https://img.shields.io/github/issues-raw/retep998/winapi-rs.svg)](https://github.com/retep998/winapi-rs/issues)
+[![License](https://img.shields.io/crates/l/winapi.svg)](https://github.com/retep998/winapi-rs)
+
+
+[Documentation](https://docs.rs/winapi/)
+
+Official communication channel: #windows-dev on the [Rust Community Discord](https://discord.gg/aVESxV8)
+
+This crate provides raw FFI bindings to all of Windows API. They are gathered by hand using the Windows 10 SDK from Microsoft. I aim to replace all existing Windows FFI in other crates with this crate through the "[Embrace, extend, and extinguish](https://en.wikipedia.org/wiki/Embrace,_extend,_and_extinguish)" technique.
+
+If this crate is missing something you need, feel free to create an issue, open a pull request, or contact me via [other means](https://www.rustaceans.org/retep998).
+
+This crate depends on Rust 1.6 or newer on Windows. On other platforms this crate is a no-op and should compile with Rust 1.2 or newer.
+
+## Frequently asked questions ##
+
+### How do I create an instance of a union?
+
+Use `std::mem::zeroed()` to create an instance of the union, and then assign the value you want using one of the variant methods.
+
+### Why am I getting errors about unresolved imports?
+
+Each module is gated on a feature flag, so you must enable the appropriate feature to gain access to those items. For example, if you want to use something from `winapi::um::winuser` you must enable the `winuser` feature.
+
+### How do I know which module an item is defined in?
+
+You can use the search functionality in the [documentation](https://docs.rs/winapi/) to find where items are defined.
+
+### Why is there no documentation on how to use anything?
+
+This crate is nothing more than raw bindings to Windows API. If you wish to know how to use the various functionality in Windows API, you can look up the various items on [MSDN](https://msdn.microsoft.com/en-us/library/windows/desktop/aa906039) which is full of detailed documentation.
+
+### Can I use this library in `no_std` projects?
+
+Yes, absolutely! By default the `std` feature of `winapi` is disabled, allowing you to write Windows applications using nothing but `core` and `winapi`.
+
+### Why is `winapi`'s `HANDLE` incompatible with `std`'s `HANDLE`?
+
+Because `winapi` does not depend on `std` by default, it has to define `c_void` itself instead of using `std::os::raw::c_void`. However, if you enable the `std` feature of `winapi` then it will re-export `c_void` from `std` and cause `winapi`'s `HANDLE` to be the same type as `std`'s `HANDLE`.
+
+### Should I still use those `-sys` crates such as `kernel32-sys`?
+
+No. Those crates are a legacy of how `winapi` 0.2 was organized. Starting with `winapi` 0.3 all definitions are directly in `winapi` itself, and so there is no longer any need to use those `-sys` crates.
+
+## Example ##
+
+Cargo.toml:
+```toml
+[target.'cfg(windows)'.dependencies]
+winapi = { version = "0.3", features = ["winuser"] }
+```
+main.rs:
+```Rust
+#[cfg(windows)] extern crate winapi;
+use std::io::Error;
+
+#[cfg(windows)]
+fn print_message(msg: &str) -> Result {
+ use std::ffi::OsStr;
+ use std::iter::once;
+ use std::os::windows::ffi::OsStrExt;
+ use std::ptr::null_mut;
+ use winapi::um::winuser::{MB_OK, MessageBoxW};
+ let wide: Vec = OsStr::new(msg).encode_wide().chain(once(0)).collect();
+ let ret = unsafe {
+ MessageBoxW(null_mut(), wide.as_ptr(), wide.as_ptr(), MB_OK)
+ };
+ if ret == 0 { Err(Error::last_os_error()) }
+ else { Ok(ret) }
+}
+#[cfg(not(windows))]
+fn print_message(msg: &str) -> Result<(), Error> {
+ println!("{}", msg);
+ Ok(())
+}
+fn main() {
+ print_message("Hello, world!").unwrap();
+}
+```
+
+## Financial Support
+Do you use `winapi` in your projects? If so, you may be interested in financially supporting me on [Patreon](https://www.patreon.com/retep998). Companies in particular are especially encouraged to donate (I'm looking at you [Microsoft](https://github.com/Azure/iotedge/tree/master/edgelet)).
diff --git a/third_party/rust/chromium_crates_io/vendor/winapi-0.3.9/build.rs b/third_party/rust/chromium_crates_io/vendor/winapi-0.3.9/build.rs
new file mode 100644
index 000000000000..622050495318
--- /dev/null
+++ b/third_party/rust/chromium_crates_io/vendor/winapi-0.3.9/build.rs
@@ -0,0 +1,527 @@
+// Licensed under the Apache License, Version 2.0
+// or the MIT license
+// , at your option.
+// All files in the project carrying such notice may not be copied, modified, or distributed
+// except according to those terms.
+use std::cell::Cell;
+use std::collections::HashMap;
+use std::env::var;
+// (header name, &[header dependencies], &[library dependencies])
+const DATA: &'static [(&'static str, &'static [&'static str], &'static [&'static str])] = &[
+ // km
+ ("d3dkmthk", &["basetsd", "d3dukmdt", "minwindef", "ntdef", "windef"], &[]),
+ // mmos
+ // shared
+ ("basetsd", &[], &[]),
+ ("bcrypt", &["minwindef", "winnt"], &["bcrypt"]),
+ ("bthdef", &["bthsdpdef", "guiddef", "minwindef", "ntdef"], &[]),
+ ("bthioctl", &["bthdef", "bthsdpdef", "minwindef", "ntdef", "winioctl"], &[]),
+ ("bthsdpdef", &["guiddef", "minwindef", "ntdef"], &[]),
+ ("bugcodes", &["ntdef"], &[]),
+ ("cderr", &["minwindef"], &[]),
+ ("cfg", &["minwindef"], &[]),
+ ("d3d9", &["basetsd", "d3d9caps", "d3d9types", "guiddef", "minwindef", "unknwnbase", "windef", "wingdi", "winnt"], &["d3d9"]),
+ ("d3d9caps", &["d3d9types", "guiddef", "minwindef", "winnt"], &[]),
+ ("d3d9types", &["basetsd", "guiddef", "minwindef", "windef", "winnt"], &[]),
+ ("d3dkmdt", &["basetsd", "minwindef", "ntdef"], &[]),
+ ("d3dukmdt", &["basetsd", "guiddef", "minwindef", "ntdef"], &[]),
+ ("dcomptypes", &["dxgitype", "minwindef", "winnt"], &[]),
+ ("devguid", &[], &[]),
+ ("devpkey", &["devpropdef"], &[]),
+ ("devpropdef", &["guiddef", "minwindef", "winnt"], &[]),
+ ("dinputd", &[], &[]),
+ ("dxgi", &["basetsd", "dxgiformat", "dxgitype", "guiddef", "minwindef", "unknwnbase", "windef", "winnt"], &["dxgi"]),
+ ("dxgi1_2", &["basetsd", "dxgi", "dxgiformat", "dxgitype", "guiddef", "minwinbase", "minwindef", "unknwnbase", "windef", "winnt"], &[]),
+ ("dxgi1_3", &["dxgi", "dxgi1_2", "dxgiformat", "guiddef", "minwindef", "unknwnbase", "windef", "winnt"], &["dxgi"]),
+ ("dxgi1_4", &["basetsd", "dxgi1_2", "dxgi1_3", "dxgiformat", "dxgitype", "guiddef", "minwindef", "unknwnbase", "winnt"], &[]),
+ ("dxgi1_5", &["basetsd", "dxgi", "dxgi1_2", "dxgi1_3", "dxgi1_4", "dxgiformat", "minwindef", "unknwnbase", "winnt"], &[]),
+ ("dxgi1_6", &["basetsd", "dxgi1_2", "dxgi1_4", "dxgi1_5", "dxgitype", "guiddef", "minwindef", "windef", "winnt"], &[]),
+ ("dxgiformat", &[], &[]),
+ ("dxgitype", &["d3d9types", "dxgiformat", "minwindef"], &[]),
+ ("enclaveapi", &["basetsd", "minwinbase", "minwindef", "ntdef", "winnt"], &["kernel32"]),
+ ("evntprov", &["basetsd", "guiddef", "minwindef", "winnt"], &["advapi32"]),
+ ("evntrace", &["basetsd", "evntcons", "evntprov", "guiddef", "handleapi", "minwindef", "timezoneapi", "vadefs", "winnt", "wmistr"], &["advapi32"]),
+ ("guiddef", &[], &[]),
+ ("hidclass", &["guiddef", "minwindef", "winioctl", "winnt"], &[]),
+ ("hidpi", &["hidusage", "minwindef", "ntdef", "ntstatus", "winnt"], &["hid"]),
+ ("hidsdi", &["guiddef", "hidpi", "minwindef", "winnt"], &["hid"]),
+ ("hidusage", &["minwindef"], &[]),
+ ("ifdef", &["basetsd", "guiddef", "ntdef"], &[]),
+ ("ifmib", &["ifdef", "ipifcons", "minwindef", "ntdef"], &[]),
+ ("in6addr", &["minwindef"], &[]),
+ ("inaddr", &["minwindef"], &[]),
+ ("intsafe", &[], &[]),
+ ("ipifcons", &["minwindef"], &[]),
+ ("ipmib", &["ifdef", "ifmib", "minwindef", "nldef", "ntdef"], &[]),
+ ("iprtrmib", &["ipmib", "minwindef", "ntdef"], &[]),
+ ("ks", &[], &[]),
+ ("ksmedia", &["minwindef"], &[]),
+ ("ktmtypes", &["guiddef", "minwindef", "winnt"], &[]),
+ ("lmcons", &["minwindef", "winnt"], &[]),
+ ("minwindef", &["basetsd", "ntdef"], &[]),
+ ("mmreg", &["guiddef", "minwindef"], &[]),
+ ("mprapidef", &[], &[]),
+ ("mstcpip", &["basetsd", "guiddef", "in6addr", "inaddr", "minwindef", "winnt", "ws2def"], &["ntdll"]),
+ ("mswsockdef", &["minwindef", "winnt", "ws2def"], &[]),
+ ("netioapi", &["basetsd", "guiddef", "ifdef", "ipifcons", "minwindef", "nldef", "ntddndis", "ntdef", "ws2def", "ws2ipdef"], &["iphlpapi"]),
+ ("nldef", &["basetsd", "minwindef", "ntdef"], &[]),
+ ("ntddndis", &["ifdef", "minwindef"], &[]),
+ ("ntddscsi", &["basetsd", "minwindef", "ntdef", "winioctl", "winnt"], &[]),
+ ("ntddser", &["devpropdef"], &[]),
+ ("ntdef", &["basetsd", "guiddef"], &[]),
+ ("ntstatus", &["ntdef"], &[]),
+ ("qos", &["minwindef"], &[]),
+ ("rpc", &[], &[]),
+ ("rpcdce", &["guiddef", "minwindef", "rpc"], &[]),
+ ("rpcndr", &[], &[]),
+ ("sddl", &["basetsd", "minwindef", "winnt"], &["advapi32"]),
+ ("sspi", &["basetsd", "guiddef", "minwindef", "subauth", "wincred", "winnt"], &["credui", "secur32"]),
+ ("stralign", &["vcruntime", "winnt"], &["kernel32"]),
+ ("tcpestats", &["basetsd", "ntdef"], &[]),
+ ("tcpmib", &["basetsd", "in6addr", "minwindef", "ntdef"], &[]),
+ ("transportsettingcommon", &["guiddef"], &[]),
+ ("tvout", &["guiddef", "minwindef"], &[]),
+ ("udpmib", &["basetsd", "in6addr", "minwindef", "ntdef"], &[]),
+ ("usb", &["minwindef", "usbspec", "winnt"], &[]),
+ ("usbioctl", &["basetsd", "guiddef", "minwindef", "ntdef", "usb", "usbiodef", "usbspec", "winioctl"], &[]),
+ ("usbiodef", &["guiddef", "minwindef", "winioctl", "winnt"], &[]),
+ ("usbscan", &["ntdef", "winioctl"], &[]),
+ ("usbspec", &["basetsd", "guiddef", "minwindef", "winnt"], &[]),
+ ("windef", &["minwindef", "winnt"], &[]),
+ ("windot11", &["basetsd", "minwindef", "ntddndis", "winnt", "wlantypes"], &[]),
+ ("windowsx", &["minwindef"], &[]),
+ ("winerror", &["minwindef", "wtypesbase"], &[]),
+ ("winusbio", &["minwindef", "usb"], &[]),
+ ("wlantypes", &["basetsd", "minwindef"], &[]),
+ ("wmistr", &["basetsd", "guiddef", "minwindef", "winnt"], &[]),
+ ("wnnc", &["minwindef"], &[]),
+ ("ws2def", &["basetsd", "guiddef", "inaddr", "minwindef", "vcruntime", "winnt"], &[]),
+ ("ws2ipdef", &["in6addr", "inaddr", "minwindef", "ws2def"], &[]),
+ ("wtypes", &["guiddef", "minwindef", "ntdef", "rpcndr", "wingdi", "wtypesbase"], &[]),
+ ("wtypesbase", &["minwindef", "rpcndr", "winnt"], &[]),
+ // ucrt
+ ("corecrt", &[], &[]),
+ // um
+ ("accctrl", &["guiddef", "minwindef", "winbase", "winnt"], &[]),
+ ("aclapi", &["accctrl", "guiddef", "minwindef", "winnt"], &["advapi32"]),
+ ("adhoc", &["guiddef", "minwindef", "unknwnbase", "winnt"], &[]),
+ ("appmgmt", &["guiddef", "minwindef", "winnt"], &["advapi32"]),
+ ("audioclient", &["audiosessiontypes", "basetsd", "guiddef", "minwindef", "mmreg", "strmif", "unknwnbase", "winerror", "winnt", "wtypesbase"], &[]),
+ ("audiosessiontypes", &["minwindef"], &[]),
+ ("avrt", &["guiddef", "minwindef", "winnt"], &["avrt"]),
+ ("bits", &["basetsd", "guiddef", "minwindef", "unknwnbase", "winnt"], &[]),
+ ("bits10_1", &["basetsd", "bits", "bits2_0", "bits3_0", "bits5_0", "minwindef", "winnt"], &[]),
+ ("bits1_5", &["basetsd", "bits", "rpcndr", "winnt"], &[]),
+ ("bits2_0", &["basetsd", "bits", "bits1_5", "minwindef", "winnt"], &[]),
+ ("bits2_5", &["minwindef", "rpcndr", "unknwnbase", "winnt"], &[]),
+ ("bits3_0", &["basetsd", "bits", "bits2_0", "guiddef", "minwindef", "unknwnbase", "winnt"], &[]),
+ ("bits4_0", &["basetsd", "bits3_0", "minwindef", "unknwnbase", "winnt"], &[]),
+ ("bits5_0", &["basetsd", "bits1_5", "bits3_0", "bits4_0", "guiddef", "minwindef", "winnt"], &[]),
+ ("bitscfg", &["guiddef", "oaidl", "unknwnbase", "winnt", "wtypes"], &["oleaut32"]),
+ ("bitsmsg", &["minwindef"], &[]),
+ ("bluetoothapis", &["bthdef", "bthsdpdef", "guiddef", "minwinbase", "minwindef", "windef", "winnt"], &["bthprops"]),
+ ("bluetoothleapis", &["bthledef", "minwindef", "winerror", "winnt"], &["bluetoothapis"]),
+ ("bthledef", &["basetsd", "guiddef", "minwindef", "winnt"], &[]),
+ ("cfgmgr32", &["basetsd", "cfg", "devpropdef", "guiddef", "minwindef", "winnt", "winreg"], &["cfgmgr32"]),
+ ("cguid", &[], &[]),
+ ("combaseapi", &["basetsd", "guiddef", "minwindef", "objidl", "objidlbase", "propidl", "rpcdce", "unknwnbase", "winnt", "wtypesbase"], &["ole32"]),
+ ("coml2api", &["minwindef"], &[]),
+ ("commapi", &["minwinbase", "minwindef", "winbase", "winnt"], &["kernel32"]),
+ ("commctrl", &["basetsd", "commoncontrols", "guiddef", "minwinbase", "minwindef", "vcruntime", "windef", "winnt", "winuser"], &["comctl32"]),
+ ("commdlg", &["basetsd", "minwindef", "prsht", "unknwnbase", "windef", "wingdi", "winnt", "winuser"], &["comdlg32"]),
+ ("commoncontrols", &["commctrl", "guiddef", "minwindef", "unknwnbase", "windef", "winnt"], &["comctl32"]),
+ ("consoleapi", &["minwindef", "wincon", "wincontypes", "winnt"], &["kernel32"]),
+ ("corsym", &["basetsd", "objidlbase", "unknwnbase", "winnt"], &[]),
+ ("d2d1", &["basetsd", "d2dbasetypes", "d3dcommon", "dcommon", "dwrite", "dxgi", "guiddef", "minwindef", "unknwnbase", "wincodec", "windef", "winnt"], &["d2d1"]),
+ ("d2d1_1", &["basetsd", "d2d1", "d2d1effectauthor", "d2dbasetypes", "dcommon", "documenttarget", "dwrite", "dxgi", "dxgiformat", "guiddef", "minwindef", "objidlbase", "unknwnbase", "wincodec", "winnt"], &["d2d1"]),
+ ("d2d1_2", &["d2d1", "d2d1_1", "dxgi", "minwindef", "winnt"], &["d2d1"]),
+ ("d2d1_3", &["basetsd", "d2d1", "d2d1_1", "d2d1_2", "d2d1effects", "d2d1svg", "dcommon", "dwrite", "dxgi", "dxgitype", "minwindef", "ntdef", "objidlbase", "wincodec", "winerror"], &["d2d1"]),
+ ("d2d1effectauthor", &["basetsd", "d2d1", "d2d1_1", "d2dbasetypes", "d3dcommon", "dxgiformat", "guiddef", "minwindef", "ntdef", "unknwnbase", "wincodec"], &[]),
+ ("d2d1effects", &[], &[]),
+ ("d2d1effects_1", &[], &[]),
+ ("d2d1effects_2", &[], &[]),
+ ("d2d1svg", &["basetsd", "d2d1", "d2d1_1", "guiddef", "minwindef", "ntdef", "objidlbase", "winerror"], &[]),
+ ("d2dbasetypes", &["d3d9types", "dcommon"], &[]),
+ ("d3d", &[], &[]),
+ ("d3d10", &["d3dcommon"], &[]),
+ ("d3d10_1", &[], &[]),
+ ("d3d10_1shader", &[], &[]),
+ ("d3d10effect", &[], &[]),
+ ("d3d10misc", &[], &[]),
+ ("d3d10sdklayers", &[], &[]),
+ ("d3d10shader", &["d3d10", "d3dcommon", "minwindef", "unknwnbase", "winnt"], &[]),
+ ("d3d11", &["basetsd", "d3dcommon", "dxgi", "dxgiformat", "dxgitype", "guiddef", "minwindef", "unknwnbase", "windef", "winnt"], &["d3d11"]),
+ ("d3d11_1", &["basetsd", "d3d11", "d3dcommon", "dxgiformat", "dxgitype", "guiddef", "minwindef", "unknwnbase", "winnt"], &[]),
+ ("d3d11_2", &["basetsd", "d3d11", "d3d11_1", "dxgiformat", "minwindef", "winnt"], &[]),
+ ("d3d11_3", &[], &[]),
+ ("d3d11_4", &[], &[]),
+ ("d3d11on12", &["d3d11", "d3d12", "d3dcommon", "guiddef", "minwindef", "unknwnbase", "winnt"], &["d3d11"]),
+ ("d3d11sdklayers", &["basetsd", "d3d11", "dxgi", "minwindef", "unknwnbase", "winnt"], &[]),
+ ("d3d11shader", &["basetsd", "d3dcommon", "minwindef", "unknwnbase", "winnt"], &[]),
+ ("d3d11tokenizedprogramformat", &["minwindef"], &[]),
+ ("d3d12", &["basetsd", "d3dcommon", "dxgiformat", "dxgitype", "guiddef", "minwinbase", "minwindef", "unknwnbase", "windef", "winnt"], &["d3d12"]),
+ ("d3d12sdklayers", &["basetsd", "d3d12", "minwindef", "unknwnbase", "winnt"], &[]),
+ ("d3d12shader", &["basetsd", "d3dcommon", "minwindef", "unknwnbase", "winnt"], &[]),
+ ("d3dcommon", &["basetsd", "minwindef", "unknwnbase", "winnt"], &[]),
+ ("d3dcompiler", &["basetsd", "d3d11shader", "d3dcommon", "guiddef", "minwindef", "winnt"], &["d3dcompiler"]),
+ ("d3dcsx", &[], &[]),
+ ("d3dx10core", &[], &[]),
+ ("d3dx10math", &[], &[]),
+ ("d3dx10mesh", &[], &[]),
+ ("datetimeapi", &["minwinbase", "minwindef", "winnt"], &["kernel32"]),
+ ("davclnt", &["minwindef", "winnt"], &["netapi32"]),
+ ("dbghelp", &["basetsd", "guiddef", "minwindef", "vcruntime", "winnt"], &["dbghelp"]),
+ ("dbt", &["basetsd", "guiddef", "minwindef", "winnt", "winuser"], &[]),
+ ("dcommon", &["basetsd", "dxgiformat", "minwindef", "windef"], &[]),
+ ("dcomp", &["d2d1", "d2d1_1", "d2d1effects", "d2dbasetypes", "d3d9types", "d3dcommon", "dcompanimation", "dcomptypes", "dxgi", "dxgi1_2", "dxgiformat", "guiddef", "minwinbase", "minwindef", "ntdef", "unknwnbase", "windef"], &["dcomp"]),
+ ("dcompanimation", &["ntdef", "unknwnbase"], &[]),
+ ("dde", &["basetsd", "minwindef"], &["user32"]),
+ ("ddraw", &[], &[]),
+ ("ddrawi", &[], &[]),
+ ("ddrawint", &[], &[]),
+ ("debugapi", &["minwinbase", "minwindef", "winnt"], &["kernel32"]),
+ ("devicetopology", &["guiddef", "minwindef", "unknwnbase", "windef", "winnt", "wtypes"], &[]),
+ ("dinput", &[], &[]),
+ ("dispex", &["basetsd", "guiddef", "minwindef", "oaidl", "servprov", "unknwnbase", "winerror", "winnt", "wtypes"], &[]),
+ ("dmksctl", &[], &[]),
+ ("dmusicc", &[], &[]),
+ ("docobj", &["guiddef", "minwindef", "oaidl", "unknwnbase", "winnt"], &[]),
+ ("documenttarget", &["basetsd", "guiddef", "ntdef", "unknwnbase"], &[]),
+ ("dot1x", &["eaptypes", "guiddef", "l2cmn", "minwindef", "winnt"], &[]),
+ ("dpa_dsa", &["basetsd", "minwindef", "winnt"], &["comctl32"]),
+ ("dpapi", &["minwindef", "wincrypt", "windef", "winnt"], &["crypt32"]),
+ ("dsgetdc", &["guiddef", "minwindef", "ntsecapi", "winnt", "ws2def"], &["netapi32"]),
+ ("dsound", &["guiddef", "minwindef", "mmsystem", "unknwnbase", "windef", "winerror", "winnt"], &["dsound"]),
+ ("dsrole", &["guiddef", "minwindef", "winnt"], &["netapi32"]),
+ ("dvp", &[], &[]),
+ ("dwmapi", &["basetsd", "minwindef", "uxtheme", "windef", "winnt"], &["dwmapi"]),
+ ("dwrite", &["basetsd", "d2d1", "dcommon", "guiddef", "minwindef", "unknwnbase", "windef", "winerror", "wingdi", "winnt"], &["dwrite"]),
+ ("dwrite_1", &["basetsd", "dcommon", "dwrite", "minwindef", "winnt"], &[]),
+ ("dwrite_2", &["basetsd", "d3d9types", "dcommon", "dwrite", "dwrite_1", "minwindef", "unknwnbase", "winnt"], &[]),
+ ("dwrite_3", &["basetsd", "dcommon", "dwrite", "dwrite_1", "dwrite_2", "minwindef", "unknwnbase", "wingdi", "winnt"], &[]),
+ ("dxdiag", &[], &[]),
+ ("dxfile", &[], &[]),
+ ("dxgidebug", &["basetsd", "guiddef", "minwindef", "unknwnbase", "winnt"], &["dxgi"]),
+ ("dxva2api", &["basetsd", "d3d9", "d3d9types", "guiddef", "minwindef", "unknwnbase", "windef", "winnt"], &["dxva2"]),
+ ("dxvahd", &["d3d9", "d3d9types", "guiddef", "minwindef", "unknwnbase", "windef", "winnt"], &["dxva2"]),
+ ("eaptypes", &["guiddef", "minwindef", "winnt"], &[]),
+ ("endpointvolume", &["basetsd", "guiddef", "minwindef", "unknwnbase", "winnt"], &[]),
+ ("errhandlingapi", &["basetsd", "minwindef", "winnt"], &["kernel32"]),
+ ("evntcons", &["basetsd", "evntprov", "evntrace", "guiddef", "minwindef", "winnt"], &["advapi32"]),
+ ("exdisp", &["basetsd", "docobj", "oaidl", "ocidl", "winnt", "wtypes"], &[]),
+ ("fibersapi", &["minwindef", "winnt"], &["kernel32"]),
+ ("fileapi", &["minwinbase", "minwindef", "winnt"], &["kernel32"]),
+ ("functiondiscoverykeys_devpkey", &["wtypes"], &[]),
+ ("gl-gl", &[], &["opengl32"]),
+ ("handleapi", &["minwindef", "winnt"], &["kernel32"]),
+ ("heapapi", &["basetsd", "minwinbase", "minwindef", "winnt"], &["kernel32"]),
+ ("highlevelmonitorconfigurationapi", &["minwindef", "physicalmonitorenumerationapi", "winnt"], &["dxva2"]),
+ ("http", &["guiddef", "minwinbase", "minwindef", "sspi", "winnt", "ws2def"], &["httpapi"]),
+ ("imm", &["minwindef", "windef"], &["imm32"]),
+ ("interlockedapi", &["minwindef", "winnt"], &["kernel32"]),
+ ("ioapiset", &["basetsd", "minwinbase", "minwindef", "winnt"], &["kernel32"]),
+ ("ipexport", &["basetsd", "in6addr", "ntdef"], &[]),
+ ("iphlpapi", &["basetsd", "ifdef", "ifmib", "ipexport", "ipmib", "iprtrmib", "iptypes", "minwinbase", "minwindef", "ntdef", "tcpestats", "tcpmib", "udpmib", "ws2def", "ws2ipdef"], &["iphlpapi"]),
+ ("iptypes", &["basetsd", "corecrt", "guiddef", "ifdef", "ipifcons", "minwindef", "nldef", "ntdef", "ws2def"], &[]),
+ ("jobapi", &["minwindef", "winnt"], &["kernel32"]),
+ ("jobapi2", &["basetsd", "minwinbase", "minwindef", "ntdef", "winnt"], &["kernel32"]),
+ ("knownfolders", &[], &[]),
+ ("ktmw32", &["guiddef", "minwinbase", "minwindef", "winnt"], &["ktmw32"]),
+ ("l2cmn", &["guiddef", "minwindef", "winnt"], &[]),
+ ("libloaderapi", &["basetsd", "minwindef", "winnt"], &["kernel32", "user32"]),
+ ("lmaccess", &["basetsd", "lmcons", "minwindef", "winnt"], &["netapi32"]),
+ ("lmalert", &["lmcons", "minwindef", "winnt"], &["netapi32"]),
+ ("lmapibuf", &["lmcons", "minwindef"], &["netapi32"]),
+ ("lmat", &["basetsd", "lmcons", "minwindef", "winnt"], &["netapi32"]),
+ ("lmdfs", &["guiddef", "lmcons", "minwindef", "winnt"], &["netapi32"]),
+ ("lmerrlog", &["minwindef", "winnt"], &[]),
+ ("lmjoin", &["lmcons", "minwindef", "wincrypt", "winnt"], &["netapi32"]),
+ ("lmmsg", &["lmcons", "minwindef", "winnt"], &["netapi32"]),
+ ("lmremutl", &["lmcons", "minwindef", "winnt"], &["netapi32"]),
+ ("lmrepl", &["lmcons", "minwindef", "winnt"], &["netapi32"]),
+ ("lmserver", &["guiddef", "lmcons", "minwindef", "winnt", "winsvc"], &["advapi32", "netapi32"]),
+ ("lmshare", &["basetsd", "guiddef", "lmcons", "minwindef", "winnt"], &["netapi32"]),
+ ("lmstats", &["lmcons", "minwindef", "winnt"], &["netapi32"]),
+ ("lmsvc", &["lmcons", "minwindef", "winnt"], &["netapi32"]),
+ ("lmuse", &["lmcons", "minwindef", "winnt"], &["netapi32"]),
+ ("lmwksta", &["lmcons", "minwindef", "winnt"], &["netapi32"]),
+ ("lowlevelmonitorconfigurationapi", &["minwindef", "physicalmonitorenumerationapi", "winnt"], &["dxva2"]),
+ ("lsalookup", &["guiddef", "minwindef", "ntdef", "winnt"], &["advapi32"]),
+ ("memoryapi", &["basetsd", "minwinbase", "minwindef", "winnt"], &["kernel32"]),
+ ("minschannel", &["guiddef", "minwindef", "wincrypt", "winnt"], &[]),
+ ("minwinbase", &["basetsd", "minwindef", "ntstatus", "winnt"], &[]),
+ ("mmdeviceapi", &["guiddef", "minwindef", "propidl", "propsys", "unknwnbase", "winnt", "wtypes"], &["mmdevapi"]),
+ ("mmeapi", &["basetsd", "imm", "minwindef", "mmsystem", "winnt"], &["winmm"]),
+ ("mmsystem", &["basetsd", "minwindef", "mmreg", "winnt"], &[]),
+ ("msaatext", &[], &[]),
+ ("mscat", &["guiddef", "minwindef", "mssip", "wincrypt", "winnt"], &[]),
+ ("mschapp", &["basetsd", "minwindef", "winnt"], &["advapi32"]),
+ ("mssip", &["guiddef", "minwindef", "mscat", "wincrypt", "winnt"], &["crypt32"]),
+ ("mswsock", &["minwinbase", "minwindef", "mswsockdef", "winnt", "winsock2", "ws2def"], &["mswsock"]),
+ ("namedpipeapi", &["minwinbase", "minwindef", "winnt"], &["advapi32", "kernel32"]),
+ ("namespaceapi", &["minwinbase", "minwindef", "ntdef", "winnt"], &["kernel32"]),
+ ("nb30", &["minwindef", "winnt"], &["netapi32"]),
+ ("ncrypt", &["basetsd", "bcrypt", "minwindef", "winnt"], &["ncrypt"]),
+ ("ntlsa", &["basetsd", "guiddef", "lsalookup", "minwindef", "ntdef", "ntsecapi", "subauth", "winnt"], &["advapi32"]),
+ ("ntsecapi", &["basetsd", "guiddef", "lsalookup", "minwindef", "ntdef", "sspi", "subauth", "winnt"], &["advapi32"]),
+ ("oaidl", &["basetsd", "guiddef", "minwindef", "rpcndr", "unknwnbase", "winnt", "wtypes", "wtypesbase"], &[]),
+ ("objbase", &["combaseapi", "minwindef", "winnt"], &["ole32"]),
+ ("objidl", &["basetsd", "guiddef", "minwindef", "ntdef", "objidlbase", "unknwnbase", "windef", "winnt", "wtypes", "wtypesbase"], &[]),
+ ("objidlbase", &["basetsd", "guiddef", "minwindef", "unknwnbase", "winnt", "wtypesbase"], &[]),
+ ("ocidl", &["guiddef", "minwindef", "ntdef", "oaidl", "unknwnbase", "wtypes", "wtypesbase"], &[]),
+ ("ole2", &["minwindef", "oleidl", "windef", "winnt"], &["ole32"]),
+ ("oleauto", &["basetsd", "minwinbase", "minwindef", "oaidl", "winnt", "wtypes", "wtypesbase"], &["oleaut32"]),
+ ("olectl", &["winerror", "winnt"], &[]),
+ ("oleidl", &["minwindef", "ntdef", "objidl", "unknwnbase", "windef"], &[]),
+ ("opmapi", &["basetsd", "d3d9", "d3d9types", "dxva2api", "guiddef", "minwindef", "unknwnbase", "windef", "winnt"], &["dxva2"]),
+ ("pdh", &["basetsd", "guiddef", "minwindef", "windef", "winnt"], &["pdh"]),
+ ("perflib", &["basetsd", "guiddef", "minwinbase", "minwindef", "winnt"], &["advapi32"]),
+ ("physicalmonitorenumerationapi", &["d3d9", "minwindef", "windef", "winnt"], &["dxva2"]),
+ ("playsoundapi", &["minwindef", "winnt"], &["winmm"]),
+ ("portabledevice", &["basetsd", "wtypes"], &[]),
+ ("portabledeviceapi", &["guiddef", "minwindef", "objidlbase", "portabledevicetypes", "propkeydef", "unknwnbase", "winnt"], &[]),
+ ("portabledevicetypes", &["guiddef", "minwindef", "propidl", "propkeydef", "propsys", "unknwnbase", "winnt", "wtypes"], &[]),
+ ("powerbase", &["minwindef", "winnt", "winuser"], &["powrprof"]),
+ ("powersetting", &["guiddef", "minwindef", "winnt", "winuser"], &["powrprof"]),
+ ("powrprof", &["guiddef", "minwindef", "winnt", "winreg"], &["powrprof"]),
+ ("processenv", &["minwindef", "winnt"], &["kernel32"]),
+ ("processsnapshot", &["basetsd", "minwindef", "winnt"], &["kernel32"]),
+ ("processthreadsapi", &["basetsd", "guiddef", "minwinbase", "minwindef", "winnt"], &["advapi32", "kernel32"]),
+ ("processtopologyapi", &["minwindef", "winnt"], &["kernel32"]),
+ ("profileapi", &["minwindef", "winnt"], &["kernel32"]),
+ ("propidl", &["guiddef", "minwindef", "ntdef", "oaidl", "objidlbase", "unknwnbase", "wtypes", "wtypesbase"], &["ole32"]),
+ ("propkey", &["minwindef", "ntdef", "wtypes"], &[]),
+ ("propkeydef", &["guiddef", "wtypes"], &[]),
+ ("propsys", &["minwindef", "propidl", "propkeydef", "unknwnbase", "winnt", "wtypes"], &[]),
+ ("prsht", &["basetsd", "minwindef", "windef", "winnt", "winuser"], &["comctl32"]),
+ ("psapi", &["basetsd", "minwindef", "winnt"], &["kernel32", "psapi"]),
+ ("realtimeapiset", &["basetsd", "minwindef", "winnt"], &["kernel32"]),
+ ("reason", &["minwindef"], &[]),
+ ("restartmanager", &["minwindef", "winnt"], &["rstrtmgr"]),
+ ("restrictederrorinfo", &["unknwnbase", "winnt", "wtypes"], &[]),
+ ("rmxfguid", &[], &[]),
+ ("rtinfo", &["basetsd"], &[]),
+ ("sapi", &["guiddef", "minwindef", "sapi53", "unknwnbase", "winnt"], &[]),
+ ("sapi51", &["guiddef", "minwindef", "mmreg", "oaidl", "objidlbase", "rpcndr", "servprov", "unknwnbase", "windef", "winnt", "wtypes", "wtypesbase"], &[]),
+ ("sapi53", &["guiddef", "minwindef", "oaidl", "sapi51", "unknwnbase", "urlmon", "winnt", "wtypes"], &[]),
+ ("sapiddk", &["guiddef", "minwindef", "sapi", "sapiddk51", "unknwnbase", "winnt"], &[]),
+ ("sapiddk51", &["guiddef", "minwindef", "mmreg", "oaidl", "objidlbase", "sapi", "unknwnbase", "windef", "winnt"], &[]),
+ ("schannel", &["guiddef", "minwindef", "wincrypt", "windef", "winnt"], &[]),
+ ("securityappcontainer", &["minwindef", "winnt"], &["kernel32"]),
+ ("securitybaseapi", &["guiddef", "minwinbase", "minwindef", "winnt"], &["advapi32", "kernel32"]),
+ ("servprov", &["guiddef", "unknwnbase", "winnt"], &[]),
+ ("setupapi", &["basetsd", "commctrl", "devpropdef", "guiddef", "minwindef", "prsht", "spapidef", "windef", "winnt", "winreg"], &["setupapi"]),
+ ("shellapi", &["basetsd", "guiddef", "minwinbase", "minwindef", "processthreadsapi", "windef", "winnt", "winuser"], &["shell32", "shlwapi"]),
+ ("shellscalingapi", &["minwindef", "windef", "winnt"], &["shcore"]),
+ ("shlobj", &["guiddef", "minwinbase", "minwindef", "shtypes", "windef", "winnt"], &["shell32"]),
+ ("shobjidl", &["guiddef", "minwindef", "propsys", "shobjidl_core", "shtypes", "unknwnbase", "windef", "winnt"], &[]),
+ ("shobjidl_core", &["commctrl", "guiddef", "minwinbase", "minwindef", "objidl", "propkeydef", "propsys", "shtypes", "unknwnbase", "windef", "winnt"], &[]),
+ ("shtypes", &["guiddef", "minwindef", "winnt"], &[]),
+ ("softpub", &[], &[]),
+ ("spapidef", &["minwindef", "winnt"], &[]),
+ ("spellcheck", &["minwindef", "ntdef", "objidlbase", "unknwnbase", "winerror"], &[]),
+ ("sporder", &["guiddef", "minwindef"], &["sporder"]),
+ ("sql", &["sqltypes"], &["odbc32"]),
+ ("sqlext", &["sql", "sqltypes"], &[]),
+ ("sqltypes", &["basetsd", "guiddef", "windef"], &[]),
+ ("sqlucode", &["sqltypes"], &["odbc32"]),
+ ("stringapiset", &["minwindef", "winnls", "winnt"], &["kernel32"]),
+ ("strmif", &["winnt"], &[]),
+ ("subauth", &["minwindef", "winnt"], &[]),
+ ("synchapi", &["basetsd", "minwinbase", "minwindef", "winnt"], &["kernel32", "synchronization"]),
+ ("sysinfoapi", &["basetsd", "minwinbase", "minwindef", "winnt"], &["kernel32"]),
+ ("systemtopologyapi", &["minwindef", "winnt"], &["kernel32"]),
+ ("taskschd", &["minwinbase", "minwindef", "oaidl", "unknwnbase", "winnt", "wtypes"], &[]),
+ ("textstor", &[], &[]),
+ ("threadpoolapiset", &["basetsd", "minwinbase", "minwindef", "winnt"], &["kernel32"]),
+ ("threadpoollegacyapiset", &["minwinbase", "minwindef", "winnt"], &["kernel32"]),
+ ("timeapi", &["minwindef", "mmsystem"], &["winmm"]),
+ ("timezoneapi", &["minwinbase", "minwindef", "winnt"], &["advapi32", "kernel32"]),
+ ("tlhelp32", &["basetsd", "minwindef", "winnt"], &["kernel32"]),
+ ("unknwnbase", &["guiddef", "minwindef", "winnt"], &[]),
+ ("urlhist", &["docobj", "guiddef", "minwindef", "unknwnbase", "winnt", "wtypesbase"], &[]),
+ ("urlmon", &["minwindef", "unknwnbase", "winnt"], &[]),
+ ("userenv", &["minwindef", "winnt", "winreg"], &["userenv"]),
+ ("usp10", &["minwindef", "ntdef", "windef", "winerror", "wingdi", "winnt"], &["usp10"]),
+ ("utilapiset", &["minwindef", "ntdef"], &["kernel32"]),
+ ("uxtheme", &["commctrl", "minwindef", "windef", "wingdi", "winnt"], &["uxtheme"]),
+ ("vsbackup", &["guiddef", "minwindef", "unknwnbase", "vss", "vswriter", "winnt", "wtypes"], &["vssapi"]),
+ ("vss", &["guiddef", "minwindef", "unknwnbase", "winnt"], &[]),
+ ("vsserror", &["winnt"], &[]),
+ ("vswriter", &["minwindef", "unknwnbase", "vss", "winnt", "wtypes"], &[]),
+ ("wbemads", &["oaidl", "wbemdisp", "winerror", "wtypes"], &[]),
+ ("wbemcli", &["minwindef", "oaidl", "rpcndr", "unknwnbase", "winerror", "winnt", "wtypes"], &[]),
+ ("wbemdisp", &["oaidl", "unknwnbase", "winerror", "wtypes"], &[]),
+ ("wbemprov", &["minwindef", "oaidl", "unknwnbase", "wbemcli", "winerror", "winnt", "wtypes"], &[]),
+ ("wbemtran", &["guiddef", "minwindef", "unknwnbase", "wbemcli", "winerror", "winnt", "wtypes"], &[]),
+ ("wct", &["basetsd", "guiddef", "minwindef", "winnt"], &["advapi32"]),
+ ("werapi", &["minwindef", "winnt"], &["kernel32", "wer"]),
+ ("winbase", &["basetsd", "cfgmgr32", "fileapi", "guiddef", "libloaderapi", "minwinbase", "minwindef", "processthreadsapi", "vadefs", "windef", "winnt"], &["kernel32"]),
+ ("wincodec", &["basetsd", "d2d1", "d2d1_1", "dcommon", "dxgiformat", "dxgitype", "guiddef", "minwindef", "ntdef", "objidlbase", "ocidl", "propidl", "unknwnbase", "windef", "winerror", "winnt"], &["windowscodecs"]),
+ ("wincodecsdk", &["guiddef", "minwindef", "oaidl", "objidl", "objidlbase", "ocidl", "propidl", "unknwnbase", "wincodec", "winnt", "wtypes"], &["ole32", "oleaut32", "windowscodecs"]),
+ ("wincon", &["minwinbase", "minwindef", "wincontypes", "windef", "wingdi", "winnt"], &["kernel32"]),
+ ("wincontypes", &["minwindef", "winnt"], &[]),
+ ("wincred", &["minwindef", "sspi", "windef", "winnt"], &["advapi32", "credui"]),
+ ("wincrypt", &["basetsd", "bcrypt", "guiddef", "minwinbase", "minwindef", "ncrypt", "vcruntime", "winnt"], &["advapi32", "crypt32", "cryptnet"]),
+ ("windowsceip", &["minwindef"], &["kernel32"]),
+ ("winefs", &["basetsd", "minwinbase", "minwindef", "wincrypt", "winnt"], &["advapi32"]),
+ ("winevt", &["basetsd", "guiddef", "minwinbase", "minwindef", "vcruntime", "winnt"], &["wevtapi"]),
+ ("wingdi", &["basetsd", "minwindef", "windef", "winnt"], &["gdi32", "msimg32", "opengl32", "winspool"]),
+ ("winhttp", &["basetsd", "minwinbase", "minwindef", "winnt"], &["winhttp"]),
+ ("wininet", &["basetsd", "minwinbase", "minwindef", "ntdef", "windef", "winineti", "winnt"], &["wininet"]),
+ ("winineti", &["minwindef"], &[]),
+ ("winioctl", &["basetsd", "devpropdef", "guiddef", "minwindef", "winnt"], &[]),
+ ("winnetwk", &["basetsd", "minwindef", "windef", "winerror", "winnt"], &["mpr"]),
+ ("winnls", &["basetsd", "guiddef", "minwinbase", "minwindef", "winnt"], &["kernel32"]),
+ ("winnt", &["basetsd", "excpt", "guiddef", "ktmtypes", "minwindef", "ntdef", "vcruntime"], &["kernel32"]),
+ ("winreg", &["basetsd", "minwinbase", "minwindef", "reason", "winnt"], &["advapi32"]),
+ ("winsafer", &["basetsd", "guiddef", "minwindef", "wincrypt", "windef", "winnt"], &["advapi32"]),
+ ("winscard", &["basetsd", "guiddef", "minwindef", "rpcdce", "windef", "winnt", "winsmcrd"], &["winscard"]),
+ ("winsmcrd", &["minwindef", "winioctl"], &[]),
+ ("winsock2", &["basetsd", "guiddef", "inaddr", "minwinbase", "minwindef", "qos", "winbase", "windef", "winerror", "winnt", "ws2def", "wtypesbase"], &["ws2_32"]),
+ ("winspool", &["guiddef", "minwinbase", "minwindef", "vcruntime", "windef", "winerror", "wingdi", "winnt"], &["winspool"]),
+ ("winsvc", &["minwindef", "winnt"], &["advapi32"]),
+ ("wintrust", &["guiddef", "minwindef", "ntdef", "wincrypt", "windef"], &["wintrust"]),
+ ("winusb", &["minwinbase", "minwindef", "usb", "usbspec", "winnt", "winusbio"], &["winusb"]),
+ ("winuser", &["basetsd", "guiddef", "limits", "minwinbase", "minwindef", "vadefs", "windef", "wingdi", "winnt"], &["user32"]),
+ ("winver", &["minwindef", "winnt"], &["kernel32", "version"]),
+ ("wlanapi", &["devpropdef", "eaptypes", "guiddef", "l2cmn", "minwindef", "windef", "windot11", "winnt", "wlantypes"], &["wlanapi"]),
+ ("wlanihv", &["basetsd", "dot1x", "eaptypes", "guiddef", "l2cmn", "minwindef", "windot11", "winnt", "winuser", "wlanihvtypes", "wlantypes", "wlclient"], &[]),
+ ("wlanihvtypes", &["eaptypes", "guiddef", "minwindef", "winnt", "wlantypes"], &[]),
+ ("wlclient", &["guiddef", "minwindef", "windot11", "winnt"], &[]),
+ ("wow64apiset", &["minwindef", "winnt"], &["kernel32"]),
+ ("wpdmtpextensions", &["wtypes"], &[]),
+ ("ws2bth", &["bthdef", "bthsdpdef", "guiddef", "minwindef", "winnt", "ws2def"], &[]),
+ ("ws2spi", &["basetsd", "guiddef", "minwindef", "vcruntime", "windef", "winnt", "winsock2", "ws2def", "wtypesbase"], &["ws2_32"]),
+ ("ws2tcpip", &["guiddef", "minwinbase", "minwindef", "mstcpip", "vcruntime", "winerror", "winnt", "winsock2", "ws2def", "wtypesbase"], &["fwpuclnt", "ws2_32"]),
+ ("wtsapi32", &["minwindef", "ntdef"], &["wtsapi32"]),
+ ("xinput", &["guiddef", "minwindef", "winnt"], &["xinput"]),
+ // vc
+ ("excpt", &[], &[]),
+ ("limits", &[], &[]),
+ ("vadefs", &[], &[]),
+ ("vcruntime", &[], &[]),
+ // winrt
+ ("activation", &["inspectable", "winnt"], &[]),
+ ("hstring", &["winnt"], &[]),
+ ("inspectable", &["guiddef", "hstring", "minwindef", "unknwnbase", "winnt"], &[]),
+ ("roapi", &["activation", "basetsd", "guiddef", "hstring", "inspectable", "objidl", "winnt"], &["runtimeobject"]),
+ ("robuffer", &["objidl", "winnt"], &["runtimeobject"]),
+ ("roerrorapi", &["basetsd", "hstring", "minwindef", "restrictederrorinfo", "unknwnbase", "winnt"], &["runtimeobject"]),
+ ("winstring", &["basetsd", "hstring", "minwindef", "winnt"], &["runtimeobject"]),
+];
+struct Header {
+ required: bool,
+ included: Cell,
+ dependencies: &'static [&'static str],
+ libraries: &'static [&'static str],
+}
+struct Graph(HashMap<&'static str, Header>);
+impl Graph {
+ fn generate() -> Graph {
+ Graph(DATA.iter().map(|&(name, dependencies, libraries)| {
+ let header = Header {
+ required: false,
+ included: Cell::new(false),
+ dependencies: dependencies,
+ libraries: libraries,
+ };
+ (name, header)
+ }).collect())
+ }
+ fn identify_required(&mut self) {
+ for (name, header) in &mut self.0 {
+ if let Ok(_) = var(&format!("CARGO_FEATURE_{}", name.to_uppercase())) {
+ header.required = true;
+ header.included.set(true);
+ }
+ }
+ }
+ fn check_everything(&self) {
+ if let Ok(_) = var("CARGO_FEATURE_EVERYTHING") {
+ for (_, header) in &self.0 {
+ header.included.set(true);
+ }
+ }
+ }
+ fn resolve_dependencies(&self) {
+ let mut done = false;
+ while !done {
+ done = true;
+ for (_, header) in &self.0 {
+ if header.included.get() {
+ for dep in header.dependencies {
+ let dep = &self.0.get(dep).expect(dep);
+ if !dep.included.get() {
+ done = false;
+ dep.included.set(true);
+ }
+ }
+ }
+ }
+ }
+ }
+ fn emit_features(&self) {
+ for (name, header) in &self.0 {
+ if header.included.get() && !header.required {
+ println!("cargo:rustc-cfg=feature=\"{}\"", name);
+ }
+ }
+ }
+ fn emit_libraries(&self) {
+ let mut libs = self.0.iter().filter(|&(_, header)| {
+ header.included.get()
+ }).flat_map(|(_, header)| {
+ header.libraries.iter()
+ }).collect::>();
+ libs.sort();
+ libs.dedup();
+ // FIXME Temporary hacks until build script is redesigned.
+ libs.retain(|&&lib| match &*var("TARGET").unwrap() {
+ "aarch64-pc-windows-msvc" | "aarch64-uwp-windows-msvc" | "thumbv7a-pc-windows-msvc" => {
+ if lib == "opengl32" { false }
+ else { true }
+ },
+ _ => true,
+ });
+ let prefix = library_prefix();
+ let kind = library_kind();
+ for lib in libs {
+ println!("cargo:rustc-link-lib={}={}{}", kind, prefix, lib);
+ }
+ }
+}
+fn library_prefix() -> &'static str {
+ if var("TARGET").map(|target|
+ target == "i686-pc-windows-gnu" || target == "x86_64-pc-windows-gnu"
+ ).unwrap_or(false) && var("WINAPI_NO_BUNDLED_LIBRARIES").is_err() {
+ "winapi_"
+ } else {
+ ""
+ }
+}
+fn library_kind() -> &'static str {
+ if var("WINAPI_STATIC_NOBUNDLE").is_ok() {
+ "static-nobundle"
+ } else {
+ "dylib"
+ }
+}
+fn try_everything() {
+ let mut graph = Graph::generate();
+ graph.identify_required();
+ graph.check_everything();
+ graph.resolve_dependencies();
+ graph.emit_features();
+ graph.emit_libraries();
+}
+fn main() {
+ println!("cargo:rerun-if-changed=build.rs");
+ println!("cargo:rerun-if-env-changed=WINAPI_NO_BUNDLED_LIBRARIES");
+ println!("cargo:rerun-if-env-changed=WINAPI_STATIC_NOBUNDLE");
+ let target = var("TARGET").unwrap();
+ let target: Vec<_> = target.split('-').collect();
+ if target.get(2) == Some(&"windows") {
+ try_everything();
+ }
+}
diff --git a/third_party/rust/chromium_crates_io/vendor/winapi-0.3.9/src/km/d3dkmthk.rs b/third_party/rust/chromium_crates_io/vendor/winapi-0.3.9/src/km/d3dkmthk.rs
new file mode 100644
index 000000000000..9ac551cee7d9
--- /dev/null
+++ b/third_party/rust/chromium_crates_io/vendor/winapi-0.3.9/src/km/d3dkmthk.rs
@@ -0,0 +1,312 @@
+// Licensed under the Apache License, Version 2.0
+// or the MIT license
+// , at your option.
+// All files in the project carrying such notice may not be copied, modified, or distributed
+// except according to those terms.
+//! longhorn display driver model kernel mode thunk interfaces
+use shared::basetsd::{UINT32, UINT64};
+use shared::d3dukmdt::{
+ D3DDDICB_SIGNALFLAGS, D3DDDI_ALLOCATIONLIST, D3DDDI_CREATECONTEXTFLAGS,
+ D3DDDI_MAX_BROADCAST_CONTEXT, D3DDDI_MAX_OBJECT_SIGNALED, D3DDDI_MAX_OBJECT_WAITED_ON,
+ D3DDDI_PATCHLOCATIONLIST, D3DDDI_SYNCHRONIZATIONOBJECTINFO,
+ D3DDDI_SYNCHRONIZATIONOBJECTINFO2, D3DDDI_VIDEO_PRESENT_SOURCE_ID, D3DGPU_VIRTUAL_ADDRESS,
+ D3DKMT_HANDLE,
+};
+use shared::minwindef::{BOOL, UCHAR, UINT, ULONG};
+use shared::ntdef::{HANDLE, LUID, PCWSTR, ULONGLONG, VOID, WCHAR};
+use shared::windef::HDC;
+STRUCT!{struct D3DKMT_CREATEDEVICEFLAGS {
+ bitfield: UINT,
+}}
+BITFIELD!{D3DKMT_CREATEDEVICEFLAGS bitfield: UINT [
+ LegacyMode set_LegacyMode[0..1],
+ RequestVSync set_RequestVSync[1..2],
+ DisableGpuTimeout set_DisableGpuTimeout[2..3],
+ Reserved set_Reserved[3..32],
+]}
+UNION!{union D3DKMT_CREATEDEVICE_u {
+ [usize; 1],
+ hAdapter hAdapter_mut: D3DKMT_HANDLE,
+ pAdapter pAdapter_mut: *mut VOID,
+}}
+STRUCT!{struct D3DKMT_CREATEDEVICE {
+ u: D3DKMT_CREATEDEVICE_u,
+ Flags: D3DKMT_CREATEDEVICEFLAGS,
+ hDevice: D3DKMT_HANDLE,
+ pCommandBuffer: *mut VOID,
+ CommandBufferSize: UINT,
+ pAllocationList: *mut D3DDDI_ALLOCATIONLIST,
+ AllocationListSize: UINT,
+ pPatchLocationList: *mut D3DDDI_PATCHLOCATIONLIST,
+ PatchLocationListSize: UINT,
+}}
+STRUCT!{struct D3DKMT_DESTROYDEVICE {
+ hDevice: D3DKMT_HANDLE,
+}}
+ENUM!{enum D3DKMT_CLIENTHINT {
+ D3DKMT_CLIENTHINT_UNKNOWN = 0,
+ D3DKMT_CLIENTHINT_OPENGL = 1,
+ D3DKMT_CLIENTHINT_CDD = 2,
+ D3DKMT_CLIENTHINT_DX7 = 7,
+ D3DKMT_CLIENTHINT_DX8 = 8,
+ D3DKMT_CLIENTHINT_DX9 = 9,
+ D3DKMT_CLIENTHINT_DX10 = 10,
+}}
+STRUCT!{struct D3DKMT_CREATECONTEXT {
+ hDevice: D3DKMT_HANDLE,
+ NodeOrdinal: UINT,
+ EngineAffinity: UINT,
+ Flags: D3DDDI_CREATECONTEXTFLAGS,
+ pPrivateDriverData: *mut VOID,
+ PrivateDriverDataSize: UINT,
+ ClientHint: D3DKMT_CLIENTHINT,
+ hContext: D3DKMT_HANDLE,
+ pCommandBuffer: *mut VOID,
+ CommandBufferSize: UINT,
+ pAllocationList: *mut D3DDDI_ALLOCATIONLIST,
+ AllocationListSize: UINT,
+ pPatchLocationList: *mut D3DDDI_PATCHLOCATIONLIST,
+ PatchLocationListSize: UINT,
+ CommandBuffer: D3DGPU_VIRTUAL_ADDRESS,
+}}
+STRUCT!{struct D3DKMT_DESTROYCONTEXT {
+ hContext: D3DKMT_HANDLE,
+}}
+STRUCT!{struct D3DKMT_CREATESYNCHRONIZATIONOBJECT {
+ hDevice: D3DKMT_HANDLE,
+ Info: D3DDDI_SYNCHRONIZATIONOBJECTINFO,
+ hSyncObject: D3DKMT_HANDLE,
+}}
+STRUCT!{struct D3DKMT_CREATESYNCHRONIZATIONOBJECT2 {
+ hDevice: D3DKMT_HANDLE,
+ Info: D3DDDI_SYNCHRONIZATIONOBJECTINFO2,
+ hSyncObject: D3DKMT_HANDLE,
+}}
+STRUCT!{struct D3DKMT_DESTROYSYNCHRONIZATIONOBJECT {
+ hSyncObject: D3DKMT_HANDLE,
+}}
+STRUCT!{struct D3DKMT_OPENSYNCHRONIZATIONOBJECT {
+ hSharedHandle: D3DKMT_HANDLE,
+ hSyncObject: D3DKMT_HANDLE,
+ Reserved: [UINT64; 8],
+}}
+STRUCT!{struct D3DKMT_WAITFORSYNCHRONIZATIONOBJECT {
+ hContext: D3DKMT_HANDLE,
+ ObjectCount: UINT,
+ ObjectHandleArray: [D3DKMT_HANDLE; D3DDDI_MAX_OBJECT_WAITED_ON],
+}}
+STRUCT!{struct D3DKMT_WAITFORSYNCHRONIZATIONOBJECT2_Fence {
+ FenceValue: UINT64,
+}}
+UNION!{union D3DKMT_WAITFORSYNCHRONIZATIONOBJECT2_u {
+ [u64; 8],
+ Fence Fence_mut: D3DKMT_WAITFORSYNCHRONIZATIONOBJECT2_Fence,
+ Reserved Reserved_mut: [UINT64; 8],
+}}
+STRUCT!{struct D3DKMT_WAITFORSYNCHRONIZATIONOBJECT2 {
+ hContext: D3DKMT_HANDLE,
+ ObjectCount: UINT,
+ ObjectHandleArray: [D3DKMT_HANDLE; D3DDDI_MAX_OBJECT_WAITED_ON],
+ u: D3DKMT_WAITFORSYNCHRONIZATIONOBJECT2_u,
+}}
+STRUCT!{struct D3DKMT_SIGNALSYNCHRONIZATIONOBJECT {
+ hContext: D3DKMT_HANDLE,
+ ObjectCount: UINT,
+ ObjectHandleArray: [D3DKMT_HANDLE; D3DDDI_MAX_OBJECT_SIGNALED],
+ Flags: D3DDDICB_SIGNALFLAGS,
+}}
+STRUCT!{struct D3DKMT_SIGNALSYNCHRONIZATIONOBJECT2_Fence {
+ FenceValue: UINT64,
+}}
+UNION!{union D3DKMT_SIGNALSYNCHRONIZATIONOBJECT2_u {
+ [u64; 8],
+ Fence Fence_mut: D3DKMT_SIGNALSYNCHRONIZATIONOBJECT2_Fence,
+ CpuEventHandle CpuEventHandle_mut: HANDLE,
+ Reserved Reserved_mut: [UINT64; 8],
+}}
+STRUCT!{struct D3DKMT_SIGNALSYNCHRONIZATIONOBJECT2 {
+ hContext: D3DKMT_HANDLE,
+ ObjectCount: UINT,
+ ObjectHandleArray: [D3DKMT_HANDLE; D3DDDI_MAX_OBJECT_SIGNALED],
+ Flags: D3DDDICB_SIGNALFLAGS,
+ BroadcastContextCount: ULONG,
+ BroadcastContext: [D3DKMT_HANDLE; D3DDDI_MAX_BROADCAST_CONTEXT],
+ u: D3DKMT_SIGNALSYNCHRONIZATIONOBJECT2_u,
+}}
+//1512
+STRUCT!{struct D3DKMT_SEGMENTSIZEINFO {
+ DedicatedVideoMemorySize: ULONGLONG,
+ DedicatedSystemMemorySize: ULONGLONG,
+ SharedSystemMemorySize: ULONGLONG,
+}}
+//1617
+STRUCT!{struct D3DKMT_ADAPTERTYPE {
+ Value: UINT,
+}}
+BITFIELD!{D3DKMT_ADAPTERTYPE Value: UINT [
+ RenderSupported set_RenderSupported[0..1],
+ DisplaySupported set_DisplaySupported[1..2],
+ SoftwareDevice set_SoftwareDevice[2..3],
+ PostDevice set_PostDevice[3..4],
+ HybridDiscrete set_HybridDiscrete[4..5],
+ HybridIntegrated set_HybridIntegrated[5..6],
+ IndirectDisplayDevice set_IndirectDisplayDevice[6..7],
+ Paravirtualized set_Paravirtualized[7..8],
+ ACGSupported set_ACGSupported[8..9],
+ SupportSetTimingsFromVidPn set_SupportSetTimingsFromVidPn[9..10],
+ Detachable set_Detachable[10..11],
+ Reserved set_Reserved[11..32],
+]}
+//1852
+STRUCT!{struct D3DKMT_NODE_PERFDATA {
+ NodeOrdinal: UINT32,
+ PhysicalAdapterIndex: UINT32,
+ Frequency: ULONGLONG,
+ MaxFrequency: ULONGLONG,
+ MaxFrequencyOC: ULONGLONG,
+ Voltage: ULONG,
+ VoltageMax: ULONG,
+ VoltageMaxOC: ULONG,
+ MaxTransitionLatency: ULONGLONG,
+}}
+STRUCT!{struct D3DKMT_ADAPTER_PERFDATA {
+ PhysicalAdapterIndex: UINT32,
+ MemoryFrequency: ULONGLONG,
+ MaxMemoryFrequency: ULONGLONG,
+ MaxMemoryFrequencyOC: ULONGLONG,
+ MemoryBandwidth: ULONGLONG,
+ PCIEBandwidth: ULONGLONG,
+ FanRPM: ULONG,
+ Power: ULONG,
+ Temperature: ULONG,
+ PowerStateOverride: UCHAR,
+}}
+STRUCT!{struct D3DKMT_ADAPTER_PERFDATACAPS {
+ PhysicalAdapterIndex: UINT32,
+ MaxMemoryBandwidth: ULONGLONG,
+ MaxPCIEBandwidth: ULONGLONG,
+ MaxFanRPM: ULONG,
+ TemperatureMax: ULONG,
+ TemperatureWarning: ULONG,
+}}
+pub const DXGK_MAX_GPUVERSION_NAME_LENGTH: usize = 32;
+STRUCT!{struct D3DKMT_GPUVERSION {
+ PhysicalAdapterIndex: UINT32,
+ BiosVersion: [WCHAR; DXGK_MAX_GPUVERSION_NAME_LENGTH],
+ GpuArchitecture: [WCHAR; DXGK_MAX_GPUVERSION_NAME_LENGTH],
+}}
+ENUM!{enum KMTQUERYADAPTERINFOTYPE {
+ KMTQAITYPE_UMDRIVERPRIVATE = 0,
+ KMTQAITYPE_UMDRIVERNAME = 1,
+ KMTQAITYPE_UMOPENGLINFO = 2,
+ KMTQAITYPE_GETSEGMENTSIZE = 3,
+ KMTQAITYPE_ADAPTERGUID = 4,
+ KMTQAITYPE_FLIPQUEUEINFO = 5,
+ KMTQAITYPE_ADAPTERADDRESS = 6,
+ KMTQAITYPE_SETWORKINGSETINFO = 7,
+ KMTQAITYPE_ADAPTERREGISTRYINFO = 8,
+ KMTQAITYPE_CURRENTDISPLAYMODE = 9,
+ KMTQAITYPE_MODELIST = 10,
+ KMTQAITYPE_CHECKDRIVERUPDATESTATUS = 11,
+ KMTQAITYPE_VIRTUALADDRESSINFO = 12,
+ KMTQAITYPE_DRIVERVERSION = 13,
+ KMTQAITYPE_ADAPTERTYPE = 15,
+ KMTQAITYPE_OUTPUTDUPLCONTEXTSCOUNT = 16,
+ KMTQAITYPE_WDDM_1_2_CAPS = 17,
+ KMTQAITYPE_UMD_DRIVER_VERSION = 18,
+ KMTQAITYPE_DIRECTFLIP_SUPPORT = 19,
+ KMTQAITYPE_MULTIPLANEOVERLAY_SUPPORT = 20,
+ KMTQAITYPE_DLIST_DRIVER_NAME = 21,
+ KMTQAITYPE_WDDM_1_3_CAPS = 22,
+ KMTQAITYPE_MULTIPLANEOVERLAY_HUD_SUPPORT = 23,
+ KMTQAITYPE_WDDM_2_0_CAPS = 24,
+ KMTQAITYPE_NODEMETADATA = 25,
+ KMTQAITYPE_CPDRIVERNAME = 26,
+ KMTQAITYPE_XBOX = 27,
+ KMTQAITYPE_INDEPENDENTFLIP_SUPPORT = 28,
+ KMTQAITYPE_MIRACASTCOMPANIONDRIVERNAME = 29,
+ KMTQAITYPE_PHYSICALADAPTERCOUNT = 30,
+ KMTQAITYPE_PHYSICALADAPTERDEVICEIDS = 31,
+ KMTQAITYPE_DRIVERCAPS_EXT = 32,
+ KMTQAITYPE_QUERY_MIRACAST_DRIVER_TYPE = 33,
+ KMTQAITYPE_QUERY_GPUMMU_CAPS = 34,
+ KMTQAITYPE_QUERY_MULTIPLANEOVERLAY_DECODE_SUPPORT = 35,
+ KMTQAITYPE_QUERY_HW_PROTECTION_TEARDOWN_COUNT = 36,
+ KMTQAITYPE_QUERY_ISBADDRIVERFORHWPROTECTIONDISABLED = 37,
+ KMTQAITYPE_MULTIPLANEOVERLAY_SECONDARY_SUPPORT = 38,
+ KMTQAITYPE_INDEPENDENTFLIP_SECONDARY_SUPPORT = 39,
+ KMTQAITYPE_PANELFITTER_SUPPORT = 40,
+ KMTQAITYPE_PHYSICALADAPTERPNPKEY = 41,
+ KMTQAITYPE_GETSEGMENTGROUPSIZE = 42,
+ KMTQAITYPE_MPO3DDI_SUPPORT = 43,
+ KMTQAITYPE_HWDRM_SUPPORT = 44,
+ KMTQAITYPE_MPOKERNELCAPS_SUPPORT = 45,
+ KMTQAITYPE_MULTIPLANEOVERLAY_STRETCH_SUPPORT = 46,
+ KMTQAITYPE_GET_DEVICE_VIDPN_OWNERSHIP_INFO = 47,
+ KMTQAITYPE_QUERYREGISTRY = 48,
+ KMTQAITYPE_KMD_DRIVER_VERSION = 49,
+ KMTQAITYPE_BLOCKLIST_KERNEL = 50,
+ KMTQAITYPE_BLOCKLIST_RUNTIME = 51,
+ KMTQAITYPE_ADAPTERGUID_RENDER = 52,
+ KMTQAITYPE_ADAPTERADDRESS_RENDER = 53,
+ KMTQAITYPE_ADAPTERREGISTRYINFO_RENDER = 54,
+ KMTQAITYPE_CHECKDRIVERUPDATESTATUS_RENDER = 55,
+ KMTQAITYPE_DRIVERVERSION_RENDER = 56,
+ KMTQAITYPE_ADAPTERTYPE_RENDER = 57,
+ KMTQAITYPE_WDDM_1_2_CAPS_RENDER = 58,
+ KMTQAITYPE_WDDM_1_3_CAPS_RENDER = 59,
+ KMTQAITYPE_QUERY_ADAPTER_UNIQUE_GUID = 60,
+ KMTQAITYPE_NODEPERFDATA = 61,
+ KMTQAITYPE_ADAPTERPERFDATA = 62,
+ KMTQAITYPE_ADAPTERPERFDATA_CAPS = 63,
+ KMTQUITYPE_GPUVERSION = 64,
+}}
+STRUCT!{struct D3DKMT_QUERYADAPTERINFO {
+ hAdapter: D3DKMT_HANDLE,
+ Type: KMTQUERYADAPTERINFOTYPE,
+ pPrivateDriverData: *mut VOID,
+ PrivateDriverDataSize: UINT,
+}}
+STRUCT!{struct D3DKMT_OPENADAPTERFROMHDC {
+ hDc: HDC,
+ hAdapter: D3DKMT_HANDLE,
+ AdapterLuid: LUID,
+ VidPnSourceId: D3DDDI_VIDEO_PRESENT_SOURCE_ID,
+}}
+STRUCT!{struct D3DKMT_OPENADAPTERFROMGDIDISPLAYNAME {
+ DeviceName: [WCHAR; 32],
+ hAdapter: D3DKMT_HANDLE,
+ AdapterLuid: LUID,
+ VidPnSourceId: D3DDDI_VIDEO_PRESENT_SOURCE_ID,
+}}
+STRUCT!{struct D3DKMT_OPENADAPTERFROMDEVICENAME {
+ pDeviceName: PCWSTR,
+ hAdapter: D3DKMT_HANDLE,
+ AdapterLuid: LUID,
+}}
+pub const MAX_ENUM_ADAPTERS: usize = 16;
+STRUCT!{struct D3DKMT_ADAPTERINFO {
+ hAdapter: D3DKMT_HANDLE,
+ AdapterLuid: LUID,
+ NumOfSources: ULONG,
+ bPresentMoveRegionsPreferred: BOOL,
+}}
+STRUCT!{struct D3DKMT_ENUMADAPTERS {
+ NumAdapters: ULONG,
+ Adapters: [D3DKMT_ADAPTERINFO; MAX_ENUM_ADAPTERS],
+}}
+STRUCT!{struct D3DKMT_ENUMADAPTERS2 {
+ NumAdapters: ULONG,
+ pAdapters: *mut D3DKMT_ADAPTERINFO,
+}}
+STRUCT!{struct D3DKMT_OPENADAPTERFROMLUID {
+ AdapterLuid: LUID,
+ hAdapter: D3DKMT_HANDLE,
+}}
+STRUCT!{struct D3DKMT_QUERYREMOTEVIDPNSOURCEFROMGDIDISPLAYNAME {
+ DeviceName: [WCHAR; 32],
+ VidPnSourceId: D3DDDI_VIDEO_PRESENT_SOURCE_ID,
+}}
+STRUCT!{struct D3DKMT_CLOSEADAPTER {
+ hAdapter: D3DKMT_HANDLE,
+}}
diff --git a/third_party/rust/chromium_crates_io/vendor/winapi-0.3.9/src/km/mod.rs b/third_party/rust/chromium_crates_io/vendor/winapi-0.3.9/src/km/mod.rs
new file mode 100644
index 000000000000..480f1950f75d
--- /dev/null
+++ b/third_party/rust/chromium_crates_io/vendor/winapi-0.3.9/src/km/mod.rs
@@ -0,0 +1,7 @@
+// Licensed under the Apache License, Version 2.0
+// or the MIT license
+// , at your option.
+// All files in the project carrying such notice may not be copied, modified, or distributed
+// except according to those terms.
+//! Headers for kernel mode
+#[cfg(feature = "d3dkmthk")] pub mod d3dkmthk;
diff --git a/third_party/rust/chromium_crates_io/vendor/winapi-0.3.9/src/lib.rs b/third_party/rust/chromium_crates_io/vendor/winapi-0.3.9/src/lib.rs
new file mode 100644
index 000000000000..cf2d938fe091
--- /dev/null
+++ b/third_party/rust/chromium_crates_io/vendor/winapi-0.3.9/src/lib.rs
@@ -0,0 +1,71 @@
+// Licensed under the Apache License, Version 2.0
+// or the MIT license
+// , at your option.
+// All files in the project carrying such notice may not be copied, modified, or distributed
+// except according to those terms.
+#![cfg(windows)]
+#![deny(unused, unused_qualifications)]
+#![warn(unused_attributes)]
+#![allow(bad_style, overflowing_literals, unused_macros, deprecated, unused_crate_dependencies)]
+#![recursion_limit = "2563"]
+#![no_std]
+//Uncomment as needed or once minimum Rust version is bumped to 1.18
+//#![cfg_attr(feature = "cargo-clippy", warn(clippy::pedantic))]
+//#![cfg_attr(feature = "cargo-clippy", allow(clippy::absurd_extreme_comparisons, clippy::cast_lossless, clippy::cast_possible_truncation, clippy::cast_possible_wrap, clippy::cast_precision_loss, clippy::cast_ptr_alignment, clippy::cast_sign_loss, clippy::doc_markdown, clippy::empty_enum, clippy::erasing_op, clippy::excessive_precision, clippy::expl_impl_clone_on_copy, clippy::identity_op, clippy::if_not_else, clippy::many_single_char_names, clippy::module_inception, clippy::cast_possible_truncation, clippy::too_many_arguments, clippy::transmute_int_to_float, clippy::trivially_copy_pass_by_ref, clippy::unreadable_literal, clippy::unseparated_literal_suffix, clippy::used_underscore_binding, clippy::redundant_static_lifetimes, clippy::missing_safety_doc))]
+
+#[cfg(feature = "std")]
+extern crate std;
+
+/// Hack for exported macros
+#[doc(hidden)]
+pub extern crate core as _core;
+
+// Modules
+#[macro_use]
+mod macros;
+pub mod km;
+pub mod shared;
+pub mod ucrt;
+pub mod um;
+pub mod vc;
+pub mod winrt;
+
+/// Built in primitive types provided by the C language
+pub mod ctypes {
+ #[cfg(feature = "std")]
+ pub use std::os::raw::c_void;
+ #[cfg(not(feature = "std"))]
+ pub enum c_void {}
+ pub type c_char = i8;
+ pub type c_schar = i8;
+ pub type c_uchar = u8;
+ pub type c_short = i16;
+ pub type c_ushort = u16;
+ pub type c_int = i32;
+ pub type c_uint = u32;
+ pub type c_long = i32;
+ pub type c_ulong = u32;
+ pub type c_longlong = i64;
+ pub type c_ulonglong = u64;
+ pub type c_float = f32;
+ pub type c_double = f64;
+ pub type __int8 = i8;
+ pub type __uint8 = u8;
+ pub type __int16 = i16;
+ pub type __uint16 = u16;
+ pub type __int32 = i32;
+ pub type __uint32 = u32;
+ pub type __int64 = i64;
+ pub type __uint64 = u64;
+ pub type wchar_t = u16;
+}
+// This trait should be implemented for all COM interfaces
+pub trait Interface {
+ // Returns the IID of the Interface
+ fn uuidof() -> shared::guiddef::GUID;
+}
+// This trait should be implemented for all COM classes
+pub trait Class {
+ // Returns the CLSID of the Class
+ fn uuidof() -> shared::guiddef::GUID;
+}
diff --git a/third_party/rust/chromium_crates_io/vendor/winapi-0.3.9/src/macros.rs b/third_party/rust/chromium_crates_io/vendor/winapi-0.3.9/src/macros.rs
new file mode 100644
index 000000000000..d6b133f028e5
--- /dev/null
+++ b/third_party/rust/chromium_crates_io/vendor/winapi-0.3.9/src/macros.rs
@@ -0,0 +1,440 @@
+// Licensed under the Apache License, Version 2.0
+// or the MIT license
+// , at your option.
+// All files in the project carrying such notice may not be copied, modified, or distributed
+// except according to those terms.
+//! Macros to make things easier to define
+macro_rules! DECLARE_HANDLE {
+ ($name:ident, $inner:ident) => {
+ pub enum $inner {}
+ pub type $name = *mut $inner;
+ };
+}
+macro_rules! MAKE_HRESULT {
+ ($sev:expr, $fac:expr, $code:expr) => {
+ ($sev << 31) | ($fac << 16) | $code
+ }
+}
+macro_rules! MAKE_SCODE {
+ ($sev:expr, $fac:expr, $code:expr) => {
+ ($sev << 31) | ($fac << 16) | $code
+ }
+}
+macro_rules! HIDP_ERROR_CODES {
+ ($sev:expr, $code:expr) => {
+ ($sev << 28) | (FACILITY_HID_ERROR_CODE << 16) | $code
+ }
+}
+macro_rules! MAKEFOURCC {
+ ($a:expr, $b:expr, $c:expr, $d:expr) => {
+ ($a as u32) | (($b as u32) << 8) | (($c as u32) << 16) | (($d as u32) << 24)
+ }
+}
+#[macro_export]
+macro_rules! DEFINE_GUID {
+ (
+ $name:ident, $l:expr, $w1:expr, $w2:expr,
+ $b1:expr, $b2:expr, $b3:expr, $b4:expr, $b5:expr, $b6:expr, $b7:expr, $b8:expr
+ ) => {
+ pub const $name: $crate::shared::guiddef::GUID = $crate::shared::guiddef::GUID {
+ Data1: $l,
+ Data2: $w1,
+ Data3: $w2,
+ Data4: [$b1, $b2, $b3, $b4, $b5, $b6, $b7, $b8],
+ };
+ }
+}
+macro_rules! DEFINE_BLUETOOTH_UUID128 {
+ ($name:ident, $shortId:expr) => {
+ DEFINE_GUID!{$name,
+ $shortId as u32, 0x0000, 0x1000, 0x80, 0x00, 0x00, 0x80, 0x5F, 0x9B, 0x34, 0xFB}
+ }
+}
+#[macro_export]
+macro_rules! DEFINE_PROPERTYKEY {
+ (
+ $name:ident, $l:expr, $w1:expr, $w2:expr,
+ $b1:expr, $b2:expr, $b3:expr, $b4:expr, $b5:expr, $b6:expr, $b7:expr, $b8:expr,
+ $pid:expr
+ ) => {
+ pub const $name: PROPERTYKEY
+ = PROPERTYKEY {
+ fmtid: $crate::shared::guiddef::GUID {
+ Data1: $l,
+ Data2: $w1,
+ Data3: $w2,
+ Data4: [$b1, $b2, $b3, $b4, $b5, $b6, $b7, $b8],
+ },
+ pid: $pid,
+ };
+ }
+}
+#[macro_export]
+macro_rules! DEFINE_DEVPROPKEY {
+ (
+ $name:ident, $l:expr, $w1:expr, $w2:expr,
+ $b1:expr, $b2:expr, $b3:expr, $b4:expr, $b5:expr, $b6:expr, $b7:expr, $b8:expr,
+ $pid:expr
+ ) => {
+ pub const $name: DEVPROPKEY = DEVPROPKEY {
+ fmtid: $crate::shared::guiddef::GUID {
+ Data1: $l,
+ Data2: $w1,
+ Data3: $w2,
+ Data4: [$b1, $b2, $b3, $b4, $b5, $b6, $b7, $b8],
+ },
+ pid: $pid,
+ };
+ }
+}
+macro_rules! CTL_CODE {
+ ($DeviceType:expr, $Function:expr, $Method:expr, $Access:expr) => {
+ ($DeviceType << 16) | ($Access << 14) | ($Function << 2) | $Method
+ }
+}
+macro_rules! BTH_CTL {
+ ($id:expr) => {
+ CTL_CODE!(FILE_DEVICE_BLUETOOTH, $id, METHOD_BUFFERED, FILE_ANY_ACCESS)
+ };
+}
+macro_rules! BTH_KERNEL_CTL {
+ ($id:expr) => {
+ CTL_CODE!(FILE_DEVICE_BLUETOOTH, $id, METHOD_NEITHER, FILE_ANY_ACCESS)
+ };
+}
+macro_rules! HID_CTL_CODE {
+ ($id:expr) => {
+ CTL_CODE!(FILE_DEVICE_KEYBOARD, $id, METHOD_NEITHER, FILE_ANY_ACCESS)
+ }
+}
+macro_rules! HID_BUFFER_CTL_CODE {
+ ($id:expr) => {
+ CTL_CODE!(FILE_DEVICE_KEYBOARD, $id, METHOD_BUFFERED, FILE_ANY_ACCESS)
+ }
+}
+macro_rules! HID_IN_CTL_CODE {
+ ($id:expr) => {
+ CTL_CODE!(FILE_DEVICE_KEYBOARD, $id, METHOD_IN_DIRECT, FILE_ANY_ACCESS)
+ }
+}
+macro_rules! HID_OUT_CTL_CODE {
+ ($id:expr) => {
+ CTL_CODE!(FILE_DEVICE_KEYBOARD, $id, METHOD_OUT_DIRECT, FILE_ANY_ACCESS)
+ }
+}
+macro_rules! AUDCLNT_ERR {
+ ($n:expr) => {
+ MAKE_HRESULT!(SEVERITY_ERROR, FACILITY_AUDCLNT, $n)
+ };
+}
+macro_rules! AUDCLNT_SUCCESS {
+ ($n:expr) => {
+ MAKE_SCODE!(SEVERITY_SUCCESS, FACILITY_AUDCLNT, $n)
+ };
+}
+macro_rules! BCRYPT_MAKE_INTERFACE_VERSION {
+ ($major:expr, $minor:expr) => {
+ $crate::shared::bcrypt::BCRYPT_INTERFACE_VERSION {
+ MajorVersion: $major, MinorVersion: $minor,
+ }
+ }
+}
+macro_rules! MAKEINTRESOURCE {
+ ($i:expr) => { $i as u16 as usize as LPWSTR }
+}
+#[macro_export]
+macro_rules! RIDL {
+ (#[uuid($l:expr, $w1:expr, $w2:expr,
+ $b1:expr, $b2:expr, $b3:expr, $b4:expr, $b5:expr, $b6:expr, $b7:expr, $b8:expr)]
+ class $class:ident;) => (
+ pub enum $class {}
+ impl $crate::Class for $class {
+ #[inline]
+ fn uuidof() -> $crate::shared::guiddef::GUID {
+ $crate::shared::guiddef::GUID {
+ Data1: $l,
+ Data2: $w1,
+ Data3: $w2,
+ Data4: [$b1, $b2, $b3, $b4, $b5, $b6, $b7, $b8],
+ }
+ }
+ }
+ );
+ (#[uuid($($uuid:expr),+)]
+ interface $interface:ident ($vtbl:ident) {$(
+ $(#[$($attrs:tt)*])* fn $method:ident($($p:ident : $t:ty,)*) -> $rtr:ty,
+ )+}) => (
+ RIDL!{@vtbl $interface $vtbl () $(
+ $(#[$($attrs)*])* fn $method($($p: $t,)*) -> $rtr,
+ )+}
+ #[repr(C)]
+ pub struct $interface {
+ pub lpVtbl: *const $vtbl,
+ }
+ impl $interface {
+ $(RIDL!{@method $(#[$($attrs)*])* fn $method($($p: $t,)*) -> $rtr})+
+ }
+ RIDL!{@uuid $interface $($uuid),+}
+ );
+ (#[uuid($($uuid:expr),+)]
+ interface $interface:ident ($vtbl:ident) : $pinterface:ident ($pvtbl:ident) {}) => (
+ RIDL!{@vtbl $interface $vtbl (pub parent: $pvtbl,)}
+ #[repr(C)]
+ pub struct $interface {
+ pub lpVtbl: *const $vtbl,
+ }
+ RIDL!{@deref $interface $pinterface}
+ RIDL!{@uuid $interface $($uuid),+}
+ );
+ (#[uuid($($uuid:expr),+)]
+ interface $interface:ident ($vtbl:ident) : $pinterface:ident ($pvtbl:ident) {$(
+ $(#[$($attrs:tt)*])* fn $method:ident($($p:ident : $t:ty,)*) -> $rtr:ty,
+ )+}) => (
+ RIDL!{@vtbl $interface $vtbl (pub parent: $pvtbl,) $(
+ $(#[$($attrs)*])* fn $method($($p: $t,)*) -> $rtr,
+ )+}
+ #[repr(C)]
+ pub struct $interface {
+ pub lpVtbl: *const $vtbl,
+ }
+ impl $interface {
+ $(RIDL!{@method $(#[$($attrs)*])* fn $method($($p: $t,)*) -> $rtr})+
+ }
+ RIDL!{@deref $interface $pinterface}
+ RIDL!{@uuid $interface $($uuid),+}
+ );
+ (@deref $interface:ident $pinterface:ident) => (
+ impl $crate::_core::ops::Deref for $interface {
+ type Target = $pinterface;
+ #[inline]
+ fn deref(&self) -> &$pinterface {
+ unsafe { &*(self as *const $interface as *const $pinterface) }
+ }
+ }
+ );
+ (@method fn $method:ident($($p:ident : $t:ty,)*) -> $rtr:ty) => (
+ #[inline] pub unsafe fn $method(&self, $($p: $t,)*) -> $rtr {
+ ((*self.lpVtbl).$method)(self as *const _ as *mut _, $($p,)*)
+ }
+ );
+ (@method #[fixme] fn $method:ident($($p:ident : $t:ty,)*) -> $rtr:ty) => (
+ #[inline] pub unsafe fn $method(&self, $($p: $t,)*) -> $rtr {
+ let mut ret = $crate::_core::mem::uninitialized();
+ ((*self.lpVtbl).$method)(self as *const _ as *mut _, &mut ret, $($p,)*);
+ ret
+ }
+ );
+ (@vtbl $interface:ident $vtbl:ident ($($fields:tt)*)
+ $(fn $method:ident($($p:ident : $t:ty,)*) -> $rtr:ty,)*
+ ) => (
+ RIDL!{@item #[repr(C)]
+ pub struct $vtbl {
+ $($fields)*
+ $(pub $method: unsafe extern "system" fn(
+ This: *mut $interface,
+ $($p: $t,)*
+ ) -> $rtr,)*
+ }}
+ );
+ (@vtbl $interface:ident $vtbl:ident ($($fields:tt)*)
+ fn $method:ident($($p:ident : $t:ty,)*) -> $rtr:ty,
+ $($tail:tt)*) => (
+ RIDL!{@vtbl $interface $vtbl (
+ $($fields)*
+ pub $method: unsafe extern "system" fn(
+ This: *mut $interface,
+ $($p: $t,)*
+ ) -> $rtr,
+ ) $($tail)*}
+ );
+ (@vtbl $interface:ident $vtbl:ident ($($fields:tt)*)
+ #[fixme] fn $method:ident($($p:ident : $t:ty,)*) -> $rtr:ty,
+ $($tail:tt)*) => (
+ RIDL!{@vtbl $interface $vtbl (
+ $($fields)*
+ pub $method: unsafe extern "system" fn(
+ This: *mut $interface,
+ ret: *mut $rtr,
+ $($p: $t,)*
+ ) -> *mut $rtr,
+ ) $($tail)*}
+ );
+ (@uuid $interface:ident
+ $l:expr, $w1:expr, $w2:expr,
+ $b1:expr, $b2:expr, $b3:expr, $b4:expr, $b5:expr, $b6:expr, $b7:expr, $b8:expr
+ ) => (
+ impl $crate::Interface for $interface {
+ #[inline]
+ fn uuidof() -> $crate::shared::guiddef::GUID {
+ $crate::shared::guiddef::GUID {
+ Data1: $l,
+ Data2: $w1,
+ Data3: $w2,
+ Data4: [$b1, $b2, $b3, $b4, $b5, $b6, $b7, $b8],
+ }
+ }
+ }
+ );
+ (@item $thing:item) => ($thing);
+}
+macro_rules! UNION {
+ ($(#[$attrs:meta])* union $name:ident {
+ [$stype:ty; $ssize:expr],
+ $($variant:ident $variant_mut:ident: $ftype:ty,)+
+ }) => (
+ #[repr(C)] $(#[$attrs])*
+ pub struct $name([$stype; $ssize]);
+ impl Copy for $name {}
+ impl Clone for $name {
+ #[inline]
+ fn clone(&self) -> $name { *self }
+ }
+ #[cfg(feature = "impl-default")]
+ impl Default for $name {
+ #[inline]
+ fn default() -> $name { unsafe { $crate::_core::mem::zeroed() } }
+ }
+ impl $name {$(
+ #[inline]
+ pub unsafe fn $variant(&self) -> &$ftype {
+ &*(self as *const _ as *const $ftype)
+ }
+ #[inline]
+ pub unsafe fn $variant_mut(&mut self) -> &mut $ftype {
+ &mut *(self as *mut _ as *mut $ftype)
+ }
+ )+}
+ );
+ ($(#[$attrs:meta])* union $name:ident {
+ [$stype32:ty; $ssize32:expr] [$stype64:ty; $ssize64:expr],
+ $($variant:ident $variant_mut:ident: $ftype:ty,)+
+ }) => (
+ #[repr(C)] $(#[$attrs])* #[cfg(target_pointer_width = "32")]
+ pub struct $name([$stype32; $ssize32]);
+ #[repr(C)] $(#[$attrs])* #[cfg(target_pointer_width = "64")]
+ pub struct $name([$stype64; $ssize64]);
+ impl Copy for $name {}
+ impl Clone for $name {
+ #[inline]
+ fn clone(&self) -> $name { *self }
+ }
+ #[cfg(feature = "impl-default")]
+ impl Default for $name {
+ #[inline]
+ fn default() -> $name { unsafe { $crate::_core::mem::zeroed() } }
+ }
+ impl $name {$(
+ #[inline]
+ pub unsafe fn $variant(&self) -> &$ftype {
+ &*(self as *const _ as *const $ftype)
+ }
+ #[inline]
+ pub unsafe fn $variant_mut(&mut self) -> &mut $ftype {
+ &mut *(self as *mut _ as *mut $ftype)
+ }
+ )+}
+ );
+}
+macro_rules! BITFIELD {
+ ($base:ident $field:ident: $fieldtype:ty [
+ $($thing:ident $set_thing:ident[$r:expr],)+
+ ]) => {
+ impl $base {$(
+ #[inline]
+ pub fn $thing(&self) -> $fieldtype {
+ let size = $crate::core::mem::size_of::<$fieldtype>() * 8;
+ self.$field << (size - $r.end) >> (size - $r.end + $r.start)
+ }
+ #[inline]
+ pub fn $set_thing(&mut self, val: $fieldtype) {
+ let mask = ((1 << ($r.end - $r.start)) - 1) << $r.start;
+ self.$field &= !mask;
+ self.$field |= (val << $r.start) & mask;
+ }
+ )+}
+ }
+}
+#[macro_export]
+macro_rules! ENUM {
+ {enum $name:ident { $($variant:ident = $value:expr,)+ }} => {
+ pub type $name = u32;
+ $(pub const $variant: $name = $value;)+
+ };
+ {enum $name:ident { $variant:ident = $value:expr, $($rest:tt)* }} => {
+ pub type $name = u32;
+ pub const $variant: $name = $value;
+ ENUM!{@gen $name $variant, $($rest)*}
+ };
+ {enum $name:ident { $variant:ident, $($rest:tt)* }} => {
+ ENUM!{enum $name { $variant = 0, $($rest)* }}
+ };
+ {@gen $name:ident $base:ident,} => {};
+ {@gen $name:ident $base:ident, $variant:ident = $value:expr, $($rest:tt)*} => {
+ pub const $variant: $name = $value;
+ ENUM!{@gen $name $variant, $($rest)*}
+ };
+ {@gen $name:ident $base:ident, $variant:ident, $($rest:tt)*} => {
+ pub const $variant: $name = $base + 1u32;
+ ENUM!{@gen $name $variant, $($rest)*}
+ };
+}
+#[macro_export]
+macro_rules! STRUCT {
+ (#[debug] $($rest:tt)*) => (
+ STRUCT!{#[cfg_attr(feature = "impl-debug", derive(Debug))] $($rest)*}
+ );
+ ($(#[$attrs:meta])* struct $name:ident {
+ $($field:ident: $ftype:ty,)+
+ }) => (
+ #[repr(C)] #[derive(Copy)] $(#[$attrs])*
+ pub struct $name {
+ $(pub $field: $ftype,)+
+ }
+ impl Clone for $name {
+ #[inline]
+ fn clone(&self) -> $name { *self }
+ }
+ #[cfg(feature = "impl-default")]
+ impl Default for $name {
+ #[inline]
+ fn default() -> $name { unsafe { $crate::_core::mem::zeroed() } }
+ }
+ );
+}
+macro_rules! IFDEF {
+ ($($thing:item)*) => ($($thing)*)
+}
+macro_rules! FN {
+ (stdcall $func:ident($($t:ty,)*) -> $ret:ty) => (
+ pub type $func = Option $ret>;
+ );
+ (stdcall $func:ident($($p:ident: $t:ty,)*) -> $ret:ty) => (
+ pub type $func = Option $ret>;
+ );
+ (cdecl $func:ident($($t:ty,)*) -> $ret:ty) => (
+ pub type $func = Option $ret>;
+ );
+ (cdecl $func:ident($($p:ident: $t:ty,)*) -> $ret:ty) => (
+ pub type $func = Option $ret>;
+ );
+}
+macro_rules! _WSAIO {
+ ($x:expr, $y:expr) => {
+ $crate::shared::ws2def::IOC_VOID | $x | $y
+ }
+}
+macro_rules! _WSAIOR {
+ ($x:expr, $y:expr) => {
+ $crate::shared::ws2def::IOC_OUT | $x | $y
+ }
+}
+macro_rules! _WSAIOW {
+ ($x:expr, $y:expr) => {
+ $crate::shared::ws2def::IOC_IN | $x | $y
+ }
+}
+macro_rules! _WSAIORW {
+ ($x:expr, $y:expr) => {
+ $crate::shared::ws2def::IOC_INOUT | $x | $y
+ }
+}
diff --git a/third_party/rust/chromium_crates_io/vendor/winapi-0.3.9/src/shared/basetsd.rs b/third_party/rust/chromium_crates_io/vendor/winapi-0.3.9/src/shared/basetsd.rs
new file mode 100644
index 000000000000..b3b7123236b2
--- /dev/null
+++ b/third_party/rust/chromium_crates_io/vendor/winapi-0.3.9/src/shared/basetsd.rs
@@ -0,0 +1,70 @@
+// Licensed under the Apache License, Version 2.0
+// or the MIT license
+// , at your option.
+// All files in the project carrying such notice may not be copied, modified, or distributed
+// except according to those terms.
+//! Type definitions for the basic sized types.
+use ctypes::{__int64, __uint64, c_int, c_schar, c_short, c_uchar, c_uint, c_ushort};
+pub type POINTER_64_INT = usize;
+pub type INT8 = c_schar;
+pub type PINT8 = *mut c_schar;
+pub type INT16 = c_short;
+pub type PINT16 = *mut c_short;
+pub type INT32 = c_int;
+pub type PINT32 = *mut c_int;
+pub type INT64 = __int64;
+pub type PINT64 = *mut __int64;
+pub type UINT8 = c_uchar;
+pub type PUINT8 = *mut c_uchar;
+pub type UINT16 = c_ushort;
+pub type PUINT16 = *mut c_ushort;
+pub type UINT32 = c_uint;
+pub type PUINT32 = *mut c_uint;
+pub type UINT64 = __uint64;
+pub type PUINT64 = *mut __uint64;
+pub type LONG32 = c_int;
+pub type PLONG32 = *mut c_int;
+pub type ULONG32 = c_uint;
+pub type PULONG32 = *mut c_uint;
+pub type DWORD32 = c_uint;
+pub type PDWORD32 = *mut c_uint;
+pub type INT_PTR = isize;
+pub type PINT_PTR = *mut isize;
+pub type UINT_PTR = usize;
+pub type PUINT_PTR = *mut usize;
+pub type LONG_PTR = isize;
+pub type PLONG_PTR = *mut isize;
+pub type ULONG_PTR = usize;
+pub type PULONG_PTR = *mut usize;
+pub type SHANDLE_PTR = isize;
+pub type HANDLE_PTR = usize;
+#[cfg(target_pointer_width = "32")]
+pub type UHALF_PTR = c_ushort;
+#[cfg(target_pointer_width = "64")]
+pub type UHALF_PTR = c_uint;
+#[cfg(target_pointer_width = "32")]
+pub type PUHALF_PTR = *mut c_ushort;
+#[cfg(target_pointer_width = "64")]
+pub type PUHALF_PTR = *mut c_uint;
+#[cfg(target_pointer_width = "32")]
+pub type HALF_PTR = c_short;
+#[cfg(target_pointer_width = "64")]
+pub type HALF_PTR = c_int;
+#[cfg(target_pointer_width = "32")]
+pub type PHALF_PTR = *mut c_short;
+#[cfg(target_pointer_width = "64")]
+pub type PHALF_PTR = *mut c_int;
+pub type SIZE_T = ULONG_PTR;
+pub type PSIZE_T = *mut ULONG_PTR;
+pub type SSIZE_T = LONG_PTR;
+pub type PSSIZE_T = *mut LONG_PTR;
+pub type DWORD_PTR = ULONG_PTR;
+pub type PDWORD_PTR = *mut ULONG_PTR;
+pub type LONG64 = __int64;
+pub type PLONG64 = *mut __int64;
+pub type ULONG64 = __uint64;
+pub type PULONG64 = *mut __uint64;
+pub type DWORD64 = __uint64;
+pub type PDWORD64 = *mut __uint64;
+pub type KAFFINITY = ULONG_PTR;
+pub type PKAFFINITY = *mut KAFFINITY;
diff --git a/third_party/rust/chromium_crates_io/vendor/winapi-0.3.9/src/shared/bcrypt.rs b/third_party/rust/chromium_crates_io/vendor/winapi-0.3.9/src/shared/bcrypt.rs
new file mode 100644
index 000000000000..4fa88ef8fdb8
--- /dev/null
+++ b/third_party/rust/chromium_crates_io/vendor/winapi-0.3.9/src/shared/bcrypt.rs
@@ -0,0 +1,1001 @@
+// Licensed under the Apache License, Version 2.0
+// or the MIT license
+// , at your option.
+// All files in the project carrying such notice may not be copied, modified, or distributed
+// except according to those terms.
+//! Cryptographic Primitive API Prototypes and Definitions
+use shared::minwindef::{PUCHAR, UCHAR, ULONG, USHORT};
+use um::winnt::{BOOLEAN, HANDLE, LONG, LPCWSTR, LPWSTR, PVOID, PWSTR, ULONGLONG, VOID};
+pub type NTSTATUS = LONG;
+pub type PNTSTATUS = *mut NTSTATUS;
+#[inline]
+pub fn BCRYPT_SUCCESS(Status: NTSTATUS) -> bool {
+ Status >= 0
+}
+pub const BCRYPT_OBJECT_ALIGNMENT: usize = 16;
+pub const BCRYPT_KDF_HASH: &'static str = "HASH";
+pub const BCRYPT_KDF_HMAC: &'static str = "HMAC";
+pub const BCRYPT_KDF_TLS_PRF: &'static str = "TLS_PRF";
+pub const BCRYPT_KDF_SP80056A_CONCAT: &'static str = "SP800_56A_CONCAT";
+pub const BCRYPT_KDF_RAW_SECRET: &'static str = "TRUNCATE";
+pub const KDF_HASH_ALGORITHM: ULONG = 0x0;
+pub const KDF_SECRET_PREPEND: ULONG = 0x1;
+pub const KDF_SECRET_APPEND: ULONG = 0x2;
+pub const KDF_HMAC_KEY: ULONG = 0x3;
+pub const KDF_TLS_PRF_LABEL: ULONG = 0x4;
+pub const KDF_TLS_PRF_SEED: ULONG = 0x5;
+pub const KDF_SECRET_HANDLE: ULONG = 0x6;
+pub const KDF_TLS_PRF_PROTOCOL: ULONG = 0x7;
+pub const KDF_ALGORITHMID: ULONG = 0x8;
+pub const KDF_PARTYUINFO: ULONG = 0x9;
+pub const KDF_PARTYVINFO: ULONG = 0xA;
+pub const KDF_SUPPPUBINFO: ULONG = 0xB;
+pub const KDF_SUPPPRIVINFO: ULONG = 0xC;
+pub const KDF_LABEL: ULONG = 0xD;
+pub const KDF_CONTEXT: ULONG = 0xE;
+pub const KDF_SALT: ULONG = 0xF;
+pub const KDF_ITERATION_COUNT: ULONG = 0x10;
+pub const KDF_GENERIC_PARAMETER: ULONG = 0x11;
+pub const KDF_KEYBITLENGTH: ULONG = 0x12;
+pub const KDF_USE_SECRET_AS_HMAC_KEY_FLAG: ULONG = 0x1;
+STRUCT!{struct BCRYPT_KEY_LENGTHS_STRUCT {
+ dwMinLength: ULONG,
+ dwMaxLength: ULONG,
+ dwIncrement: ULONG,
+}}
+pub type BCRYPT_AUTH_TAG_LENGTHS_STRUCT = BCRYPT_KEY_LENGTHS_STRUCT;
+STRUCT!{struct BCRYPT_OID {
+ cbOID: ULONG,
+ pbOID: PUCHAR,
+}}
+STRUCT!{struct BCRYPT_OID_LIST {
+ dwOIDCount: ULONG,
+ pOIDs: *mut BCRYPT_OID,
+}}
+STRUCT!{struct BCRYPT_PKCS1_PADDING_INFO {
+ pszAlgId: LPCWSTR,
+}}
+STRUCT!{struct BCRYPT_PSS_PADDING_INFO {
+ pszAlgId: LPCWSTR,
+ cbSalt: ULONG,
+}}
+STRUCT!{struct BCRYPT_OAEP_PADDING_INFO {
+ pszAlgId: LPCWSTR,
+ pbLabel: PUCHAR,
+ cbLabel: ULONG,
+}}
+pub const BCRYPT_AUTHENTICATED_CIPHER_MODE_INFO_VERSION: ULONG = 1;
+pub const BCRYPT_AUTH_MODE_CHAIN_CALLS_FLAG: ULONG = 0x00000001;
+pub const BCRYPT_AUTH_MODE_IN_PROGRESS_FLAG: ULONG = 0x00000002;
+STRUCT!{struct BCRYPT_AUTHENTICATED_CIPHER_MODE_INFO {
+ cbSize: ULONG,
+ dwInfoVersion: ULONG,
+ pbNonce: PUCHAR,
+ cbNonce: ULONG,
+ pbAuthData: PUCHAR,
+ cbAuthData: ULONG,
+ pbTag: PUCHAR,
+ cbTag: ULONG,
+ pbMacContext: PUCHAR,
+ cbMacContext: ULONG,
+ cbAAD: ULONG,
+ cbData: ULONGLONG,
+ dwFlags: ULONG,
+}}
+pub type PBCRYPT_AUTHENTICATED_CIPHER_MODE_INFO = *mut BCRYPT_AUTHENTICATED_CIPHER_MODE_INFO;
+pub const BCRYPT_OPAQUE_KEY_BLOB: &'static str = "OpaqueKeyBlob";
+pub const BCRYPT_KEY_DATA_BLOB: &'static str = "KeyDataBlob";
+pub const BCRYPT_AES_WRAP_KEY_BLOB: &'static str = "Rfc3565KeyWrapBlob";
+pub const BCRYPT_OBJECT_LENGTH: &'static str = "ObjectLength";
+pub const BCRYPT_ALGORITHM_NAME: &'static str = "AlgorithmName";
+pub const BCRYPT_PROVIDER_HANDLE: &'static str = "ProviderHandle";
+pub const BCRYPT_CHAINING_MODE: &'static str = "ChainingMode";
+pub const BCRYPT_BLOCK_LENGTH: &'static str = "BlockLength";
+pub const BCRYPT_KEY_LENGTH: &'static str = "KeyLength";
+pub const BCRYPT_KEY_OBJECT_LENGTH: &'static str = "KeyObjectLength";
+pub const BCRYPT_KEY_STRENGTH: &'static str = "KeyStrength";
+pub const BCRYPT_KEY_LENGTHS: &'static str = "KeyLengths";
+pub const BCRYPT_BLOCK_SIZE_LIST: &'static str = "BlockSizeList";
+pub const BCRYPT_EFFECTIVE_KEY_LENGTH: &'static str = "EffectiveKeyLength";
+pub const BCRYPT_HASH_LENGTH: &'static str = "HashDigestLength";
+pub const BCRYPT_HASH_OID_LIST: &'static str = "HashOIDList";
+pub const BCRYPT_PADDING_SCHEMES: &'static str = "PaddingSchemes";
+pub const BCRYPT_SIGNATURE_LENGTH: &'static str = "SignatureLength";
+pub const BCRYPT_HASH_BLOCK_LENGTH: &'static str = "HashBlockLength";
+pub const BCRYPT_AUTH_TAG_LENGTH: &'static str = "AuthTagLength";
+pub const BCRYPT_PRIMITIVE_TYPE: &'static str = "PrimitiveType";
+pub const BCRYPT_IS_KEYED_HASH: &'static str = "IsKeyedHash";
+pub const BCRYPT_IS_REUSABLE_HASH: &'static str = "IsReusableHash";
+pub const BCRYPT_MESSAGE_BLOCK_LENGTH: &'static str = "MessageBlockLength";
+pub const BCRYPT_PUBLIC_KEY_LENGTH: &'static str = "PublicKeyLength";
+pub const BCRYPT_PCP_PLATFORM_TYPE_PROPERTY: &'static str = "PCP_PLATFORM_TYPE";
+pub const BCRYPT_PCP_PROVIDER_VERSION_PROPERTY: &'static str = "PCP_PROVIDER_VERSION";
+pub const BCRYPT_MULTI_OBJECT_LENGTH: &'static str = "MultiObjectLength";
+pub const BCRYPT_INITIALIZATION_VECTOR: &'static str = "IV";
+pub const BCRYPT_CHAIN_MODE_NA: &'static str = "ChainingModeN/A";
+pub const BCRYPT_CHAIN_MODE_CBC: &'static str = "ChainingModeCBC";
+pub const BCRYPT_CHAIN_MODE_ECB: &'static str = "ChainingModeECB";
+pub const BCRYPT_CHAIN_MODE_CFB: &'static str = "ChainingModeCFB";
+pub const BCRYPT_CHAIN_MODE_CCM: &'static str = "ChainingModeCCM";
+pub const BCRYPT_CHAIN_MODE_GCM: &'static str = "ChainingModeGCM";
+pub const BCRYPT_PROV_DISPATCH: ULONG = 0x00000001;
+pub const BCRYPT_BLOCK_PADDING: ULONG = 0x00000001;
+pub const BCRYPT_PAD_NONE: ULONG = 0x00000001;
+pub const BCRYPT_PAD_PKCS1: ULONG = 0x00000002;
+pub const BCRYPT_PAD_OAEP: ULONG = 0x00000004;
+pub const BCRYPT_PAD_PSS: ULONG = 0x00000008;
+pub const BCRYPT_PAD_PKCS1_OPTIONAL_HASH_OID: ULONG = 0x00000010;
+pub const BCRYPTBUFFER_VERSION: ULONG = 0;
+STRUCT!{struct BCryptBuffer {
+ cbBuffer: ULONG,
+ BufferType: ULONG,
+ pvBuffer: PVOID,
+}}
+pub type PBCryptBuffer = *mut BCryptBuffer;
+STRUCT!{struct BCryptBufferDesc {
+ ulVersion: ULONG,
+ cBuffers: ULONG,
+ pBuffers: PBCryptBuffer,
+}}
+pub type PBCryptBufferDesc = *mut BCryptBufferDesc;
+pub type BCRYPT_HANDLE = PVOID;
+pub type BCRYPT_ALG_HANDLE = PVOID;
+pub type BCRYPT_KEY_HANDLE = PVOID;
+pub type BCRYPT_HASH_HANDLE = PVOID;
+pub type BCRYPT_SECRET_HANDLE = PVOID;
+pub const BCRYPT_PUBLIC_KEY_BLOB: &'static str = "PUBLICBLOB";
+pub const BCRYPT_PRIVATE_KEY_BLOB: &'static str = "PRIVATEBLOB";
+STRUCT!{struct BCRYPT_KEY_BLOB {
+ Magic: ULONG,
+}}
+pub const BCRYPT_RSAPUBLIC_BLOB: &'static str = "RSAPUBLICBLOB";
+pub const BCRYPT_RSAPRIVATE_BLOB: &'static str = "RSAPRIVATEBLOB";
+pub const LEGACY_RSAPUBLIC_BLOB: &'static str = "CAPIPUBLICBLOB";
+pub const LEGACY_RSAPRIVATE_BLOB: &'static str = "CAPIPRIVATEBLOB";
+pub const BCRYPT_RSAPUBLIC_MAGIC: ULONG = 0x31415352;
+pub const BCRYPT_RSAPRIVATE_MAGIC: ULONG = 0x32415352;
+STRUCT!{struct BCRYPT_RSAKEY_BLOB {
+ Magic: ULONG,
+ BitLength: ULONG,
+ cbPublicExp: ULONG,
+ cbModulus: ULONG,
+ cbPrime1: ULONG,
+ cbPrime2: ULONG,
+}}
+pub const BCRYPT_RSAFULLPRIVATE_BLOB: &'static str = "RSAFULLPRIVATEBLOB";
+pub const BCRYPT_RSAFULLPRIVATE_MAGIC: ULONG = 0x33415352;
+pub const BCRYPT_GLOBAL_PARAMETERS: &'static str = "SecretAgreementParam";
+pub const BCRYPT_PRIVATE_KEY: &'static str = "PrivKeyVal";
+pub const BCRYPT_ECCPUBLIC_BLOB: &'static str = "ECCPUBLICBLOB";
+pub const BCRYPT_ECCPRIVATE_BLOB: &'static str = "ECCPRIVATEBLOB";
+pub const BCRYPT_ECCFULLPUBLIC_BLOB: &'static str = "ECCFULLPUBLICBLOB";
+pub const BCRYPT_ECCFULLPRIVATE_BLOB: &'static str = "ECCFULLPRIVATEBLOB";
+pub const SSL_ECCPUBLIC_BLOB: &'static str = "SSLECCPUBLICBLOB";
+pub const BCRYPT_ECDH_PUBLIC_P256_MAGIC: ULONG = 0x314B4345;
+pub const BCRYPT_ECDH_PRIVATE_P256_MAGIC: ULONG = 0x324B4345;
+pub const BCRYPT_ECDH_PUBLIC_P384_MAGIC: ULONG = 0x334B4345;
+pub const BCRYPT_ECDH_PRIVATE_P384_MAGIC: ULONG = 0x344B4345;
+pub const BCRYPT_ECDH_PUBLIC_P521_MAGIC: ULONG = 0x354B4345;
+pub const BCRYPT_ECDH_PRIVATE_P521_MAGIC: ULONG = 0x364B4345;
+pub const BCRYPT_ECDH_PUBLIC_GENERIC_MAGIC: ULONG = 0x504B4345;
+pub const BCRYPT_ECDH_PRIVATE_GENERIC_MAGIC: ULONG = 0x564B4345;
+pub const BCRYPT_ECDSA_PUBLIC_P256_MAGIC: ULONG = 0x31534345;
+pub const BCRYPT_ECDSA_PRIVATE_P256_MAGIC: ULONG = 0x32534345;
+pub const BCRYPT_ECDSA_PUBLIC_P384_MAGIC: ULONG = 0x33534345;
+pub const BCRYPT_ECDSA_PRIVATE_P384_MAGIC: ULONG = 0x34534345;
+pub const BCRYPT_ECDSA_PUBLIC_P521_MAGIC: ULONG = 0x35534345;
+pub const BCRYPT_ECDSA_PRIVATE_P521_MAGIC: ULONG = 0x36534345;
+pub const BCRYPT_ECDSA_PUBLIC_GENERIC_MAGIC: ULONG = 0x50444345;
+pub const BCRYPT_ECDSA_PRIVATE_GENERIC_MAGIC: ULONG = 0x56444345;
+STRUCT!{struct BCRYPT_ECCKEY_BLOB {
+ dwMagic: ULONG,
+ cbKey: ULONG,
+}}
+pub type PBCRYPT_ECCKEY_BLOB = *mut BCRYPT_ECCKEY_BLOB;
+STRUCT!{struct SSL_ECCKEY_BLOB {
+ dwCurveType: ULONG,
+ cbKey: ULONG,
+}}
+pub type PSSL_ECCKEY_BLOB = *mut SSL_ECCKEY_BLOB;
+pub const BCRYPT_ECC_FULLKEY_BLOB_V1: ULONG = 0x1;
+ENUM!{enum ECC_CURVE_TYPE_ENUM {
+ BCRYPT_ECC_PRIME_SHORT_WEIERSTRASS_CURVE = 0x1,
+ BCRYPT_ECC_PRIME_TWISTED_EDWARDS_CURVE = 0x2,
+ BCRYPT_ECC_PRIME_MONTGOMERY_CURVE = 0x3,
+}}
+ENUM!{enum ECC_CURVE_ALG_ID_ENUM {
+ BCRYPT_NO_CURVE_GENERATION_ALG_ID = 0x0,
+}}
+STRUCT!{struct BCRYPT_ECCFULLKEY_BLOB {
+ dwMagic: ULONG,
+ dwVersion: ULONG,
+ dwCurveType: ECC_CURVE_TYPE_ENUM,
+ dwCurveGenerationAlgId: ECC_CURVE_ALG_ID_ENUM,
+ cbFieldLength: ULONG,
+ cbSubgroupOrder: ULONG,
+ cbCofactor: ULONG,
+ cbSeed: ULONG,
+}}
+pub type PBCRYPT_ECCFULLKEY_BLOB = *mut BCRYPT_ECCFULLKEY_BLOB;
+pub const BCRYPT_DH_PUBLIC_BLOB: &'static str = "DHPUBLICBLOB";
+pub const BCRYPT_DH_PRIVATE_BLOB: &'static str = "DHPRIVATEBLOB";
+pub const LEGACY_DH_PUBLIC_BLOB: &'static str = "CAPIDHPUBLICBLOB";
+pub const LEGACY_DH_PRIVATE_BLOB: &'static str = "CAPIDHPRIVATEBLOB";
+pub const BCRYPT_DH_PUBLIC_MAGIC: ULONG = 0x42504844;
+pub const BCRYPT_DH_PRIVATE_MAGIC: ULONG = 0x56504844;
+STRUCT!{struct BCRYPT_DH_KEY_BLOB {
+ dwMagic: ULONG,
+ cbKey: ULONG,
+}}
+pub type PBCRYPT_DH_KEY_BLOB = *mut BCRYPT_DH_KEY_BLOB;
+pub const BCRYPT_DH_PARAMETERS: &'static str = "DHParameters";
+pub const BCRYPT_DH_PARAMETERS_MAGIC: ULONG = 0x4d504844;
+STRUCT!{struct BCRYPT_DH_PARAMETER_HEADER {
+ cbLength: ULONG,
+ dwMagic: ULONG,
+ cbKeyLength: ULONG,
+}}
+pub const BCRYPT_DSA_PUBLIC_BLOB: &'static str = "DSAPUBLICBLOB";
+pub const BCRYPT_DSA_PRIVATE_BLOB: &'static str = "DSAPRIVATEBLOB";
+pub const LEGACY_DSA_PUBLIC_BLOB: &'static str = "CAPIDSAPUBLICBLOB";
+pub const LEGACY_DSA_PRIVATE_BLOB: &'static str = "CAPIDSAPRIVATEBLOB";
+pub const LEGACY_DSA_V2_PUBLIC_BLOB: &'static str = "V2CAPIDSAPUBLICBLOB";
+pub const LEGACY_DSA_V2_PRIVATE_BLOB: &'static str = "V2CAPIDSAPRIVATEBLOB";
+pub const BCRYPT_DSA_PUBLIC_MAGIC: ULONG = 0x42505344;
+pub const BCRYPT_DSA_PRIVATE_MAGIC: ULONG = 0x56505344;
+pub const BCRYPT_DSA_PUBLIC_MAGIC_V2: ULONG = 0x32425044;
+pub const BCRYPT_DSA_PRIVATE_MAGIC_V2: ULONG = 0x32565044;
+STRUCT!{struct BCRYPT_DSA_KEY_BLOB {
+ dwMagic: ULONG,
+ cbKey: ULONG,
+ Count: [UCHAR; 4],
+ Seed: [UCHAR; 20],
+ q: [UCHAR; 20],
+}}
+pub type PBCRYPT_DSA_KEY_BLOB = *mut BCRYPT_DSA_KEY_BLOB;
+ENUM!{enum HASHALGORITHM_ENUM {
+ DSA_HASH_ALGORITHM_SHA1,
+ DSA_HASH_ALGORITHM_SHA256,
+ DSA_HASH_ALGORITHM_SHA512,
+}}
+ENUM!{enum DSAFIPSVERSION_ENUM {
+ DSA_FIPS186_2,
+ DSA_FIPS186_3,
+}}
+STRUCT!{struct BCRYPT_DSA_KEY_BLOB_V2 {
+ dwMagic: ULONG,
+ cbKey: ULONG,
+ hashAlgorithm: HASHALGORITHM_ENUM,
+ standardVersion: DSAFIPSVERSION_ENUM,
+ cbSeedLength: ULONG,
+ cbGroupSize: ULONG,
+ Count: [UCHAR; 4],
+}}
+pub type PBCRYPT_DSA_KEY_BLOB_V2 = *mut BCRYPT_DSA_KEY_BLOB_V2;
+STRUCT!{struct BCRYPT_KEY_DATA_BLOB_HEADER {
+ dwMagic: ULONG,
+ dwVersion: ULONG,
+ cbKeyData: ULONG,
+}}
+pub type PBCRYPT_KEY_DATA_BLOB_HEADER = *mut BCRYPT_KEY_DATA_BLOB_HEADER;
+pub const BCRYPT_KEY_DATA_BLOB_MAGIC: ULONG = 0x4d42444b;
+pub const BCRYPT_KEY_DATA_BLOB_VERSION1: ULONG = 0x1;
+pub const BCRYPT_DSA_PARAMETERS: &'static str = "DSAParameters";
+pub const BCRYPT_DSA_PARAMETERS_MAGIC: ULONG = 0x4d505344;
+pub const BCRYPT_DSA_PARAMETERS_MAGIC_V2: ULONG = 0x324d5044;
+STRUCT!{struct BCRYPT_DSA_PARAMETER_HEADER {
+ cbLength: ULONG,
+ dwMagic: ULONG,
+ cbKeyLength: ULONG,
+ Count: [UCHAR; 4],
+ Seed: [UCHAR; 20],
+ q: [UCHAR; 20],
+}}
+STRUCT!{struct BCRYPT_DSA_PARAMETER_HEADER_V2 {
+ cbLength: ULONG,
+ dwMagic: ULONG,
+ cbKeyLength: ULONG,
+ hashAlgorithm: HASHALGORITHM_ENUM,
+ standardVersion: DSAFIPSVERSION_ENUM,
+ cbSeedLength: ULONG,
+ cbGroupSize: ULONG,
+ Count: [UCHAR; 4],
+}}
+pub const BCRYPT_ECC_PARAMETERS: &'static str = "ECCParameters";
+pub const BCRYPT_ECC_CURVE_NAME: &'static str = "ECCCurveName";
+pub const BCRYPT_ECC_CURVE_NAME_LIST: &'static str = "ECCCurveNameList";
+pub const BCRYPT_ECC_PARAMETERS_MAGIC: ULONG = 0x50434345;
+STRUCT!{struct BCRYPT_ECC_CURVE_NAMES {
+ dwEccCurveNames: ULONG,
+ pEccCurveNames: LPWSTR,
+}}
+pub const BCRYPT_ECC_CURVE_BRAINPOOLP160R1: &'static str = "brainpoolP160r1";
+pub const BCRYPT_ECC_CURVE_BRAINPOOLP160T1: &'static str = "brainpoolP160t1";
+pub const BCRYPT_ECC_CURVE_BRAINPOOLP192R1: &'static str = "brainpoolP192r1";
+pub const BCRYPT_ECC_CURVE_BRAINPOOLP192T1: &'static str = "brainpoolP192t1";
+pub const BCRYPT_ECC_CURVE_BRAINPOOLP224R1: &'static str = "brainpoolP224r1";
+pub const BCRYPT_ECC_CURVE_BRAINPOOLP224T1: &'static str = "brainpoolP224t1";
+pub const BCRYPT_ECC_CURVE_BRAINPOOLP256R1: &'static str = "brainpoolP256r1";
+pub const BCRYPT_ECC_CURVE_BRAINPOOLP256T1: &'static str = "brainpoolP256t1";
+pub const BCRYPT_ECC_CURVE_BRAINPOOLP320R1: &'static str = "brainpoolP320r1";
+pub const BCRYPT_ECC_CURVE_BRAINPOOLP320T1: &'static str = "brainpoolP320t1";
+pub const BCRYPT_ECC_CURVE_BRAINPOOLP384R1: &'static str = "brainpoolP384r1";
+pub const BCRYPT_ECC_CURVE_BRAINPOOLP384T1: &'static str = "brainpoolP384t1";
+pub const BCRYPT_ECC_CURVE_BRAINPOOLP512R1: &'static str = "brainpoolP512r1";
+pub const BCRYPT_ECC_CURVE_BRAINPOOLP512T1: &'static str = "brainpoolP512t1";
+pub const BCRYPT_ECC_CURVE_25519: &'static str = "curve25519";
+pub const BCRYPT_ECC_CURVE_EC192WAPI: &'static str = "ec192wapi";
+pub const BCRYPT_ECC_CURVE_NISTP192: &'static str = "nistP192";
+pub const BCRYPT_ECC_CURVE_NISTP224: &'static str = "nistP224";
+pub const BCRYPT_ECC_CURVE_NISTP256: &'static str = "nistP256";
+pub const BCRYPT_ECC_CURVE_NISTP384: &'static str = "nistP384";
+pub const BCRYPT_ECC_CURVE_NISTP521: &'static str = "nistP521";
+pub const BCRYPT_ECC_CURVE_NUMSP256T1: &'static str = "numsP256t1";
+pub const BCRYPT_ECC_CURVE_NUMSP384T1: &'static str = "numsP384t1";
+pub const BCRYPT_ECC_CURVE_NUMSP512T1: &'static str = "numsP512t1";
+pub const BCRYPT_ECC_CURVE_SECP160K1: &'static str = "secP160k1";
+pub const BCRYPT_ECC_CURVE_SECP160R1: &'static str = "secP160r1";
+pub const BCRYPT_ECC_CURVE_SECP160R2: &'static str = "secP160r2";
+pub const BCRYPT_ECC_CURVE_SECP192K1: &'static str = "secP192k1";
+pub const BCRYPT_ECC_CURVE_SECP192R1: &'static str = "secP192r1";
+pub const BCRYPT_ECC_CURVE_SECP224K1: &'static str = "secP224k1";
+pub const BCRYPT_ECC_CURVE_SECP224R1: &'static str = "secP224r1";
+pub const BCRYPT_ECC_CURVE_SECP256K1: &'static str = "secP256k1";
+pub const BCRYPT_ECC_CURVE_SECP256R1: &'static str = "secP256r1";
+pub const BCRYPT_ECC_CURVE_SECP384R1: &'static str = "secP384r1";
+pub const BCRYPT_ECC_CURVE_SECP521R1: &'static str = "secP521r1";
+pub const BCRYPT_ECC_CURVE_WTLS7: &'static str = "wtls7";
+pub const BCRYPT_ECC_CURVE_WTLS9: &'static str = "wtls9";
+pub const BCRYPT_ECC_CURVE_WTLS12: &'static str = "wtls12";
+pub const BCRYPT_ECC_CURVE_X962P192V1: &'static str = "x962P192v1";
+pub const BCRYPT_ECC_CURVE_X962P192V2: &'static str = "x962P192v2";
+pub const BCRYPT_ECC_CURVE_X962P192V3: &'static str = "x962P192v3";
+pub const BCRYPT_ECC_CURVE_X962P239V1: &'static str = "x962P239v1";
+pub const BCRYPT_ECC_CURVE_X962P239V2: &'static str = "x962P239v2";
+pub const BCRYPT_ECC_CURVE_X962P239V3: &'static str = "x962P239v3";
+pub const BCRYPT_ECC_CURVE_X962P256V1: &'static str = "x962P256v1";
+ENUM!{enum BCRYPT_HASH_OPERATION_TYPE {
+ BCRYPT_HASH_OPERATION_HASH_DATA = 1,
+ BCRYPT_HASH_OPERATION_FINISH_HASH = 2,
+}}
+STRUCT!{struct BCRYPT_MULTI_HASH_OPERATION {
+ iHash: ULONG,
+ hashOperation: BCRYPT_HASH_OPERATION_TYPE,
+ pbBuffer: PUCHAR,
+ cbBuffer: ULONG,
+}}
+ENUM!{enum BCRYPT_MULTI_OPERATION_TYPE {
+ BCRYPT_OPERATION_TYPE_HASH = 1,
+}}
+STRUCT!{struct BCRYPT_MULTI_OBJECT_LENGTH_STRUCT {
+ cbPerObject: ULONG,
+ cbPerElement: ULONG,
+}}
+pub const MS_PRIMITIVE_PROVIDER: &'static str = "Microsoft Primitive Provider";
+pub const MS_PLATFORM_CRYPTO_PROVIDER: &'static str = "Microsoft Platform Crypto Provider";
+pub const BCRYPT_RSA_ALGORITHM: &'static str = "RSA";
+pub const BCRYPT_RSA_SIGN_ALGORITHM: &'static str = "RSA_SIGN";
+pub const BCRYPT_DH_ALGORITHM: &'static str = "DH";
+pub const BCRYPT_DSA_ALGORITHM: &'static str = "DSA";
+pub const BCRYPT_RC2_ALGORITHM: &'static str = "RC2";
+pub const BCRYPT_RC4_ALGORITHM: &'static str = "RC4";
+pub const BCRYPT_AES_ALGORITHM: &'static str = "AES";
+pub const BCRYPT_DES_ALGORITHM: &'static str = "DES";
+pub const BCRYPT_DESX_ALGORITHM: &'static str = "DESX";
+pub const BCRYPT_3DES_ALGORITHM: &'static str = "3DES";
+pub const BCRYPT_3DES_112_ALGORITHM: &'static str = "3DES_112";
+pub const BCRYPT_MD2_ALGORITHM: &'static str = "MD2";
+pub const BCRYPT_MD4_ALGORITHM: &'static str = "MD4";
+pub const BCRYPT_MD5_ALGORITHM: &'static str = "MD5";
+pub const BCRYPT_SHA1_ALGORITHM: &'static str = "SHA1";
+pub const BCRYPT_SHA256_ALGORITHM: &'static str = "SHA256";
+pub const BCRYPT_SHA384_ALGORITHM: &'static str = "SHA384";
+pub const BCRYPT_SHA512_ALGORITHM: &'static str = "SHA512";
+pub const BCRYPT_AES_GMAC_ALGORITHM: &'static str = "AES-GMAC";
+pub const BCRYPT_AES_CMAC_ALGORITHM: &'static str = "AES-CMAC";
+pub const BCRYPT_ECDSA_P256_ALGORITHM: &'static str = "ECDSA_P256";
+pub const BCRYPT_ECDSA_P384_ALGORITHM: &'static str = "ECDSA_P384";
+pub const BCRYPT_ECDSA_P521_ALGORITHM: &'static str = "ECDSA_P521";
+pub const BCRYPT_ECDH_P256_ALGORITHM: &'static str = "ECDH_P256";
+pub const BCRYPT_ECDH_P384_ALGORITHM: &'static str = "ECDH_P384";
+pub const BCRYPT_ECDH_P521_ALGORITHM: &'static str = "ECDH_P521";
+pub const BCRYPT_RNG_ALGORITHM: &'static str = "RNG";
+pub const BCRYPT_RNG_FIPS186_DSA_ALGORITHM: &'static str = "FIPS186DSARNG";
+pub const BCRYPT_RNG_DUAL_EC_ALGORITHM: &'static str = "DUALECRNG";
+pub const BCRYPT_SP800108_CTR_HMAC_ALGORITHM: &'static str = "SP800_108_CTR_HMAC";
+pub const BCRYPT_SP80056A_CONCAT_ALGORITHM: &'static str = "SP800_56A_CONCAT";
+pub const BCRYPT_PBKDF2_ALGORITHM: &'static str = "PBKDF2";
+pub const BCRYPT_CAPI_KDF_ALGORITHM: &'static str = "CAPI_KDF";
+pub const BCRYPT_TLS1_1_KDF_ALGORITHM: &'static str = "TLS1_1_KDF";
+pub const BCRYPT_TLS1_2_KDF_ALGORITHM: &'static str = "TLS1_2_KDF";
+pub const BCRYPT_ECDSA_ALGORITHM: &'static str = "ECDSA";
+pub const BCRYPT_ECDH_ALGORITHM: &'static str = "ECDH";
+pub const BCRYPT_XTS_AES_ALGORITHM: &'static str = "XTS-AES";
+pub const BCRYPT_CIPHER_INTERFACE: ULONG = 0x00000001;
+pub const BCRYPT_HASH_INTERFACE: ULONG = 0x00000002;
+pub const BCRYPT_ASYMMETRIC_ENCRYPTION_INTERFACE: ULONG = 0x00000003;
+pub const BCRYPT_SECRET_AGREEMENT_INTERFACE: ULONG = 0x00000004;
+pub const BCRYPT_SIGNATURE_INTERFACE: ULONG = 0x00000005;
+pub const BCRYPT_RNG_INTERFACE: ULONG = 0x00000006;
+pub const BCRYPT_KEY_DERIVATION_INTERFACE: ULONG = 0x00000007;
+pub const BCRYPT_MD2_ALG_HANDLE: BCRYPT_ALG_HANDLE = 0x00000001 as BCRYPT_ALG_HANDLE;
+pub const BCRYPT_MD4_ALG_HANDLE: BCRYPT_ALG_HANDLE = 0x00000011 as BCRYPT_ALG_HANDLE;
+pub const BCRYPT_MD5_ALG_HANDLE: BCRYPT_ALG_HANDLE = 0x00000021 as BCRYPT_ALG_HANDLE;
+pub const BCRYPT_SHA1_ALG_HANDLE: BCRYPT_ALG_HANDLE = 0x00000031 as BCRYPT_ALG_HANDLE;
+pub const BCRYPT_SHA256_ALG_HANDLE: BCRYPT_ALG_HANDLE = 0x00000041 as BCRYPT_ALG_HANDLE;
+pub const BCRYPT_SHA384_ALG_HANDLE: BCRYPT_ALG_HANDLE = 0x00000051 as BCRYPT_ALG_HANDLE;
+pub const BCRYPT_SHA512_ALG_HANDLE: BCRYPT_ALG_HANDLE = 0x00000061 as BCRYPT_ALG_HANDLE;
+pub const BCRYPT_RC4_ALG_HANDLE: BCRYPT_ALG_HANDLE = 0x00000071 as BCRYPT_ALG_HANDLE;
+pub const BCRYPT_RNG_ALG_HANDLE: BCRYPT_ALG_HANDLE = 0x00000081 as BCRYPT_ALG_HANDLE;
+pub const BCRYPT_HMAC_MD5_ALG_HANDLE: BCRYPT_ALG_HANDLE = 0x00000091 as BCRYPT_ALG_HANDLE;
+pub const BCRYPT_HMAC_SHA1_ALG_HANDLE: BCRYPT_ALG_HANDLE = 0x000000a1 as BCRYPT_ALG_HANDLE;
+pub const BCRYPT_HMAC_SHA256_ALG_HANDLE: BCRYPT_ALG_HANDLE = 0x000000b1 as BCRYPT_ALG_HANDLE;
+pub const BCRYPT_HMAC_SHA384_ALG_HANDLE: BCRYPT_ALG_HANDLE = 0x000000c1 as BCRYPT_ALG_HANDLE;
+pub const BCRYPT_HMAC_SHA512_ALG_HANDLE: BCRYPT_ALG_HANDLE = 0x000000d1 as BCRYPT_ALG_HANDLE;
+pub const BCRYPT_RSA_ALG_HANDLE: BCRYPT_ALG_HANDLE = 0x000000e1 as BCRYPT_ALG_HANDLE;
+pub const BCRYPT_ECDSA_ALG_HANDLE: BCRYPT_ALG_HANDLE = 0x000000f1 as BCRYPT_ALG_HANDLE;
+pub const BCRYPT_AES_CMAC_ALG_HANDLE: BCRYPT_ALG_HANDLE = 0x00000101 as BCRYPT_ALG_HANDLE;
+pub const BCRYPT_AES_GMAC_ALG_HANDLE: BCRYPT_ALG_HANDLE = 0x00000111 as BCRYPT_ALG_HANDLE;
+pub const BCRYPT_HMAC_MD2_ALG_HANDLE: BCRYPT_ALG_HANDLE = 0x00000121 as BCRYPT_ALG_HANDLE;
+pub const BCRYPT_HMAC_MD4_ALG_HANDLE: BCRYPT_ALG_HANDLE = 0x00000131 as BCRYPT_ALG_HANDLE;
+pub const BCRYPT_3DES_CBC_ALG_HANDLE: BCRYPT_ALG_HANDLE = 0x00000141 as BCRYPT_ALG_HANDLE;
+pub const BCRYPT_3DES_ECB_ALG_HANDLE: BCRYPT_ALG_HANDLE = 0x00000151 as BCRYPT_ALG_HANDLE;
+pub const BCRYPT_3DES_CFB_ALG_HANDLE: BCRYPT_ALG_HANDLE = 0x00000161 as BCRYPT_ALG_HANDLE;
+pub const BCRYPT_3DES_112_CBC_ALG_HANDLE: BCRYPT_ALG_HANDLE = 0x00000171 as BCRYPT_ALG_HANDLE;
+pub const BCRYPT_3DES_112_ECB_ALG_HANDLE: BCRYPT_ALG_HANDLE = 0x00000181 as BCRYPT_ALG_HANDLE;
+pub const BCRYPT_3DES_112_CFB_ALG_HANDLE: BCRYPT_ALG_HANDLE = 0x00000191 as BCRYPT_ALG_HANDLE;
+pub const BCRYPT_AES_CBC_ALG_HANDLE: BCRYPT_ALG_HANDLE = 0x000001a1 as BCRYPT_ALG_HANDLE;
+pub const BCRYPT_AES_ECB_ALG_HANDLE: BCRYPT_ALG_HANDLE = 0x000001b1 as BCRYPT_ALG_HANDLE;
+pub const BCRYPT_AES_CFB_ALG_HANDLE: BCRYPT_ALG_HANDLE = 0x000001c1 as BCRYPT_ALG_HANDLE;
+pub const BCRYPT_AES_CCM_ALG_HANDLE: BCRYPT_ALG_HANDLE = 0x000001d1 as BCRYPT_ALG_HANDLE;
+pub const BCRYPT_AES_GCM_ALG_HANDLE: BCRYPT_ALG_HANDLE = 0x000001e1 as BCRYPT_ALG_HANDLE;
+pub const BCRYPT_DES_CBC_ALG_HANDLE: BCRYPT_ALG_HANDLE = 0x000001f1 as BCRYPT_ALG_HANDLE;
+pub const BCRYPT_DES_ECB_ALG_HANDLE: BCRYPT_ALG_HANDLE = 0x00000201 as BCRYPT_ALG_HANDLE;
+pub const BCRYPT_DES_CFB_ALG_HANDLE: BCRYPT_ALG_HANDLE = 0x00000211 as BCRYPT_ALG_HANDLE;
+pub const BCRYPT_DESX_CBC_ALG_HANDLE: BCRYPT_ALG_HANDLE = 0x00000221 as BCRYPT_ALG_HANDLE;
+pub const BCRYPT_DESX_ECB_ALG_HANDLE: BCRYPT_ALG_HANDLE = 0x00000231 as BCRYPT_ALG_HANDLE;
+pub const BCRYPT_DESX_CFB_ALG_HANDLE: BCRYPT_ALG_HANDLE = 0x00000241 as BCRYPT_ALG_HANDLE;
+pub const BCRYPT_RC2_CBC_ALG_HANDLE: BCRYPT_ALG_HANDLE = 0x00000251 as BCRYPT_ALG_HANDLE;
+pub const BCRYPT_RC2_ECB_ALG_HANDLE: BCRYPT_ALG_HANDLE = 0x00000261 as BCRYPT_ALG_HANDLE;
+pub const BCRYPT_RC2_CFB_ALG_HANDLE: BCRYPT_ALG_HANDLE = 0x00000271 as BCRYPT_ALG_HANDLE;
+pub const BCRYPT_DH_ALG_HANDLE: BCRYPT_ALG_HANDLE = 0x00000281 as BCRYPT_ALG_HANDLE;
+pub const BCRYPT_ECDH_ALG_HANDLE: BCRYPT_ALG_HANDLE = 0x00000291 as BCRYPT_ALG_HANDLE;
+pub const BCRYPT_ECDH_P256_ALG_HANDLE: BCRYPT_ALG_HANDLE = 0x000002a1 as BCRYPT_ALG_HANDLE;
+pub const BCRYPT_ECDH_P384_ALG_HANDLE: BCRYPT_ALG_HANDLE = 0x000002b1 as BCRYPT_ALG_HANDLE;
+pub const BCRYPT_ECDH_P521_ALG_HANDLE: BCRYPT_ALG_HANDLE = 0x000002c1 as BCRYPT_ALG_HANDLE;
+pub const BCRYPT_DSA_ALG_HANDLE: BCRYPT_ALG_HANDLE = 0x000002d1 as BCRYPT_ALG_HANDLE;
+pub const BCRYPT_ECDSA_P256_ALG_HANDLE: BCRYPT_ALG_HANDLE = 0x000002e1 as BCRYPT_ALG_HANDLE;
+pub const BCRYPT_ECDSA_P384_ALG_HANDLE: BCRYPT_ALG_HANDLE = 0x000002f1 as BCRYPT_ALG_HANDLE;
+pub const BCRYPT_ECDSA_P521_ALG_HANDLE: BCRYPT_ALG_HANDLE = 0x00000301 as BCRYPT_ALG_HANDLE;
+pub const BCRYPT_RSA_SIGN_ALG_HANDLE: BCRYPT_ALG_HANDLE = 0x00000311 as BCRYPT_ALG_HANDLE;
+pub const BCRYPT_CAPI_KDF_ALG_HANDLE: BCRYPT_ALG_HANDLE = 0x00000321 as BCRYPT_ALG_HANDLE;
+pub const BCRYPT_PBKDF2_ALG_HANDLE: BCRYPT_ALG_HANDLE = 0x00000331 as BCRYPT_ALG_HANDLE;
+pub const BCRYPT_SP800108_CTR_HMAC_ALG_HANDLE: BCRYPT_ALG_HANDLE = 0x00000341 as BCRYPT_ALG_HANDLE;
+pub const BCRYPT_SP80056A_CONCAT_ALG_HANDLE: BCRYPT_ALG_HANDLE = 0x00000351 as BCRYPT_ALG_HANDLE;
+pub const BCRYPT_TLS1_1_KDF_ALG_HANDLE: BCRYPT_ALG_HANDLE = 0x00000361 as BCRYPT_ALG_HANDLE;
+pub const BCRYPT_TLS1_2_KDF_ALG_HANDLE: BCRYPT_ALG_HANDLE = 0x00000371 as BCRYPT_ALG_HANDLE;
+pub const BCRYPT_XTS_AES_ALG_HANDLE: BCRYPT_ALG_HANDLE = 0x00000381 as BCRYPT_ALG_HANDLE;
+pub const BCRYPT_ALG_HANDLE_HMAC_FLAG: ULONG = 0x00000008;
+pub const BCRYPT_CAPI_AES_FLAG: ULONG = 0x00000010;
+pub const BCRYPT_HASH_REUSABLE_FLAG: ULONG = 0x00000020;
+pub const BCRYPT_BUFFERS_LOCKED_FLAG: ULONG = 0x00000040;
+pub const BCRYPT_EXTENDED_KEYSIZE: ULONG = 0x00000080;
+pub const BCRYPT_ENABLE_INCOMPATIBLE_FIPS_CHECKS: ULONG = 0x00000100;
+extern "system" {
+ pub fn BCryptOpenAlgorithmProvider(
+ phAlgorithm: *mut BCRYPT_ALG_HANDLE,
+ pszAlgId: LPCWSTR,
+ pszImplementation: LPCWSTR,
+ dwFlags: ULONG,
+ ) -> NTSTATUS;
+}
+pub const BCRYPT_CIPHER_OPERATION: ULONG = 0x00000001;
+pub const BCRYPT_HASH_OPERATION: ULONG = 0x00000002;
+pub const BCRYPT_ASYMMETRIC_ENCRYPTION_OPERATION: ULONG = 0x00000004;
+pub const BCRYPT_SECRET_AGREEMENT_OPERATION: ULONG = 0x00000008;
+pub const BCRYPT_SIGNATURE_OPERATION: ULONG = 0x00000010;
+pub const BCRYPT_RNG_OPERATION: ULONG = 0x00000020;
+pub const BCRYPT_KEY_DERIVATION_OPERATION: ULONG = 0x00000040;
+STRUCT!{struct BCRYPT_ALGORITHM_IDENTIFIER {
+ pszName: LPWSTR,
+ dwClass: ULONG,
+ dwFlags: ULONG,
+}}
+extern "system" {
+ pub fn BCryptEnumAlgorithms(
+ dwAlgOperations: ULONG,
+ pAlgCount: *mut ULONG,
+ ppAlgList: *mut *mut BCRYPT_ALGORITHM_IDENTIFIER,
+ dwFlags: ULONG,
+ ) -> NTSTATUS;
+}
+STRUCT!{struct BCRYPT_PROVIDER_NAME {
+ pszProviderName: LPWSTR,
+}}
+extern "system" {
+ pub fn BCryptEnumProviders(
+ pszAlgId: LPCWSTR,
+ pImplCount: *mut ULONG,
+ ppImplList: *mut *mut BCRYPT_PROVIDER_NAME,
+ dwFlags: ULONG,
+ ) -> NTSTATUS;
+}
+pub const BCRYPT_PUBLIC_KEY_FLAG: ULONG = 0x00000001;
+pub const BCRYPT_PRIVATE_KEY_FLAG: ULONG = 0x00000002;
+extern "system" {
+ pub fn BCryptGetProperty(
+ hObject: BCRYPT_HANDLE,
+ pszProperty: LPCWSTR,
+ pbOutput: PUCHAR,
+ cbOutput: ULONG,
+ pcbResult: *mut ULONG,
+ dwFlags: ULONG,
+ ) -> NTSTATUS;
+ pub fn BCryptSetProperty(
+ hObject: BCRYPT_HANDLE,
+ pszProperty: LPCWSTR,
+ pbInput: PUCHAR,
+ cbInput: ULONG,
+ dwFlags: ULONG,
+ ) -> NTSTATUS;
+ pub fn BCryptCloseAlgorithmProvider(
+ hAlgorithm: BCRYPT_ALG_HANDLE,
+ dwFlags: ULONG,
+ ) -> NTSTATUS;
+ pub fn BCryptFreeBuffer(
+ pvBuffer: PVOID,
+ );
+ pub fn BCryptGenerateSymmetricKey(
+ hAlgorithm: BCRYPT_ALG_HANDLE,
+ phKey: *mut BCRYPT_KEY_HANDLE,
+ pbKeyObject: PUCHAR,
+ cbKeyObject: ULONG,
+ pbSecret: PUCHAR,
+ cbSecret: ULONG,
+ dwFlags: ULONG,
+ ) -> NTSTATUS;
+ pub fn BCryptGenerateKeyPair(
+ hAlgorithm: BCRYPT_ALG_HANDLE,
+ phKey: *mut BCRYPT_KEY_HANDLE,
+ dwLength: ULONG,
+ dwFlags: ULONG,
+ ) -> NTSTATUS;
+ pub fn BCryptEncrypt(
+ hKey: BCRYPT_KEY_HANDLE,
+ pbInput: PUCHAR,
+ cbInput: ULONG,
+ pPaddingInfo: *mut VOID,
+ pbIV: PUCHAR,
+ cbIV: ULONG,
+ pbOutput: PUCHAR,
+ cbOutput: ULONG,
+ pcbResult: *mut ULONG,
+ dwFlags: ULONG,
+ ) -> NTSTATUS;
+ pub fn BCryptDecrypt(
+ hKey: BCRYPT_KEY_HANDLE,
+ pbInput: PUCHAR,
+ cbInput: ULONG,
+ pPaddingInfo: *mut VOID,
+ pbIV: PUCHAR,
+ cbIV: ULONG,
+ pbOutput: PUCHAR,
+ cbOutput: ULONG,
+ pcbResult: *mut ULONG,
+ dwFlags: ULONG,
+ ) -> NTSTATUS;
+ pub fn BCryptExportKey(
+ hKey: BCRYPT_KEY_HANDLE,
+ hExportKey: BCRYPT_KEY_HANDLE,
+ pszBlobType: LPCWSTR,
+ pbOutput: PUCHAR,
+ cbOutput: ULONG,
+ pcbResult: *mut ULONG,
+ dwFlags: ULONG,
+ ) -> NTSTATUS;
+ pub fn BCryptImportKey(
+ hAlgorithm: BCRYPT_ALG_HANDLE,
+ hImportKey: BCRYPT_KEY_HANDLE,
+ pszBlobType: LPCWSTR,
+ phKey: *mut BCRYPT_KEY_HANDLE,
+ pbKeyObject: PUCHAR,
+ cbKeyObject: ULONG,
+ pbInput: PUCHAR,
+ cbInput: ULONG,
+ dwFlags: ULONG,
+ ) -> NTSTATUS;
+}
+pub const BCRYPT_NO_KEY_VALIDATION: ULONG = 0x00000008;
+extern "system" {
+ pub fn BCryptImportKeyPair(
+ hAlgorithm: BCRYPT_ALG_HANDLE,
+ hImportKey: BCRYPT_KEY_HANDLE,
+ pszBlobType: LPCWSTR,
+ phKey: *mut BCRYPT_KEY_HANDLE,
+ pbInput: PUCHAR,
+ cbInput: ULONG,
+ dwFlags: ULONG,
+ ) -> NTSTATUS;
+ pub fn BCryptDuplicateKey(
+ hKey: BCRYPT_KEY_HANDLE,
+ phNewKey: *mut BCRYPT_KEY_HANDLE,
+ pbKeyObject: PUCHAR,
+ cbKeyObject: ULONG,
+ dwFlags: ULONG,
+ ) -> NTSTATUS;
+ pub fn BCryptFinalizeKeyPair(
+ hKey: BCRYPT_KEY_HANDLE,
+ dwFlags: ULONG,
+ ) -> NTSTATUS;
+ pub fn BCryptDestroyKey(
+ hKey: BCRYPT_KEY_HANDLE,
+ ) -> NTSTATUS;
+ pub fn BCryptDestroySecret(
+ hSecret: BCRYPT_SECRET_HANDLE,
+ ) -> NTSTATUS;
+ pub fn BCryptSignHash(
+ hKey: BCRYPT_KEY_HANDLE,
+ pPaddingInfo: *mut VOID,
+ pbInput: PUCHAR,
+ cbInput: ULONG,
+ pbOutput: PUCHAR,
+ cbOutput: ULONG,
+ pcbResult: *mut ULONG,
+ dwFlags: ULONG,
+ ) -> NTSTATUS;
+ pub fn BCryptVerifySignature(
+ hKey: BCRYPT_KEY_HANDLE,
+ pPaddingInfo: *mut VOID,
+ pbHash: PUCHAR,
+ cbHash: ULONG,
+ pbSignature: PUCHAR,
+ cbSignature: ULONG,
+ dwFlags: ULONG,
+ ) -> NTSTATUS;
+ pub fn BCryptSecretAgreement(
+ hPrivKey: BCRYPT_KEY_HANDLE,
+ hPubKey: BCRYPT_KEY_HANDLE,
+ phAgreedSecret: *mut BCRYPT_SECRET_HANDLE,
+ dwFlags: ULONG,
+ ) -> NTSTATUS;
+ pub fn BCryptDeriveKey(
+ hSharedSecret: BCRYPT_SECRET_HANDLE,
+ pwszKDF: LPCWSTR,
+ pParameterList: *mut BCryptBufferDesc,
+ pbDerivedKey: PUCHAR,
+ cbDerivedKey: ULONG,
+ pcbResult: *mut ULONG,
+ dwFlags: ULONG,
+ ) -> NTSTATUS;
+ pub fn BCryptKeyDerivation(
+ hKey: BCRYPT_KEY_HANDLE,
+ pParameterList: *mut BCryptBufferDesc,
+ pbDerivedKey: PUCHAR,
+ cbDerivedKey: ULONG,
+ pcbResult: *mut ULONG,
+ dwFlags: ULONG,
+ ) -> NTSTATUS;
+ pub fn BCryptCreateHash(
+ hAlgorithm: BCRYPT_ALG_HANDLE,
+ phHash: *mut BCRYPT_HASH_HANDLE,
+ pbHashObject: PUCHAR,
+ cbHashObject: ULONG,
+ pbSecret: PUCHAR,
+ cbSecret: ULONG,
+ dwFlags: ULONG,
+ ) -> NTSTATUS;
+ pub fn BCryptHashData(
+ hHash: BCRYPT_HASH_HANDLE,
+ pbInput: PUCHAR,
+ cbInput: ULONG,
+ dwFlags: ULONG,
+ ) -> NTSTATUS;
+ pub fn BCryptFinishHash(
+ hHash: BCRYPT_HASH_HANDLE,
+ pbOutput: PUCHAR,
+ cbOutput: ULONG,
+ dwFlags: ULONG,
+ ) -> NTSTATUS;
+ pub fn BCryptCreateMultiHash(
+ hAlgorithm: BCRYPT_ALG_HANDLE,
+ phHash: *mut BCRYPT_HASH_HANDLE,
+ nHashes: ULONG,
+ pbHashObject: PUCHAR,
+ cbHashObject: ULONG,
+ pbSecret: PUCHAR,
+ cbSecret: ULONG,
+ dwFlags: ULONG,
+ ) -> NTSTATUS;
+ pub fn BCryptProcessMultiOperations(
+ hObject: BCRYPT_HANDLE,
+ operationType: BCRYPT_MULTI_OPERATION_TYPE,
+ pOperations: PVOID,
+ cbOperations: ULONG,
+ dwFlags: ULONG,
+ ) -> NTSTATUS;
+ pub fn BCryptDuplicateHash(
+ hHash: BCRYPT_HASH_HANDLE,
+ phNewHash: *mut BCRYPT_HASH_HANDLE,
+ pbHashObject: PUCHAR,
+ cbHashObject: ULONG,
+ dwFlags: ULONG,
+ ) -> NTSTATUS;
+ pub fn BCryptDestroyHash(
+ hHash: BCRYPT_HASH_HANDLE,
+ ) -> NTSTATUS;
+ pub fn BCryptHash(
+ hAlgorithm: BCRYPT_ALG_HANDLE,
+ pbSecret: PUCHAR,
+ cbSecret: ULONG,
+ pbInput: PUCHAR,
+ cbInput: ULONG,
+ pbOutput: PUCHAR,
+ cbOutput: ULONG,
+ ) -> NTSTATUS;
+}
+pub const BCRYPT_RNG_USE_ENTROPY_IN_BUFFER: ULONG = 0x00000001;
+pub const BCRYPT_USE_SYSTEM_PREFERRED_RNG: ULONG = 0x00000002;
+extern "system" {
+ pub fn BCryptGenRandom(
+ hAlgorithm: BCRYPT_ALG_HANDLE,
+ pbBuffer: PUCHAR,
+ cbBuffer: ULONG,
+ dwFlags: ULONG,
+ ) -> NTSTATUS;
+ pub fn BCryptDeriveKeyCapi(
+ hHash: BCRYPT_HASH_HANDLE,
+ hTargetAlg: BCRYPT_ALG_HANDLE,
+ pbDerivedKey: PUCHAR,
+ cbDerivedKey: ULONG,
+ dwFlags: ULONG,
+ ) -> NTSTATUS;
+ pub fn BCryptDeriveKeyPBKDF2(
+ hPrf: BCRYPT_ALG_HANDLE,
+ pbPassword: PUCHAR,
+ cbPassword: ULONG,
+ pbSalt: PUCHAR,
+ cbSalt: ULONG,
+ cIterations: ULONGLONG,
+ pbDerivedKey: PUCHAR,
+ cbDerivedKey: ULONG,
+ dwFlags: ULONG,
+ ) -> NTSTATUS;
+}
+STRUCT!{struct BCRYPT_INTERFACE_VERSION {
+ MajorVersion: USHORT,
+ MinorVersion: USHORT,
+}}
+pub type PBCRYPT_INTERFACE_VERSION = *mut BCRYPT_INTERFACE_VERSION;
+#[inline]
+pub fn BCRYPT_IS_INTERFACE_VERSION_COMPATIBLE(
+ loader: BCRYPT_INTERFACE_VERSION,
+ provider: BCRYPT_INTERFACE_VERSION,
+) -> bool {
+ loader.MajorVersion <= provider.MajorVersion
+}
+pub const BCRYPT_CIPHER_INTERFACE_VERSION_1: BCRYPT_INTERFACE_VERSION =
+ BCRYPT_MAKE_INTERFACE_VERSION!(1, 0);
+pub const BCRYPT_HASH_INTERFACE_VERSION_1: BCRYPT_INTERFACE_VERSION =
+ BCRYPT_MAKE_INTERFACE_VERSION!(1, 0);
+pub const BCRYPT_HASH_INTERFACE_MAJORVERSION_2: USHORT = 2;
+pub const BCRYPT_HASH_INTERFACE_VERSION_2: BCRYPT_INTERFACE_VERSION =
+ BCRYPT_MAKE_INTERFACE_VERSION!(BCRYPT_HASH_INTERFACE_MAJORVERSION_2, 0);
+pub const BCRYPT_ASYMMETRIC_ENCRYPTION_INTERFACE_VERSION_1: BCRYPT_INTERFACE_VERSION =
+ BCRYPT_MAKE_INTERFACE_VERSION!(1, 0);
+pub const BCRYPT_SECRET_AGREEMENT_INTERFACE_VERSION_1: BCRYPT_INTERFACE_VERSION =
+ BCRYPT_MAKE_INTERFACE_VERSION!(1, 0);
+pub const BCRYPT_SIGNATURE_INTERFACE_VERSION_1: BCRYPT_INTERFACE_VERSION =
+ BCRYPT_MAKE_INTERFACE_VERSION!(1, 0);
+pub const BCRYPT_RNG_INTERFACE_VERSION_1: BCRYPT_INTERFACE_VERSION =
+ BCRYPT_MAKE_INTERFACE_VERSION!(1, 0);
+pub const CRYPT_MIN_DEPENDENCIES: ULONG = 0x00000001;
+pub const CRYPT_PROCESS_ISOLATE: ULONG = 0x00010000;
+pub const CRYPT_UM: ULONG = 0x00000001;
+pub const CRYPT_KM: ULONG = 0x00000002;
+pub const CRYPT_MM: ULONG = 0x00000003;
+pub const CRYPT_ANY: ULONG = 0x00000004;
+pub const CRYPT_OVERWRITE: ULONG = 0x00000001;
+pub const CRYPT_LOCAL: ULONG = 0x00000001;
+pub const CRYPT_DOMAIN: ULONG = 0x00000002;
+pub const CRYPT_EXCLUSIVE: ULONG = 0x00000001;
+pub const CRYPT_OVERRIDE: ULONG = 0x00010000;
+pub const CRYPT_ALL_FUNCTIONS: ULONG = 0x00000001;
+pub const CRYPT_ALL_PROVIDERS: ULONG = 0x00000002;
+pub const CRYPT_PRIORITY_TOP: ULONG = 0x00000000;
+pub const CRYPT_PRIORITY_BOTTOM: ULONG = 0xFFFFFFFF;
+pub const CRYPT_DEFAULT_CONTEXT: &'static str = "Default";
+STRUCT!{struct CRYPT_INTERFACE_REG {
+ dwInterface: ULONG,
+ dwFlags: ULONG,
+ cFunctions: ULONG,
+ rgpszFunctions: *mut PWSTR,
+}}
+pub type PCRYPT_INTERFACE_REG = *mut CRYPT_INTERFACE_REG;
+STRUCT!{struct CRYPT_IMAGE_REG {
+ pszImage: PWSTR,
+ cInterfaces: ULONG,
+ rgpInterfaces: *mut PCRYPT_INTERFACE_REG,
+}}
+pub type PCRYPT_IMAGE_REG = *mut CRYPT_IMAGE_REG;
+STRUCT!{struct CRYPT_PROVIDER_REG {
+ cAliases: ULONG,
+ rgpszAliases: *mut PWSTR,
+ pUM: PCRYPT_IMAGE_REG,
+ pKM: PCRYPT_IMAGE_REG,
+}}
+pub type PCRYPT_PROVIDER_REG = *mut CRYPT_PROVIDER_REG;
+STRUCT!{struct CRYPT_PROVIDERS {
+ cProviders: ULONG,
+ rgpszProviders: *mut PWSTR,
+}}
+pub type PCRYPT_PROVIDERS = *mut CRYPT_PROVIDERS;
+STRUCT!{struct CRYPT_CONTEXT_CONFIG {
+ dwFlags: ULONG,
+ dwReserved: ULONG,
+}}
+pub type PCRYPT_CONTEXT_CONFIG = *mut CRYPT_CONTEXT_CONFIG;
+STRUCT!{struct CRYPT_CONTEXT_FUNCTION_CONFIG {
+ dwFlags: ULONG,
+ dwReserved: ULONG,
+}}
+pub type PCRYPT_CONTEXT_FUNCTION_CONFIG = *mut CRYPT_CONTEXT_FUNCTION_CONFIG;
+STRUCT!{struct CRYPT_CONTEXTS {
+ cContexts: ULONG,
+ rgpszContexts: *mut PWSTR,
+}}
+pub type PCRYPT_CONTEXTS = *mut CRYPT_CONTEXTS;
+STRUCT!{struct CRYPT_CONTEXT_FUNCTIONS {
+ cFunctions: ULONG,
+ rgpszFunctions: *mut PWSTR,
+}}
+pub type PCRYPT_CONTEXT_FUNCTIONS = *mut CRYPT_CONTEXT_FUNCTIONS;
+STRUCT!{struct CRYPT_CONTEXT_FUNCTION_PROVIDERS {
+ cProviders: ULONG,
+ rgpszProviders: *mut PWSTR,
+}}
+pub type PCRYPT_CONTEXT_FUNCTION_PROVIDERS = *mut CRYPT_CONTEXT_FUNCTION_PROVIDERS;
+STRUCT!{struct CRYPT_PROPERTY_REF {
+ pszProperty: PWSTR,
+ cbValue: ULONG,
+ pbValue: PUCHAR,
+}}
+pub type PCRYPT_PROPERTY_REF = *mut CRYPT_PROPERTY_REF;
+STRUCT!{struct CRYPT_IMAGE_REF {
+ pszImage: PWSTR,
+ dwFlags: ULONG,
+}}
+pub type PCRYPT_IMAGE_REF = *mut CRYPT_IMAGE_REF;
+STRUCT!{struct CRYPT_PROVIDER_REF {
+ dwInterface: ULONG,
+ pszFunction: PWSTR,
+ pszProvider: PWSTR,
+ cProperties: ULONG,
+ rgpProperties: *mut PCRYPT_PROPERTY_REF,
+ pUM: PCRYPT_IMAGE_REF,
+ pKM: PCRYPT_IMAGE_REF,
+}}
+pub type PCRYPT_PROVIDER_REF = *mut CRYPT_PROVIDER_REF;
+STRUCT!{struct CRYPT_PROVIDER_REFS {
+ cProviders: ULONG,
+ rgpProviders: *mut PCRYPT_PROVIDER_REF,
+}}
+pub type PCRYPT_PROVIDER_REFS = *mut CRYPT_PROVIDER_REFS;
+extern "system" {
+ pub fn BCryptQueryProviderRegistration(
+ pszProvider: LPCWSTR,
+ dwMode: ULONG,
+ dwInterface: ULONG,
+ pcbBuffer: *mut ULONG,
+ ppBuffer: *mut PCRYPT_PROVIDER_REG,
+ ) -> NTSTATUS;
+ pub fn BCryptEnumRegisteredProviders(
+ pcbBuffer: *mut ULONG,
+ ppBuffer: *mut PCRYPT_PROVIDERS,
+ ) -> NTSTATUS;
+ pub fn BCryptCreateContext(
+ dwTable: ULONG,
+ pszContext: LPCWSTR,
+ pConfig: PCRYPT_CONTEXT_CONFIG,
+ ) -> NTSTATUS;
+ pub fn BCryptDeleteContext(
+ dwTable: ULONG,
+ pszContext: LPCWSTR,
+ ) -> NTSTATUS;
+ pub fn BCryptEnumContexts(
+ dwTable: ULONG,
+ pcbBuffer: *mut ULONG,
+ ppBuffer: *mut PCRYPT_CONTEXTS,
+ ) -> NTSTATUS;
+ pub fn BCryptConfigureContext(
+ dwTable: ULONG,
+ pszContext: LPCWSTR,
+ pConfig: PCRYPT_CONTEXT_CONFIG,
+ ) -> NTSTATUS;
+ pub fn BCryptQueryContextConfiguration(
+ dwTable: ULONG,
+ pszContext: LPCWSTR,
+ pcbBuffer: *mut ULONG,
+ ppBuffer: *mut PCRYPT_CONTEXT_CONFIG,
+ ) -> NTSTATUS;
+ pub fn BCryptAddContextFunction(
+ dwTable: ULONG,
+ pszContext: LPCWSTR,
+ dwInterface: ULONG,
+ pszFunction: LPCWSTR,
+ dwPosition: ULONG,
+ ) -> NTSTATUS;
+ pub fn BCryptRemoveContextFunction(
+ dwTable: ULONG,
+ pszContext: LPCWSTR,
+ dwInterface: ULONG,
+ pszFunction: LPCWSTR,
+ ) -> NTSTATUS;
+ pub fn BCryptEnumContextFunctions(
+ dwTable: ULONG,
+ pszContext: LPCWSTR,
+ dwInterface: ULONG,
+ pcbBuffer: *mut ULONG,
+ ppBuffer: *mut PCRYPT_CONTEXT_FUNCTIONS,
+ ) -> NTSTATUS;
+ pub fn BCryptConfigureContextFunction(
+ dwTable: ULONG,
+ pszContext: LPCWSTR,
+ dwInterface: ULONG,
+ pszFunction: LPCWSTR,
+ pConfig: PCRYPT_CONTEXT_FUNCTION_CONFIG,
+ ) -> NTSTATUS;
+ pub fn BCryptQueryContextFunctionConfiguration(
+ dwTable: ULONG,
+ pszContext: LPCWSTR,
+ dwInterface: ULONG,
+ pszFunction: LPCWSTR,
+ pcbBuffer: *mut ULONG,
+ ppBuffer: *mut PCRYPT_CONTEXT_FUNCTION_CONFIG,
+ ) -> NTSTATUS;
+ pub fn BCryptEnumContextFunctionProviders(
+ dwTable: ULONG,
+ pszContext: LPCWSTR,
+ dwInterface: ULONG,
+ pszFunction: LPCWSTR,
+ pcbBuffer: *mut ULONG,
+ ppBuffer: *mut PCRYPT_CONTEXT_FUNCTION_PROVIDERS,
+ ) -> NTSTATUS;
+ pub fn BCryptSetContextFunctionProperty(
+ dwTable: ULONG,
+ pszContext: LPCWSTR,
+ dwInterface: ULONG,
+ pszFunction: LPCWSTR,
+ pszProperty: LPCWSTR,
+ cbValue: ULONG,
+ pbValue: PUCHAR,
+ ) -> NTSTATUS;
+ pub fn BCryptQueryContextFunctionProperty(
+ dwTable: ULONG,
+ pszContext: LPCWSTR,
+ dwInterface: ULONG,
+ pszFunction: LPCWSTR,
+ pszProperty: LPCWSTR,
+ pcbValue: *mut ULONG,
+ ppbValue: *mut PUCHAR,
+ ) -> NTSTATUS;
+ pub fn BCryptRegisterConfigChangeNotify(
+ phEvent: *mut HANDLE,
+ ) -> NTSTATUS;
+ pub fn BCryptUnregisterConfigChangeNotify(
+ hEvent: HANDLE,
+ ) -> NTSTATUS;
+ pub fn BCryptResolveProviders(
+ pszContext: LPCWSTR,
+ dwInterface: ULONG,
+ pszFunction: LPCWSTR,
+ pszProvider: LPCWSTR,
+ dwMode: ULONG,
+ dwFlags: ULONG,
+ pcbBuffer: *mut ULONG,
+ ppBuffer: *mut PCRYPT_PROVIDER_REFS,
+ ) -> NTSTATUS;
+ pub fn BCryptGetFipsAlgorithmMode(
+ pfEnabled: *mut BOOLEAN,
+ ) -> NTSTATUS;
+ pub fn CngGetFipsAlgorithmMode() -> BOOLEAN;
+}
diff --git a/third_party/rust/chromium_crates_io/vendor/winapi-0.3.9/src/shared/bthdef.rs b/third_party/rust/chromium_crates_io/vendor/winapi-0.3.9/src/shared/bthdef.rs
new file mode 100644
index 000000000000..42a797cb6ab2
--- /dev/null
+++ b/third_party/rust/chromium_crates_io/vendor/winapi-0.3.9/src/shared/bthdef.rs
@@ -0,0 +1,1103 @@
+// Licensed under the Apache License, Version 2.0
+// or the MIT license
+// , at your option.
+// All files in the project carrying such notice may not be copied, modified, or distributed
+// except according to those terms.
+use shared::bthsdpdef::SDP_ERROR;
+use shared::guiddef::GUID;
+use shared::minwindef::{DWORD, UCHAR, ULONG, USHORT};
+use shared::ntdef::{CHAR, ULONGLONG};
+pub const BTH_MAJORVERSION: DWORD = 2;
+pub const BTH_MINORVERSION: DWORD = 1;
+DEFINE_GUID!{GUID_BTHPORT_DEVICE_INTERFACE,
+ 0x850302a, 0xb344, 0x4fda, 0x9b, 0xe9, 0x90, 0x57, 0x6b, 0x8d, 0x46, 0xf0}
+DEFINE_GUID!{GUID_BTH_RFCOMM_SERVICE_DEVICE_INTERFACE,
+ 0xb142fc3e, 0xfa4e, 0x460b, 0x8a, 0xbc, 0x07, 0x2b, 0x62, 0x8b, 0x3c, 0x70}
+DEFINE_GUID!{GUID_BLUETOOTH_RADIO_IN_RANGE,
+ 0xea3b5b82, 0x26ee, 0x450e, 0xb0, 0xd8, 0xd2, 0x6f, 0xe3, 0x0a, 0x38, 0x69}
+DEFINE_GUID!{GUID_BLUETOOTH_RADIO_OUT_OF_RANGE,
+ 0xe28867c9, 0xc2aa, 0x4ced, 0xb9, 0x69, 0x45, 0x70, 0x86, 0x60, 0x37, 0xc4}
+DEFINE_GUID!{GUID_BLUETOOTH_L2CAP_EVENT,
+ 0x7eae4030, 0xb709, 0x4aa8, 0xac, 0x55, 0xe9, 0x53, 0x82, 0x9c, 0x9d, 0xaa}
+DEFINE_GUID!{GUID_BLUETOOTH_HCI_EVENT,
+ 0xfc240062, 0x1541, 0x49be, 0xb4, 0x63, 0x84, 0xc4, 0xdc, 0xd7, 0xbf, 0x7f}
+DEFINE_GUID!{GUID_BLUETOOTH_AUTHENTICATION_REQUEST,
+ 0x5DC9136D, 0x996C, 0x46DB, 0x84, 0xF5, 0x32, 0xC0, 0xA3, 0xF4, 0x73, 0x52}
+DEFINE_GUID!{GUID_BLUETOOTH_KEYPRESS_EVENT,
+ 0xD668DFCD, 0x0F4E, 0x4EFC, 0xBF, 0xE0, 0x39, 0x2E, 0xEE, 0xC5, 0x10, 0x9C}
+DEFINE_GUID!{GUID_BLUETOOTH_HCI_VENDOR_EVENT,
+ 0x547247e6, 0x45bb, 0x4c33, 0xaf, 0x8c, 0xc0, 0x0e, 0xfe, 0x15, 0xa7, 0x1d}
+DEFINE_GUID!{Bluetooth_Base_UUID,
+ 0x00000000, 0x0000, 0x1000, 0x80, 0x00, 0x00, 0x80, 0x5F, 0x9B, 0x34, 0xFB}
+pub const SDP_PROTOCOL_UUID16: USHORT = 0x0001;
+pub const UDP_PROTOCOL_UUID16: USHORT = 0x0002;
+pub const RFCOMM_PROTOCOL_UUID16: USHORT = 0x0003;
+pub const TCP_PROTOCOL_UUID16: USHORT = 0x0004;
+pub const TCSBIN_PROTOCOL_UUID16: USHORT = 0x0005;
+pub const TCSAT_PROTOCOL_UUID16: USHORT = 0x0006;
+pub const ATT_PROTOCOL_UUID16: USHORT = 0x0007;
+pub const OBEX_PROTOCOL_UUID16: USHORT = 0x0008;
+pub const IP_PROTOCOL_UUID16: USHORT = 0x0009;
+pub const FTP_PROTOCOL_UUID16: USHORT = 0x000A;
+pub const HTTP_PROTOCOL_UUID16: USHORT = 0x000C;
+pub const WSP_PROTOCOL_UUID16: USHORT = 0x000E;
+pub const BNEP_PROTOCOL_UUID16: USHORT = 0x000F;
+pub const UPNP_PROTOCOL_UUID16: USHORT = 0x0010;
+pub const HID_PROTOCOL_UUID16: USHORT = 0x0011;
+pub const HCCC_PROTOCOL_UUID16: USHORT = 0x0012;
+pub const HCDC_PROTOCOL_UUID16: USHORT = 0x0014;
+pub const HCN_PROTOCOL_UUID16: USHORT = 0x0016;
+pub const AVCTP_PROTOCOL_UUID16: USHORT = 0x0017;
+pub const AVDTP_PROTOCOL_UUID16: USHORT = 0x0019;
+pub const CMPT_PROTOCOL_UUID16: USHORT = 0x001B;
+pub const UDI_C_PLANE_PROTOCOL_UUID16: USHORT = 0x001D;
+pub const L2CAP_PROTOCOL_UUID16: USHORT = 0x0100;
+DEFINE_BLUETOOTH_UUID128!{SDP_PROTOCOL_UUID, SDP_PROTOCOL_UUID16}
+DEFINE_BLUETOOTH_UUID128!{UDP_PROTOCOL_UUID, UDP_PROTOCOL_UUID16}
+DEFINE_BLUETOOTH_UUID128!{RFCOMM_PROTOCOL_UUID, RFCOMM_PROTOCOL_UUID16}
+DEFINE_BLUETOOTH_UUID128!{TCP_PROTOCOL_UUID, TCP_PROTOCOL_UUID16}
+DEFINE_BLUETOOTH_UUID128!{TCSBIN_PROTOCOL_UUID, TCSBIN_PROTOCOL_UUID16}
+DEFINE_BLUETOOTH_UUID128!{TCSAT_PROTOCOL_UUID, TCSAT_PROTOCOL_UUID16}
+DEFINE_BLUETOOTH_UUID128!{ATT_PROTOCOL_UUID, ATT_PROTOCOL_UUID16}
+DEFINE_BLUETOOTH_UUID128!{OBEX_PROTOCOL_UUID, OBEX_PROTOCOL_UUID16}
+DEFINE_BLUETOOTH_UUID128!{IP_PROTOCOL_UUID, IP_PROTOCOL_UUID16}
+DEFINE_BLUETOOTH_UUID128!{FTP_PROTOCOL_UUID, FTP_PROTOCOL_UUID16}
+DEFINE_BLUETOOTH_UUID128!{HTTP_PROTOCOL_UUID, HTTP_PROTOCOL_UUID16}
+DEFINE_BLUETOOTH_UUID128!{WSP_PROTOCOL_UUID, WSP_PROTOCOL_UUID16}
+DEFINE_BLUETOOTH_UUID128!{BNEP_PROTOCOL_UUID, BNEP_PROTOCOL_UUID16}
+DEFINE_BLUETOOTH_UUID128!{UPNP_PROTOCOL_UUID, UPNP_PROTOCOL_UUID16}
+DEFINE_BLUETOOTH_UUID128!{HID_PROTOCOL_UUID, HID_PROTOCOL_UUID16}
+DEFINE_BLUETOOTH_UUID128!{HCCC_PROTOCOL_UUID, HCCC_PROTOCOL_UUID16}
+DEFINE_BLUETOOTH_UUID128!{HCDC_PROTOCOL_UUID, HCDC_PROTOCOL_UUID16}
+DEFINE_BLUETOOTH_UUID128!{HCN_PROTOCOL_UUID, HCN_PROTOCOL_UUID16}
+DEFINE_BLUETOOTH_UUID128!{AVCTP_PROTOCOL_UUID, AVCTP_PROTOCOL_UUID16}
+DEFINE_BLUETOOTH_UUID128!{AVDTP_PROTOCOL_UUID, AVDTP_PROTOCOL_UUID16}
+DEFINE_BLUETOOTH_UUID128!{CMPT_PROTOCOL_UUID, CMPT_PROTOCOL_UUID16}
+DEFINE_BLUETOOTH_UUID128!{UDI_C_PLANE_PROTOCOL_UUID, UDI_C_PLANE_PROTOCOL_UUID16}
+DEFINE_BLUETOOTH_UUID128!{L2CAP_PROTOCOL_UUID, L2CAP_PROTOCOL_UUID16}
+pub const ServiceDiscoveryServerServiceClassID_UUID16: USHORT = 0x1000;
+pub const BrowseGroupDescriptorServiceClassID_UUID16: USHORT = 0x1001;
+pub const PublicBrowseGroupServiceClassID_UUID16: USHORT = 0x1002;
+pub const SerialPortServiceClassID_UUID16: USHORT = 0x1101;
+pub const LANAccessUsingPPPServiceClassID_UUID16: USHORT = 0x1102;
+pub const DialupNetworkingServiceClassID_UUID16: USHORT = 0x1103;
+pub const IrMCSyncServiceClassID_UUID16: USHORT = 0x1104;
+pub const OBEXObjectPushServiceClassID_UUID16: USHORT = 0x1105;
+pub const OBEXFileTransferServiceClassID_UUID16: USHORT = 0x1106;
+pub const IrMcSyncCommandServiceClassID_UUID16: USHORT = 0x1107;
+pub const HeadsetServiceClassID_UUID16: USHORT = 0x1108;
+pub const CordlessTelephonyServiceClassID_UUID16: USHORT = 0x1109;
+pub const AudioSourceServiceClassID_UUID16: USHORT = 0x110A;
+pub const AudioSinkServiceClassID_UUID16: USHORT = 0x110B;
+pub const AVRemoteControlTargetServiceClassID_UUID16: USHORT = 0x110C;
+pub const AVRemoteControlServiceClassID_UUID16: USHORT = 0x110E;
+pub const AVRemoteControlControllerServiceClass_UUID16: USHORT = 0x110F;
+pub const IntercomServiceClassID_UUID16: USHORT = 0x1110;
+pub const FaxServiceClassID_UUID16: USHORT = 0x1111;
+pub const HeadsetAudioGatewayServiceClassID_UUID16: USHORT = 0x1112;
+pub const WAPServiceClassID_UUID16: USHORT = 0x1113;
+pub const WAPClientServiceClassID_UUID16: USHORT = 0x1114;
+pub const PANUServiceClassID_UUID16: USHORT = 0x1115;
+pub const NAPServiceClassID_UUID16: USHORT = 0x1116;
+pub const GNServiceClassID_UUID16: USHORT = 0x1117;
+pub const DirectPrintingServiceClassID_UUID16: USHORT = 0x1118;
+pub const ReferencePrintingServiceClassID_UUID16: USHORT = 0x1119;
+pub const ImagingResponderServiceClassID_UUID16: USHORT = 0x111B;
+pub const ImagingAutomaticArchiveServiceClassID_UUID16: USHORT = 0x111C;
+pub const ImagingReferenceObjectsServiceClassID_UUID16: USHORT = 0x111D;
+pub const HandsfreeServiceClassID_UUID16: USHORT = 0x111E;
+pub const HandsfreeAudioGatewayServiceClassID_UUID16: USHORT = 0x111F;
+pub const DirectPrintingReferenceObjectsServiceClassID_UUID16: USHORT = 0x1120;
+pub const ReflectsUIServiceClassID_UUID16: USHORT = 0x1121;
+pub const PrintingStatusServiceClassID_UUID16: USHORT = 0x1123;
+pub const HumanInterfaceDeviceServiceClassID_UUID16: USHORT = 0x1124;
+pub const HCRPrintServiceClassID_UUID16: USHORT = 0x1126;
+pub const HCRScanServiceClassID_UUID16: USHORT = 0x1127;
+pub const CommonISDNAccessServiceClassID_UUID16: USHORT = 0x1128;
+pub const VideoConferencingGWServiceClassID_UUID16: USHORT = 0x1129;
+pub const UDIMTServiceClassID_UUID16: USHORT = 0x112A;
+pub const UDITAServiceClassID_UUID16: USHORT = 0x112B;
+pub const AudioVideoServiceClassID_UUID16: USHORT = 0x112C;
+pub const SimAccessServiceClassID_UUID16: USHORT = 0x112D;
+pub const PhonebookAccessPceServiceClassID_UUID16: USHORT = 0x112E;
+pub const PhonebookAccessPseServiceClassID_UUID16: USHORT = 0x112F;
+pub const HeadsetHSServiceClassID_UUID16: USHORT = 0x1131;
+pub const MessageAccessServerServiceClassID_UUID16: USHORT = 0x1132;
+pub const MessageNotificationServerServiceClassID_UUID16: USHORT = 0x1133;
+pub const GNSSServerServiceClassID_UUID16: USHORT = 0x1136;
+pub const ThreeDimensionalDisplayServiceClassID_UUID16: USHORT = 0x1137;
+pub const ThreeDimensionalGlassesServiceClassID_UUID16: USHORT = 0x1138;
+pub const MPSServiceClassID_UUID16: USHORT = 0x113B;
+pub const CTNAccessServiceClassID_UUID16: USHORT = 0x113C;
+pub const CTNNotificationServiceClassID_UUID16: USHORT = 0x113D;
+pub const PnPInformationServiceClassID_UUID16: USHORT = 0x1200;
+pub const GenericNetworkingServiceClassID_UUID16: USHORT = 0x1201;
+pub const GenericFileTransferServiceClassID_UUID16: USHORT = 0x1202;
+pub const GenericAudioServiceClassID_UUID16: USHORT = 0x1203;
+pub const GenericTelephonyServiceClassID_UUID16: USHORT = 0x1204;
+pub const UPnpServiceClassID_UUID16: USHORT = 0x1205;
+pub const UPnpIpServiceClassID_UUID16: USHORT = 0x1206;
+pub const ESdpUpnpIpPanServiceClassID_UUID16: USHORT = 0x1300;
+pub const ESdpUpnpIpLapServiceClassID_UUID16: USHORT = 0x1301;
+pub const ESdpUpnpL2capServiceClassID_UUID16: USHORT = 0x1302;
+pub const VideoSourceServiceClassID_UUID16: USHORT = 0x1303;
+pub const VideoSinkServiceClassID_UUID16: USHORT = 0x1304;
+pub const HealthDeviceProfileSourceServiceClassID_UUID16: USHORT = 0x1401;
+pub const HealthDeviceProfileSinkServiceClassID_UUID16: USHORT = 0x1402;
+DEFINE_BLUETOOTH_UUID128!{ServiceDiscoveryServerServiceClassID_UUID,
+ ServiceDiscoveryServerServiceClassID_UUID16}
+DEFINE_BLUETOOTH_UUID128!{BrowseGroupDescriptorServiceClassID_UUID,
+ BrowseGroupDescriptorServiceClassID_UUID16}
+DEFINE_BLUETOOTH_UUID128!{PublicBrowseGroupServiceClass_UUID,
+ PublicBrowseGroupServiceClassID_UUID16}
+DEFINE_BLUETOOTH_UUID128!{SerialPortServiceClass_UUID,
+ SerialPortServiceClassID_UUID16}
+DEFINE_BLUETOOTH_UUID128!{LANAccessUsingPPPServiceClass_UUID,
+ LANAccessUsingPPPServiceClassID_UUID16}
+DEFINE_BLUETOOTH_UUID128!{DialupNetworkingServiceClass_UUID,
+ DialupNetworkingServiceClassID_UUID16}
+DEFINE_BLUETOOTH_UUID128!{IrMCSyncServiceClass_UUID,
+ IrMCSyncServiceClassID_UUID16}
+DEFINE_BLUETOOTH_UUID128!{OBEXObjectPushServiceClass_UUID,
+ OBEXObjectPushServiceClassID_UUID16}
+DEFINE_BLUETOOTH_UUID128!{OBEXFileTransferServiceClass_UUID,
+ OBEXFileTransferServiceClassID_UUID16}
+DEFINE_BLUETOOTH_UUID128!{IrMCSyncCommandServiceClass_UUID,
+ IrMcSyncCommandServiceClassID_UUID16}
+DEFINE_BLUETOOTH_UUID128!{HeadsetServiceClass_UUID,
+ HeadsetServiceClassID_UUID16}
+DEFINE_BLUETOOTH_UUID128!{CordlessTelephonyServiceClass_UUID,
+ CordlessTelephonyServiceClassID_UUID16}
+DEFINE_BLUETOOTH_UUID128!{AudioSourceServiceClass_UUID,
+ AudioSourceServiceClassID_UUID16}
+DEFINE_BLUETOOTH_UUID128!{AudioSinkServiceClass_UUID,
+ AudioSinkServiceClassID_UUID16}
+DEFINE_BLUETOOTH_UUID128!{AVRemoteControlTargetServiceClass_UUID,
+ AVRemoteControlTargetServiceClassID_UUID16}
+DEFINE_BLUETOOTH_UUID128!{AVRemoteControlServiceClass_UUID,
+ AVRemoteControlServiceClassID_UUID16}
+DEFINE_BLUETOOTH_UUID128!{AVRemoteControlControllerServiceClass_UUID,
+ AVRemoteControlControllerServiceClass_UUID16}
+DEFINE_BLUETOOTH_UUID128!{IntercomServiceClass_UUID,
+ IntercomServiceClassID_UUID16}
+DEFINE_BLUETOOTH_UUID128!{FaxServiceClass_UUID,
+ FaxServiceClassID_UUID16}
+DEFINE_BLUETOOTH_UUID128!{HeadsetAudioGatewayServiceClass_UUID,
+ HeadsetAudioGatewayServiceClassID_UUID16}
+DEFINE_BLUETOOTH_UUID128!{WAPServiceClass_UUID,
+ WAPServiceClassID_UUID16}
+DEFINE_BLUETOOTH_UUID128!{WAPClientServiceClass_UUID,
+ WAPClientServiceClassID_UUID16}
+DEFINE_BLUETOOTH_UUID128!{PANUServiceClass_UUID,
+ PANUServiceClassID_UUID16}
+DEFINE_BLUETOOTH_UUID128!{NAPServiceClass_UUID,
+ NAPServiceClassID_UUID16}
+DEFINE_BLUETOOTH_UUID128!{GNServiceClass_UUID,
+ GNServiceClassID_UUID16}
+DEFINE_BLUETOOTH_UUID128!{DirectPrintingServiceClass_UUID,
+ DirectPrintingServiceClassID_UUID16}
+DEFINE_BLUETOOTH_UUID128!{ReferencePrintingServiceClass_UUID,
+ ReferencePrintingServiceClassID_UUID16}
+DEFINE_BLUETOOTH_UUID128!{ImagingResponderServiceClass_UUID,
+ ImagingResponderServiceClassID_UUID16}
+DEFINE_BLUETOOTH_UUID128!{ImagingAutomaticArchiveServiceClass_UUID,
+ ImagingAutomaticArchiveServiceClassID_UUID16}
+DEFINE_BLUETOOTH_UUID128!{ImagingReferenceObjectsServiceClass_UUID,
+ ImagingReferenceObjectsServiceClassID_UUID16}
+DEFINE_BLUETOOTH_UUID128!{HandsfreeServiceClass_UUID,
+ HandsfreeServiceClassID_UUID16}
+DEFINE_BLUETOOTH_UUID128!{HandsfreeAudioGatewayServiceClass_UUID,
+ HandsfreeAudioGatewayServiceClassID_UUID16}
+DEFINE_BLUETOOTH_UUID128!{DirectPrintingReferenceObjectsServiceClass_UUID,
+ DirectPrintingReferenceObjectsServiceClassID_UUID16}
+DEFINE_BLUETOOTH_UUID128!{ReflectedUIServiceClass_UUID,
+ ReflectsUIServiceClassID_UUID16}
+DEFINE_BLUETOOTH_UUID128!{PrintingStatusServiceClass_UUID,
+ PrintingStatusServiceClassID_UUID16}
+DEFINE_BLUETOOTH_UUID128!{HumanInterfaceDeviceServiceClass_UUID,
+ HumanInterfaceDeviceServiceClassID_UUID16}
+DEFINE_BLUETOOTH_UUID128!{HCRPrintServiceClass_UUID,
+ HCRPrintServiceClassID_UUID16}
+DEFINE_BLUETOOTH_UUID128!{HCRScanServiceClass_UUID,
+ HCRScanServiceClassID_UUID16}
+DEFINE_BLUETOOTH_UUID128!{CommonISDNAccessServiceClass_UUID,
+ CommonISDNAccessServiceClassID_UUID16}
+DEFINE_BLUETOOTH_UUID128!{VideoConferencingGWServiceClass_UUID,
+ VideoConferencingGWServiceClassID_UUID16}
+DEFINE_BLUETOOTH_UUID128!{UDIMTServiceClass_UUID,
+ UDIMTServiceClassID_UUID16}
+DEFINE_BLUETOOTH_UUID128!{UDITAServiceClass_UUID,
+ UDITAServiceClassID_UUID16}
+DEFINE_BLUETOOTH_UUID128!{AudioVideoServiceClass_UUID,
+ AudioVideoServiceClassID_UUID16}
+DEFINE_BLUETOOTH_UUID128!{SimAccessServiceClass_UUID,
+ SimAccessServiceClassID_UUID16}
+DEFINE_BLUETOOTH_UUID128!{PhonebookAccessPceServiceClass_UUID,
+ PhonebookAccessPceServiceClassID_UUID16}
+DEFINE_BLUETOOTH_UUID128!{PhonebookAccessPseServiceClass_UUID,
+ PhonebookAccessPseServiceClassID_UUID16}
+DEFINE_BLUETOOTH_UUID128!{HeadsetHSServiceClass_UUID,
+ HeadsetHSServiceClassID_UUID16}
+DEFINE_BLUETOOTH_UUID128!{MessageAccessServerServiceClass_UUID,
+ MessageAccessServerServiceClassID_UUID16}
+DEFINE_BLUETOOTH_UUID128!{MessageNotificationServerServiceClass_UUID,
+ MessageNotificationServerServiceClassID_UUID16}
+DEFINE_BLUETOOTH_UUID128!{GNSSServerServiceClass_UUID,
+ GNSSServerServiceClassID_UUID16}
+DEFINE_BLUETOOTH_UUID128!{ThreeDimensionalDisplayServiceClass_UUID,
+ ThreeDimensionalDisplayServiceClassID_UUID16}
+DEFINE_BLUETOOTH_UUID128!{ThreeDimensionalGlassesServiceClass_UUID,
+ ThreeDimensionalGlassesServiceClassID_UUID16}
+DEFINE_BLUETOOTH_UUID128!{MPSServiceClass_UUID,
+ MPSServiceClassID_UUID16}
+DEFINE_BLUETOOTH_UUID128!{CTNAccessServiceClass_UUID,
+ CTNAccessServiceClassID_UUID16}
+DEFINE_BLUETOOTH_UUID128!{CTNNotificationServiceClass_UUID,
+ CTNNotificationServiceClassID_UUID16}
+DEFINE_BLUETOOTH_UUID128!{PnPInformationServiceClass_UUID,
+ PnPInformationServiceClassID_UUID16}
+DEFINE_BLUETOOTH_UUID128!{GenericNetworkingServiceClass_UUID,
+ GenericNetworkingServiceClassID_UUID16}
+DEFINE_BLUETOOTH_UUID128!{GenericFileTransferServiceClass_UUID,
+ GenericFileTransferServiceClassID_UUID16}
+DEFINE_BLUETOOTH_UUID128!{GenericAudioServiceClass_UUID,
+ GenericAudioServiceClassID_UUID16}
+DEFINE_BLUETOOTH_UUID128!{GenericTelephonyServiceClass_UUID,
+ GenericTelephonyServiceClassID_UUID16}
+DEFINE_BLUETOOTH_UUID128!{UPnpServiceClass_UUID,
+ UPnpServiceClassID_UUID16}
+DEFINE_BLUETOOTH_UUID128!{UPnpIpServiceClass_UUID,
+ UPnpIpServiceClassID_UUID16}
+DEFINE_BLUETOOTH_UUID128!{ESdpUpnpIpPanServiceClass_UUID,
+ ESdpUpnpIpPanServiceClassID_UUID16}
+DEFINE_BLUETOOTH_UUID128!{ESdpUpnpIpLapServiceClass_UUID,
+ ESdpUpnpIpLapServiceClassID_UUID16}
+DEFINE_BLUETOOTH_UUID128!{ESdpUpnpL2capServiceClass_UUID,
+ ESdpUpnpL2capServiceClassID_UUID16}
+DEFINE_BLUETOOTH_UUID128!{VideoSourceServiceClass_UUID,
+ VideoSourceServiceClassID_UUID16}
+DEFINE_BLUETOOTH_UUID128!{VideoSinkServiceClass_UUID,
+ VideoSinkServiceClassID_UUID16}
+DEFINE_BLUETOOTH_UUID128!{HealthDeviceProfileSourceServiceClass_UUID,
+ HealthDeviceProfileSourceServiceClassID_UUID16}
+DEFINE_BLUETOOTH_UUID128!{HealthDeviceProfileSinkServiceClass_UUID,
+ HealthDeviceProfileSinkServiceClassID_UUID16}
+pub const AdvancedAudioDistributionProfileID_UUID16: USHORT = 0x110D;
+pub const ImagingServiceProfileID_UUID16: USHORT = 0x111A;
+pub const BasicPrintingProfileID_UUID16: USHORT = 0x1122;
+pub const HardcopyCableReplacementProfileID_UUID16: USHORT = 0x1125;
+pub const PhonebookAccessProfileID_UUID16: USHORT = 0x1130;
+pub const MessageAccessProfileID_UUID16: USHORT = 0x1134;
+pub const GNSSProfileID_UUID16: USHORT = 0x1135;
+pub const ThreeDimensionalSynchronizationProfileID_UUID16: USHORT = 0x1139;
+pub const MPSProfileID_UUID16: USHORT = 0x113A;
+pub const CTNProfileID_UUID16: USHORT = 0x113E;
+pub const VideoDistributionProfileID_UUID16: USHORT = 0x1305;
+pub const HealthDeviceProfileID_UUID16: USHORT = 0x1400;
+DEFINE_BLUETOOTH_UUID128!{AdvancedAudioDistributionProfile_UUID,
+ AdvancedAudioDistributionProfileID_UUID16}
+DEFINE_BLUETOOTH_UUID128!{ImagingServiceProfile_UUID,
+ ImagingServiceProfileID_UUID16}
+DEFINE_BLUETOOTH_UUID128!{BasicPrintingProfile_UUID,
+ BasicPrintingProfileID_UUID16}
+DEFINE_BLUETOOTH_UUID128!{HardcopyCableReplacementProfile_UUID,
+ HardcopyCableReplacementProfileID_UUID16}
+DEFINE_BLUETOOTH_UUID128!{PhonebookAccessProfile_UUID,
+ PhonebookAccessProfileID_UUID16}
+DEFINE_BLUETOOTH_UUID128!{MessageAccessProfile_UUID,
+ MessageAccessProfileID_UUID16}
+DEFINE_BLUETOOTH_UUID128!{GNSSProfile_UUID,
+ GNSSProfileID_UUID16}
+DEFINE_BLUETOOTH_UUID128!{ThreeDimensionalSynchronizationProfile_UUID,
+ ThreeDimensionalSynchronizationProfileID_UUID16}
+DEFINE_BLUETOOTH_UUID128!{MPSProfile_UUID,
+ MPSProfileID_UUID16}
+DEFINE_BLUETOOTH_UUID128!{CTNProfile_UUID,
+ CTNProfileID_UUID16}
+DEFINE_BLUETOOTH_UUID128!{VideoDistributionProfile_UUID,
+ VideoDistributionProfileID_UUID16}
+DEFINE_BLUETOOTH_UUID128!{HealthDeviceProfile_UUID,
+ HealthDeviceProfileID_UUID16}
+pub const VideoConferencingServiceClass_UUID: GUID = AVRemoteControlControllerServiceClass_UUID;
+pub const VideoConferencingServiceClassID_UUID16: USHORT
+ = AVRemoteControlControllerServiceClass_UUID16;
+pub const HN_PROTOCOL_UUID: GUID = HCN_PROTOCOL_UUID;
+pub const BasicPringingServiceClass_UUID: GUID = BasicPrintingProfile_UUID;
+pub const CommonISDNAccessServiceClass_UUID16: USHORT = CommonISDNAccessServiceClassID_UUID16;
+pub const VideoConferencingGWServiceClass_UUID16: USHORT
+ = VideoConferencingGWServiceClassID_UUID16;
+pub const UDIMTServiceClass_UUID16: USHORT = UDIMTServiceClassID_UUID16;
+pub const UDITAServiceClass_UUID16: USHORT = UDITAServiceClassID_UUID16;
+pub const AudioVideoServiceClass_UUID16: USHORT = AudioVideoServiceClassID_UUID16;
+pub const CordlessServiceClassID_UUID16: USHORT = CordlessTelephonyServiceClassID_UUID16;
+pub const AudioSinkSourceServiceClassID_UUID16: USHORT = AudioSinkServiceClassID_UUID16;
+pub const AdvancedAudioDistributionServiceClassID_UUID16: USHORT
+ = AdvancedAudioDistributionProfileID_UUID16;
+pub const ImagingServiceClassID_UUID16: USHORT = ImagingServiceProfileID_UUID16;
+pub const BasicPrintingServiceClassID_UUID16: USHORT = BasicPrintingProfileID_UUID16;
+pub const HardcopyCableReplacementServiceClassID_UUID16: USHORT
+ = HardcopyCableReplacementProfileID_UUID16;
+pub const AdvancedAudioDistributionServiceClass_UUID: GUID = AdvancedAudioDistributionProfile_UUID;
+pub const ImagingServiceClass_UUID: GUID = ImagingServiceProfile_UUID;
+pub const BasicPrintingServiceClass_UUID: GUID = BasicPrintingProfile_UUID;
+pub const HardcopyCableReplacementServiceClass_UUID: GUID = HardcopyCableReplacementProfile_UUID;
+pub const VideoDistributionServiceClass_UUID: GUID = VideoDistributionProfile_UUID;
+pub const BTH_MAX_NAME_SIZE: usize = 248;
+pub const BTH_MAX_PIN_SIZE: usize = 16;
+pub const BTH_LINK_KEY_LENGTH: usize = 16;
+pub const BTH_MFG_ERICSSON: u16 = 0;
+pub const BTH_MFG_NOKIA: u16 = 1;
+pub const BTH_MFG_INTEL: u16 = 2;
+pub const BTH_MFG_IBM: u16 = 3;
+pub const BTH_MFG_TOSHIBA: u16 = 4;
+pub const BTH_MFG_3COM: u16 = 5;
+pub const BTH_MFG_MICROSOFT: u16 = 6;
+pub const BTH_MFG_LUCENT: u16 = 7;
+pub const BTH_MFG_MOTOROLA: u16 = 8;
+pub const BTH_MFG_INFINEON: u16 = 9;
+pub const BTH_MFG_CSR: u16 = 10;
+pub const BTH_MFG_SILICONWAVE: u16 = 11;
+pub const BTH_MFG_DIGIANSWER: u16 = 12;
+pub const BTH_MFG_TI: u16 = 13;
+pub const BTH_MFG_PARTHUS: u16 = 14;
+pub const BTH_MFG_BROADCOM: u16 = 15;
+pub const BTH_MFG_MITEL: u16 = 16;
+pub const BTH_MFG_WIDCOMM: u16 = 17;
+pub const BTH_MFG_ZEEVO: u16 = 18;
+pub const BTH_MFG_ATMEL: u16 = 19;
+pub const BTH_MFG_MITSIBUSHI: u16 = 20;
+pub const BTH_MFG_RTX_TELECOM: u16 = 21;
+pub const BTH_MFG_KC_TECHNOLOGY: u16 = 22;
+pub const BTH_MFG_NEWLOGIC: u16 = 23;
+pub const BTH_MFG_TRANSILICA: u16 = 24;
+pub const BTH_MFG_ROHDE_SCHWARZ: u16 = 25;
+pub const BTH_MFG_TTPCOM: u16 = 26;
+pub const BTH_MFG_SIGNIA: u16 = 27;
+pub const BTH_MFG_CONEXANT: u16 = 28;
+pub const BTH_MFG_QUALCOMM: u16 = 29;
+pub const BTH_MFG_INVENTEL: u16 = 30;
+pub const BTH_MFG_AVM_BERLIN: u16 = 31;
+pub const BTH_MFG_BANDSPEED: u16 = 32;
+pub const BTH_MFG_MANSELLA: u16 = 33;
+pub const BTH_MFG_NEC: u16 = 34;
+pub const BTH_MFG_WAVEPLUS_TECHNOLOGY_CO: u16 = 35;
+pub const BTH_MFG_ALCATEL: u16 = 36;
+pub const BTH_MFG_PHILIPS_SEMICONDUCTOR: u16 = 37;
+pub const BTH_MFG_C_TECHNOLOGIES: u16 = 38;
+pub const BTH_MFG_OPEN_INTERFACE: u16 = 39;
+pub const BTH_MFG_RF_MICRO_DEVICES: u16 = 40;
+pub const BTH_MFG_HITACHI: u16 = 41;
+pub const BTH_MFG_SYMBOL_TECHNOLOGIES: u16 = 42;
+pub const BTH_MFG_TENOVIS: u16 = 43;
+pub const BTH_MFG_MACRONIX_INTERNATIONAL: u16 = 44;
+pub const BTH_MFG_APPLE: u16 = 76;
+pub const BTH_MFG_NORDIC_SEMICONDUCTORS_ASA: u16 = 89;
+pub const BTH_MFG_ARUBA_NETWORKS: u16 = 283;
+pub const BTH_MFG_INTERNAL_USE: u16 = 65535;
+pub type BTH_ADDR = ULONGLONG;
+pub type PBTH_ADDR = *mut ULONGLONG;
+pub type BTH_COD = ULONG;
+pub type PBTH_COD = *mut ULONG;
+pub type BTH_LAP = ULONG;
+pub type PBTH_LAP = *mut ULONG;
+pub const BTH_ADDR_NULL: BTH_ADDR = 0x0000000000000000;
+pub const NAP_MASK: u64 = 0xFFFF00000000;
+pub const SAP_MASK: u64 = 0x0000FFFFFFFF;
+pub const NAP_BIT_OFFSET: u8 = 8 * 4;
+pub const SAP_BIT_OFFSET: u8 = 0;
+#[inline]
+pub fn GET_NAP(addr: BTH_ADDR) -> u16 {
+ ((addr & NAP_MASK) >> NAP_BIT_OFFSET) as u16
+}
+#[inline]
+pub fn GET_SAP(addr: BTH_ADDR) -> u32 {
+ ((addr & SAP_MASK) >> SAP_BIT_OFFSET) as u32
+}
+#[inline]
+pub fn SET_NAP(nap: u16) -> BTH_ADDR {
+ (nap as u64) << NAP_BIT_OFFSET
+}
+#[inline]
+pub fn SET_SAP(sap: u32) -> BTH_ADDR {
+ (sap as u64) << SAP_BIT_OFFSET
+}
+#[inline]
+pub fn SET_NAP_SAP(nap: u16, sap: u32) -> BTH_ADDR {
+ SET_NAP(nap) | SET_SAP(sap)
+}
+pub const COD_FORMAT_BIT_OFFSET: u8 = 0;
+pub const COD_MINOR_BIT_OFFSET: u8 = 2;
+pub const COD_MAJOR_BIT_OFFSET: u8 = 8 * 1;
+pub const COD_SERVICE_BIT_OFFSET: u8 = 8 * 1 + 5;
+pub const COD_FORMAT_MASK: u32 = 0x000003;
+pub const COD_MINOR_MASK: u32 = 0x0000FC;
+pub const COD_MAJOR_MASK: u32 = 0x001F00;
+pub const COD_SERVICE_MASK: u32 = 0xFFE000;
+#[inline]
+pub fn GET_COD_FORMAT(cod: BTH_COD) -> u8 {
+ ((cod & COD_FORMAT_MASK) >> COD_FORMAT_BIT_OFFSET) as u8
+}
+#[inline]
+pub fn GET_COD_MINOR(cod: BTH_COD) -> u8 {
+ ((cod & COD_MINOR_MASK) >> COD_MINOR_BIT_OFFSET) as u8
+}
+#[inline]
+pub fn GET_COD_MAJOR(cod: BTH_COD) -> u8 {
+ ((cod & COD_MAJOR_MASK) >> COD_MAJOR_BIT_OFFSET) as u8
+}
+#[inline]
+pub fn GET_COD_SERVICE(cod: BTH_COD) -> u16 {
+ ((cod & COD_SERVICE_MASK) >> COD_SERVICE_BIT_OFFSET) as u16
+}
+#[inline]
+pub fn SET_COD_MINOR(cod: BTH_COD, minor: u8) -> BTH_COD {
+ (cod & !COD_MINOR_MASK) | ((minor as u32) << COD_MINOR_BIT_OFFSET)
+}
+#[inline]
+pub fn SET_COD_MAJOR(cod: BTH_COD, major: u8) -> BTH_COD {
+ (cod & !COD_MAJOR_MASK) | ((major as u32) << COD_MAJOR_BIT_OFFSET)
+}
+#[inline]
+pub fn SET_COD_SERVICE(cod: BTH_COD, service: u16) -> BTH_COD {
+ (cod & !COD_SERVICE_MASK) | ((service as u32) << COD_SERVICE_BIT_OFFSET)
+}
+pub const COD_VERSION: u32 = 0x0;
+pub const COD_SERVICE_LIMITED: u16 = 0x0001;
+pub const COD_SERVICE_POSITIONING: u16 = 0x0008;
+pub const COD_SERVICE_NETWORKING: u16 = 0x0010;
+pub const COD_SERVICE_RENDERING: u16 = 0x0020;
+pub const COD_SERVICE_CAPTURING: u16 = 0x0040;
+pub const COD_SERVICE_OBJECT_XFER: u16 = 0x0080;
+pub const COD_SERVICE_AUDIO: u16 = 0x0100;
+pub const COD_SERVICE_TELEPHONY: u16 = 0x0200;
+pub const COD_SERVICE_INFORMATION: u16 = 0x0400;
+pub const COD_SERVICE_VALID_MASK: u16 = COD_SERVICE_LIMITED | COD_SERVICE_POSITIONING
+ | COD_SERVICE_NETWORKING | COD_SERVICE_RENDERING | COD_SERVICE_CAPTURING
+ | COD_SERVICE_OBJECT_XFER | COD_SERVICE_AUDIO | COD_SERVICE_TELEPHONY
+ | COD_SERVICE_INFORMATION;
+pub const COD_SERVICE_MAX_COUNT: usize = 9;
+pub const COD_MAJOR_MISCELLANEOUS: u8 = 0x00;
+pub const COD_MAJOR_COMPUTER: u8 = 0x01;
+pub const COD_MAJOR_PHONE: u8 = 0x02;
+pub const COD_MAJOR_LAN_ACCESS: u8 = 0x03;
+pub const COD_MAJOR_AUDIO: u8 = 0x04;
+pub const COD_MAJOR_PERIPHERAL: u8 = 0x05;
+pub const COD_MAJOR_IMAGING: u8 = 0x06;
+pub const COD_MAJOR_WEARABLE: u8 = 0x07;
+pub const COD_MAJOR_TOY: u8 = 0x08;
+pub const COD_MAJOR_HEALTH: u8 = 0x09;
+pub const COD_MAJOR_UNCLASSIFIED: u8 = 0x1F;
+pub const COD_COMPUTER_MINOR_UNCLASSIFIED: u8 = 0x00;
+pub const COD_COMPUTER_MINOR_DESKTOP: u8 = 0x01;
+pub const COD_COMPUTER_MINOR_SERVER: u8 = 0x02;
+pub const COD_COMPUTER_MINOR_LAPTOP: u8 = 0x03;
+pub const COD_COMPUTER_MINOR_HANDHELD: u8 = 0x04;
+pub const COD_COMPUTER_MINOR_PALM: u8 = 0x05;
+pub const COD_COMPUTER_MINOR_WEARABLE: u8 = 0x06;
+pub const COD_PHONE_MINOR_UNCLASSIFIED: u8 = 0x00;
+pub const COD_PHONE_MINOR_CELLULAR: u8 = 0x01;
+pub const COD_PHONE_MINOR_CORDLESS: u8 = 0x02;
+pub const COD_PHONE_MINOR_SMART: u8 = 0x03;
+pub const COD_PHONE_MINOR_WIRED_MODEM: u8 = 0x04;
+pub const COD_AUDIO_MINOR_UNCLASSIFIED: u8 = 0x00;
+pub const COD_AUDIO_MINOR_HEADSET: u8 = 0x01;
+pub const COD_AUDIO_MINOR_HANDS_FREE: u8 = 0x02;
+pub const COD_AUDIO_MINOR_HEADSET_HANDS_FREE: u8 = 0x03;
+pub const COD_AUDIO_MINOR_MICROPHONE: u8 = 0x04;
+pub const COD_AUDIO_MINOR_LOUDSPEAKER: u8 = 0x05;
+pub const COD_AUDIO_MINOR_HEADPHONES: u8 = 0x06;
+pub const COD_AUDIO_MINOR_PORTABLE_AUDIO: u8 = 0x07;
+pub const COD_AUDIO_MINOR_CAR_AUDIO: u8 = 0x08;
+pub const COD_AUDIO_MINOR_SET_TOP_BOX: u8 = 0x09;
+pub const COD_AUDIO_MINOR_HIFI_AUDIO: u8 = 0x0A;
+pub const COD_AUDIO_MINOR_VCR: u8 = 0x0B;
+pub const COD_AUDIO_MINOR_VIDEO_CAMERA: u8 = 0x0C;
+pub const COD_AUDIO_MINOR_CAMCORDER: u8 = 0x0D;
+pub const COD_AUDIO_MINOR_VIDEO_MONITOR: u8 = 0x0E;
+pub const COD_AUDIO_MINOR_VIDEO_DISPLAY_LOUDSPEAKER: u8 = 0x0F;
+pub const COD_AUDIO_MINOR_VIDEO_DISPLAY_CONFERENCING: u8 = 0x10;
+pub const COD_AUDIO_MINOR_GAMING_TOY: u8 = 0x12;
+pub const COD_PERIPHERAL_MINOR_KEYBOARD_MASK: u8 = 0x10;
+pub const COD_PERIPHERAL_MINOR_POINTER_MASK: u8 = 0x20;
+pub const COD_PERIPHERAL_MINOR_NO_CATEGORY: u8 = 0x00;
+pub const COD_PERIPHERAL_MINOR_JOYSTICK: u8 = 0x01;
+pub const COD_PERIPHERAL_MINOR_GAMEPAD: u8 = 0x02;
+pub const COD_PERIPHERAL_MINOR_REMOTE_CONTROL: u8 = 0x03;
+pub const COD_PERIPHERAL_MINOR_SENSING: u8 = 0x04;
+pub const COD_IMAGING_MINOR_DISPLAY_MASK: u8 = 0x04;
+pub const COD_IMAGING_MINOR_CAMERA_MASK: u8 = 0x08;
+pub const COD_IMAGING_MINOR_SCANNER_MASK: u8 = 0x10;
+pub const COD_IMAGING_MINOR_PRINTER_MASK: u8 = 0x20;
+pub const COD_WEARABLE_MINOR_WRIST_WATCH: u8 = 0x01;
+pub const COD_WEARABLE_MINOR_PAGER: u8 = 0x02;
+pub const COD_WEARABLE_MINOR_JACKET: u8 = 0x03;
+pub const COD_WEARABLE_MINOR_HELMET: u8 = 0x04;
+pub const COD_WEARABLE_MINOR_GLASSES: u8 = 0x05;
+pub const COD_TOY_MINOR_ROBOT: u8 = 0x01;
+pub const COD_TOY_MINOR_VEHICLE: u8 = 0x02;
+pub const COD_TOY_MINOR_DOLL_ACTION_FIGURE: u8 = 0x03;
+pub const COD_TOY_MINOR_CONTROLLER: u8 = 0x04;
+pub const COD_TOY_MINOR_GAME: u8 = 0x05;
+pub const COD_HEALTH_MINOR_BLOOD_PRESSURE_MONITOR: u8 = 0x01;
+pub const COD_HEALTH_MINOR_THERMOMETER: u8 = 0x02;
+pub const COD_HEALTH_MINOR_WEIGHING_SCALE: u8 = 0x03;
+pub const COD_HEALTH_MINOR_GLUCOSE_METER: u8 = 0x04;
+pub const COD_HEALTH_MINOR_PULSE_OXIMETER: u8 = 0x05;
+pub const COD_HEALTH_MINOR_HEART_PULSE_MONITOR: u8 = 0x06;
+pub const COD_HEALTH_MINOR_HEALTH_DATA_DISPLAY: u8 = 0x07;
+pub const COD_HEALTH_MINOR_STEP_COUNTER: u8 = 0x08;
+pub const COD_LAN_ACCESS_BIT_OFFSET: u8 = 5;
+pub const COD_LAN_MINOR_MASK: u32 = 0x00001C;
+pub const COD_LAN_ACCESS_MASK: u32 = 0x0000E0;
+#[inline]
+pub fn GET_COD_LAN_MINOR(cod: BTH_COD) -> u8 {
+ ((cod & COD_LAN_MINOR_MASK) >> COD_MINOR_BIT_OFFSET) as u8
+}
+#[inline]
+pub fn GET_COD_LAN_ACCESS(cod: BTH_COD) -> u8 {
+ ((cod & COD_LAN_ACCESS_MASK) >> COD_LAN_ACCESS_BIT_OFFSET) as u8
+}
+pub const COD_LAN_MINOR_UNCLASSIFIED: u8 = 0x00;
+pub const COD_LAN_ACCESS_0_USED: u8 = 0x00;
+pub const COD_LAN_ACCESS_17_USED: u8 = 0x01;
+pub const COD_LAN_ACCESS_33_USED: u8 = 0x02;
+pub const COD_LAN_ACCESS_50_USED: u8 = 0x03;
+pub const COD_LAN_ACCESS_67_USED: u8 = 0x04;
+pub const COD_LAN_ACCESS_83_USED: u8 = 0x05;
+pub const COD_LAN_ACCESS_99_USED: u8 = 0x06;
+pub const COD_LAN_ACCESS_FULL: u8 = 0x07;
+pub const BTH_EIR_FLAGS_ID: u8 = 0x01;
+pub const BTH_EIR_16_UUIDS_PARTIAL_ID: u8 = 0x02;
+pub const BTH_EIR_16_UUIDS_COMPLETE_ID: u8 = 0x03;
+pub const BTH_EIR_32_UUIDS_PARTIAL_ID: u8 = 0x04;
+pub const BTH_EIR_32_UUIDS_COMPLETE_ID: u8 = 0x05;
+pub const BTH_EIR_128_UUIDS_PARTIAL_ID: u8 = 0x06;
+pub const BTH_EIR_128_UUIDS_COMPLETE_ID: u8 = 0x07;
+pub const BTH_EIR_LOCAL_NAME_PARTIAL_ID: u8 = 0x08;
+pub const BTH_EIR_LOCAL_NAME_COMPLETE_ID: u8 = 0x09;
+pub const BTH_EIR_TX_POWER_LEVEL_ID: u8 = 0x0A;
+pub const BTH_EIR_OOB_OPT_DATA_LEN_ID: u8 = 0x0B;
+pub const BTH_EIR_OOB_BD_ADDR_ID: u8 = 0x0C;
+pub const BTH_EIR_OOB_COD_ID: u8 = 0x0D;
+pub const BTH_EIR_OOB_SP_HASH_ID: u8 = 0x0E;
+pub const BTH_EIR_OOB_SP_RANDOMIZER_ID: u8 = 0x0F;
+pub const BTH_EIR_MANUFACTURER_ID: u8 = 0xFF;
+pub const BTH_EIR_SIZE: usize = 240;
+// #define LAP_GIAC_INIT { 0x33, 0x8B, 0x9E }
+// #define LAP_LIAC_INIT { 0x00, 0x8B, 0x9E }
+pub const LAP_GIAC_VALUE: BTH_LAP = 0x009E8B33;
+pub const LAP_LIAC_VALUE: BTH_LAP = 0x009E8B00;
+pub const BTH_ADDR_IAC_FIRST: BTH_ADDR = 0x9E8B00;
+pub const BTH_ADDR_IAC_LAST: BTH_ADDR = 0x9E8B3f;
+pub const BTH_ADDR_LIAC: BTH_ADDR = 0x9E8B00;
+pub const BTH_ADDR_GIAC: BTH_ADDR = 0x9E8B33;
+pub type BTHSTATUS = UCHAR;
+pub type PBTHSTATUS = *mut UCHAR;
+#[inline]
+pub fn BTH_ERROR(btStatus: BTHSTATUS) -> bool {
+ btStatus != BTH_ERROR_SUCCESS
+}
+#[inline]
+pub fn BTH_SUCCESS(btStatus: BTHSTATUS) -> bool {
+ btStatus == BTH_ERROR_SUCCESS
+}
+pub const BTH_ERROR_SUCCESS: BTHSTATUS = 0x00;
+pub const BTH_ERROR_UNKNOWN_HCI_COMMAND: BTHSTATUS = 0x01;
+pub const BTH_ERROR_NO_CONNECTION: BTHSTATUS = 0x02;
+pub const BTH_ERROR_HARDWARE_FAILURE: BTHSTATUS = 0x03;
+pub const BTH_ERROR_PAGE_TIMEOUT: BTHSTATUS = 0x04;
+pub const BTH_ERROR_AUTHENTICATION_FAILURE: BTHSTATUS = 0x05;
+pub const BTH_ERROR_KEY_MISSING: BTHSTATUS = 0x06;
+pub const BTH_ERROR_MEMORY_FULL: BTHSTATUS = 0x07;
+pub const BTH_ERROR_CONNECTION_TIMEOUT: BTHSTATUS = 0x08;
+pub const BTH_ERROR_MAX_NUMBER_OF_CONNECTIONS: BTHSTATUS = 0x09;
+pub const BTH_ERROR_MAX_NUMBER_OF_SCO_CONNECTIONS: BTHSTATUS = 0x0a;
+pub const BTH_ERROR_ACL_CONNECTION_ALREADY_EXISTS: BTHSTATUS = 0x0b;
+pub const BTH_ERROR_COMMAND_DISALLOWED: BTHSTATUS = 0x0c;
+pub const BTH_ERROR_HOST_REJECTED_LIMITED_RESOURCES: BTHSTATUS = 0x0d;
+pub const BTH_ERROR_HOST_REJECTED_SECURITY_REASONS: BTHSTATUS = 0x0e;
+pub const BTH_ERROR_HOST_REJECTED_PERSONAL_DEVICE: BTHSTATUS = 0x0f;
+pub const BTH_ERROR_HOST_TIMEOUT: BTHSTATUS = 0x10;
+pub const BTH_ERROR_UNSUPPORTED_FEATURE_OR_PARAMETER: BTHSTATUS = 0x11;
+pub const BTH_ERROR_INVALID_HCI_PARAMETER: BTHSTATUS = 0x12;
+pub const BTH_ERROR_REMOTE_USER_ENDED_CONNECTION: BTHSTATUS = 0x13;
+pub const BTH_ERROR_REMOTE_LOW_RESOURCES: BTHSTATUS = 0x14;
+pub const BTH_ERROR_REMOTE_POWERING_OFF: BTHSTATUS = 0x15;
+pub const BTH_ERROR_LOCAL_HOST_TERMINATED_CONNECTION: BTHSTATUS = 0x16;
+pub const BTH_ERROR_REPEATED_ATTEMPTS: BTHSTATUS = 0x17;
+pub const BTH_ERROR_PAIRING_NOT_ALLOWED: BTHSTATUS = 0x18;
+pub const BTH_ERROR_UKNOWN_LMP_PDU: BTHSTATUS = 0x19;
+pub const BTH_ERROR_UNSUPPORTED_REMOTE_FEATURE: BTHSTATUS = 0x1a;
+pub const BTH_ERROR_SCO_OFFSET_REJECTED: BTHSTATUS = 0x1b;
+pub const BTH_ERROR_SCO_INTERVAL_REJECTED: BTHSTATUS = 0x1c;
+pub const BTH_ERROR_SCO_AIRMODE_REJECTED: BTHSTATUS = 0x1d;
+pub const BTH_ERROR_INVALID_LMP_PARAMETERS: BTHSTATUS = 0x1e;
+pub const BTH_ERROR_UNSPECIFIED_ERROR: BTHSTATUS = 0x1f;
+pub const BTH_ERROR_UNSUPPORTED_LMP_PARM_VALUE: BTHSTATUS = 0x20;
+pub const BTH_ERROR_ROLE_CHANGE_NOT_ALLOWED: BTHSTATUS = 0x21;
+pub const BTH_ERROR_LMP_RESPONSE_TIMEOUT: BTHSTATUS = 0x22;
+pub const BTH_ERROR_LMP_TRANSACTION_COLLISION: BTHSTATUS = 0x23;
+pub const BTH_ERROR_LMP_PDU_NOT_ALLOWED: BTHSTATUS = 0x24;
+pub const BTH_ERROR_ENCRYPTION_MODE_NOT_ACCEPTABLE: BTHSTATUS = 0x25;
+pub const BTH_ERROR_UNIT_KEY_NOT_USED: BTHSTATUS = 0x26;
+pub const BTH_ERROR_QOS_IS_NOT_SUPPORTED: BTHSTATUS = 0x27;
+pub const BTH_ERROR_INSTANT_PASSED: BTHSTATUS = 0x28;
+pub const BTH_ERROR_PAIRING_WITH_UNIT_KEY_NOT_SUPPORTED: BTHSTATUS = 0x29;
+pub const BTH_ERROR_DIFFERENT_TRANSACTION_COLLISION: BTHSTATUS = 0x2a;
+pub const BTH_ERROR_QOS_UNACCEPTABLE_PARAMETER: BTHSTATUS = 0x2c;
+pub const BTH_ERROR_QOS_REJECTED: BTHSTATUS = 0x2d;
+pub const BTH_ERROR_CHANNEL_CLASSIFICATION_NOT_SUPPORTED: BTHSTATUS = 0x2e;
+pub const BTH_ERROR_INSUFFICIENT_SECURITY: BTHSTATUS = 0x2f;
+pub const BTH_ERROR_PARAMETER_OUT_OF_MANDATORY_RANGE: BTHSTATUS = 0x30;
+pub const BTH_ERROR_ROLE_SWITCH_PENDING: BTHSTATUS = 0x32;
+pub const BTH_ERROR_RESERVED_SLOT_VIOLATION: BTHSTATUS = 0x34;
+pub const BTH_ERROR_ROLE_SWITCH_FAILED: BTHSTATUS = 0x35;
+pub const BTH_ERROR_EXTENDED_INQUIRY_RESPONSE_TOO_LARGE: BTHSTATUS = 0x36;
+pub const BTH_ERROR_SECURE_SIMPLE_PAIRING_NOT_SUPPORTED_BY_HOST: BTHSTATUS = 0x37;
+pub const BTH_ERROR_HOST_BUSY_PAIRING: BTHSTATUS = 0x38;
+pub const BTH_ERROR_CONNECTION_REJECTED_DUE_TO_NO_SUITABLE_CHANNEL_FOUND: BTHSTATUS = 0x39;
+pub const BTH_ERROR_CONTROLLER_BUSY: BTHSTATUS = 0x3a;
+pub const BTH_ERROR_UNACCEPTABLE_CONNECTION_INTERVAL: BTHSTATUS = 0x3b;
+pub const BTH_ERROR_DIRECTED_ADVERTISING_TIMEOUT: BTHSTATUS = 0x3c;
+pub const BTH_ERROR_CONNECTION_TERMINATED_DUE_TO_MIC_FAILURE: BTHSTATUS = 0x3d;
+pub const BTH_ERROR_CONNECTION_FAILED_TO_BE_ESTABLISHED: BTHSTATUS = 0x3e;
+pub const BTH_ERROR_MAC_CONNECTION_FAILED: BTHSTATUS = 0x3f;
+pub const BTH_ERROR_UNSPECIFIED: BTHSTATUS = 0xFF;
+pub const L2CAP_MIN_MTU: u16 = 48;
+pub const L2CAP_MAX_MTU: u16 = 0xFFFF;
+pub const L2CAP_DEFAULT_MTU: u16 = 672;
+pub const MAX_L2CAP_PING_DATA_LENGTH: usize = 44;
+pub const MAX_L2CAP_INFO_DATA_LENGTH: usize = 44;
+pub const BDIF_ADDRESS: u32 = 0x00000001;
+pub const BDIF_COD: u32 = 0x00000002;
+pub const BDIF_NAME: u32 = 0x00000004;
+pub const BDIF_PAIRED: u32 = 0x00000008;
+pub const BDIF_PERSONAL: u32 = 0x00000010;
+pub const BDIF_CONNECTED: u32 = 0x00000020;
+pub const BDIF_SHORT_NAME: u32 = 0x00000040;
+pub const BDIF_VISIBLE: u32 = 0x00000080;
+pub const BDIF_SSP_SUPPORTED: u32 = 0x00000100;
+pub const BDIF_SSP_PAIRED: u32 = 0x00000200;
+pub const BDIF_SSP_MITM_PROTECTED: u32 = 0x00000400;
+pub const BDIF_RSSI: u32 = 0x00001000;
+pub const BDIF_EIR: u32 = 0x00002000;
+pub const BDIF_BR: u32 = 0x00004000;
+pub const BDIF_LE: u32 = 0x00008000;
+pub const BDIF_LE_PAIRED: u32 = 0x00010000;
+pub const BDIF_LE_PERSONAL: u32 = 0x00020000;
+pub const BDIF_LE_MITM_PROTECTED: u32 = 0x00040000;
+pub const BDIF_LE_PRIVACY_ENABLED: u32 = 0x00080000;
+pub const BDIF_LE_RANDOM_ADDRESS_TYPE: u32 = 0x00100000;
+pub const BDIF_LE_DISCOVERABLE: u32 = 0x00200000;
+pub const BDIF_LE_NAME: u32 = 0x00400000;
+pub const BDIF_LE_VISIBLE: u32 = 0x00800000;
+pub const BDIF_LE_CONNECTED: u32 = 0x01000000;
+pub const BDIF_LE_CONNECTABLE: u32 = 0x02000000;
+pub const BDIF_CONNECTION_INBOUND: u32 = 0x04000000;
+pub const BDIF_BR_SECURE_CONNECTION_PAIRED: u32 = 0x08000000;
+pub const BDIF_LE_SECURE_CONNECTION_PAIRED: u32 = 0x10000000;
+pub const BDIF_VALID_FLAGS: u32 = BDIF_ADDRESS | BDIF_COD | BDIF_NAME | BDIF_PAIRED
+ | BDIF_PERSONAL | BDIF_CONNECTED | BDIF_SHORT_NAME | BDIF_VISIBLE | BDIF_RSSI | BDIF_EIR
+ | BDIF_SSP_PAIRED | BDIF_SSP_MITM_PROTECTED | BDIF_BR | BDIF_LE | BDIF_LE_PAIRED
+ | BDIF_LE_PERSONAL | BDIF_LE_MITM_PROTECTED | BDIF_LE_PRIVACY_ENABLED
+ | BDIF_LE_RANDOM_ADDRESS_TYPE | BDIF_LE_DISCOVERABLE | BDIF_LE_NAME | BDIF_LE_VISIBLE
+ | BDIF_LE_CONNECTED | BDIF_LE_CONNECTABLE | BDIF_CONNECTION_INBOUND
+ | BDIF_BR_SECURE_CONNECTION_PAIRED | BDIF_LE_SECURE_CONNECTION_PAIRED;
+STRUCT!{struct BTH_DEVICE_INFO {
+ flags: ULONG,
+ address: BTH_ADDR,
+ classOfDevice: BTH_COD,
+ name: [CHAR; BTH_MAX_NAME_SIZE],
+}}
+pub type PBTH_DEVICE_INFO = *mut BTH_DEVICE_INFO;
+STRUCT!{struct BTH_RADIO_IN_RANGE {
+ deviceInfo: BTH_DEVICE_INFO,
+ previousDeviceFlags: ULONG,
+}}
+pub type PBTH_RADIO_IN_RANGE = *mut BTH_RADIO_IN_RANGE;
+STRUCT!{struct BTH_L2CAP_EVENT_INFO {
+ bthAddress: BTH_ADDR,
+ psm: USHORT,
+ connected: UCHAR,
+ initiated: UCHAR,
+}}
+pub type PBTH_L2CAP_EVENT_INFO = *mut BTH_L2CAP_EVENT_INFO;
+pub const HCI_CONNECTION_TYPE_ACL: u8 = 1;
+pub const HCI_CONNECTION_TYPE_SCO: u8 = 2;
+pub const HCI_CONNECTION_TYPE_LE: u8 = 3;
+pub const HCI_CONNNECTION_TYPE_ACL: u8 = HCI_CONNECTION_TYPE_ACL;
+pub const HCI_CONNNECTION_TYPE_SCO: u8 = HCI_CONNECTION_TYPE_SCO;
+STRUCT!{struct BTH_HCI_EVENT_INFO {
+ bthAddress: BTH_ADDR,
+ connectionType: UCHAR,
+ connected: UCHAR,
+}}
+pub type PBTH_HCI_EVENT_INFO = *mut BTH_HCI_EVENT_INFO;
+ENUM!{enum IO_CAPABILITY {
+ IoCaps_DisplayOnly = 0x00,
+ IoCaps_DisplayYesNo = 0x01,
+ IoCaps_KeyboardOnly = 0x02,
+ IoCaps_NoInputNoOutput = 0x03,
+ IoCaps_Undefined = 0xff,
+}}
+ENUM!{enum AUTHENTICATION_REQUIREMENTS {
+ MITMProtectionNotRequired = 0x00,
+ MITMProtectionRequired = 0x01,
+ MITMProtectionNotRequiredBonding = 0x02,
+ MITMProtectionRequiredBonding = 0x03,
+ MITMProtectionNotRequiredGeneralBonding = 0x04,
+ MITMProtectionRequiredGeneralBonding = 0x05,
+ MITMProtectionNotDefined = 0xff,
+}}
+#[inline]
+pub fn IsMITMProtectionRequired(requirements: AUTHENTICATION_REQUIREMENTS) -> bool {
+ MITMProtectionRequired == requirements || MITMProtectionRequiredBonding == requirements
+ || MITMProtectionRequiredGeneralBonding == requirements
+}
+pub const BTH_MAX_SERVICE_NAME_SIZE: usize = 256;
+pub const MAX_UUIDS_IN_QUERY: usize = 12;
+pub const BTH_VID_DEFAULT_VALUE: u16 = 0xFFFF;
+pub const SDP_ERROR_INVALID_SDP_VERSION: u16 = 0x0001;
+pub const SDP_ERROR_INVALID_RECORD_HANDLE: u16 = 0x0002;
+pub const SDP_ERROR_INVALID_REQUEST_SYNTAX: u16 = 0x0003;
+pub const SDP_ERROR_INVALID_PDU_SIZE: u16 = 0x0004;
+pub const SDP_ERROR_INVALID_CONTINUATION_STATE: u16 = 0x0005;
+pub const SDP_ERROR_INSUFFICIENT_RESOURCES: u16 = 0x0006;
+pub const SDP_ERROR_SUCCESS: SDP_ERROR = 0x0000;
+pub const SDP_ERROR_SERVER_INVALID_RESPONSE: SDP_ERROR = 0x0100;
+pub const SDP_ERROR_SERVER_RESPONSE_DID_NOT_PARSE: SDP_ERROR = 0x0200;
+pub const SDP_ERROR_SERVER_BAD_FORMAT: SDP_ERROR = 0x0300;
+pub const SDP_ERROR_COULD_NOT_SEND_CONTINUE: SDP_ERROR = 0x0400;
+pub const SDP_ERROR_RESPONSE_TOO_LARGE: SDP_ERROR = 0x0500;
+pub const SDP_ATTRIB_RECORD_HANDLE: u16 = 0x0000;
+pub const SDP_ATTRIB_CLASS_ID_LIST: u16 = 0x0001;
+pub const SDP_ATTRIB_RECORD_STATE: u16 = 0x0002;
+pub const SDP_ATTRIB_SERVICE_ID: u16 = 0x0003;
+pub const SDP_ATTRIB_PROTOCOL_DESCRIPTOR_LIST: u16 = 0x0004;
+pub const SDP_ATTRIB_BROWSE_GROUP_LIST: u16 = 0x0005;
+pub const SDP_ATTRIB_LANG_BASE_ATTRIB_ID_LIST: u16 = 0x0006;
+pub const SDP_ATTRIB_INFO_TIME_TO_LIVE: u16 = 0x0007;
+pub const SDP_ATTRIB_AVAILABILITY: u16 = 0x0008;
+pub const SDP_ATTRIB_PROFILE_DESCRIPTOR_LIST: u16 = 0x0009;
+pub const SDP_ATTRIB_DOCUMENTATION_URL: u16 = 0x000A;
+pub const SDP_ATTRIB_CLIENT_EXECUTABLE_URL: u16 = 0x000B;
+pub const SDP_ATTRIB_ICON_URL: u16 = 0x000C;
+pub const SDP_ATTRIB_ADDITIONAL_PROTOCOL_DESCRIPTOR_LIST: u16 = 0x000D;
+pub const SDP_ATTRIB_PROFILE_SPECIFIC: u16 = 0x0200;
+pub const LANG_BASE_LANGUAGE_INDEX: u16 = 0x0000;
+pub const LANG_BASE_ENCODING_INDEX: u16 = 0x0001;
+pub const LANG_BASE_OFFSET_INDEX: u16 = 0x0002;
+pub const LANG_DEFAULT_ID: u16 = 0x0100;
+pub const LANGUAGE_EN_US: u16 = 0x656E;
+pub const ENCODING_UTF_8: u16 = 0x006A;
+pub const STRING_NAME_OFFSET: u16 = 0x0000;
+pub const STRING_DESCRIPTION_OFFSET: u16 = 0x0001;
+pub const STRING_PROVIDER_NAME_OFFSET: u16 = 0x0002;
+pub const SDP_ATTRIB_SDP_VERSION_NUMBER_LIST: u16 = 0x0200;
+pub const SDP_ATTRIB_SDP_DATABASE_STATE: u16 = 0x0201;
+pub const SDP_ATTRIB_BROWSE_GROUP_ID: u16 = 0x0200;
+pub const SDP_ATTRIB_CORDLESS_EXTERNAL_NETWORK: u16 = 0x0301;
+pub const SDP_ATTRIB_FAX_CLASS_1_SUPPORT: u16 = 0x0302;
+pub const SDP_ATTRIB_FAX_CLASS_2_0_SUPPORT: u16 = 0x0303;
+pub const SDP_ATTRIB_FAX_CLASS_2_SUPPORT: u16 = 0x0304;
+pub const SDP_ATTRIB_FAX_AUDIO_FEEDBACK_SUPPORT: u16 = 0x0305;
+pub const SDP_ATTRIB_HEADSET_REMOTE_AUDIO_VOLUME_CONTROL: u16 = 0x0302;
+pub const SDP_ATTRIB_LAN_LPSUBNET: u16 = 0x0200;
+pub const SDP_ATTRIB_OBJECT_PUSH_SUPPORTED_FORMATS_LIST: u16 = 0x0303;
+pub const SDP_ATTRIB_SYNCH_SUPPORTED_DATA_STORES_LIST: u16 = 0x0301;
+pub const SDP_ATTRIB_SERVICE_VERSION: u16 = 0x0300;
+pub const SDP_ATTRIB_PAN_NETWORK_ADDRESS: u16 = 0x0306;
+pub const SDP_ATTRIB_PAN_WAP_GATEWAY: u16 = 0x0307;
+pub const SDP_ATTRIB_PAN_HOME_PAGE_URL: u16 = 0x0308;
+pub const SDP_ATTRIB_PAN_WAP_STACK_TYPE: u16 = 0x0309;
+pub const SDP_ATTRIB_PAN_SECURITY_DESCRIPTION: u16 = 0x030A;
+pub const SDP_ATTRIB_PAN_NET_ACCESS_TYPE: u16 = 0x030B;
+pub const SDP_ATTRIB_PAN_MAX_NET_ACCESS_RATE: u16 = 0x030C;
+pub const SDP_ATTRIB_IMAGING_SUPPORTED_CAPABILITIES: u16 = 0x0310;
+pub const SDP_ATTRIB_IMAGING_SUPPORTED_FEATURES: u16 = 0x0311;
+pub const SDP_ATTRIB_IMAGING_SUPPORTED_FUNCTIONS: u16 = 0x0312;
+pub const SDP_ATTRIB_IMAGING_TOTAL_DATA_CAPACITY: u16 = 0x0313;
+pub const SDP_ATTRIB_DI_SPECIFICATION_ID: u16 = 0x0200;
+pub const SDP_ATTRIB_DI_VENDOR_ID: u16 = 0x0201;
+pub const SDP_ATTRIB_DI_PRODUCT_ID: u16 = 0x0202;
+pub const SDP_ATTRIB_DI_VERSION: u16 = 0x0203;
+pub const SDP_ATTRIB_DI_PRIMARY_RECORD: u16 = 0x0204;
+pub const SDP_ATTRIB_DI_VENDOR_ID_SOURCE: u16 = 0x0205;
+pub const SDP_ATTRIB_HID_DEVICE_RELEASE_NUMBER: u16 = 0x0200;
+pub const SDP_ATTRIB_HID_PARSER_VERSION: u16 = 0x0201;
+pub const SDP_ATTRIB_HID_DEVICE_SUBCLASS: u16 = 0x0202;
+pub const SDP_ATTRIB_HID_COUNTRY_CODE: u16 = 0x0203;
+pub const SDP_ATTRIB_HID_VIRTUAL_CABLE: u16 = 0x0204;
+pub const SDP_ATTRIB_HID_RECONNECT_INITIATE: u16 = 0x0205;
+pub const SDP_ATTRIB_HID_DESCRIPTOR_LIST: u16 = 0x0206;
+pub const SDP_ATTRIB_HID_LANG_ID_BASE_LIST: u16 = 0x0207;
+pub const SDP_ATTRIB_HID_SDP_DISABLE: u16 = 0x0208;
+pub const SDP_ATTRIB_HID_BATTERY_POWER: u16 = 0x0209;
+pub const SDP_ATTRIB_HID_REMOTE_WAKE: u16 = 0x020A;
+pub const SDP_ATTRIB_HID_PROFILE_VERSION: u16 = 0x020B;
+pub const SDP_ATTRIB_HID_SUPERVISION_TIMEOUT: u16 = 0x020C;
+pub const SDP_ATTRIB_HID_NORMALLY_CONNECTABLE: u16 = 0x020D;
+pub const SDP_ATTRIB_HID_BOOT_DEVICE: u16 = 0x020E;
+pub const SDP_ATTRIB_HID_SSR_HOST_MAX_LATENCY: u16 = 0x020F;
+pub const SDP_ATTRIB_HID_SSR_HOST_MIN_TIMEOUT: u16 = 0x0210;
+pub const CORDLESS_EXTERNAL_NETWORK_PSTN: u8 = 0x01;
+pub const CORDLESS_EXTERNAL_NETWORK_ISDN: u8 = 0x02;
+pub const CORDLESS_EXTERNAL_NETWORK_GSM: u8 = 0x03;
+pub const CORDLESS_EXTERNAL_NETWORK_CDMA: u8 = 0x04;
+pub const CORDLESS_EXTERNAL_NETWORK_ANALOG_CELLULAR: u8 = 0x05;
+pub const CORDLESS_EXTERNAL_NETWORK_PACKET_SWITCHED: u8 = 0x06;
+pub const CORDLESS_EXTERNAL_NETWORK_OTHER: u8 = 0x07;
+pub const OBJECT_PUSH_FORMAT_VCARD_2_1: u8 = 0x01;
+pub const OBJECT_PUSH_FORMAT_VCARD_3_0: u8 = 0x02;
+pub const OBJECT_PUSH_FORMAT_VCAL_1_0: u8 = 0x03;
+pub const OBJECT_PUSH_FORMAT_ICAL_2_0: u8 = 0x04;
+pub const OBJECT_PUSH_FORMAT_VNOTE: u8 = 0x05;
+pub const OBJECT_PUSH_FORMAT_VMESSAGE: u8 = 0x06;
+pub const OBJECT_PUSH_FORMAT_ANY: u8 = 0xFF;
+pub const SYNCH_DATA_STORE_PHONEBOOK: u8 = 0x01;
+pub const SYNCH_DATA_STORE_CALENDAR: u8 = 0x03;
+pub const SYNCH_DATA_STORE_NOTES: u8 = 0x05;
+pub const SYNCH_DATA_STORE_MESSAGES: u8 = 0x06;
+pub const DI_VENDOR_ID_SOURCE_BLUETOOTH_SIG: u16 = 0x0001;
+pub const DI_VENDOR_ID_SOURCE_USB_IF: u16 = 0x0002;
+pub const PSM_SDP: u16 = 0x0001;
+pub const PSM_RFCOMM: u16 = 0x0003;
+pub const PSM_TCS_BIN: u16 = 0x0005;
+pub const PSM_TCS_BIN_CORDLESS: u16 = 0x0007;
+pub const PSM_BNEP: u16 = 0x000F;
+pub const PSM_HID_CONTROL: u16 = 0x0011;
+pub const PSM_HID_INTERRUPT: u16 = 0x0013;
+pub const PSM_UPNP: u16 = 0x0015;
+pub const PSM_AVCTP: u16 = 0x0017;
+pub const PSM_AVDTP: u16 = 0x0019;
+pub const PSM_AVCTP_BROWSE: u16 = 0x001B;
+pub const PSM_UDI_C_PLANE: u16 = 0x001D;
+pub const PSM_ATT: u16 = 0x001F;
+pub const PSM_3DSP: u16 = 0x0021;
+pub const PSM_LE_IPSP: u16 = 0x0023;
+pub const STR_ADDR_FMTA: &'static str = "(%02x:%02x:%02x:%02x:%02x:%02x)\0";
+// #define STR_ADDR_FMTW L"(%02x:%02x:%02x:%02x:%02x:%02x)"
+pub const STR_ADDR_SHORT_FMTA: &'static str = "%04x%08x\0";
+// #define STR_ADDR_SHORT_FMTW L"%04x%08x"
+pub const STR_USBHCI_CLASS_HARDWAREIDA: &'static str = "USB\\Class_E0&SubClass_01&Prot_01\0";
+// #define STR_USBHCI_CLASS_HARDWAREIDW L"USB\\Class_E0&SubClass_01&Prot_01"
+#[inline]
+pub fn GET_BITS(field: u64, offset: u8, mask: u64) -> u64 {
+ (field >> offset) & mask
+}
+#[inline]
+pub fn GET_BIT(field: u64, offset: u8) -> u64 {
+ GET_BITS(field, offset, 1)
+}
+#[inline]
+pub fn LMP_3_SLOT_PACKETS(x: u64) -> u64 {
+ GET_BIT(x, 0)
+}
+#[inline]
+pub fn LMP_5_SLOT_PACKETS(x: u64) -> u64 {
+ GET_BIT(x, 1)
+}
+#[inline]
+pub fn LMP_ENCRYPTION(x: u64) -> u64 {
+ GET_BIT(x, 2)
+}
+#[inline]
+pub fn LMP_SLOT_OFFSET(x: u64) -> u64 {
+ GET_BIT(x, 3)
+}
+#[inline]
+pub fn LMP_TIMING_ACCURACY(x: u64) -> u64 {
+ GET_BIT(x, 4)
+}
+#[inline]
+pub fn LMP_SWITCH(x: u64) -> u64 {
+ GET_BIT(x, 5)
+}
+#[inline]
+pub fn LMP_HOLD_MODE(x: u64) -> u64 {
+ GET_BIT(x, 6)
+}
+#[inline]
+pub fn LMP_SNIFF_MODE(x: u64) -> u64 {
+ GET_BIT(x, 7)
+}
+#[inline]
+pub fn LMP_PARK_MODE(x: u64) -> u64 {
+ GET_BIT(x, 8)
+}
+#[inline]
+pub fn LMP_RSSI(x: u64) -> u64 {
+ GET_BIT(x, 9)
+}
+#[inline]
+pub fn LMP_CHANNEL_QUALITY_DRIVEN_MODE(x: u64) -> u64 {
+ GET_BIT(x, 10)
+}
+#[inline]
+pub fn LMP_SCO_LINK(x: u64) -> u64 {
+ GET_BIT(x, 11)
+}
+#[inline]
+pub fn LMP_HV2_PACKETS(x: u64) -> u64 {
+ GET_BIT(x, 12)
+}
+#[inline]
+pub fn LMP_HV3_PACKETS(x: u64) -> u64 {
+ GET_BIT(x, 13)
+}
+#[inline]
+pub fn LMP_MU_LAW_LOG(x: u64) -> u64 {
+ GET_BIT(x, 14)
+}
+#[inline]
+pub fn LMP_A_LAW_LOG(x: u64) -> u64 {
+ GET_BIT(x, 15)
+}
+#[inline]
+pub fn LMP_CVSD(x: u64) -> u64 {
+ GET_BIT(x, 16)
+}
+#[inline]
+pub fn LMP_PAGING_SCHEME(x: u64) -> u64 {
+ GET_BIT(x, 17)
+}
+#[inline]
+pub fn LMP_POWER_CONTROL(x: u64) -> u64 {
+ GET_BIT(x, 18)
+}
+#[inline]
+pub fn LMP_TRANSPARENT_SCO_DATA(x: u64) -> u64 {
+ GET_BIT(x, 19)
+}
+#[inline]
+pub fn LMP_FLOW_CONTROL_LAG(x: u64) -> u64 {
+ GET_BITS(x, 20, 0x3)
+}
+#[inline]
+pub fn LMP_BROADCAST_ENCRYPTION(x: u64) -> u64 {
+ GET_BIT(x, 23)
+}
+#[inline]
+pub fn LMP_ENHANCED_DATA_RATE_ACL_2MBPS_MODE(x: u64) -> u64 {
+ GET_BIT(x, 25)
+}
+#[inline]
+pub fn LMP_ENHANCED_DATA_RATE_ACL_3MBPS_MODE(x: u64) -> u64 {
+ GET_BIT(x, 26)
+}
+#[inline]
+pub fn LMP_ENHANCED_INQUIRY_SCAN(x: u64) -> u64 {
+ GET_BIT(x, 27)
+}
+#[inline]
+pub fn LMP_INTERLACED_INQUIRY_SCAN(x: u64) -> u64 {
+ GET_BIT(x, 28)
+}
+#[inline]
+pub fn LMP_INTERLACED_PAGE_SCAN(x: u64) -> u64 {
+ GET_BIT(x, 29)
+}
+#[inline]
+pub fn LMP_RSSI_WITH_INQUIRY_RESULTS(x: u64) -> u64 {
+ GET_BIT(x, 30)
+}
+#[inline]
+pub fn LMP_ESCO_LINK(x: u64) -> u64 {
+ GET_BIT(x, 31)
+}
+#[inline]
+pub fn LMP_EV4_PACKETS(x: u64) -> u64 {
+ GET_BIT(x, 32)
+}
+#[inline]
+pub fn LMP_EV5_PACKETS(x: u64) -> u64 {
+ GET_BIT(x, 33)
+}
+#[inline]
+pub fn LMP_AFH_CAPABLE_SLAVE(x: u64) -> u64 {
+ GET_BIT(x, 35)
+}
+#[inline]
+pub fn LMP_AFH_CLASSIFICATION_SLAVE(x: u64) -> u64 {
+ GET_BIT(x, 36)
+}
+#[inline]
+pub fn LMP_BR_EDR_NOT_SUPPORTED(x: u64) -> u64 {
+ GET_BIT(x, 37)
+}
+#[inline]
+pub fn LMP_LE_SUPPORTED(x: u64) -> u64 {
+ GET_BIT(x, 38)
+}
+#[inline]
+pub fn LMP_3SLOT_EDR_ACL_PACKETS(x: u64) -> u64 {
+ GET_BIT(x, 39)
+}
+#[inline]
+pub fn LMP_5SLOT_EDR_ACL_PACKETS(x: u64) -> u64 {
+ GET_BIT(x, 40)
+}
+#[inline]
+pub fn LMP_SNIFF_SUBRATING(x: u64) -> u64 {
+ GET_BIT(x, 41)
+}
+#[inline]
+pub fn LMP_PAUSE_ENCRYPTION(x: u64) -> u64 {
+ GET_BIT(x, 42)
+}
+#[inline]
+pub fn LMP_AFH_CAPABLE_MASTER(x: u64) -> u64 {
+ GET_BIT(x, 43)
+}
+#[inline]
+pub fn LMP_AFH_CLASSIFICATION_MASTER(x: u64) -> u64 {
+ GET_BIT(x, 44)
+}
+#[inline]
+pub fn LMP_EDR_ESCO_2MBPS_MODE(x: u64) -> u64 {
+ GET_BIT(x, 45)
+}
+#[inline]
+pub fn LMP_EDR_ESCO_3MBPS_MODE(x: u64) -> u64 {
+ GET_BIT(x, 46)
+}
+#[inline]
+pub fn LMP_3SLOT_EDR_ESCO_PACKETS(x: u64) -> u64 {
+ GET_BIT(x, 47)
+}
+#[inline]
+pub fn LMP_EXTENDED_INQUIRY_RESPONSE(x: u64) -> u64 {
+ GET_BIT(x, 48)
+}
+#[inline]
+pub fn LMP_SIMULT_LE_BR_TO_SAME_DEV(x: u64) -> u64 {
+ GET_BIT(x, 49)
+}
+#[inline]
+pub fn LMP_SECURE_SIMPLE_PAIRING(x: u64) -> u64 {
+ GET_BIT(x, 51)
+}
+#[inline]
+pub fn LMP_ENCAPSULATED_PDU(x: u64) -> u64 {
+ GET_BIT(x, 52)
+}
+#[inline]
+pub fn LMP_ERRONEOUS_DATA_REPORTING(x: u64) -> u64 {
+ GET_BIT(x, 53)
+}
+#[inline]
+pub fn LMP_NON_FLUSHABLE_PACKET_BOUNDARY_FLAG(x: u64) -> u64 {
+ GET_BIT(x, 54)
+}
+#[inline]
+pub fn LMP_LINK_SUPERVISION_TIMEOUT_CHANGED_EVENT(x: u64) -> u64 {
+ GET_BIT(x, 56)
+}
+#[inline]
+pub fn LMP_INQUIRY_RESPONSE_TX_POWER_LEVEL(x: u64) -> u64 {
+ GET_BIT(x, 57)
+}
+#[inline]
+pub fn LMP_EXTENDED_FEATURES(x: u64) -> u64 {
+ GET_BIT(x, 63)
+}
diff --git a/third_party/rust/chromium_crates_io/vendor/winapi-0.3.9/src/shared/bthioctl.rs b/third_party/rust/chromium_crates_io/vendor/winapi-0.3.9/src/shared/bthioctl.rs
new file mode 100644
index 000000000000..78ca6b76b43a
--- /dev/null
+++ b/third_party/rust/chromium_crates_io/vendor/winapi-0.3.9/src/shared/bthioctl.rs
@@ -0,0 +1,151 @@
+// Licensed under the Apache License, Version 2.0
+// or the MIT license
+// , at your option.
+// All files in the project carrying such notice may not be copied, modified, or distributed
+// except according to those terms.
+use shared::bthdef::{BTH_ADDR, BTH_DEVICE_INFO, MAX_UUIDS_IN_QUERY};
+use shared::bthsdpdef::{SdpAttributeRange, SdpQueryUuid};
+use shared::minwindef::{DWORD, UCHAR, ULONG, USHORT};
+use shared::ntdef::{BOOLEAN, ULONGLONG};
+use um::winioctl::{FILE_ANY_ACCESS, FILE_DEVICE_BLUETOOTH, METHOD_BUFFERED, METHOD_NEITHER};
+pub const BTH_IOCTL_BASE: DWORD = 0;
+pub const IOCTL_INTERNAL_BTH_SUBMIT_BRB: DWORD = BTH_KERNEL_CTL!(BTH_IOCTL_BASE + 0x00);
+pub const IOCTL_INTERNAL_BTHENUM_GET_ENUMINFO: DWORD = BTH_KERNEL_CTL!(BTH_IOCTL_BASE + 0x01);
+pub const IOCTL_INTERNAL_BTHENUM_GET_DEVINFO: DWORD = BTH_KERNEL_CTL!(BTH_IOCTL_BASE + 0x02);
+pub const IOCTL_BTH_GET_LOCAL_INFO: DWORD = BTH_CTL!(BTH_IOCTL_BASE + 0x00);
+pub const IOCTL_BTH_GET_RADIO_INFO: DWORD = BTH_CTL!(BTH_IOCTL_BASE + 0x01);
+pub const IOCTL_BTH_GET_DEVICE_INFO: DWORD = BTH_CTL!(BTH_IOCTL_BASE + 0x02);
+pub const IOCTL_BTH_DISCONNECT_DEVICE: DWORD = BTH_CTL!(BTH_IOCTL_BASE + 0x03);
+pub const IOCTL_BTH_HCI_VENDOR_COMMAND: DWORD = BTH_CTL!(BTH_IOCTL_BASE + 0x14);
+pub const IOCTL_BTH_SDP_CONNECT: DWORD = BTH_CTL!(BTH_IOCTL_BASE + 0x80);
+pub const IOCTL_BTH_SDP_DISCONNECT: DWORD = BTH_CTL!(BTH_IOCTL_BASE + 0x81);
+pub const IOCTL_BTH_SDP_SERVICE_SEARCH: DWORD = BTH_CTL!(BTH_IOCTL_BASE + 0x82);
+pub const IOCTL_BTH_SDP_ATTRIBUTE_SEARCH: DWORD = BTH_CTL!(BTH_IOCTL_BASE + 0x83);
+pub const IOCTL_BTH_SDP_SERVICE_ATTRIBUTE_SEARCH: DWORD = BTH_CTL!(BTH_IOCTL_BASE + 0x84);
+pub const IOCTL_BTH_SDP_SUBMIT_RECORD: DWORD = BTH_CTL!(BTH_IOCTL_BASE + 0x85);
+pub const IOCTL_BTH_SDP_REMOVE_RECORD: DWORD = BTH_CTL!(BTH_IOCTL_BASE + 0x86);
+pub const IOCTL_BTH_SDP_SUBMIT_RECORD_WITH_INFO: DWORD = BTH_CTL!(BTH_IOCTL_BASE + 0x87);
+pub const IOCTL_BTH_GET_HOST_SUPPORTED_FEATURES: DWORD = BTH_CTL!(BTH_IOCTL_BASE + 0x88);
+STRUCT!{#[repr(packed)] struct BTH_DEVICE_INFO_LIST {
+ numOfDevices: ULONG,
+ deviceList: [BTH_DEVICE_INFO; 1],
+}}
+pub type PBTH_DEVICE_INFO_LIST = *mut BTH_DEVICE_INFO_LIST;
+STRUCT!{#[repr(packed)] struct BTH_RADIO_INFO {
+ lmpSupportedFeatures: ULONGLONG,
+ mfg: USHORT,
+ lmpSubversion: USHORT,
+ lmpVersion: UCHAR,
+}}
+pub type PBTH_RADIO_INFO = *mut BTH_RADIO_INFO;
+STRUCT!{#[repr(packed)] struct BTH_LOCAL_RADIO_INFO {
+ localInfo: BTH_DEVICE_INFO,
+ flags: ULONG,
+ hciRevision: USHORT,
+ hciVersion: UCHAR,
+ radioInfo: BTH_RADIO_INFO,
+}}
+pub type PBTH_LOCAL_RADIO_INFO = *mut BTH_LOCAL_RADIO_INFO;
+pub const SDP_CONNECT_CACHE: ULONG = 0x00000001;
+pub const SDP_CONNECT_ALLOW_PIN: ULONG = 0x00000002;
+pub const SDP_REQUEST_TO_DEFAULT: UCHAR = 0;
+pub const SDP_REQUEST_TO_MIN: UCHAR = 10;
+pub const SDP_REQUEST_TO_MAX: UCHAR = 45;
+pub const SERVICE_OPTION_DO_NOT_PUBLISH: ULONG = 0x00000002;
+pub const SERVICE_OPTION_NO_PUBLIC_BROWSE: ULONG = 0x00000004;
+pub const SERVICE_OPTION_DO_NOT_PUBLISH_EIR: ULONG = 0x00000008;
+pub const SERVICE_SECURITY_USE_DEFAULTS: ULONG = 0x00000000;
+pub const SERVICE_SECURITY_NONE: ULONG = 0x00000001;
+pub const SERVICE_SECURITY_AUTHORIZE: ULONG = 0x00000002;
+pub const SERVICE_SECURITY_AUTHENTICATE: ULONG = 0x00000004;
+pub const SERVICE_SECURITY_ENCRYPT_REQUIRED: ULONG = 0x00000010;
+pub const SERVICE_SECURITY_ENCRYPT_OPTIONAL: ULONG = 0x00000020;
+pub const SERVICE_SECURITY_DISABLED: ULONG = 0x10000000;
+pub const SERVICE_SECURITY_NO_ASK: ULONG = 0x20000000;
+pub const SDP_SEARCH_NO_PARSE_CHECK: ULONG = 0x00000001;
+pub const SDP_SEARCH_NO_FORMAT_CHECK: ULONG = 0x00000002;
+pub type HANDLE_SDP = ULONGLONG;
+pub type PHANDLE_SDP = *mut ULONGLONG;
+pub type HANDLE_SDP_TYPE = HANDLE_SDP;
+pub const HANDLE_SDP_NULL: HANDLE_SDP = 0x0;
+pub const HANDLE_SDP_LOCAL: HANDLE_SDP = -2i64 as u64;
+STRUCT!{#[repr(packed)] struct BTH_SDP_CONNECT {
+ bthAddress: BTH_ADDR,
+ fSdpConnect: ULONG,
+ hConnection: HANDLE_SDP_TYPE,
+ requestTimeout: UCHAR,
+}}
+pub type PBTH_SDP_CONNECT = *mut BTH_SDP_CONNECT;
+STRUCT!{#[repr(packed)] struct BTH_SDP_DISCONNECT {
+ hConnection: HANDLE_SDP_TYPE,
+}}
+pub type PBTH_SDP_DISCONNECT = *mut BTH_SDP_DISCONNECT;
+STRUCT!{#[repr(packed)] struct BTH_SDP_RECORD {
+ fSecurity: ULONG,
+ fOptions: ULONG,
+ fCodService: ULONG,
+ recordLength: ULONG,
+ record: [UCHAR; 1],
+}}
+pub type PBTH_SDP_RECORD = *mut BTH_SDP_RECORD;
+STRUCT!{#[repr(packed)] struct BTH_SDP_SERVICE_SEARCH_REQUEST {
+ hConnection: HANDLE_SDP_TYPE,
+ uuids: [SdpQueryUuid; MAX_UUIDS_IN_QUERY],
+}}
+pub type PBTH_SDP_SERVICE_SEARCH_REQUEST = *mut BTH_SDP_SERVICE_SEARCH_REQUEST;
+STRUCT!{#[repr(packed)] struct BTH_SDP_ATTRIBUTE_SEARCH_REQUEST {
+ hConnection: HANDLE_SDP_TYPE,
+ searchFlags: ULONG,
+ recordHandle: ULONG,
+ range: [SdpAttributeRange; 1],
+}}
+pub type PBTH_SDP_ATTRIBUTE_SEARCH_REQUEST = *mut BTH_SDP_ATTRIBUTE_SEARCH_REQUEST;
+STRUCT!{#[repr(packed)] struct BTH_SDP_SERVICE_ATTRIBUTE_SEARCH_REQUEST {
+ hConnection: HANDLE_SDP_TYPE,
+ searchFlags: ULONG,
+ uuids: [SdpQueryUuid; MAX_UUIDS_IN_QUERY],
+ range: [SdpAttributeRange; 1],
+}}
+pub type PBTH_SDP_SERVICE_ATTRIBUTE_SEARCH_REQUEST = *mut BTH_SDP_SERVICE_ATTRIBUTE_SEARCH_REQUEST;
+STRUCT!{#[repr(packed)] struct BTH_SDP_STREAM_RESPONSE {
+ requiredSize: ULONG,
+ responseSize: ULONG,
+ response: [UCHAR; 1],
+}}
+pub type PBTH_SDP_STREAM_RESPONSE = *mut BTH_SDP_STREAM_RESPONSE;
+STRUCT!{#[repr(packed)] struct BTH_COMMAND_HEADER {
+ OpCode: USHORT,
+ TotalParameterLength: UCHAR,
+}}
+pub type PBTH_COMMAND_HEADER = *mut BTH_COMMAND_HEADER;
+STRUCT!{#[repr(packed)] struct BTH_VENDOR_SPECIFIC_COMMAND {
+ ManufacturerId: ULONG,
+ LmpVersion: UCHAR,
+ MatchAnySinglePattern: BOOLEAN,
+ HciHeader: BTH_COMMAND_HEADER,
+ Data: [UCHAR; 1],
+}}
+pub type PBTH_VENDOR_SPECIFIC_COMMAND = *mut BTH_VENDOR_SPECIFIC_COMMAND;
+STRUCT!{#[repr(packed)] struct BTH_VENDOR_PATTERN {
+ Offset: UCHAR,
+ Size: UCHAR,
+ Pattern: [UCHAR; 1],
+}}
+pub type PBTH_VENDOR_PATTERN = *mut BTH_VENDOR_PATTERN;
+STRUCT!{#[repr(packed)] struct BTH_VENDOR_EVENT_INFO {
+ BthAddress: BTH_ADDR,
+ EventSize: ULONG,
+ EventInfo: [UCHAR; 1],
+}}
+pub type PBTH_VENDOR_EVENT_INFO = *mut BTH_VENDOR_EVENT_INFO;
+pub const BTH_HOST_FEATURE_ENHANCED_RETRANSMISSION_MODE: ULONGLONG = 0x0000000000000001;
+pub const BTH_HOST_FEATURE_STREAMING_MODE: ULONGLONG = 0x0000000000000002;
+pub const BTH_HOST_FEATURE_LOW_ENERGY: ULONGLONG = 0x0000000000000004;
+pub const BTH_HOST_FEATURE_SCO_HCI: ULONGLONG = 0x0000000000000008;
+pub const BTH_HOST_FEATURE_SCO_HCIBYPASS: ULONGLONG = 0x0000000000000010;
+STRUCT!{#[repr(packed)] struct BTH_HOST_FEATURE_MASK {
+ Mask: ULONGLONG,
+ Reserved1: ULONGLONG,
+ Reserved2: ULONGLONG,
+}}
+pub type PBTH_HOST_FEATURE_MASK = *mut BTH_HOST_FEATURE_MASK;
diff --git a/third_party/rust/chromium_crates_io/vendor/winapi-0.3.9/src/shared/bthsdpdef.rs b/third_party/rust/chromium_crates_io/vendor/winapi-0.3.9/src/shared/bthsdpdef.rs
new file mode 100644
index 000000000000..4416fab053a5
--- /dev/null
+++ b/third_party/rust/chromium_crates_io/vendor/winapi-0.3.9/src/shared/bthsdpdef.rs
@@ -0,0 +1,68 @@
+// Licensed under the Apache License, Version 2.0
+// or the MIT license
+// , at your option.
+// All files in the project carrying such notice may not be copied, modified, or distributed
+// except according to those terms.
+use shared::guiddef::GUID;
+use shared::minwindef::{ULONG, USHORT};
+use shared::ntdef::{LONGLONG, ULONGLONG};
+STRUCT!{struct SDP_LARGE_INTEGER_16 {
+ LowPart: ULONGLONG,
+ HighPart: LONGLONG,
+}}
+STRUCT!{struct SDP_ULARGE_INTEGER_16 {
+ LowPart: ULONGLONG,
+ HighPart: ULONGLONG,
+}}
+pub type PSDP_ULARGE_INTEGER_16 = *mut SDP_ULARGE_INTEGER_16;
+pub type LPSDP_ULARGE_INTEGER_16 = *mut SDP_ULARGE_INTEGER_16;
+pub type PSDP_LARGE_INTEGER_16 = *mut SDP_LARGE_INTEGER_16;
+pub type LPSDP_LARGE_INTEGER_16 = *mut SDP_LARGE_INTEGER_16;
+ENUM!{enum NodeContainerType {
+ NodeContainerTypeSequence,
+ NodeContainerTypeAlternative,
+}}
+pub type SDP_ERROR = USHORT;
+pub type PSDP_ERROR = *mut USHORT;
+ENUM!{enum SDP_TYPE {
+ SDP_TYPE_NIL = 0x00,
+ SDP_TYPE_UINT = 0x01,
+ SDP_TYPE_INT = 0x02,
+ SDP_TYPE_UUID = 0x03,
+ SDP_TYPE_STRING = 0x04,
+ SDP_TYPE_BOOLEAN = 0x05,
+ SDP_TYPE_SEQUENCE = 0x06,
+ SDP_TYPE_ALTERNATIVE = 0x07,
+ SDP_TYPE_URL = 0x08,
+ SDP_TYPE_CONTAINER = 0x20,
+}}
+ENUM!{enum SDP_SPECIFICTYPE {
+ SDP_ST_NONE = 0x0000,
+ SDP_ST_UINT8 = 0x0010,
+ SDP_ST_UINT16 = 0x0110,
+ SDP_ST_UINT32 = 0x0210,
+ SDP_ST_UINT64 = 0x0310,
+ SDP_ST_UINT128 = 0x0410,
+ SDP_ST_INT8 = 0x0020,
+ SDP_ST_INT16 = 0x0120,
+ SDP_ST_INT32 = 0x0220,
+ SDP_ST_INT64 = 0x0320,
+ SDP_ST_INT128 = 0x0420,
+ SDP_ST_UUID16 = 0x0130,
+ SDP_ST_UUID32 = 0x0220,
+ SDP_ST_UUID128 = 0x0430,
+}}
+STRUCT!{struct SdpAttributeRange {
+ minAttribute: USHORT,
+ maxAttribute: USHORT,
+}}
+UNION!{union SdpQueryUuidUnion {
+ [u32; 4],
+ uuid128 uuid128_mut: GUID,
+ uuid32 uuid32_mut: ULONG,
+ uuid16 uuid16_mut: USHORT,
+}}
+STRUCT!{struct SdpQueryUuid {
+ u: SdpQueryUuidUnion,
+ uuidType: USHORT,
+}}
diff --git a/third_party/rust/chromium_crates_io/vendor/winapi-0.3.9/src/shared/bugcodes.rs b/third_party/rust/chromium_crates_io/vendor/winapi-0.3.9/src/shared/bugcodes.rs
new file mode 100644
index 000000000000..3e2bd4954bc8
--- /dev/null
+++ b/third_party/rust/chromium_crates_io/vendor/winapi-0.3.9/src/shared/bugcodes.rs
@@ -0,0 +1,456 @@
+// Licensed under the Apache License, Version 2.0
+// or the MIT license
+// , at your option.
+// All files in the project carrying such notice may not be copied, modified, or distributed
+// except according to those terms.
+//! Definitions of system bug check codes
+use shared::ntdef::ULONG;
+pub const HARDWARE_PROFILE_UNDOCKED_STRING: ULONG = 0x40010001;
+pub const HARDWARE_PROFILE_DOCKED_STRING: ULONG = 0x40010002;
+pub const HARDWARE_PROFILE_UNKNOWN_STRING: ULONG = 0x40010003;
+pub const WINDOWS_NT_BANNER: ULONG = 0x4000007E;
+pub const WINDOWS_NT_CSD_STRING: ULONG = 0x40000087;
+pub const WINDOWS_NT_INFO_STRING: ULONG = 0x40000088;
+pub const WINDOWS_NT_MP_STRING: ULONG = 0x40000089;
+pub const THREAD_TERMINATE_HELD_MUTEX: ULONG = 0x4000008A;
+pub const WINDOWS_NT_INFO_STRING_PLURAL: ULONG = 0x4000009D;
+pub const WINDOWS_NT_RC_STRING: ULONG = 0x4000009E;
+pub const APC_INDEX_MISMATCH: ULONG = 0x00000001;
+pub const DEVICE_QUEUE_NOT_BUSY: ULONG = 0x00000002;
+pub const INVALID_AFFINITY_SET: ULONG = 0x00000003;
+pub const INVALID_DATA_ACCESS_TRAP: ULONG = 0x00000004;
+pub const INVALID_PROCESS_ATTACH_ATTEMPT: ULONG = 0x00000005;
+pub const INVALID_PROCESS_DETACH_ATTEMPT: ULONG = 0x00000006;
+pub const INVALID_SOFTWARE_INTERRUPT: ULONG = 0x00000007;
+pub const IRQL_NOT_DISPATCH_LEVEL: ULONG = 0x00000008;
+pub const IRQL_NOT_GREATER_OR_EQUAL: ULONG = 0x00000009;
+pub const IRQL_NOT_LESS_OR_EQUAL: ULONG = 0x0000000A;
+pub const NO_EXCEPTION_HANDLING_SUPPORT: ULONG = 0x0000000B;
+pub const MAXIMUM_WAIT_OBJECTS_EXCEEDED: ULONG = 0x0000000C;
+pub const MUTEX_LEVEL_NUMBER_VIOLATION: ULONG = 0x0000000D;
+pub const NO_USER_MODE_CONTEXT: ULONG = 0x0000000E;
+pub const SPIN_LOCK_ALREADY_OWNED: ULONG = 0x0000000F;
+pub const SPIN_LOCK_NOT_OWNED: ULONG = 0x00000010;
+pub const THREAD_NOT_MUTEX_OWNER: ULONG = 0x00000011;
+pub const TRAP_CAUSE_UNKNOWN: ULONG = 0x00000012;
+pub const EMPTY_THREAD_REAPER_LIST: ULONG = 0x00000013;
+pub const CREATE_DELETE_LOCK_NOT_LOCKED: ULONG = 0x00000014;
+pub const LAST_CHANCE_CALLED_FROM_KMODE: ULONG = 0x00000015;
+pub const CID_HANDLE_CREATION: ULONG = 0x00000016;
+pub const CID_HANDLE_DELETION: ULONG = 0x00000017;
+pub const REFERENCE_BY_POINTER: ULONG = 0x00000018;
+pub const BAD_POOL_HEADER: ULONG = 0x00000019;
+pub const MEMORY_MANAGEMENT: ULONG = 0x0000001A;
+pub const PFN_SHARE_COUNT: ULONG = 0x0000001B;
+pub const PFN_REFERENCE_COUNT: ULONG = 0x0000001C;
+pub const NO_SPIN_LOCK_AVAILABLE: ULONG = 0x0000001D;
+pub const KMODE_EXCEPTION_NOT_HANDLED: ULONG = 0x0000001E;
+pub const SHARED_RESOURCE_CONV_ERROR: ULONG = 0x0000001F;
+pub const KERNEL_APC_PENDING_DURING_EXIT: ULONG = 0x00000020;
+pub const QUOTA_UNDERFLOW: ULONG = 0x00000021;
+pub const FILE_SYSTEM: ULONG = 0x00000022;
+pub const FAT_FILE_SYSTEM: ULONG = 0x00000023;
+pub const NTFS_FILE_SYSTEM: ULONG = 0x00000024;
+pub const NPFS_FILE_SYSTEM: ULONG = 0x00000025;
+pub const CDFS_FILE_SYSTEM: ULONG = 0x00000026;
+pub const RDR_FILE_SYSTEM: ULONG = 0x00000027;
+pub const CORRUPT_ACCESS_TOKEN: ULONG = 0x00000028;
+pub const SECURITY_SYSTEM: ULONG = 0x00000029;
+pub const INCONSISTENT_IRP: ULONG = 0x0000002A;
+pub const PANIC_STACK_SWITCH: ULONG = 0x0000002B;
+pub const PORT_DRIVER_INTERNAL: ULONG = 0x0000002C;
+pub const SCSI_DISK_DRIVER_INTERNAL: ULONG = 0x0000002D;
+pub const DATA_BUS_ERROR: ULONG = 0x0000002E;
+pub const INSTRUCTION_BUS_ERROR: ULONG = 0x0000002F;
+pub const SET_OF_INVALID_CONTEXT: ULONG = 0x00000030;
+pub const PHASE0_INITIALIZATION_FAILED: ULONG = 0x00000031;
+pub const PHASE1_INITIALIZATION_FAILED: ULONG = 0x00000032;
+pub const UNEXPECTED_INITIALIZATION_CALL: ULONG = 0x00000033;
+pub const CACHE_MANAGER: ULONG = 0x00000034;
+pub const NO_MORE_IRP_STACK_LOCATIONS: ULONG = 0x00000035;
+pub const DEVICE_REFERENCE_COUNT_NOT_ZERO: ULONG = 0x00000036;
+pub const FLOPPY_INTERNAL_ERROR: ULONG = 0x00000037;
+pub const SERIAL_DRIVER_INTERNAL: ULONG = 0x00000038;
+pub const SYSTEM_EXIT_OWNED_MUTEX: ULONG = 0x00000039;
+pub const SYSTEM_UNWIND_PREVIOUS_USER: ULONG = 0x0000003A;
+pub const SYSTEM_SERVICE_EXCEPTION: ULONG = 0x0000003B;
+pub const INTERRUPT_UNWIND_ATTEMPTED: ULONG = 0x0000003C;
+pub const INTERRUPT_EXCEPTION_NOT_HANDLED: ULONG = 0x0000003D;
+pub const MULTIPROCESSOR_CONFIGURATION_NOT_SUPPORTED: ULONG = 0x0000003E;
+pub const NO_MORE_SYSTEM_PTES: ULONG = 0x0000003F;
+pub const TARGET_MDL_TOO_SMALL: ULONG = 0x00000040;
+pub const MUST_SUCCEED_POOL_EMPTY: ULONG = 0x00000041;
+pub const ATDISK_DRIVER_INTERNAL: ULONG = 0x00000042;
+pub const NO_SUCH_PARTITION: ULONG = 0x00000043;
+pub const MULTIPLE_IRP_COMPLETE_REQUESTS: ULONG = 0x00000044;
+pub const INSUFFICIENT_SYSTEM_MAP_REGS: ULONG = 0x00000045;
+pub const DEREF_UNKNOWN_LOGON_SESSION: ULONG = 0x00000046;
+pub const REF_UNKNOWN_LOGON_SESSION: ULONG = 0x00000047;
+pub const CANCEL_STATE_IN_COMPLETED_IRP: ULONG = 0x00000048;
+pub const PAGE_FAULT_WITH_INTERRUPTS_OFF: ULONG = 0x00000049;
+pub const IRQL_GT_ZERO_AT_SYSTEM_SERVICE: ULONG = 0x0000004A;
+pub const STREAMS_INTERNAL_ERROR: ULONG = 0x0000004B;
+pub const FATAL_UNHANDLED_HARD_ERROR: ULONG = 0x0000004C;
+pub const NO_PAGES_AVAILABLE: ULONG = 0x0000004D;
+pub const PFN_LIST_CORRUPT: ULONG = 0x0000004E;
+pub const NDIS_INTERNAL_ERROR: ULONG = 0x0000004F;
+pub const PAGE_FAULT_IN_NONPAGED_AREA: ULONG = 0x00000050;
+pub const PAGE_FAULT_IN_NONPAGED_AREA_M: ULONG = 0x10000050;
+pub const REGISTRY_ERROR: ULONG = 0x00000051;
+pub const MAILSLOT_FILE_SYSTEM: ULONG = 0x00000052;
+pub const NO_BOOT_DEVICE: ULONG = 0x00000053;
+pub const LM_SERVER_INTERNAL_ERROR: ULONG = 0x00000054;
+pub const DATA_COHERENCY_EXCEPTION: ULONG = 0x00000055;
+pub const INSTRUCTION_COHERENCY_EXCEPTION: ULONG = 0x00000056;
+pub const XNS_INTERNAL_ERROR: ULONG = 0x00000057;
+pub const VOLMGRX_INTERNAL_ERROR: ULONG = 0x00000058;
+pub const PINBALL_FILE_SYSTEM: ULONG = 0x00000059;
+pub const CRITICAL_SERVICE_FAILED: ULONG = 0x0000005A;
+pub const SET_ENV_VAR_FAILED: ULONG = 0x0000005B;
+pub const HAL_INITIALIZATION_FAILED: ULONG = 0x0000005C;
+pub const UNSUPPORTED_PROCESSOR: ULONG = 0x0000005D;
+pub const OBJECT_INITIALIZATION_FAILED: ULONG = 0x0000005E;
+pub const SECURITY_INITIALIZATION_FAILED: ULONG = 0x0000005F;
+pub const PROCESS_INITIALIZATION_FAILED: ULONG = 0x00000060;
+pub const HAL1_INITIALIZATION_FAILED: ULONG = 0x00000061;
+pub const OBJECT1_INITIALIZATION_FAILED: ULONG = 0x00000062;
+pub const SECURITY1_INITIALIZATION_FAILED: ULONG = 0x00000063;
+pub const SYMBOLIC_INITIALIZATION_FAILED: ULONG = 0x00000064;
+pub const MEMORY1_INITIALIZATION_FAILED: ULONG = 0x00000065;
+pub const CACHE_INITIALIZATION_FAILED: ULONG = 0x00000066;
+pub const CONFIG_INITIALIZATION_FAILED: ULONG = 0x00000067;
+pub const FILE_INITIALIZATION_FAILED: ULONG = 0x00000068;
+pub const IO1_INITIALIZATION_FAILED: ULONG = 0x00000069;
+pub const LPC_INITIALIZATION_FAILED: ULONG = 0x0000006A;
+pub const PROCESS1_INITIALIZATION_FAILED: ULONG = 0x0000006B;
+pub const REFMON_INITIALIZATION_FAILED: ULONG = 0x0000006C;
+pub const SESSION1_INITIALIZATION_FAILED: ULONG = 0x0000006D;
+pub const BOOTPROC_INITIALIZATION_FAILED: ULONG = 0x0000006E;
+pub const VSL_INITIALIZATION_FAILED: ULONG = 0x0000006F;
+pub const SOFT_RESTART_FATAL_ERROR: ULONG = 0x00000070;
+pub const ASSIGN_DRIVE_LETTERS_FAILED: ULONG = 0x00000072;
+pub const CONFIG_LIST_FAILED: ULONG = 0x00000073;
+pub const BAD_SYSTEM_CONFIG_INFO: ULONG = 0x00000074;
+pub const CANNOT_WRITE_CONFIGURATION: ULONG = 0x00000075;
+pub const PROCESS_HAS_LOCKED_PAGES: ULONG = 0x00000076;
+pub const KERNEL_STACK_INPAGE_ERROR: ULONG = 0x00000077;
+pub const PHASE0_EXCEPTION: ULONG = 0x00000078;
+pub const MISMATCHED_HAL: ULONG = 0x00000079;
+pub const KERNEL_DATA_INPAGE_ERROR: ULONG = 0x0000007A;
+pub const INACCESSIBLE_BOOT_DEVICE: ULONG = 0x0000007B;
+pub const BUGCODE_NDIS_DRIVER: ULONG = 0x0000007C;
+pub const INSTALL_MORE_MEMORY: ULONG = 0x0000007D;
+pub const SYSTEM_THREAD_EXCEPTION_NOT_HANDLED: ULONG = 0x0000007E;
+pub const SYSTEM_THREAD_EXCEPTION_NOT_HANDLED_M: ULONG = 0x1000007E;
+pub const UNEXPECTED_KERNEL_MODE_TRAP: ULONG = 0x0000007F;
+pub const UNEXPECTED_KERNEL_MODE_TRAP_M: ULONG = 0x1000007F;
+pub const NMI_HARDWARE_FAILURE: ULONG = 0x00000080;
+pub const SPIN_LOCK_INIT_FAILURE: ULONG = 0x00000081;
+pub const DFS_FILE_SYSTEM: ULONG = 0x00000082;
+pub const OFS_FILE_SYSTEM: ULONG = 0x00000083;
+pub const RECOM_DRIVER: ULONG = 0x00000084;
+pub const SETUP_FAILURE: ULONG = 0x00000085;
+pub const AUDIT_FAILURE: ULONG = 0x00000086;
+pub const MBR_CHECKSUM_MISMATCH: ULONG = 0x0000008B;
+pub const KERNEL_MODE_EXCEPTION_NOT_HANDLED: ULONG = 0x0000008E;
+pub const KERNEL_MODE_EXCEPTION_NOT_HANDLED_M: ULONG = 0x1000008E;
+pub const PP0_INITIALIZATION_FAILED: ULONG = 0x0000008F;
+pub const PP1_INITIALIZATION_FAILED: ULONG = 0x00000090;
+pub const WIN32K_INIT_OR_RIT_FAILURE: ULONG = 0x00000091;
+pub const UP_DRIVER_ON_MP_SYSTEM: ULONG = 0x00000092;
+pub const INVALID_KERNEL_HANDLE: ULONG = 0x00000093;
+pub const KERNEL_STACK_LOCKED_AT_EXIT: ULONG = 0x00000094;
+pub const PNP_INTERNAL_ERROR: ULONG = 0x00000095;
+pub const INVALID_WORK_QUEUE_ITEM: ULONG = 0x00000096;
+pub const BOUND_IMAGE_UNSUPPORTED: ULONG = 0x00000097;
+pub const END_OF_NT_EVALUATION_PERIOD: ULONG = 0x00000098;
+pub const INVALID_REGION_OR_SEGMENT: ULONG = 0x00000099;
+pub const SYSTEM_LICENSE_VIOLATION: ULONG = 0x0000009A;
+pub const UDFS_FILE_SYSTEM: ULONG = 0x0000009B;
+pub const MACHINE_CHECK_EXCEPTION: ULONG = 0x0000009C;
+pub const USER_MODE_HEALTH_MONITOR: ULONG = 0x0000009E;
+pub const DRIVER_POWER_STATE_FAILURE: ULONG = 0x0000009F;
+pub const INTERNAL_POWER_ERROR: ULONG = 0x000000A0;
+pub const PCI_BUS_DRIVER_INTERNAL: ULONG = 0x000000A1;
+pub const MEMORY_IMAGE_CORRUPT: ULONG = 0x000000A2;
+pub const ACPI_DRIVER_INTERNAL: ULONG = 0x000000A3;
+pub const CNSS_FILE_SYSTEM_FILTER: ULONG = 0x000000A4;
+pub const ACPI_BIOS_ERROR: ULONG = 0x000000A5;
+pub const FP_EMULATION_ERROR: ULONG = 0x000000A6;
+pub const BAD_EXHANDLE: ULONG = 0x000000A7;
+pub const BOOTING_IN_SAFEMODE_MINIMAL: ULONG = 0x000000A8;
+pub const BOOTING_IN_SAFEMODE_NETWORK: ULONG = 0x000000A9;
+pub const BOOTING_IN_SAFEMODE_DSREPAIR: ULONG = 0x000000AA;
+pub const SESSION_HAS_VALID_POOL_ON_EXIT: ULONG = 0x000000AB;
+pub const HAL_MEMORY_ALLOCATION: ULONG = 0x000000AC;
+pub const VIDEO_DRIVER_DEBUG_REPORT_REQUEST: ULONG = 0x400000AD;
+pub const BGI_DETECTED_VIOLATION: ULONG = 0x000000B1;
+pub const VIDEO_DRIVER_INIT_FAILURE: ULONG = 0x000000B4;
+pub const BOOTLOG_LOADED: ULONG = 0x000000B5;
+pub const BOOTLOG_NOT_LOADED: ULONG = 0x000000B6;
+pub const BOOTLOG_ENABLED: ULONG = 0x000000B7;
+pub const ATTEMPTED_SWITCH_FROM_DPC: ULONG = 0x000000B8;
+pub const CHIPSET_DETECTED_ERROR: ULONG = 0x000000B9;
+pub const SESSION_HAS_VALID_VIEWS_ON_EXIT: ULONG = 0x000000BA;
+pub const NETWORK_BOOT_INITIALIZATION_FAILED: ULONG = 0x000000BB;
+pub const NETWORK_BOOT_DUPLICATE_ADDRESS: ULONG = 0x000000BC;
+pub const INVALID_HIBERNATED_STATE: ULONG = 0x000000BD;
+pub const ATTEMPTED_WRITE_TO_READONLY_MEMORY: ULONG = 0x000000BE;
+pub const MUTEX_ALREADY_OWNED: ULONG = 0x000000BF;
+pub const PCI_CONFIG_SPACE_ACCESS_FAILURE: ULONG = 0x000000C0;
+pub const SPECIAL_POOL_DETECTED_MEMORY_CORRUPTION: ULONG = 0x000000C1;
+pub const BAD_POOL_CALLER: ULONG = 0x000000C2;
+pub const SYSTEM_IMAGE_BAD_SIGNATURE: ULONG = 0x000000C3;
+pub const DRIVER_VERIFIER_DETECTED_VIOLATION: ULONG = 0x000000C4;
+pub const DRIVER_CORRUPTED_EXPOOL: ULONG = 0x000000C5;
+pub const DRIVER_CAUGHT_MODIFYING_FREED_POOL: ULONG = 0x000000C6;
+pub const TIMER_OR_DPC_INVALID: ULONG = 0x000000C7;
+pub const IRQL_UNEXPECTED_VALUE: ULONG = 0x000000C8;
+pub const DRIVER_VERIFIER_IOMANAGER_VIOLATION: ULONG = 0x000000C9;
+pub const PNP_DETECTED_FATAL_ERROR: ULONG = 0x000000CA;
+pub const DRIVER_LEFT_LOCKED_PAGES_IN_PROCESS: ULONG = 0x000000CB;
+pub const PAGE_FAULT_IN_FREED_SPECIAL_POOL: ULONG = 0x000000CC;
+pub const PAGE_FAULT_BEYOND_END_OF_ALLOCATION: ULONG = 0x000000CD;
+pub const DRIVER_UNLOADED_WITHOUT_CANCELLING_PENDING_OPERATIONS: ULONG = 0x000000CE;
+pub const TERMINAL_SERVER_DRIVER_MADE_INCORRECT_MEMORY_REFERENCE: ULONG = 0x000000CF;
+pub const DRIVER_CORRUPTED_MMPOOL: ULONG = 0x000000D0;
+pub const DRIVER_IRQL_NOT_LESS_OR_EQUAL: ULONG = 0x000000D1;
+pub const BUGCODE_ID_DRIVER: ULONG = 0x000000D2;
+pub const DRIVER_PORTION_MUST_BE_NONPAGED: ULONG = 0x000000D3;
+pub const SYSTEM_SCAN_AT_RAISED_IRQL_CAUGHT_IMPROPER_DRIVER_UNLOAD: ULONG = 0x000000D4;
+pub const DRIVER_PAGE_FAULT_IN_FREED_SPECIAL_POOL: ULONG = 0x000000D5;
+pub const DRIVER_PAGE_FAULT_BEYOND_END_OF_ALLOCATION: ULONG = 0x000000D6;
+pub const DRIVER_PAGE_FAULT_BEYOND_END_OF_ALLOCATION_M: ULONG = 0x100000D6;
+pub const DRIVER_UNMAPPING_INVALID_VIEW: ULONG = 0x000000D7;
+pub const DRIVER_USED_EXCESSIVE_PTES: ULONG = 0x000000D8;
+pub const LOCKED_PAGES_TRACKER_CORRUPTION: ULONG = 0x000000D9;
+pub const SYSTEM_PTE_MISUSE: ULONG = 0x000000DA;
+pub const DRIVER_CORRUPTED_SYSPTES: ULONG = 0x000000DB;
+pub const DRIVER_INVALID_STACK_ACCESS: ULONG = 0x000000DC;
+pub const POOL_CORRUPTION_IN_FILE_AREA: ULONG = 0x000000DE;
+pub const IMPERSONATING_WORKER_THREAD: ULONG = 0x000000DF;
+pub const ACPI_BIOS_FATAL_ERROR: ULONG = 0x000000E0;
+pub const WORKER_THREAD_RETURNED_AT_BAD_IRQL: ULONG = 0x000000E1;
+pub const MANUALLY_INITIATED_CRASH: ULONG = 0x000000E2;
+pub const RESOURCE_NOT_OWNED: ULONG = 0x000000E3;
+pub const WORKER_INVALID: ULONG = 0x000000E4;
+pub const POWER_FAILURE_SIMULATE: ULONG = 0x000000E5;
+pub const DRIVER_VERIFIER_DMA_VIOLATION: ULONG = 0x000000E6;
+pub const INVALID_FLOATING_POINT_STATE: ULONG = 0x000000E7;
+pub const INVALID_CANCEL_OF_FILE_OPEN: ULONG = 0x000000E8;
+pub const ACTIVE_EX_WORKER_THREAD_TERMINATION: ULONG = 0x000000E9;
+pub const SAVER_UNSPECIFIED: ULONG = 0x0000F000;
+pub const SAVER_BLANKSCREEN: ULONG = 0x0000F002;
+pub const SAVER_INPUT: ULONG = 0x0000F003;
+pub const SAVER_WATCHDOG: ULONG = 0x0000F004;
+pub const SAVER_STARTNOTVISIBLE: ULONG = 0x0000F005;
+pub const SAVER_NAVIGATIONMODEL: ULONG = 0x0000F006;
+pub const SAVER_OUTOFMEMORY: ULONG = 0x0000F007;
+pub const SAVER_GRAPHICS: ULONG = 0x0000F008;
+pub const SAVER_NAVSERVERTIMEOUT: ULONG = 0x0000F009;
+pub const SAVER_CHROMEPROCESSCRASH: ULONG = 0x0000F00A;
+pub const SAVER_NOTIFICATIONDISMISSAL: ULONG = 0x0000F00B;
+pub const SAVER_SPEECHDISMISSAL: ULONG = 0x0000F00C;
+pub const SAVER_CALLDISMISSAL: ULONG = 0x0000F00D;
+pub const SAVER_APPBARDISMISSAL: ULONG = 0x0000F00E;
+pub const SAVER_RILADAPTATIONCRASH: ULONG = 0x0000F00F;
+pub const SAVER_APPLISTUNREACHABLE: ULONG = 0x0000F010;
+pub const SAVER_REPORTNOTIFICATIONFAILURE: ULONG = 0x0000F011;
+pub const SAVER_UNEXPECTEDSHUTDOWN: ULONG = 0x0000F012;
+pub const SAVER_RPCFAILURE: ULONG = 0x0000F013;
+pub const SAVER_AUXILIARYFULLDUMP: ULONG = 0x0000F014;
+pub const SAVER_ACCOUNTPROVSVCINITFAILURE: ULONG = 0x0000F015;
+pub const SAVER_MTBFCOMMANDTIMEOUT: ULONG = 0x00000315;
+pub const SAVER_MTBFCOMMANDHANG: ULONG = 0x0000F101;
+pub const SAVER_MTBFPASSBUGCHECK: ULONG = 0x0000F102;
+pub const SAVER_MTBFIOERROR: ULONG = 0x0000F103;
+pub const SAVER_RENDERTHREADHANG: ULONG = 0x0000F200;
+pub const SAVER_RENDERMOBILEUIOOM: ULONG = 0x0000F201;
+pub const SAVER_DEVICEUPDATEUNSPECIFIED: ULONG = 0x0000F300;
+pub const SAVER_AUDIODRIVERHANG: ULONG = 0x0000F400;
+pub const SAVER_BATTERYPULLOUT: ULONG = 0x0000F500;
+pub const SAVER_MEDIACORETESTHANG: ULONG = 0x0000F600;
+pub const SAVER_RESOURCEMANAGEMENT: ULONG = 0x0000F700;
+pub const SAVER_CAPTURESERVICE: ULONG = 0x0000F800;
+pub const SAVER_WAITFORSHELLREADY: ULONG = 0x0000F900;
+pub const SAVER_NONRESPONSIVEPROCESS: ULONG = 0x00000194;
+pub const SAVER_SICKAPPLICATION: ULONG = 0x00008866;
+pub const THREAD_STUCK_IN_DEVICE_DRIVER: ULONG = 0x000000EA;
+pub const THREAD_STUCK_IN_DEVICE_DRIVER_M: ULONG = 0x100000EA;
+pub const DIRTY_MAPPED_PAGES_CONGESTION: ULONG = 0x000000EB;
+pub const SESSION_HAS_VALID_SPECIAL_POOL_ON_EXIT: ULONG = 0x000000EC;
+pub const UNMOUNTABLE_BOOT_VOLUME: ULONG = 0x000000ED;
+pub const CRITICAL_PROCESS_DIED: ULONG = 0x000000EF;
+pub const STORAGE_MINIPORT_ERROR: ULONG = 0x000000F0;
+pub const SCSI_VERIFIER_DETECTED_VIOLATION: ULONG = 0x000000F1;
+pub const HARDWARE_INTERRUPT_STORM: ULONG = 0x000000F2;
+pub const DISORDERLY_SHUTDOWN: ULONG = 0x000000F3;
+pub const CRITICAL_OBJECT_TERMINATION: ULONG = 0x000000F4;
+pub const FLTMGR_FILE_SYSTEM: ULONG = 0x000000F5;
+pub const PCI_VERIFIER_DETECTED_VIOLATION: ULONG = 0x000000F6;
+pub const DRIVER_OVERRAN_STACK_BUFFER: ULONG = 0x000000F7;
+pub const RAMDISK_BOOT_INITIALIZATION_FAILED: ULONG = 0x000000F8;
+pub const DRIVER_RETURNED_STATUS_REPARSE_FOR_VOLUME_OPEN: ULONG = 0x000000F9;
+pub const HTTP_DRIVER_CORRUPTED: ULONG = 0x000000FA;
+pub const RECURSIVE_MACHINE_CHECK: ULONG = 0x000000FB;
+pub const ATTEMPTED_EXECUTE_OF_NOEXECUTE_MEMORY: ULONG = 0x000000FC;
+pub const DIRTY_NOWRITE_PAGES_CONGESTION: ULONG = 0x000000FD;
+pub const BUGCODE_USB_DRIVER: ULONG = 0x000000FE;
+pub const BC_BLUETOOTH_VERIFIER_FAULT: ULONG = 0x00000BFE;
+pub const BC_BTHMINI_VERIFIER_FAULT: ULONG = 0x00000BFF;
+pub const RESERVE_QUEUE_OVERFLOW: ULONG = 0x000000FF;
+pub const LOADER_BLOCK_MISMATCH: ULONG = 0x00000100;
+pub const CLOCK_WATCHDOG_TIMEOUT: ULONG = 0x00000101;
+pub const DPC_WATCHDOG_TIMEOUT: ULONG = 0x00000102;
+pub const MUP_FILE_SYSTEM: ULONG = 0x00000103;
+pub const AGP_INVALID_ACCESS: ULONG = 0x00000104;
+pub const AGP_GART_CORRUPTION: ULONG = 0x00000105;
+pub const AGP_ILLEGALLY_REPROGRAMMED: ULONG = 0x00000106;
+pub const KERNEL_EXPAND_STACK_ACTIVE: ULONG = 0x00000107;
+pub const THIRD_PARTY_FILE_SYSTEM_FAILURE: ULONG = 0x00000108;
+pub const CRITICAL_STRUCTURE_CORRUPTION: ULONG = 0x00000109;
+pub const APP_TAGGING_INITIALIZATION_FAILED: ULONG = 0x0000010A;
+pub const DFSC_FILE_SYSTEM: ULONG = 0x0000010B;
+pub const FSRTL_EXTRA_CREATE_PARAMETER_VIOLATION: ULONG = 0x0000010C;
+pub const WDF_VIOLATION: ULONG = 0x0000010D;
+pub const VIDEO_MEMORY_MANAGEMENT_INTERNAL: ULONG = 0x0000010E;
+pub const DRIVER_INVALID_CRUNTIME_PARAMETER: ULONG = 0x00000110;
+pub const RECURSIVE_NMI: ULONG = 0x00000111;
+pub const MSRPC_STATE_VIOLATION: ULONG = 0x00000112;
+pub const VIDEO_DXGKRNL_FATAL_ERROR: ULONG = 0x00000113;
+pub const VIDEO_SHADOW_DRIVER_FATAL_ERROR: ULONG = 0x00000114;
+pub const AGP_INTERNAL: ULONG = 0x00000115;
+pub const VIDEO_TDR_FAILURE: ULONG = 0x00000116;
+pub const VIDEO_TDR_TIMEOUT_DETECTED: ULONG = 0x00000117;
+pub const NTHV_GUEST_ERROR: ULONG = 0x00000118;
+pub const VIDEO_SCHEDULER_INTERNAL_ERROR: ULONG = 0x00000119;
+pub const EM_INITIALIZATION_ERROR: ULONG = 0x0000011A;
+pub const DRIVER_RETURNED_HOLDING_CANCEL_LOCK: ULONG = 0x0000011B;
+pub const ATTEMPTED_WRITE_TO_CM_PROTECTED_STORAGE: ULONG = 0x0000011C;
+pub const EVENT_TRACING_FATAL_ERROR: ULONG = 0x0000011D;
+pub const TOO_MANY_RECURSIVE_FAULTS: ULONG = 0x0000011E;
+pub const INVALID_DRIVER_HANDLE: ULONG = 0x0000011F;
+pub const BITLOCKER_FATAL_ERROR: ULONG = 0x00000120;
+pub const DRIVER_VIOLATION: ULONG = 0x00000121;
+pub const WHEA_INTERNAL_ERROR: ULONG = 0x00000122;
+pub const CRYPTO_SELF_TEST_FAILURE: ULONG = 0x00000123;
+pub const WHEA_UNCORRECTABLE_ERROR: ULONG = 0x00000124;
+pub const NMR_INVALID_STATE: ULONG = 0x00000125;
+pub const NETIO_INVALID_POOL_CALLER: ULONG = 0x00000126;
+pub const PAGE_NOT_ZERO: ULONG = 0x00000127;
+pub const WORKER_THREAD_RETURNED_WITH_BAD_IO_PRIORITY: ULONG = 0x00000128;
+pub const WORKER_THREAD_RETURNED_WITH_BAD_PAGING_IO_PRIORITY: ULONG = 0x00000129;
+pub const MUI_NO_VALID_SYSTEM_LANGUAGE: ULONG = 0x0000012A;
+pub const FAULTY_HARDWARE_CORRUPTED_PAGE: ULONG = 0x0000012B;
+pub const EXFAT_FILE_SYSTEM: ULONG = 0x0000012C;
+pub const VOLSNAP_OVERLAPPED_TABLE_ACCESS: ULONG = 0x0000012D;
+pub const INVALID_MDL_RANGE: ULONG = 0x0000012E;
+pub const VHD_BOOT_INITIALIZATION_FAILED: ULONG = 0x0000012F;
+pub const DYNAMIC_ADD_PROCESSOR_MISMATCH: ULONG = 0x00000130;
+pub const INVALID_EXTENDED_PROCESSOR_STATE: ULONG = 0x00000131;
+pub const RESOURCE_OWNER_POINTER_INVALID: ULONG = 0x00000132;
+pub const DPC_WATCHDOG_VIOLATION: ULONG = 0x00000133;
+pub const DRIVE_EXTENDER: ULONG = 0x00000134;
+pub const REGISTRY_FILTER_DRIVER_EXCEPTION: ULONG = 0x00000135;
+pub const VHD_BOOT_HOST_VOLUME_NOT_ENOUGH_SPACE: ULONG = 0x00000136;
+pub const WIN32K_HANDLE_MANAGER: ULONG = 0x00000137;
+pub const GPIO_CONTROLLER_DRIVER_ERROR: ULONG = 0x00000138;
+pub const KERNEL_SECURITY_CHECK_FAILURE: ULONG = 0x00000139;
+pub const KERNEL_MODE_HEAP_CORRUPTION: ULONG = 0x0000013A;
+pub const PASSIVE_INTERRUPT_ERROR: ULONG = 0x0000013B;
+pub const INVALID_IO_BOOST_STATE: ULONG = 0x0000013C;
+pub const CRITICAL_INITIALIZATION_FAILURE: ULONG = 0x0000013D;
+pub const ERRATA_WORKAROUND_UNSUCCESSFUL: ULONG = 0x0000013E;
+pub const STORAGE_DEVICE_ABNORMALITY_DETECTED: ULONG = 0x00000140;
+pub const VIDEO_ENGINE_TIMEOUT_DETECTED: ULONG = 0x00000141;
+pub const VIDEO_TDR_APPLICATION_BLOCKED: ULONG = 0x00000142;
+pub const PROCESSOR_DRIVER_INTERNAL: ULONG = 0x00000143;
+pub const BUGCODE_USB3_DRIVER: ULONG = 0x00000144;
+pub const SECURE_BOOT_VIOLATION: ULONG = 0x00000145;
+pub const NDIS_NET_BUFFER_LIST_INFO_ILLEGALLY_TRANSFERRED: ULONG = 0x00000146;
+pub const ABNORMAL_RESET_DETECTED: ULONG = 0x00000147;
+pub const IO_OBJECT_INVALID: ULONG = 0x00000148;
+pub const REFS_FILE_SYSTEM: ULONG = 0x00000149;
+pub const KERNEL_WMI_INTERNAL: ULONG = 0x0000014A;
+pub const SOC_SUBSYSTEM_FAILURE: ULONG = 0x0000014B;
+pub const FATAL_ABNORMAL_RESET_ERROR: ULONG = 0x0000014C;
+pub const EXCEPTION_SCOPE_INVALID: ULONG = 0x0000014D;
+pub const SOC_CRITICAL_DEVICE_REMOVED: ULONG = 0x0000014E;
+pub const PDC_WATCHDOG_TIMEOUT: ULONG = 0x0000014F;
+pub const TCPIP_AOAC_NIC_ACTIVE_REFERENCE_LEAK: ULONG = 0x00000150;
+pub const UNSUPPORTED_INSTRUCTION_MODE: ULONG = 0x00000151;
+pub const INVALID_PUSH_LOCK_FLAGS: ULONG = 0x00000152;
+pub const KERNEL_LOCK_ENTRY_LEAKED_ON_THREAD_TERMINATION: ULONG = 0x00000153;
+pub const UNEXPECTED_STORE_EXCEPTION: ULONG = 0x00000154;
+pub const OS_DATA_TAMPERING: ULONG = 0x00000155;
+pub const WINSOCK_DETECTED_HUNG_CLOSESOCKET_LIVEDUMP: ULONG = 0x00000156;
+pub const KERNEL_THREAD_PRIORITY_FLOOR_VIOLATION: ULONG = 0x00000157;
+pub const ILLEGAL_IOMMU_PAGE_FAULT: ULONG = 0x00000158;
+pub const HAL_ILLEGAL_IOMMU_PAGE_FAULT: ULONG = 0x00000159;
+pub const SDBUS_INTERNAL_ERROR: ULONG = 0x0000015A;
+pub const WORKER_THREAD_RETURNED_WITH_SYSTEM_PAGE_PRIORITY_ACTIVE: ULONG = 0x0000015B;
+pub const PDC_WATCHDOG_TIMEOUT_LIVEDUMP: ULONG = 0x0000015C;
+pub const SOC_SUBSYSTEM_FAILURE_LIVEDUMP: ULONG = 0x0000015D;
+pub const BUGCODE_NDIS_DRIVER_LIVE_DUMP: ULONG = 0x0000015E;
+pub const CONNECTED_STANDBY_WATCHDOG_TIMEOUT_LIVEDUMP: ULONG = 0x0000015F;
+pub const WIN32K_ATOMIC_CHECK_FAILURE: ULONG = 0x00000160;
+pub const LIVE_SYSTEM_DUMP: ULONG = 0x00000161;
+pub const KERNEL_AUTO_BOOST_INVALID_LOCK_RELEASE: ULONG = 0x00000162;
+pub const WORKER_THREAD_TEST_CONDITION: ULONG = 0x00000163;
+pub const WIN32K_CRITICAL_FAILURE: ULONG = 0x00000164;
+pub const CLUSTER_CSV_STATUS_IO_TIMEOUT_LIVEDUMP: ULONG = 0x00000165;
+pub const CLUSTER_RESOURCE_CALL_TIMEOUT_LIVEDUMP: ULONG = 0x00000166;
+pub const CLUSTER_CSV_SNAPSHOT_DEVICE_INFO_TIMEOUT_LIVEDUMP: ULONG = 0x00000167;
+pub const CLUSTER_CSV_STATE_TRANSITION_TIMEOUT_LIVEDUMP: ULONG = 0x00000168;
+pub const CLUSTER_CSV_VOLUME_ARRIVAL_LIVEDUMP: ULONG = 0x00000169;
+pub const CLUSTER_CSV_VOLUME_REMOVAL_LIVEDUMP: ULONG = 0x0000016A;
+pub const CLUSTER_CSV_CLUSTER_WATCHDOG_LIVEDUMP: ULONG = 0x0000016B;
+pub const INVALID_RUNDOWN_PROTECTION_FLAGS: ULONG = 0x0000016C;
+pub const INVALID_SLOT_ALLOCATOR_FLAGS: ULONG = 0x0000016D;
+pub const ERESOURCE_INVALID_RELEASE: ULONG = 0x0000016E;
+pub const CLUSTER_CSV_STATE_TRANSITION_INTERVAL_TIMEOUT_LIVEDUMP: ULONG = 0x0000016F;
+pub const CLUSTER_CSV_CLUSSVC_DISCONNECT_WATCHDOG: ULONG = 0x00000170;
+pub const CRYPTO_LIBRARY_INTERNAL_ERROR: ULONG = 0x00000171;
+pub const COREMSGCALL_INTERNAL_ERROR: ULONG = 0x00000173;
+pub const COREMSG_INTERNAL_ERROR: ULONG = 0x00000174;
+pub const PREVIOUS_FATAL_ABNORMAL_RESET_ERROR: ULONG = 0x00000175;
+pub const ELAM_DRIVER_DETECTED_FATAL_ERROR: ULONG = 0x00000178;
+pub const PDC_LOCK_WATCHDOG_LIVEDUMP: ULONG = 0x0000017C;
+pub const PDC_UNEXPECTED_REVOCATION_LIVEDUMP: ULONG = 0x0000017D;
+pub const WVR_LIVEDUMP_REPLICATION_IOCONTEXT_TIMEOUT: ULONG = 0x00000180;
+pub const WVR_LIVEDUMP_STATE_TRANSITION_TIMEOUT: ULONG = 0x00000181;
+pub const WVR_LIVEDUMP_RECOVERY_IOCONTEXT_TIMEOUT: ULONG = 0x00000182;
+pub const WVR_LIVEDUMP_APP_IO_TIMEOUT: ULONG = 0x00000183;
+pub const WVR_LIVEDUMP_MANUALLY_INITIATED: ULONG = 0x00000184;
+pub const WVR_LIVEDUMP_STATE_FAILURE: ULONG = 0x00000185;
+pub const WVR_LIVEDUMP_CRITICAL_ERROR: ULONG = 0x00000186;
+pub const VIDEO_DWMINIT_TIMEOUT_FALLBACK_BDD: ULONG = 0x00000187;
+pub const CLUSTER_CSVFS_LIVEDUMP: ULONG = 0x00000188;
+pub const BAD_OBJECT_HEADER: ULONG = 0x00000189;
+pub const SILO_CORRUPT: ULONG = 0x0000018A;
+pub const SECURE_KERNEL_ERROR: ULONG = 0x0000018B;
+pub const HYPERGUARD_VIOLATION: ULONG = 0x0000018C;
+pub const WIN32K_CRITICAL_FAILURE_LIVEDUMP: ULONG = 0x00000190;
+pub const PF_DETECTED_CORRUPTION: ULONG = 0x00000191;
+pub const KERNEL_AUTO_BOOST_LOCK_ACQUISITION_WITH_RAISED_IRQL: ULONG = 0x00000192;
+pub const VIDEO_DXGKRNL_LIVEDUMP: ULONG = 0x00000193;
+pub const KERNEL_STORAGE_SLOT_IN_USE: ULONG = 0x00000199;
+pub const SMB_SERVER_LIVEDUMP: ULONG = 0x00000195;
+pub const LOADER_ROLLBACK_DETECTED: ULONG = 0x00000196;
+pub const WIN32K_SECURITY_FAILURE: ULONG = 0x00000197;
+pub const UFX_LIVEDUMP: ULONG = 0x00000198;
+pub const WORKER_THREAD_RETURNED_WHILE_ATTACHED_TO_SILO: ULONG = 0x0000019A;
+pub const TTM_FATAL_ERROR: ULONG = 0x0000019B;
+pub const WIN32K_POWER_WATCHDOG_TIMEOUT: ULONG = 0x0000019C;
+pub const CLUSTER_SVHDX_LIVEDUMP: ULONG = 0x0000019D;
+pub const DRIVER_VERIFIER_DETECTED_VIOLATION_LIVEDUMP: ULONG = 0x000001C4;
+pub const IO_THREADPOOL_DEADLOCK_LIVEDUMP: ULONG = 0x000001C5;
+pub const XBOX_CORRUPTED_IMAGE: ULONG = 0x00000357;
+pub const XBOX_INVERTED_FUNCTION_TABLE_OVERFLOW: ULONG = 0x00000358;
+pub const XBOX_CORRUPTED_IMAGE_BASE: ULONG = 0x00000359;
+pub const XBOX_360_SYSTEM_CRASH: ULONG = 0x00000360;
+pub const XBOX_360_SYSTEM_CRASH_RESERVED: ULONG = 0x00000420;
+pub const HYPERVISOR_ERROR: ULONG = 0x00020001;
+pub const WINLOGON_FATAL_ERROR: ULONG = 0xC000021A;
+pub const MANUALLY_INITIATED_CRASH1: ULONG = 0xDEADDEAD;
+pub const BUGCHECK_CONTEXT_MODIFIER: ULONG = 0x80000000;
diff --git a/third_party/rust/chromium_crates_io/vendor/winapi-0.3.9/src/shared/cderr.rs b/third_party/rust/chromium_crates_io/vendor/winapi-0.3.9/src/shared/cderr.rs
new file mode 100644
index 000000000000..07ea187ece8e
--- /dev/null
+++ b/third_party/rust/chromium_crates_io/vendor/winapi-0.3.9/src/shared/cderr.rs
@@ -0,0 +1,44 @@
+// Licensed under the Apache License, Version 2.0
+// or the MIT license
+// , at your option.
+// All files in the project carrying such notice may not be copied, modified, or distributed
+// except according to those terms.
+//! Common dialog error return codes
+use shared::minwindef::DWORD;
+pub const CDERR_DIALOGFAILURE: DWORD = 0xFFFF;
+pub const CDERR_GENERALCODES: DWORD = 0x0000;
+pub const CDERR_STRUCTSIZE: DWORD = 0x0001;
+pub const CDERR_INITIALIZATION: DWORD = 0x0002;
+pub const CDERR_NOTEMPLATE: DWORD = 0x0003;
+pub const CDERR_NOHINSTANCE: DWORD = 0x0004;
+pub const CDERR_LOADSTRFAILURE: DWORD = 0x0005;
+pub const CDERR_FINDRESFAILURE: DWORD = 0x0006;
+pub const CDERR_LOADRESFAILURE: DWORD = 0x0007;
+pub const CDERR_LOCKRESFAILURE: DWORD = 0x0008;
+pub const CDERR_MEMALLOCFAILURE: DWORD = 0x0009;
+pub const CDERR_MEMLOCKFAILURE: DWORD = 0x000A;
+pub const CDERR_NOHOOK: DWORD = 0x000B;
+pub const CDERR_REGISTERMSGFAIL: DWORD = 0x000C;
+pub const PDERR_PRINTERCODES: DWORD = 0x1000;
+pub const PDERR_SETUPFAILURE: DWORD = 0x1001;
+pub const PDERR_PARSEFAILURE: DWORD = 0x1002;
+pub const PDERR_RETDEFFAILURE: DWORD = 0x1003;
+pub const PDERR_LOADDRVFAILURE: DWORD = 0x1004;
+pub const PDERR_GETDEVMODEFAIL: DWORD = 0x1005;
+pub const PDERR_INITFAILURE: DWORD = 0x1006;
+pub const PDERR_NODEVICES: DWORD = 0x1007;
+pub const PDERR_NODEFAULTPRN: DWORD = 0x1008;
+pub const PDERR_DNDMMISMATCH: DWORD = 0x1009;
+pub const PDERR_CREATEICFAILURE: DWORD = 0x100A;
+pub const PDERR_PRINTERNOTFOUND: DWORD = 0x100B;
+pub const PDERR_DEFAULTDIFFERENT: DWORD = 0x100C;
+pub const CFERR_CHOOSEFONTCODES: DWORD = 0x2000;
+pub const CFERR_NOFONTS: DWORD = 0x2001;
+pub const CFERR_MAXLESSTHANMIN: DWORD = 0x2002;
+pub const FNERR_FILENAMECODES: DWORD = 0x3000;
+pub const FNERR_SUBCLASSFAILURE: DWORD = 0x3001;
+pub const FNERR_INVALIDFILENAME: DWORD = 0x3002;
+pub const FNERR_BUFFERTOOSMALL: DWORD = 0x3003;
+pub const FRERR_FINDREPLACECODES: DWORD = 0x4000;
+pub const FRERR_BUFFERLENGTHZERO: DWORD = 0x4001;
+pub const CCERR_CHOOSECOLORCODES: DWORD = 0x5000;
diff --git a/third_party/rust/chromium_crates_io/vendor/winapi-0.3.9/src/shared/cfg.rs b/third_party/rust/chromium_crates_io/vendor/winapi-0.3.9/src/shared/cfg.rs
new file mode 100644
index 000000000000..4abe3838bfbb
--- /dev/null
+++ b/third_party/rust/chromium_crates_io/vendor/winapi-0.3.9/src/shared/cfg.rs
@@ -0,0 +1,138 @@
+// Licensed under the Apache License, Version 2.0
+// or the MIT license
+// , at your option.
+// All files in the project carrying such notice may not be copied, modified, or distributed
+// except according to those terms.
+//! common Configuration Manager definitions for both user mode and kernel mode code
+use shared::minwindef::{DWORD, ULONG};
+ENUM!{enum PNP_VETO_TYPE {
+ PNP_VetoTypeUnknown,
+ PNP_VetoLegacyDevice,
+ PNP_VetoPendingClose,
+ PNP_VetoWindowsApp,
+ PNP_VetoWindowsService,
+ PNP_VetoOutstandingOpen,
+ PNP_VetoDevice,
+ PNP_VetoDriver,
+ PNP_VetoIllegalDeviceRequest,
+ PNP_VetoInsufficientPower,
+ PNP_VetoNonDisableable,
+ PNP_VetoLegacyDriver,
+ PNP_VetoInsufficientRights,
+}}
+pub type PPNP_VETO_TYPE = *mut PNP_VETO_TYPE;
+pub const CM_PROB_NOT_CONFIGURED: DWORD = 0x00000001;
+pub const CM_PROB_DEVLOADER_FAILED: DWORD = 0x00000002;
+pub const CM_PROB_OUT_OF_MEMORY: DWORD = 0x00000003;
+pub const CM_PROB_ENTRY_IS_WRONG_TYPE: DWORD = 0x00000004;
+pub const CM_PROB_LACKED_ARBITRATOR: DWORD = 0x00000005;
+pub const CM_PROB_BOOT_CONFIG_CONFLICT: DWORD = 0x00000006;
+pub const CM_PROB_FAILED_FILTER: DWORD = 0x00000007;
+pub const CM_PROB_DEVLOADER_NOT_FOUND: DWORD = 0x00000008;
+pub const CM_PROB_INVALID_DATA: DWORD = 0x00000009;
+pub const CM_PROB_FAILED_START: DWORD = 0x0000000A;
+pub const CM_PROB_LIAR: DWORD = 0x0000000B;
+pub const CM_PROB_NORMAL_CONFLICT: DWORD = 0x0000000C;
+pub const CM_PROB_NOT_VERIFIED: DWORD = 0x0000000D;
+pub const CM_PROB_NEED_RESTART: DWORD = 0x0000000E;
+pub const CM_PROB_REENUMERATION: DWORD = 0x0000000F;
+pub const CM_PROB_PARTIAL_LOG_CONF: DWORD = 0x00000010;
+pub const CM_PROB_UNKNOWN_RESOURCE: DWORD = 0x00000011;
+pub const CM_PROB_REINSTALL: DWORD = 0x00000012;
+pub const CM_PROB_REGISTRY: DWORD = 0x00000013;
+pub const CM_PROB_VXDLDR: DWORD = 0x00000014;
+pub const CM_PROB_WILL_BE_REMOVED: DWORD = 0x00000015;
+pub const CM_PROB_DISABLED: DWORD = 0x00000016;
+pub const CM_PROB_DEVLOADER_NOT_READY: DWORD = 0x00000017;
+pub const CM_PROB_DEVICE_NOT_THERE: DWORD = 0x00000018;
+pub const CM_PROB_MOVED: DWORD = 0x00000019;
+pub const CM_PROB_TOO_EARLY: DWORD = 0x0000001A;
+pub const CM_PROB_NO_VALID_LOG_CONF: DWORD = 0x0000001B;
+pub const CM_PROB_FAILED_INSTALL: DWORD = 0x0000001C;
+pub const CM_PROB_HARDWARE_DISABLED: DWORD = 0x0000001D;
+pub const CM_PROB_CANT_SHARE_IRQ: DWORD = 0x0000001E;
+pub const CM_PROB_FAILED_ADD: DWORD = 0x0000001F;
+pub const CM_PROB_DISABLED_SERVICE: DWORD = 0x00000020;
+pub const CM_PROB_TRANSLATION_FAILED: DWORD = 0x00000021;
+pub const CM_PROB_NO_SOFTCONFIG: DWORD = 0x00000022;
+pub const CM_PROB_BIOS_TABLE: DWORD = 0x00000023;
+pub const CM_PROB_IRQ_TRANSLATION_FAILED: DWORD = 0x00000024;
+pub const CM_PROB_FAILED_DRIVER_ENTRY: DWORD = 0x00000025;
+pub const CM_PROB_DRIVER_FAILED_PRIOR_UNLOAD: DWORD = 0x00000026;
+pub const CM_PROB_DRIVER_FAILED_LOAD: DWORD = 0x00000027;
+pub const CM_PROB_DRIVER_SERVICE_KEY_INVALID: DWORD = 0x00000028;
+pub const CM_PROB_LEGACY_SERVICE_NO_DEVICES: DWORD = 0x00000029;
+pub const CM_PROB_DUPLICATE_DEVICE: DWORD = 0x0000002A;
+pub const CM_PROB_FAILED_POST_START: DWORD = 0x0000002B;
+pub const CM_PROB_HALTED: DWORD = 0x0000002C;
+pub const CM_PROB_PHANTOM: DWORD = 0x0000002D;
+pub const CM_PROB_SYSTEM_SHUTDOWN: DWORD = 0x0000002E;
+pub const CM_PROB_HELD_FOR_EJECT: DWORD = 0x0000002F;
+pub const CM_PROB_DRIVER_BLOCKED: DWORD = 0x00000030;
+pub const CM_PROB_REGISTRY_TOO_LARGE: DWORD = 0x00000031;
+pub const CM_PROB_SETPROPERTIES_FAILED: DWORD = 0x00000032;
+pub const CM_PROB_WAITING_ON_DEPENDENCY: DWORD = 0x00000033;
+pub const CM_PROB_UNSIGNED_DRIVER: DWORD = 0x00000034;
+pub const CM_PROB_USED_BY_DEBUGGER: DWORD = 0x00000035;
+pub const NUM_CM_PROB_V1: DWORD = 0x00000025;
+pub const NUM_CM_PROB_V2: DWORD = 0x00000032;
+pub const NUM_CM_PROB_V3: DWORD = 0x00000033;
+pub const NUM_CM_PROB_V4: DWORD = 0x00000034;
+pub const NUM_CM_PROB_V5: DWORD = 0x00000035;
+pub const NUM_CM_PROB_V6: DWORD = 0x00000036;
+pub const DN_ROOT_ENUMERATED: DWORD = 0x00000001;
+pub const DN_DRIVER_LOADED: DWORD = 0x00000002;
+pub const DN_ENUM_LOADED: DWORD = 0x00000004;
+pub const DN_STARTED: DWORD = 0x00000008;
+pub const DN_MANUAL: DWORD = 0x00000010;
+pub const DN_NEED_TO_ENUM: DWORD = 0x00000020;
+pub const DN_NOT_FIRST_TIME: DWORD = 0x00000040;
+pub const DN_HARDWARE_ENUM: DWORD = 0x00000080;
+pub const DN_LIAR: DWORD = 0x00000100;
+pub const DN_HAS_MARK: DWORD = 0x00000200;
+pub const DN_HAS_PROBLEM: DWORD = 0x00000400;
+pub const DN_FILTERED: DWORD = 0x00000800;
+pub const DN_MOVED: DWORD = 0x00001000;
+pub const DN_DISABLEABLE: DWORD = 0x00002000;
+pub const DN_REMOVABLE: DWORD = 0x00004000;
+pub const DN_PRIVATE_PROBLEM: DWORD = 0x00008000;
+pub const DN_MF_PARENT: DWORD = 0x00010000;
+pub const DN_MF_CHILD: DWORD = 0x00020000;
+pub const DN_WILL_BE_REMOVED: DWORD = 0x00040000;
+pub const DN_NOT_FIRST_TIMEE: DWORD = 0x00080000;
+pub const DN_STOP_FREE_RES: DWORD = 0x00100000;
+pub const DN_REBAL_CANDIDATE: DWORD = 0x00200000;
+pub const DN_BAD_PARTIAL: DWORD = 0x00400000;
+pub const DN_NT_ENUMERATOR: DWORD = 0x00800000;
+pub const DN_NT_DRIVER: DWORD = 0x01000000;
+pub const DN_NEEDS_LOCKING: DWORD = 0x02000000;
+pub const DN_ARM_WAKEUP: DWORD = 0x04000000;
+pub const DN_APM_ENUMERATOR: DWORD = 0x08000000;
+pub const DN_APM_DRIVER: DWORD = 0x10000000;
+pub const DN_SILENT_INSTALL: DWORD = 0x20000000;
+pub const DN_NO_SHOW_IN_DM: DWORD = 0x40000000;
+pub const DN_BOOT_LOG_PROB: DWORD = 0x80000000;
+pub const DN_NEED_RESTART: DWORD = DN_LIAR;
+pub const DN_DRIVER_BLOCKED: DWORD = DN_NOT_FIRST_TIME;
+pub const DN_LEGACY_DRIVER: DWORD = DN_MOVED;
+pub const DN_CHILD_WITH_INVALID_ID: DWORD = DN_HAS_MARK;
+pub const DN_DEVICE_DISCONNECTED: DWORD = DN_NEEDS_LOCKING;
+pub const DN_CHANGEABLE_FLAGS: DWORD = DN_NOT_FIRST_TIME + DN_HARDWARE_ENUM + DN_HAS_MARK
+ + DN_DISABLEABLE + DN_REMOVABLE + DN_MF_CHILD + DN_MF_PARENT + DN_NOT_FIRST_TIMEE
+ + DN_STOP_FREE_RES + DN_REBAL_CANDIDATE + DN_NT_ENUMERATOR + DN_NT_DRIVER + DN_SILENT_INSTALL
+ + DN_NO_SHOW_IN_DM;
+pub const LCPRI_FORCECONFIG: ULONG = 0x00000000;
+pub const LCPRI_BOOTCONFIG: ULONG = 0x00000001;
+pub const LCPRI_DESIRED: ULONG = 0x00002000;
+pub const LCPRI_NORMAL: ULONG = 0x00003000;
+pub const LCPRI_LASTBESTCONFIG: ULONG = 0x00003FFF;
+pub const LCPRI_SUBOPTIMAL: ULONG = 0x00005000;
+pub const LCPRI_LASTSOFTCONFIG: ULONG = 0x00007FFF;
+pub const LCPRI_RESTART: ULONG = 0x00008000;
+pub const LCPRI_REBOOT: ULONG = 0x00009000;
+pub const LCPRI_POWEROFF: ULONG = 0x0000A000;
+pub const LCPRI_HARDRECONFIG: ULONG = 0x0000C000;
+pub const LCPRI_HARDWIRED: ULONG = 0x0000E000;
+pub const LCPRI_IMPOSSIBLE: ULONG = 0x0000F000;
+pub const LCPRI_DISABLED: ULONG = 0x0000FFFF;
+pub const MAX_LCPRI: ULONG = 0x0000FFFF;
diff --git a/third_party/rust/chromium_crates_io/vendor/winapi-0.3.9/src/shared/d3d9.rs b/third_party/rust/chromium_crates_io/vendor/winapi-0.3.9/src/shared/d3d9.rs
new file mode 100644
index 000000000000..437c81111933
--- /dev/null
+++ b/third_party/rust/chromium_crates_io/vendor/winapi-0.3.9/src/shared/d3d9.rs
@@ -0,0 +1,1268 @@
+// Licensed under the Apache License, Version 2.0
+// or the MIT license
+// , at your option.
+// All files in the project carrying such notice may not be copied, modified, or distributed
+// except according to those terms.
+//! Direct3D include file
+use shared::basetsd::UINT32;
+use shared::d3d9caps::{D3DCAPS9, D3DCONTENTPROTECTIONCAPS, D3DOVERLAYCAPS};
+use shared::d3d9types::{
+ D3DADAPTER_IDENTIFIER9, D3DAUTHENTICATEDCHANNELTYPE, D3DAUTHENTICATEDCHANNEL_CONFIGURE_OUTPUT,
+ D3DBACKBUFFER_TYPE, D3DBOX, D3DCLIPSTATUS9, D3DCOLOR, D3DCOMPOSERECTSOP, D3DCUBEMAP_FACES,
+ D3DDEVICE_CREATION_PARAMETERS, D3DDEVTYPE, D3DDISPLAYMODE, D3DDISPLAYMODEEX,
+ D3DDISPLAYMODEFILTER, D3DDISPLAYROTATION, D3DENCRYPTED_BLOCK_INFO, D3DFORMAT, D3DGAMMARAMP,
+ D3DINDEXBUFFER_DESC, D3DLIGHT9, D3DLOCKED_BOX, D3DLOCKED_RECT, D3DMATERIAL9, D3DMATRIX,
+ D3DMULTISAMPLE_TYPE, D3DPOOL, D3DPRESENTSTATS, D3DPRESENT_PARAMETERS, D3DPRIMITIVETYPE,
+ D3DQUERYTYPE, D3DRASTER_STATUS, D3DRECT, D3DRECTPATCH_INFO, D3DRENDERSTATETYPE,
+ D3DRESOURCETYPE, D3DSAMPLERSTATETYPE, D3DSTATEBLOCKTYPE, D3DSURFACE_DESC, D3DTEXTUREFILTERTYPE,
+ D3DTEXTURESTAGESTATETYPE, D3DTRANSFORMSTATETYPE, D3DTRIPATCH_INFO, D3DVERTEXBUFFER_DESC,
+ D3DVERTEXELEMENT9, D3DVIEWPORT9, D3DVOLUME_DESC,
+};
+use shared::guiddef::{GUID, IID};
+use shared::minwindef::{BOOL, BYTE, DWORD, FLOAT, INT, UINT};
+use shared::windef::{HDC, HMONITOR, HWND, POINT, RECT};
+use um::unknwnbase::{IUnknown, IUnknownVtbl};
+use um::wingdi::{PALETTEENTRY, RGNDATA};
+use um::winnt::{HANDLE, HRESULT, LPCWSTR, LUID, VOID};
+pub const D3D_SDK_VERSION: DWORD = 32;
+pub const D3D9b_SDK_VERSION: DWORD = 31;
+DEFINE_GUID!{IID_IDirect3D9,
+ 0x81bdcbca, 0x64d4, 0x426d, 0xae, 0x8d, 0xad, 0x01, 0x47, 0xf4, 0x27, 0x5c}
+DEFINE_GUID!{IID_IDirect3DDevice9,
+ 0xd0223b96, 0xbf7a, 0x43fd, 0x92, 0xbd, 0xa4, 0x3b, 0x0d, 0x82, 0xb9, 0xeb}
+DEFINE_GUID!{IID_IDirect3DResource9,
+ 0x05eec05d, 0x8f7d, 0x4362, 0xb9, 0x99, 0xd1, 0xba, 0xf3, 0x57, 0xc7, 0x04}
+DEFINE_GUID!{IID_IDirect3DBaseTexture9,
+ 0x580ca87e, 0x1d3c, 0x4d54, 0x99, 0x1d, 0xb7, 0xd3, 0xe3, 0xc2, 0x98, 0xce}
+DEFINE_GUID!{IID_IDirect3DTexture9,
+ 0x85c31227, 0x3de5, 0x4f00, 0x9b, 0x3a, 0xf1, 0x1a, 0xc3, 0x8c, 0x18, 0xb5}
+DEFINE_GUID!{IID_IDirect3DCubeTexture9,
+ 0xfff32f81, 0xd953, 0x473a, 0x92, 0x23, 0x93, 0xd6, 0x52, 0xab, 0xa9, 0x3f}
+DEFINE_GUID!{IID_IDirect3DVolumeTexture9,
+ 0x2518526c, 0xe789, 0x4111, 0xa7, 0xb9, 0x47, 0xef, 0x32, 0x8d, 0x13, 0xe6}
+DEFINE_GUID!{IID_IDirect3DVertexBuffer9,
+ 0xb64bb1b5, 0xfd70, 0x4df6, 0xbf, 0x91, 0x19, 0xd0, 0xa1, 0x24, 0x55, 0xe3}
+DEFINE_GUID!{IID_IDirect3DIndexBuffer9,
+ 0x7c9dd65e, 0xd3f7, 0x4529, 0xac, 0xee, 0x78, 0x58, 0x30, 0xac, 0xde, 0x35}
+DEFINE_GUID!{IID_IDirect3DSurface9,
+ 0x0cfbaf3a, 0x9ff6, 0x429a, 0x99, 0xb3, 0xa2, 0x79, 0x6a, 0xf8, 0xb8, 0x9b}
+DEFINE_GUID!{IID_IDirect3DVolume9,
+ 0x24f416e6, 0x1f67, 0x4aa7, 0xb8, 0x8e, 0xd3, 0x3f, 0x6f, 0x31, 0x28, 0xa1}
+DEFINE_GUID!{IID_IDirect3DSwapChain9,
+ 0x794950f2, 0xadfc, 0x458a, 0x90, 0x5e, 0x10, 0xa1, 0x0b, 0x0b, 0x50, 0x3b}
+DEFINE_GUID!{IID_IDirect3DVertexDeclaration9,
+ 0xdd13c59c, 0x36fa, 0x4098, 0xa8, 0xfb, 0xc7, 0xed, 0x39, 0xdc, 0x85, 0x46}
+DEFINE_GUID!{IID_IDirect3DVertexShader9,
+ 0xefc5557e, 0x6265, 0x4613, 0x8a, 0x94, 0x43, 0x85, 0x78, 0x89, 0xeb, 0x36}
+DEFINE_GUID!{IID_IDirect3DPixelShader9,
+ 0x6d3bdbdc, 0x5b02, 0x4415, 0xb8, 0x52, 0xce, 0x5e, 0x8b, 0xcc, 0xb2, 0x89}
+DEFINE_GUID!{IID_IDirect3DStateBlock9,
+ 0xb07c4fe5, 0x310d, 0x4ba8, 0xa2, 0x3c, 0x4f, 0x0f, 0x20, 0x6f, 0x21, 0x8b}
+DEFINE_GUID!{IID_IDirect3DQuery9,
+ 0xd9771460, 0xa695, 0x4f26, 0xbb, 0xd3, 0x27, 0xb8, 0x40, 0xb5, 0x41, 0xcc}
+DEFINE_GUID!{IID_HelperName,
+ 0xe4a36723, 0xfdfe, 0x4b22, 0xb1, 0x46, 0x3c, 0x04, 0xc0, 0x7f, 0x4c, 0xc8}
+DEFINE_GUID!{IID_IDirect3D9Ex,
+ 0x02177241, 0x69fc, 0x400c, 0x8f, 0xf1, 0x93, 0xa4, 0x4d, 0xf6, 0x86, 0x1d}
+DEFINE_GUID!{IID_IDirect3DDevice9Ex,
+ 0xb18b10ce, 0x2649, 0x405a, 0x87, 0x0f, 0x95, 0xf7, 0x77, 0xd4, 0x31, 0x3a}
+DEFINE_GUID!{IID_IDirect3DSwapChain9Ex,
+ 0x91886caf, 0x1c3d, 0x4d2e, 0xa0, 0xab, 0x3e, 0x4c, 0x7d, 0x8d, 0x33, 0x03}
+DEFINE_GUID!{IID_IDirect3D9ExOverlayExtension,
+ 0x187aeb13, 0xaaf5, 0x4c59, 0x87, 0x6d, 0xe0, 0x59, 0x08, 0x8c, 0x0d, 0xf8}
+DEFINE_GUID!{IID_IDirect3DDevice9Video,
+ 0x26dc4561, 0xa1ee, 0x4ae7, 0x96, 0xda, 0x11, 0x8a, 0x36, 0xc0, 0xec, 0x95}
+DEFINE_GUID!{IID_IDirect3DAuthenticatedChannel9,
+ 0xff24beee, 0xda21, 0x4beb, 0x98, 0xb5, 0xd2, 0xf8, 0x99, 0xf9, 0x8a, 0xf9}
+DEFINE_GUID!{IID_IDirect3DCryptoSession9,
+ 0xfa0ab799, 0x7a9c, 0x48ca, 0x8c, 0x5b, 0x23, 0x7e, 0x71, 0xa5, 0x44, 0x34}
+extern "system" {
+ pub fn Direct3DCreate9(
+ SDKVersion: UINT,
+ ) -> *mut IDirect3D9;
+ pub fn D3DPERF_BeginEvent(
+ col: D3DCOLOR,
+ wszName: LPCWSTR,
+ ) -> INT;
+ pub fn D3DPERF_EndEvent() -> INT;
+ pub fn D3DPERF_SetMarker(
+ col: D3DCOLOR,
+ wszName: LPCWSTR,
+ ) -> ();
+ pub fn D3DPERF_SetRegion(
+ col: D3DCOLOR,
+ wszName: LPCWSTR,
+ ) -> ();
+ pub fn D3DPERF_QueryRepeatFrame() -> BOOL;
+ pub fn D3DPERF_SetOptions(
+ dwOptions: DWORD,
+ ) -> ();
+ pub fn D3DPERF_GetStatus() -> DWORD;
+}
+RIDL!{#[uuid(0x81bdcbca, 0x64d4, 0x426d, 0xae, 0x8d, 0xad, 0x1, 0x47, 0xf4, 0x27, 0x5c)]
+interface IDirect3D9(IDirect3D9Vtbl): IUnknown(IUnknownVtbl) {
+ fn RegisterSoftwareDevice(
+ pInitializeFunction: *mut VOID,
+ ) -> HRESULT,
+ fn GetAdapterCount() -> UINT,
+ fn GetAdapterIdentifier(
+ Adapter: UINT,
+ Flags: DWORD,
+ pIdentifier: *mut D3DADAPTER_IDENTIFIER9,
+ ) -> HRESULT,
+ fn GetAdapterModeCount(
+ Adapter: UINT,
+ Format: D3DFORMAT,
+ ) -> UINT,
+ fn EnumAdapterModes(
+ Adapter: UINT,
+ Format: D3DFORMAT,
+ Mode: UINT,
+ pMode: *mut D3DDISPLAYMODE,
+ ) -> HRESULT,
+ fn GetAdapterDisplayMode(
+ Adapter: UINT,
+ pMode: *mut D3DDISPLAYMODE,
+ ) -> HRESULT,
+ fn CheckDeviceType(
+ Adapter: UINT,
+ DevType: D3DDEVTYPE,
+ AdapterFormat: D3DFORMAT,
+ BackBufferFormat: D3DFORMAT,
+ bWindowed: BOOL,
+ ) -> HRESULT,
+ fn CheckDeviceFormat(
+ Adapter: UINT,
+ DeviceType: D3DDEVTYPE,
+ AdapterFormat: D3DFORMAT,
+ Usage: DWORD,
+ RType: D3DRESOURCETYPE,
+ CheckFormat: D3DFORMAT,
+ ) -> HRESULT,
+ fn CheckDeviceMultiSampleType(
+ Adapter: UINT,
+ DeviceType: D3DDEVTYPE,
+ SurfaceFormat: D3DFORMAT,
+ Windowed: BOOL,
+ MultiSampleType: D3DMULTISAMPLE_TYPE,
+ pQualityLevels: *mut DWORD,
+ ) -> HRESULT,
+ fn CheckDepthStencilMatch(
+ Adapter: UINT,
+ DeviceType: D3DDEVTYPE,
+ AdapterFormat: D3DFORMAT,
+ RenderTargetFormat: D3DFORMAT,
+ DepthStencilFormat: D3DFORMAT,
+ ) -> HRESULT,
+ fn CheckDeviceFormatConversion(
+ Adapter: UINT,
+ DeviceType: D3DDEVTYPE,
+ SourceFormat: D3DFORMAT,
+ TargetFormat: D3DFORMAT,
+ ) -> HRESULT,
+ fn GetDeviceCaps(
+ Adapter: UINT,
+ DeviceType: D3DDEVTYPE,
+ pCaps: *mut D3DCAPS9,
+ ) -> HRESULT,
+ fn GetAdapterMonitor(
+ Adapter: UINT,
+ ) -> HMONITOR,
+ fn CreateDevice(
+ Adapter: UINT,
+ DeviceType: D3DDEVTYPE,
+ hFocusWindow: HWND,
+ BehaviorFlags: DWORD,
+ pPresentationParameters: *mut D3DPRESENT_PARAMETERS,
+ ppReturnedDeviceInterface: *mut *mut IDirect3DDevice9,
+ ) -> HRESULT,
+}}
+pub type LPDIRECT3D9 = *mut IDirect3D9;
+pub type PDIRECT3D9 = *mut IDirect3D9;
+RIDL!{#[uuid(0xd0223b96, 0xbf7a, 0x43fd, 0x92, 0xbd, 0xa4, 0x3b, 0xd, 0x82, 0xb9, 0xeb)]
+interface IDirect3DDevice9(IDirect3DDevice9Vtbl): IUnknown(IUnknownVtbl) {
+ fn TestCooperativeLevel() -> HRESULT,
+ fn GetAvailableTextureMem() -> UINT,
+ fn EvictManagedResources() -> HRESULT,
+ fn GetDirect3D(
+ ppD3D9: *mut *mut IDirect3D9,
+ ) -> HRESULT,
+ fn GetDeviceCaps(
+ pCaps: *mut D3DCAPS9,
+ ) -> HRESULT,
+ fn GetDisplayMode(
+ iSwapChain: UINT,
+ pMode: *mut D3DDISPLAYMODE,
+ ) -> HRESULT,
+ fn GetCreationParameters(
+ pParameters: *mut D3DDEVICE_CREATION_PARAMETERS,
+ ) -> HRESULT,
+ fn SetCursorProperties(
+ XHotSpot: UINT,
+ YHotSpot: UINT,
+ pCursorBitmap: *mut IDirect3DSurface9,
+ ) -> HRESULT,
+ fn SetCursorPosition(
+ X: INT,
+ Y: INT,
+ Flags: DWORD,
+ ) -> (),
+ fn ShowCursor(
+ bShow: BOOL,
+ ) -> BOOL,
+ fn CreateAdditionalSwapChain(
+ pPresentationParameters: *mut D3DPRESENT_PARAMETERS,
+ pSwapChain: *mut *mut IDirect3DSwapChain9,
+ ) -> HRESULT,
+ fn GetSwapChain(
+ iSwapChain: UINT,
+ pSwapChain: *mut *mut IDirect3DSwapChain9,
+ ) -> HRESULT,
+ fn GetNumberOfSwapChains() -> UINT,
+ fn Reset(
+ pPresentationParameters: *mut D3DPRESENT_PARAMETERS,
+ ) -> HRESULT,
+ fn Present(
+ pSourceRect: *const RECT,
+ pDestRect: *const RECT,
+ hDestWindowOverride: HWND,
+ pDirtyRegion: *const RGNDATA,
+ ) -> HRESULT,
+ fn GetBackBuffer(
+ iSwapChain: UINT,
+ iBackBuffer: UINT,
+ Type: D3DBACKBUFFER_TYPE,
+ ppBackBuffer: *mut *mut IDirect3DSurface9,
+ ) -> HRESULT,
+ fn GetRasterStatus(
+ iSwapChain: UINT,
+ pRasterStatus: *mut D3DRASTER_STATUS,
+ ) -> HRESULT,
+ fn SetDialogBoxMode(
+ bEnableDialogs: BOOL,
+ ) -> HRESULT,
+ fn SetGammaRamp(
+ iSwapChain: UINT,
+ Flags: DWORD,
+ pRamp: *const D3DGAMMARAMP,
+ ) -> (),
+ fn GetGammaRamp(
+ iSwapChain: UINT,
+ pRamp: *mut D3DGAMMARAMP,
+ ) -> (),
+ fn CreateTexture(
+ Width: UINT,
+ Height: UINT,
+ Levels: UINT,
+ Usage: DWORD,
+ Format: D3DFORMAT,
+ Pool: D3DPOOL,
+ ppTexture: *mut *mut IDirect3DTexture9,
+ pSharedHandle: *mut HANDLE,
+ ) -> HRESULT,
+ fn CreateVolumeTexture(
+ Width: UINT,
+ Height: UINT,
+ Depth: UINT,
+ Levels: UINT,
+ Usage: DWORD,
+ Format: D3DFORMAT,
+ Pool: D3DPOOL,
+ ppVolumeTexture: *mut *mut IDirect3DVolumeTexture9,
+ pSharedHandle: *mut HANDLE,
+ ) -> HRESULT,
+ fn CreateCubeTexture(
+ EdgeLength: UINT,
+ Levels: UINT,
+ Usage: DWORD,
+ Format: D3DFORMAT,
+ Pool: D3DPOOL,
+ ppCubeTexture: *mut *mut IDirect3DCubeTexture9,
+ pSharedHandle: *mut HANDLE,
+ ) -> HRESULT,
+ fn CreateVertexBuffer(
+ Length: UINT,
+ Usage: DWORD,
+ FVF: DWORD,
+ Pool: D3DPOOL,
+ ppVertexBuffer: *mut *mut IDirect3DVertexBuffer9,
+ pSharedHandle: *mut HANDLE,
+ ) -> HRESULT,
+ fn CreateIndexBuffer(
+ Length: UINT,
+ Usage: DWORD,
+ Format: D3DFORMAT,
+ Pool: D3DPOOL,
+ ppIndexBuffer: *mut *mut IDirect3DIndexBuffer9,
+ pSharedHandle: *mut HANDLE,
+ ) -> HRESULT,
+ fn CreateRenderTarget(
+ Width: UINT,
+ Height: UINT,
+ Format: D3DFORMAT,
+ MultiSample: D3DMULTISAMPLE_TYPE,
+ MultisampleQuality: DWORD,
+ Lockable: BOOL,
+ ppSurface: *mut *mut IDirect3DSurface9,
+ pSharedHandle: *mut HANDLE,
+ ) -> HRESULT,
+ fn CreateDepthStencilSurface(
+ Width: UINT,
+ Height: UINT,
+ Format: D3DFORMAT,
+ MultiSample: D3DMULTISAMPLE_TYPE,
+ MultisampleQuality: DWORD,
+ Discard: BOOL,
+ ppSurface: *mut *mut IDirect3DSurface9,
+ pSharedHandle: *mut HANDLE,
+ ) -> HRESULT,
+ fn UpdateSurface(
+ pSourceSurface: *mut IDirect3DSurface9,
+ pSourceRect: *const RECT,
+ pDestinationSurface: *mut IDirect3DSurface9,
+ pDestPoint: *const POINT,
+ ) -> HRESULT,
+ fn UpdateTexture(
+ pSourceTexture: *mut IDirect3DBaseTexture9,
+ pDestinationTexture: *mut IDirect3DBaseTexture9,
+ ) -> HRESULT,
+ fn GetRenderTargetData(
+ pRenderTarget: *mut IDirect3DSurface9,
+ pDestSurface: *mut IDirect3DSurface9,
+ ) -> HRESULT,
+ fn GetFrontBufferData(
+ iSwapChain: UINT,
+ pDestSurface: *mut IDirect3DSurface9,
+ ) -> HRESULT,
+ fn StretchRect(
+ pSourceSurface: *mut IDirect3DSurface9,
+ pSourceRect: *const RECT,
+ pDestSurface: *mut IDirect3DSurface9,
+ pDestRect: *const RECT,
+ Filter: D3DTEXTUREFILTERTYPE,
+ ) -> HRESULT,
+ fn ColorFill(
+ pSurface: *mut IDirect3DSurface9,
+ pRect: *const RECT,
+ color: D3DCOLOR,
+ ) -> HRESULT,
+ fn CreateOffscreenPlainSurface(
+ Width: UINT,
+ Height: UINT,
+ Format: D3DFORMAT,
+ Pool: D3DPOOL,
+ ppSurface: *mut *mut IDirect3DSurface9,
+ pSharedHandle: *mut HANDLE,
+ ) -> HRESULT,
+ fn SetRenderTarget(
+ RenderTargetIndex: DWORD,
+ pRenderTarget: *mut IDirect3DSurface9,
+ ) -> HRESULT,
+ fn GetRenderTarget(
+ RenderTargetIndex: DWORD,
+ ppRenderTarget: *mut *mut IDirect3DSurface9,
+ ) -> HRESULT,
+ fn SetDepthStencilSurface(
+ pNewZStencil: *mut IDirect3DSurface9,
+ ) -> HRESULT,
+ fn GetDepthStencilSurface(
+ ppZStencilSurface: *mut *mut IDirect3DSurface9,
+ ) -> HRESULT,
+ fn BeginScene() -> HRESULT,
+ fn EndScene() -> HRESULT,
+ fn Clear(
+ Count: DWORD,
+ pRects: *const D3DRECT,
+ Flags: DWORD,
+ Color: D3DCOLOR,
+ Z: FLOAT,
+ Stencil: DWORD,
+ ) -> HRESULT,
+ fn SetTransform(
+ State: D3DTRANSFORMSTATETYPE,
+ pMatrix: *const D3DMATRIX,
+ ) -> HRESULT,
+ fn GetTransform(
+ State: D3DTRANSFORMSTATETYPE,
+ pMatrix: *mut D3DMATRIX,
+ ) -> HRESULT,
+ fn MultiplyTransform(
+ arg1: D3DTRANSFORMSTATETYPE,
+ arg2: *const D3DMATRIX,
+ ) -> HRESULT,
+ fn SetViewport(
+ pViewport: *const D3DVIEWPORT9,
+ ) -> HRESULT,
+ fn GetViewport(
+ pViewport: *mut D3DVIEWPORT9,
+ ) -> HRESULT,
+ fn SetMaterial(
+ pMaterial: *const D3DMATERIAL9,
+ ) -> HRESULT,
+ fn GetMaterial(
+ pMaterial: *mut D3DMATERIAL9,
+ ) -> HRESULT,
+ fn SetLight(
+ Index: DWORD,
+ arg1: *const D3DLIGHT9,
+ ) -> HRESULT,
+ fn GetLight(
+ Index: DWORD,
+ arg1: *mut D3DLIGHT9,
+ ) -> HRESULT,
+ fn LightEnable(
+ Index: DWORD,
+ Enable: BOOL,
+ ) -> HRESULT,
+ fn GetLightEnable(
+ Index: DWORD,
+ pEnable: *mut BOOL,
+ ) -> HRESULT,
+ fn SetClipPlane(
+ Index: DWORD,
+ pPlane: *const FLOAT,
+ ) -> HRESULT,
+ fn GetClipPlane(
+ Index: DWORD,
+ pPlane: *mut FLOAT,
+ ) -> HRESULT,
+ fn SetRenderState(
+ State: D3DRENDERSTATETYPE,
+ Value: DWORD,
+ ) -> HRESULT,
+ fn GetRenderState(
+ State: D3DRENDERSTATETYPE,
+ pValue: *mut DWORD,
+ ) -> HRESULT,
+ fn CreateStateBlock(
+ Type: D3DSTATEBLOCKTYPE,
+ ppSB: *mut *mut IDirect3DStateBlock9,
+ ) -> HRESULT,
+ fn BeginStateBlock() -> HRESULT,
+ fn EndStateBlock(
+ ppSB: *mut *mut IDirect3DStateBlock9,
+ ) -> HRESULT,
+ fn SetClipStatus(
+ pClipStatus: *const D3DCLIPSTATUS9,
+ ) -> HRESULT,
+ fn GetClipStatus(
+ pClipStatus: *mut D3DCLIPSTATUS9,
+ ) -> HRESULT,
+ fn GetTexture(
+ Stage: DWORD,
+ ppTexture: *mut *mut IDirect3DBaseTexture9,
+ ) -> HRESULT,
+ fn SetTexture(
+ Stage: DWORD,
+ pTexture: *mut IDirect3DBaseTexture9,
+ ) -> HRESULT,
+ fn GetTextureStageState(
+ Stage: DWORD,
+ Type: D3DTEXTURESTAGESTATETYPE,
+ pValue: *mut DWORD,
+ ) -> HRESULT,
+ fn SetTextureStageState(
+ Stage: DWORD,
+ Type: D3DTEXTURESTAGESTATETYPE,
+ Value: DWORD,
+ ) -> HRESULT,
+ fn GetSamplerState(
+ Sampler: DWORD,
+ Type: D3DSAMPLERSTATETYPE,
+ pValue: *mut DWORD,
+ ) -> HRESULT,
+ fn SetSamplerState(
+ Sampler: DWORD,
+ Type: D3DSAMPLERSTATETYPE,
+ Value: DWORD,
+ ) -> HRESULT,
+ fn ValidateDevice(
+ pNumPasses: *mut DWORD,
+ ) -> HRESULT,
+ fn SetPaletteEntries(
+ PaletteNumber: UINT,
+ pEntries: *const PALETTEENTRY,
+ ) -> HRESULT,
+ fn GetPaletteEntries(
+ PaletteNumber: UINT,
+ pEntries: *mut PALETTEENTRY,
+ ) -> HRESULT,
+ fn SetCurrentTexturePalette(
+ PaletteNumber: UINT,
+ ) -> HRESULT,
+ fn GetCurrentTexturePalette(
+ PaletteNumber: *mut UINT,
+ ) -> HRESULT,
+ fn SetScissorRect(
+ pRect: *const RECT,
+ ) -> HRESULT,
+ fn GetScissorRect(
+ pRect: *mut RECT,
+ ) -> HRESULT,
+ fn SetSoftwareVertexProcessing(
+ bSoftware: BOOL,
+ ) -> HRESULT,
+ fn GetSoftwareVertexProcessing() -> BOOL,
+ fn SetNPatchMode(
+ nSegments: FLOAT,
+ ) -> HRESULT,
+ fn GetNPatchMode() -> FLOAT,
+ fn DrawPrimitive(
+ PrimitiveType: D3DPRIMITIVETYPE,
+ StartVertex: UINT,
+ PrimitiveCount: UINT,
+ ) -> HRESULT,
+ fn DrawIndexedPrimitive(
+ arg1: D3DPRIMITIVETYPE,
+ BaseVertexIndex: INT,
+ MinVertexIndex: UINT,
+ NumVertices: UINT,
+ startIndex: UINT,
+ primCount: UINT,
+ ) -> HRESULT,
+ fn DrawPrimitiveUP(
+ PrimitiveType: D3DPRIMITIVETYPE,
+ PrimitiveCount: UINT,
+ pVertexStreamZeroData: *const VOID,
+ VertexStreamZeroStride: UINT,
+ ) -> HRESULT,
+ fn DrawIndexedPrimitiveUP(
+ PrimitiveType: D3DPRIMITIVETYPE,
+ MinVertexIndex: UINT,
+ NumVertices: UINT,
+ PrimitiveCount: UINT,
+ pIndexData: *const VOID,
+ IndexDataFormat: D3DFORMAT,
+ pVertexStreamZeroData: *const VOID,
+ VertexStreamZeroStride: UINT,
+ ) -> HRESULT,
+ fn ProcessVertices(
+ SrcStartIndex: UINT,
+ DestIndex: UINT,
+ VertexCount: UINT,
+ pDestBuffer: *mut IDirect3DVertexBuffer9,
+ pVertexDecl: *mut IDirect3DVertexDeclaration9,
+ Flags: DWORD,
+ ) -> HRESULT,
+ fn CreateVertexDeclaration(
+ pVertexElements: *const D3DVERTEXELEMENT9,
+ ppDecl: *mut *mut IDirect3DVertexDeclaration9,
+ ) -> HRESULT,
+ fn SetVertexDeclaration(
+ pDecl: *mut IDirect3DVertexDeclaration9,
+ ) -> HRESULT,
+ fn GetVertexDeclaration(
+ ppDecl: *mut *mut IDirect3DVertexDeclaration9,
+ ) -> HRESULT,
+ fn SetFVF(
+ FVF: DWORD,
+ ) -> HRESULT,
+ fn GetFVF(
+ pFVF: *mut DWORD,
+ ) -> HRESULT,
+ fn CreateVertexShader(
+ pFunction: *const DWORD,
+ ppShader: *mut *mut IDirect3DVertexShader9,
+ ) -> HRESULT,
+ fn SetVertexShader(
+ pShader: *mut IDirect3DVertexShader9,
+ ) -> HRESULT,
+ fn GetVertexShader(
+ ppShader: *mut *mut IDirect3DVertexShader9,
+ ) -> HRESULT,
+ fn SetVertexShaderConstantF(
+ StartRegister: UINT,
+ pConstantData: *const FLOAT,
+ Vector4fCount: UINT,
+ ) -> HRESULT,
+ fn GetVertexShaderConstantF(
+ StartRegister: UINT,
+ pConstantData: *mut FLOAT,
+ Vector4fCount: UINT,
+ ) -> HRESULT,
+ fn SetVertexShaderConstantI(
+ StartRegister: UINT,
+ pConstantData: *const INT,
+ Vector4iCount: UINT,
+ ) -> HRESULT,
+ fn GetVertexShaderConstantI(
+ StartRegister: UINT,
+ pConstantData: *mut INT,
+ Vector4iCount: UINT,
+ ) -> HRESULT,
+ fn SetVertexShaderConstantB(
+ StartRegister: UINT,
+ pConstantData: *const BOOL,
+ BoolCount: UINT,
+ ) -> HRESULT,
+ fn GetVertexShaderConstantB(
+ StartRegister: UINT,
+ pConstantData: *mut BOOL,
+ BoolCount: UINT,
+ ) -> HRESULT,
+ fn SetStreamSource(
+ StreamNumber: UINT,
+ pStreamData: *mut IDirect3DVertexBuffer9,
+ OffsetInBytes: UINT,
+ Stride: UINT,
+ ) -> HRESULT,
+ fn GetStreamSource(
+ StreamNumber: UINT,
+ ppStreamData: *mut *mut IDirect3DVertexBuffer9,
+ pOffsetInBytes: *mut UINT,
+ pStride: *mut UINT,
+ ) -> HRESULT,
+ fn SetStreamSourceFreq(
+ StreamNumber: UINT,
+ Setting: UINT,
+ ) -> HRESULT,
+ fn GetStreamSourceFreq(
+ StreamNumber: UINT,
+ pSetting: *mut UINT,
+ ) -> HRESULT,
+ fn SetIndices(
+ pIndexData: *mut IDirect3DIndexBuffer9,
+ ) -> HRESULT,
+ fn GetIndices(
+ ppIndexData: *mut *mut IDirect3DIndexBuffer9,
+ ) -> HRESULT,
+ fn CreatePixelShader(
+ pFunction: *const DWORD,
+ ppShader: *mut *mut IDirect3DPixelShader9,
+ ) -> HRESULT,
+ fn SetPixelShader(
+ pShader: *mut IDirect3DPixelShader9,
+ ) -> HRESULT,
+ fn GetPixelShader(
+ ppShader: *mut *mut IDirect3DPixelShader9,
+ ) -> HRESULT,
+ fn SetPixelShaderConstantF(
+ StartRegister: UINT,
+ pConstantData: *const FLOAT,
+ Vector4fCount: UINT,
+ ) -> HRESULT,
+ fn GetPixelShaderConstantF(
+ StartRegister: UINT,
+ pConstantData: *mut FLOAT,
+ Vector4fCount: UINT,
+ ) -> HRESULT,
+ fn SetPixelShaderConstantI(
+ StartRegister: UINT,
+ pConstantData: *const INT,
+ Vector4iCount: UINT,
+ ) -> HRESULT,
+ fn GetPixelShaderConstantI(
+ StartRegister: UINT,
+ pConstantData: *mut INT,
+ Vector4iCount: UINT,
+ ) -> HRESULT,
+ fn SetPixelShaderConstantB(
+ StartRegister: UINT,
+ pConstantData: *const BOOL,
+ BoolCount: UINT,
+ ) -> HRESULT,
+ fn GetPixelShaderConstantB(
+ StartRegister: UINT,
+ pConstantData: *mut BOOL,
+ BoolCount: UINT,
+ ) -> HRESULT,
+ fn DrawRectPatch(
+ Handle: UINT,
+ pNumSegs: *const FLOAT,
+ pRectPatchInfo: *const D3DRECTPATCH_INFO,
+ ) -> HRESULT,
+ fn DrawTriPatch(
+ Handle: UINT,
+ pNumSegs: *const FLOAT,
+ pTriPatchInfo: *const D3DTRIPATCH_INFO,
+ ) -> HRESULT,
+ fn DeletePatch(
+ Handle: UINT,
+ ) -> HRESULT,
+ fn CreateQuery(
+ Type: D3DQUERYTYPE,
+ ppQuery: *mut *mut IDirect3DQuery9,
+ ) -> HRESULT,
+}}
+pub type LPDIRECT3DDEVICE9 = *mut IDirect3DDevice9;
+pub type PDIRECT3DDEVICE9 = *mut IDirect3DDevice9;
+RIDL!{#[uuid(0xb07c4fe5, 0x310d, 0x4ba8, 0xa2, 0x3c, 0x4f, 0xf, 0x20, 0x6f, 0x21, 0x8b)]
+interface IDirect3DStateBlock9(IDirect3DStateBlock9Vtbl): IUnknown(IUnknownVtbl) {
+ fn GetDevice(
+ ppDevice: *mut *mut IDirect3DDevice9,
+ ) -> HRESULT,
+ fn Capture() -> HRESULT,
+ fn Apply() -> HRESULT,
+}}
+pub type LPDIRECT3DSTATEBLOCK9 = *mut IDirect3DStateBlock9;
+pub type PDIRECT3DSTATEBLOCK9 = *mut IDirect3DStateBlock9;
+RIDL!{#[uuid(0x794950f2, 0xadfc, 0x458a, 0x90, 0x5e, 0x10, 0xa1, 0xb, 0xb, 0x50, 0x3b)]
+interface IDirect3DSwapChain9(IDirect3DSwapChain9Vtbl): IUnknown(IUnknownVtbl) {
+ fn Present(
+ pSourceRect: *const RECT,
+ pDestRect: *const RECT,
+ hDestWindowOverride: HWND,
+ pDirtyRegion: *const RGNDATA,
+ dwFlags: DWORD,
+ ) -> HRESULT,
+ fn GetFrontBufferData(
+ pDestSurface: *mut IDirect3DSurface9,
+ ) -> HRESULT,
+ fn GetBackBuffer(
+ iBackBuffer: UINT,
+ Type: D3DBACKBUFFER_TYPE,
+ ppBackBuffer: *mut *mut IDirect3DSurface9,
+ ) -> HRESULT,
+ fn GetRasterStatus(
+ pRasterStatus: *mut D3DRASTER_STATUS,
+ ) -> HRESULT,
+ fn GetDisplayMode(
+ pMode: *mut D3DDISPLAYMODE,
+ ) -> HRESULT,
+ fn GetDevice(
+ ppDevice: *mut *mut IDirect3DDevice9,
+ ) -> HRESULT,
+ fn GetPresentParameters(
+ pPresentationParameters: *mut D3DPRESENT_PARAMETERS,
+ ) -> HRESULT,
+}}
+pub type LPDIRECT3DSWAPCHAIN9 = *mut IDirect3DSwapChain9;
+pub type PDIRECT3DSWAPCHAIN9 = *mut IDirect3DSwapChain9;
+RIDL!{#[uuid(0x5eec05d, 0x8f7d, 0x4362, 0xb9, 0x99, 0xd1, 0xba, 0xf3, 0x57, 0xc7, 0x4)]
+interface IDirect3DResource9(IDirect3DResource9Vtbl): IUnknown(IUnknownVtbl) {
+ fn GetDevice(
+ ppDevice: *mut *mut IDirect3DDevice9,
+ ) -> HRESULT,
+ fn SetPrivateData(
+ refguid: *const GUID,
+ pData: *const VOID,
+ SizeOfData: DWORD,
+ Flags: DWORD,
+ ) -> HRESULT,
+ fn GetPrivateData(
+ refguid: *const GUID,
+ pData: *mut VOID,
+ pSizeOfData: *mut DWORD,
+ ) -> HRESULT,
+ fn FreePrivateData(
+ refguid: *const GUID,
+ ) -> HRESULT,
+ fn SetPriority(
+ PriorityNew: DWORD,
+ ) -> DWORD,
+ fn GetPriority() -> DWORD,
+ fn PreLoad() -> (),
+ fn GetType() -> D3DRESOURCETYPE,
+}}
+pub type LPDIRECT3DRESOURCE9 = *mut IDirect3DResource9;
+pub type PDIRECT3DRESOURCE9 = *mut IDirect3DResource9;
+RIDL!{#[uuid(0xdd13c59c, 0x36fa, 0x4098, 0xa8, 0xfb, 0xc7, 0xed, 0x39, 0xdc, 0x85, 0x46)]
+interface IDirect3DVertexDeclaration9(IDirect3DVertexDeclaration9Vtbl): IUnknown(IUnknownVtbl) {
+ fn GetDevice(
+ ppDevice: *mut *mut IDirect3DDevice9,
+ ) -> HRESULT,
+ fn GetDeclaration(
+ pElement: *mut D3DVERTEXELEMENT9,
+ pNumElements: *mut UINT,
+ ) -> HRESULT,
+}}
+pub type LPDIRECT3DVERTEXDECLARATION9 = *mut IDirect3DVertexDeclaration9;
+pub type PDIRECT3DVERTEXDECLARATION9 = *mut IDirect3DVertexDeclaration9;
+RIDL!{#[uuid(0xefc5557e, 0x6265, 0x4613, 0x8a, 0x94, 0x43, 0x85, 0x78, 0x89, 0xeb, 0x36)]
+interface IDirect3DVertexShader9(IDirect3DVertexShader9Vtbl): IUnknown(IUnknownVtbl) {
+ fn GetDevice(
+ ppDevice: *mut *mut IDirect3DDevice9,
+ ) -> HRESULT,
+ fn GetFunction(
+ arg1: *mut VOID,
+ pSizeOfData: *mut UINT,
+ ) -> HRESULT,
+}}
+pub type LPDIRECT3DVERTEXSHADER9 = *mut IDirect3DVertexShader9;
+pub type PDIRECT3DVERTEXSHADER9 = *mut IDirect3DVertexShader9;
+RIDL!{#[uuid(0x6d3bdbdc, 0x5b02, 0x4415, 0xb8, 0x52, 0xce, 0x5e, 0x8b, 0xcc, 0xb2, 0x89)]
+interface IDirect3DPixelShader9(IDirect3DPixelShader9Vtbl): IUnknown(IUnknownVtbl) {
+ fn GetDevice(
+ ppDevice: *mut *mut IDirect3DDevice9,
+ ) -> HRESULT,
+ fn GetFunction(
+ arg1: *mut VOID,
+ pSizeOfData: *mut UINT,
+ ) -> HRESULT,
+}}
+pub type LPDIRECT3DPIXELSHADER9 = *mut IDirect3DPixelShader9;
+pub type PDIRECT3DPIXELSHADER9 = *mut IDirect3DPixelShader9;
+RIDL!{#[uuid(0x580ca87e, 0x1d3c, 0x4d54, 0x99, 0x1d, 0xb7, 0xd3, 0xe3, 0xc2, 0x98, 0xce)]
+interface IDirect3DBaseTexture9(IDirect3DBaseTexture9Vtbl):
+ IDirect3DResource9(IDirect3DResource9Vtbl) {
+ fn SetLOD(
+ LODNew: DWORD,
+ ) -> DWORD,
+ fn GetLOD() -> DWORD,
+ fn GetLevelCount() -> DWORD,
+ fn SetAutoGenFilterType(
+ FilterType: D3DTEXTUREFILTERTYPE,
+ ) -> HRESULT,
+ fn GetAutoGenFilterType() -> D3DTEXTUREFILTERTYPE,
+ fn GenerateMipSubLevels() -> (),
+}}
+pub type LPDIRECT3DBASETEXTURE9 = *mut IDirect3DBaseTexture9;
+pub type PDIRECT3DBASETEXTURE9 = *mut IDirect3DBaseTexture9;
+RIDL!{#[uuid(0x85c31227, 0x3de5, 0x4f00, 0x9b, 0x3a, 0xf1, 0x1a, 0xc3, 0x8c, 0x18, 0xb5)]
+interface IDirect3DTexture9(IDirect3DTexture9Vtbl):
+ IDirect3DBaseTexture9(IDirect3DBaseTexture9Vtbl) {
+ fn GetLevelDesc(
+ Level: UINT,
+ pDesc: *mut D3DSURFACE_DESC,
+ ) -> HRESULT,
+ fn GetSurfaceLevel(
+ Level: UINT,
+ ppSurfaceLevel: *mut *mut IDirect3DSurface9,
+ ) -> HRESULT,
+ fn LockRect(
+ Level: UINT,
+ pLockedRect: *mut D3DLOCKED_RECT,
+ pRect: *const RECT,
+ Flags: DWORD,
+ ) -> HRESULT,
+ fn UnlockRect(
+ Level: UINT,
+ ) -> HRESULT,
+ fn AddDirtyRect(
+ pDirtyRect: *const RECT,
+ ) -> HRESULT,
+}}
+pub type LPDIRECT3DTEXTURE9 = *mut IDirect3DTexture9;
+pub type PDIRECT3DTEXTURE9 = *mut IDirect3DTexture9;
+RIDL!{#[uuid(0x2518526c, 0xe789, 0x4111, 0xa7, 0xb9, 0x47, 0xef, 0x32, 0x8d, 0x13, 0xe6)]
+interface IDirect3DVolumeTexture9(IDirect3DVolumeTexture9Vtbl):
+ IDirect3DBaseTexture9(IDirect3DBaseTexture9Vtbl) {
+ fn GetLevelDesc(
+ Level: UINT,
+ pDesc: *mut D3DVOLUME_DESC,
+ ) -> HRESULT,
+ fn GetVolumeLevel(
+ Level: UINT,
+ ppVolumeLevel: *mut *mut IDirect3DVolume9,
+ ) -> HRESULT,
+ fn LockBox(
+ Level: UINT,
+ pLockedVolume: *mut D3DLOCKED_BOX,
+ pBox: *const D3DBOX,
+ Flags: DWORD,
+ ) -> HRESULT,
+ fn UnlockBox(
+ Level: UINT,
+ ) -> HRESULT,
+ fn AddDirtyBox(
+ pDirtyBox: *const D3DBOX,
+ ) -> HRESULT,
+}}
+pub type LPDIRECT3DVOLUMETEXTURE9 = *mut IDirect3DVolumeTexture9;
+pub type PDIRECT3DVOLUMETEXTURE9 = *mut IDirect3DVolumeTexture9;
+RIDL!{#[uuid(0xfff32f81, 0xd953, 0x473a, 0x92, 0x23, 0x93, 0xd6, 0x52, 0xab, 0xa9, 0x3f)]
+interface IDirect3DCubeTexture9(IDirect3DCubeTexture9Vtbl):
+ IDirect3DBaseTexture9(IDirect3DBaseTexture9Vtbl) {
+ fn GetLevelDesc(
+ Level: UINT,
+ pDesc: *mut D3DSURFACE_DESC,
+ ) -> HRESULT,
+ fn GetCubeMapSurface(
+ FaceType: D3DCUBEMAP_FACES,
+ Level: UINT,
+ ppCubeMapSurface: *mut *mut IDirect3DSurface9,
+ ) -> HRESULT,
+ fn LockRect(
+ FaceType: D3DCUBEMAP_FACES,
+ Level: UINT,
+ pLockedRect: *mut D3DLOCKED_RECT,
+ pRect: *const RECT,
+ Flags: DWORD,
+ ) -> HRESULT,
+ fn UnlockRect(
+ FaceType: D3DCUBEMAP_FACES,
+ Level: UINT,
+ ) -> HRESULT,
+ fn AddDirtyRect(
+ FaceType: D3DCUBEMAP_FACES,
+ pDirtyRect: *const RECT,
+ ) -> HRESULT,
+}}
+pub type LPDIRECT3DCUBETEXTURE9 = *mut IDirect3DCubeTexture9;
+pub type PDIRECT3DCUBETEXTURE9 = *mut IDirect3DCubeTexture9;
+RIDL!{#[uuid(0xb64bb1b5, 0xfd70, 0x4df6, 0xbf, 0x91, 0x19, 0xd0, 0xa1, 0x24, 0x55, 0xe3)]
+interface IDirect3DVertexBuffer9(IDirect3DVertexBuffer9Vtbl):
+ IDirect3DResource9(IDirect3DResource9Vtbl) {
+ fn Lock(
+ OffsetToLock: UINT,
+ SizeToLock: UINT,
+ ppbData: *mut *mut VOID,
+ Flags: DWORD,
+ ) -> HRESULT,
+ fn Unlock() -> HRESULT,
+ fn GetDesc(
+ pDesc: *mut D3DVERTEXBUFFER_DESC,
+ ) -> HRESULT,
+}}
+pub type LPDIRECT3DVERTEXBUFFER9 = *mut IDirect3DVertexBuffer9;
+pub type PDIRECT3DVERTEXBUFFER9 = *mut IDirect3DVertexBuffer9;
+RIDL!{#[uuid(0x7c9dd65e, 0xd3f7, 0x4529, 0xac, 0xee, 0x78, 0x58, 0x30, 0xac, 0xde, 0x35)]
+interface IDirect3DIndexBuffer9(IDirect3DIndexBuffer9Vtbl):
+ IDirect3DResource9(IDirect3DResource9Vtbl) {
+ fn Lock(
+ OffsetToLock: UINT,
+ SizeToLock: UINT,
+ ppbData: *mut *mut VOID,
+ Flags: DWORD,
+ ) -> HRESULT,
+ fn Unlock() -> HRESULT,
+ fn GetDesc(
+ pDesc: *mut D3DINDEXBUFFER_DESC,
+ ) -> HRESULT,
+}}
+pub type LPDIRECT3DINDEXBUFFER9 = *mut IDirect3DIndexBuffer9;
+pub type PDIRECT3DINDEXBUFFER9 = *mut IDirect3DIndexBuffer9;
+RIDL!{#[uuid(0xcfbaf3a, 0x9ff6, 0x429a, 0x99, 0xb3, 0xa2, 0x79, 0x6a, 0xf8, 0xb8, 0x9b)]
+interface IDirect3DSurface9(IDirect3DSurface9Vtbl): IDirect3DResource9(IDirect3DResource9Vtbl) {
+ fn GetContainer(
+ riid: *const IID,
+ ppContainer: *mut *mut VOID,
+ ) -> HRESULT,
+ fn GetDesc(
+ pDesc: *mut D3DSURFACE_DESC,
+ ) -> HRESULT,
+ fn LockRect(
+ pLockedRect: *mut D3DLOCKED_RECT,
+ pRect: *const RECT,
+ Flags: DWORD,
+ ) -> HRESULT,
+ fn UnlockRect() -> HRESULT,
+ fn GetDC(
+ phdc: *mut HDC,
+ ) -> HRESULT,
+ fn ReleaseDC(
+ hdc: HDC,
+ ) -> HRESULT,
+}}
+pub type LPDIRECT3DSURFACE9 = *mut IDirect3DSurface9;
+pub type PDIRECT3DSURFACE9 = *mut IDirect3DSurface9;
+RIDL!{#[uuid(0x24f416e6, 0x1f67, 0x4aa7, 0xb8, 0x8e, 0xd3, 0x3f, 0x6f, 0x31, 0x28, 0xa1)]
+interface IDirect3DVolume9(IDirect3DVolume9Vtbl): IUnknown(IUnknownVtbl) {
+ fn GetDevice(
+ ppDevice: *mut *mut IDirect3DDevice9,
+ ) -> HRESULT,
+ fn SetPrivateData(
+ refguid: *const GUID,
+ pData: *const VOID,
+ SizeOfData: DWORD,
+ Flags: DWORD,
+ ) -> HRESULT,
+ fn GetPrivateData(
+ refguid: *const GUID,
+ pData: *mut VOID,
+ pSizeOfData: *mut DWORD,
+ ) -> HRESULT,
+ fn FreePrivateData(
+ refguid: *const GUID,
+ ) -> HRESULT,
+ fn GetContainer(
+ riid: *const IID,
+ ppContainer: *mut *mut VOID,
+ ) -> HRESULT,
+ fn GetDesc(
+ pDesc: *mut D3DVOLUME_DESC,
+ ) -> HRESULT,
+ fn LockBox(
+ pLockedVolume: *mut D3DLOCKED_BOX,
+ pBox: *const D3DBOX,
+ Flags: DWORD,
+ ) -> HRESULT,
+ fn UnlockBox() -> HRESULT,
+}}
+pub type LPDIRECT3DVOLUME9 = *mut IDirect3DVolume9;
+pub type PDIRECT3DVOLUME9 = *mut IDirect3DVolume9;
+RIDL!{#[uuid(0xd9771460, 0xa695, 0x4f26, 0xbb, 0xd3, 0x27, 0xb8, 0x40, 0xb5, 0x41, 0xcc)]
+interface IDirect3DQuery9(IDirect3DQuery9Vtbl): IUnknown(IUnknownVtbl) {
+ fn GetDevice(
+ ppDevice: *mut *mut IDirect3DDevice9,
+ ) -> HRESULT,
+ fn GetType() -> D3DRESOURCETYPE,
+ fn GetDataSize() -> DWORD,
+ fn Issue(
+ dwIssueFlags: DWORD,
+ ) -> HRESULT,
+ fn GetData(
+ pData: *mut VOID,
+ dwSize: DWORD,
+ dwGetDataFlags: DWORD,
+ ) -> HRESULT,
+}}
+pub type LPDIRECT3DQUERY9 = *mut IDirect3DQuery9;
+pub type PDIRECT3DQUERY9 = *mut IDirect3DQuery9;
+pub const D3DCREATE_FPU_PRESERVE: DWORD = 0x2;
+pub const D3DCREATE_MULTITHREADED: DWORD = 0x4;
+pub const D3DCREATE_PUREDEVICE: DWORD = 0x10;
+pub const D3DCREATE_SOFTWARE_VERTEXPROCESSING: DWORD = 0x20;
+pub const D3DCREATE_HARDWARE_VERTEXPROCESSING: DWORD = 0x40;
+pub const D3DCREATE_MIXED_VERTEXPROCESSING: DWORD = 0x80;
+pub const D3DCREATE_DISABLE_DRIVER_MANAGEMENT: DWORD = 0x100;
+pub const D3DCREATE_ADAPTERGROUP_DEVICE: DWORD = 0x200;
+pub const D3DCREATE_DISABLE_DRIVER_MANAGEMENT_EX: DWORD = 0x400;
+pub const D3DCREATE_NOWINDOWCHANGES: DWORD = 0x800;
+pub const D3DCREATE_DISABLE_PSGP_THREADING: DWORD = 0x2000;
+pub const D3DCREATE_ENABLE_PRESENTSTATS: DWORD = 0x4000;
+pub const D3DCREATE_DISABLE_PRESENTSTATS: DWORD = 0x8000;
+pub const D3DCREATE_SCREENSAVER: DWORD = 0x10000000;
+pub const D3DADAPTER_DEFAULT: DWORD = 0;
+extern "system" {
+ pub fn Direct3DCreate9Ex(
+ SDKVersion: UINT,
+ arg1: *mut *mut IDirect3D9Ex,
+ ) -> HRESULT;
+}
+RIDL!{#[uuid(0x02177241, 0x69fc, 0x400c, 0x8f, 0xf1, 0x93, 0xa4, 0x4d, 0xf6, 0x86, 0x1d)]
+interface IDirect3D9Ex(IDirect3D9ExVtbl): IDirect3D9(IDirect3D9Vtbl) {
+ fn GetAdapterModeCountEx(
+ Adapter: UINT,
+ pFilter: *const D3DDISPLAYMODEFILTER,
+ ) -> UINT,
+ fn EnumAdapterModesEx(
+ Adapter: UINT,
+ pFilter: *const D3DDISPLAYMODEFILTER,
+ Mode: UINT,
+ pMode: *mut D3DDISPLAYMODEEX,
+ ) -> HRESULT,
+ fn GetAdapterDisplayModeEx(
+ Adapter: UINT,
+ pMode: *mut D3DDISPLAYMODEEX,
+ pRotation: *mut D3DDISPLAYROTATION,
+ ) -> HRESULT,
+ fn CreateDeviceEx(
+ Adapter: UINT,
+ DeviceType: D3DDEVTYPE,
+ hFocusWindow: HWND,
+ BehaviorFlags: DWORD,
+ pPresentationParameters: *mut D3DPRESENT_PARAMETERS,
+ pFullscreenDisplayMode: *mut D3DDISPLAYMODEEX,
+ ppReturnedDeviceInterface: *mut *mut IDirect3DDevice9Ex,
+ ) -> HRESULT,
+ fn GetAdapterLUID(
+ Adapter: UINT,
+ pLUID: *mut LUID,
+ ) -> HRESULT,
+}}
+pub type LPDIRECT3D9EX = *mut IDirect3D9Ex;
+pub type PDIRECT3D9EX = *mut IDirect3D9Ex;
+RIDL!{#[uuid(0xb18b10ce, 0x2649, 0x405a, 0x87, 0xf, 0x95, 0xf7, 0x77, 0xd4, 0x31, 0x3a)]
+interface IDirect3DDevice9Ex(IDirect3DDevice9ExVtbl): IDirect3DDevice9(IDirect3DDevice9Vtbl) {
+ fn SetConvolutionMonoKernel(
+ width: UINT,
+ height: UINT,
+ rows: *mut FLOAT,
+ columns: *mut FLOAT,
+ ) -> HRESULT,
+ fn ComposeRects(
+ pSrc: *mut IDirect3DSurface9,
+ pDst: *mut IDirect3DSurface9,
+ pSrcRectDescs: *mut IDirect3DVertexBuffer9,
+ NumRects: UINT,
+ pDstRectDescs: *mut IDirect3DVertexBuffer9,
+ Operation: D3DCOMPOSERECTSOP,
+ Xoffset: INT,
+ Yoffset: INT,
+ ) -> HRESULT,
+ fn PresentEx(
+ pSourceRect: *const RECT,
+ pDestRect: *const RECT,
+ hDestWindowOverride: HWND,
+ pDirtyRegion: *const RGNDATA,
+ dwFlags: DWORD,
+ ) -> HRESULT,
+ fn GetGPUThreadPriority(
+ pPriority: *mut INT,
+ ) -> HRESULT,
+ fn SetGPUThreadPriority(
+ Priority: INT,
+ ) -> HRESULT,
+ fn WaitForVBlank(
+ iSwapChain: UINT,
+ ) -> HRESULT,
+ fn CheckResourceResidency(
+ pResourceArray: *mut *mut IDirect3DResource9,
+ NumResources: UINT32,
+ ) -> HRESULT,
+ fn SetMaximumFrameLatency(
+ MaxLatency: UINT,
+ ) -> HRESULT,
+ fn GetMaximumFrameLatency(
+ pMaxLatency: *mut UINT,
+ ) -> HRESULT,
+ fn CheckDeviceState(
+ hDestinationWindow: HWND,
+ ) -> HRESULT,
+ fn CreateRenderTargetEx(
+ Width: UINT,
+ Height: UINT,
+ Format: D3DFORMAT,
+ MultiSample: D3DMULTISAMPLE_TYPE,
+ MultisampleQuality: DWORD,
+ Lockable: BOOL,
+ ppSurface: *mut *mut IDirect3DSurface9,
+ pSharedHandle: *mut HANDLE,
+ Usage: DWORD,
+ ) -> HRESULT,
+ fn CreateOffscreenPlainSurfaceEx(
+ Width: UINT,
+ Height: UINT,
+ Format: D3DFORMAT,
+ Pool: D3DPOOL,
+ ppSurface: *mut *mut IDirect3DSurface9,
+ pSharedHandle: *mut HANDLE,
+ Usage: DWORD,
+ ) -> HRESULT,
+ fn CreateDepthStencilSurfaceEx(
+ Width: UINT,
+ Height: UINT,
+ Format: D3DFORMAT,
+ MultiSample: D3DMULTISAMPLE_TYPE,
+ MultisampleQuality: DWORD,
+ Discard: BOOL,
+ ppSurface: *mut *mut IDirect3DSurface9,
+ pSharedHandle: *mut HANDLE,
+ Usage: DWORD,
+ ) -> HRESULT,
+ fn ResetEx(
+ pPresentationParameters: *mut D3DPRESENT_PARAMETERS,
+ pFullscreenDisplayMode: *mut D3DDISPLAYMODEEX,
+ ) -> HRESULT,
+ fn GetDisplayModeEx(
+ iSwapChain: UINT,
+ pMode: *mut D3DDISPLAYMODEEX,
+ pRotation: *mut D3DDISPLAYROTATION,
+ ) -> HRESULT,
+}}
+pub type LPDIRECT3DDEVICE9EX = *mut IDirect3DDevice9Ex;
+pub type PDIRECT3DDEVICE9EX = *mut IDirect3DDevice9Ex;
+RIDL!{#[uuid(0x91886caf, 0x1c3d, 0x4d2e, 0xa0, 0xab, 0x3e, 0x4c, 0x7d, 0x8d, 0x33, 0x3)]
+interface IDirect3DSwapChain9Ex(IDirect3DSwapChain9ExVtbl):
+ IDirect3DSwapChain9(IDirect3DSwapChain9Vtbl) {
+ fn GetLastPresentCount(
+ pLastPresentCount: *mut UINT,
+ ) -> HRESULT,
+ fn GetPresentStats(
+ pPresentationStatistics: *mut D3DPRESENTSTATS,
+ ) -> HRESULT,
+ fn GetDisplayModeEx(
+ pMode: *mut D3DDISPLAYMODEEX,
+ pRotation: *mut D3DDISPLAYROTATION,
+ ) -> HRESULT,
+}}
+pub type LPDIRECT3DSWAPCHAIN9EX = *mut IDirect3DSwapChain9Ex;
+pub type PDIRECT3DSWAPCHAIN9EX = *mut IDirect3DSwapChain9Ex;
+RIDL!{#[uuid(0x187aeb13, 0xaaf5, 0x4c59, 0x87, 0x6d, 0xe0, 0x59, 0x8, 0x8c, 0xd, 0xf8)]
+interface IDirect3D9ExOverlayExtension(IDirect3D9ExOverlayExtensionVtbl): IUnknown(IUnknownVtbl) {
+ fn CheckDeviceOverlayType(
+ Adapter: UINT,
+ DevType: D3DDEVTYPE,
+ OverlayWidth: UINT,
+ OverlayHeight: UINT,
+ OverlayFormat: D3DFORMAT,
+ pDisplayMode: *mut D3DDISPLAYMODEEX,
+ DisplayRotation: D3DDISPLAYROTATION,
+ pOverlayCaps: *mut D3DOVERLAYCAPS,
+ ) -> HRESULT,
+}}
+pub type LPDIRECT3D9EXOVERLAYEXTENSION = *mut IDirect3D9ExOverlayExtension;
+pub type PDIRECT3D9EXOVERLAYEXTENSION = *mut IDirect3D9ExOverlayExtension;
+RIDL!{#[uuid(0x26dc4561, 0xa1ee, 0x4ae7, 0x96, 0xda, 0x11, 0x8a, 0x36, 0xc0, 0xec, 0x95)]
+interface IDirect3DDevice9Video(IDirect3DDevice9VideoVtbl): IUnknown(IUnknownVtbl) {
+ fn GetContentProtectionCaps(
+ pCryptoType: *const GUID,
+ pDecodeProfile: *const GUID,
+ pCaps: *mut D3DCONTENTPROTECTIONCAPS,
+ ) -> HRESULT,
+ fn CreateAuthenticatedChannel(
+ ChannelType: D3DAUTHENTICATEDCHANNELTYPE,
+ ppAuthenticatedChannel: *mut *mut IDirect3DAuthenticatedChannel9,
+ pChannelHandle: *mut HANDLE,
+ ) -> HRESULT,
+ fn CreateCryptoSession(
+ pCryptoType: *const GUID,
+ pDecodeProfile: *const GUID,
+ ppCryptoSession: *mut *mut IDirect3DCryptoSession9,
+ pCryptoHandle: *mut HANDLE,
+ ) -> HRESULT,
+}}
+pub type LPDIRECT3DDEVICE9VIDEO = *mut IDirect3DDevice9Video;
+pub type PDIRECT3DDEVICE9VIDEO = *mut IDirect3DDevice9Video;
+RIDL!{#[uuid(0xff24beee, 0xda21, 0x4beb, 0x98, 0xb5, 0xd2, 0xf8, 0x99, 0xf9, 0x8a, 0xf9)]
+interface IDirect3DAuthenticatedChannel9(IDirect3DAuthenticatedChannel9Vtbl):
+ IUnknown(IUnknownVtbl) {
+ fn GetCertificateSize(
+ pCertificateSize: *mut UINT,
+ ) -> HRESULT,
+ fn GetCertificate(
+ CertifacteSize: UINT,
+ ppCertificate: *mut BYTE,
+ ) -> HRESULT,
+ fn NegotiateKeyExchange(
+ DataSize: UINT,
+ pData: *mut VOID,
+ ) -> HRESULT,
+ fn Query(
+ InputSize: UINT,
+ pInput: *const VOID,
+ OutputSize: UINT,
+ pOutput: *mut VOID,
+ ) -> HRESULT,
+ fn Configure(
+ InputSize: UINT,
+ pInput: *const VOID,
+ pOutput: *mut D3DAUTHENTICATEDCHANNEL_CONFIGURE_OUTPUT,
+ ) -> HRESULT,
+}}
+pub type LPDIRECT3DAUTHENTICATEDCHANNEL9 = *mut IDirect3DAuthenticatedChannel9;
+pub type PDIRECT3DAUTHENTICATEDCHANNEL9 = *mut IDirect3DAuthenticatedChannel9;
+RIDL!{#[uuid(0xfa0ab799, 0x7a9c, 0x48ca, 0x8c, 0x5b, 0x23, 0x7e, 0x71, 0xa5, 0x44, 0x34)]
+interface IDirect3DCryptoSession9(IDirect3DCryptoSession9Vtbl): IUnknown(IUnknownVtbl) {
+ fn GetCertificateSize(
+ pCertificateSize: *mut UINT,
+ ) -> HRESULT,
+ fn GetCertificate(
+ CertifacteSize: UINT,
+ ppCertificate: *mut BYTE,
+ ) -> HRESULT,
+ fn NegotiateKeyExchange(
+ DataSize: UINT,
+ pData: *mut VOID,
+ ) -> HRESULT,
+ fn EncryptionBlt(
+ pSrcSurface: *mut IDirect3DSurface9,
+ pDstSurface: *mut IDirect3DSurface9,
+ DstSurfaceSize: UINT,
+ pIV: *mut VOID,
+ ) -> HRESULT,
+ fn DecryptionBlt(
+ pSrcSurface: *mut IDirect3DSurface9,
+ pDstSurface: *mut IDirect3DSurface9,
+ SrcSurfaceSize: UINT,
+ pEncryptedBlockInfo: *mut D3DENCRYPTED_BLOCK_INFO,
+ pContentKey: *mut VOID,
+ pIV: *mut VOID,
+ ) -> HRESULT,
+ fn GetSurfacePitch(
+ pSrcSurface: *mut IDirect3DSurface9,
+ pSurfacePitch: *mut UINT,
+ ) -> HRESULT,
+ fn StartSessionKeyRefresh(
+ pRandomNumber: *mut VOID,
+ RandomNumberSize: UINT,
+ ) -> HRESULT,
+ fn FinishSessionKeyRefresh() -> HRESULT,
+ fn GetEncryptionBltKey(
+ pReadbackKey: *mut VOID,
+ KeySize: UINT,
+ ) -> HRESULT,
+}}
+pub type LPDIRECT3DCRYPTOSESSION9 = *mut IDirect3DCryptoSession9;
+pub type PDIRECT3DCRYPTOSESSION9 = *mut IDirect3DCryptoSession9;
diff --git a/third_party/rust/chromium_crates_io/vendor/winapi-0.3.9/src/shared/d3d9caps.rs b/third_party/rust/chromium_crates_io/vendor/winapi-0.3.9/src/shared/d3d9caps.rs
new file mode 100644
index 000000000000..e806e08b7e35
--- /dev/null
+++ b/third_party/rust/chromium_crates_io/vendor/winapi-0.3.9/src/shared/d3d9caps.rs
@@ -0,0 +1,366 @@
+// Licensed under the Apache License, Version 2.0
+// or the MIT license
+// , at your option.
+// All files in the project carrying such notice may not be copied, modified, or distributed
+// except according to those terms.
+//! Direct3D capabilities include file
+use ctypes::c_float;
+use shared::d3d9types::D3DDEVTYPE;
+use shared::guiddef::GUID;
+use shared::minwindef::{DWORD, INT, UINT};
+use um::winnt::ULONGLONG;
+STRUCT!{struct D3DVSHADERCAPS2_0 {
+ Caps: DWORD,
+ DynamicFlowControlDepth: INT,
+ NumTemps: INT,
+ StaticFlowControlDepth: INT,
+}}
+pub const D3DVS20CAPS_PREDICATION: DWORD = 1 << 0;
+pub const D3DVS20_MAX_DYNAMICFLOWCONTROLDEPTH: DWORD = 24;
+pub const D3DVS20_MIN_DYNAMICFLOWCONTROLDEPTH: DWORD = 0;
+pub const D3DVS20_MAX_NUMTEMPS: DWORD = 32;
+pub const D3DVS20_MIN_NUMTEMPS: DWORD = 12;
+pub const D3DVS20_MAX_STATICFLOWCONTROLDEPTH: DWORD = 4;
+pub const D3DVS20_MIN_STATICFLOWCONTROLDEPTH: DWORD = 1;
+STRUCT!{struct D3DPSHADERCAPS2_0 {
+ Caps: DWORD,
+ DynamicFlowControlDepth: INT,
+ NumTemps: INT,
+ StaticFlowControlDepth: INT,
+ NumInstructionSlots: INT,
+}}
+pub const D3DPS20CAPS_ARBITRARYSWIZZLE: DWORD = 1 << 0;
+pub const D3DPS20CAPS_GRADIENTINSTRUCTIONS: DWORD = 1 << 1;
+pub const D3DPS20CAPS_PREDICATION: DWORD = 1 << 2;
+pub const D3DPS20CAPS_NODEPENDENTREADLIMIT: DWORD = 1 << 3;
+pub const D3DPS20CAPS_NOTEXINSTRUCTIONLIMIT: DWORD = 1 << 4;
+pub const D3DPS20_MAX_DYNAMICFLOWCONTROLDEPTH: DWORD = 24;
+pub const D3DPS20_MIN_DYNAMICFLOWCONTROLDEPTH: DWORD = 0;
+pub const D3DPS20_MAX_NUMTEMPS: DWORD = 32;
+pub const D3DPS20_MIN_NUMTEMPS: DWORD = 12;
+pub const D3DPS20_MAX_STATICFLOWCONTROLDEPTH: DWORD = 4;
+pub const D3DPS20_MIN_STATICFLOWCONTROLDEPTH: DWORD = 0;
+pub const D3DPS20_MAX_NUMINSTRUCTIONSLOTS: DWORD = 512;
+pub const D3DPS20_MIN_NUMINSTRUCTIONSLOTS: DWORD = 96;
+pub const D3DMIN30SHADERINSTRUCTIONS: DWORD = 512;
+pub const D3DMAX30SHADERINSTRUCTIONS: DWORD = 32768;
+STRUCT!{struct D3DOVERLAYCAPS {
+ Caps: UINT,
+ MaxOverlayDisplayWidth: UINT,
+ MaxOverlayDisplayHeight: UINT,
+}}
+pub const D3DOVERLAYCAPS_FULLRANGERGB: DWORD = 0x00000001;
+pub const D3DOVERLAYCAPS_LIMITEDRANGERGB: DWORD = 0x00000002;
+pub const D3DOVERLAYCAPS_YCbCr_BT601: DWORD = 0x00000004;
+pub const D3DOVERLAYCAPS_YCbCr_BT709: DWORD = 0x00000008;
+pub const D3DOVERLAYCAPS_YCbCr_BT601_xvYCC: DWORD = 0x00000010;
+pub const D3DOVERLAYCAPS_YCbCr_BT709_xvYCC: DWORD = 0x00000020;
+pub const D3DOVERLAYCAPS_STRETCHX: DWORD = 0x00000040;
+pub const D3DOVERLAYCAPS_STRETCHY: DWORD = 0x00000080;
+// FIXME packed(4)
+STRUCT!{#[cfg_attr(target_arch = "x86", repr(packed))] struct D3DCONTENTPROTECTIONCAPS {
+ Caps: DWORD,
+ KeyExchangeType: GUID,
+ BufferAlignmentStart: UINT,
+ BlockAlignmentSize: UINT,
+ ProtectedMemorySize: ULONGLONG,
+}}
+pub const D3DCPCAPS_SOFTWARE: DWORD = 0x00000001;
+pub const D3DCPCAPS_HARDWARE: DWORD = 0x00000002;
+pub const D3DCPCAPS_PROTECTIONALWAYSON: DWORD = 0x00000004;
+pub const D3DCPCAPS_PARTIALDECRYPTION: DWORD = 0x00000008;
+pub const D3DCPCAPS_CONTENTKEY: DWORD = 0x00000010;
+pub const D3DCPCAPS_FRESHENSESSIONKEY: DWORD = 0x00000020;
+pub const D3DCPCAPS_ENCRYPTEDREADBACK: DWORD = 0x00000040;
+pub const D3DCPCAPS_ENCRYPTEDREADBACKKEY: DWORD = 0x00000080;
+pub const D3DCPCAPS_SEQUENTIAL_CTR_IV: DWORD = 0x00000100;
+pub const D3DCPCAPS_ENCRYPTSLICEDATAONLY: DWORD = 0x00000200;
+DEFINE_GUID!{D3DCRYPTOTYPE_AES128_CTR,
+ 0x9b6bd711, 0x4f74, 0x41c9, 0x9e, 0x7b, 0x0b, 0xe2, 0xd7, 0xd9, 0x3b, 0x4f}
+DEFINE_GUID!{D3DCRYPTOTYPE_PROPRIETARY,
+ 0xab4e9afd, 0x1d1c, 0x46e6, 0xa7, 0x2f, 0x08, 0x69, 0x91, 0x7b, 0x0d, 0xe8}
+DEFINE_GUID!{D3DKEYEXCHANGE_RSAES_OAEP,
+ 0xc1949895, 0xd72a, 0x4a1d, 0x8e, 0x5d, 0xed, 0x85, 0x7d, 0x17, 0x15, 0x20}
+DEFINE_GUID!{D3DKEYEXCHANGE_DXVA,
+ 0x43d3775c, 0x38e5, 0x4924, 0x8d, 0x86, 0xd3, 0xfc, 0xcf, 0x15, 0x3e, 0x9b}
+STRUCT!{struct D3DCAPS9 {
+ DeviceType: D3DDEVTYPE,
+ AdapterOrdinal: UINT,
+ Caps: DWORD,
+ Caps2: DWORD,
+ Caps3: DWORD,
+ PresentationIntervals: DWORD,
+ CursorCaps: DWORD,
+ DevCaps: DWORD,
+ PrimitiveMiscCaps: DWORD,
+ RasterCaps: DWORD,
+ ZCmpCaps: DWORD,
+ SrcBlendCaps: DWORD,
+ DestBlendCaps: DWORD,
+ AlphaCmpCaps: DWORD,
+ ShadeCaps: DWORD,
+ TextureCaps: DWORD,
+ TextureFilterCaps: DWORD,
+ CubeTextureFilterCaps: DWORD,
+ VolumeTextureFilterCaps: DWORD,
+ TextureAddressCaps: DWORD,
+ VolumeTextureAddressCaps: DWORD,
+ LineCaps: DWORD,
+ MaxTextureWidth: DWORD,
+ MaxTextureHeight: DWORD,
+ MaxVolumeExtent: DWORD,
+ MaxTextureRepeat: DWORD,
+ MaxTextureAspectRatio: DWORD,
+ MaxAnisotropy: DWORD,
+ MaxVertexW: c_float,
+ GuardBandLeft: c_float,
+ GuardBandTop: c_float,
+ GuardBandRight: c_float,
+ GuardBandBottom: c_float,
+ ExtentsAdjust: c_float,
+ StencilCaps: DWORD,
+ FVFCaps: DWORD,
+ TextureOpCaps: DWORD,
+ MaxTextureBlendStages: DWORD,
+ MaxSimultaneousTextures: DWORD,
+ VertexProcessingCaps: DWORD,
+ MaxActiveLights: DWORD,
+ MaxUserClipPlanes: DWORD,
+ MaxVertexBlendMatrices: DWORD,
+ MaxVertexBlendMatrixIndex: DWORD,
+ MaxPointSize: c_float,
+ MaxPrimitiveCount: DWORD,
+ MaxVertexIndex: DWORD,
+ MaxStreams: DWORD,
+ MaxStreamStride: DWORD,
+ VertexShaderVersion: DWORD,
+ MaxVertexShaderConst: DWORD,
+ PixelShaderVersion: DWORD,
+ PixelShader1xMaxValue: c_float,
+ DevCaps2: DWORD,
+ MaxNpatchTessellationLevel: c_float,
+ Reserved5: DWORD,
+ MasterAdapterOrdinal: UINT,
+ AdapterOrdinalInGroup: UINT,
+ NumberOfAdaptersInGroup: UINT,
+ DeclTypes: DWORD,
+ NumSimultaneousRTs: DWORD,
+ StretchRectFilterCaps: DWORD,
+ VS20Caps: D3DVSHADERCAPS2_0,
+ PS20Caps: D3DPSHADERCAPS2_0,
+ VertexTextureFilterCaps: DWORD,
+ MaxVShaderInstructionsExecuted: DWORD,
+ MaxPShaderInstructionsExecuted: DWORD,
+ MaxVertexShader30InstructionSlots: DWORD,
+ MaxPixelShader30InstructionSlots: DWORD,
+}}
+pub const D3DCAPS_OVERLAY: DWORD = 0x00000800;
+pub const D3DCAPS_READ_SCANLINE: DWORD = 0x00020000;
+pub const D3DCAPS2_FULLSCREENGAMMA: DWORD = 0x00020000;
+pub const D3DCAPS2_CANCALIBRATEGAMMA: DWORD = 0x00100000;
+pub const D3DCAPS2_RESERVED: DWORD = 0x02000000;
+pub const D3DCAPS2_CANMANAGERESOURCE: DWORD = 0x10000000;
+pub const D3DCAPS2_DYNAMICTEXTURES: DWORD = 0x20000000;
+pub const D3DCAPS2_CANAUTOGENMIPMAP: DWORD = 0x40000000;
+pub const D3DCAPS2_CANSHARERESOURCE: DWORD = 0x80000000;
+pub const D3DCAPS3_RESERVED: DWORD = 0x8000001f;
+pub const D3DCAPS3_ALPHA_FULLSCREEN_FLIP_OR_DISCARD: DWORD = 0x00000020;
+pub const D3DCAPS3_LINEAR_TO_SRGB_PRESENTATION: DWORD = 0x00000080;
+pub const D3DCAPS3_COPY_TO_VIDMEM: DWORD = 0x00000100;
+pub const D3DCAPS3_COPY_TO_SYSTEMMEM: DWORD = 0x00000200;
+pub const D3DCAPS3_DXVAHD: DWORD = 0x00000400;
+pub const D3DCAPS3_DXVAHD_LIMITED: DWORD = 0x00000800;
+pub const D3DPRESENT_INTERVAL_DEFAULT: DWORD = 0x00000000;
+pub const D3DPRESENT_INTERVAL_ONE: DWORD = 0x00000001;
+pub const D3DPRESENT_INTERVAL_TWO: DWORD = 0x00000002;
+pub const D3DPRESENT_INTERVAL_THREE: DWORD = 0x00000004;
+pub const D3DPRESENT_INTERVAL_FOUR: DWORD = 0x00000008;
+pub const D3DPRESENT_INTERVAL_IMMEDIATE: DWORD = 0x80000000;
+pub const D3DCURSORCAPS_COLOR: DWORD = 0x00000001;
+pub const D3DCURSORCAPS_LOWRES: DWORD = 0x00000002;
+pub const D3DDEVCAPS_EXECUTESYSTEMMEMORY: DWORD = 0x00000010;
+pub const D3DDEVCAPS_EXECUTEVIDEOMEMORY: DWORD = 0x00000020;
+pub const D3DDEVCAPS_TLVERTEXSYSTEMMEMORY: DWORD = 0x00000040;
+pub const D3DDEVCAPS_TLVERTEXVIDEOMEMORY: DWORD = 0x00000080;
+pub const D3DDEVCAPS_TEXTURESYSTEMMEMORY: DWORD = 0x00000100;
+pub const D3DDEVCAPS_TEXTUREVIDEOMEMORY: DWORD = 0x00000200;
+pub const D3DDEVCAPS_DRAWPRIMTLVERTEX: DWORD = 0x00000400;
+pub const D3DDEVCAPS_CANRENDERAFTERFLIP: DWORD = 0x00000800;
+pub const D3DDEVCAPS_TEXTURENONLOCALVIDMEM: DWORD = 0x00001000;
+pub const D3DDEVCAPS_DRAWPRIMITIVES2: DWORD = 0x00002000;
+pub const D3DDEVCAPS_SEPARATETEXTUREMEMORIES: DWORD = 0x00004000;
+pub const D3DDEVCAPS_DRAWPRIMITIVES2EX: DWORD = 0x00008000;
+pub const D3DDEVCAPS_HWTRANSFORMANDLIGHT: DWORD = 0x00010000;
+pub const D3DDEVCAPS_CANBLTSYSTONONLOCAL: DWORD = 0x00020000;
+pub const D3DDEVCAPS_HWRASTERIZATION: DWORD = 0x00080000;
+pub const D3DDEVCAPS_PUREDEVICE: DWORD = 0x00100000;
+pub const D3DDEVCAPS_QUINTICRTPATCHES: DWORD = 0x00200000;
+pub const D3DDEVCAPS_RTPATCHES: DWORD = 0x00400000;
+pub const D3DDEVCAPS_RTPATCHHANDLEZERO: DWORD = 0x00800000;
+pub const D3DDEVCAPS_NPATCHES: DWORD = 0x01000000;
+pub const D3DPMISCCAPS_MASKZ: DWORD = 0x00000002;
+pub const D3DPMISCCAPS_CULLNONE: DWORD = 0x00000010;
+pub const D3DPMISCCAPS_CULLCW: DWORD = 0x00000020;
+pub const D3DPMISCCAPS_CULLCCW: DWORD = 0x00000040;
+pub const D3DPMISCCAPS_COLORWRITEENABLE: DWORD = 0x00000080;
+pub const D3DPMISCCAPS_CLIPPLANESCALEDPOINTS: DWORD = 0x00000100;
+pub const D3DPMISCCAPS_CLIPTLVERTS: DWORD = 0x00000200;
+pub const D3DPMISCCAPS_TSSARGTEMP: DWORD = 0x00000400;
+pub const D3DPMISCCAPS_BLENDOP: DWORD = 0x00000800;
+pub const D3DPMISCCAPS_NULLREFERENCE: DWORD = 0x00001000;
+pub const D3DPMISCCAPS_INDEPENDENTWRITEMASKS: DWORD = 0x00004000;
+pub const D3DPMISCCAPS_PERSTAGECONSTANT: DWORD = 0x00008000;
+pub const D3DPMISCCAPS_FOGANDSPECULARALPHA: DWORD = 0x00010000;
+pub const D3DPMISCCAPS_SEPARATEALPHABLEND: DWORD = 0x00020000;
+pub const D3DPMISCCAPS_MRTINDEPENDENTBITDEPTHS: DWORD = 0x00040000;
+pub const D3DPMISCCAPS_MRTPOSTPIXELSHADERBLENDING: DWORD = 0x00080000;
+pub const D3DPMISCCAPS_FOGVERTEXCLAMPED: DWORD = 0x00100000;
+pub const D3DPMISCCAPS_POSTBLENDSRGBCONVERT: DWORD = 0x00200000;
+pub const D3DLINECAPS_TEXTURE: DWORD = 0x00000001;
+pub const D3DLINECAPS_ZTEST: DWORD = 0x00000002;
+pub const D3DLINECAPS_BLEND: DWORD = 0x00000004;
+pub const D3DLINECAPS_ALPHACMP: DWORD = 0x00000008;
+pub const D3DLINECAPS_FOG: DWORD = 0x00000010;
+pub const D3DLINECAPS_ANTIALIAS: DWORD = 0x00000020;
+pub const D3DPRASTERCAPS_DITHER: DWORD = 0x00000001;
+pub const D3DPRASTERCAPS_ZTEST: DWORD = 0x00000010;
+pub const D3DPRASTERCAPS_FOGVERTEX: DWORD = 0x00000080;
+pub const D3DPRASTERCAPS_FOGTABLE: DWORD = 0x00000100;
+pub const D3DPRASTERCAPS_MIPMAPLODBIAS: DWORD = 0x00002000;
+pub const D3DPRASTERCAPS_ZBUFFERLESSHSR: DWORD = 0x00008000;
+pub const D3DPRASTERCAPS_FOGRANGE: DWORD = 0x00010000;
+pub const D3DPRASTERCAPS_ANISOTROPY: DWORD = 0x00020000;
+pub const D3DPRASTERCAPS_WBUFFER: DWORD = 0x00040000;
+pub const D3DPRASTERCAPS_WFOG: DWORD = 0x00100000;
+pub const D3DPRASTERCAPS_ZFOG: DWORD = 0x00200000;
+pub const D3DPRASTERCAPS_COLORPERSPECTIVE: DWORD = 0x00400000;
+pub const D3DPRASTERCAPS_SCISSORTEST: DWORD = 0x01000000;
+pub const D3DPRASTERCAPS_SLOPESCALEDEPTHBIAS: DWORD = 0x02000000;
+pub const D3DPRASTERCAPS_DEPTHBIAS: DWORD = 0x04000000;
+pub const D3DPRASTERCAPS_MULTISAMPLE_TOGGLE: DWORD = 0x08000000;
+pub const D3DPCMPCAPS_NEVER: DWORD = 0x00000001;
+pub const D3DPCMPCAPS_LESS: DWORD = 0x00000002;
+pub const D3DPCMPCAPS_EQUAL: DWORD = 0x00000004;
+pub const D3DPCMPCAPS_LESSEQUAL: DWORD = 0x00000008;
+pub const D3DPCMPCAPS_GREATER: DWORD = 0x00000010;
+pub const D3DPCMPCAPS_NOTEQUAL: DWORD = 0x00000020;
+pub const D3DPCMPCAPS_GREATEREQUAL: DWORD = 0x00000040;
+pub const D3DPCMPCAPS_ALWAYS: DWORD = 0x00000080;
+pub const D3DPBLENDCAPS_ZERO: DWORD = 0x00000001;
+pub const D3DPBLENDCAPS_ONE: DWORD = 0x00000002;
+pub const D3DPBLENDCAPS_SRCCOLOR: DWORD = 0x00000004;
+pub const D3DPBLENDCAPS_INVSRCCOLOR: DWORD = 0x00000008;
+pub const D3DPBLENDCAPS_SRCALPHA: DWORD = 0x00000010;
+pub const D3DPBLENDCAPS_INVSRCALPHA: DWORD = 0x00000020;
+pub const D3DPBLENDCAPS_DESTALPHA: DWORD = 0x00000040;
+pub const D3DPBLENDCAPS_INVDESTALPHA: DWORD = 0x00000080;
+pub const D3DPBLENDCAPS_DESTCOLOR: DWORD = 0x00000100;
+pub const D3DPBLENDCAPS_INVDESTCOLOR: DWORD = 0x00000200;
+pub const D3DPBLENDCAPS_SRCALPHASAT: DWORD = 0x00000400;
+pub const D3DPBLENDCAPS_BOTHSRCALPHA: DWORD = 0x00000800;
+pub const D3DPBLENDCAPS_BOTHINVSRCALPHA: DWORD = 0x00001000;
+pub const D3DPBLENDCAPS_BLENDFACTOR: DWORD = 0x00002000;
+pub const D3DPBLENDCAPS_SRCCOLOR2: DWORD = 0x00004000;
+pub const D3DPBLENDCAPS_INVSRCCOLOR2: DWORD = 0x00008000;
+pub const D3DPSHADECAPS_COLORGOURAUDRGB: DWORD = 0x00000008;
+pub const D3DPSHADECAPS_SPECULARGOURAUDRGB: DWORD = 0x00000200;
+pub const D3DPSHADECAPS_ALPHAGOURAUDBLEND: DWORD = 0x00004000;
+pub const D3DPSHADECAPS_FOGGOURAUD: DWORD = 0x00080000;
+pub const D3DPTEXTURECAPS_PERSPECTIVE: DWORD = 0x00000001;
+pub const D3DPTEXTURECAPS_POW2: DWORD = 0x00000002;
+pub const D3DPTEXTURECAPS_ALPHA: DWORD = 0x00000004;
+pub const D3DPTEXTURECAPS_SQUAREONLY: DWORD = 0x00000020;
+pub const D3DPTEXTURECAPS_TEXREPEATNOTSCALEDBYSIZE: DWORD = 0x00000040;
+pub const D3DPTEXTURECAPS_ALPHAPALETTE: DWORD = 0x00000080;
+pub const D3DPTEXTURECAPS_NONPOW2CONDITIONAL: DWORD = 0x00000100;
+pub const D3DPTEXTURECAPS_PROJECTED: DWORD = 0x00000400;
+pub const D3DPTEXTURECAPS_CUBEMAP: DWORD = 0x00000800;
+pub const D3DPTEXTURECAPS_VOLUMEMAP: DWORD = 0x00002000;
+pub const D3DPTEXTURECAPS_MIPMAP: DWORD = 0x00004000;
+pub const D3DPTEXTURECAPS_MIPVOLUMEMAP: DWORD = 0x00008000;
+pub const D3DPTEXTURECAPS_MIPCUBEMAP: DWORD = 0x00010000;
+pub const D3DPTEXTURECAPS_CUBEMAP_POW2: DWORD = 0x00020000;
+pub const D3DPTEXTURECAPS_VOLUMEMAP_POW2: DWORD = 0x00040000;
+pub const D3DPTEXTURECAPS_NOPROJECTEDBUMPENV: DWORD = 0x00200000;
+pub const D3DPTFILTERCAPS_MINFPOINT: DWORD = 0x00000100;
+pub const D3DPTFILTERCAPS_MINFLINEAR: DWORD = 0x00000200;
+pub const D3DPTFILTERCAPS_MINFANISOTROPIC: DWORD = 0x00000400;
+pub const D3DPTFILTERCAPS_MINFPYRAMIDALQUAD: DWORD = 0x00000800;
+pub const D3DPTFILTERCAPS_MINFGAUSSIANQUAD: DWORD = 0x00001000;
+pub const D3DPTFILTERCAPS_MIPFPOINT: DWORD = 0x00010000;
+pub const D3DPTFILTERCAPS_MIPFLINEAR: DWORD = 0x00020000;
+pub const D3DPTFILTERCAPS_CONVOLUTIONMONO: DWORD = 0x00040000;
+pub const D3DPTFILTERCAPS_MAGFPOINT: DWORD = 0x01000000;
+pub const D3DPTFILTERCAPS_MAGFLINEAR: DWORD = 0x02000000;
+pub const D3DPTFILTERCAPS_MAGFANISOTROPIC: DWORD = 0x04000000;
+pub const D3DPTFILTERCAPS_MAGFPYRAMIDALQUAD: DWORD = 0x08000000;
+pub const D3DPTFILTERCAPS_MAGFGAUSSIANQUAD: DWORD = 0x10000000;
+pub const D3DPTADDRESSCAPS_WRAP: DWORD = 0x00000001;
+pub const D3DPTADDRESSCAPS_MIRROR: DWORD = 0x00000002;
+pub const D3DPTADDRESSCAPS_CLAMP: DWORD = 0x00000004;
+pub const D3DPTADDRESSCAPS_BORDER: DWORD = 0x00000008;
+pub const D3DPTADDRESSCAPS_INDEPENDENTUV: DWORD = 0x00000010;
+pub const D3DPTADDRESSCAPS_MIRRORONCE: DWORD = 0x00000020;
+pub const D3DSTENCILCAPS_KEEP: DWORD = 0x00000001;
+pub const D3DSTENCILCAPS_ZERO: DWORD = 0x00000002;
+pub const D3DSTENCILCAPS_REPLACE: DWORD = 0x00000004;
+pub const D3DSTENCILCAPS_INCRSAT: DWORD = 0x00000008;
+pub const D3DSTENCILCAPS_DECRSAT: DWORD = 0x00000010;
+pub const D3DSTENCILCAPS_INVERT: DWORD = 0x00000020;
+pub const D3DSTENCILCAPS_INCR: DWORD = 0x00000040;
+pub const D3DSTENCILCAPS_DECR: DWORD = 0x00000080;
+pub const D3DSTENCILCAPS_TWOSIDED: DWORD = 0x00000100;
+pub const D3DTEXOPCAPS_DISABLE: DWORD = 0x00000001;
+pub const D3DTEXOPCAPS_SELECTARG1: DWORD = 0x00000002;
+pub const D3DTEXOPCAPS_SELECTARG2: DWORD = 0x00000004;
+pub const D3DTEXOPCAPS_MODULATE: DWORD = 0x00000008;
+pub const D3DTEXOPCAPS_MODULATE2X: DWORD = 0x00000010;
+pub const D3DTEXOPCAPS_MODULATE4X: DWORD = 0x00000020;
+pub const D3DTEXOPCAPS_ADD: DWORD = 0x00000040;
+pub const D3DTEXOPCAPS_ADDSIGNED: DWORD = 0x00000080;
+pub const D3DTEXOPCAPS_ADDSIGNED2X: DWORD = 0x00000100;
+pub const D3DTEXOPCAPS_SUBTRACT: DWORD = 0x00000200;
+pub const D3DTEXOPCAPS_ADDSMOOTH: DWORD = 0x00000400;
+pub const D3DTEXOPCAPS_BLENDDIFFUSEALPHA: DWORD = 0x00000800;
+pub const D3DTEXOPCAPS_BLENDTEXTUREALPHA: DWORD = 0x00001000;
+pub const D3DTEXOPCAPS_BLENDFACTORALPHA: DWORD = 0x00002000;
+pub const D3DTEXOPCAPS_BLENDTEXTUREALPHAPM: DWORD = 0x00004000;
+pub const D3DTEXOPCAPS_BLENDCURRENTALPHA: DWORD = 0x00008000;
+pub const D3DTEXOPCAPS_PREMODULATE: DWORD = 0x00010000;
+pub const D3DTEXOPCAPS_MODULATEALPHA_ADDCOLOR: DWORD = 0x00020000;
+pub const D3DTEXOPCAPS_MODULATECOLOR_ADDALPHA: DWORD = 0x00040000;
+pub const D3DTEXOPCAPS_MODULATEINVALPHA_ADDCOLOR: DWORD = 0x00080000;
+pub const D3DTEXOPCAPS_MODULATEINVCOLOR_ADDALPHA: DWORD = 0x00100000;
+pub const D3DTEXOPCAPS_BUMPENVMAP: DWORD = 0x00200000;
+pub const D3DTEXOPCAPS_BUMPENVMAPLUMINANCE: DWORD = 0x00400000;
+pub const D3DTEXOPCAPS_DOTPRODUCT3: DWORD = 0x00800000;
+pub const D3DTEXOPCAPS_MULTIPLYADD: DWORD = 0x01000000;
+pub const D3DTEXOPCAPS_LERP: DWORD = 0x02000000;
+pub const D3DFVFCAPS_TEXCOORDCOUNTMASK: DWORD = 0x0000ffff;
+pub const D3DFVFCAPS_DONOTSTRIPELEMENTS: DWORD = 0x00080000;
+pub const D3DFVFCAPS_PSIZE: DWORD = 0x00100000;
+pub const D3DVTXPCAPS_TEXGEN: DWORD = 0x00000001;
+pub const D3DVTXPCAPS_MATERIALSOURCE7: DWORD = 0x00000002;
+pub const D3DVTXPCAPS_DIRECTIONALLIGHTS: DWORD = 0x00000008;
+pub const D3DVTXPCAPS_POSITIONALLIGHTS: DWORD = 0x00000010;
+pub const D3DVTXPCAPS_LOCALVIEWER: DWORD = 0x00000020;
+pub const D3DVTXPCAPS_TWEENING: DWORD = 0x00000040;
+pub const D3DVTXPCAPS_TEXGEN_SPHEREMAP: DWORD = 0x00000100;
+pub const D3DVTXPCAPS_NO_TEXGEN_NONLOCALVIEWER: DWORD = 0x00000200;
+pub const D3DDEVCAPS2_STREAMOFFSET: DWORD = 0x00000001;
+pub const D3DDEVCAPS2_DMAPNPATCH: DWORD = 0x00000002;
+pub const D3DDEVCAPS2_ADAPTIVETESSRTPATCH: DWORD = 0x00000004;
+pub const D3DDEVCAPS2_ADAPTIVETESSNPATCH: DWORD = 0x00000008;
+pub const D3DDEVCAPS2_CAN_STRETCHRECT_FROM_TEXTURES: DWORD = 0x00000010;
+pub const D3DDEVCAPS2_PRESAMPLEDDMAPNPATCH: DWORD = 0x00000020;
+pub const D3DDEVCAPS2_VERTEXELEMENTSCANSHARESTREAMOFFSET: DWORD = 0x00000040;
+pub const D3DDTCAPS_UBYTE4: DWORD = 0x00000001;
+pub const D3DDTCAPS_UBYTE4N: DWORD = 0x00000002;
+pub const D3DDTCAPS_SHORT2N: DWORD = 0x00000004;
+pub const D3DDTCAPS_SHORT4N: DWORD = 0x00000008;
+pub const D3DDTCAPS_USHORT2N: DWORD = 0x00000010;
+pub const D3DDTCAPS_USHORT4N: DWORD = 0x00000020;
+pub const D3DDTCAPS_UDEC3: DWORD = 0x00000040;
+pub const D3DDTCAPS_DEC3N: DWORD = 0x00000080;
+pub const D3DDTCAPS_FLOAT16_2: DWORD = 0x00000100;
+pub const D3DDTCAPS_FLOAT16_4: DWORD = 0x00000200;
diff --git a/third_party/rust/chromium_crates_io/vendor/winapi-0.3.9/src/shared/d3d9types.rs b/third_party/rust/chromium_crates_io/vendor/winapi-0.3.9/src/shared/d3d9types.rs
new file mode 100644
index 000000000000..e794d2731f13
--- /dev/null
+++ b/third_party/rust/chromium_crates_io/vendor/winapi-0.3.9/src/shared/d3d9types.rs
@@ -0,0 +1,1487 @@
+// Licensed under the Apache License, Version 2.0
+// or the MIT license
+// , at your option.
+// All files in the project carrying such notice may not be copied, modified, or distributed
+// except according to those terms.
+//! Direct3D capabilities include file
+use ctypes::{c_char, c_float, c_void};
+use shared::basetsd::UINT64;
+use shared::guiddef::GUID;
+use shared::minwindef::{BOOL, BYTE, DWORD, FLOAT, INT, UINT, USHORT, WORD};
+use shared::windef::HWND;
+use um::winnt::{HANDLE, HRESULT, LARGE_INTEGER, LONG, SHORT};
+pub type D3DCOLOR = DWORD;
+#[inline]
+pub fn D3DCOLOR_ARGB(a: DWORD, r: DWORD, g: DWORD, b: DWORD) -> D3DCOLOR {
+ (((a & 0xff) << 24) | ((r & 0xff) << 16) | ((g & 0xff) << 8) | (b & 0xff)) as D3DCOLOR
+}
+#[inline]
+pub fn D3DCOLOR_RGBA(r: DWORD, g: DWORD, b: DWORD, a: DWORD) -> D3DCOLOR {
+ D3DCOLOR_ARGB(a, r, g, b)
+}
+#[inline]
+pub fn D3DCOLOR_XRGB(r: DWORD, g: DWORD, b: DWORD) -> D3DCOLOR {
+ D3DCOLOR_ARGB(0xff, r, g, b)
+}
+#[inline]
+pub fn D3DCOLOR_XYUV(y: DWORD, u: DWORD, v: DWORD) -> D3DCOLOR {
+ D3DCOLOR_ARGB(0xff, y, u, v)
+}
+#[inline]
+pub fn D3DCOLOR_AYUV(a: DWORD, y: DWORD, u: DWORD, v: DWORD) -> D3DCOLOR {
+ D3DCOLOR_ARGB(a, y, u, v)
+}
+#[inline]
+pub fn D3DCOLOR_COLORVALUE(r: f32, g: f32, b: f32, a: f32) -> D3DCOLOR {
+ D3DCOLOR_ARGB(
+ (r * 255f32) as DWORD,
+ (g * 255f32) as DWORD,
+ (b * 255f32) as DWORD,
+ (a * 255f32) as DWORD,
+ )
+}
+STRUCT!{struct D3DVECTOR {
+ x: c_float,
+ y: c_float,
+ z: c_float,
+}}
+STRUCT!{struct D3DCOLORVALUE {
+ r: c_float,
+ g: c_float,
+ b: c_float,
+ a: c_float,
+}}
+STRUCT!{struct D3DRECT {
+ x1: LONG,
+ y1: LONG,
+ x2: LONG,
+ y2: LONG,
+}}
+STRUCT!{struct D3DMATRIX {
+ m: [[c_float; 4]; 4],
+}}
+STRUCT!{struct D3DVIEWPORT9 {
+ X: DWORD,
+ Y: DWORD,
+ Width: DWORD,
+ Height: DWORD,
+ MinZ: c_float,
+ MaxZ: c_float,
+}}
+pub const D3DMAXUSERCLIPPLANES: DWORD = 32;
+pub const D3DCLIPPLANE0: DWORD = 1 << 0;
+pub const D3DCLIPPLANE1: DWORD = 1 << 1;
+pub const D3DCLIPPLANE2: DWORD = 1 << 2;
+pub const D3DCLIPPLANE3: DWORD = 1 << 3;
+pub const D3DCLIPPLANE4: DWORD = 1 << 4;
+pub const D3DCLIPPLANE5: DWORD = 1 << 5;
+pub const D3DCS_LEFT: DWORD = 0x00000001;
+pub const D3DCS_RIGHT: DWORD = 0x00000002;
+pub const D3DCS_TOP: DWORD = 0x00000004;
+pub const D3DCS_BOTTOM: DWORD = 0x00000008;
+pub const D3DCS_FRONT: DWORD = 0x00000010;
+pub const D3DCS_BACK: DWORD = 0x00000020;
+pub const D3DCS_PLANE0: DWORD = 0x00000040;
+pub const D3DCS_PLANE1: DWORD = 0x00000080;
+pub const D3DCS_PLANE2: DWORD = 0x00000100;
+pub const D3DCS_PLANE3: DWORD = 0x00000200;
+pub const D3DCS_PLANE4: DWORD = 0x00000400;
+pub const D3DCS_PLANE5: DWORD = 0x00000800;
+pub const D3DCS_ALL: DWORD = D3DCS_LEFT | D3DCS_RIGHT | D3DCS_TOP | D3DCS_BOTTOM | D3DCS_FRONT
+ | D3DCS_BACK | D3DCS_PLANE0 | D3DCS_PLANE1 | D3DCS_PLANE2 | D3DCS_PLANE3 | D3DCS_PLANE4
+ | D3DCS_PLANE5;
+STRUCT!{struct D3DCLIPSTATUS9 {
+ ClipUnion: DWORD,
+ ClipIntersection: DWORD,
+}}
+STRUCT!{struct D3DMATERIAL9 {
+ Diffuse: D3DCOLORVALUE,
+ Ambient: D3DCOLORVALUE,
+ Specular: D3DCOLORVALUE,
+ Emissive: D3DCOLORVALUE,
+ Power: c_float,
+}}
+ENUM!{enum D3DLIGHTTYPE {
+ D3DLIGHT_POINT = 1,
+ D3DLIGHT_SPOT = 2,
+ D3DLIGHT_DIRECTIONAL = 3,
+}}
+STRUCT!{struct D3DLIGHT9 {
+ Type: D3DLIGHTTYPE,
+ Diffuse: D3DCOLORVALUE,
+ Specular: D3DCOLORVALUE,
+ Ambient: D3DCOLORVALUE,
+ Position: D3DVECTOR,
+ Direction: D3DVECTOR,
+ Range: c_float,
+ Falloff: c_float,
+ Attenuation0: c_float,
+ Attenuation1: c_float,
+ Attenuation2: c_float,
+ Theta: c_float,
+ Phi: c_float,
+}}
+pub const D3DCLEAR_TARGET: DWORD = 0x00000001;
+pub const D3DCLEAR_ZBUFFER: DWORD = 0x00000002;
+pub const D3DCLEAR_STENCIL: DWORD = 0x00000004;
+ENUM!{enum D3DSHADEMODE {
+ D3DSHADE_FLAT = 1,
+ D3DSHADE_GOURAUD = 2,
+ D3DSHADE_PHONG = 3,
+}}
+ENUM!{enum D3DFILLMODE {
+ D3DFILL_POINT = 1,
+ D3DFILL_WIREFRAME = 2,
+ D3DFILL_SOLID = 3,
+}}
+ENUM!{enum D3DBLEND {
+ D3DBLEND_ZERO = 1,
+ D3DBLEND_ONE = 2,
+ D3DBLEND_SRCCOLOR = 3,
+ D3DBLEND_INVSRCCOLOR = 4,
+ D3DBLEND_SRCALPHA = 5,
+ D3DBLEND_INVSRCALPHA = 6,
+ D3DBLEND_DESTALPHA = 7,
+ D3DBLEND_INVDESTALPHA = 8,
+ D3DBLEND_DESTCOLOR = 9,
+ D3DBLEND_INVDESTCOLOR = 10,
+ D3DBLEND_SRCALPHASAT = 11,
+ D3DBLEND_BOTHSRCALPHA = 12,
+ D3DBLEND_BOTHINVSRCALPHA = 13,
+ D3DBLEND_BLENDFACTOR = 14,
+ D3DBLEND_INVBLENDFACTOR = 15,
+ D3DBLEND_SRCCOLOR2 = 16,
+ D3DBLEND_INVSRCCOLOR2 = 17,
+}}
+ENUM!{enum D3DBLENDOP {
+ D3DBLENDOP_ADD = 1,
+ D3DBLENDOP_SUBTRACT = 2,
+ D3DBLENDOP_REVSUBTRACT = 3,
+ D3DBLENDOP_MIN = 4,
+ D3DBLENDOP_MAX = 5,
+}}
+ENUM!{enum D3DTEXTUREADDRESS {
+ D3DTADDRESS_WRAP = 1,
+ D3DTADDRESS_MIRROR = 2,
+ D3DTADDRESS_CLAMP = 3,
+ D3DTADDRESS_BORDER = 4,
+ D3DTADDRESS_MIRRORONCE = 5,
+}}
+ENUM!{enum D3DCULL {
+ D3DCULL_NONE = 1,
+ D3DCULL_CW = 2,
+ D3DCULL_CCW = 3,
+}}
+ENUM!{enum D3DCMPFUNC {
+ D3DCMP_NEVER = 1,
+ D3DCMP_LESS = 2,
+ D3DCMP_EQUAL = 3,
+ D3DCMP_LESSEQUAL = 4,
+ D3DCMP_GREATER = 5,
+ D3DCMP_NOTEQUAL = 6,
+ D3DCMP_GREATEREQUAL = 7,
+ D3DCMP_ALWAYS = 8,
+}}
+ENUM!{enum D3DSTENCILOP {
+ D3DSTENCILOP_KEEP = 1,
+ D3DSTENCILOP_ZERO = 2,
+ D3DSTENCILOP_REPLACE = 3,
+ D3DSTENCILOP_INCRSAT = 4,
+ D3DSTENCILOP_DECRSAT = 5,
+ D3DSTENCILOP_INVERT = 6,
+ D3DSTENCILOP_INCR = 7,
+ D3DSTENCILOP_DECR = 8,
+}}
+ENUM!{enum D3DFOGMODE {
+ D3DFOG_NONE = 0,
+ D3DFOG_EXP = 1,
+ D3DFOG_EXP2 = 2,
+ D3DFOG_LINEAR = 3,
+}}
+ENUM!{enum D3DZBUFFERTYPE {
+ D3DZB_FALSE = 0,
+ D3DZB_TRUE = 1,
+ D3DZB_USEW = 2,
+}}
+ENUM!{enum D3DPRIMITIVETYPE {
+ D3DPT_POINTLIST = 1,
+ D3DPT_LINELIST = 2,
+ D3DPT_LINESTRIP = 3,
+ D3DPT_TRIANGLELIST = 4,
+ D3DPT_TRIANGLESTRIP = 5,
+ D3DPT_TRIANGLEFAN = 6,
+}}
+ENUM!{enum D3DTRANSFORMSTATETYPE {
+ D3DTS_VIEW = 2,
+ D3DTS_PROJECTION = 3,
+ D3DTS_TEXTURE0 = 16,
+ D3DTS_TEXTURE1 = 17,
+ D3DTS_TEXTURE2 = 18,
+ D3DTS_TEXTURE3 = 19,
+ D3DTS_TEXTURE4 = 20,
+ D3DTS_TEXTURE5 = 21,
+ D3DTS_TEXTURE6 = 22,
+ D3DTS_TEXTURE7 = 23,
+}}
+macro_rules! D3DTS_WORLDMATRIX {
+ ($index:expr) => ($index + 256)
+}
+pub const D3DTS_WORLD: D3DTRANSFORMSTATETYPE = D3DTS_WORLDMATRIX!(0);
+pub const D3DTS_WORLD1: D3DTRANSFORMSTATETYPE = D3DTS_WORLDMATRIX!(1);
+pub const D3DTS_WORLD2: D3DTRANSFORMSTATETYPE = D3DTS_WORLDMATRIX!(2);
+pub const D3DTS_WORLD3: D3DTRANSFORMSTATETYPE = D3DTS_WORLDMATRIX!(3);
+ENUM!{enum D3DRENDERSTATETYPE {
+ D3DRS_ZENABLE = 7,
+ D3DRS_FILLMODE = 8,
+ D3DRS_SHADEMODE = 9,
+ D3DRS_ZWRITEENABLE = 14,
+ D3DRS_ALPHATESTENABLE = 15,
+ D3DRS_LASTPIXEL = 16,
+ D3DRS_SRCBLEND = 19,
+ D3DRS_DESTBLEND = 20,
+ D3DRS_CULLMODE = 22,
+ D3DRS_ZFUNC = 23,
+ D3DRS_ALPHAREF = 24,
+ D3DRS_ALPHAFUNC = 25,
+ D3DRS_DITHERENABLE = 26,
+ D3DRS_ALPHABLENDENABLE = 27,
+ D3DRS_FOGENABLE = 28,
+ D3DRS_SPECULARENABLE = 29,
+ D3DRS_FOGCOLOR = 34,
+ D3DRS_FOGTABLEMODE = 35,
+ D3DRS_FOGSTART = 36,
+ D3DRS_FOGEND = 37,
+ D3DRS_FOGDENSITY = 38,
+ D3DRS_RANGEFOGENABLE = 48,
+ D3DRS_STENCILENABLE = 52,
+ D3DRS_STENCILFAIL = 53,
+ D3DRS_STENCILZFAIL = 54,
+ D3DRS_STENCILPASS = 55,
+ D3DRS_STENCILFUNC = 56,
+ D3DRS_STENCILREF = 57,
+ D3DRS_STENCILMASK = 58,
+ D3DRS_STENCILWRITEMASK = 59,
+ D3DRS_TEXTUREFACTOR = 60,
+ D3DRS_WRAP0 = 128,
+ D3DRS_WRAP1 = 129,
+ D3DRS_WRAP2 = 130,
+ D3DRS_WRAP3 = 131,
+ D3DRS_WRAP4 = 132,
+ D3DRS_WRAP5 = 133,
+ D3DRS_WRAP6 = 134,
+ D3DRS_WRAP7 = 135,
+ D3DRS_CLIPPING = 136,
+ D3DRS_LIGHTING = 137,
+ D3DRS_AMBIENT = 139,
+ D3DRS_FOGVERTEXMODE = 140,
+ D3DRS_COLORVERTEX = 141,
+ D3DRS_LOCALVIEWER = 142,
+ D3DRS_NORMALIZENORMALS = 143,
+ D3DRS_DIFFUSEMATERIALSOURCE = 145,
+ D3DRS_SPECULARMATERIALSOURCE = 146,
+ D3DRS_AMBIENTMATERIALSOURCE = 147,
+ D3DRS_EMISSIVEMATERIALSOURCE = 148,
+ D3DRS_VERTEXBLEND = 151,
+ D3DRS_CLIPPLANEENABLE = 152,
+ D3DRS_POINTSIZE = 154,
+ D3DRS_POINTSIZE_MIN = 155,
+ D3DRS_POINTSPRITEENABLE = 156,
+ D3DRS_POINTSCALEENABLE = 157,
+ D3DRS_POINTSCALE_A = 158,
+ D3DRS_POINTSCALE_B = 159,
+ D3DRS_POINTSCALE_C = 160,
+ D3DRS_MULTISAMPLEANTIALIAS = 161,
+ D3DRS_MULTISAMPLEMASK = 162,
+ D3DRS_PATCHEDGESTYLE = 163,
+ D3DRS_DEBUGMONITORTOKEN = 165,
+ D3DRS_POINTSIZE_MAX = 166,
+ D3DRS_INDEXEDVERTEXBLENDENABLE = 167,
+ D3DRS_COLORWRITEENABLE = 168,
+ D3DRS_TWEENFACTOR = 170,
+ D3DRS_BLENDOP = 171,
+ D3DRS_POSITIONDEGREE = 172,
+ D3DRS_NORMALDEGREE = 173,
+ D3DRS_SCISSORTESTENABLE = 174,
+ D3DRS_SLOPESCALEDEPTHBIAS = 175,
+ D3DRS_ANTIALIASEDLINEENABLE = 176,
+ D3DRS_MINTESSELLATIONLEVEL = 178,
+ D3DRS_MAXTESSELLATIONLEVEL = 179,
+ D3DRS_ADAPTIVETESS_X = 180,
+ D3DRS_ADAPTIVETESS_Y = 181,
+ D3DRS_ADAPTIVETESS_Z = 182,
+ D3DRS_ADAPTIVETESS_W = 183,
+ D3DRS_ENABLEADAPTIVETESSELLATION = 184,
+ D3DRS_TWOSIDEDSTENCILMODE = 185,
+ D3DRS_CCW_STENCILFAIL = 186,
+ D3DRS_CCW_STENCILZFAIL = 187,
+ D3DRS_CCW_STENCILPASS = 188,
+ D3DRS_CCW_STENCILFUNC = 189,
+ D3DRS_COLORWRITEENABLE1 = 190,
+ D3DRS_COLORWRITEENABLE2 = 191,
+ D3DRS_COLORWRITEENABLE3 = 192,
+ D3DRS_BLENDFACTOR = 193,
+ D3DRS_SRGBWRITEENABLE = 194,
+ D3DRS_DEPTHBIAS = 195,
+ D3DRS_WRAP8 = 198,
+ D3DRS_WRAP9 = 199,
+ D3DRS_WRAP10 = 200,
+ D3DRS_WRAP11 = 201,
+ D3DRS_WRAP12 = 202,
+ D3DRS_WRAP13 = 203,
+ D3DRS_WRAP14 = 204,
+ D3DRS_WRAP15 = 205,
+ D3DRS_SEPARATEALPHABLENDENABLE = 206,
+ D3DRS_SRCBLENDALPHA = 207,
+ D3DRS_DESTBLENDALPHA = 208,
+ D3DRS_BLENDOPALPHA = 209,
+}}
+pub const D3D_MAX_SIMULTANEOUS_RENDERTARGETS: DWORD = 4;
+ENUM!{enum D3DMATERIALCOLORSOURCE {
+ D3DMCS_MATERIAL = 0,
+ D3DMCS_COLOR1 = 1,
+ D3DMCS_COLOR2 = 2,
+}}
+pub const D3DRENDERSTATE_WRAPBIAS: DWORD = 128;
+pub const D3DWRAP_U: DWORD = 0x00000001;
+pub const D3DWRAP_V: DWORD = 0x00000002;
+pub const D3DWRAP_W: DWORD = 0x00000004;
+pub const D3DWRAPCOORD_0: DWORD = 0x00000001;
+pub const D3DWRAPCOORD_1: DWORD = 0x00000002;
+pub const D3DWRAPCOORD_2: DWORD = 0x00000004;
+pub const D3DWRAPCOORD_3: DWORD = 0x00000008;
+pub const D3DCOLORWRITEENABLE_RED: DWORD = 1 << 0;
+pub const D3DCOLORWRITEENABLE_GREEN: DWORD = 1 << 1;
+pub const D3DCOLORWRITEENABLE_BLUE: DWORD = 1 << 2;
+pub const D3DCOLORWRITEENABLE_ALPHA: DWORD = 1 << 3;
+ENUM!{enum D3DTEXTURESTAGESTATETYPE {
+ D3DTSS_COLOROP = 1,
+ D3DTSS_COLORARG1 = 2,
+ D3DTSS_COLORARG2 = 3,
+ D3DTSS_ALPHAOP = 4,
+ D3DTSS_ALPHAARG1 = 5,
+ D3DTSS_ALPHAARG2 = 6,
+ D3DTSS_BUMPENVMAT00 = 7,
+ D3DTSS_BUMPENVMAT01 = 8,
+ D3DTSS_BUMPENVMAT10 = 9,
+ D3DTSS_BUMPENVMAT11 = 10,
+ D3DTSS_TEXCOORDINDEX = 11,
+ D3DTSS_BUMPENVLSCALE = 22,
+ D3DTSS_BUMPENVLOFFSET = 23,
+ D3DTSS_TEXTURETRANSFORMFLAGS = 24,
+ D3DTSS_COLORARG0 = 26,
+ D3DTSS_ALPHAARG0 = 27,
+ D3DTSS_RESULTARG = 28,
+ D3DTSS_CONSTANT = 32,
+}}
+ENUM!{enum D3DSAMPLERSTATETYPE {
+ D3DSAMP_ADDRESSU = 1,
+ D3DSAMP_ADDRESSV = 2,
+ D3DSAMP_ADDRESSW = 3,
+ D3DSAMP_BORDERCOLOR = 4,
+ D3DSAMP_MAGFILTER = 5,
+ D3DSAMP_MINFILTER = 6,
+ D3DSAMP_MIPFILTER = 7,
+ D3DSAMP_MIPMAPLODBIAS = 8,
+ D3DSAMP_MAXMIPLEVEL = 9,
+ D3DSAMP_MAXANISOTROPY = 10,
+ D3DSAMP_SRGBTEXTURE = 11,
+ D3DSAMP_ELEMENTINDEX = 12,
+ D3DSAMP_DMAPOFFSET = 13,
+}}
+pub const D3DDMAPSAMPLER: DWORD = 256;
+pub const D3DVERTEXTEXTURESAMPLER0: DWORD = D3DDMAPSAMPLER + 1;
+pub const D3DVERTEXTEXTURESAMPLER1: DWORD = D3DDMAPSAMPLER + 2;
+pub const D3DVERTEXTEXTURESAMPLER2: DWORD = D3DDMAPSAMPLER + 3;
+pub const D3DVERTEXTEXTURESAMPLER3: DWORD = D3DDMAPSAMPLER + 4;
+pub const D3DTSS_TCI_PASSTHRU: DWORD = 0x00000000;
+pub const D3DTSS_TCI_CAMERASPACENORMAL: DWORD = 0x00010000;
+pub const D3DTSS_TCI_CAMERASPACEPOSITION: DWORD = 0x00020000;
+pub const D3DTSS_TCI_CAMERASPACEREFLECTIONVECTOR: DWORD = 0x00030000;
+pub const D3DTSS_TCI_SPHEREMAP: DWORD = 0x00040000;
+ENUM!{enum D3DTEXTUREOP {
+ D3DTOP_DISABLE = 1,
+ D3DTOP_SELECTARG1 = 2,
+ D3DTOP_SELECTARG2 = 3,
+ D3DTOP_MODULATE = 4,
+ D3DTOP_MODULATE2X = 5,
+ D3DTOP_MODULATE4X = 6,
+ D3DTOP_ADD = 7,
+ D3DTOP_ADDSIGNED = 8,
+ D3DTOP_ADDSIGNED2X = 9,
+ D3DTOP_SUBTRACT = 10,
+ D3DTOP_ADDSMOOTH = 11,
+ D3DTOP_BLENDDIFFUSEALPHA = 12,
+ D3DTOP_BLENDTEXTUREALPHA = 13,
+ D3DTOP_BLENDFACTORALPHA = 14,
+ D3DTOP_BLENDTEXTUREALPHAPM = 15,
+ D3DTOP_BLENDCURRENTALPHA = 16,
+ D3DTOP_PREMODULATE = 17,
+ D3DTOP_MODULATEALPHA_ADDCOLOR = 18,
+ D3DTOP_MODULATECOLOR_ADDALPHA = 19,
+ D3DTOP_MODULATEINVALPHA_ADDCOLOR = 20,
+ D3DTOP_MODULATEINVCOLOR_ADDALPHA = 21,
+ D3DTOP_BUMPENVMAP = 22,
+ D3DTOP_BUMPENVMAPLUMINANCE = 23,
+ D3DTOP_DOTPRODUCT3 = 24,
+ D3DTOP_MULTIPLYADD = 25,
+ D3DTOP_LERP = 26,
+}}
+pub const D3DTA_SELECTMASK: DWORD = 0x0000000f;
+pub const D3DTA_DIFFUSE: DWORD = 0x00000000;
+pub const D3DTA_CURRENT: DWORD = 0x00000001;
+pub const D3DTA_TEXTURE: DWORD = 0x00000002;
+pub const D3DTA_TFACTOR: DWORD = 0x00000003;
+pub const D3DTA_SPECULAR: DWORD = 0x00000004;
+pub const D3DTA_TEMP: DWORD = 0x00000005;
+pub const D3DTA_CONSTANT: DWORD = 0x00000006;
+pub const D3DTA_COMPLEMENT: DWORD = 0x00000010;
+pub const D3DTA_ALPHAREPLICATE: DWORD = 0x00000020;
+ENUM!{enum D3DTEXTUREFILTERTYPE {
+ D3DTEXF_NONE = 0,
+ D3DTEXF_POINT = 1,
+ D3DTEXF_LINEAR = 2,
+ D3DTEXF_ANISOTROPIC = 3,
+ D3DTEXF_PYRAMIDALQUAD = 6,
+ D3DTEXF_GAUSSIANQUAD = 7,
+ D3DTEXF_CONVOLUTIONMONO = 8,
+}}
+pub const D3DPV_DONOTCOPYDATA: DWORD = 1 << 0;
+pub const D3DFVF_RESERVED0: DWORD = 0x001;
+pub const D3DFVF_POSITION_MASK: DWORD = 0x400E;
+pub const D3DFVF_XYZ: DWORD = 0x002;
+pub const D3DFVF_XYZRHW: DWORD = 0x004;
+pub const D3DFVF_XYZB1: DWORD = 0x006;
+pub const D3DFVF_XYZB2: DWORD = 0x008;
+pub const D3DFVF_XYZB3: DWORD = 0x00a;
+pub const D3DFVF_XYZB4: DWORD = 0x00c;
+pub const D3DFVF_XYZB5: DWORD = 0x00e;
+pub const D3DFVF_XYZW: DWORD = 0x4002;
+pub const D3DFVF_NORMAL: DWORD = 0x010;
+pub const D3DFVF_PSIZE: DWORD = 0x020;
+pub const D3DFVF_DIFFUSE: DWORD = 0x040;
+pub const D3DFVF_SPECULAR: DWORD = 0x080;
+pub const D3DFVF_TEXCOUNT_MASK: DWORD = 0xf00;
+pub const D3DFVF_TEXCOUNT_SHIFT: DWORD = 8;
+pub const D3DFVF_TEX0: DWORD = 0x000;
+pub const D3DFVF_TEX1: DWORD = 0x100;
+pub const D3DFVF_TEX2: DWORD = 0x200;
+pub const D3DFVF_TEX3: DWORD = 0x300;
+pub const D3DFVF_TEX4: DWORD = 0x400;
+pub const D3DFVF_TEX5: DWORD = 0x500;
+pub const D3DFVF_TEX6: DWORD = 0x600;
+pub const D3DFVF_TEX7: DWORD = 0x700;
+pub const D3DFVF_TEX8: DWORD = 0x800;
+pub const D3DFVF_LASTBETA_UBYTE4: DWORD = 0x1000;
+pub const D3DFVF_LASTBETA_D3DCOLOR: DWORD = 0x8000;
+pub const D3DFVF_RESERVED2: DWORD = 0x6000;
+ENUM!{enum D3DDECLUSAGE {
+ D3DDECLUSAGE_POSITION = 0,
+ D3DDECLUSAGE_BLENDWEIGHT,
+ D3DDECLUSAGE_BLENDINDICES,
+ D3DDECLUSAGE_NORMAL,
+ D3DDECLUSAGE_PSIZE,
+ D3DDECLUSAGE_TEXCOORD,
+ D3DDECLUSAGE_TANGENT,
+ D3DDECLUSAGE_BINORMAL,
+ D3DDECLUSAGE_TESSFACTOR,
+ D3DDECLUSAGE_POSITIONT,
+ D3DDECLUSAGE_COLOR,
+ D3DDECLUSAGE_FOG,
+ D3DDECLUSAGE_DEPTH,
+ D3DDECLUSAGE_SAMPLE,
+}}
+pub const MAXD3DDECLUSAGE: D3DDECLUSAGE = D3DDECLUSAGE_SAMPLE;
+pub const MAXD3DDECLUSAGEINDEX: DWORD = 15;
+pub const MAXD3DDECLLENGTH: DWORD = 64;
+ENUM!{enum D3DDECLMETHOD {
+ D3DDECLMETHOD_DEFAULT = 0,
+ D3DDECLMETHOD_PARTIALU,
+ D3DDECLMETHOD_PARTIALV,
+ D3DDECLMETHOD_CROSSUV,
+ D3DDECLMETHOD_UV,
+ D3DDECLMETHOD_LOOKUP,
+ D3DDECLMETHOD_LOOKUPPRESAMPLED,
+}}
+pub const MAXD3DDECLMETHOD: D3DDECLMETHOD = D3DDECLMETHOD_LOOKUPPRESAMPLED;
+ENUM!{enum D3DDECLTYPE {
+ D3DDECLTYPE_FLOAT1 = 0,
+ D3DDECLTYPE_FLOAT2 = 1,
+ D3DDECLTYPE_FLOAT3 = 2,
+ D3DDECLTYPE_FLOAT4 = 3,
+ D3DDECLTYPE_D3DCOLOR = 4,
+ D3DDECLTYPE_UBYTE4 = 5,
+ D3DDECLTYPE_SHORT2 = 6,
+ D3DDECLTYPE_SHORT4 = 7,
+ D3DDECLTYPE_UBYTE4N = 8,
+ D3DDECLTYPE_SHORT2N = 9,
+ D3DDECLTYPE_SHORT4N = 10,
+ D3DDECLTYPE_USHORT2N = 11,
+ D3DDECLTYPE_USHORT4N = 12,
+ D3DDECLTYPE_UDEC3 = 13,
+ D3DDECLTYPE_DEC3N = 14,
+ D3DDECLTYPE_FLOAT16_2 = 15,
+ D3DDECLTYPE_FLOAT16_4 = 16,
+ D3DDECLTYPE_UNUSED = 17,
+}}
+pub const MAXD3DDECLTYPE: D3DDECLTYPE = D3DDECLTYPE_UNUSED;
+STRUCT!{struct D3DVERTEXELEMENT9 {
+ Stream: WORD,
+ Offset: WORD,
+ Type: BYTE,
+ Method: BYTE,
+ Usage: BYTE,
+ UsageIndex: BYTE,
+}}
+pub type LPD3DVERTEXELEMENT9 = *mut D3DVERTEXELEMENT9;
+pub const D3DDECL_END: D3DVERTEXELEMENT9 = D3DVERTEXELEMENT9 {
+ Stream: 0xFF,
+ Offset: 0,
+ Type: D3DDECLTYPE_UNUSED as BYTE,
+ Method: 0,
+ Usage: 0,
+ UsageIndex: 0,
+};
+pub const D3DDP_MAXTEXCOORD: DWORD = 8;
+pub const D3DSTREAMSOURCE_INDEXEDDATA: DWORD = 1 << 30;
+pub const D3DSTREAMSOURCE_INSTANCEDATA: DWORD = 2 << 30;
+pub const D3DSI_OPCODE_MASK: DWORD = 0x0000FFFF;
+pub const D3DSI_INSTLENGTH_MASK: DWORD = 0x0F000000;
+pub const D3DSI_INSTLENGTH_SHIFT: DWORD = 24;
+ENUM!{enum D3DSHADER_INSTRUCTION_OPCODE_TYPE {
+ D3DSIO_NOP = 0,
+ D3DSIO_MOV,
+ D3DSIO_ADD,
+ D3DSIO_SUB,
+ D3DSIO_MAD,
+ D3DSIO_MUL,
+ D3DSIO_RCP,
+ D3DSIO_RSQ,
+ D3DSIO_DP3,
+ D3DSIO_DP4,
+ D3DSIO_MIN,
+ D3DSIO_MAX,
+ D3DSIO_SLT,
+ D3DSIO_SGE,
+ D3DSIO_EXP,
+ D3DSIO_LOG,
+ D3DSIO_LIT,
+ D3DSIO_DST,
+ D3DSIO_LRP,
+ D3DSIO_FRC,
+ D3DSIO_M4x4,
+ D3DSIO_M4x3,
+ D3DSIO_M3x4,
+ D3DSIO_M3x3,
+ D3DSIO_M3x2,
+ D3DSIO_CALL,
+ D3DSIO_CALLNZ,
+ D3DSIO_LOOP,
+ D3DSIO_RET,
+ D3DSIO_ENDLOOP,
+ D3DSIO_LABEL,
+ D3DSIO_DCL,
+ D3DSIO_POW,
+ D3DSIO_CRS,
+ D3DSIO_SGN,
+ D3DSIO_ABS,
+ D3DSIO_NRM,
+ D3DSIO_SINCOS,
+ D3DSIO_REP,
+ D3DSIO_ENDREP,
+ D3DSIO_IF,
+ D3DSIO_IFC,
+ D3DSIO_ELSE,
+ D3DSIO_ENDIF,
+ D3DSIO_BREAK,
+ D3DSIO_BREAKC,
+ D3DSIO_MOVA,
+ D3DSIO_DEFB,
+ D3DSIO_DEFI,
+ D3DSIO_TEXCOORD = 64,
+ D3DSIO_TEXKILL,
+ D3DSIO_TEX,
+ D3DSIO_TEXBEM,
+ D3DSIO_TEXBEML,
+ D3DSIO_TEXREG2AR,
+ D3DSIO_TEXREG2GB,
+ D3DSIO_TEXM3x2PAD,
+ D3DSIO_TEXM3x2TEX,
+ D3DSIO_TEXM3x3PAD,
+ D3DSIO_TEXM3x3TEX,
+ D3DSIO_RESERVED0,
+ D3DSIO_TEXM3x3SPEC,
+ D3DSIO_TEXM3x3VSPEC,
+ D3DSIO_EXPP,
+ D3DSIO_LOGP,
+ D3DSIO_CND,
+ D3DSIO_DEF,
+ D3DSIO_TEXREG2RGB,
+ D3DSIO_TEXDP3TEX,
+ D3DSIO_TEXM3x2DEPTH,
+ D3DSIO_TEXDP3,
+ D3DSIO_TEXM3x3,
+ D3DSIO_TEXDEPTH,
+ D3DSIO_CMP,
+ D3DSIO_BEM,
+ D3DSIO_DP2ADD,
+ D3DSIO_DSX,
+ D3DSIO_DSY,
+ D3DSIO_TEXLDD,
+ D3DSIO_SETP,
+ D3DSIO_TEXLDL,
+ D3DSIO_BREAKP,
+ D3DSIO_PHASE = 0xFFFD,
+ D3DSIO_COMMENT = 0xFFFE,
+ D3DSIO_END = 0xFFFF,
+}}
+pub const D3DSI_COISSUE: DWORD = 0x40000000;
+pub const D3DSP_OPCODESPECIFICCONTROL_MASK: DWORD = 0x00ff0000;
+pub const D3DSP_OPCODESPECIFICCONTROL_SHIFT: DWORD = 16;
+pub const D3DSI_TEXLD_PROJECT: DWORD = 0x01 << D3DSP_OPCODESPECIFICCONTROL_SHIFT;
+pub const D3DSI_TEXLD_BIAS: DWORD = 0x02 << D3DSP_OPCODESPECIFICCONTROL_SHIFT;
+ENUM!{enum D3DSHADER_COMPARISON {
+ D3DSPC_RESERVED0 = 0,
+ D3DSPC_GT = 1,
+ D3DSPC_EQ = 2,
+ D3DSPC_GE = 3,
+ D3DSPC_LT = 4,
+ D3DSPC_NE = 5,
+ D3DSPC_LE = 6,
+ D3DSPC_RESERVED1 = 7,
+}}
+pub const D3DSHADER_COMPARISON_SHIFT: DWORD = D3DSP_OPCODESPECIFICCONTROL_SHIFT;
+pub const D3DSHADER_COMPARISON_MASK: DWORD = 0x7 << D3DSHADER_COMPARISON_SHIFT;
+pub const D3DSHADER_INSTRUCTION_PREDICATED: DWORD = 0x1 << 28;
+pub const D3DSP_DCL_USAGE_SHIFT: DWORD = 0;
+pub const D3DSP_DCL_USAGE_MASK: DWORD = 0x0000000f;
+pub const D3DSP_DCL_USAGEINDEX_SHIFT: DWORD = 16;
+pub const D3DSP_DCL_USAGEINDEX_MASK: DWORD = 0x000f0000;
+pub const D3DSP_TEXTURETYPE_SHIFT: DWORD = 27;
+pub const D3DSP_TEXTURETYPE_MASK: DWORD = 0x78000000;
+ENUM!{enum D3DSAMPLER_TEXTURE_TYPE {
+ D3DSTT_UNKNOWN = 0 << D3DSP_TEXTURETYPE_SHIFT,
+ D3DSTT_2D = 2 << D3DSP_TEXTURETYPE_SHIFT,
+ D3DSTT_CUBE = 3 << D3DSP_TEXTURETYPE_SHIFT,
+ D3DSTT_VOLUME = 4 << D3DSP_TEXTURETYPE_SHIFT,
+}}
+pub const D3DSP_REGNUM_MASK: DWORD = 0x000007FF;
+pub const D3DSP_WRITEMASK_0: DWORD = 0x00010000;
+pub const D3DSP_WRITEMASK_1: DWORD = 0x00020000;
+pub const D3DSP_WRITEMASK_2: DWORD = 0x00040000;
+pub const D3DSP_WRITEMASK_3: DWORD = 0x00080000;
+pub const D3DSP_WRITEMASK_ALL: DWORD = 0x000F0000;
+pub const D3DSP_DSTMOD_SHIFT: DWORD = 20;
+pub const D3DSP_DSTMOD_MASK: DWORD = 0x00F00000;
+pub const D3DSPDM_NONE: DWORD = 0 << D3DSP_DSTMOD_SHIFT;
+pub const D3DSPDM_SATURATE: DWORD = 1 << D3DSP_DSTMOD_SHIFT;
+pub const D3DSPDM_PARTIALPRECISION: DWORD = 2 << D3DSP_DSTMOD_SHIFT;
+pub const D3DSPDM_MSAMPCENTROID: DWORD = 4 << D3DSP_DSTMOD_SHIFT;
+pub const D3DSP_DSTSHIFT_SHIFT: DWORD = 24;
+pub const D3DSP_DSTSHIFT_MASK: DWORD = 0x0F000000;
+pub const D3DSP_REGTYPE_SHIFT: DWORD = 28;
+pub const D3DSP_REGTYPE_SHIFT2: DWORD = 8;
+pub const D3DSP_REGTYPE_MASK: DWORD = 0x70000000;
+pub const D3DSP_REGTYPE_MASK2: DWORD = 0x00001800;
+ENUM!{enum D3DSHADER_PARAM_REGISTER_TYPE {
+ D3DSPR_TEMP = 0,
+ D3DSPR_INPUT = 1,
+ D3DSPR_CONST = 2,
+ D3DSPR_ADDR = 3,
+ D3DSPR_TEXTURE = 3,
+ D3DSPR_RASTOUT = 4,
+ D3DSPR_ATTROUT = 5,
+ D3DSPR_TEXCRDOUT = 6,
+ D3DSPR_OUTPUT = 6,
+ D3DSPR_CONSTINT = 7,
+ D3DSPR_COLOROUT = 8,
+ D3DSPR_DEPTHOUT = 9,
+ D3DSPR_SAMPLER = 10,
+ D3DSPR_CONST2 = 11,
+ D3DSPR_CONST3 = 12,
+ D3DSPR_CONST4 = 13,
+ D3DSPR_CONSTBOOL = 14,
+ D3DSPR_LOOP = 15,
+ D3DSPR_TEMPFLOAT16 = 16,
+ D3DSPR_MISCTYPE = 17,
+ D3DSPR_LABEL = 18,
+ D3DSPR_PREDICATE = 19,
+}}
+ENUM!{enum D3DSHADER_MISCTYPE_OFFSETS {
+ D3DSMO_POSITION = 0,
+ D3DSMO_FACE = 1,
+}}
+ENUM!{enum D3DVS_RASTOUT_OFFSETS {
+ D3DSRO_POSITION = 0,
+ D3DSRO_FOG,
+ D3DSRO_POINT_SIZE,
+}}
+pub const D3DVS_ADDRESSMODE_SHIFT: DWORD = 13;
+pub const D3DVS_ADDRESSMODE_MASK: DWORD = 1 << D3DVS_ADDRESSMODE_SHIFT;
+ENUM!{enum D3DVS_ADDRESSMODE_TYPE {
+ D3DVS_ADDRMODE_ABSOLUTE = 0 << D3DVS_ADDRESSMODE_SHIFT,
+ D3DVS_ADDRMODE_RELATIVE = 1 << D3DVS_ADDRESSMODE_SHIFT,
+}}
+pub const D3DSHADER_ADDRESSMODE_SHIFT: DWORD = 13;
+pub const D3DSHADER_ADDRESSMODE_MASK: DWORD = 1 << D3DSHADER_ADDRESSMODE_SHIFT;
+ENUM!{enum D3DSHADER_ADDRESSMODE_TYPE {
+ D3DSHADER_ADDRMODE_ABSOLUTE = 0 << D3DSHADER_ADDRESSMODE_SHIFT,
+ D3DSHADER_ADDRMODE_RELATIVE = 1 << D3DSHADER_ADDRESSMODE_SHIFT,
+}}
+pub const D3DVS_SWIZZLE_SHIFT: DWORD = 16;
+pub const D3DVS_SWIZZLE_MASK: DWORD = 0x00FF0000;
+pub const D3DVS_X_X: DWORD = 0 << D3DVS_SWIZZLE_SHIFT;
+pub const D3DVS_X_Y: DWORD = 1 << D3DVS_SWIZZLE_SHIFT;
+pub const D3DVS_X_Z: DWORD = 2 << D3DVS_SWIZZLE_SHIFT;
+pub const D3DVS_X_W: DWORD = 3 << D3DVS_SWIZZLE_SHIFT;
+pub const D3DVS_Y_X: DWORD = 0 << (D3DVS_SWIZZLE_SHIFT + 2);
+pub const D3DVS_Y_Y: DWORD = 1 << (D3DVS_SWIZZLE_SHIFT + 2);
+pub const D3DVS_Y_Z: DWORD = 2 << (D3DVS_SWIZZLE_SHIFT + 2);
+pub const D3DVS_Y_W: DWORD = 3 << (D3DVS_SWIZZLE_SHIFT + 2);
+pub const D3DVS_Z_X: DWORD = 0 << (D3DVS_SWIZZLE_SHIFT + 4);
+pub const D3DVS_Z_Y: DWORD = 1 << (D3DVS_SWIZZLE_SHIFT + 4);
+pub const D3DVS_Z_Z: DWORD = 2 << (D3DVS_SWIZZLE_SHIFT + 4);
+pub const D3DVS_Z_W: DWORD = 3 << (D3DVS_SWIZZLE_SHIFT + 4);
+pub const D3DVS_W_X: DWORD = 0 << (D3DVS_SWIZZLE_SHIFT + 6);
+pub const D3DVS_W_Y: DWORD = 1 << (D3DVS_SWIZZLE_SHIFT + 6);
+pub const D3DVS_W_Z: DWORD = 2 << (D3DVS_SWIZZLE_SHIFT + 6);
+pub const D3DVS_W_W: DWORD = 3 << (D3DVS_SWIZZLE_SHIFT + 6);
+pub const D3DVS_NOSWIZZLE: DWORD = D3DVS_X_X | D3DVS_Y_Y | D3DVS_Z_Z | D3DVS_W_W;
+pub const D3DSP_SWIZZLE_SHIFT: DWORD = 16;
+pub const D3DSP_SWIZZLE_MASK: DWORD = 0x00FF0000;
+pub const D3DSP_NOSWIZZLE: DWORD = (0 << (D3DSP_SWIZZLE_SHIFT + 0))
+ | (1 << (D3DSP_SWIZZLE_SHIFT + 2)) | (2 << (D3DSP_SWIZZLE_SHIFT + 4))
+ | (3 << (D3DSP_SWIZZLE_SHIFT + 6));
+pub const D3DSP_REPLICATERED: DWORD = (0 << (D3DSP_SWIZZLE_SHIFT + 0))
+ | (0 << (D3DSP_SWIZZLE_SHIFT + 2)) | (0 << (D3DSP_SWIZZLE_SHIFT + 4))
+ | (0 << (D3DSP_SWIZZLE_SHIFT + 6));
+pub const D3DSP_REPLICATEGREEN: DWORD = (1 << (D3DSP_SWIZZLE_SHIFT + 0))
+ | (1 << (D3DSP_SWIZZLE_SHIFT + 2)) | (1 << (D3DSP_SWIZZLE_SHIFT + 4))
+ | (1 << (D3DSP_SWIZZLE_SHIFT + 6));
+pub const D3DSP_REPLICATEBLUE: DWORD = (2 << (D3DSP_SWIZZLE_SHIFT + 0))
+ | (2 << (D3DSP_SWIZZLE_SHIFT + 2)) | (2 << (D3DSP_SWIZZLE_SHIFT + 4))
+ | (2 << (D3DSP_SWIZZLE_SHIFT + 6));
+pub const D3DSP_REPLICATEALPHA: DWORD = (3 << (D3DSP_SWIZZLE_SHIFT + 0))
+ | (3 << (D3DSP_SWIZZLE_SHIFT + 2)) | (3 << (D3DSP_SWIZZLE_SHIFT + 4))
+ | (3 << (D3DSP_SWIZZLE_SHIFT + 6));
+pub const D3DSP_SRCMOD_SHIFT: DWORD = 24;
+pub const D3DSP_SRCMOD_MASK: DWORD = 0x0F000000;
+ENUM!{enum D3DSHADER_PARAM_SRCMOD_TYPE {
+ D3DSPSM_NONE = 0 << D3DSP_SRCMOD_SHIFT,
+ D3DSPSM_NEG = 1 << D3DSP_SRCMOD_SHIFT,
+ D3DSPSM_BIAS = 2 << D3DSP_SRCMOD_SHIFT,
+ D3DSPSM_BIASNEG = 3 << D3DSP_SRCMOD_SHIFT,
+ D3DSPSM_SIGN = 4 << D3DSP_SRCMOD_SHIFT,
+ D3DSPSM_SIGNNEG = 5 << D3DSP_SRCMOD_SHIFT,
+ D3DSPSM_COMP = 6 << D3DSP_SRCMOD_SHIFT,
+ D3DSPSM_X2 = 7 << D3DSP_SRCMOD_SHIFT,
+ D3DSPSM_X2NEG = 8 << D3DSP_SRCMOD_SHIFT,
+ D3DSPSM_DZ = 9 << D3DSP_SRCMOD_SHIFT,
+ D3DSPSM_DW = 10 << D3DSP_SRCMOD_SHIFT,
+ D3DSPSM_ABS = 11 << D3DSP_SRCMOD_SHIFT,
+ D3DSPSM_ABSNEG = 12 << D3DSP_SRCMOD_SHIFT,
+ D3DSPSM_NOT = 13 << D3DSP_SRCMOD_SHIFT,
+}}
+pub const D3DSP_MIN_PRECISION_SHIFT: DWORD = 14;
+pub const D3DSP_MIN_PRECISION_MASK: DWORD = 0x0000C000;
+ENUM!{enum D3DSHADER_MIN_PRECISION {
+ D3DMP_DEFAULT = 0,
+ D3DMP_16 = 1,
+ D3DMP_2_8 = 2,
+}}
+pub const D3DSI_COMMENTSIZE_SHIFT: DWORD = 16;
+pub const D3DSI_COMMENTSIZE_MASK: DWORD = 0x7FFF0000;
+pub const D3DPS_END: DWORD = 0x0000FFFF;
+pub const D3DVS_END: DWORD = 0x0000FFFF;
+ENUM!{enum D3DBASISTYPE {
+ D3DBASIS_BEZIER = 0,
+ D3DBASIS_BSPLINE = 1,
+ D3DBASIS_CATMULL_ROM = 2,
+}}
+ENUM!{enum D3DDEGREETYPE {
+ D3DDEGREE_LINEAR = 1,
+ D3DDEGREE_QUADRATIC = 2,
+ D3DDEGREE_CUBIC = 3,
+ D3DDEGREE_QUINTIC = 5,
+}}
+ENUM!{enum D3DPATCHEDGESTYLE {
+ D3DPATCHEDGE_DISCRETE = 0,
+ D3DPATCHEDGE_CONTINUOUS = 1,
+}}
+ENUM!{enum D3DSTATEBLOCKTYPE {
+ D3DSBT_ALL = 1,
+ D3DSBT_PIXELSTATE = 2,
+ D3DSBT_VERTEXSTATE = 3,
+}}
+ENUM!{enum D3DVERTEXBLENDFLAGS {
+ D3DVBF_DISABLE = 0,
+ D3DVBF_1WEIGHTS = 1,
+ D3DVBF_2WEIGHTS = 2,
+ D3DVBF_3WEIGHTS = 3,
+ D3DVBF_TWEENING = 255,
+ D3DVBF_0WEIGHTS = 256,
+}}
+ENUM!{enum D3DTEXTURETRANSFORMFLAGS {
+ D3DTTFF_DISABLE = 0,
+ D3DTTFF_COUNT1 = 1,
+ D3DTTFF_COUNT2 = 2,
+ D3DTTFF_COUNT3 = 3,
+ D3DTTFF_COUNT4 = 4,
+ D3DTTFF_PROJECTED = 256,
+}}
+pub const D3DFVF_TEXTUREFORMAT2: DWORD = 0;
+pub const D3DFVF_TEXTUREFORMAT1: DWORD = 3;
+pub const D3DFVF_TEXTUREFORMAT3: DWORD = 1;
+pub const D3DFVF_TEXTUREFORMAT4: DWORD = 2;
+ENUM!{enum D3DDEVTYPE {
+ D3DDEVTYPE_HAL = 1,
+ D3DDEVTYPE_REF = 2,
+ D3DDEVTYPE_SW = 3,
+ D3DDEVTYPE_NULLREF = 4,
+}}
+ENUM!{enum D3DMULTISAMPLE_TYPE {
+ D3DMULTISAMPLE_NONE = 0,
+ D3DMULTISAMPLE_NONMASKABLE = 1,
+ D3DMULTISAMPLE_2_SAMPLES = 2,
+ D3DMULTISAMPLE_3_SAMPLES = 3,
+ D3DMULTISAMPLE_4_SAMPLES = 4,
+ D3DMULTISAMPLE_5_SAMPLES = 5,
+ D3DMULTISAMPLE_6_SAMPLES = 6,
+ D3DMULTISAMPLE_7_SAMPLES = 7,
+ D3DMULTISAMPLE_8_SAMPLES = 8,
+ D3DMULTISAMPLE_9_SAMPLES = 9,
+ D3DMULTISAMPLE_10_SAMPLES = 10,
+ D3DMULTISAMPLE_11_SAMPLES = 11,
+ D3DMULTISAMPLE_12_SAMPLES = 12,
+ D3DMULTISAMPLE_13_SAMPLES = 13,
+ D3DMULTISAMPLE_14_SAMPLES = 14,
+ D3DMULTISAMPLE_15_SAMPLES = 15,
+ D3DMULTISAMPLE_16_SAMPLES = 16,
+}}
+ENUM!{enum D3DFORMAT {
+ D3DFMT_UNKNOWN = 0,
+ D3DFMT_R8G8B8 = 20,
+ D3DFMT_A8R8G8B8 = 21,
+ D3DFMT_X8R8G8B8 = 22,
+ D3DFMT_R5G6B5 = 23,
+ D3DFMT_X1R5G5B5 = 24,
+ D3DFMT_A1R5G5B5 = 25,
+ D3DFMT_A4R4G4B4 = 26,
+ D3DFMT_R3G3B2 = 27,
+ D3DFMT_A8 = 28,
+ D3DFMT_A8R3G3B2 = 29,
+ D3DFMT_X4R4G4B4 = 30,
+ D3DFMT_A2B10G10R10 = 31,
+ D3DFMT_A8B8G8R8 = 32,
+ D3DFMT_X8B8G8R8 = 33,
+ D3DFMT_G16R16 = 34,
+ D3DFMT_A2R10G10B10 = 35,
+ D3DFMT_A16B16G16R16 = 36,
+ D3DFMT_A8P8 = 40,
+ D3DFMT_P8 = 41,
+ D3DFMT_L8 = 50,
+ D3DFMT_A8L8 = 51,
+ D3DFMT_A4L4 = 52,
+ D3DFMT_V8U8 = 60,
+ D3DFMT_L6V5U5 = 61,
+ D3DFMT_X8L8V8U8 = 62,
+ D3DFMT_Q8W8V8U8 = 63,
+ D3DFMT_V16U16 = 64,
+ D3DFMT_A2W10V10U10 = 67,
+ D3DFMT_UYVY = MAKEFOURCC!(b'U', b'Y', b'V', b'Y'),
+ D3DFMT_R8G8_B8G8 = MAKEFOURCC!(b'R', b'G', b'B', b'G'),
+ D3DFMT_YUY2 = MAKEFOURCC!(b'Y', b'U', b'Y', b'2'),
+ D3DFMT_G8R8_G8B8 = MAKEFOURCC!(b'G', b'R', b'G', b'B'),
+ D3DFMT_DXT1 = MAKEFOURCC!(b'D', b'X', b'T', b'1'),
+ D3DFMT_DXT2 = MAKEFOURCC!(b'D', b'X', b'T', b'2'),
+ D3DFMT_DXT3 = MAKEFOURCC!(b'D', b'X', b'T', b'3'),
+ D3DFMT_DXT4 = MAKEFOURCC!(b'D', b'X', b'T', b'4'),
+ D3DFMT_DXT5 = MAKEFOURCC!(b'D', b'X', b'T', b'5'),
+ D3DFMT_D16_LOCKABLE = 70,
+ D3DFMT_D32 = 71,
+ D3DFMT_D15S1 = 73,
+ D3DFMT_D24S8 = 75,
+ D3DFMT_D24X8 = 77,
+ D3DFMT_D24X4S4 = 79,
+ D3DFMT_D16 = 80,
+ D3DFMT_D32F_LOCKABLE = 82,
+ D3DFMT_D24FS8 = 83,
+ D3DFMT_D32_LOCKABLE = 84,
+ D3DFMT_S8_LOCKABLE = 85,
+ D3DFMT_L16 = 81,
+ D3DFMT_VERTEXDATA = 100,
+ D3DFMT_INDEX16 = 101,
+ D3DFMT_INDEX32 = 102,
+ D3DFMT_Q16W16V16U16 = 110,
+ D3DFMT_MULTI2_ARGB8 = MAKEFOURCC!(b'M', b'E', b'T', b'1'),
+ D3DFMT_R16F = 111,
+ D3DFMT_G16R16F = 112,
+ D3DFMT_A16B16G16R16F = 113,
+ D3DFMT_R32F = 114,
+ D3DFMT_G32R32F = 115,
+ D3DFMT_A32B32G32R32F = 116,
+ D3DFMT_CxV8U8 = 117,
+ D3DFMT_A1 = 118,
+ D3DFMT_A2B10G10R10_XR_BIAS = 119,
+ D3DFMT_BINARYBUFFER = 199,
+}}
+STRUCT!{struct D3DDISPLAYMODE {
+ Width: UINT,
+ Height: UINT,
+ RefreshRate: UINT,
+ Format: D3DFORMAT,
+}}
+STRUCT!{struct D3DDEVICE_CREATION_PARAMETERS {
+ AdapterOrdinal: UINT,
+ DeviceType: D3DDEVTYPE,
+ hFocusWindow: HWND,
+ BehaviorFlags: DWORD,
+}}
+ENUM!{enum D3DSWAPEFFECT {
+ D3DSWAPEFFECT_DISCARD = 1,
+ D3DSWAPEFFECT_FLIP = 2,
+ D3DSWAPEFFECT_COPY = 3,
+ D3DSWAPEFFECT_OVERLAY = 4,
+ D3DSWAPEFFECT_FLIPEX = 5,
+}}
+ENUM!{enum D3DPOOL {
+ D3DPOOL_DEFAULT = 0,
+ D3DPOOL_MANAGED = 1,
+ D3DPOOL_SYSTEMMEM = 2,
+ D3DPOOL_SCRATCH = 3,
+}}
+pub const D3DPRESENT_RATE_DEFAULT: DWORD = 0x00000000;
+STRUCT!{struct D3DPRESENT_PARAMETERS {
+ BackBufferWidth: UINT,
+ BackBufferHeight: UINT,
+ BackBufferFormat: D3DFORMAT,
+ BackBufferCount: UINT,
+ MultiSampleType: D3DMULTISAMPLE_TYPE,
+ MultiSampleQuality: DWORD,
+ SwapEffect: D3DSWAPEFFECT,
+ hDeviceWindow: HWND,
+ Windowed: BOOL,
+ EnableAutoDepthStencil: BOOL,
+ AutoDepthStencilFormat: D3DFORMAT,
+ Flags: DWORD,
+ FullScreen_RefreshRateInHz: UINT,
+ PresentationInterval: UINT,
+}}
+pub const D3DPRESENTFLAG_LOCKABLE_BACKBUFFER: DWORD = 0x00000001;
+pub const D3DPRESENTFLAG_DISCARD_DEPTHSTENCIL: DWORD = 0x00000002;
+pub const D3DPRESENTFLAG_DEVICECLIP: DWORD = 0x00000004;
+pub const D3DPRESENTFLAG_VIDEO: DWORD = 0x00000010;
+pub const D3DPRESENTFLAG_NOAUTOROTATE: DWORD = 0x00000020;
+pub const D3DPRESENTFLAG_UNPRUNEDMODE: DWORD = 0x00000040;
+pub const D3DPRESENTFLAG_OVERLAY_LIMITEDRGB: DWORD = 0x00000080;
+pub const D3DPRESENTFLAG_OVERLAY_YCbCr_BT709: DWORD = 0x00000100;
+pub const D3DPRESENTFLAG_OVERLAY_YCbCr_xvYCC: DWORD = 0x00000200;
+pub const D3DPRESENTFLAG_RESTRICTED_CONTENT: DWORD = 0x00000400;
+pub const D3DPRESENTFLAG_RESTRICT_SHARED_RESOURCE_DRIVER: DWORD = 0x00000800;
+STRUCT!{struct D3DGAMMARAMP {
+ red: [WORD; 256],
+ green: [WORD; 256],
+ blue: [WORD; 256],
+}}
+ENUM!{enum D3DBACKBUFFER_TYPE {
+ D3DBACKBUFFER_TYPE_MONO = 0,
+ D3DBACKBUFFER_TYPE_LEFT = 1,
+ D3DBACKBUFFER_TYPE_RIGHT = 2,
+}}
+ENUM!{enum D3DRESOURCETYPE {
+ D3DRTYPE_SURFACE = 1,
+ D3DRTYPE_VOLUME = 2,
+ D3DRTYPE_TEXTURE = 3,
+ D3DRTYPE_VOLUMETEXTURE = 4,
+ D3DRTYPE_CUBETEXTURE = 5,
+ D3DRTYPE_VERTEXBUFFER = 6,
+ D3DRTYPE_INDEXBUFFER = 7,
+}}
+pub const D3DUSAGE_RENDERTARGET: DWORD = 0x00000001;
+pub const D3DUSAGE_DEPTHSTENCIL: DWORD = 0x00000002;
+pub const D3DUSAGE_DYNAMIC: DWORD = 0x00000200;
+pub const D3DUSAGE_NONSECURE: DWORD = 0x00800000;
+pub const D3DUSAGE_AUTOGENMIPMAP: DWORD = 0x00000400;
+pub const D3DUSAGE_DMAP: DWORD = 0x00004000;
+pub const D3DUSAGE_QUERY_LEGACYBUMPMAP: DWORD = 0x00008000;
+pub const D3DUSAGE_QUERY_SRGBREAD: DWORD = 0x00010000;
+pub const D3DUSAGE_QUERY_FILTER: DWORD = 0x00020000;
+pub const D3DUSAGE_QUERY_SRGBWRITE: DWORD = 0x00040000;
+pub const D3DUSAGE_QUERY_POSTPIXELSHADER_BLENDING: DWORD = 0x00080000;
+pub const D3DUSAGE_QUERY_VERTEXTEXTURE: DWORD = 0x00100000;
+pub const D3DUSAGE_QUERY_WRAPANDMIP: DWORD = 0x00200000;
+pub const D3DUSAGE_WRITEONLY: DWORD = 0x00000008;
+pub const D3DUSAGE_SOFTWAREPROCESSING: DWORD = 0x00000010;
+pub const D3DUSAGE_DONOTCLIP: DWORD = 0x00000020;
+pub const D3DUSAGE_POINTS: DWORD = 0x00000040;
+pub const D3DUSAGE_RTPATCHES: DWORD = 0x00000080;
+pub const D3DUSAGE_NPATCHES: DWORD = 0x00000100;
+pub const D3DUSAGE_TEXTAPI: DWORD = 0x10000000;
+pub const D3DUSAGE_RESTRICTED_CONTENT: DWORD = 0x00000800;
+pub const D3DUSAGE_RESTRICT_SHARED_RESOURCE: DWORD = 0x00002000;
+pub const D3DUSAGE_RESTRICT_SHARED_RESOURCE_DRIVER: DWORD = 0x00001000;
+ENUM!{enum D3DCUBEMAP_FACES {
+ D3DCUBEMAP_FACE_POSITIVE_X = 0,
+ D3DCUBEMAP_FACE_NEGATIVE_X = 1,
+ D3DCUBEMAP_FACE_POSITIVE_Y = 2,
+ D3DCUBEMAP_FACE_NEGATIVE_Y = 3,
+ D3DCUBEMAP_FACE_POSITIVE_Z = 4,
+ D3DCUBEMAP_FACE_NEGATIVE_Z = 5,
+}}
+pub const D3DLOCK_READONLY: DWORD = 0x00000010;
+pub const D3DLOCK_DISCARD: DWORD = 0x00002000;
+pub const D3DLOCK_NOOVERWRITE: DWORD = 0x00001000;
+pub const D3DLOCK_NOSYSLOCK: DWORD = 0x00000800;
+pub const D3DLOCK_DONOTWAIT: DWORD = 0x00004000;
+pub const D3DLOCK_NO_DIRTY_UPDATE: DWORD = 0x00008000;
+STRUCT!{struct D3DVERTEXBUFFER_DESC {
+ Format: D3DFORMAT,
+ Type: D3DRESOURCETYPE,
+ Usage: DWORD,
+ Pool: D3DPOOL,
+ Size: UINT,
+ FVF: DWORD,
+}}
+STRUCT!{struct D3DINDEXBUFFER_DESC {
+ Format: D3DFORMAT,
+ Type: D3DRESOURCETYPE,
+ Usage: DWORD,
+ Pool: D3DPOOL,
+ Size: UINT,
+}}
+STRUCT!{struct D3DSURFACE_DESC {
+ Format: D3DFORMAT,
+ Type: D3DRESOURCETYPE,
+ Usage: DWORD,
+ Pool: D3DPOOL,
+ MultiSampleType: D3DMULTISAMPLE_TYPE,
+ MultiSampleQuality: DWORD,
+ Width: UINT,
+ Height: UINT,
+}}
+STRUCT!{struct D3DVOLUME_DESC {
+ Format: D3DFORMAT,
+ Type: D3DRESOURCETYPE,
+ Usage: DWORD,
+ Pool: D3DPOOL,
+ Width: UINT,
+ Height: UINT,
+ Depth: UINT,
+}}
+STRUCT!{struct D3DLOCKED_RECT {
+ Pitch: INT,
+ pBits: *mut c_void,
+}}
+STRUCT!{struct D3DBOX {
+ Left: UINT,
+ Top: UINT,
+ Right: UINT,
+ Bottom: UINT,
+ Front: UINT,
+ Back: UINT,
+}}
+STRUCT!{struct D3DLOCKED_BOX {
+ RowPitch: INT,
+ SlicePitch: INT,
+ pBits: *mut c_void,
+}}
+STRUCT!{struct D3DRANGE {
+ Offset: UINT,
+ Size: UINT,
+}}
+STRUCT!{struct D3DRECTPATCH_INFO {
+ StartVertexOffsetWidth: UINT,
+ StartVertexOffsetHeight: UINT,
+ Width: UINT,
+ Height: UINT,
+ Stride: UINT,
+ Basis: D3DBASISTYPE,
+ Degree: D3DDEGREETYPE,
+}}
+STRUCT!{struct D3DTRIPATCH_INFO {
+ StartVertexOffset: UINT,
+ NumVertices: UINT,
+ Basis: D3DBASISTYPE,
+ Degree: D3DDEGREETYPE,
+}}
+pub const MAX_DEVICE_IDENTIFIER_STRING: usize = 512;
+// FIXME packed(4)
+STRUCT!{#[cfg_attr(target_arch = "x86", repr(packed))] struct D3DADAPTER_IDENTIFIER9 {
+ Driver: [c_char; MAX_DEVICE_IDENTIFIER_STRING],
+ Description: [c_char; MAX_DEVICE_IDENTIFIER_STRING],
+ DeviceName: [c_char; 32],
+ DriverVersion: LARGE_INTEGER,
+ VendorId: DWORD,
+ DeviceId: DWORD,
+ SubSysId: DWORD,
+ Revision: DWORD,
+ DeviceIdentifier: GUID,
+ WHQLLevel: DWORD,
+}}
+STRUCT!{struct D3DRASTER_STATUS {
+ InVBlank: BOOL,
+ ScanLine: UINT,
+}}
+ENUM!{enum D3DDEBUGMONITORTOKENS {
+ D3DDMT_ENABLE = 0,
+ D3DDMT_DISABLE = 1,
+}}
+ENUM!{enum D3DQUERYTYPE {
+ D3DQUERYTYPE_VCACHE = 4,
+ D3DQUERYTYPE_RESOURCEMANAGER = 5,
+ D3DQUERYTYPE_VERTEXSTATS = 6,
+ D3DQUERYTYPE_EVENT = 8,
+ D3DQUERYTYPE_OCCLUSION = 9,
+ D3DQUERYTYPE_TIMESTAMP = 10,
+ D3DQUERYTYPE_TIMESTAMPDISJOINT = 11,
+ D3DQUERYTYPE_TIMESTAMPFREQ = 12,
+ D3DQUERYTYPE_PIPELINETIMINGS = 13,
+ D3DQUERYTYPE_INTERFACETIMINGS = 14,
+ D3DQUERYTYPE_VERTEXTIMINGS = 15,
+ D3DQUERYTYPE_PIXELTIMINGS = 16,
+ D3DQUERYTYPE_BANDWIDTHTIMINGS = 17,
+ D3DQUERYTYPE_CACHEUTILIZATION = 18,
+ D3DQUERYTYPE_MEMORYPRESSURE = 19,
+}}
+pub const D3DISSUE_END: DWORD = 1 << 0;
+pub const D3DISSUE_BEGIN: DWORD = 1 << 1;
+pub const D3DGETDATA_FLUSH: DWORD = 1 << 0;
+STRUCT!{struct D3DRESOURCESTATS {
+ bThrashing: BOOL,
+ ApproxBytesDownloaded: DWORD,
+ NumEvicts: DWORD,
+ NumVidCreates: DWORD,
+ LastPri: DWORD,
+ NumUsed: DWORD,
+ NumUsedInVidMem: DWORD,
+ WorkingSet: DWORD,
+ WorkingSetBytes: DWORD,
+ TotalManaged: DWORD,
+ TotalBytes: DWORD,
+}}
+pub const D3DRTYPECOUNT: usize = D3DRTYPE_INDEXBUFFER as usize + 1;
+STRUCT!{struct D3DDEVINFO_RESOURCEMANAGER {
+ stats: [D3DRESOURCESTATS; D3DRTYPECOUNT],
+}}
+pub type LPD3DDEVINFO_RESOURCEMANAGER = *mut D3DDEVINFO_RESOURCEMANAGER;
+STRUCT!{struct D3DDEVINFO_D3DVERTEXSTATS {
+ NumRenderedTriangles: DWORD,
+ NumExtraClippingTriangles: DWORD,
+}}
+pub type LPD3DDEVINFO_D3DVERTEXSTATS = *mut D3DDEVINFO_D3DVERTEXSTATS;
+STRUCT!{struct D3DDEVINFO_VCACHE {
+ Pattern: DWORD,
+ OptMethod: DWORD,
+ CacheSize: DWORD,
+ MagicNumber: DWORD,
+}}
+pub type LPD3DDEVINFO_VCACHE = *mut D3DDEVINFO_VCACHE;
+STRUCT!{struct D3DDEVINFO_D3D9PIPELINETIMINGS {
+ VertexProcessingTimePercent: FLOAT,
+ PixelProcessingTimePercent: FLOAT,
+ OtherGPUProcessingTimePercent: FLOAT,
+ GPUIdleTimePercent: FLOAT,
+}}
+STRUCT!{struct D3DDEVINFO_D3D9INTERFACETIMINGS {
+ WaitingForGPUToUseApplicationResourceTimePercent: FLOAT,
+ WaitingForGPUToAcceptMoreCommandsTimePercent: FLOAT,
+ WaitingForGPUToStayWithinLatencyTimePercent: FLOAT,
+ WaitingForGPUExclusiveResourceTimePercent: FLOAT,
+ WaitingForGPUOtherTimePercent: FLOAT,
+}}
+STRUCT!{struct D3DDEVINFO_D3D9STAGETIMINGS {
+ MemoryProcessingPercent: FLOAT,
+ ComputationProcessingPercent: FLOAT,
+}}
+STRUCT!{struct D3DDEVINFO_D3D9BANDWIDTHTIMINGS {
+ MaxBandwidthUtilized: FLOAT,
+ FrontEndUploadMemoryUtilizedPercent: FLOAT,
+ VertexRateUtilizedPercent: FLOAT,
+ TriangleSetupRateUtilizedPercent: FLOAT,
+ FillRateUtilizedPercent: FLOAT,
+}}
+STRUCT!{struct D3DDEVINFO_D3D9CACHEUTILIZATION {
+ TextureCacheHitRate: FLOAT,
+ PostTransformVertexCacheHitRate: FLOAT,
+}}
+// FIXME packed(4)
+STRUCT!{#[cfg_attr(target_arch = "x86", repr(packed))] struct D3DMEMORYPRESSURE {
+ BytesEvictedFromProcess: UINT64,
+ SizeOfInefficientAllocation: UINT64,
+ LevelOfEfficiency: DWORD,
+}}
+ENUM!{enum D3DCOMPOSERECTSOP {
+ D3DCOMPOSERECTS_COPY = 1,
+ D3DCOMPOSERECTS_OR = 2,
+ D3DCOMPOSERECTS_AND = 3,
+ D3DCOMPOSERECTS_NEG = 4,
+}}
+STRUCT!{struct D3DCOMPOSERECTDESC {
+ X: USHORT,
+ Y: USHORT,
+ Width: USHORT,
+ Height: USHORT,
+}}
+STRUCT!{struct D3DCOMPOSERECTDESTINATION {
+ SrcRectIndex: USHORT,
+ Reserved: USHORT,
+ X: SHORT,
+ Y: SHORT,
+}}
+pub const D3DCOMPOSERECTS_MAXNUMRECTS: DWORD = 0xFFFF;
+pub const D3DCONVOLUTIONMONO_MAXWIDTH: DWORD = 7;
+pub const D3DCONVOLUTIONMONO_MAXHEIGHT: DWORD = D3DCONVOLUTIONMONO_MAXWIDTH;
+pub const D3DFMT_A1_SURFACE_MAXWIDTH: DWORD = 8192;
+pub const D3DFMT_A1_SURFACE_MAXHEIGHT: DWORD = 2048;
+// FIXME packed(4)
+STRUCT!{#[cfg_attr(target_arch = "x86", repr(packed))] struct D3DPRESENTSTATS {
+ PresentCount: UINT,
+ PresentRefreshCount: UINT,
+ SyncRefreshCount: UINT,
+ SyncQPCTime: LARGE_INTEGER,
+ SyncGPUTime: LARGE_INTEGER,
+}}
+ENUM!{enum D3DSCANLINEORDERING {
+ D3DSCANLINEORDERING_UNKNOWN = 0,
+ D3DSCANLINEORDERING_PROGRESSIVE = 1,
+ D3DSCANLINEORDERING_INTERLACED = 2,
+}}
+STRUCT!{struct D3DDISPLAYMODEEX {
+ Size: UINT,
+ Width: UINT,
+ Height: UINT,
+ RefreshRate: UINT,
+ Format: D3DFORMAT,
+ ScanLineOrdering: D3DSCANLINEORDERING,
+}}
+STRUCT!{struct D3DDISPLAYMODEFILTER {
+ Size: UINT,
+ Format: D3DFORMAT,
+ ScanLineOrdering: D3DSCANLINEORDERING,
+}}
+ENUM!{enum D3DDISPLAYROTATION {
+ D3DDISPLAYROTATION_IDENTITY = 1,
+ D3DDISPLAYROTATION_90 = 2,
+ D3DDISPLAYROTATION_180 = 3,
+ D3DDISPLAYROTATION_270 = 4,
+}}
+pub const D3D9_RESOURCE_PRIORITY_MINIMUM: DWORD = 0x28000000;
+pub const D3D9_RESOURCE_PRIORITY_LOW: DWORD = 0x50000000;
+pub const D3D9_RESOURCE_PRIORITY_NORMAL: DWORD = 0x78000000;
+pub const D3D9_RESOURCE_PRIORITY_HIGH: DWORD = 0xa0000000;
+pub const D3D9_RESOURCE_PRIORITY_MAXIMUM: DWORD = 0xc8000000;
+pub const D3D_OMAC_SIZE: usize = 16;
+STRUCT!{struct D3D_OMAC {
+ Omac: [BYTE; D3D_OMAC_SIZE],
+}}
+ENUM!{enum D3DAUTHENTICATEDCHANNELTYPE {
+ D3DAUTHENTICATEDCHANNEL_D3D9 = 1,
+ D3DAUTHENTICATEDCHANNEL_DRIVER_SOFTWARE = 2,
+ D3DAUTHENTICATEDCHANNEL_DRIVER_HARDWARE = 3,
+}}
+STRUCT!{struct D3DAUTHENTICATEDCHANNEL_QUERY_INPUT {
+ QueryType: GUID,
+ hChannel: HANDLE,
+ SequenceNumber: UINT,
+}}
+STRUCT!{struct D3DAUTHENTICATEDCHANNEL_QUERY_OUTPUT {
+ omac: D3D_OMAC,
+ QueryType: GUID,
+ hChannel: HANDLE,
+ SequenceNumber: UINT,
+ ReturnCode: HRESULT,
+}}
+DEFINE_GUID!{D3DAUTHENTICATEDQUERY_PROTECTION,
+ 0xa84eb584, 0xc495, 0x48aa, 0xb9, 0x4d, 0x8b, 0xd2, 0xd6, 0xfb, 0xce, 0x5}
+STRUCT!{struct D3DAUTHENTICATEDCHANNEL_PROTECTION_FLAGS {
+ Value: UINT,
+}}
+BITFIELD!{D3DAUTHENTICATEDCHANNEL_PROTECTION_FLAGS Value: UINT [
+ ProtectionEnabled set_ProtectionEnabled[0..1],
+ OverlayOrFullscreenRequired set_OverlayOrFullscreenRequired[1..2],
+]}
+STRUCT!{struct D3DAUTHENTICATEDCHANNEL_QUERYPROTECTION_OUTPUT {
+ Output: D3DAUTHENTICATEDCHANNEL_QUERY_OUTPUT,
+ ProtectionFlags: D3DAUTHENTICATEDCHANNEL_PROTECTION_FLAGS,
+}}
+DEFINE_GUID!{D3DAUTHENTICATEDQUERY_CHANNELTYPE,
+ 0xbc1b18a5, 0xb1fb, 0x42ab, 0xbd, 0x94, 0xb5, 0x82, 0x8b, 0x4b, 0xf7, 0xbe}
+STRUCT!{struct D3DAUTHENTICATEDCHANNEL_QUERYCHANNELTYPE_OUTPUT {
+ Output: D3DAUTHENTICATEDCHANNEL_QUERY_OUTPUT,
+ ChannelType: D3DAUTHENTICATEDCHANNELTYPE,
+}}
+DEFINE_GUID!{D3DAUTHENTICATEDQUERY_DEVICEHANDLE,
+ 0xec1c539d, 0x8cff, 0x4e2a, 0xbc, 0xc4, 0xf5, 0x69, 0x2f, 0x99, 0xf4, 0x80}
+STRUCT!{struct D3DAUTHENTICATEDCHANNEL_QUERYDEVICEHANDLE_OUTPUT {
+ Output: D3DAUTHENTICATEDCHANNEL_QUERY_OUTPUT,
+ DeviceHandle: HANDLE,
+}}
+DEFINE_GUID!{D3DAUTHENTICATEDQUERY_CRYPTOSESSION,
+ 0x2634499e, 0xd018, 0x4d74, 0xac, 0x17, 0x7f, 0x72, 0x40, 0x59, 0x52, 0x8d}
+STRUCT!{struct D3DAUTHENTICATEDCHANNEL_QUERYCRYPTOSESSION_INPUT {
+ Input: D3DAUTHENTICATEDCHANNEL_QUERY_INPUT,
+ DXVA2DecodeHandle: HANDLE,
+}}
+STRUCT!{struct D3DAUTHENTICATEDCHANNEL_QUERYCRYPTOSESSION_OUTPUT {
+ Output: D3DAUTHENTICATEDCHANNEL_QUERY_OUTPUT,
+ DXVA2DecodeHandle: HANDLE,
+ CryptoSessionHandle: HANDLE,
+ DeviceHandle: HANDLE,
+}}
+DEFINE_GUID!{D3DAUTHENTICATEDQUERY_RESTRICTEDSHAREDRESOURCEPROCESSCOUNT,
+ 0xdb207b3, 0x9450, 0x46a6, 0x82, 0xde, 0x1b, 0x96, 0xd4, 0x4f, 0x9c, 0xf2}
+STRUCT!{struct D3DAUTHENTICATEDCHANNEL_QUERYRESTRICTEDSHAREDRESOURCEPROCESSCOUNT_OUTPUT {
+ Output: D3DAUTHENTICATEDCHANNEL_QUERY_OUTPUT,
+ NumRestrictedSharedResourceProcesses: UINT,
+}}
+DEFINE_GUID!{D3DAUTHENTICATEDQUERY_RESTRICTEDSHAREDRESOURCEPROCESS,
+ 0x649bbadb, 0xf0f4, 0x4639, 0xa1, 0x5b, 0x24, 0x39, 0x3f, 0xc3, 0xab, 0xac}
+STRUCT!{struct D3DAUTHENTICATEDCHANNEL_QUERYRESTRICTEDSHAREDRESOURCEPROCESS_INPUT {
+ Input: D3DAUTHENTICATEDCHANNEL_QUERY_INPUT,
+ ProcessIndex: UINT,
+}}
+ENUM!{enum D3DAUTHENTICATEDCHANNEL_PROCESSIDENTIFIERTYPE {
+ PROCESSIDTYPE_UNKNOWN = 0,
+ PROCESSIDTYPE_DWM = 1,
+ PROCESSIDTYPE_HANDLE = 2,
+}}
+STRUCT!{struct D3DAUTHENTICATEDCHANNEL_QUERYRESTRICTEDSHAREDRESOURCEPROCESS_OUTPUT {
+ Output: D3DAUTHENTICATEDCHANNEL_QUERY_OUTPUT,
+ ProcessIndex: UINT,
+ ProcessIdentifer: D3DAUTHENTICATEDCHANNEL_PROCESSIDENTIFIERTYPE,
+ ProcessHandle: HANDLE,
+}}
+DEFINE_GUID!{D3DAUTHENTICATEDQUERY_UNRESTRICTEDPROTECTEDSHAREDRESOURCECOUNT,
+ 0x12f0bd6, 0xe662, 0x4474, 0xbe, 0xfd, 0xaa, 0x53, 0xe5, 0x14, 0x3c, 0x6d}
+STRUCT!{struct D3DAUTHENTICATEDCHANNEL_QUERYUNRESTRICTEDPROTECTEDSHAREDRESOURCECOUNT_OUTPUT {
+ Output: D3DAUTHENTICATEDCHANNEL_QUERY_OUTPUT,
+ NumUnrestrictedProtectedSharedResources: UINT,
+}}
+DEFINE_GUID!{D3DAUTHENTICATEDQUERY_OUTPUTIDCOUNT,
+ 0x2c042b5e, 0x8c07, 0x46d5, 0xaa, 0xbe, 0x8f, 0x75, 0xcb, 0xad, 0x4c, 0x31}
+STRUCT!{struct D3DAUTHENTICATEDCHANNEL_QUERYOUTPUTIDCOUNT_INPUT {
+ Input: D3DAUTHENTICATEDCHANNEL_QUERY_INPUT,
+ DeviceHandle: HANDLE,
+ CryptoSessionHandle: HANDLE,
+}}
+STRUCT!{struct D3DAUTHENTICATEDCHANNEL_QUERYOUTPUTIDCOUNT_OUTPUT {
+ Output: D3DAUTHENTICATEDCHANNEL_QUERY_OUTPUT,
+ DeviceHandle: HANDLE,
+ CryptoSessionHandle: HANDLE,
+ NumOutputIDs: UINT,
+}}
+DEFINE_GUID!{D3DAUTHENTICATEDQUERY_OUTPUTID,
+ 0x839ddca3, 0x9b4e, 0x41e4, 0xb0, 0x53, 0x89, 0x2b, 0xd2, 0xa1, 0x1e, 0xe7}
+STRUCT!{struct D3DAUTHENTICATEDCHANNEL_QUERYOUTPUTID_INPUT {
+ Input: D3DAUTHENTICATEDCHANNEL_QUERY_INPUT,
+ DeviceHandle: HANDLE,
+ CryptoSessionHandle: HANDLE,
+ OutputIDIndex: UINT,
+}}
+STRUCT!{struct D3DAUTHENTICATEDCHANNEL_QUERYOUTPUTID_OUTPUT {
+ Output: D3DAUTHENTICATEDCHANNEL_QUERY_OUTPUT,
+ DeviceHandle: HANDLE,
+ CryptoSessionHandle: HANDLE,
+ OutputIDIndex: UINT,
+ OutputID: UINT64,
+}}
+DEFINE_GUID!{D3DAUTHENTICATEDQUERY_ACCESSIBILITYATTRIBUTES,
+ 0x6214d9d2, 0x432c, 0x4abb, 0x9f, 0xce, 0x21, 0x6e, 0xea, 0x26, 0x9e, 0x3b}
+ENUM!{enum D3DBUSTYPE {
+ D3DBUSTYPE_OTHER = 0x00000000,
+ D3DBUSTYPE_PCI = 0x00000001,
+ D3DBUSTYPE_PCIX = 0x00000002,
+ D3DBUSTYPE_PCIEXPRESS = 0x00000003,
+ D3DBUSTYPE_AGP = 0x00000004,
+ D3DBUSIMPL_MODIFIER_INSIDE_OF_CHIPSET = 0x00010000,
+ MD3DBUSIMPL_ODIFIER_TRACKS_ON_MOTHER_BOARD_TO_CHIP = 0x00020000,
+ D3DBUSIMPL_MODIFIER_TRACKS_ON_MOTHER_BOARD_TO_SOCKET = 0x00030000,
+ D3DBUSIMPL_MODIFIER_DAUGHTER_BOARD_CONNECTOR = 0x00040000,
+ D3DBUSIMPL_MODIFIER_DAUGHTER_BOARD_CONNECTOR_INSIDE_OF_NUAE = 0x00050000,
+ D3DBUSIMPL_MODIFIER_NON_STANDARD = 0x80000000,
+}}
+STRUCT!{struct D3DAUTHENTICATEDCHANNEL_QUERYINFOBUSTYPE_OUTPUT {
+ Output: D3DAUTHENTICATEDCHANNEL_QUERY_OUTPUT,
+ BusType: D3DBUSTYPE,
+ bAccessibleInContiguousBlocks: BOOL,
+ bAccessibleInNonContiguousBlocks: BOOL,
+}}
+DEFINE_GUID!{D3DAUTHENTICATEDQUERY_ENCRYPTIONWHENACCESSIBLEGUIDCOUNT,
+ 0xb30f7066, 0x203c, 0x4b07, 0x93, 0xfc, 0xce, 0xaa, 0xfd, 0x61, 0x24, 0x1e}
+STRUCT!{struct D3DAUTHENTICATEDCHANNEL_QUERYEVICTIONENCRYPTIONGUIDCOUNT_OUTPUT {
+ Output: D3DAUTHENTICATEDCHANNEL_QUERY_OUTPUT,
+ NumEncryptionGuids: UINT,
+}}
+DEFINE_GUID!{D3DAUTHENTICATEDQUERY_ENCRYPTIONWHENACCESSIBLEGUID,
+ 0xf83a5958, 0xe986, 0x4bda, 0xbe, 0xb0, 0x41, 0x1f, 0x6a, 0x7a, 0x1, 0xb7}
+STRUCT!{struct D3DAUTHENTICATEDCHANNEL_QUERYEVICTIONENCRYPTIONGUID_INPUT {
+ Input: D3DAUTHENTICATEDCHANNEL_QUERY_INPUT,
+ EncryptionGuidIndex: UINT,
+}}
+STRUCT!{struct D3DAUTHENTICATEDCHANNEL_QUERYEVICTIONENCRYPTIONGUID_OUTPUT {
+ Output: D3DAUTHENTICATEDCHANNEL_QUERY_OUTPUT,
+ EncryptionGuidIndex: UINT,
+ EncryptionGuid: GUID,
+}}
+DEFINE_GUID!{D3DAUTHENTICATEDQUERY_CURRENTENCRYPTIONWHENACCESSIBLE,
+ 0xec1791c7, 0xdad3, 0x4f15, 0x9e, 0xc3, 0xfa, 0xa9, 0x3d, 0x60, 0xd4, 0xf0}
+STRUCT!{struct D3DAUTHENTICATEDCHANNEL_QUERYUNCOMPRESSEDENCRYPTIONLEVEL_OUTPUT {
+ Output: D3DAUTHENTICATEDCHANNEL_QUERY_OUTPUT,
+ EncryptionGuid: GUID,
+}}
+STRUCT!{struct D3DAUTHENTICATEDCHANNEL_CONFIGURE_INPUT {
+ omac: D3D_OMAC,
+ ConfigureType: GUID,
+ hChannel: HANDLE,
+ SequenceNumber: UINT,
+}}
+STRUCT!{struct D3DAUTHENTICATEDCHANNEL_CONFIGURE_OUTPUT {
+ omac: D3D_OMAC,
+ ConfigureType: GUID,
+ hChannel: HANDLE,
+ SequenceNumber: UINT,
+ ReturnCode: HRESULT,
+}}
+DEFINE_GUID!{D3DAUTHENTICATEDCONFIGURE_INITIALIZE,
+ 0x6114bdb, 0x3523, 0x470a, 0x8d, 0xca, 0xfb, 0xc2, 0x84, 0x51, 0x54, 0xf0}
+STRUCT!{struct D3DAUTHENTICATEDCHANNEL_CONFIGUREINITIALIZE {
+ Parameters: D3DAUTHENTICATEDCHANNEL_CONFIGURE_INPUT,
+ StartSequenceQuery: UINT,
+ StartSequenceConfigure: UINT,
+}}
+DEFINE_GUID!{D3DAUTHENTICATEDCONFIGURE_PROTECTION,
+ 0x50455658, 0x3f47, 0x4362, 0xbf, 0x99, 0xbf, 0xdf, 0xcd, 0xe9, 0xed, 0x29}
+STRUCT!{struct D3DAUTHENTICATEDCHANNEL_CONFIGUREPROTECTION {
+ Parameters: D3DAUTHENTICATEDCHANNEL_CONFIGURE_INPUT,
+ Protections: D3DAUTHENTICATEDCHANNEL_PROTECTION_FLAGS,
+}}
+DEFINE_GUID!{D3DAUTHENTICATEDCONFIGURE_CRYPTOSESSION,
+ 0x6346cc54, 0x2cfc, 0x4ad4, 0x82, 0x24, 0xd1, 0x58, 0x37, 0xde, 0x77, 0x0}
+STRUCT!{struct D3DAUTHENTICATEDCHANNEL_CONFIGURECRYPTOSESSION {
+ Parameters: D3DAUTHENTICATEDCHANNEL_CONFIGURE_INPUT,
+ DXVA2DecodeHandle: HANDLE,
+ CryptoSessionHandle: HANDLE,
+ DeviceHandle: HANDLE,
+}}
+DEFINE_GUID!{D3DAUTHENTICATEDCONFIGURE_SHAREDRESOURCE,
+ 0x772d047, 0x1b40, 0x48e8, 0x9c, 0xa6, 0xb5, 0xf5, 0x10, 0xde, 0x9f, 0x1}
+STRUCT!{struct D3DAUTHENTICATEDCHANNEL_CONFIGURESHAREDRESOURCE {
+ Parameters: D3DAUTHENTICATEDCHANNEL_CONFIGURE_INPUT,
+ ProcessIdentiferType: D3DAUTHENTICATEDCHANNEL_PROCESSIDENTIFIERTYPE,
+ ProcessHandle: HANDLE,
+ AllowAccess: BOOL,
+}}
+DEFINE_GUID!{D3DAUTHENTICATEDCONFIGURE_ENCRYPTIONWHENACCESSIBLE,
+ 0x41fff286, 0x6ae0, 0x4d43, 0x9d, 0x55, 0xa4, 0x6e, 0x9e, 0xfd, 0x15, 0x8a}
+STRUCT!{struct D3DAUTHENTICATEDCHANNEL_CONFIGUREUNCOMPRESSEDENCRYPTION {
+ Parameters: D3DAUTHENTICATEDCHANNEL_CONFIGURE_INPUT,
+ EncryptionGuid: GUID,
+}}
+STRUCT!{struct D3DENCRYPTED_BLOCK_INFO {
+ NumEncryptedBytesAtBeginning: UINT,
+ NumBytesInSkipPattern: UINT,
+ NumBytesInEncryptPattern: UINT,
+}}
+STRUCT!{struct D3DAES_CTR_IV {
+ IV: UINT64,
+ Count: UINT64,
+}}
diff --git a/third_party/rust/chromium_crates_io/vendor/winapi-0.3.9/src/shared/d3dkmdt.rs b/third_party/rust/chromium_crates_io/vendor/winapi-0.3.9/src/shared/d3dkmdt.rs
new file mode 100644
index 000000000000..89d574f12f30
--- /dev/null
+++ b/third_party/rust/chromium_crates_io/vendor/winapi-0.3.9/src/shared/d3dkmdt.rs
@@ -0,0 +1,45 @@
+// Licensed under the Apache License, Version 2.0
+// or the MIT license
+// , at your option.
+// All files in the project carrying such notice may not be copied, modified, or distributed
+// except according to those terms.
+//! Longhorn Display Driver Model (LDDM) kernel mode data type definitions
+use shared::basetsd::UINT32;
+use shared::minwindef::UINT;
+use shared::ntdef::{BOOLEAN, WCHAR};
+//1932
+pub const DXGK_MAX_METADATA_NAME_LENGTH: usize = 32;
+ENUM!{enum DXGK_ENGINE_TYPE {
+ DXGK_ENGINE_TYPE_OTHER,
+ DXGK_ENGINE_TYPE_3D,
+ DXGK_ENGINE_TYPE_VIDEO_DECODE,
+ DXGK_ENGINE_TYPE_VIDEO_ENCODE,
+ DXGK_ENGINE_TYPE_VIDEO_PROCESSING,
+ DXGK_ENGINE_TYPE_SCENE_ASSEMBLY,
+ DXGK_ENGINE_TYPE_COPY,
+ DXGK_ENGINE_TYPE_OVERLAY,
+ DXGK_ENGINE_TYPE_CRYPTO,
+ DXGK_ENGINE_TYPE_MAX,
+}}
+STRUCT!{#[repr(packed)] struct DXGK_NODEMETADATA_FLAGS {
+ Value: UINT32,
+}}
+BITFIELD!{DXGK_NODEMETADATA_FLAGS Value: UINT32 [
+ ContextSchedulingSupported set_ContextSchedulingSupported[0..1],
+ RingBufferFenceRelease set_RingBufferFenceRelease[1..2],
+ SupportTrackedWorkload set_SupportTrackedWorkload[2..3],
+ Reserved set_Reserved[3..16],
+ MaxInFlightHwQueueBuffers set_MaxInFlightHwQueueBuffers[16..32],
+]}
+STRUCT!{#[repr(packed)] struct DXGK_NODEMETADATA {
+ EngineType: DXGK_ENGINE_TYPE,
+ FriendlyName: [WCHAR; DXGK_MAX_METADATA_NAME_LENGTH],
+ Flags: DXGK_NODEMETADATA_FLAGS,
+ GpuMmuSupported: BOOLEAN,
+ IoMmuSupported: BOOLEAN,
+}}
+//2100
+STRUCT!{#[repr(packed)] struct D3DKMT_NODEMETADATA {
+ NodeOrdinalAndAdapterIndex: UINT,
+ NodeData: DXGK_NODEMETADATA,
+}}
diff --git a/third_party/rust/chromium_crates_io/vendor/winapi-0.3.9/src/shared/d3dukmdt.rs b/third_party/rust/chromium_crates_io/vendor/winapi-0.3.9/src/shared/d3dukmdt.rs
new file mode 100644
index 000000000000..24bfc5064aae
--- /dev/null
+++ b/third_party/rust/chromium_crates_io/vendor/winapi-0.3.9/src/shared/d3dukmdt.rs
@@ -0,0 +1,413 @@
+// Licensed under the Apache License, Version 2.0
+// or the MIT license
+// , at your option.
+// All files in the project carrying such notice may not be copied, modified, or distributed
+// except according to those terms.
+//! Longhorn Display Driver Model (LDDM) user/kernel mode shared data type definitions.
+use shared::basetsd::{UINT64, ULONG_PTR};
+use shared::guiddef::GUID;
+use shared::minwindef::{BOOL, UINT, ULONG};
+use shared::ntdef::{HANDLE, LUID, ULONGLONG, VOID};
+pub const DXGKDDI_INTERFACE_VERSION_VISTA: ULONG = 0x1052;
+pub const DXGKDDI_INTERFACE_VERSION_VISTA_SP1: ULONG = 0x1053;
+pub const DXGKDDI_INTERFACE_VERSION_WIN7: ULONG = 0x2005;
+pub const DXGKDDI_INTERFACE_VERSION_WIN8: ULONG = 0x300E;
+pub const DXGKDDI_INTERFACE_VERSION_WDDM1_3: ULONG = 0x4002;
+pub const DXGKDDI_INTERFACE_VERSION_WDDM1_3_PATH_INDEPENDENT_ROTATION: ULONG = 0x4003;
+pub const DXGKDDI_INTERFACE_VERSION_WDDM2_0: ULONG = 0x5023;
+pub const DXGKDDI_INTERFACE_VERSION_WDDM2_1: ULONG = 0x6003;
+pub const DXGKDDI_INTERFACE_VERSION_WDDM2_1_5: ULONG = 0x6010;
+pub const DXGKDDI_INTERFACE_VERSION_WDDM2_2: ULONG = 0x700A;
+pub const DXGKDDI_INTERFACE_VERSION_WDDM2_3: ULONG = 0x8001;
+pub const DXGKDDI_INTERFACE_VERSION_WDDM2_4: ULONG = 0x9006;
+pub const DXGKDDI_INTERFACE_VERSION_WDDM2_5: ULONG = 0xA00B;
+#[inline]
+pub fn IS_OFFICIAL_DDI_INTERFACE_VERSION(version: ULONG) -> bool {
+ (version == DXGKDDI_INTERFACE_VERSION_VISTA) ||
+ (version == DXGKDDI_INTERFACE_VERSION_VISTA_SP1) ||
+ (version == DXGKDDI_INTERFACE_VERSION_WIN7) ||
+ (version == DXGKDDI_INTERFACE_VERSION_WIN8) ||
+ (version == DXGKDDI_INTERFACE_VERSION_WDDM1_3) ||
+ (version == DXGKDDI_INTERFACE_VERSION_WDDM1_3_PATH_INDEPENDENT_ROTATION) ||
+ (version == DXGKDDI_INTERFACE_VERSION_WDDM2_0) ||
+ (version == DXGKDDI_INTERFACE_VERSION_WDDM2_1) ||
+ (version == DXGKDDI_INTERFACE_VERSION_WDDM2_1_5) ||
+ (version == DXGKDDI_INTERFACE_VERSION_WDDM2_2) ||
+ (version == DXGKDDI_INTERFACE_VERSION_WDDM2_3) ||
+ (version == DXGKDDI_INTERFACE_VERSION_WDDM2_4) ||
+ (version == DXGKDDI_INTERFACE_VERSION_WDDM2_5)
+}
+pub const DXGKDDI_INTERFACE_VERSION: ULONG = DXGKDDI_INTERFACE_VERSION_WDDM2_5;
+pub const D3D_UMD_INTERFACE_VERSION_VISTA: ULONG = 0x000C;
+pub const D3D_UMD_INTERFACE_VERSION_WIN7: ULONG = 0x2003;
+pub const D3D_UMD_INTERFACE_VERSION_WIN8_M3: ULONG = 0x3001;
+pub const D3D_UMD_INTERFACE_VERSION_WIN8_CP: ULONG = 0x3002;
+pub const D3D_UMD_INTERFACE_VERSION_WIN8_RC: ULONG = 0x3003;
+pub const D3D_UMD_INTERFACE_VERSION_WIN8: ULONG = 0x3004;
+pub const D3D_UMD_INTERFACE_VERSION_WDDM1_3: ULONG = 0x4002;
+pub const D3D_UMD_INTERFACE_VERSION_WDDM2_0_M1: ULONG = 0x5000;
+pub const D3D_UMD_INTERFACE_VERSION_WDDM2_0_M1_3: ULONG = 0x5001;
+pub const D3D_UMD_INTERFACE_VERSION_WDDM2_0_M2_2: ULONG = 0x5002;
+pub const D3D_UMD_INTERFACE_VERSION_WDDM2_0: ULONG = 0x5002;
+pub const D3D_UMD_INTERFACE_VERSION_WDDM2_1_1: ULONG = 0x6000;
+pub const D3D_UMD_INTERFACE_VERSION_WDDM2_1_2: ULONG = 0x6001;
+pub const D3D_UMD_INTERFACE_VERSION_WDDM2_1_3: ULONG = 0x6002;
+pub const D3D_UMD_INTERFACE_VERSION_WDDM2_1_4: ULONG = 0x6003;
+pub const D3D_UMD_INTERFACE_VERSION_WDDM2_1: ULONG = D3D_UMD_INTERFACE_VERSION_WDDM2_1_4;
+pub const D3D_UMD_INTERFACE_VERSION_WDDM2_2_1: ULONG = 0x7000;
+pub const D3D_UMD_INTERFACE_VERSION_WDDM2_2_2: ULONG = 0x7001;
+pub const D3D_UMD_INTERFACE_VERSION_WDDM2_2: ULONG = D3D_UMD_INTERFACE_VERSION_WDDM2_2_2;
+pub const D3D_UMD_INTERFACE_VERSION_WDDM2_3_1: ULONG = 0x8000;
+pub const D3D_UMD_INTERFACE_VERSION_WDDM2_3_2: ULONG = 0x8001;
+pub const D3D_UMD_INTERFACE_VERSION_WDDM2_3: ULONG = D3D_UMD_INTERFACE_VERSION_WDDM2_3_2;
+pub const D3D_UMD_INTERFACE_VERSION_WDDM2_4_1: ULONG = 0x9000;
+pub const D3D_UMD_INTERFACE_VERSION_WDDM2_4_2: ULONG = 0x9001;
+pub const D3D_UMD_INTERFACE_VERSION_WDDM2_4: ULONG = D3D_UMD_INTERFACE_VERSION_WDDM2_4_2;
+pub const D3D_UMD_INTERFACE_VERSION_WDDM2_5_1: ULONG = 0xA000;
+pub const D3D_UMD_INTERFACE_VERSION_WDDM2_5_2: ULONG = 0xA001;
+pub const D3D_UMD_INTERFACE_VERSION_WDDM2_5_3: ULONG = 0xA002;
+pub const D3D_UMD_INTERFACE_VERSION_WDDM2_5: ULONG = D3D_UMD_INTERFACE_VERSION_WDDM2_5_3;
+pub const D3D_UMD_INTERFACE_VERSION: ULONG = D3D_UMD_INTERFACE_VERSION_WDDM2_5;
+pub type D3DGPU_VIRTUAL_ADDRESS = ULONGLONG;
+pub type D3DGPU_SIZE_T = ULONGLONG;
+pub const D3DGPU_UNIQUE_DRIVER_PROTECTION: ULONGLONG = 0x8000000000000000;
+pub const DXGK_MAX_PAGE_TABLE_LEVEL_COUNT: UINT = 6;
+pub const DXGK_MIN_PAGE_TABLE_LEVEL_COUNT: UINT = 2;
+STRUCT!{struct GPUP_DRIVER_ESCAPE_INPUT {
+ vfLUID: LUID,
+}}
+pub type PGPUP_DRIVER_ESCAPE_INPUT = *mut GPUP_DRIVER_ESCAPE_INPUT;
+ENUM!{enum DXGKVGPU_ESCAPE_TYPE {
+ DXGKVGPU_ESCAPE_TYPE_READ_PCI_CONFIG = 0,
+ DXGKVGPU_ESCAPE_TYPE_WRITE_PCI_CONFIG = 1,
+ DXGKVGPU_ESCAPE_TYPE_INITIALIZE = 2,
+ DXGKVGPU_ESCAPE_TYPE_RELEASE = 3,
+ DXGKVGPU_ESCAPE_TYPE_GET_VGPU_TYPE = 4,
+ DXGKVGPU_ESCAPE_TYPE_POWERTRANSITIONCOMPLETE = 5,
+}}
+STRUCT!{struct DXGKVGPU_ESCAPE_HEAD {
+ Luid: GPUP_DRIVER_ESCAPE_INPUT,
+ Type: DXGKVGPU_ESCAPE_TYPE,
+}}
+STRUCT!{struct DXGKVGPU_ESCAPE_READ_PCI_CONFIG {
+ Header: DXGKVGPU_ESCAPE_HEAD,
+ Offset: UINT,
+ Size: UINT,
+}}
+STRUCT!{struct DXGKVGPU_ESCAPE_WRITE_PCI_CONFIG {
+ Header: DXGKVGPU_ESCAPE_HEAD,
+ Offset: UINT,
+ Size: UINT,
+}}
+STRUCT!{struct DXGKVGPU_ESCAPE_READ_VGPU_TYPE {
+ Header: DXGKVGPU_ESCAPE_HEAD,
+}}
+STRUCT!{struct DXGKVGPU_ESCAPE_POWERTRANSITIONCOMPLETE {
+ Header: DXGKVGPU_ESCAPE_HEAD,
+ PowerState: UINT,
+}}
+STRUCT!{struct DXGKVGPU_ESCAPE_INITIALIZE {
+ Header: DXGKVGPU_ESCAPE_HEAD,
+ VmGuid: GUID,
+}}
+STRUCT!{struct DXGKVGPU_ESCAPE_RELEASE {
+ Header: DXGKVGPU_ESCAPE_HEAD,
+}}
+ENUM!{enum DXGK_PTE_PAGE_SIZE {
+ DXGK_PTE_PAGE_TABLE_PAGE_4KB = 0,
+ DXGK_PTE_PAGE_TABLE_PAGE_64KB = 1,
+}}
+UNION!{union DXGK_PTE_u {
+ [u64; 1],
+ PageAddress PageAddress_mut: ULONGLONG,
+ PageTableAddress PageTableAddress_mut: ULONGLONG,
+}}
+STRUCT!{struct DXGK_PTE {
+ Flags: ULONGLONG,
+ u: DXGK_PTE_u,
+}}
+BITFIELD!{DXGK_PTE Flags: ULONGLONG [
+ Valid set_Valid[0..1],
+ Zero set_Zero[1..2],
+ CacheCoherent set_CacheCoherent[2..3],
+ ReadOnly set_ReadOnly[3..4],
+ NoExecute set_NoExecute[4..5],
+ Segment set_Segment[5..10],
+ LargePage set_LargePage[10..11],
+ PhysicalAdapterIndex set_PhysicalAdapterIndex[11..17],
+ PageTablePageSize set_PageTablePageSize[17..19],
+ SystemReserved0 set_SystemReserved0[19..20],
+ Reserved set_Reserved[20..64],
+]}
+pub const D3DGPU_NULL: D3DGPU_VIRTUAL_ADDRESS = 0;
+pub const D3DDDI_MAX_WRITTEN_PRIMARIES: usize = 16;
+pub const D3DDDI_MAX_MPO_PRESENT_DIRTY_RECTS: usize = 0xFFF;
+STRUCT!{struct D3DGPU_PHYSICAL_ADDRESS {
+ SegmentId: UINT,
+ SegmentOffset: UINT64,
+}}
+pub type D3DDDI_VIDEO_PRESENT_SOURCE_ID = UINT;
+pub type D3DDDI_VIDEO_PRESENT_TARGET_ID = UINT;
+pub type D3DKMT_HANDLE = UINT;
+STRUCT!{struct D3DDDI_RATIONAL {
+ Numerator: UINT,
+ Denominator: UINT,
+}}
+STRUCT!{struct D3DDDI_ALLOCATIONINFO {
+ hAllocation: D3DKMT_HANDLE,
+ pSystemMem: *const VOID,
+ pPrivateDriverData: *mut VOID,
+ PrivateDriverDataSize: UINT,
+ VidPnSourceId: D3DDDI_VIDEO_PRESENT_SOURCE_ID,
+ Flags: UINT,
+}}
+BITFIELD!{D3DDDI_ALLOCATIONINFO Flags: UINT [
+ Primary set_Primary[0..1],
+ Stereo set_Stereo[1..2],
+ Reserved set_Reserved[2..32],
+]}
+UNION!{union D3DDDI_ALLOCATIONINFO2_u1 {
+ [usize; 1],
+ hSection hSection_mut: HANDLE,
+ pSystemMem pSystemMem_mut: *const VOID,
+}}
+UNION!{union D3DDDI_ALLOCATIONINFO2_u2 {
+ [usize; 1],
+ Priority Priority_mut: UINT,
+ Unused Unused_mut: ULONG_PTR,
+}}
+STRUCT!{struct D3DDDI_ALLOCATIONINFO2 {
+ hAllocation: D3DKMT_HANDLE,
+ u1: D3DDDI_ALLOCATIONINFO2_u1,
+ pPrivateDriverData: *mut VOID,
+ PrivateDriverDataSize: UINT,
+ VidPnSourceId: D3DDDI_VIDEO_PRESENT_SOURCE_ID,
+ Flags: UINT,
+ GpuVirtualAddress: D3DGPU_VIRTUAL_ADDRESS,
+ u2: D3DDDI_ALLOCATIONINFO2_u2,
+ Reserved: [ULONG_PTR; 5],
+}}
+BITFIELD!{D3DDDI_ALLOCATIONINFO2 Flags: UINT [
+ Primary set_Primary[0..1],
+ Stereo set_Stereo[1..2],
+ OverridePriority set_OverridePriority[2..3],
+ Reserved set_Reserved[3..32],
+]}
+STRUCT!{struct D3DDDI_OPENALLOCATIONINFO {
+ hAllocation: D3DKMT_HANDLE,
+ pPrivateDriverData: *const VOID,
+ PrivateDriverDataSize: UINT,
+}}
+STRUCT!{struct D3DDDI_OPENALLOCATIONINFO2 {
+ hAllocation: D3DKMT_HANDLE,
+ pPrivateDriverData: *const VOID,
+ PrivateDriverDataSize: UINT,
+ GpuVirtualAddress: D3DGPU_VIRTUAL_ADDRESS,
+ Reserved: [ULONG_PTR; 6],
+}}
+ENUM!{enum D3DDDI_OFFER_PRIORITY {
+ D3DDDI_OFFER_PRIORITY_NONE = 0,
+ D3DDDI_OFFER_PRIORITY_LOW = 1,
+ D3DDDI_OFFER_PRIORITY_NORMAL,
+ D3DDDI_OFFER_PRIORITY_HIGH,
+ D3DDDI_OFFER_PRIORITY_AUTO,
+}}
+STRUCT!{struct D3DDDI_ALLOCATIONLIST {
+ hAllocation: D3DKMT_HANDLE,
+ Value: UINT,
+}}
+BITFIELD!{D3DDDI_ALLOCATIONLIST Value: UINT [
+ WriteOperation set_WriteOperation[0..1],
+ DoNotRetireInstance set_DoNotRetireInstance[1..2],
+ OfferPriority set_OfferPriority[2..5],
+ Reserved set_Reserved[5..32],
+]}
+STRUCT!{struct D3DDDI_PATCHLOCATIONLIST {
+ AllocationIndex: UINT,
+ Value: UINT,
+ DriverId: UINT,
+ AllocationOffset: UINT,
+ PatchOffset: UINT,
+ SplitOffset: UINT,
+}}
+BITFIELD!{D3DDDI_PATCHLOCATIONLIST Value: UINT [
+ SlotId set_SlotId[0..24],
+ Reserved set_Reserved[24..32],
+]}
+STRUCT!{struct D3DDDICB_LOCKFLAGS {
+ Value: UINT,
+}}
+BITFIELD!{D3DDDICB_LOCKFLAGS Value: UINT [
+ ReadOnly set_ReadOnly[0..1],
+ WriteOnly set_WriteOnly[1..2],
+ DonotWait set_DonotWait[2..3],
+ IgnoreSync set_IgnoreSync[3..4],
+ LockEntire set_LockEntire[4..5],
+ DonotEvict set_DonotEvict[5..6],
+ AcquireAperture set_AcquireAperture[6..7],
+ Discard set_Discard[7..8],
+ NoExistingReference set_NoExistingReference[8..9],
+ UseAlternateVA set_UseAlternateVA[9..10],
+ IgnoreReadSync set_IgnoreReadSync[10..11],
+ Reserved set_Reserved[11..32],
+]}
+STRUCT!{struct D3DDDICB_LOCK2FLAGS {
+ Value: UINT,
+}}
+STRUCT!{struct D3DDDICB_DESTROYALLOCATION2FLAGS {
+ Value: UINT,
+}}
+BITFIELD!{D3DDDICB_DESTROYALLOCATION2FLAGS Value: UINT [
+ AssumeNotInUse set_AssumeNotInUse[0..1],
+ SynchronousDestroy set_SynchronousDestroy[1..2],
+ Reserved set_Reserved[2..31],
+ SystemUseOnly set_SystemUseOnly[31..32],
+]}
+STRUCT!{struct D3DDDI_ESCAPEFLAGS {
+ Value: UINT,
+}}
+BITFIELD!{D3DDDI_ESCAPEFLAGS Value: UINT [
+ HardwareAccess set_HardwareAccess[0..1],
+ DeviceStatusQuery set_DeviceStatusQuery[1..2],
+ ChangeFrameLatency set_ChangeFrameLatency[2..3],
+ NoAdapterSynchronization set_NoAdapterSynchronization[3..4],
+ Reserved set_Reserved[4..5],
+ VirtualMachineData set_VirtualMachineData[5..6],
+ DriverKnownEscape set_DriverKnownEscape[6..7],
+ DriverCommonEscape set_DriverCommonEscape[7..8],
+ Reserved2 set_Reserved2[8..24],
+]}
+ENUM!{enum D3DDDI_DRIVERESCAPETYPE {
+ D3DDDI_DRIVERESCAPETYPE_TRANSLATEALLOCATIONHANDLE = 0,
+ D3DDDI_DRIVERESCAPETYPE_TRANSLATERESOURCEHANDLE = 1,
+ D3DDDI_DRIVERESCAPETYPE_MAX,
+}}
+STRUCT!{struct D3DDDI_DRIVERESCAPE_TRANSLATEALLOCATIONEHANDLE {
+ EscapeType: D3DDDI_DRIVERESCAPETYPE,
+ hAllocation: D3DKMT_HANDLE,
+}}
+STRUCT!{struct D3DDDI_DRIVERESCAPE_TRANSLATERESOURCEHANDLE {
+ EscapeType: D3DDDI_DRIVERESCAPETYPE,
+ hResource: D3DKMT_HANDLE,
+}}
+STRUCT!{struct D3DDDI_CREATECONTEXTFLAGS {
+ Value: UINT,
+}}
+BITFIELD!{D3DDDI_CREATECONTEXTFLAGS Value: UINT [
+ NullRendering set_NullRendering[0..1],
+ InitialData set_InitialData[1..2],
+ DisableGpuTimeout set_DisableGpuTimeout[2..3],
+ SynchronizationOnly set_SynchronizationOnly[3..4],
+ HwQueueSupported set_HwQueueSupported[4..5],
+ Reserved set_Reserved[5..32],
+]}
+//1188
+STRUCT!{struct D3DDDICB_SIGNALFLAGS {
+ Value: UINT,
+}}
+BITFIELD!{D3DDDICB_SIGNALFLAGS Value: UINT [
+ SignalAtSubmission set_SignalAtSubmission[0..1],
+ EnqueueCpuEvent set_EnqueueCpuEvent[1..2],
+ AllowFenceRewind set_AllowFenceRewind[2..3],
+ Reserved set_Reserved[3..31],
+ DXGK_SIGNAL_FLAG_INTERNAL0 set_DXGK_SIGNAL_FLAG_INTERNAL0[31..32],
+]}
+pub const D3DDDI_MAX_OBJECT_WAITED_ON: usize = 32;
+pub const D3DDDI_MAX_OBJECT_SIGNALED: usize = 32;
+ENUM!{enum D3DDDI_SYNCHRONIZATIONOBJECT_TYPE {
+ D3DDDI_SYNCHRONIZATION_MUTEX = 1,
+ D3DDDI_SEMAPHORE = 2,
+ D3DDDI_FENCE = 3,
+ D3DDDI_CPU_NOTIFICATION = 4,
+ D3DDDI_MONITORED_FENCE = 5,
+ D3DDDI_PERIODIC_MONITORED_FENCE = 6,
+ D3DDDI_SYNCHRONIZATION_TYPE_LIMIT,
+}}
+//1553
+STRUCT!{struct D3DDDI_SYNCHRONIZATIONOBJECTINFO_u_SynchronizationMutex {
+ InitialState: BOOL,
+}}
+STRUCT!{struct D3DDDI_SYNCHRONIZATIONOBJECTINFO_u_Semaphore {
+ MaxCount: UINT,
+ InitialCount: UINT,
+}}
+STRUCT!{struct D3DDDI_SYNCHRONIZATIONOBJECTINFO_u_Reserved {
+ Reserved: [UINT; 16],
+}}
+UNION!{union D3DDDI_SYNCHRONIZATIONOBJECTINFO_u {
+ [u32; 16],
+ SynchronizationMutex SynchronizationMutex_mut:
+ D3DDDI_SYNCHRONIZATIONOBJECTINFO_u_SynchronizationMutex,
+ Semaphore Semaphore_mut: D3DDDI_SYNCHRONIZATIONOBJECTINFO_u_Semaphore,
+ Reserved Reserved_mut: D3DDDI_SYNCHRONIZATIONOBJECTINFO_u_Reserved,
+}}
+STRUCT!{struct D3DDDI_SYNCHRONIZATIONOBJECTINFO {
+ Type: D3DDDI_SYNCHRONIZATIONOBJECT_TYPE,
+ u: D3DDDI_SYNCHRONIZATIONOBJECTINFO_u,
+}}
+STRUCT!{struct D3DDDI_SYNCHRONIZATIONOBJECT_FLAGS {
+ Value: UINT,
+}}
+BITFIELD!{D3DDDI_SYNCHRONIZATIONOBJECT_FLAGS Value: UINT [
+ Shared set_Shared[0..1],
+ NtSecuritySharing set_NtSecuritySharing[1..2],
+ CrossAdapter set_CrossAdapter[2..3],
+ TopOfPipeline set_TopOfPipeline[3..4],
+ NoSignal set_NoSignal[4..5],
+ NoWait set_NoWait[5..6],
+ NoSignalMaxValueOnTdr set_NoSignalMaxValueOnTdr[6..7],
+ NoGPUAccess set_NoGPUAccess[7..8],
+ Reserved set_Reserved[8..31],
+ D3DDDI_SYNCHRONIZATIONOBJECT_FLAGS_RESERVED0
+ set_D3DDDI_SYNCHRONIZATIONOBJECT_FLAGS_RESERVED0[31..32],
+]}
+STRUCT!{struct D3DDDI_SYNCHRONIZATIONOBJECTINFO2_u_SynchronizationMutex {
+ InitialState: BOOL,
+}}
+STRUCT!{struct D3DDDI_SYNCHRONIZATIONOBJECTINFO2_u_Semaphore {
+ MaxCount: UINT,
+ InitialCount: UINT,
+}}
+STRUCT!{struct D3DDDI_SYNCHRONIZATIONOBJECTINFO2_u_Fence {
+ FenceValue: UINT64,
+}}
+STRUCT!{struct D3DDDI_SYNCHRONIZATIONOBJECTINFO2_u_CPUNotification {
+ Event: HANDLE,
+}}
+STRUCT!{struct D3DDDI_SYNCHRONIZATIONOBJECTINFO2_u_MonitoredFence {
+ InitialFenceValue: UINT64,
+ FenceValueCPUVirtualAddress: *mut VOID,
+ FenceValueGPUVirtualAddress: D3DGPU_VIRTUAL_ADDRESS,
+ EngineAffinity: UINT,
+}}
+STRUCT!{struct D3DDDI_SYNCHRONIZATIONOBJECTINFO2_u_PeriodicMonitoredFence {
+ hAdapter: D3DKMT_HANDLE,
+ VidPnTargetId: D3DDDI_VIDEO_PRESENT_TARGET_ID,
+ Time: UINT64,
+ FenceValueCPUVirtualAddress: *mut VOID,
+ FenceValueGPUVirtualAddress: D3DGPU_VIRTUAL_ADDRESS,
+ EngineAffinity: UINT,
+}}
+STRUCT!{struct D3DDDI_SYNCHRONIZATIONOBJECTINFO2_u_Reserved {
+ Reserved: [UINT64; 8],
+}}
+UNION!{union D3DDDI_SYNCHRONIZATIONOBJECTINFO2_u {
+ [u64; 8],
+ SynchronizationMutex SynchronizationMutex_mut:
+ D3DDDI_SYNCHRONIZATIONOBJECTINFO2_u_SynchronizationMutex,
+ Semaphore Semaphore_mut: D3DDDI_SYNCHRONIZATIONOBJECTINFO2_u_Semaphore,
+ Fence Fence_mut: D3DDDI_SYNCHRONIZATIONOBJECTINFO2_u_Fence,
+ CPUNotification CPUNotification_mut: D3DDDI_SYNCHRONIZATIONOBJECTINFO2_u_CPUNotification,
+ MonitoredFence MonitoredFence_mut: D3DDDI_SYNCHRONIZATIONOBJECTINFO2_u_MonitoredFence,
+ PeriodicMonitoredFence PeriodicMonitoredFence_mut:
+ D3DDDI_SYNCHRONIZATIONOBJECTINFO2_u_PeriodicMonitoredFence,
+ Reserved Reserved_mut: D3DDDI_SYNCHRONIZATIONOBJECTINFO2_u_Reserved,
+}}
+STRUCT!{struct D3DDDI_SYNCHRONIZATIONOBJECTINFO2 {
+ Type: D3DDDI_SYNCHRONIZATIONOBJECT_TYPE,
+ Flags: D3DDDI_SYNCHRONIZATIONOBJECT_FLAGS,
+ u: D3DDDI_SYNCHRONIZATIONOBJECTINFO2_u,
+ SharedHandle: D3DKMT_HANDLE,
+}}
+//1778
+pub const D3DDDI_MAX_BROADCAST_CONTEXT: usize = 64;
diff --git a/third_party/rust/chromium_crates_io/vendor/winapi-0.3.9/src/shared/dcomptypes.rs b/third_party/rust/chromium_crates_io/vendor/winapi-0.3.9/src/shared/dcomptypes.rs
new file mode 100644
index 000000000000..4d45d3c90a52
--- /dev/null
+++ b/third_party/rust/chromium_crates_io/vendor/winapi-0.3.9/src/shared/dcomptypes.rs
@@ -0,0 +1,50 @@
+// Licensed under the Apache License, Version 2.0
+// or the MIT license
+// , at your option.
+// All files in the project carrying such notice may not be copied, modified, or distributed
+// except according to those terms.
+//! Mappings for the contents of dcomptypes.h
+use shared::dxgitype::DXGI_RATIONAL;
+use shared::minwindef::DWORD;
+use um::winnt::LARGE_INTEGER;
+ENUM!{enum DCOMPOSITION_BITMAP_INTERPOLATION_MODE {
+ DCOMPOSITION_BITMAP_INTERPOLATION_MODE_NEAREST_NEIGHBOR = 0,
+ DCOMPOSITION_BITMAP_INTERPOLATION_MODE_LINEAR = 1,
+ DCOMPOSITION_BITMAP_INTERPOLATION_MODE_INHERIT = 0xffffffff,
+}}
+ENUM!{enum DCOMPOSITION_BORDER_MODE {
+ DCOMPOSITION_BORDER_MODE_SOFT = 0,
+ DCOMPOSITION_BORDER_MODE_HARD = 1,
+ DCOMPOSITION_BORDER_MODE_INHERIT = 0xffffffff,
+}}
+ENUM!{enum DCOMPOSITION_COMPOSITE_MODE {
+ DCOMPOSITION_COMPOSITE_MODE_SOURCE_OVER = 0,
+ DCOMPOSITION_COMPOSITE_MODE_DESTINATION_INVERT = 1,
+ DCOMPOSITION_COMPOSITE_MODE_MIN_BLEND = 2,
+ DCOMPOSITION_COMPOSITE_MODE_INHERIT = 0xffffffff,
+}}
+ENUM!{enum DCOMPOSITION_BACKFACE_VISIBILITY {
+ DCOMPOSITION_BACKFACE_VISIBILITY_VISIBLE = 0,
+ DCOMPOSITION_BACKFACE_VISIBILITY_HIDDEN = 1,
+ DCOMPOSITION_BACKFACE_VISIBILITY_INHERIT = 0xffffffff,
+}}
+ENUM!{enum DCOMPOSITION_OPACITY_MODE {
+ DCOMPOSITION_OPACITY_MODE_LAYER = 0,
+ DCOMPOSITION_OPACITY_MODE_MULTIPLY = 1,
+ DCOMPOSITION_OPACITY_MODE_INHERIT = 0xffffffff,
+}}
+ENUM!{enum DCOMPOSITION_DEPTH_MODE {
+ DCOMPOSITION_DEPTH_MODE_TREE = 0,
+ DCOMPOSITION_DEPTH_MODE_SPATIAL = 1,
+ DCOMPOSITION_DEPTH_MODE_INHERIT = 0xffffffff,
+}}
+STRUCT!{struct DCOMPOSITION_FRAME_STATISTICS {
+ lastFrameTime: LARGE_INTEGER,
+ currentCompositionRate: DXGI_RATIONAL,
+ currentTime: LARGE_INTEGER,
+ timeFrequency: LARGE_INTEGER,
+ nextEstimatedFrameTime: LARGE_INTEGER,
+}}
+pub const COMPOSITIONOBJECT_READ: DWORD = 0x0001;
+pub const COMPOSITIONOBJECT_WRITE: DWORD = 0x0002;
+pub const COMPOSITIONOBJECT_ALL_ACCESS: DWORD = COMPOSITIONOBJECT_READ | COMPOSITIONOBJECT_WRITE;
diff --git a/third_party/rust/chromium_crates_io/vendor/winapi-0.3.9/src/shared/devguid.rs b/third_party/rust/chromium_crates_io/vendor/winapi-0.3.9/src/shared/devguid.rs
new file mode 100644
index 000000000000..f163037b8d74
--- /dev/null
+++ b/third_party/rust/chromium_crates_io/vendor/winapi-0.3.9/src/shared/devguid.rs
@@ -0,0 +1,178 @@
+// Licensed under the Apache License, Version 2.0
+// or the MIT license
+// , at your option.
+// All files in the project carrying such notice may not be copied, modified, or distributed
+// except according to those terms.
+//! Defines GUIDs for device classes used in Plug & Play.
+DEFINE_GUID!{GUID_DEVCLASS_1394,
+ 0x6bdd1fc1, 0x810f, 0x11d0, 0xbe, 0xc7, 0x08, 0x00, 0x2b, 0xe2, 0x09, 0x2f}
+DEFINE_GUID!{GUID_DEVCLASS_1394DEBUG,
+ 0x66f250d6, 0x7801, 0x4a64, 0xb1, 0x39, 0xee, 0xa8, 0x0a, 0x45, 0x0b, 0x24}
+DEFINE_GUID!{GUID_DEVCLASS_61883,
+ 0x7ebefbc0, 0x3200, 0x11d2, 0xb4, 0xc2, 0x00, 0xa0, 0xc9, 0x69, 0x7d, 0x07}
+DEFINE_GUID!{GUID_DEVCLASS_ADAPTER,
+ 0x4d36e964, 0xe325, 0x11ce, 0xbf, 0xc1, 0x08, 0x00, 0x2b, 0xe1, 0x03, 0x18}
+DEFINE_GUID!{GUID_DEVCLASS_APMSUPPORT,
+ 0xd45b1c18, 0xc8fa, 0x11d1, 0x9f, 0x77, 0x00, 0x00, 0xf8, 0x05, 0xf5, 0x30}
+DEFINE_GUID!{GUID_DEVCLASS_AVC,
+ 0xc06ff265, 0xae09, 0x48f0, 0x81, 0x2c, 0x16, 0x75, 0x3d, 0x7c, 0xba, 0x83}
+DEFINE_GUID!{GUID_DEVCLASS_BATTERY,
+ 0x72631e54, 0x78a4, 0x11d0, 0xbc, 0xf7, 0x00, 0xaa, 0x00, 0xb7, 0xb3, 0x2a}
+DEFINE_GUID!{GUID_DEVCLASS_BIOMETRIC,
+ 0x53d29ef7, 0x377c, 0x4d14, 0x86, 0x4b, 0xeb, 0x3a, 0x85, 0x76, 0x93, 0x59}
+DEFINE_GUID!{GUID_DEVCLASS_BLUETOOTH,
+ 0xe0cbf06c, 0xcd8b, 0x4647, 0xbb, 0x8a, 0x26, 0x3b, 0x43, 0xf0, 0xf9, 0x74}
+DEFINE_GUID!{GUID_DEVCLASS_CDROM,
+ 0x4d36e965, 0xe325, 0x11ce, 0xbf, 0xc1, 0x08, 0x00, 0x2b, 0xe1, 0x03, 0x18}
+DEFINE_GUID!{GUID_DEVCLASS_COMPUTER,
+ 0x4d36e966, 0xe325, 0x11ce, 0xbf, 0xc1, 0x08, 0x00, 0x2b, 0xe1, 0x03, 0x18}
+DEFINE_GUID!{GUID_DEVCLASS_DECODER,
+ 0x6bdd1fc2, 0x810f, 0x11d0, 0xbe, 0xc7, 0x08, 0x00, 0x2b, 0xe2, 0x09, 0x2f}
+DEFINE_GUID!{GUID_DEVCLASS_DISKDRIVE,
+ 0x4d36e967, 0xe325, 0x11ce, 0xbf, 0xc1, 0x08, 0x00, 0x2b, 0xe1, 0x03, 0x18}
+DEFINE_GUID!{GUID_DEVCLASS_DISPLAY,
+ 0x4d36e968, 0xe325, 0x11ce, 0xbf, 0xc1, 0x08, 0x00, 0x2b, 0xe1, 0x03, 0x18}
+DEFINE_GUID!{GUID_DEVCLASS_DOT4,
+ 0x48721b56, 0x6795, 0x11d2, 0xb1, 0xa8, 0x00, 0x80, 0xc7, 0x2e, 0x74, 0xa2}
+DEFINE_GUID!{GUID_DEVCLASS_DOT4PRINT,
+ 0x49ce6ac8, 0x6f86, 0x11d2, 0xb1, 0xe5, 0x00, 0x80, 0xc7, 0x2e, 0x74, 0xa2}
+DEFINE_GUID!{GUID_DEVCLASS_ENUM1394,
+ 0xc459df55, 0xdb08, 0x11d1, 0xb0, 0x09, 0x00, 0xa0, 0xc9, 0x08, 0x1f, 0xf6}
+DEFINE_GUID!{GUID_DEVCLASS_FDC,
+ 0x4d36e969, 0xe325, 0x11ce, 0xbf, 0xc1, 0x08, 0x00, 0x2b, 0xe1, 0x03, 0x18}
+DEFINE_GUID!{GUID_DEVCLASS_FLOPPYDISK,
+ 0x4d36e980, 0xe325, 0x11ce, 0xbf, 0xc1, 0x08, 0x00, 0x2b, 0xe1, 0x03, 0x18}
+DEFINE_GUID!{GUID_DEVCLASS_GPS,
+ 0x6bdd1fc3, 0x810f, 0x11d0, 0xbe, 0xc7, 0x08, 0x00, 0x2b, 0xe2, 0x09, 0x2f}
+DEFINE_GUID!{GUID_DEVCLASS_HDC,
+ 0x4d36e96a, 0xe325, 0x11ce, 0xbf, 0xc1, 0x08, 0x00, 0x2b, 0xe1, 0x03, 0x18}
+DEFINE_GUID!{GUID_DEVCLASS_HIDCLASS,
+ 0x745a17a0, 0x74d3, 0x11d0, 0xb6, 0xfe, 0x00, 0xa0, 0xc9, 0x0f, 0x57, 0xda}
+DEFINE_GUID!{GUID_DEVCLASS_IMAGE,
+ 0x6bdd1fc6, 0x810f, 0x11d0, 0xbe, 0xc7, 0x08, 0x00, 0x2b, 0xe2, 0x09, 0x2f}
+DEFINE_GUID!{GUID_DEVCLASS_INFINIBAND,
+ 0x30ef7132, 0xd858, 0x4a0c, 0xac, 0x24, 0xb9, 0x02, 0x8a, 0x5c, 0xca, 0x3f}
+DEFINE_GUID!{GUID_DEVCLASS_INFRARED,
+ 0x6bdd1fc5, 0x810f, 0x11d0, 0xbe, 0xc7, 0x08, 0x00, 0x2b, 0xe2, 0x09, 0x2f}
+DEFINE_GUID!{GUID_DEVCLASS_KEYBOARD,
+ 0x4d36e96b, 0xe325, 0x11ce, 0xbf, 0xc1, 0x08, 0x00, 0x2b, 0xe1, 0x03, 0x18}
+DEFINE_GUID!{GUID_DEVCLASS_LEGACYDRIVER,
+ 0x8ecc055d, 0x047f, 0x11d1, 0xa5, 0x37, 0x00, 0x00, 0xf8, 0x75, 0x3e, 0xd1}
+DEFINE_GUID!{GUID_DEVCLASS_MEDIA,
+ 0x4d36e96c, 0xe325, 0x11ce, 0xbf, 0xc1, 0x08, 0x00, 0x2b, 0xe1, 0x03, 0x18}
+DEFINE_GUID!{GUID_DEVCLASS_MEDIUM_CHANGER,
+ 0xce5939ae, 0xebde, 0x11d0, 0xb1, 0x81, 0x00, 0x00, 0xf8, 0x75, 0x3e, 0xc4}
+DEFINE_GUID!{GUID_DEVCLASS_MODEM,
+ 0x4d36e96d, 0xe325, 0x11ce, 0xbf, 0xc1, 0x08, 0x00, 0x2b, 0xe1, 0x03, 0x18}
+DEFINE_GUID!{GUID_DEVCLASS_MEMORY,
+ 0x5099944a, 0xf6b9, 0x4057, 0xa0, 0x56, 0x8c, 0x55, 0x02, 0x28, 0x54, 0x4c}
+DEFINE_GUID!{GUID_DEVCLASS_MONITOR,
+ 0x4d36e96e, 0xe325, 0x11ce, 0xbf, 0xc1, 0x08, 0x00, 0x2b, 0xe1, 0x03, 0x18}
+DEFINE_GUID!{GUID_DEVCLASS_MOUSE,
+ 0x4d36e96f, 0xe325, 0x11ce, 0xbf, 0xc1, 0x08, 0x00, 0x2b, 0xe1, 0x03, 0x18}
+DEFINE_GUID!{GUID_DEVCLASS_MTD,
+ 0x4d36e970, 0xe325, 0x11ce, 0xbf, 0xc1, 0x08, 0x00, 0x2b, 0xe1, 0x03, 0x18}
+DEFINE_GUID!{GUID_DEVCLASS_MULTIFUNCTION,
+ 0x4d36e971, 0xe325, 0x11ce, 0xbf, 0xc1, 0x08, 0x00, 0x2b, 0xe1, 0x03, 0x18}
+DEFINE_GUID!{GUID_DEVCLASS_MULTIPORTSERIAL,
+ 0x50906cb8, 0xba12, 0x11d1, 0xbf, 0x5d, 0x00, 0x00, 0xf8, 0x05, 0xf5, 0x30}
+DEFINE_GUID!{GUID_DEVCLASS_NET,
+ 0x4d36e972, 0xe325, 0x11ce, 0xbf, 0xc1, 0x08, 0x00, 0x2b, 0xe1, 0x03, 0x18}
+DEFINE_GUID!{GUID_DEVCLASS_NETCLIENT,
+ 0x4d36e973, 0xe325, 0x11ce, 0xbf, 0xc1, 0x08, 0x00, 0x2b, 0xe1, 0x03, 0x18}
+DEFINE_GUID!{GUID_DEVCLASS_NETSERVICE,
+ 0x4d36e974, 0xe325, 0x11ce, 0xbf, 0xc1, 0x08, 0x00, 0x2b, 0xe1, 0x03, 0x18}
+DEFINE_GUID!{GUID_DEVCLASS_NETTRANS,
+ 0x4d36e975, 0xe325, 0x11ce, 0xbf, 0xc1, 0x08, 0x00, 0x2b, 0xe1, 0x03, 0x18}
+DEFINE_GUID!{GUID_DEVCLASS_NODRIVER,
+ 0x4d36e976, 0xe325, 0x11ce, 0xbf, 0xc1, 0x08, 0x00, 0x2b, 0xe1, 0x03, 0x18}
+DEFINE_GUID!{GUID_DEVCLASS_PCMCIA,
+ 0x4d36e977, 0xe325, 0x11ce, 0xbf, 0xc1, 0x08, 0x00, 0x2b, 0xe1, 0x03, 0x18}
+DEFINE_GUID!{GUID_DEVCLASS_PNPPRINTERS,
+ 0x4658ee7e, 0xf050, 0x11d1, 0xb6, 0xbd, 0x00, 0xc0, 0x4f, 0xa3, 0x72, 0xa7}
+DEFINE_GUID!{GUID_DEVCLASS_PORTS,
+ 0x4d36e978, 0xe325, 0x11ce, 0xbf, 0xc1, 0x08, 0x00, 0x2b, 0xe1, 0x03, 0x18}
+DEFINE_GUID!{GUID_DEVCLASS_PRINTER,
+ 0x4d36e979, 0xe325, 0x11ce, 0xbf, 0xc1, 0x08, 0x00, 0x2b, 0xe1, 0x03, 0x18}
+DEFINE_GUID!{GUID_DEVCLASS_PRINTERUPGRADE,
+ 0x4d36e97a, 0xe325, 0x11ce, 0xbf, 0xc1, 0x08, 0x00, 0x2b, 0xe1, 0x03, 0x18}
+DEFINE_GUID!{GUID_DEVCLASS_PROCESSOR,
+ 0x50127dc3, 0x0f36, 0x415e, 0xa6, 0xcc, 0x4c, 0xb3, 0xbe, 0x91, 0x0B, 0x65}
+DEFINE_GUID!{GUID_DEVCLASS_SBP2,
+ 0xd48179be, 0xec20, 0x11d1, 0xb6, 0xb8, 0x00, 0xc0, 0x4f, 0xa3, 0x72, 0xa7}
+DEFINE_GUID!{GUID_DEVCLASS_SCSIADAPTER,
+ 0x4d36e97b, 0xe325, 0x11ce, 0xbf, 0xc1, 0x08, 0x00, 0x2b, 0xe1, 0x03, 0x18}
+DEFINE_GUID!{GUID_DEVCLASS_SECURITYACCELERATOR,
+ 0x268c95a1, 0xedfe, 0x11d3, 0x95, 0xc3, 0x00, 0x10, 0xdc, 0x40, 0x50, 0xa5}
+DEFINE_GUID!{GUID_DEVCLASS_SENSOR,
+ 0x5175d334, 0xc371, 0x4806, 0xb3, 0xba, 0x71, 0xfd, 0x53, 0xc9, 0x25, 0x8d}
+DEFINE_GUID!{GUID_DEVCLASS_SIDESHOW,
+ 0x997b5d8d, 0xc442, 0x4f2e, 0xba, 0xf3, 0x9c, 0x8e, 0x67, 0x1e, 0x9e, 0x21}
+DEFINE_GUID!{GUID_DEVCLASS_SMARTCARDREADER,
+ 0x50dd5230, 0xba8a, 0x11d1, 0xbf, 0x5d, 0x00, 0x00, 0xf8, 0x05, 0xf5, 0x30}
+DEFINE_GUID!{GUID_DEVCLASS_SOUND,
+ 0x4d36e97c, 0xe325, 0x11ce, 0xbf, 0xc1, 0x08, 0x00, 0x2b, 0xe1, 0x03, 0x18}
+DEFINE_GUID!{GUID_DEVCLASS_SYSTEM,
+ 0x4d36e97d, 0xe325, 0x11ce, 0xbf, 0xc1, 0x08, 0x00, 0x2b, 0xe1, 0x03, 0x18}
+DEFINE_GUID!{GUID_DEVCLASS_TAPEDRIVE,
+ 0x6d807884, 0x7d21, 0x11cf, 0x80, 0x1c, 0x08, 0x00, 0x2b, 0xe1, 0x03, 0x18}
+DEFINE_GUID!{GUID_DEVCLASS_UNKNOWN,
+ 0x4d36e97e, 0xe325, 0x11ce, 0xbf, 0xc1, 0x08, 0x00, 0x2b, 0xe1, 0x03, 0x18}
+DEFINE_GUID!{GUID_DEVCLASS_USB,
+ 0x36fc9e60, 0xc465, 0x11cf, 0x80, 0x56, 0x44, 0x45, 0x53, 0x54, 0x00, 0x00}
+DEFINE_GUID!{GUID_DEVCLASS_VOLUME,
+ 0x71a27cdd, 0x812a, 0x11d0, 0xbe, 0xc7, 0x08, 0x00, 0x2b, 0xe2, 0x09, 0x2f}
+DEFINE_GUID!{GUID_DEVCLASS_VOLUMESNAPSHOT,
+ 0x533c5b84, 0xec70, 0x11d2, 0x95, 0x05, 0x00, 0xc0, 0x4f, 0x79, 0xde, 0xaf}
+DEFINE_GUID!{GUID_DEVCLASS_WCEUSBS,
+ 0x25dbce51, 0x6c8f, 0x4a72, 0x8a, 0x6d, 0xb5, 0x4c, 0x2b, 0x4f, 0xc8, 0x35}
+DEFINE_GUID!{GUID_DEVCLASS_WPD,
+ 0xeec5ad98, 0x8080, 0x425f, 0x92, 0x2a, 0xda, 0xbf, 0x3d, 0xe3, 0xf6, 0x9a}
+DEFINE_GUID!{GUID_DEVCLASS_EHSTORAGESILO,
+ 0x9da2b80f, 0xf89f, 0x4a49, 0xa5, 0xc2, 0x51, 0x1b, 0x08, 0x5b, 0x9e, 0x8a}
+DEFINE_GUID!{GUID_DEVCLASS_FIRMWARE,
+ 0xf2e7dd72, 0x6468, 0x4e36, 0xb6, 0xf1, 0x64, 0x88, 0xf4, 0x2c, 0x1b, 0x52}
+DEFINE_GUID!{GUID_DEVCLASS_EXTENSION,
+ 0xe2f84ce7, 0x8efa, 0x411c, 0xaa, 0x69, 0x97, 0x45, 0x4c, 0xa4, 0xcb, 0x57}
+DEFINE_GUID!{GUID_DEVCLASS_FSFILTER_TOP,
+ 0xb369baf4, 0x5568, 0x4e82, 0xa8, 0x7e, 0xa9, 0x3e, 0xb1, 0x6b, 0xca, 0x87}
+DEFINE_GUID!{GUID_DEVCLASS_FSFILTER_ACTIVITYMONITOR,
+ 0xb86dff51, 0xa31e, 0x4bac, 0xb3, 0xcf, 0xe8, 0xcf, 0xe7, 0x5c, 0x9f, 0xc2}
+DEFINE_GUID!{GUID_DEVCLASS_FSFILTER_UNDELETE,
+ 0xfe8f1572, 0xc67a, 0x48c0, 0xbb, 0xac, 0x0b, 0x5c, 0x6d, 0x66, 0xca, 0xfb}
+DEFINE_GUID!{GUID_DEVCLASS_FSFILTER_ANTIVIRUS,
+ 0xb1d1a169, 0xc54f, 0x4379, 0x81, 0xdb, 0xbe, 0xe7, 0xd8, 0x8d, 0x74, 0x54}
+DEFINE_GUID!{GUID_DEVCLASS_FSFILTER_REPLICATION,
+ 0x48d3ebc4, 0x4cf8, 0x48ff, 0xb8, 0x69, 0x9c, 0x68, 0xad, 0x42, 0xeb, 0x9f}
+DEFINE_GUID!{GUID_DEVCLASS_FSFILTER_CONTINUOUSBACKUP,
+ 0x71aa14f8, 0x6fad, 0x4622, 0xad, 0x77, 0x92, 0xbb, 0x9d, 0x7e, 0x69, 0x47}
+DEFINE_GUID!{GUID_DEVCLASS_FSFILTER_CONTENTSCREENER,
+ 0x3e3f0674, 0xc83c, 0x4558, 0xbb, 0x26, 0x98, 0x20, 0xe1, 0xeb, 0xa5, 0xc5}
+DEFINE_GUID!{GUID_DEVCLASS_FSFILTER_QUOTAMANAGEMENT,
+ 0x8503c911, 0xa6c7, 0x4919, 0x8f, 0x79, 0x50, 0x28, 0xf5, 0x86, 0x6b, 0x0c}
+DEFINE_GUID!{GUID_DEVCLASS_FSFILTER_SYSTEMRECOVERY,
+ 0x2db15374, 0x706e, 0x4131, 0xa0, 0xc7, 0xd7, 0xc7, 0x8e, 0xb0, 0x28, 0x9a}
+DEFINE_GUID!{GUID_DEVCLASS_FSFILTER_CFSMETADATASERVER,
+ 0xcdcf0939, 0xb75b, 0x4630, 0xbf, 0x76, 0x80, 0xf7, 0xba, 0x65, 0x58, 0x84}
+DEFINE_GUID!{GUID_DEVCLASS_FSFILTER_HSM,
+ 0xd546500a, 0x2aeb, 0x45f6, 0x94, 0x82, 0xf4, 0xb1, 0x79, 0x9c, 0x31, 0x77}
+DEFINE_GUID!{GUID_DEVCLASS_FSFILTER_COMPRESSION,
+ 0xf3586baf, 0xb5aa, 0x49b5, 0x8d, 0x6c, 0x05, 0x69, 0x28, 0x4c, 0x63, 0x9f}
+DEFINE_GUID!{GUID_DEVCLASS_FSFILTER_ENCRYPTION,
+ 0xa0a701c0, 0xa511, 0x42ff, 0xaa, 0x6c, 0x06, 0xdc, 0x03, 0x95, 0x57, 0x6f}
+DEFINE_GUID!{GUID_DEVCLASS_FSFILTER_VIRTUALIZATION,
+ 0xf75a86c0, 0x10d8, 0x4c3a, 0xb2, 0x33, 0xed, 0x60, 0xe4, 0xcd, 0xfa, 0xac}
+DEFINE_GUID!{GUID_DEVCLASS_FSFILTER_PHYSICALQUOTAMANAGEMENT,
+ 0x6a0a8e78, 0xbba6, 0x4fc4, 0xa7, 0x09, 0x1e, 0x33, 0xcd, 0x09, 0xd6, 0x7e}
+DEFINE_GUID!{GUID_DEVCLASS_FSFILTER_OPENFILEBACKUP,
+ 0xf8ecafa6, 0x66d1, 0x41a5, 0x89, 0x9b, 0x66, 0x58, 0x5d, 0x72, 0x16, 0xb7}
+DEFINE_GUID!{GUID_DEVCLASS_FSFILTER_SECURITYENHANCER,
+ 0xd02bc3da, 0x0c8e, 0x4945, 0x9b, 0xd5, 0xf1, 0x88, 0x3c, 0x22, 0x6c, 0x8c}
+DEFINE_GUID!{GUID_DEVCLASS_FSFILTER_COPYPROTECTION,
+ 0x89786ff1, 0x9c12, 0x402f, 0x9c, 0x9e, 0x17, 0x75, 0x3c, 0x7f, 0x43, 0x75}
+DEFINE_GUID!{GUID_DEVCLASS_FSFILTER_BOTTOM,
+ 0x37765ea0, 0x5958, 0x4fc9, 0xb0, 0x4b, 0x2f, 0xdf, 0xef, 0x97, 0xe5, 0x9e}
+DEFINE_GUID!{GUID_DEVCLASS_FSFILTER_SYSTEM,
+ 0x5d1b9aaa, 0x01e2, 0x46af, 0x84, 0x9f, 0x27, 0x2b, 0x3f, 0x32, 0x4c, 0x46}
+DEFINE_GUID!{GUID_DEVCLASS_FSFILTER_INFRASTRUCTURE,
+ 0xe55fa6f9, 0x128c, 0x4d04, 0xab, 0xab, 0x63, 0x0c, 0x74, 0xb1, 0x45, 0x3a}
diff --git a/third_party/rust/chromium_crates_io/vendor/winapi-0.3.9/src/shared/devpkey.rs b/third_party/rust/chromium_crates_io/vendor/winapi-0.3.9/src/shared/devpkey.rs
new file mode 100644
index 000000000000..db6855796453
--- /dev/null
+++ b/third_party/rust/chromium_crates_io/vendor/winapi-0.3.9/src/shared/devpkey.rs
@@ -0,0 +1,401 @@
+// Licensed under the Apache License, Version 2.0
+// or the MIT license
+// , at your option.
+// All files in the project carrying such notice may not be copied, modified, or distributed
+// except according to those terms
+//! Defines property keys for the Plug and Play Device Property API.
+use shared::devpropdef::DEVPROPKEY;
+DEFINE_DEVPROPKEY!{DEVPKEY_NAME,
+ 0xb725f130, 0x47ef, 0x101a, 0xa5, 0xf1, 0x02, 0x60, 0x8c, 0x9e, 0xeb, 0xac, 10}
+DEFINE_DEVPROPKEY!{DEVPKEY_Device_DeviceDesc,
+ 0xa45c254e, 0xdf1c, 0x4efd, 0x80, 0x20, 0x67, 0xd1, 0x46, 0xa8, 0x50, 0xe0, 2}
+DEFINE_DEVPROPKEY!{DEVPKEY_Device_HardwareIds,
+ 0xa45c254e, 0xdf1c, 0x4efd, 0x80, 0x20, 0x67, 0xd1, 0x46, 0xa8, 0x50, 0xe0, 3}
+DEFINE_DEVPROPKEY!{DEVPKEY_Device_CompatibleIds,
+ 0xa45c254e, 0xdf1c, 0x4efd, 0x80, 0x20, 0x67, 0xd1, 0x46, 0xa8, 0x50, 0xe0, 4}
+DEFINE_DEVPROPKEY!{DEVPKEY_Device_Service,
+ 0xa45c254e, 0xdf1c, 0x4efd, 0x80, 0x20, 0x67, 0xd1, 0x46, 0xa8, 0x50, 0xe0, 6}
+DEFINE_DEVPROPKEY!{DEVPKEY_Device_Class,
+ 0xa45c254e, 0xdf1c, 0x4efd, 0x80, 0x20, 0x67, 0xd1, 0x46, 0xa8, 0x50, 0xe0, 9}
+DEFINE_DEVPROPKEY!{DEVPKEY_Device_ClassGuid,
+ 0xa45c254e, 0xdf1c, 0x4efd, 0x80, 0x20, 0x67, 0xd1, 0x46, 0xa8, 0x50, 0xe0, 10}
+DEFINE_DEVPROPKEY!{DEVPKEY_Device_Driver,
+ 0xa45c254e, 0xdf1c, 0x4efd, 0x80, 0x20, 0x67, 0xd1, 0x46, 0xa8, 0x50, 0xe0, 11}
+DEFINE_DEVPROPKEY!{DEVPKEY_Device_ConfigFlags,
+ 0xa45c254e, 0xdf1c, 0x4efd, 0x80, 0x20, 0x67, 0xd1, 0x46, 0xa8, 0x50, 0xe0, 12}
+DEFINE_DEVPROPKEY!{DEVPKEY_Device_Manufacturer,
+ 0xa45c254e, 0xdf1c, 0x4efd, 0x80, 0x20, 0x67, 0xd1, 0x46, 0xa8, 0x50, 0xe0, 13}
+DEFINE_DEVPROPKEY!{DEVPKEY_Device_FriendlyName,
+ 0xa45c254e, 0xdf1c, 0x4efd, 0x80, 0x20, 0x67, 0xd1, 0x46, 0xa8, 0x50, 0xe0, 14}
+DEFINE_DEVPROPKEY!{DEVPKEY_Device_LocationInfo,
+ 0xa45c254e, 0xdf1c, 0x4efd, 0x80, 0x20, 0x67, 0xd1, 0x46, 0xa8, 0x50, 0xe0, 15}
+DEFINE_DEVPROPKEY!{DEVPKEY_Device_PDOName,
+ 0xa45c254e, 0xdf1c, 0x4efd, 0x80, 0x20, 0x67, 0xd1, 0x46, 0xa8, 0x50, 0xe0, 16}
+DEFINE_DEVPROPKEY!{DEVPKEY_Device_Capabilities,
+ 0xa45c254e, 0xdf1c, 0x4efd, 0x80, 0x20, 0x67, 0xd1, 0x46, 0xa8, 0x50, 0xe0, 17}
+DEFINE_DEVPROPKEY!{DEVPKEY_Device_UINumber,
+ 0xa45c254e, 0xdf1c, 0x4efd, 0x80, 0x20, 0x67, 0xd1, 0x46, 0xa8, 0x50, 0xe0, 18}
+DEFINE_DEVPROPKEY!{DEVPKEY_Device_UpperFilters,
+ 0xa45c254e, 0xdf1c, 0x4efd, 0x80, 0x20, 0x67, 0xd1, 0x46, 0xa8, 0x50, 0xe0, 19}
+DEFINE_DEVPROPKEY!{DEVPKEY_Device_LowerFilters,
+ 0xa45c254e, 0xdf1c, 0x4efd, 0x80, 0x20, 0x67, 0xd1, 0x46, 0xa8, 0x50, 0xe0, 20}
+DEFINE_DEVPROPKEY!{DEVPKEY_Device_BusTypeGuid,
+ 0xa45c254e, 0xdf1c, 0x4efd, 0x80, 0x20, 0x67, 0xd1, 0x46, 0xa8, 0x50, 0xe0, 21}
+DEFINE_DEVPROPKEY!{DEVPKEY_Device_LegacyBusType,
+ 0xa45c254e, 0xdf1c, 0x4efd, 0x80, 0x20, 0x67, 0xd1, 0x46, 0xa8, 0x50, 0xe0, 22}
+DEFINE_DEVPROPKEY!{DEVPKEY_Device_BusNumber,
+ 0xa45c254e, 0xdf1c, 0x4efd, 0x80, 0x20, 0x67, 0xd1, 0x46, 0xa8, 0x50, 0xe0, 23}
+DEFINE_DEVPROPKEY!{DEVPKEY_Device_EnumeratorName,
+ 0xa45c254e, 0xdf1c, 0x4efd, 0x80, 0x20, 0x67, 0xd1, 0x46, 0xa8, 0x50, 0xe0, 24}
+DEFINE_DEVPROPKEY!{DEVPKEY_Device_Security,
+ 0xa45c254e, 0xdf1c, 0x4efd, 0x80, 0x20, 0x67, 0xd1, 0x46, 0xa8, 0x50, 0xe0, 25}
+DEFINE_DEVPROPKEY!{DEVPKEY_Device_SecuritySDS,
+ 0xa45c254e, 0xdf1c, 0x4efd, 0x80, 0x20, 0x67, 0xd1, 0x46, 0xa8, 0x50, 0xe0, 26}
+DEFINE_DEVPROPKEY!{DEVPKEY_Device_DevType,
+ 0xa45c254e, 0xdf1c, 0x4efd, 0x80, 0x20, 0x67, 0xd1, 0x46, 0xa8, 0x50, 0xe0, 27}
+DEFINE_DEVPROPKEY!{DEVPKEY_Device_Exclusive,
+ 0xa45c254e, 0xdf1c, 0x4efd, 0x80, 0x20, 0x67, 0xd1, 0x46, 0xa8, 0x50, 0xe0, 28}
+DEFINE_DEVPROPKEY!{DEVPKEY_Device_Characteristics,
+ 0xa45c254e, 0xdf1c, 0x4efd, 0x80, 0x20, 0x67, 0xd1, 0x46, 0xa8, 0x50, 0xe0, 29}
+DEFINE_DEVPROPKEY!{DEVPKEY_Device_Address,
+ 0xa45c254e, 0xdf1c, 0x4efd, 0x80, 0x20, 0x67, 0xd1, 0x46, 0xa8, 0x50, 0xe0, 30}
+DEFINE_DEVPROPKEY!{DEVPKEY_Device_UINumberDescFormat,
+ 0xa45c254e, 0xdf1c, 0x4efd, 0x80, 0x20, 0x67, 0xd1, 0x46, 0xa8, 0x50, 0xe0, 31}
+DEFINE_DEVPROPKEY!{DEVPKEY_Device_PowerData,
+ 0xa45c254e, 0xdf1c, 0x4efd, 0x80, 0x20, 0x67, 0xd1, 0x46, 0xa8, 0x50, 0xe0, 32}
+DEFINE_DEVPROPKEY!{DEVPKEY_Device_RemovalPolicy,
+ 0xa45c254e, 0xdf1c, 0x4efd, 0x80, 0x20, 0x67, 0xd1, 0x46, 0xa8, 0x50, 0xe0, 33}
+DEFINE_DEVPROPKEY!{DEVPKEY_Device_RemovalPolicyDefault,
+ 0xa45c254e, 0xdf1c, 0x4efd, 0x80, 0x20, 0x67, 0xd1, 0x46, 0xa8, 0x50, 0xe0, 34}
+DEFINE_DEVPROPKEY!{DEVPKEY_Device_RemovalPolicyOverride,
+ 0xa45c254e, 0xdf1c, 0x4efd, 0x80, 0x20, 0x67, 0xd1, 0x46, 0xa8, 0x50, 0xe0, 35}
+DEFINE_DEVPROPKEY!{DEVPKEY_Device_InstallState,
+ 0xa45c254e, 0xdf1c, 0x4efd, 0x80, 0x20, 0x67, 0xd1, 0x46, 0xa8, 0x50, 0xe0, 36}
+DEFINE_DEVPROPKEY!{DEVPKEY_Device_LocationPaths,
+ 0xa45c254e, 0xdf1c, 0x4efd, 0x80, 0x20, 0x67, 0xd1, 0x46, 0xa8, 0x50, 0xe0, 37}
+DEFINE_DEVPROPKEY!{DEVPKEY_Device_BaseContainerId,
+ 0xa45c254e, 0xdf1c, 0x4efd, 0x80, 0x20, 0x67, 0xd1, 0x46, 0xa8, 0x50, 0xe0, 38}
+DEFINE_DEVPROPKEY!{DEVPKEY_Device_InstanceId,
+ 0x78c34fc8, 0x104a, 0x4aca, 0x9e, 0xa4, 0x52, 0x4d, 0x52, 0x99, 0x6e, 0x57, 256}
+DEFINE_DEVPROPKEY!{DEVPKEY_Device_DevNodeStatus,
+ 0x4340a6c5, 0x93fa, 0x4706, 0x97, 0x2c, 0x7b, 0x64, 0x80, 0x08, 0xa5, 0xa7, 2}
+DEFINE_DEVPROPKEY!{DEVPKEY_Device_ProblemCode,
+ 0x4340a6c5, 0x93fa, 0x4706, 0x97, 0x2c, 0x7b, 0x64, 0x80, 0x08, 0xa5, 0xa7, 3}
+DEFINE_DEVPROPKEY!{DEVPKEY_Device_EjectionRelations,
+ 0x4340a6c5, 0x93fa, 0x4706, 0x97, 0x2c, 0x7b, 0x64, 0x80, 0x08, 0xa5, 0xa7, 4}
+DEFINE_DEVPROPKEY!{DEVPKEY_Device_RemovalRelations,
+ 0x4340a6c5, 0x93fa, 0x4706, 0x97, 0x2c, 0x7b, 0x64, 0x80, 0x08, 0xa5, 0xa7, 5}
+DEFINE_DEVPROPKEY!{DEVPKEY_Device_PowerRelations,
+ 0x4340a6c5, 0x93fa, 0x4706, 0x97, 0x2c, 0x7b, 0x64, 0x80, 0x08, 0xa5, 0xa7, 6}
+DEFINE_DEVPROPKEY!{DEVPKEY_Device_BusRelations,
+ 0x4340a6c5, 0x93fa, 0x4706, 0x97, 0x2c, 0x7b, 0x64, 0x80, 0x08, 0xa5, 0xa7, 7}
+DEFINE_DEVPROPKEY!{DEVPKEY_Device_Parent,
+ 0x4340a6c5, 0x93fa, 0x4706, 0x97, 0x2c, 0x7b, 0x64, 0x80, 0x08, 0xa5, 0xa7, 8}
+DEFINE_DEVPROPKEY!{DEVPKEY_Device_Children,
+ 0x4340a6c5, 0x93fa, 0x4706, 0x97, 0x2c, 0x7b, 0x64, 0x80, 0x08, 0xa5, 0xa7, 9}
+DEFINE_DEVPROPKEY!{DEVPKEY_Device_Siblings,
+ 0x4340a6c5, 0x93fa, 0x4706, 0x97, 0x2c, 0x7b, 0x64, 0x80, 0x08, 0xa5, 0xa7, 10}
+DEFINE_DEVPROPKEY!{DEVPKEY_Device_TransportRelations,
+ 0x4340a6c5, 0x93fa, 0x4706, 0x97, 0x2c, 0x7b, 0x64, 0x80, 0x08, 0xa5, 0xa7, 11}
+DEFINE_DEVPROPKEY!{DEVPKEY_Device_ProblemStatus,
+ 0x4340a6c5, 0x93fa, 0x4706, 0x97, 0x2c, 0x7b, 0x64, 0x80, 0x08, 0xa5, 0xa7, 12}
+DEFINE_DEVPROPKEY!{DEVPKEY_Device_Reported,
+ 0x80497100, 0x8c73, 0x48b9, 0xaa, 0xd9, 0xce, 0x38, 0x7e, 0x19, 0xc5, 0x6e, 2}
+DEFINE_DEVPROPKEY!{DEVPKEY_Device_Legacy,
+ 0x80497100, 0x8c73, 0x48b9, 0xaa, 0xd9, 0xce, 0x38, 0x7e, 0x19, 0xc5, 0x6e, 3}
+DEFINE_DEVPROPKEY!{DEVPKEY_Device_ContainerId,
+ 0x8c7ed206, 0x3f8a, 0x4827, 0xb3, 0xab, 0xae, 0x9e, 0x1f, 0xae, 0xfc, 0x6c, 2}
+DEFINE_DEVPROPKEY!{DEVPKEY_Device_InLocalMachineContainer,
+ 0x8c7ed206, 0x3f8a, 0x4827, 0xb3, 0xab, 0xae, 0x9e, 0x1f, 0xae, 0xfc, 0x6c, 4}
+DEFINE_DEVPROPKEY!{DEVPKEY_Device_Model,
+ 0x78c34fc8, 0x104a, 0x4aca, 0x9e, 0xa4, 0x52, 0x4d, 0x52, 0x99, 0x6e, 0x57, 39}
+DEFINE_DEVPROPKEY!{DEVPKEY_Device_ModelId,
+ 0x80d81ea6, 0x7473, 0x4b0c, 0x82, 0x16, 0xef, 0xc1, 0x1a, 0x2c, 0x4c, 0x8b, 2}
+DEFINE_DEVPROPKEY!{DEVPKEY_Device_FriendlyNameAttributes,
+ 0x80d81ea6, 0x7473, 0x4b0c, 0x82, 0x16, 0xef, 0xc1, 0x1a, 0x2c, 0x4c, 0x8b, 3}
+DEFINE_DEVPROPKEY!{DEVPKEY_Device_ManufacturerAttributes,
+ 0x80d81ea6, 0x7473, 0x4b0c, 0x82, 0x16, 0xef, 0xc1, 0x1a, 0x2c, 0x4c, 0x8b, 4}
+DEFINE_DEVPROPKEY!{DEVPKEY_Device_PresenceNotForDevice,
+ 0x80d81ea6, 0x7473, 0x4b0c, 0x82, 0x16, 0xef, 0xc1, 0x1a, 0x2c, 0x4c, 0x8b, 5}
+DEFINE_DEVPROPKEY!{DEVPKEY_Device_SignalStrength,
+ 0x80d81ea6, 0x7473, 0x4b0c, 0x82, 0x16, 0xef, 0xc1, 0x1a, 0x2c, 0x4c, 0x8b, 6}
+DEFINE_DEVPROPKEY!{DEVPKEY_Device_IsAssociateableByUserAction,
+ 0x80d81ea6, 0x7473, 0x4b0c, 0x82, 0x16, 0xef, 0xc1, 0x1a, 0x2c, 0x4c, 0x8b, 7}
+DEFINE_DEVPROPKEY!{DEVPKEY_Device_ShowInUninstallUI,
+ 0x80d81ea6, 0x7473, 0x4b0c, 0x82, 0x16, 0xef, 0xc1, 0x1a, 0x2c, 0x4c, 0x8b, 8}
+pub const DEVPKEY_Numa_Proximity_Domain: DEVPROPKEY = DEVPKEY_Device_Numa_Proximity_Domain;
+DEFINE_DEVPROPKEY!{DEVPKEY_Device_Numa_Proximity_Domain,
+ 0x540b947e, 0x8b40, 0x45bc, 0xa8, 0xa2, 0x6a, 0x0b, 0x89, 0x4c, 0xbd, 0xa2, 1}
+DEFINE_DEVPROPKEY!{DEVPKEY_Device_DHP_Rebalance_Policy,
+ 0x540b947e, 0x8b40, 0x45bc, 0xa8, 0xa2, 0x6a, 0x0b, 0x89, 0x4c, 0xbd, 0xa2, 2}
+DEFINE_DEVPROPKEY!{DEVPKEY_Device_Numa_Node,
+ 0x540b947e, 0x8b40, 0x45bc, 0xa8, 0xa2, 0x6a, 0x0b, 0x89, 0x4c, 0xbd, 0xa2, 3}
+DEFINE_DEVPROPKEY!{DEVPKEY_Device_BusReportedDeviceDesc,
+ 0x540b947e, 0x8b40, 0x45bc, 0xa8, 0xa2, 0x6a, 0x0b, 0x89, 0x4c, 0xbd, 0xa2, 4}
+DEFINE_DEVPROPKEY!{DEVPKEY_Device_IsPresent,
+ 0x540b947e, 0x8b40, 0x45bc, 0xa8, 0xa2, 0x6a, 0x0b, 0x89, 0x4c, 0xbd, 0xa2, 5}
+DEFINE_DEVPROPKEY!{DEVPKEY_Device_HasProblem,
+ 0x540b947e, 0x8b40, 0x45bc, 0xa8, 0xa2, 0x6a, 0x0b, 0x89, 0x4c, 0xbd, 0xa2, 6}
+DEFINE_DEVPROPKEY!{DEVPKEY_Device_ConfigurationId,
+ 0x540b947e, 0x8b40, 0x45bc, 0xa8, 0xa2, 0x6a, 0x0b, 0x89, 0x4c, 0xbd, 0xa2, 7}
+DEFINE_DEVPROPKEY!{DEVPKEY_Device_ReportedDeviceIdsHash,
+ 0x540b947e, 0x8b40, 0x45bc, 0xa8, 0xa2, 0x6a, 0x0b, 0x89, 0x4c, 0xbd, 0xa2, 8}
+DEFINE_DEVPROPKEY!{DEVPKEY_Device_PhysicalDeviceLocation,
+ 0x540b947e, 0x8b40, 0x45bc, 0xa8, 0xa2, 0x6a, 0x0b, 0x89, 0x4c, 0xbd, 0xa2, 9}
+DEFINE_DEVPROPKEY!{DEVPKEY_Device_BiosDeviceName,
+ 0x540b947e, 0x8b40, 0x45bc, 0xa8, 0xa2, 0x6a, 0x0b, 0x89, 0x4c, 0xbd, 0xa2, 10}
+DEFINE_DEVPROPKEY!{DEVPKEY_Device_DriverProblemDesc,
+ 0x540b947e, 0x8b40, 0x45bc, 0xa8, 0xa2, 0x6a, 0x0b, 0x89, 0x4c, 0xbd, 0xa2, 11}
+DEFINE_DEVPROPKEY!{DEVPKEY_Device_DebuggerSafe,
+ 0x540b947e, 0x8b40, 0x45bc, 0xa8, 0xa2, 0x6a, 0x0b, 0x89, 0x4c, 0xbd, 0xa2, 12}
+DEFINE_DEVPROPKEY!{DEVPKEY_Device_PostInstallInProgress,
+ 0x540b947e, 0x8b40, 0x45bc, 0xa8, 0xa2, 0x6a, 0x0b, 0x89, 0x4c, 0xbd, 0xa2, 13}
+DEFINE_DEVPROPKEY!{DEVPKEY_Device_Stack,
+ 0x540b947e, 0x8b40, 0x45bc, 0xa8, 0xa2, 0x6a, 0x0b, 0x89, 0x4c, 0xbd, 0xa2, 14}
+DEFINE_DEVPROPKEY!{DEVPKEY_Device_ExtendedConfigurationIds,
+ 0x540b947e, 0x8b40, 0x45bc, 0xa8, 0xa2, 0x6a, 0x0b, 0x89, 0x4c, 0xbd, 0xa2, 15}
+DEFINE_DEVPROPKEY!{DEVPKEY_Device_IsRebootRequired,
+ 0x540b947e, 0x8b40, 0x45bc, 0xa8, 0xa2, 0x6a, 0x0b, 0x89, 0x4c, 0xbd, 0xa2, 16}
+DEFINE_DEVPROPKEY!{DEVPKEY_Device_FirmwareDate,
+ 0x540b947e, 0x8b40, 0x45bc, 0xa8, 0xa2, 0x6a, 0x0b, 0x89, 0x4c, 0xbd, 0xa2, 17}
+DEFINE_DEVPROPKEY!{DEVPKEY_Device_FirmwareVersion,
+ 0x540b947e, 0x8b40, 0x45bc, 0xa8, 0xa2, 0x6a, 0x0b, 0x89, 0x4c, 0xbd, 0xa2, 18}
+DEFINE_DEVPROPKEY!{DEVPKEY_Device_FirmwareRevision,
+ 0x540b947e, 0x8b40, 0x45bc, 0xa8, 0xa2, 0x6a, 0x0b, 0x89, 0x4c, 0xbd, 0xa2, 19}
+DEFINE_DEVPROPKEY!{DEVPKEY_Device_DependencyProviders,
+ 0x540b947e, 0x8b40, 0x45bc, 0xa8, 0xa2, 0x6a, 0x0b, 0x89, 0x4c, 0xbd, 0xa2, 20}
+DEFINE_DEVPROPKEY!{DEVPKEY_Device_DependencyDependents,
+ 0x540b947e, 0x8b40, 0x45bc, 0xa8, 0xa2, 0x6a, 0x0b, 0x89, 0x4c, 0xbd, 0xa2, 21}
+DEFINE_DEVPROPKEY!{DEVPKEY_Device_SoftRestartSupported,
+ 0x540b947e, 0x8b40, 0x45bc, 0xa8, 0xa2, 0x6a, 0x0b, 0x89, 0x4c, 0xbd, 0xa2, 22}
+DEFINE_DEVPROPKEY!{DEVPKEY_Device_SessionId,
+ 0x83da6326, 0x97a6, 0x4088, 0x94, 0x53, 0xa1, 0x92, 0x3f, 0x57, 0x3b, 0x29, 6}
+DEFINE_DEVPROPKEY!{DEVPKEY_Device_InstallDate,
+ 0x83da6326, 0x97a6, 0x4088, 0x94, 0x53, 0xa1, 0x92, 0x3f, 0x57, 0x3b, 0x29, 100}
+DEFINE_DEVPROPKEY!{DEVPKEY_Device_FirstInstallDate,
+ 0x83da6326, 0x97a6, 0x4088, 0x94, 0x53, 0xa1, 0x92, 0x3f, 0x57, 0x3b, 0x29, 101}
+DEFINE_DEVPROPKEY!{DEVPKEY_Device_LastArrivalDate,
+ 0x83da6326, 0x97a6, 0x4088, 0x94, 0x53, 0xa1, 0x92, 0x3f, 0x57, 0x3b, 0x29, 102}
+DEFINE_DEVPROPKEY!{DEVPKEY_Device_LastRemovalDate,
+ 0x83da6326, 0x97a6, 0x4088, 0x94, 0x53, 0xa1, 0x92, 0x3f, 0x57, 0x3b, 0x29, 103}
+DEFINE_DEVPROPKEY!{DEVPKEY_Device_DriverDate,
+ 0xa8b865dd, 0x2e3d, 0x4094, 0xad, 0x97, 0xe5, 0x93, 0xa7, 0xc, 0x75, 0xd6, 2}
+DEFINE_DEVPROPKEY!{DEVPKEY_Device_DriverVersion,
+ 0xa8b865dd, 0x2e3d, 0x4094, 0xad, 0x97, 0xe5, 0x93, 0xa7, 0xc, 0x75, 0xd6, 3}
+DEFINE_DEVPROPKEY!{DEVPKEY_Device_DriverDesc,
+ 0xa8b865dd, 0x2e3d, 0x4094, 0xad, 0x97, 0xe5, 0x93, 0xa7, 0xc, 0x75, 0xd6, 4}
+DEFINE_DEVPROPKEY!{DEVPKEY_Device_DriverInfPath,
+ 0xa8b865dd, 0x2e3d, 0x4094, 0xad, 0x97, 0xe5, 0x93, 0xa7, 0xc, 0x75, 0xd6, 5}
+DEFINE_DEVPROPKEY!{DEVPKEY_Device_DriverInfSection,
+ 0xa8b865dd, 0x2e3d, 0x4094, 0xad, 0x97, 0xe5, 0x93, 0xa7, 0xc, 0x75, 0xd6, 6}
+DEFINE_DEVPROPKEY!{DEVPKEY_Device_DriverInfSectionExt,
+ 0xa8b865dd, 0x2e3d, 0x4094, 0xad, 0x97, 0xe5, 0x93, 0xa7, 0xc, 0x75, 0xd6, 7}
+DEFINE_DEVPROPKEY!{DEVPKEY_Device_MatchingDeviceId,
+ 0xa8b865dd, 0x2e3d, 0x4094, 0xad, 0x97, 0xe5, 0x93, 0xa7, 0xc, 0x75, 0xd6, 8}
+DEFINE_DEVPROPKEY!{DEVPKEY_Device_DriverProvider,
+ 0xa8b865dd, 0x2e3d, 0x4094, 0xad, 0x97, 0xe5, 0x93, 0xa7, 0xc, 0x75, 0xd6, 9}
+DEFINE_DEVPROPKEY!{DEVPKEY_Device_DriverPropPageProvider,
+ 0xa8b865dd, 0x2e3d, 0x4094, 0xad, 0x97, 0xe5, 0x93, 0xa7, 0xc, 0x75, 0xd6, 10}
+DEFINE_DEVPROPKEY!{DEVPKEY_Device_DriverCoInstallers,
+ 0xa8b865dd, 0x2e3d, 0x4094, 0xad, 0x97, 0xe5, 0x93, 0xa7, 0xc, 0x75, 0xd6, 11}
+DEFINE_DEVPROPKEY!{DEVPKEY_Device_ResourcePickerTags,
+ 0xa8b865dd, 0x2e3d, 0x4094, 0xad, 0x97, 0xe5, 0x93, 0xa7, 0xc, 0x75, 0xd6, 12}
+DEFINE_DEVPROPKEY!{DEVPKEY_Device_ResourcePickerExceptions,
+ 0xa8b865dd, 0x2e3d, 0x4094, 0xad, 0x97, 0xe5, 0x93, 0xa7, 0xc, 0x75, 0xd6, 13}
+DEFINE_DEVPROPKEY!{DEVPKEY_Device_DriverRank,
+ 0xa8b865dd, 0x2e3d, 0x4094, 0xad, 0x97, 0xe5, 0x93, 0xa7, 0xc, 0x75, 0xd6, 14}
+DEFINE_DEVPROPKEY!{DEVPKEY_Device_DriverLogoLevel,
+ 0xa8b865dd, 0x2e3d, 0x4094, 0xad, 0x97, 0xe5, 0x93, 0xa7, 0xc, 0x75, 0xd6, 15}
+DEFINE_DEVPROPKEY!{DEVPKEY_Device_NoConnectSound,
+ 0xa8b865dd, 0x2e3d, 0x4094, 0xad, 0x97, 0xe5, 0x93, 0xa7, 0xc, 0x75, 0xd6, 17}
+DEFINE_DEVPROPKEY!{DEVPKEY_Device_GenericDriverInstalled,
+ 0xa8b865dd, 0x2e3d, 0x4094, 0xad, 0x97, 0xe5, 0x93, 0xa7, 0xc, 0x75, 0xd6, 18}
+DEFINE_DEVPROPKEY!{DEVPKEY_Device_AdditionalSoftwareRequested,
+ 0xa8b865dd, 0x2e3d, 0x4094, 0xad, 0x97, 0xe5, 0x93, 0xa7, 0xc, 0x75, 0xd6, 19}
+DEFINE_DEVPROPKEY!{DEVPKEY_Device_SafeRemovalRequired,
+ 0xafd97640, 0x86a3, 0x4210, 0xb6, 0x7c, 0x28, 0x9c, 0x41, 0xaa, 0xbe, 0x55, 2}
+DEFINE_DEVPROPKEY!{DEVPKEY_Device_SafeRemovalRequiredOverride,
+ 0xafd97640, 0x86a3, 0x4210, 0xb6, 0x7c, 0x28, 0x9c, 0x41, 0xaa, 0xbe, 0x55, 3}
+DEFINE_DEVPROPKEY!{DEVPKEY_DrvPkg_Model,
+ 0xcf73bb51, 0x3abf, 0x44a2, 0x85, 0xe0, 0x9a, 0x3d, 0xc7, 0xa1, 0x21, 0x32, 2}
+DEFINE_DEVPROPKEY!{DEVPKEY_DrvPkg_VendorWebSite,
+ 0xcf73bb51, 0x3abf, 0x44a2, 0x85, 0xe0, 0x9a, 0x3d, 0xc7, 0xa1, 0x21, 0x32, 3}
+DEFINE_DEVPROPKEY!{DEVPKEY_DrvPkg_DetailedDescription,
+ 0xcf73bb51, 0x3abf, 0x44a2, 0x85, 0xe0, 0x9a, 0x3d, 0xc7, 0xa1, 0x21, 0x32, 4}
+DEFINE_DEVPROPKEY!{DEVPKEY_DrvPkg_DocumentationLink,
+ 0xcf73bb51, 0x3abf, 0x44a2, 0x85, 0xe0, 0x9a, 0x3d, 0xc7, 0xa1, 0x21, 0x32, 5}
+DEFINE_DEVPROPKEY!{DEVPKEY_DrvPkg_Icon,
+ 0xcf73bb51, 0x3abf, 0x44a2, 0x85, 0xe0, 0x9a, 0x3d, 0xc7, 0xa1, 0x21, 0x32, 6}
+DEFINE_DEVPROPKEY!{DEVPKEY_DrvPkg_BrandingIcon,
+ 0xcf73bb51, 0x3abf, 0x44a2, 0x85, 0xe0, 0x9a, 0x3d, 0xc7, 0xa1, 0x21, 0x32, 7}
+DEFINE_DEVPROPKEY!{DEVPKEY_DeviceClass_UpperFilters,
+ 0x4321918b, 0xf69e, 0x470d, 0xa5, 0xde, 0x4d, 0x88, 0xc7, 0x5a, 0xd2, 0x4b, 19}
+DEFINE_DEVPROPKEY!{DEVPKEY_DeviceClass_LowerFilters,
+ 0x4321918b, 0xf69e, 0x470d, 0xa5, 0xde, 0x4d, 0x88, 0xc7, 0x5a, 0xd2, 0x4b, 20}
+DEFINE_DEVPROPKEY!{DEVPKEY_DeviceClass_Security,
+ 0x4321918b, 0xf69e, 0x470d, 0xa5, 0xde, 0x4d, 0x88, 0xc7, 0x5a, 0xd2, 0x4b, 25}
+DEFINE_DEVPROPKEY!{DEVPKEY_DeviceClass_SecuritySDS,
+ 0x4321918b, 0xf69e, 0x470d, 0xa5, 0xde, 0x4d, 0x88, 0xc7, 0x5a, 0xd2, 0x4b, 26}
+DEFINE_DEVPROPKEY!{DEVPKEY_DeviceClass_DevType,
+ 0x4321918b, 0xf69e, 0x470d, 0xa5, 0xde, 0x4d, 0x88, 0xc7, 0x5a, 0xd2, 0x4b, 27}
+DEFINE_DEVPROPKEY!{DEVPKEY_DeviceClass_Exclusive,
+ 0x4321918b, 0xf69e, 0x470d, 0xa5, 0xde, 0x4d, 0x88, 0xc7, 0x5a, 0xd2, 0x4b, 28}
+DEFINE_DEVPROPKEY!{DEVPKEY_DeviceClass_Characteristics,
+ 0x4321918b, 0xf69e, 0x470d, 0xa5, 0xde, 0x4d, 0x88, 0xc7, 0x5a, 0xd2, 0x4b, 29}
+DEFINE_DEVPROPKEY!{DEVPKEY_DeviceClass_Name,
+ 0x259abffc, 0x50a7, 0x47ce, 0xaf, 0x8, 0x68, 0xc9, 0xa7, 0xd7, 0x33, 0x66, 2}
+DEFINE_DEVPROPKEY!{DEVPKEY_DeviceClass_ClassName,
+ 0x259abffc, 0x50a7, 0x47ce, 0xaf, 0x8, 0x68, 0xc9, 0xa7, 0xd7, 0x33, 0x66, 3}
+DEFINE_DEVPROPKEY!{DEVPKEY_DeviceClass_Icon,
+ 0x259abffc, 0x50a7, 0x47ce, 0xaf, 0x8, 0x68, 0xc9, 0xa7, 0xd7, 0x33, 0x66, 4}
+DEFINE_DEVPROPKEY!{DEVPKEY_DeviceClass_ClassInstaller,
+ 0x259abffc, 0x50a7, 0x47ce, 0xaf, 0x8, 0x68, 0xc9, 0xa7, 0xd7, 0x33, 0x66, 5}
+DEFINE_DEVPROPKEY!{DEVPKEY_DeviceClass_PropPageProvider,
+ 0x259abffc, 0x50a7, 0x47ce, 0xaf, 0x8, 0x68, 0xc9, 0xa7, 0xd7, 0x33, 0x66, 6}
+DEFINE_DEVPROPKEY!{DEVPKEY_DeviceClass_NoInstallClass,
+ 0x259abffc, 0x50a7, 0x47ce, 0xaf, 0x8, 0x68, 0xc9, 0xa7, 0xd7, 0x33, 0x66, 7}
+DEFINE_DEVPROPKEY!{DEVPKEY_DeviceClass_NoDisplayClass,
+ 0x259abffc, 0x50a7, 0x47ce, 0xaf, 0x8, 0x68, 0xc9, 0xa7, 0xd7, 0x33, 0x66, 8}
+DEFINE_DEVPROPKEY!{DEVPKEY_DeviceClass_SilentInstall,
+ 0x259abffc, 0x50a7, 0x47ce, 0xaf, 0x8, 0x68, 0xc9, 0xa7, 0xd7, 0x33, 0x66, 9}
+DEFINE_DEVPROPKEY!{DEVPKEY_DeviceClass_NoUseClass,
+ 0x259abffc, 0x50a7, 0x47ce, 0xaf, 0x8, 0x68, 0xc9, 0xa7, 0xd7, 0x33, 0x66, 10}
+DEFINE_DEVPROPKEY!{DEVPKEY_DeviceClass_DefaultService,
+ 0x259abffc, 0x50a7, 0x47ce, 0xaf, 0x8, 0x68, 0xc9, 0xa7, 0xd7, 0x33, 0x66, 11}
+DEFINE_DEVPROPKEY!{DEVPKEY_DeviceClass_IconPath,
+ 0x259abffc, 0x50a7, 0x47ce, 0xaf, 0x8, 0x68, 0xc9, 0xa7, 0xd7, 0x33, 0x66, 12}
+DEFINE_DEVPROPKEY!{DEVPKEY_DeviceClass_DHPRebalanceOptOut,
+ 0xd14d3ef3, 0x66cf, 0x4ba2, 0x9d, 0x38, 0x0d, 0xdb, 0x37, 0xab, 0x47, 0x01, 2}
+DEFINE_DEVPROPKEY!{DEVPKEY_DeviceClass_ClassCoInstallers,
+ 0x713d1703, 0xa2e2, 0x49f5, 0x92, 0x14, 0x56, 0x47, 0x2e, 0xf3, 0xda, 0x5c, 2}
+DEFINE_DEVPROPKEY!{DEVPKEY_DeviceInterface_FriendlyName,
+ 0x026e516e, 0xb814, 0x414b, 0x83, 0xcd, 0x85, 0x6d, 0x6f, 0xef, 0x48, 0x22, 2}
+DEFINE_DEVPROPKEY!{DEVPKEY_DeviceInterface_Enabled,
+ 0x026e516e, 0xb814, 0x414b, 0x83, 0xcd, 0x85, 0x6d, 0x6f, 0xef, 0x48, 0x22, 3}
+DEFINE_DEVPROPKEY!{DEVPKEY_DeviceInterface_ClassGuid,
+ 0x026e516e, 0xb814, 0x414b, 0x83, 0xcd, 0x85, 0x6d, 0x6f, 0xef, 0x48, 0x22, 4}
+DEFINE_DEVPROPKEY!{DEVPKEY_DeviceInterface_ReferenceString,
+ 0x026e516e, 0xb814, 0x414b, 0x83, 0xcd, 0x85, 0x6d, 0x6f, 0xef, 0x48, 0x22, 5}
+DEFINE_DEVPROPKEY!{DEVPKEY_DeviceInterface_Restricted,
+ 0x026e516e, 0xb814, 0x414b, 0x83, 0xcd, 0x85, 0x6d, 0x6f, 0xef, 0x48, 0x22, 6}
+DEFINE_DEVPROPKEY!{DEVPKEY_DeviceInterfaceClass_DefaultInterface,
+ 0x14c83a99, 0x0b3f, 0x44b7, 0xbe, 0x4c, 0xa1, 0x78, 0xd3, 0x99, 0x05, 0x64, 2}
+DEFINE_DEVPROPKEY!{DEVPKEY_DeviceInterfaceClass_Name,
+ 0x14c83a99, 0x0b3f, 0x44b7, 0xbe, 0x4c, 0xa1, 0x78, 0xd3, 0x99, 0x05, 0x64, 3}
+DEFINE_DEVPROPKEY!{DEVPKEY_DeviceContainer_Address,
+ 0x78c34fc8, 0x104a, 0x4aca, 0x9e, 0xa4, 0x52, 0x4d, 0x52, 0x99, 0x6e, 0x57, 51}
+DEFINE_DEVPROPKEY!{DEVPKEY_DeviceContainer_DiscoveryMethod,
+ 0x78c34fc8, 0x104a, 0x4aca, 0x9e, 0xa4, 0x52, 0x4d, 0x52, 0x99, 0x6e, 0x57, 52}
+DEFINE_DEVPROPKEY!{DEVPKEY_DeviceContainer_IsEncrypted,
+ 0x78c34fc8, 0x104a, 0x4aca, 0x9e, 0xa4, 0x52, 0x4d, 0x52, 0x99, 0x6e, 0x57, 53}
+DEFINE_DEVPROPKEY!{DEVPKEY_DeviceContainer_IsAuthenticated,
+ 0x78c34fc8, 0x104a, 0x4aca, 0x9e, 0xa4, 0x52, 0x4d, 0x52, 0x99, 0x6e, 0x57, 54}
+DEFINE_DEVPROPKEY!{DEVPKEY_DeviceContainer_IsConnected,
+ 0x78c34fc8, 0x104a, 0x4aca, 0x9e, 0xa4, 0x52, 0x4d, 0x52, 0x99, 0x6e, 0x57, 55}
+DEFINE_DEVPROPKEY!{DEVPKEY_DeviceContainer_IsPaired,
+ 0x78c34fc8, 0x104a, 0x4aca, 0x9e, 0xa4, 0x52, 0x4d, 0x52, 0x99, 0x6e, 0x57, 56}
+DEFINE_DEVPROPKEY!{DEVPKEY_DeviceContainer_Icon,
+ 0x78c34fc8, 0x104a, 0x4aca, 0x9e, 0xa4, 0x52, 0x4d, 0x52, 0x99, 0x6e, 0x57, 57}
+DEFINE_DEVPROPKEY!{DEVPKEY_DeviceContainer_Version,
+ 0x78c34fc8, 0x104a, 0x4aca, 0x9e, 0xa4, 0x52, 0x4d, 0x52, 0x99, 0x6e, 0x57, 65}
+DEFINE_DEVPROPKEY!{DEVPKEY_DeviceContainer_Last_Seen,
+ 0x78c34fc8, 0x104a, 0x4aca, 0x9e, 0xa4, 0x52, 0x4d, 0x52, 0x99, 0x6e, 0x57, 66}
+DEFINE_DEVPROPKEY!{DEVPKEY_DeviceContainer_Last_Connected,
+ 0x78c34fc8, 0x104a, 0x4aca, 0x9e, 0xa4, 0x52, 0x4d, 0x52, 0x99, 0x6e, 0x57, 67}
+DEFINE_DEVPROPKEY!{DEVPKEY_DeviceContainer_IsShowInDisconnectedState,
+ 0x78c34fc8, 0x104a, 0x4aca, 0x9e, 0xa4, 0x52, 0x4d, 0x52, 0x99, 0x6e, 0x57, 68}
+DEFINE_DEVPROPKEY!{DEVPKEY_DeviceContainer_IsLocalMachine,
+ 0x78c34fc8, 0x104a, 0x4aca, 0x9e, 0xa4, 0x52, 0x4d, 0x52, 0x99, 0x6e, 0x57, 70}
+DEFINE_DEVPROPKEY!{DEVPKEY_DeviceContainer_MetadataPath,
+ 0x78c34fc8, 0x104a, 0x4aca, 0x9e, 0xa4, 0x52, 0x4d, 0x52, 0x99, 0x6e, 0x57, 71}
+DEFINE_DEVPROPKEY!{DEVPKEY_DeviceContainer_IsMetadataSearchInProgress,
+ 0x78c34fc8, 0x104a, 0x4aca, 0x9e, 0xa4, 0x52, 0x4d, 0x52, 0x99, 0x6e, 0x57, 72}
+DEFINE_DEVPROPKEY!{DEVPKEY_DeviceContainer_MetadataChecksum,
+ 0x78c34fc8, 0x104a, 0x4aca, 0x9e, 0xa4, 0x52, 0x4d, 0x52, 0x99, 0x6e, 0x57, 73}
+DEFINE_DEVPROPKEY!{DEVPKEY_DeviceContainer_IsNotInterestingForDisplay,
+ 0x78c34fc8, 0x104a, 0x4aca, 0x9e, 0xa4, 0x52, 0x4d, 0x52, 0x99, 0x6e, 0x57, 74}
+DEFINE_DEVPROPKEY!{DEVPKEY_DeviceContainer_LaunchDeviceStageOnDeviceConnect,
+ 0x78c34fc8, 0x104a, 0x4aca, 0x9e, 0xa4, 0x52, 0x4d, 0x52, 0x99, 0x6e, 0x57, 76}
+DEFINE_DEVPROPKEY!{DEVPKEY_DeviceContainer_LaunchDeviceStageFromExplorer,
+ 0x78c34fc8, 0x104a, 0x4aca, 0x9e, 0xa4, 0x52, 0x4d, 0x52, 0x99, 0x6e, 0x57, 77}
+DEFINE_DEVPROPKEY!{DEVPKEY_DeviceContainer_BaselineExperienceId,
+ 0x78c34fc8, 0x104a, 0x4aca, 0x9e, 0xa4, 0x52, 0x4d, 0x52, 0x99, 0x6e, 0x57, 78}
+DEFINE_DEVPROPKEY!{DEVPKEY_DeviceContainer_IsDeviceUniquelyIdentifiable,
+ 0x78c34fc8, 0x104a, 0x4aca, 0x9e, 0xa4, 0x52, 0x4d, 0x52, 0x99, 0x6e, 0x57, 79}
+DEFINE_DEVPROPKEY!{DEVPKEY_DeviceContainer_AssociationArray,
+ 0x78c34fc8, 0x104a, 0x4aca, 0x9e, 0xa4, 0x52, 0x4d, 0x52, 0x99, 0x6e, 0x57, 80}
+DEFINE_DEVPROPKEY!{DEVPKEY_DeviceContainer_DeviceDescription1,
+ 0x78c34fc8, 0x104a, 0x4aca, 0x9e, 0xa4, 0x52, 0x4d, 0x52, 0x99, 0x6e, 0x57, 81}
+DEFINE_DEVPROPKEY!{DEVPKEY_DeviceContainer_DeviceDescription2,
+ 0x78c34fc8, 0x104a, 0x4aca, 0x9e, 0xa4, 0x52, 0x4d, 0x52, 0x99, 0x6e, 0x57, 82}
+DEFINE_DEVPROPKEY!{DEVPKEY_DeviceContainer_HasProblem,
+ 0x78c34fc8, 0x104a, 0x4aca, 0x9e, 0xa4, 0x52, 0x4d, 0x52, 0x99, 0x6e, 0x57, 83}
+DEFINE_DEVPROPKEY!{DEVPKEY_DeviceContainer_IsSharedDevice,
+ 0x78c34fc8, 0x104a, 0x4aca, 0x9e, 0xa4, 0x52, 0x4d, 0x52, 0x99, 0x6e, 0x57, 84}
+DEFINE_DEVPROPKEY!{DEVPKEY_DeviceContainer_IsNetworkDevice,
+ 0x78c34fc8, 0x104a, 0x4aca, 0x9e, 0xa4, 0x52, 0x4d, 0x52, 0x99, 0x6e, 0x57, 85}
+DEFINE_DEVPROPKEY!{DEVPKEY_DeviceContainer_IsDefaultDevice,
+ 0x78c34fc8, 0x104a, 0x4aca, 0x9e, 0xa4, 0x52, 0x4d, 0x52, 0x99, 0x6e, 0x57, 86}
+DEFINE_DEVPROPKEY!{DEVPKEY_DeviceContainer_MetadataCabinet,
+ 0x78c34fc8, 0x104a, 0x4aca, 0x9e, 0xa4, 0x52, 0x4d, 0x52, 0x99, 0x6e, 0x57, 87}
+DEFINE_DEVPROPKEY!{DEVPKEY_DeviceContainer_RequiresPairingElevation,
+ 0x78c34fc8, 0x104a, 0x4aca, 0x9e, 0xa4, 0x52, 0x4d, 0x52, 0x99, 0x6e, 0x57, 88}
+DEFINE_DEVPROPKEY!{DEVPKEY_DeviceContainer_ExperienceId,
+ 0x78c34fc8, 0x104a, 0x4aca, 0x9e, 0xa4, 0x52, 0x4d, 0x52, 0x99, 0x6e, 0x57, 89}
+DEFINE_DEVPROPKEY!{DEVPKEY_DeviceContainer_Category,
+ 0x78c34fc8, 0x104a, 0x4aca, 0x9e, 0xa4, 0x52, 0x4d, 0x52, 0x99, 0x6e, 0x57, 90}
+DEFINE_DEVPROPKEY!{DEVPKEY_DeviceContainer_Category_Desc_Singular,
+ 0x78c34fc8, 0x104a, 0x4aca, 0x9e, 0xa4, 0x52, 0x4d, 0x52, 0x99, 0x6e, 0x57, 91}
+DEFINE_DEVPROPKEY!{DEVPKEY_DeviceContainer_Category_Desc_Plural,
+ 0x78c34fc8, 0x104a, 0x4aca, 0x9e, 0xa4, 0x52, 0x4d, 0x52, 0x99, 0x6e, 0x57, 92}
+DEFINE_DEVPROPKEY!{DEVPKEY_DeviceContainer_Category_Icon,
+ 0x78c34fc8, 0x104a, 0x4aca, 0x9e, 0xa4, 0x52, 0x4d, 0x52, 0x99, 0x6e, 0x57, 93}
+DEFINE_DEVPROPKEY!{DEVPKEY_DeviceContainer_CategoryGroup_Desc,
+ 0x78c34fc8, 0x104a, 0x4aca, 0x9e, 0xa4, 0x52, 0x4d, 0x52, 0x99, 0x6e, 0x57, 94}
+DEFINE_DEVPROPKEY!{DEVPKEY_DeviceContainer_CategoryGroup_Icon,
+ 0x78c34fc8, 0x104a, 0x4aca, 0x9e, 0xa4, 0x52, 0x4d, 0x52, 0x99, 0x6e, 0x57, 95}
+DEFINE_DEVPROPKEY!{DEVPKEY_DeviceContainer_PrimaryCategory,
+ 0x78c34fc8, 0x104a, 0x4aca, 0x9e, 0xa4, 0x52, 0x4d, 0x52, 0x99, 0x6e, 0x57, 97}
+DEFINE_DEVPROPKEY!{DEVPKEY_DeviceContainer_UnpairUninstall,
+ 0x78c34fc8, 0x104a, 0x4aca, 0x9e, 0xa4, 0x52, 0x4d, 0x52, 0x99, 0x6e, 0x57, 98}
+DEFINE_DEVPROPKEY!{DEVPKEY_DeviceContainer_RequiresUninstallElevation,
+ 0x78c34fc8, 0x104a, 0x4aca, 0x9e, 0xa4, 0x52, 0x4d, 0x52, 0x99, 0x6e, 0x57, 99}
+DEFINE_DEVPROPKEY!{DEVPKEY_DeviceContainer_DeviceFunctionSubRank,
+ 0x78c34fc8, 0x104a, 0x4aca, 0x9e, 0xa4, 0x52, 0x4d, 0x52, 0x99, 0x6e, 0x57, 100}
+DEFINE_DEVPROPKEY!{DEVPKEY_DeviceContainer_AlwaysShowDeviceAsConnected,
+ 0x78c34fc8, 0x104a, 0x4aca, 0x9e, 0xa4, 0x52, 0x4d, 0x52, 0x99, 0x6e, 0x57, 101}
+DEFINE_DEVPROPKEY!{DEVPKEY_DeviceContainer_ConfigFlags,
+ 0x78c34fc8, 0x104a, 0x4aca, 0x9e, 0xa4, 0x52, 0x4d, 0x52, 0x99, 0x6e, 0x57, 105}
+DEFINE_DEVPROPKEY!{DEVPKEY_DeviceContainer_PrivilegedPackageFamilyNames,
+ 0x78c34fc8, 0x104a, 0x4aca, 0x9e, 0xa4, 0x52, 0x4d, 0x52, 0x99, 0x6e, 0x57, 106}
+DEFINE_DEVPROPKEY!{DEVPKEY_DeviceContainer_CustomPrivilegedPackageFamilyNames,
+ 0x78c34fc8, 0x104a, 0x4aca, 0x9e, 0xa4, 0x52, 0x4d, 0x52, 0x99, 0x6e, 0x57, 107}
+DEFINE_DEVPROPKEY!{DEVPKEY_DeviceContainer_IsRebootRequired,
+ 0x78c34fc8, 0x104a, 0x4aca, 0x9e, 0xa4, 0x52, 0x4d, 0x52, 0x99, 0x6e, 0x57, 108}
+DEFINE_DEVPROPKEY!{DEVPKEY_DeviceContainer_FriendlyName,
+ 0x656A3BB3, 0xECC0, 0x43FD, 0x84, 0x77, 0x4A, 0xE0, 0x40, 0x4A, 0x96, 0xCD, 12288}
+DEFINE_DEVPROPKEY!{DEVPKEY_DeviceContainer_Manufacturer,
+ 0x656A3BB3, 0xECC0, 0x43FD, 0x84, 0x77, 0x4A, 0xE0, 0x40, 0x4A, 0x96, 0xCD, 8192}
+DEFINE_DEVPROPKEY!{DEVPKEY_DeviceContainer_ModelName,
+ 0x656A3BB3, 0xECC0, 0x43FD, 0x84, 0x77, 0x4A, 0xE0, 0x40, 0x4A, 0x96, 0xCD, 8194}
+DEFINE_DEVPROPKEY!{DEVPKEY_DeviceContainer_ModelNumber,
+ 0x656A3BB3, 0xECC0, 0x43FD, 0x84, 0x77, 0x4A, 0xE0, 0x40, 0x4A, 0x96, 0xCD, 8195}
+DEFINE_DEVPROPKEY!{DEVPKEY_DeviceContainer_InstallInProgress,
+ 0x83da6326, 0x97a6, 0x4088, 0x94, 0x53, 0xa1, 0x92, 0x3f, 0x57, 0x3b, 0x29, 9}
+pub const DEVPKEY_DeviceDisplay_DiscoveryMethod: DEVPROPKEY
+ = DEVPKEY_DeviceContainer_DiscoveryMethod;
+pub const DEVPKEY_DeviceDisplay_IsShowInDisconnectedState: DEVPROPKEY
+ = DEVPKEY_DeviceContainer_IsShowInDisconnectedState;
+pub const DEVPKEY_DeviceDisplay_IsNotInterestingForDisplay: DEVPROPKEY
+ = DEVPKEY_DeviceContainer_IsNotInterestingForDisplay;
+pub const DEVPKEY_DeviceDisplay_IsNetworkDevice: DEVPROPKEY
+ = DEVPKEY_DeviceContainer_IsNetworkDevice;
+pub const DEVPKEY_DeviceDisplay_Category: DEVPROPKEY = DEVPKEY_DeviceContainer_Category;
+pub const DEVPKEY_DeviceDisplay_UnpairUninstall: DEVPROPKEY
+ = DEVPKEY_DeviceContainer_UnpairUninstall;
+pub const DEVPKEY_DeviceDisplay_RequiresUninstallElevation: DEVPROPKEY
+ = DEVPKEY_DeviceContainer_RequiresUninstallElevation;
+pub const DEVPKEY_DeviceDisplay_AlwaysShowDeviceAsConnected: DEVPROPKEY
+ = DEVPKEY_DeviceContainer_AlwaysShowDeviceAsConnected;
+DEFINE_DEVPROPKEY!{DEVPKEY_DevQuery_ObjectType,
+ 0x13673f42, 0xa3d6, 0x49f6, 0xb4, 0xda, 0xae, 0x46, 0xe0, 0xc5, 0x23, 0x7c, 2}
diff --git a/third_party/rust/chromium_crates_io/vendor/winapi-0.3.9/src/shared/devpropdef.rs b/third_party/rust/chromium_crates_io/vendor/winapi-0.3.9/src/shared/devpropdef.rs
new file mode 100644
index 000000000000..1e9388a4411c
--- /dev/null
+++ b/third_party/rust/chromium_crates_io/vendor/winapi-0.3.9/src/shared/devpropdef.rs
@@ -0,0 +1,83 @@
+// Licensed under the Apache License, Version 2.0
+// or the MIT license
+// , at your option.
+// All files in the project carrying such notice may not be copied, modified, or distributed
+// except according to those terms.
+//! Defines property types and keys for the Plug and Play Device Property API
+use shared::guiddef::{GUID, IsEqualGUID};
+use shared::minwindef::ULONG;
+use um::winnt::{CHAR, PCWSTR, PVOID};
+pub type DEVPROPTYPE = ULONG;
+pub type PDEVPROPTYPE = *mut ULONG;
+pub const DEVPROP_TYPEMOD_ARRAY: DEVPROPTYPE = 0x00001000;
+pub const DEVPROP_TYPEMOD_LIST: DEVPROPTYPE = 0x00002000;
+pub const DEVPROP_TYPE_EMPTY: DEVPROPTYPE = 0x00000000;
+pub const DEVPROP_TYPE_NULL: DEVPROPTYPE = 0x00000001;
+pub const DEVPROP_TYPE_SBYTE: DEVPROPTYPE = 0x00000002;
+pub const DEVPROP_TYPE_BYTE: DEVPROPTYPE = 0x00000003;
+pub const DEVPROP_TYPE_INT16: DEVPROPTYPE = 0x00000004;
+pub const DEVPROP_TYPE_UINT16: DEVPROPTYPE = 0x00000005;
+pub const DEVPROP_TYPE_INT32: DEVPROPTYPE = 0x00000006;
+pub const DEVPROP_TYPE_UINT32: DEVPROPTYPE = 0x00000007;
+pub const DEVPROP_TYPE_INT64: DEVPROPTYPE = 0x00000008;
+pub const DEVPROP_TYPE_UINT64: DEVPROPTYPE = 0x00000009;
+pub const DEVPROP_TYPE_FLOAT: DEVPROPTYPE = 0x0000000A;
+pub const DEVPROP_TYPE_DOUBLE: DEVPROPTYPE = 0x0000000B;
+pub const DEVPROP_TYPE_DECIMAL: DEVPROPTYPE = 0x0000000C;
+pub const DEVPROP_TYPE_GUID: DEVPROPTYPE = 0x0000000D;
+pub const DEVPROP_TYPE_CURRENCY: DEVPROPTYPE = 0x0000000E;
+pub const DEVPROP_TYPE_DATE: DEVPROPTYPE = 0x0000000F;
+pub const DEVPROP_TYPE_FILETIME: DEVPROPTYPE = 0x00000010;
+pub const DEVPROP_TYPE_BOOLEAN: DEVPROPTYPE = 0x00000011;
+pub const DEVPROP_TYPE_STRING: DEVPROPTYPE = 0x00000012;
+pub const DEVPROP_TYPE_STRING_LIST: DEVPROPTYPE = DEVPROP_TYPE_STRING | DEVPROP_TYPEMOD_LIST;
+pub const DEVPROP_TYPE_SECURITY_DESCRIPTOR: DEVPROPTYPE = 0x00000013;
+pub const DEVPROP_TYPE_SECURITY_DESCRIPTOR_STRING: DEVPROPTYPE = 0x00000014;
+pub const DEVPROP_TYPE_DEVPROPKEY: DEVPROPTYPE = 0x00000015;
+pub const DEVPROP_TYPE_DEVPROPTYPE: DEVPROPTYPE = 0x00000016;
+pub const DEVPROP_TYPE_BINARY: DEVPROPTYPE = DEVPROP_TYPE_BYTE | DEVPROP_TYPEMOD_ARRAY;
+pub const DEVPROP_TYPE_ERROR: DEVPROPTYPE = 0x00000017;
+pub const DEVPROP_TYPE_NTSTATUS: DEVPROPTYPE = 0x00000018;
+pub const DEVPROP_TYPE_STRING_INDIRECT: DEVPROPTYPE = 0x00000019;
+pub const MAX_DEVPROP_TYPE: DEVPROPTYPE = 0x00000019;
+pub const MAX_DEVPROP_TYPEMOD: DEVPROPTYPE = 0x00002000;
+pub const DEVPROP_MASK_TYPE: DEVPROPTYPE = 0x00000FFF;
+pub const DEVPROP_MASK_TYPEMOD: DEVPROPTYPE = 0x0000F000;
+pub type DEVPROP_BOOLEAN = CHAR;
+pub type PDEVPROP_BOOLEAN = *mut CHAR;
+pub const DEVPROP_TRUE: DEVPROP_BOOLEAN = -1;
+pub const DEVPROP_FALSE: DEVPROP_BOOLEAN = 0;
+pub type DEVPROPGUID = GUID;
+pub type PDEVPROPGUID = *mut GUID;
+pub type DEVPROPID = ULONG;
+pub type PDEVPROPID = *mut ULONG;
+STRUCT!{struct DEVPROPKEY {
+ fmtid: DEVPROPGUID,
+ pid: DEVPROPID,
+}}
+pub type PDEVPROPKEY = *mut DEVPROPKEY;
+#[inline]
+pub fn IsEqualDevPropKey(a: &DEVPROPKEY, b: &DEVPROPKEY) -> bool {
+ (a.pid == b.pid) && IsEqualGUID(&a.fmtid, &b.fmtid)
+}
+ENUM!{enum DEVPROPSTORE {
+ DEVPROP_STORE_SYSTEM,
+ DEVPROP_STORE_USER,
+}}
+pub type PDEVPROPSTORE = *mut DEVPROPSTORE;
+STRUCT!{struct DEVPROPCOMPKEY {
+ Key: DEVPROPKEY,
+ Store: DEVPROPSTORE,
+ LocaleName: PCWSTR,
+}}
+pub type PDEVPROPCOMPKEY = *mut DEVPROPCOMPKEY;
+// IsEqualLocaleName
+// IsEqualDevPropCompKey
+STRUCT!{struct DEVPROPERTY {
+ CompKey: DEVPROPCOMPKEY,
+ Type: DEVPROPTYPE,
+ BufferSize: ULONG,
+ Buffer: PVOID,
+}}
+pub type PDEVPROPERTY = *mut DEVPROPERTY;
+pub const DEVPROPID_FIRST_USABLE: DEVPROPID = 2;
diff --git a/third_party/rust/chromium_crates_io/vendor/winapi-0.3.9/src/shared/dinputd.rs b/third_party/rust/chromium_crates_io/vendor/winapi-0.3.9/src/shared/dinputd.rs
new file mode 100644
index 000000000000..ceb9ffd992a8
--- /dev/null
+++ b/third_party/rust/chromium_crates_io/vendor/winapi-0.3.9/src/shared/dinputd.rs
@@ -0,0 +1,21 @@
+// Licensed under the Apache License, Version 2.0
+// or the MIT license
+// , at your option.
+// All files in the project carrying such notice may not be copied, modified, or distributed
+// except according to those terms.
+DEFINE_GUID!{IID_IDirectInputEffectDriver,
+ 0x02538130, 0x898f, 0x11d0, 0x9a, 0xd0, 0x00, 0xa0, 0xc9, 0xa0, 0x6e, 0x35}
+DEFINE_GUID!{IID_IDirectInputJoyConfig,
+ 0x1de12ab1, 0xc9f5, 0x11cf, 0xbf, 0xc7, 0x44, 0x45, 0x53, 0x54, 0x00, 0x00}
+DEFINE_GUID!{IID_IDirectInputPIDDriver,
+ 0xeec6993a, 0xb3fd, 0x11d2, 0xa9, 0x16, 0x00, 0xc0, 0x4f, 0xb9, 0x86, 0x38}
+DEFINE_GUID!{IID_IDirectInputJoyConfig8,
+ 0xeb0d7dfa, 0x1990, 0x4f27, 0xb4, 0xd6, 0xed, 0xf2, 0xee, 0xc4, 0xa4, 0x4c}
+DEFINE_GUID!{GUID_KeyboardClass,
+ 0x4d36e96b, 0xe325, 0x11ce, 0xbf, 0xc1, 0x08, 0x00, 0x2b, 0xe1, 0x03, 0x18}
+DEFINE_GUID!{GUID_MediaClass,
+ 0x4d36e96c, 0xe325, 0x11ce, 0xbf, 0xc1, 0x08, 0x00, 0x2b, 0xe1, 0x03, 0x18}
+DEFINE_GUID!{GUID_MouseClass,
+ 0x4d36e96f, 0xe325, 0x11ce, 0xbf, 0xc1, 0x08, 0x00, 0x2b, 0xe1, 0x03, 0x18}
+DEFINE_GUID!{GUID_HIDClass,
+ 0x745a17a0, 0x74d3, 0x11d0, 0xb6, 0xfe, 0x00, 0xa0, 0xc9, 0x0f, 0x57, 0xda}
diff --git a/third_party/rust/chromium_crates_io/vendor/winapi-0.3.9/src/shared/dxgi.rs b/third_party/rust/chromium_crates_io/vendor/winapi-0.3.9/src/shared/dxgi.rs
new file mode 100644
index 000000000000..0e878586e077
--- /dev/null
+++ b/third_party/rust/chromium_crates_io/vendor/winapi-0.3.9/src/shared/dxgi.rs
@@ -0,0 +1,411 @@
+// Licensed under the Apache License, Version 2.0
+// or the MIT license
+// , at your option.
+// All files in the project carrying such notice may not be copied, modified, or distributed
+// except according to those terms.
+//! Mappings for the contents of dxgi.h
+use ctypes::c_void;
+use shared::basetsd::{SIZE_T, UINT64};
+use shared::dxgiformat::DXGI_FORMAT;
+use shared::dxgitype::{
+ DXGI_GAMMA_CONTROL, DXGI_GAMMA_CONTROL_CAPABILITIES, DXGI_MODE_DESC, DXGI_MODE_ROTATION,
+ DXGI_SAMPLE_DESC, DXGI_USAGE,
+};
+use shared::guiddef::{REFGUID, REFIID};
+use shared::minwindef::{BOOL, BYTE, DWORD, FLOAT, HMODULE, UINT};
+use shared::windef::{HDC, HMONITOR, HWND, RECT};
+use um::unknwnbase::{IUnknown, IUnknownVtbl};
+use um::winnt::{HANDLE, HRESULT, INT, LARGE_INTEGER, LUID, WCHAR};
+STRUCT!{struct DXGI_FRAME_STATISTICS {
+ PresentCount: UINT,
+ PresentRefreshCount: UINT,
+ SyncRefreshCount: UINT,
+ SyncQPCTime: LARGE_INTEGER,
+ SyncGPUTime: LARGE_INTEGER,
+}}
+STRUCT!{struct DXGI_MAPPED_RECT {
+ Pitch: INT,
+ pBits: *mut BYTE,
+}}
+STRUCT!{struct DXGI_ADAPTER_DESC {
+ Description: [WCHAR; 128],
+ VendorId: UINT,
+ DeviceId: UINT,
+ SubSysId: UINT,
+ Revision: UINT,
+ DedicatedVideoMemory: SIZE_T,
+ DedicatedSystemMemory: SIZE_T,
+ SharedSystemMemory: SIZE_T,
+ AdapterLuid: LUID,
+}}
+STRUCT!{struct DXGI_OUTPUT_DESC {
+ DeviceName: [WCHAR; 32],
+ DesktopCoordinates: RECT,
+ AttachedToDesktop: BOOL,
+ Rotation: DXGI_MODE_ROTATION,
+ Monitor: HMONITOR,
+}}
+STRUCT!{struct DXGI_SHARED_RESOURCE {
+ Handle: HANDLE,
+}}
+pub const DXGI_RESOURCE_PRIORITY_MINIMUM: DWORD = 0x28000000;
+pub const DXGI_RESOURCE_PRIORITY_LOW: DWORD = 0x50000000;
+pub const DXGI_RESOURCE_PRIORITY_NORMAL: DWORD = 0x78000000;
+pub const DXGI_RESOURCE_PRIORITY_HIGH: DWORD = 0xa0000000;
+pub const DXGI_RESOURCE_PRIORITY_MAXIMUM: DWORD = 0xc8000000;
+ENUM!{enum DXGI_RESIDENCY {
+ DXGI_RESIDENCY_FULLY_RESIDENT = 1,
+ DXGI_RESIDENCY_RESIDENT_IN_SHARED_MEMORY = 2,
+ DXGI_RESIDENCY_EVICTED_TO_DISK = 3,
+}}
+STRUCT!{struct DXGI_SURFACE_DESC {
+ Width: UINT,
+ Height: UINT,
+ Format: DXGI_FORMAT,
+ SampleDesc: DXGI_SAMPLE_DESC,
+}}
+ENUM!{enum DXGI_SWAP_EFFECT {
+ DXGI_SWAP_EFFECT_DISCARD = 0,
+ DXGI_SWAP_EFFECT_SEQUENTIAL = 1,
+ DXGI_SWAP_EFFECT_FLIP_SEQUENTIAL = 3,
+ DXGI_SWAP_EFFECT_FLIP_DISCARD = 4,
+}}
+ENUM!{enum DXGI_SWAP_CHAIN_FLAG {
+ DXGI_SWAP_CHAIN_FLAG_NONPREROTATED = 1,
+ DXGI_SWAP_CHAIN_FLAG_ALLOW_MODE_SWITCH = 2,
+ DXGI_SWAP_CHAIN_FLAG_GDI_COMPATIBLE = 4,
+ DXGI_SWAP_CHAIN_FLAG_RESTRICTED_CONTENT = 8,
+ DXGI_SWAP_CHAIN_FLAG_RESTRICT_SHARED_RESOURCE_DRIVER = 16,
+ DXGI_SWAP_CHAIN_FLAG_DISPLAY_ONLY = 32,
+ DXGI_SWAP_CHAIN_FLAG_FRAME_LATENCY_WAITABLE_OBJECT = 64,
+ DXGI_SWAP_CHAIN_FLAG_FOREGROUND_LAYER = 128,
+ DXGI_SWAP_CHAIN_FLAG_FULLSCREEN_VIDEO = 256,
+ DXGI_SWAP_CHAIN_FLAG_YUV_VIDEO = 512,
+ DXGI_SWAP_CHAIN_FLAG_HW_PROTECTED = 1024,
+ DXGI_SWAP_CHAIN_FLAG_ALLOW_TEARING = 2048,
+}}
+STRUCT!{struct DXGI_SWAP_CHAIN_DESC {
+ BufferDesc: DXGI_MODE_DESC,
+ SampleDesc: DXGI_SAMPLE_DESC,
+ BufferUsage: DXGI_USAGE,
+ BufferCount: UINT,
+ OutputWindow: HWND,
+ Windowed: BOOL,
+ SwapEffect: DXGI_SWAP_EFFECT,
+ Flags: UINT,
+}}
+RIDL!{#[uuid(0xaec22fb8, 0x76f3, 0x4639, 0x9b, 0xe0, 0x28, 0xeb, 0x43, 0xa6, 0x7a, 0x2e)]
+interface IDXGIObject(IDXGIObjectVtbl): IUnknown(IUnknownVtbl) {
+ fn SetPrivateData(
+ Name: REFGUID,
+ DataSize: UINT,
+ pData: *const c_void,
+ ) -> HRESULT,
+ fn SetPrivateDataInterface(
+ Name: REFGUID,
+ pUnknown: *const IUnknown,
+ ) -> HRESULT,
+ fn GetPrivateData(
+ Name: REFGUID,
+ pDataSize: *mut UINT,
+ pData: *mut c_void,
+ ) -> HRESULT,
+ fn GetParent(
+ riid: REFIID,
+ ppParent: *mut *mut c_void,
+ ) -> HRESULT,
+}}
+RIDL!{#[uuid(0x3d3e0379, 0xf9de, 0x4d58, 0xbb, 0x6c, 0x18, 0xd6, 0x29, 0x92, 0xf1, 0xa6)]
+interface IDXGIDeviceSubObject(IDXGIDeviceSubObjectVtbl): IDXGIObject(IDXGIObjectVtbl) {
+ fn GetDevice(
+ riid: REFIID,
+ ppDevice: *mut *mut c_void,
+ ) -> HRESULT,
+}}
+RIDL!{#[uuid(0x035f3ab4, 0x482e, 0x4e50, 0xb4, 0x1f, 0x8a, 0x7f, 0x8b, 0xd8, 0x96, 0x0b)]
+interface IDXGIResource(IDXGIResourceVtbl): IDXGIDeviceSubObject(IDXGIDeviceSubObjectVtbl) {
+ fn GetSharedHandle(
+ pSharedHandle: *mut HANDLE,
+ ) -> HRESULT,
+ fn GetUsage(
+ pUsage: *mut DXGI_USAGE,
+ ) -> HRESULT,
+ fn SetEvictionPriority(
+ EvictionPriority: UINT,
+ ) -> HRESULT,
+ fn GetEvictionPriority(
+ pEvictionPriority: *mut UINT,
+ ) -> HRESULT,
+}}
+RIDL!{#[uuid(0x9d8e1289, 0xd7b3, 0x465f, 0x81, 0x26, 0x25, 0x0e, 0x34, 0x9a, 0xf8, 0x5d)]
+interface IDXGIKeyedMutex(IDXGIKeyedMutexVtbl): IDXGIDeviceSubObject(IDXGIDeviceSubObjectVtbl) {
+ fn AcquireSync(
+ Key: UINT64,
+ dwMilliseconds: DWORD,
+ ) -> HRESULT,
+ fn ReleaseSync(
+ Key: UINT64,
+ ) -> HRESULT,
+}}
+pub const DXGI_MAP_READ: UINT = 1;
+pub const DXGI_MAP_WRITE: UINT = 2;
+pub const DXGI_MAP_DISCARD: UINT = 4;
+RIDL!{#[uuid(0xcafcb56c, 0x6ac3, 0x4889, 0xbf, 0x47, 0x9e, 0x23, 0xbb, 0xd2, 0x60, 0xec)]
+interface IDXGISurface(IDXGISurfaceVtbl): IDXGIDeviceSubObject(IDXGIDeviceSubObjectVtbl) {
+ fn GetDesc(
+ pDesc: *mut DXGI_SURFACE_DESC,
+ ) -> HRESULT,
+ fn Map(
+ pLockedRect: *mut DXGI_MAPPED_RECT,
+ MapFlags: UINT,
+ ) -> HRESULT,
+ fn Unmap() -> HRESULT,
+}}
+RIDL!{#[uuid(0x4ae63092, 0x6327, 0x4c1b, 0x80, 0xae, 0xbf, 0xe1, 0x2e, 0xa3, 0x2b, 0x86)]
+interface IDXGISurface1(IDXGISurface1Vtbl): IDXGISurface(IDXGISurfaceVtbl) {
+ fn GetDC(
+ Discard: BOOL,
+ phdc: *mut HDC,
+ ) -> HRESULT,
+ fn ReleaseDC(
+ pDirtyRect: *mut RECT,
+ ) -> HRESULT,
+}}
+RIDL!{#[uuid(0x2411e7e1, 0x12ac, 0x4ccf, 0xbd, 0x14, 0x97, 0x98, 0xe8, 0x53, 0x4d, 0xc0)]
+interface IDXGIAdapter(IDXGIAdapterVtbl): IDXGIObject(IDXGIObjectVtbl) {
+ fn EnumOutputs(
+ Output: UINT,
+ ppOutput: *mut *mut IDXGIOutput,
+ ) -> HRESULT,
+ fn GetDesc(
+ pDesc: *mut DXGI_ADAPTER_DESC,
+ ) -> HRESULT,
+ fn CheckInterfaceSupport(
+ InterfaceName: REFGUID,
+ pUMDVersion: *mut LARGE_INTEGER,
+ ) -> HRESULT,
+}}
+RIDL!{#[uuid(0xae02eedb, 0xc735, 0x4690, 0x8d, 0x52, 0x5a, 0x8d, 0xc2, 0x02, 0x13, 0xaa)]
+interface IDXGIOutput(IDXGIOutputVtbl): IDXGIObject(IDXGIObjectVtbl) {
+ fn GetDesc(
+ pDesc: *mut DXGI_OUTPUT_DESC,
+ ) -> HRESULT,
+ fn GetDisplayModeList(
+ EnumFormat: DXGI_FORMAT,
+ Flags: UINT,
+ pNumModes: *mut UINT,
+ pDesc: *mut DXGI_MODE_DESC,
+ ) -> HRESULT,
+ fn FindClosestMatchingMode(
+ pModeToMatch: *const DXGI_MODE_DESC,
+ pClosestMatch: *mut DXGI_MODE_DESC,
+ pConcernedDevice: *mut IUnknown,
+ ) -> HRESULT,
+ fn WaitForVBlank() -> HRESULT,
+ fn TakeOwnership(
+ pDevice: *mut IUnknown,
+ Exclusive: BOOL,
+ ) -> HRESULT,
+ fn ReleaseOwnership() -> (),
+ fn GetGammaControlCapabilities(
+ pGammaCaps: *mut DXGI_GAMMA_CONTROL_CAPABILITIES,
+ ) -> HRESULT,
+ fn SetGammaControl(
+ pArray: *const DXGI_GAMMA_CONTROL,
+ ) -> HRESULT,
+ fn GetGammaControl(
+ pArray: *mut DXGI_GAMMA_CONTROL,
+ ) -> HRESULT,
+ fn SetDisplaySurface(
+ pScanoutSurface: *mut IDXGISurface,
+ ) -> HRESULT,
+ fn GetDisplaySurfaceData(
+ pDestination: *mut IDXGISurface,
+ ) -> HRESULT,
+ fn GetFrameStatistics(
+ pStats: *mut DXGI_FRAME_STATISTICS,
+ ) -> HRESULT,
+}}
+pub const DXGI_MAX_SWAP_CHAIN_BUFFERS: DWORD = 16;
+pub const DXGI_PRESENT_TEST: DWORD = 0x00000001;
+pub const DXGI_PRESENT_DO_NOT_SEQUENCE: DWORD = 0x00000002;
+pub const DXGI_PRESENT_RESTART: DWORD = 0x00000004;
+pub const DXGI_PRESENT_DO_NOT_WAIT: DWORD = 0x00000008;
+pub const DXGI_PRESENT_STEREO_PREFER_RIGHT: DWORD = 0x00000010;
+pub const DXGI_PRESENT_STEREO_TEMPORARY_MONO: DWORD = 0x00000020;
+pub const DXGI_PRESENT_RESTRICT_TO_OUTPUT: DWORD = 0x00000040;
+pub const DXGI_PRESENT_USE_DURATION: DWORD = 0x00000100;
+pub const DXGI_PRESENT_ALLOW_TEARING: DWORD = 0x00000200;
+pub const DXGI_ENUM_MODES_INTERLACED: UINT = 1;
+pub const DXGI_ENUM_MODES_SCALING: UINT = 2;
+RIDL!{#[uuid(0x310d36a0, 0xd2e7, 0x4c0a, 0xaa, 0x04, 0x6a, 0x9d, 0x23, 0xb8, 0x88, 0x6a)]
+interface IDXGISwapChain(IDXGISwapChainVtbl): IDXGIDeviceSubObject(IDXGIDeviceSubObjectVtbl) {
+ fn Present(
+ SyncInterval: UINT,
+ Flags: UINT,
+ ) -> HRESULT,
+ fn GetBuffer(
+ Buffer: UINT,
+ riid: REFIID,
+ ppSurface: *mut *mut c_void,
+ ) -> HRESULT,
+ fn SetFullscreenState(
+ Fullscreen: BOOL,
+ pTarget: *mut IDXGIOutput,
+ ) -> HRESULT,
+ fn GetFullscreenState(
+ pFullscreen: *mut BOOL,
+ ppTarget: *mut *mut IDXGIOutput,
+ ) -> HRESULT,
+ fn GetDesc(
+ pDesc: *mut DXGI_SWAP_CHAIN_DESC,
+ ) -> HRESULT,
+ fn ResizeBuffers(
+ BufferCount: UINT,
+ Width: UINT,
+ Height: UINT,
+ NewFormat: DXGI_FORMAT,
+ SwapChainFlags: UINT,
+ ) -> HRESULT,
+ fn ResizeTarget(
+ pNewTargetParameters: *const DXGI_MODE_DESC,
+ ) -> HRESULT,
+ fn GetContainingOutput(
+ ppOutput: *mut *mut IDXGIOutput,
+ ) -> HRESULT,
+ fn GetFrameStatistics(
+ pStats: *mut DXGI_FRAME_STATISTICS,
+ ) -> HRESULT,
+ fn GetLastPresentCount(
+ pLastPresentCount: *mut UINT,
+ ) -> HRESULT,
+}}
+RIDL!{#[uuid(0x7b7166ec, 0x21c7, 0x44ae, 0xb2, 0x1a, 0xc9, 0xae, 0x32, 0x1a, 0xe3, 0x69)]
+interface IDXGIFactory(IDXGIFactoryVtbl): IDXGIObject(IDXGIObjectVtbl) {
+ fn EnumAdapters(
+ Adapter: UINT,
+ ppAdapter: *mut *mut IDXGIAdapter,
+ ) -> HRESULT,
+ fn MakeWindowAssociation(
+ WindowHandle: HWND,
+ Flags: UINT,
+ ) -> HRESULT,
+ fn GetWindowAssociation(
+ pWindowHandle: *mut HWND,
+ ) -> HRESULT,
+ fn CreateSwapChain(
+ pDevice: *mut IUnknown,
+ pDesc: *mut DXGI_SWAP_CHAIN_DESC,
+ ppSwapChain: *mut *mut IDXGISwapChain,
+ ) -> HRESULT,
+ fn CreateSoftwareAdapter(
+ Module: HMODULE,
+ ppAdapter: *mut *mut IDXGIAdapter,
+ ) -> HRESULT,
+}}
+extern "system" {
+ pub fn CreateDXGIFactory(
+ riid: REFIID,
+ ppFactory: *mut *mut c_void,
+ ) -> HRESULT;
+ pub fn CreateDXGIFactory1(
+ riid: REFIID,
+ ppFactory: *mut *mut c_void,
+ ) -> HRESULT;
+}
+RIDL!{#[uuid(0x54ec77fa, 0x1377, 0x44e6, 0x8c, 0x32, 0x88, 0xfd, 0x5f, 0x44, 0xc8, 0x4c)]
+interface IDXGIDevice(IDXGIDeviceVtbl): IDXGIObject(IDXGIObjectVtbl) {
+ fn GetAdapter(
+ pAdapter: *mut *mut IDXGIAdapter,
+ ) -> HRESULT,
+ fn CreateSurface(
+ pDesc: *const DXGI_SURFACE_DESC,
+ NumSurfaces: UINT,
+ Usage: DXGI_USAGE,
+ pSharedResource: *const DXGI_SHARED_RESOURCE,
+ ppSurface: *mut *mut IDXGISurface,
+ ) -> HRESULT,
+ fn QueryResourceResidency(
+ ppResources: *const *mut IUnknown,
+ pResidencyStatus: *mut DXGI_RESIDENCY,
+ NumResources: UINT,
+ ) -> HRESULT,
+ fn SetGPUThreadPriority(
+ Priority: INT,
+ ) -> HRESULT,
+ fn GetGPUThreadPriority(
+ pPriority: *mut INT,
+ ) -> HRESULT,
+}}
+ENUM!{enum DXGI_ADAPTER_FLAG {
+ DXGI_ADAPTER_FLAG_NONE,
+ DXGI_ADAPTER_FLAG_REMOTE,
+ DXGI_ADAPTER_FLAG_SOFTWARE,
+}}
+STRUCT!{struct DXGI_ADAPTER_DESC1 {
+ Description: [WCHAR; 128],
+ VendorId: UINT,
+ DeviceId: UINT,
+ SubSysId: UINT,
+ Revision: UINT,
+ DedicatedVideoMemory: SIZE_T,
+ DedicatedSystemMemory: SIZE_T,
+ SharedSystemMemory: SIZE_T,
+ AdapterLuid: LUID,
+ Flags: UINT,
+}}
+STRUCT!{struct DXGI_DISPLAY_COLOR_SPACE {
+ PrimaryCoordinates: [[FLOAT; 2]; 8],
+ WhitePoints: [[FLOAT; 2]; 16],
+}}
+RIDL!{#[uuid(0x770aae78, 0xf26f, 0x4dba, 0xa8, 0x29, 0x25, 0x3c, 0x83, 0xd1, 0xb3, 0x87)]
+interface IDXGIFactory1(IDXGIFactory1Vtbl): IDXGIFactory(IDXGIFactoryVtbl) {
+ fn EnumAdapters1(
+ Adapter: UINT,
+ ppAdapter: *mut *mut IDXGIAdapter1,
+ ) -> HRESULT,
+ fn IsCurrent() -> BOOL,
+}}
+RIDL!{#[uuid(0x29038f61, 0x3839, 0x4626, 0x91, 0xfd, 0x08, 0x68, 0x79, 0x01, 0x1a, 0x05)]
+interface IDXGIAdapter1(IDXGIAdapter1Vtbl): IDXGIAdapter(IDXGIAdapterVtbl) {
+ fn GetDesc1(
+ pDesc: *mut DXGI_ADAPTER_DESC1,
+ ) -> HRESULT,
+}}
+RIDL!{#[uuid(0x77db970f, 0x6276, 0x48ba, 0xba, 0x28, 0x07, 0x01, 0x43, 0xb4, 0x39, 0x2c)]
+interface IDXGIDevice1(IDXGIDevice1Vtbl): IDXGIDevice(IDXGIDeviceVtbl) {
+ fn SetMaximumFrameLatency(
+ MaxLatency: UINT,
+ ) -> HRESULT,
+ fn GetMaximumFrameLatency(
+ pMaxLatency: *mut UINT,
+ ) -> HRESULT,
+}}
+DEFINE_GUID!{IID_IDXGIObject,
+ 0xaec22fb8, 0x76f3, 0x4639, 0x9b, 0xe0, 0x28, 0xeb, 0x43, 0xa6, 0x7a, 0x2e}
+DEFINE_GUID!{IID_IDXGIDeviceSubObject,
+ 0x3d3e0379, 0xf9de, 0x4d58, 0xbb, 0x6c, 0x18, 0xd6, 0x29, 0x92, 0xf1, 0xa6}
+DEFINE_GUID!{IID_IDXGIResource,
+ 0x035f3ab4, 0x482e, 0x4e50, 0xb4, 0x1f, 0x8a, 0x7f, 0x8b, 0xd8, 0x96, 0x0b}
+DEFINE_GUID!{IID_IDXGIKeyedMutex,
+ 0x9d8e1289, 0xd7b3, 0x465f, 0x81, 0x26, 0x25, 0x0e, 0x34, 0x9a, 0xf8, 0x5d}
+DEFINE_GUID!{IID_IDXGISurface,
+ 0xcafcb56c, 0x6ac3, 0x4889, 0xbf, 0x47, 0x9e, 0x23, 0xbb, 0xd2, 0x60, 0xec}
+DEFINE_GUID!{IID_IDXGISurface1,
+ 0x4ae63092, 0x6327, 0x4c1b, 0x80, 0xae, 0xbf, 0xe1, 0x2e, 0xa3, 0x2b, 0x86}
+DEFINE_GUID!{IID_IDXGIAdapter,
+ 0x2411e7e1, 0x12ac, 0x4ccf, 0xbd, 0x14, 0x97, 0x98, 0xe8, 0x53, 0x4d, 0xc0}
+DEFINE_GUID!{IID_IDXGIOutput,
+ 0xae02eedb, 0xc735, 0x4690, 0x8d, 0x52, 0x5a, 0x8d, 0xc2, 0x02, 0x13, 0xaa}
+DEFINE_GUID!{IID_IDXGISwapChain,
+ 0x310d36a0, 0xd2e7, 0x4c0a, 0xaa, 0x04, 0x6a, 0x9d, 0x23, 0xb8, 0x88, 0x6a}
+DEFINE_GUID!{IID_IDXGIFactory,
+ 0x7b7166ec, 0x21c7, 0x44ae, 0xb2, 0x1a, 0xc9, 0xae, 0x32, 0x1a, 0xe3, 0x69}
+DEFINE_GUID!{IID_IDXGIDevice,
+ 0x54ec77fa, 0x1377, 0x44e6, 0x8c, 0x32, 0x88, 0xfd, 0x5f, 0x44, 0xc8, 0x4c}
+DEFINE_GUID!{IID_IDXGIFactory1,
+ 0x770aae78, 0xf26f, 0x4dba, 0xa8, 0x29, 0x25, 0x3c, 0x83, 0xd1, 0xb3, 0x87}
+DEFINE_GUID!{IID_IDXGIAdapter1,
+ 0x29038f61, 0x3839, 0x4626, 0x91, 0xfd, 0x08, 0x68, 0x79, 0x01, 0x1a, 0x05}
+DEFINE_GUID!{IID_IDXGIDevice1,
+ 0x77db970f, 0x6276, 0x48ba, 0xba, 0x28, 0x07, 0x01, 0x43, 0xb4, 0x39, 0x2c}
diff --git a/third_party/rust/chromium_crates_io/vendor/winapi-0.3.9/src/shared/dxgi1_2.rs b/third_party/rust/chromium_crates_io/vendor/winapi-0.3.9/src/shared/dxgi1_2.rs
new file mode 100644
index 000000000000..941f15e98937
--- /dev/null
+++ b/third_party/rust/chromium_crates_io/vendor/winapi-0.3.9/src/shared/dxgi1_2.rs
@@ -0,0 +1,355 @@
+// Licensed under the Apache License, Version 2.0
+// or the MIT license
+// , at your option.
+// All files in the project carrying such notice may not be copied, modified, or distributed
+// except according to those terms.
+//! Mappings for the contents of dxgi1_2.h
+use ctypes::c_void;
+use shared::basetsd::SIZE_T;
+use shared::dxgi::{
+ DXGI_MAPPED_RECT, DXGI_SWAP_EFFECT, IDXGIAdapter1, IDXGIAdapter1Vtbl, IDXGIDevice1,
+ IDXGIDevice1Vtbl, IDXGIFactory1, IDXGIFactory1Vtbl, IDXGIObject, IDXGIObjectVtbl, IDXGIOutput,
+ IDXGIOutputVtbl, IDXGIResource, IDXGIResourceVtbl, IDXGISurface1, IDXGISurface1Vtbl,
+ IDXGISwapChain, IDXGISwapChainVtbl,
+};
+use shared::dxgiformat::DXGI_FORMAT;
+use shared::dxgitype::{
+ DXGI_MODE_DESC, DXGI_MODE_ROTATION, DXGI_MODE_SCALING, DXGI_MODE_SCANLINE_ORDER, DXGI_RATIONAL,
+ DXGI_RGBA, DXGI_SAMPLE_DESC, DXGI_USAGE,
+};
+use shared::guiddef::REFGUID;
+use shared::minwindef::{BOOL, DWORD, UINT};
+use shared::windef::{HWND, POINT, RECT};
+use um::minwinbase::SECURITY_ATTRIBUTES;
+use um::unknwnbase::{IUnknown, IUnknownVtbl};
+use um::winnt::{HANDLE, HRESULT, LARGE_INTEGER, LPCWSTR, LUID, WCHAR};
+ENUM!{enum DXGI_ALPHA_MODE {
+ DXGI_ALPHA_MODE_UNSPECIFIED = 0,
+ DXGI_ALPHA_MODE_PREMULTIPLIED = 1,
+ DXGI_ALPHA_MODE_STRAIGHT = 2,
+ DXGI_ALPHA_MODE_IGNORE = 3,
+ DXGI_ALPHA_MODE_FORCE_DWORD = 0xFFFFFFFF,
+}}
+ENUM!{enum DXGI_COMPUTE_PREEMPTION_GRANULARITY {
+ DXGI_COMPUTE_PREEMPTION_DMA_BUFFER_BOUNDARY = 0,
+ DXGI_COMPUTE_PREEMPTION_DISPATCH_BOUNDARY = 1,
+ DXGI_COMPUTE_PREEMPTION_THREAD_GROUP_BOUNDARY = 2,
+ DXGI_COMPUTE_PREEMPTION_THREAD_BOUNDARY = 3,
+ DXGI_COMPUTE_PREEMPTION_INSTRUCTION_BOUNDARY = 4,
+}}
+ENUM!{enum DXGI_GRAPHICS_PREEMPTION_GRANULARITY {
+ DXGI_GRAPHICS_PREEMPTION_DMA_BUFFER_BOUNDARY = 0,
+ DXGI_GRAPHICS_PREEMPTION_PRIMITIVE_BOUNDARY = 1,
+ DXGI_GRAPHICS_PREEMPTION_TRIANGLE_BOUNDARY = 2,
+ DXGI_GRAPHICS_PREEMPTION_PIXEL_BOUNDARY = 3,
+ DXGI_GRAPHICS_PREEMPTION_INSTRUCTION_BOUNDARY = 4,
+}}
+ENUM!{enum DXGI_OUTDUPL_POINTER_SHAPE_TYPE {
+ DXGI_OUTDUPL_POINTER_SHAPE_TYPE_MONOCHROME = 1,
+ DXGI_OUTDUPL_POINTER_SHAPE_TYPE_COLOR = 2,
+ DXGI_OUTDUPL_POINTER_SHAPE_TYPE_MASKED_COLOR = 4,
+}}
+ENUM!{enum DXGI_SCALING {
+ DXGI_SCALING_STRETCH = 0,
+ DXGI_SCALING_NONE = 1,
+ DXGI_SCALING_ASPECT_RATIO_STRETCH = 2,
+}}
+ENUM!{enum _DXGI_OFFER_RESOURCE_PRIORITY {
+ DXGI_OFFER_RESOURCE_PRIORITY_LOW = 1,
+ DXGI_OFFER_RESOURCE_PRIORITY_NORMAL = 2,
+ DXGI_OFFER_RESOURCE_PRIORITY_HIGH = 3,
+}}
+STRUCT!{struct DXGI_ADAPTER_DESC2 {
+ Description: [WCHAR; 128],
+ VendorId: UINT,
+ DeviceId: UINT,
+ SubSysId: UINT,
+ Revision: UINT,
+ DedicatedVideoMemory: SIZE_T,
+ DedicatedSystemMemory: SIZE_T,
+ SharedSystemMemory: SIZE_T,
+ AdapterLuid: LUID,
+ Flags: UINT,
+ GraphicsPreemptionGranularity: DXGI_GRAPHICS_PREEMPTION_GRANULARITY,
+ ComputePreemptionGranularity: DXGI_COMPUTE_PREEMPTION_GRANULARITY,
+}}
+STRUCT!{struct DXGI_MODE_DESC1 {
+ Width: UINT,
+ Height: UINT,
+ RefreshRate: DXGI_RATIONAL,
+ Format: DXGI_FORMAT,
+ ScanlineOrdering: DXGI_MODE_SCANLINE_ORDER,
+ Scaling: DXGI_MODE_SCALING,
+ Stereo: BOOL,
+}}
+STRUCT!{struct DXGI_OUTDUPL_DESC {
+ ModeDesc: DXGI_MODE_DESC,
+ Rotation: DXGI_MODE_ROTATION,
+ DesktopImageInSystemMemory: BOOL,
+}}
+STRUCT!{struct DXGI_OUTDUPL_FRAME_INFO {
+ LastPresentTime: LARGE_INTEGER,
+ LastMouseUpdateTime: LARGE_INTEGER,
+ AccumulatedFrames: UINT,
+ RectsCoalesced: BOOL,
+ ProtectedContentMaskedOut: BOOL,
+ PointerPosition: DXGI_OUTDUPL_POINTER_POSITION,
+ TotalMetadataBufferSize: UINT,
+ PointerShapeBufferSize: UINT,
+}}
+STRUCT!{struct DXGI_OUTDUPL_MOVE_RECT {
+ SourcePoint: POINT,
+ DestinationRect: RECT,
+}}
+STRUCT!{struct DXGI_OUTDUPL_POINTER_POSITION {
+ Position: POINT,
+ Visible: BOOL,
+}}
+STRUCT!{struct DXGI_OUTDUPL_POINTER_SHAPE_INFO {
+ Type: UINT,
+ Width: UINT,
+ Height: UINT,
+ Pitch: UINT,
+ HotSpot: POINT,
+}}
+STRUCT!{struct DXGI_PRESENT_PARAMETERS {
+ DirtyRectsCount: UINT,
+ pDirtyRects: *mut RECT,
+ pScrollRect: *mut RECT,
+ pScrollOffset: *mut POINT,
+}}
+STRUCT!{struct DXGI_SWAP_CHAIN_DESC1 {
+ Width: UINT,
+ Height: UINT,
+ Format: DXGI_FORMAT,
+ Stereo: BOOL,
+ SampleDesc: DXGI_SAMPLE_DESC,
+ BufferUsage: DXGI_USAGE,
+ BufferCount: UINT,
+ Scaling: DXGI_SCALING,
+ SwapEffect: DXGI_SWAP_EFFECT,
+ AlphaMode: DXGI_ALPHA_MODE,
+ Flags: UINT,
+}}
+STRUCT!{struct DXGI_SWAP_CHAIN_FULLSCREEN_DESC {
+ RefreshRate: DXGI_RATIONAL,
+ ScanlineOrdering: DXGI_MODE_SCANLINE_ORDER,
+ Scaling: DXGI_MODE_SCALING,
+ Windowed: BOOL,
+}}
+RIDL!{#[uuid(0x0aa1ae0a, 0xfa0e, 0x4b84, 0x86, 0x44, 0xe0, 0x5f, 0xf8, 0xe5, 0xac, 0xb5)]
+interface IDXGIAdapter2(IDXGIAdapter2Vtbl): IDXGIAdapter1(IDXGIAdapter1Vtbl) {
+ fn GetDesc2(
+ pDesc: *mut DXGI_ADAPTER_DESC2,
+ ) -> HRESULT,
+}}
+RIDL!{#[uuid(0x05008617, 0xfbfd, 0x4051, 0xa7, 0x90, 0x14, 0x48, 0x84, 0xb4, 0xf6, 0xa9)]
+interface IDXGIDevice2(IDXGIDevice2Vtbl): IDXGIDevice1(IDXGIDevice1Vtbl) {
+ fn OfferResources(
+ NumResources: UINT,
+ ppResources: *mut *mut IDXGIResource,
+ Priority: DXGI_OFFER_RESOURCE_PRIORITY,
+ ) -> HRESULT,
+ fn ReclaimResources(
+ NumResources: UINT,
+ ppResources: *mut *mut IDXGIResource,
+ pDiscarded: *mut BOOL,
+ ) -> HRESULT,
+ fn EnqueueSetEvent(
+ hEvent: HANDLE,
+ ) -> HRESULT,
+}}
+RIDL!{#[uuid(0xea9dbf1a, 0xc88e, 0x4486, 0x85, 0x4a, 0x98, 0xaa, 0x01, 0x38, 0xf3, 0x0c)]
+interface IDXGIDisplayControl(IDXGIDisplayControlVtbl): IUnknown(IUnknownVtbl) {
+ fn IsStereoEnabled() -> BOOL,
+ fn SetStereoEnabled(
+ enabled: BOOL,
+ ) -> (),
+}}
+RIDL!{#[uuid(0x50c83a1c, 0xe072, 0x4c48, 0x87, 0xb0, 0x36, 0x30, 0xfa, 0x36, 0xa6, 0xd0)]
+interface IDXGIFactory2(IDXGIFactory2Vtbl): IDXGIFactory1(IDXGIFactory1Vtbl) {
+ fn IsWindowedStereoEnabled() -> BOOL,
+ fn CreateSwapChainForHwnd(
+ pDevice: *mut IUnknown,
+ hWnd: HWND,
+ pDesc: *const DXGI_SWAP_CHAIN_DESC1,
+ pFullscreenDesc: *const DXGI_SWAP_CHAIN_FULLSCREEN_DESC,
+ pRestrictToOutput: *mut IDXGIOutput,
+ ppSwapChain: *mut *mut IDXGISwapChain1,
+ ) -> HRESULT,
+ fn CreateSwapChainForCoreWindow(
+ pDevice: *mut IUnknown,
+ pWindow: *mut IUnknown,
+ pDesc: *const DXGI_SWAP_CHAIN_DESC1,
+ pRestrictToOutput: *mut IDXGIOutput,
+ ppSwapChain: *mut *mut IDXGISwapChain1,
+ ) -> HRESULT,
+ fn GetSharedResourceAdapterLuid(
+ hResource: HANDLE,
+ pLuid: *mut LUID,
+ ) -> HRESULT,
+ fn RegisterStereoStatusWindow(
+ WindowHandle: HWND,
+ wMsg: UINT,
+ pdwCookie: *mut DWORD,
+ ) -> HRESULT,
+ fn RegisterStereoStatusEvent(
+ hEvent: HANDLE,
+ pdwCookie: *mut DWORD,
+ ) -> HRESULT,
+ fn UnregisterStereoStatus(
+ dwCookie: DWORD,
+ ) -> (),
+ fn RegisterOcclusionStatusWindow(
+ WindowHandle: HWND,
+ wMsg: UINT,
+ pdwCookie: *mut DWORD,
+ ) -> HRESULT,
+ fn RegisterOcclusionStatusEvent(
+ hEvent: HANDLE,
+ pdwCookie: *mut DWORD,
+ ) -> HRESULT,
+ fn UnregisterOcclusionStatus(
+ dwCookie: DWORD,
+ ) -> (),
+ fn CreateSwapChainForComposition(
+ pDevice: *mut IUnknown,
+ pDesc: *const DXGI_SWAP_CHAIN_DESC1,
+ pRestrictToOutput: *mut IDXGIOutput,
+ ppSwapChain: *mut *mut IDXGISwapChain1,
+ ) -> HRESULT,
+}}
+RIDL!{#[uuid(0x00cddea8, 0x939b, 0x4b83, 0xa3, 0x40, 0xa6, 0x85, 0x22, 0x66, 0x66, 0xcc)]
+interface IDXGIOutput1(IDXGIOutput1Vtbl): IDXGIOutput(IDXGIOutputVtbl) {
+ fn GetDisplayModeList1(
+ EnumFormat: DXGI_FORMAT,
+ Flags: UINT,
+ pNumModes: *mut UINT,
+ pDesc: *mut DXGI_MODE_DESC1,
+ ) -> HRESULT,
+ fn FindClosestMatchingMode1(
+ pModeToMatch: *const DXGI_MODE_DESC1,
+ pClosestMatch: *mut DXGI_MODE_DESC1,
+ pConcernedDevice: *mut IUnknown,
+ ) -> HRESULT,
+ fn GetDisplaySurfaceData1(
+ pDestination: *mut IDXGIResource,
+ ) -> HRESULT,
+ fn DuplicateOutput(
+ pDevice: *mut IUnknown,
+ ppOutputDuplication: *mut *mut IDXGIOutputDuplication,
+ ) -> HRESULT,
+}}
+RIDL!{#[uuid(0x191cfac3, 0xa341, 0x470d, 0xb2, 0x6e, 0xa8, 0x64, 0xf4, 0x28, 0x31, 0x9c)]
+interface IDXGIOutputDuplication(IDXGIOutputDuplicationVtbl): IDXGIObject(IDXGIObjectVtbl) {
+ fn GetDesc(
+ pDesc: *mut DXGI_OUTDUPL_DESC,
+ ) -> (),
+ fn AcquireNextFrame(
+ TimeoutInMilliseconds: UINT,
+ pFrameInfo: *mut DXGI_OUTDUPL_FRAME_INFO,
+ ppDesktopResource: *mut *mut IDXGIResource,
+ ) -> HRESULT,
+ fn GetFrameDirtyRects(
+ DirtyRectsBufferSize: UINT,
+ pDirtyRectsBuffer: *mut RECT,
+ pDirtyRectsBufferSizeRequired: *mut UINT,
+ ) -> HRESULT,
+ fn GetFrameMoveRects(
+ MoveRectsBufferSize: UINT,
+ pMoveRectBuffer: *mut DXGI_OUTDUPL_MOVE_RECT,
+ pMoveRectsBufferSizeRequired: *mut UINT,
+ ) -> HRESULT,
+ fn GetFramePointerShape(
+ PointerShapeBufferSize: UINT,
+ pPointerShapeBuffer: *mut c_void,
+ pPointerShapeBufferSizeRequired: *mut UINT,
+ pPointerShapeInfo: *mut DXGI_OUTDUPL_POINTER_SHAPE_INFO,
+ ) -> HRESULT,
+ fn MapDesktopSurface(
+ pLockedRect: *mut DXGI_MAPPED_RECT,
+ ) -> HRESULT,
+ fn UnMapDesktopSurface() -> HRESULT,
+ fn ReleaseFrame() -> HRESULT,
+}}
+RIDL!{#[uuid(0x30961379, 0x4609, 0x4a41, 0x99, 0x8e, 0x54, 0xfe, 0x56, 0x7e, 0xe0, 0xc1)]
+interface IDXGIResource1(IDXGIResource1Vtbl): IDXGIResource(IDXGIResourceVtbl) {
+ fn CreateSubresourceSurface(
+ index: UINT,
+ ppSurface: *mut *mut IDXGISurface2,
+ ) -> HRESULT,
+ fn CreateSharedHandle(
+ pAttributes: *const SECURITY_ATTRIBUTES,
+ dwAccess: DWORD,
+ lpName: LPCWSTR,
+ pHandle: *mut HANDLE,
+ ) -> HRESULT,
+}}
+RIDL!{#[uuid(0xaba496dd, 0xb617, 0x4cb8, 0xa8, 0x66, 0xbc, 0x44, 0xd7, 0xeb, 0x1f, 0xa2)]
+interface IDXGISurface2(IDXGISurface2Vtbl): IDXGISurface1(IDXGISurface1Vtbl) {
+ fn GetResource(
+ riid: REFGUID,
+ ppParentResource: *mut *mut c_void,
+ pSubresourceIndex: *mut UINT,
+ ) -> HRESULT,
+}}
+RIDL!{#[uuid(0x790a45f7, 0x0d42, 0x4876, 0x98, 0x3a, 0x0a, 0x55, 0xcf, 0xe6, 0xf4, 0xaa)]
+interface IDXGISwapChain1(IDXGISwapChain1Vtbl): IDXGISwapChain(IDXGISwapChainVtbl) {
+ fn GetDesc1(
+ pDesc: *mut DXGI_SWAP_CHAIN_DESC1,
+ ) -> HRESULT,
+ fn GetFullscreenDesc(
+ pDesc: *mut DXGI_SWAP_CHAIN_FULLSCREEN_DESC,
+ ) -> HRESULT,
+ fn GetHwnd(
+ pHwnd: *mut HWND,
+ ) -> HRESULT,
+ fn GetCoreWindow(
+ refiid: REFGUID,
+ ppUnk: *mut *mut c_void,
+ ) -> HRESULT,
+ fn Present1(
+ SyncInterval: UINT,
+ PresentFlags: UINT,
+ pPresentParameters: *const DXGI_PRESENT_PARAMETERS,
+ ) -> HRESULT,
+ fn IsTemporaryMonoSupported() -> BOOL,
+ fn GetRestrictToOutput(
+ ppRestrictToOutput: *mut *mut IDXGIOutput,
+ ) -> HRESULT,
+ fn SetBackgroundColor(
+ pColor: *const DXGI_RGBA,
+ ) -> HRESULT,
+ fn GetBackgroundColor(
+ pColor: *mut DXGI_RGBA,
+ ) -> HRESULT,
+ fn SetRotation(
+ Rotation: DXGI_MODE_ROTATION,
+ ) -> HRESULT,
+ fn GetRotation(
+ pRotation: *mut DXGI_MODE_ROTATION,
+ ) -> HRESULT,
+}}
+pub type DXGI_OFFER_RESOURCE_PRIORITY = _DXGI_OFFER_RESOURCE_PRIORITY;
+pub const DXGI_ENUM_MODES_DISABLED_STEREO: UINT = 8;
+pub const DXGI_ENUM_MODES_STEREO: UINT = 4;
+pub const DXGI_SHARED_RESOURCE_READ: UINT = 0x80000000;
+pub const DXGI_SHARED_RESOURCE_WRITE: UINT = 1;
+DEFINE_GUID!{IID_IDXGIDisplayControl,
+ 0xea9dbf1a, 0xc88e, 0x4486, 0x85, 0x4a, 0x98, 0xaa, 0x01, 0x38, 0xf3, 0x0c}
+DEFINE_GUID!{IID_IDXGIOutputDuplication,
+ 0x191cfac3, 0xa341, 0x470d, 0xb2, 0x6e, 0xa8, 0x64, 0xf4, 0x28, 0x31, 0x9c}
+DEFINE_GUID!{IID_IDXGISurface2,
+ 0xaba496dd, 0xb617, 0x4cb8, 0xa8, 0x66, 0xbc, 0x44, 0xd7, 0xeb, 0x1f, 0xa2}
+DEFINE_GUID!{IID_IDXGIResource1,
+ 0x30961379, 0x4609, 0x4a41, 0x99, 0x8e, 0x54, 0xfe, 0x56, 0x7e, 0xe0, 0xc1}
+DEFINE_GUID!{IID_IDXGIDevice2,
+ 0x05008617, 0xfbfd, 0x4051, 0xa7, 0x90, 0x14, 0x48, 0x84, 0xb4, 0xf6, 0xa9}
+DEFINE_GUID!{IID_IDXGISwapChain1,
+ 0x790a45f7, 0x0d42, 0x4876, 0x98, 0x3a, 0x0a, 0x55, 0xcf, 0xe6, 0xf4, 0xaa}
+DEFINE_GUID!{IID_IDXGIFactory2,
+ 0x50c83a1c, 0xe072, 0x4c48, 0x87, 0xb0, 0x36, 0x30, 0xfa, 0x36, 0xa6, 0xd0}
+DEFINE_GUID!{IID_IDXGIAdapter2,
+ 0x0aa1ae0a, 0xfa0e, 0x4b84, 0x86, 0x44, 0xe0, 0x5f, 0xf8, 0xe5, 0xac, 0xb5}
+DEFINE_GUID!{IID_IDXGIOutput1,
+ 0x00cddea8, 0x939b, 0x4b83, 0xa3, 0x40, 0xa6, 0x85, 0x22, 0x66, 0x66, 0xcc}
diff --git a/third_party/rust/chromium_crates_io/vendor/winapi-0.3.9/src/shared/dxgi1_3.rs b/third_party/rust/chromium_crates_io/vendor/winapi-0.3.9/src/shared/dxgi1_3.rs
new file mode 100644
index 000000000000..caf346a61787
--- /dev/null
+++ b/third_party/rust/chromium_crates_io/vendor/winapi-0.3.9/src/shared/dxgi1_3.rs
@@ -0,0 +1,190 @@
+// Licensed under the Apache License, Version 2.0
+// or the MIT license
+// , at your option.
+// All files in the project carrying such notice may not be copied, modified, or distributed
+// except according to those terms.
+//! Mappings for the contents of dxgi1_3.h
+use ctypes::c_void;
+use shared::dxgi::{IDXGIOutput, IDXGIResource};
+use shared::dxgi1_2::{
+ DXGI_SWAP_CHAIN_DESC1, IDXGIDevice2, IDXGIDevice2Vtbl, IDXGIFactory2, IDXGIFactory2Vtbl,
+ IDXGIOutput1, IDXGIOutput1Vtbl, IDXGISwapChain1, IDXGISwapChain1Vtbl,
+};
+use shared::dxgiformat::DXGI_FORMAT;
+use shared::guiddef::REFIID;
+use shared::minwindef::{BOOL, FLOAT, UINT};
+use shared::windef::RECT;
+use um::unknwnbase::{IUnknown, IUnknownVtbl};
+use um::winnt::{HANDLE, HRESULT, LARGE_INTEGER};
+ENUM!{enum DXGI_FRAME_PRESENTATION_MODE {
+ DXGI_FRAME_PRESENTATION_MODE_COMPOSED = 0,
+ DXGI_FRAME_PRESENTATION_MODE_OVERLAY = 1,
+ DXGI_FRAME_PRESENTATION_MODE_NONE = 2,
+ DXGI_FRAME_PRESENTATION_MODE_COMPOSITION_FAILURE = 3,
+}}
+ENUM!{enum DXGI_MULTIPLANE_OVERLAY_YCbCr_FLAGS {
+ DXGI_MULTIPLANE_OVERLAY_YCbCr_FLAG_NOMINAL_RANGE = 0x1,
+ DXGI_MULTIPLANE_OVERLAY_YCbCr_FLAG_BT709 = 0x2,
+ DXGI_MULTIPLANE_OVERLAY_YCbCr_FLAG_xvYCC = 0x4,
+}}
+ENUM!{enum DXGI_OVERLAY_SUPPORT_FLAG {
+ DXGI_OVERLAY_SUPPORT_FLAG_DIRECT = 0x1,
+ DXGI_OVERLAY_SUPPORT_FLAG_SCALING = 0x2,
+}}
+STRUCT!{struct DXGI_DECODE_SWAP_CHAIN_DESC {
+ Flags: UINT,
+}}
+STRUCT!{struct DXGI_FRAME_STATISTICS_MEDIA {
+ PresentCount: UINT,
+ PresentRefreshCount: UINT,
+ SyncRefreshCount: UINT,
+ SyncQPCTime: LARGE_INTEGER,
+ SyncGPUTime: LARGE_INTEGER,
+ CompositionMode: DXGI_FRAME_PRESENTATION_MODE,
+ ApprovedPresentDuration: UINT,
+}}
+STRUCT!{struct DXGI_MATRIX_3X2_F {
+ _11: FLOAT,
+ _12: FLOAT,
+ _21: FLOAT,
+ _22: FLOAT,
+ _31: FLOAT,
+ _32: FLOAT,
+}}
+RIDL!{#[uuid(0x2633066b, 0x4514, 0x4c7a, 0x8f, 0xd8, 0x12, 0xea, 0x98, 0x05, 0x9d, 0x18)]
+interface IDXGIDecodeSwapChain(IDXGIDecodeSwapChainVtbl): IUnknown(IUnknownVtbl) {
+ fn PresentBuffer(
+ BufferToPresent: UINT,
+ SyncInterval: UINT,
+ Flags: UINT,
+ ) -> HRESULT,
+ fn SetSourceRect(
+ pRect: *const RECT,
+ ) -> HRESULT,
+ fn SetTargetRect(
+ pRect: *const RECT,
+ ) -> HRESULT,
+ fn SetDestSize(
+ Width: UINT,
+ Height: UINT,
+ ) -> HRESULT,
+ fn GetSourceRect(
+ pRect: *mut RECT,
+ ) -> HRESULT,
+ fn GetTargetRect(
+ pRect: *mut RECT,
+ ) -> HRESULT,
+ fn GetDestSize(
+ pWidth: *mut UINT,
+ pHeight: *mut UINT,
+ ) -> HRESULT,
+ fn SetColorSpace(
+ ColorSpace: DXGI_MULTIPLANE_OVERLAY_YCbCr_FLAGS,
+ ) -> HRESULT,
+ fn GetColorSpace() -> DXGI_MULTIPLANE_OVERLAY_YCbCr_FLAGS,
+}}
+extern "system" {
+ pub fn CreateDXGIFactory2(
+ Flags: UINT,
+ riid: REFIID,
+ ppFactory: *mut *mut c_void,
+ ) -> HRESULT;
+ pub fn DXGIGetDebugInterface1(
+ Flags: UINT,
+ riid: REFIID,
+ pDebug: *mut *mut c_void,
+ ) -> HRESULT;
+}
+RIDL!{#[uuid(0x6007896c, 0x3244, 0x4afd, 0xbf, 0x18, 0xa6, 0xd3, 0xbe, 0xda, 0x50, 0x23)]
+interface IDXGIDevice3(IDXGIDevice3Vtbl): IDXGIDevice2(IDXGIDevice2Vtbl) {
+ fn Trim() -> (),
+}}
+RIDL!{#[uuid(0x25483823, 0xcd46, 0x4c7d, 0x86, 0xca, 0x47, 0xaa, 0x95, 0xb8, 0x37, 0xbd)]
+interface IDXGIFactory3(IDXGIFactory3Vtbl): IDXGIFactory2(IDXGIFactory2Vtbl) {
+ fn GetCreationFlags() -> UINT,
+}}
+RIDL!{#[uuid(0x41e7d1f2, 0xa591, 0x4f7b, 0xa2, 0xe5, 0xfa, 0x9c, 0x84, 0x3e, 0x1c, 0x12)]
+interface IDXGIFactoryMedia(IDXGIFactoryMediaVtbl): IUnknown(IUnknownVtbl) {
+ fn CreateSwapChainForCompositionSurfaceHandle(
+ pDevice: *mut IUnknown,
+ hSurface: HANDLE,
+ pDesc: *const DXGI_SWAP_CHAIN_DESC1,
+ pRestrictToOutput: *mut IDXGIOutput,
+ ppSwapChain: *mut *mut IDXGISwapChain1,
+ ) -> HRESULT,
+ fn CreateDecodeSwapChainForCompositionSurfaceHandle(
+ pDevice: *mut IUnknown,
+ hSurface: HANDLE,
+ pDesc: *mut DXGI_DECODE_SWAP_CHAIN_DESC,
+ pYuvDecodeBuffers: *mut IDXGIResource,
+ pRestrictToOutput: *mut IDXGIOutput,
+ ppSwapChain: *mut *mut IDXGIDecodeSwapChain,
+ ) -> HRESULT,
+}}
+RIDL!{#[uuid(0x595e39d1, 0x2724, 0x4663, 0x99, 0xb1, 0xda, 0x96, 0x9d, 0xe2, 0x83, 0x64)]
+interface IDXGIOutput2(IDXGIOutput2Vtbl): IDXGIOutput1(IDXGIOutput1Vtbl) {
+ fn SupportsOverlays() -> BOOL,
+}}
+RIDL!{#[uuid(0x8a6bb301, 0x7e7e, 0x41f4, 0xa8, 0xe0, 0x5b, 0x32, 0xf7, 0xf9, 0x9b, 0x18)]
+interface IDXGIOutput3(IDXGIOutput3Vtbl): IDXGIOutput2(IDXGIOutput2Vtbl) {
+ fn CheckOverlaySupport(
+ EnumFormat: DXGI_FORMAT,
+ pConcernedDevice: *mut IUnknown,
+ pFlags: *mut UINT,
+ ) -> HRESULT,
+}}
+RIDL!{#[uuid(0xa8be2ac4, 0x199f, 0x4946, 0xb3, 0x31, 0x79, 0x59, 0x9f, 0xb9, 0x8d, 0xe7)]
+interface IDXGISwapChain2(IDXGISwapChain2Vtbl): IDXGISwapChain1(IDXGISwapChain1Vtbl) {
+ fn SetSourceSize(
+ Width: UINT,
+ Height: UINT,
+ ) -> HRESULT,
+ fn GetSourceSize(
+ pWidth: *mut UINT,
+ pHeight: *mut UINT,
+ ) -> HRESULT,
+ fn SetMaximumFrameLatency(
+ MaxLatency: UINT,
+ ) -> HRESULT,
+ fn GetMaximumFrameLatency(
+ pMaxLatency: *mut UINT,
+ ) -> HRESULT,
+ fn GetFrameLatencyWaitableObject() -> HANDLE,
+ fn SetMatrixTransform(
+ pMatrix: *const DXGI_MATRIX_3X2_F,
+ ) -> HRESULT,
+ fn GetMatrixTransform(
+ pMatrix: *mut DXGI_MATRIX_3X2_F,
+ ) -> HRESULT,
+}}
+RIDL!{#[uuid(0xdd95b90b, 0xf05f, 0x4f6a, 0xbd, 0x65, 0x25, 0xbf, 0xb2, 0x64, 0xbd, 0x84)]
+interface IDXGISwapChainMedia(IDXGISwapChainMediaVtbl): IUnknown(IUnknownVtbl) {
+ fn GetFrameStatisticsMedia(
+ pStats: *mut DXGI_FRAME_STATISTICS_MEDIA,
+ ) -> HRESULT,
+ fn SetPresentDuration(
+ Duration: UINT,
+ ) -> HRESULT,
+ fn CheckPresentDurationSupport(
+ DesiredPresentDuration: UINT,
+ pClosestSmallerPresentDuration: *mut UINT,
+ pClosestLargerPresentDuration: *mut UINT,
+ ) -> HRESULT,
+}}
+pub const DXGI_CREATE_FACTORY_DEBUG: UINT = 0x1;
+DEFINE_GUID!{IID_IDXGIDevice3,
+ 0x6007896c, 0x3244, 0x4afd, 0xbf, 0x18, 0xa6, 0xd3, 0xbe, 0xda, 0x50, 0x23}
+DEFINE_GUID!{IID_IDXGISwapChain2,
+ 0xa8be2ac4, 0x199f, 0x4946, 0xb3, 0x31, 0x79, 0x59, 0x9f, 0xb9, 0x8d, 0xe7}
+DEFINE_GUID!{IID_IDXGIOutput2,
+ 0x595e39d1, 0x2724, 0x4663, 0x99, 0xb1, 0xda, 0x96, 0x9d, 0xe2, 0x83, 0x64}
+DEFINE_GUID!{IID_IDXGIFactory3,
+ 0x25483823, 0xcd46, 0x4c7d, 0x86, 0xca, 0x47, 0xaa, 0x95, 0xb8, 0x37, 0xbd}
+DEFINE_GUID!{IID_IDXGIDecodeSwapChain,
+ 0x2633066b, 0x4514, 0x4c7a, 0x8f, 0xd8, 0x12, 0xea, 0x98, 0x05, 0x9d, 0x18}
+DEFINE_GUID!{IID_IDXGIFactoryMedia,
+ 0x41e7d1f2, 0xa591, 0x4f7b, 0xa2, 0xe5, 0xfa, 0x9c, 0x84, 0x3e, 0x1c, 0x12}
+DEFINE_GUID!{IID_IDXGISwapChainMedia,
+ 0xdd95b90b, 0xf05f, 0x4f6a, 0xbd, 0x65, 0x25, 0xbf, 0xb2, 0x64, 0xbd, 0x84}
+DEFINE_GUID!{IID_IDXGIOutput3,
+ 0x8a6bb301, 0x7e7e, 0x41f4, 0xa8, 0xe0, 0x5b, 0x32, 0xf7, 0xf9, 0x9b, 0x18}
diff --git a/third_party/rust/chromium_crates_io/vendor/winapi-0.3.9/src/shared/dxgi1_4.rs b/third_party/rust/chromium_crates_io/vendor/winapi-0.3.9/src/shared/dxgi1_4.rs
new file mode 100644
index 000000000000..53269e88ddd8
--- /dev/null
+++ b/third_party/rust/chromium_crates_io/vendor/winapi-0.3.9/src/shared/dxgi1_4.rs
@@ -0,0 +1,112 @@
+// Licensed under the Apache License, Version 2.0
+// or the MIT license
+// , at your option.
+// All files in the project carrying such notice may not be copied, modified, or distributed
+// except according to those terms.
+//! Mappings for the contents of dxgi1_4.h
+use ctypes::c_void;
+use shared::basetsd::UINT64;
+use shared::dxgi1_2::{IDXGIAdapter2, IDXGIAdapter2Vtbl};
+use shared::dxgi1_3::{
+ IDXGIFactory3, IDXGIFactory3Vtbl, IDXGIOutput3, IDXGIOutput3Vtbl, IDXGISwapChain2,
+ IDXGISwapChain2Vtbl,
+};
+use shared::dxgiformat::DXGI_FORMAT;
+use shared::dxgitype::DXGI_COLOR_SPACE_TYPE;
+use shared::guiddef::REFGUID;
+use shared::minwindef::{DWORD, UINT};
+use um::unknwnbase::IUnknown;
+use um::winnt::{HANDLE, HRESULT, LUID};
+ENUM!{enum DXGI_MEMORY_SEGMENT_GROUP {
+ DXGI_MEMORY_SEGMENT_GROUP_LOCAL = 0,
+ DXGI_MEMORY_SEGMENT_GROUP_NON_LOCAL = 1,
+}}
+ENUM!{enum DXGI_OVERLAY_COLOR_SPACE_SUPPORT_FLAG {
+ DXGI_OVERLAY_COLOR_SPACE_SUPPORT_FLAG_PRESENT = 0x1,
+}}
+ENUM!{enum DXGI_SWAP_CHAIN_COLOR_SPACE_SUPPORT_FLAG {
+ DXGI_SWAP_CHAIN_COLOR_SPACE_SUPPORT_FLAG_PRESENT = 0x1,
+ DXGI_SWAP_CHAIN_COLOR_SPACE_SUPPORT_FLAG_OVERLAY_PRESENT = 0x2,
+}}
+STRUCT!{struct DXGI_QUERY_VIDEO_MEMORY_INFO {
+ Budget: UINT64,
+ CurrentUsage: UINT64,
+ AvailableForReservation: UINT64,
+ CurrentReservation: UINT64,
+}}
+RIDL!{#[uuid(0x645967a4, 0x1392, 0x4310, 0xa7, 0x98, 0x80, 0x53, 0xce, 0x3e, 0x93, 0xfd)]
+interface IDXGIAdapter3(IDXGIAdapter3Vtbl): IDXGIAdapter2(IDXGIAdapter2Vtbl) {
+ fn RegisterHardwareContentProtectionTeardownStatusEvent(
+ hEvent: HANDLE,
+ pdwCookie: *mut DWORD,
+ ) -> HRESULT,
+ fn UnregisterHardwareContentProtectionTeardownStatus(
+ dwCookie: DWORD,
+ ) -> (),
+ fn QueryVideoMemoryInfo(
+ NodeIndex: UINT,
+ MemorySegmentGroup: DXGI_MEMORY_SEGMENT_GROUP,
+ pVideoMemoryInfo: *mut DXGI_QUERY_VIDEO_MEMORY_INFO,
+ ) -> HRESULT,
+ fn SetVideoMemoryReservation(
+ NodeIndex: UINT,
+ MemorySegmentGroup: DXGI_MEMORY_SEGMENT_GROUP,
+ Reservation: UINT64,
+ ) -> HRESULT,
+ fn RegisterVideoMemoryBudgetChangeNotificationEvent(
+ hEvent: HANDLE,
+ pdwCookie: *mut DWORD,
+ ) -> HRESULT,
+ fn UnregisterVideoMemoryBudgetChangeNotification(
+ dwCookie: DWORD,
+ ) -> (),
+}}
+RIDL!{#[uuid(0x1bc6ea02, 0xef36, 0x464f, 0xbf, 0x0c, 0x21, 0xca, 0x39, 0xe5, 0x16, 0x8a)]
+interface IDXGIFactory4(IDXGIFactory4Vtbl): IDXGIFactory3(IDXGIFactory3Vtbl) {
+ fn EnumAdapterByLuid(
+ AdapterLuid: LUID,
+ riid: REFGUID,
+ ppvAdapter: *mut *mut c_void,
+ ) -> HRESULT,
+ fn EnumWarpAdapter(
+ riid: REFGUID,
+ ppvAdapter: *mut *mut c_void,
+ ) -> HRESULT,
+}}
+RIDL!{#[uuid(0xdc7dca35, 0x2196, 0x414d, 0x9f, 0x53, 0x61, 0x78, 0x84, 0x03, 0x2a, 0x60)]
+interface IDXGIOutput4(IDXGIOutput4Vtbl): IDXGIOutput3(IDXGIOutput3Vtbl) {
+ fn CheckOverlayColorSpaceSupport(
+ Format: DXGI_FORMAT,
+ ColorSpace: DXGI_COLOR_SPACE_TYPE,
+ pConcernedDevice: *mut IUnknown,
+ pFlags: *mut UINT,
+ ) -> HRESULT,
+}}
+RIDL!{#[uuid(0x94d99bdb, 0xf1f8, 0x4ab0, 0xb2, 0x36, 0x7d, 0xa0, 0x17, 0x0e, 0xda, 0xb1)]
+interface IDXGISwapChain3(IDXGISwapChain3Vtbl): IDXGISwapChain2(IDXGISwapChain2Vtbl) {
+ fn GetCurrentBackBufferIndex() -> UINT,
+ fn CheckColorSpaceSupport(
+ ColorSpace: DXGI_COLOR_SPACE_TYPE,
+ pColorSpaceSupport: *mut UINT,
+ ) -> HRESULT,
+ fn SetColorSpace1(
+ ColorSpace: DXGI_COLOR_SPACE_TYPE,
+ ) -> HRESULT,
+ fn ResizeBuffers1(
+ BufferCount: UINT,
+ Width: UINT,
+ Height: UINT,
+ Format: DXGI_FORMAT,
+ SwapChainFlags: UINT,
+ pCreationNodeMask: *const UINT,
+ ppPresentQueue: *mut *mut IUnknown,
+ ) -> HRESULT,
+}}
+DEFINE_GUID!{IID_IDXGISwapChain3,
+ 0x94d99bdb, 0xf1f8, 0x4ab0, 0xb2, 0x36, 0x7d, 0xa0, 0x17, 0x0e, 0xda, 0xb1}
+DEFINE_GUID!{IID_IDXGIOutput4,
+ 0xdc7dca35, 0x2196, 0x414d, 0x9f, 0x53, 0x61, 0x78, 0x84, 0x03, 0x2a, 0x60}
+DEFINE_GUID!{IID_IDXGIFactory4,
+ 0x1bc6ea02, 0xef36, 0x464f, 0xbf, 0x0c, 0x21, 0xca, 0x39, 0xe5, 0x16, 0x8a}
+DEFINE_GUID!{IID_IDXGIAdapter3,
+ 0x645967a4, 0x1392, 0x4310, 0xa7, 0x98, 0x80, 0x53, 0xce, 0x3e, 0x93, 0xfd}
diff --git a/third_party/rust/chromium_crates_io/vendor/winapi-0.3.9/src/shared/dxgi1_5.rs b/third_party/rust/chromium_crates_io/vendor/winapi-0.3.9/src/shared/dxgi1_5.rs
new file mode 100644
index 000000000000..a0500a247885
--- /dev/null
+++ b/third_party/rust/chromium_crates_io/vendor/winapi-0.3.9/src/shared/dxgi1_5.rs
@@ -0,0 +1,92 @@
+// Licensed under the Apache License, Version 2.0
+// or the MIT license
+// , at your option.
+// All files in the project carrying such notice may not be copied, modified, or distributed
+// except according to those terms.
+//! Mappings for the contents of dxgi1_5.h
+use ctypes::c_void;
+use shared::basetsd::UINT16;
+use shared::dxgi::IDXGIResource;
+use shared::dxgi1_2::{DXGI_OFFER_RESOURCE_PRIORITY, IDXGIOutputDuplication};
+use shared::dxgi1_3::{IDXGIDevice3, IDXGIDevice3Vtbl};
+use shared::dxgi1_4::{
+ IDXGIFactory4, IDXGIFactory4Vtbl, IDXGIOutput4, IDXGIOutput4Vtbl, IDXGISwapChain3,
+ IDXGISwapChain3Vtbl,
+};
+use shared::dxgiformat::DXGI_FORMAT;
+use shared::minwindef::UINT;
+use um::unknwnbase::IUnknown;
+use um::winnt::HRESULT;
+RIDL!{#[uuid(0x80a07424, 0xab52, 0x42eb, 0x83, 0x3c, 0x0c, 0x42, 0xfd, 0x28, 0x2d, 0x98)]
+interface IDXGIOutput5(IDXGIOutput5Vtbl): IDXGIOutput4(IDXGIOutput4Vtbl) {
+ fn DuplicateOutput1(
+ pDevice: *mut IUnknown,
+ Flags: UINT,
+ SupportedFormatsCount: UINT,
+ pSupportedFormats: *const DXGI_FORMAT,
+ ppOutputDuplication: *mut *mut IDXGIOutputDuplication,
+ )-> HRESULT,
+}}
+ENUM!{enum DXGI_HDR_METADATA_TYPE {
+ DXGI_HDR_METADATA_TYPE_NONE = 0,
+ DXGI_HDR_METADATA_TYPE_HDR10 = 1,
+}}
+STRUCT!{struct DXGI_HDR_METADATA_HDR10 {
+ RedPrimary: [UINT16; 2],
+ GreenPrimary: [UINT16; 2],
+ BluePrimary: [UINT16; 2],
+ WhitePoint: [UINT16; 2],
+ MaxMasteringLuminance: UINT,
+ MinMasteringLuminance: UINT,
+ MaxContentLightLevel: UINT16,
+ MaxFrameAverageLightLevel: UINT16,
+}}
+RIDL!{#[uuid(0x3d585d5a, 0xbd4a, 0x489e, 0xb1, 0xf4, 0x3d, 0xbc, 0xb6, 0x45, 0x2f, 0xfb)]
+interface IDXGISwapChain4(IDXGISwapChain4Vtbl): IDXGISwapChain3(IDXGISwapChain3Vtbl) {
+ fn SetHDRMetaData(
+ Type: DXGI_HDR_METADATA_TYPE,
+ Size: UINT,
+ pMetaData: *mut c_void,
+ )-> HRESULT,
+}}
+ENUM!{enum DXGI_OFFER_RESOURCE_FLAGS {
+ DXGI_OFFER_RESOURCE_FLAG_ALLOW_DECOMMIT = 0x1,
+}}
+ENUM!{enum DXGI_RECLAIM_RESOURCE_RESULTS {
+ DXGI_RECLAIM_RESOURCE_RESULT_OK = 0,
+ DXGI_RECLAIM_RESOURCE_RESULT_DISCARDED = 1,
+ DXGI_RECLAIM_RESOURCE_RESULT_NOT_COMMITTED = 2,
+}}
+RIDL!{#[uuid(0x95b4f95f, 0xd8da, 0x4ca4, 0x9e, 0xe6, 0x3b, 0x76, 0xd5, 0x96, 0x8a, 0x10)]
+interface IDXGIDevice4(IDXGIDevice4Vtbl): IDXGIDevice3(IDXGIDevice3Vtbl) {
+ fn OfferResources1(
+ NumResources: UINT,
+ ppResources: *mut *mut IDXGIResource,
+ Priority: DXGI_OFFER_RESOURCE_PRIORITY,
+ Flags: UINT,
+ ) -> HRESULT,
+ fn ReclaimResources1(
+ NumResources: UINT,
+ ppResources: *mut *mut IDXGIResource,
+ pResults: *mut DXGI_RECLAIM_RESOURCE_RESULTS,
+ ) -> HRESULT,
+}}
+ENUM!{enum DXGI_FEATURE {
+ DXGI_FEATURE_PRESENT_ALLOW_TEARING = 0,
+}}
+RIDL!{#[uuid(0x7632e1f5, 0xee65, 0x4dca, 0x87, 0xfd, 0x84, 0xcd, 0x75, 0xf8, 0x83, 0x8d)]
+interface IDXGIFactory5(IDXGIFactory5Vtbl): IDXGIFactory4(IDXGIFactory4Vtbl) {
+ fn CheckFeatureSupport(
+ Feature: DXGI_FEATURE,
+ pFeatureSupportData: *mut c_void,
+ FeatureSupportDataSize: UINT,
+ ) -> HRESULT,
+}}
+DEFINE_GUID!{IID_IDXGIOutput5,
+ 0x80A07424, 0xAB52, 0x42EB, 0x83, 0x3C, 0x0C, 0x42, 0xFD, 0x28, 0x2D, 0x98}
+DEFINE_GUID!{IID_IDXGISwapChain4,
+ 0x3D585D5A, 0xBD4A, 0x489E, 0xB1, 0xF4, 0x3D, 0xBC, 0xB6, 0x45, 0x2F, 0xFB}
+DEFINE_GUID!{IID_IDXGIDevice4,
+ 0x95B4F95F, 0xD8DA, 0x4CA4, 0x9E, 0xE6, 0x3B, 0x76, 0xD5, 0x96, 0x8A, 0x10}
+DEFINE_GUID!{IID_IDXGIFactory5,
+ 0x7632e1f5, 0xee65, 0x4dca, 0x87, 0xfd, 0x84, 0xcd, 0x75, 0xf8, 0x83, 0x8d}
diff --git a/third_party/rust/chromium_crates_io/vendor/winapi-0.3.9/src/shared/dxgi1_6.rs b/third_party/rust/chromium_crates_io/vendor/winapi-0.3.9/src/shared/dxgi1_6.rs
new file mode 100644
index 000000000000..30af205193f1
--- /dev/null
+++ b/third_party/rust/chromium_crates_io/vendor/winapi-0.3.9/src/shared/dxgi1_6.rs
@@ -0,0 +1,98 @@
+// Licensed under the Apache License, Version 2.0
+// or the MIT license
+// , at your option.
+// All files in the project carrying such notice may not be copied, modified, or distributed
+// except according to those terms.
+//! Mappings for the contents of dxgi1_6.h
+use ctypes::c_void;
+use shared::basetsd::SIZE_T;
+use shared::dxgi1_2::{
+ DXGI_COMPUTE_PREEMPTION_GRANULARITY, DXGI_GRAPHICS_PREEMPTION_GRANULARITY,
+};
+use shared::dxgi1_4::{IDXGIAdapter3, IDXGIAdapter3Vtbl};
+use shared::dxgi1_5::{IDXGIFactory5, IDXGIFactory5Vtbl, IDXGIOutput5, IDXGIOutput5Vtbl};
+use shared::dxgitype::{DXGI_COLOR_SPACE_TYPE, DXGI_MODE_ROTATION};
+use shared::guiddef::REFIID;
+use shared::minwindef::{BOOL, FLOAT, UINT};
+use shared::windef::{HMONITOR, RECT};
+use um::winnt::{HRESULT, LUID, WCHAR};
+ENUM!{enum DXGI_ADAPTER_FLAG3 {
+ DXGI_ADAPTER_FLAG3_NONE = 0,
+ DXGI_ADAPTER_FLAG3_REMOTE = 1,
+ DXGI_ADAPTER_FLAG3_SOFTWARE = 2,
+ DXGI_ADAPTER_FLAG3_ACG_COMPATIBLE = 4,
+ DXGI_ADAPTER_FLAG3_SUPPORT_MONITORED_FENCES = 8,
+ DXGI_ADAPTER_FLAG3_SUPPORT_NON_MONITORED_FENCES = 0x10,
+ DXGI_ADAPTER_FLAG3_KEYED_MUTEX_CONFORMANCE = 0x20,
+ DXGI_ADAPTER_FLAG3_FORCE_DWORD = 0xFFFFFFFF,
+}}
+STRUCT!{struct DXGI_ADAPTER_DESC3 {
+ Description: [WCHAR; 128],
+ VendorID: UINT,
+ DeviceID: UINT,
+ SubSysID: UINT,
+ Revision: UINT,
+ DedicatedVideoMemory: SIZE_T,
+ DedicatedSystemMemory: SIZE_T,
+ SharedSystemMemory: SIZE_T,
+ AdapterLuid: LUID,
+ Flags: DXGI_ADAPTER_FLAG3,
+ GraphicsPreemptionGranularity: DXGI_GRAPHICS_PREEMPTION_GRANULARITY,
+ ComputePreemptionGranularity: DXGI_COMPUTE_PREEMPTION_GRANULARITY,
+}}
+RIDL!{#[uuid(0x3c8d99d1, 0x4fbf, 0x4181, 0xa8, 0x2c, 0xaf, 0x66, 0xbf, 0x7b, 0xd2, 0x4e)]
+interface IDXGIAdapter4(IDXGIAdapter4Vtbl): IDXGIAdapter3(IDXGIAdapter3Vtbl) {
+ fn GetDesc3(
+ pDesc: *mut DXGI_ADAPTER_DESC3,
+ ) -> HRESULT,
+}}
+STRUCT!{struct DXGI_OUTPUT_DESC1 {
+ DeviceName: [WCHAR; 32],
+ DesktopCoordinates: RECT,
+ AttachedToDesktop: BOOL,
+ Rotation: DXGI_MODE_ROTATION,
+ Monitor: HMONITOR,
+ BitsPerColor: UINT,
+ ColorSpace: DXGI_COLOR_SPACE_TYPE,
+ RedPrimary: [FLOAT; 2],
+ GreenPrimary: [FLOAT; 2],
+ BluePrimary: [FLOAT; 2],
+ WhitePoint: [FLOAT; 2],
+ MinLuminance: FLOAT,
+ MaxLuminance: FLOAT,
+ MaxFullFrameLuminance: FLOAT,
+}}
+ENUM!{enum DXGI_HARDWARE_COMPOSITION_SUPPORT_FLAGS {
+ DXGI_HARDWARE_COMPOSITION_SUPPORT_FLAG_FULLSCREEN = 1,
+ DXGI_HARDWARE_COMPOSITION_SUPPORT_FLAG_WINDOWED = 2,
+ DXGI_HARDWARE_COMPOSITION_SUPPORT_FLAG_CURSOR_STRETCHED = 4,
+}}
+RIDL!{#[uuid(0x068346e8, 0xaaec, 0x4b84, 0xad, 0xd7, 0x13, 0x7f, 0x51, 0x3f, 0x77, 0xa1)]
+interface IDXGIOutput6(IDXGIOutput6Vtbl): IDXGIOutput5(IDXGIOutput5Vtbl) {
+ fn GetDesc1(
+ pDesc: *mut DXGI_OUTPUT_DESC1,
+ ) -> HRESULT,
+ fn CheckHardwareCompositionSupport(
+ pFlags: *mut UINT,
+ ) -> HRESULT,
+}}
+ENUM!{enum DXGI_GPU_PREFERENCE {
+ DXGI_GPU_PREFERENCE_UNSPECIFIED = 0,
+ DXGI_GPU_PREFERENCE_MINIMUM_POWER = 1,
+ DXGI_GPU_PREFERENCE_HIGH_PERFORMANCE = 2,
+}}
+RIDL!{#[uuid(0xc1b6694f, 0xff09, 0x44a9, 0xb0, 0x3c, 0x77, 0x90, 0x0a, 0x0a, 0x1d, 0x17)]
+interface IDXGIFactory6(IDXGIFactory6Vtbl): IDXGIFactory5(IDXGIFactory5Vtbl) {
+ fn EnumAdapterByGpuPreference(
+ Adapter: UINT,
+ GpuPreference: DXGI_GPU_PREFERENCE,
+ riid: REFIID,
+ ppvAdapter: *mut *mut c_void,
+ ) -> HRESULT,
+}}
+DEFINE_GUID!{IID_IDXGIAdapter4,
+ 0x3c8d99d1, 0x4fbf, 0x4181, 0xa8, 0x2c, 0xaf, 0x66, 0xbf, 0x7b, 0xd2, 0x4e}
+DEFINE_GUID!{IID_IDXGIOutput6,
+ 0x068346e8, 0xaaec, 0x4b84, 0xad, 0xd7, 0x13, 0x7f, 0x51, 0x3f, 0x77, 0xa1}
+DEFINE_GUID!{IID_IDXGIFactory6,
+ 0xc1b6694f, 0xff09, 0x44a9, 0xb0, 0x3c, 0x77, 0x90, 0x0a, 0x0a, 0x1d, 0x17}
diff --git a/third_party/rust/chromium_crates_io/vendor/winapi-0.3.9/src/shared/dxgiformat.rs b/third_party/rust/chromium_crates_io/vendor/winapi-0.3.9/src/shared/dxgiformat.rs
new file mode 100644
index 000000000000..84cd23fa2994
--- /dev/null
+++ b/third_party/rust/chromium_crates_io/vendor/winapi-0.3.9/src/shared/dxgiformat.rs
@@ -0,0 +1,127 @@
+// Licensed under the Apache License, Version 2.0
+// or the MIT license
+// , at your option.
+// All files in the project carrying such notice may not be copied, modified, or distributed
+// except according to those terms.
+//! Mappings for the contents of dxgiformat.h
+ENUM!{enum DXGI_FORMAT {
+ DXGI_FORMAT_UNKNOWN = 0,
+ DXGI_FORMAT_R32G32B32A32_TYPELESS = 1,
+ DXGI_FORMAT_R32G32B32A32_FLOAT = 2,
+ DXGI_FORMAT_R32G32B32A32_UINT = 3,
+ DXGI_FORMAT_R32G32B32A32_SINT = 4,
+ DXGI_FORMAT_R32G32B32_TYPELESS = 5,
+ DXGI_FORMAT_R32G32B32_FLOAT = 6,
+ DXGI_FORMAT_R32G32B32_UINT = 7,
+ DXGI_FORMAT_R32G32B32_SINT = 8,
+ DXGI_FORMAT_R16G16B16A16_TYPELESS = 9,
+ DXGI_FORMAT_R16G16B16A16_FLOAT = 10,
+ DXGI_FORMAT_R16G16B16A16_UNORM = 11,
+ DXGI_FORMAT_R16G16B16A16_UINT = 12,
+ DXGI_FORMAT_R16G16B16A16_SNORM = 13,
+ DXGI_FORMAT_R16G16B16A16_SINT = 14,
+ DXGI_FORMAT_R32G32_TYPELESS = 15,
+ DXGI_FORMAT_R32G32_FLOAT = 16,
+ DXGI_FORMAT_R32G32_UINT = 17,
+ DXGI_FORMAT_R32G32_SINT = 18,
+ DXGI_FORMAT_R32G8X24_TYPELESS = 19,
+ DXGI_FORMAT_D32_FLOAT_S8X24_UINT = 20,
+ DXGI_FORMAT_R32_FLOAT_X8X24_TYPELESS = 21,
+ DXGI_FORMAT_X32_TYPELESS_G8X24_UINT = 22,
+ DXGI_FORMAT_R10G10B10A2_TYPELESS = 23,
+ DXGI_FORMAT_R10G10B10A2_UNORM = 24,
+ DXGI_FORMAT_R10G10B10A2_UINT = 25,
+ DXGI_FORMAT_R11G11B10_FLOAT = 26,
+ DXGI_FORMAT_R8G8B8A8_TYPELESS = 27,
+ DXGI_FORMAT_R8G8B8A8_UNORM = 28,
+ DXGI_FORMAT_R8G8B8A8_UNORM_SRGB = 29,
+ DXGI_FORMAT_R8G8B8A8_UINT = 30,
+ DXGI_FORMAT_R8G8B8A8_SNORM = 31,
+ DXGI_FORMAT_R8G8B8A8_SINT = 32,
+ DXGI_FORMAT_R16G16_TYPELESS = 33,
+ DXGI_FORMAT_R16G16_FLOAT = 34,
+ DXGI_FORMAT_R16G16_UNORM = 35,
+ DXGI_FORMAT_R16G16_UINT = 36,
+ DXGI_FORMAT_R16G16_SNORM = 37,
+ DXGI_FORMAT_R16G16_SINT = 38,
+ DXGI_FORMAT_R32_TYPELESS = 39,
+ DXGI_FORMAT_D32_FLOAT = 40,
+ DXGI_FORMAT_R32_FLOAT = 41,
+ DXGI_FORMAT_R32_UINT = 42,
+ DXGI_FORMAT_R32_SINT = 43,
+ DXGI_FORMAT_R24G8_TYPELESS = 44,
+ DXGI_FORMAT_D24_UNORM_S8_UINT = 45,
+ DXGI_FORMAT_R24_UNORM_X8_TYPELESS = 46,
+ DXGI_FORMAT_X24_TYPELESS_G8_UINT = 47,
+ DXGI_FORMAT_R8G8_TYPELESS = 48,
+ DXGI_FORMAT_R8G8_UNORM = 49,
+ DXGI_FORMAT_R8G8_UINT = 50,
+ DXGI_FORMAT_R8G8_SNORM = 51,
+ DXGI_FORMAT_R8G8_SINT = 52,
+ DXGI_FORMAT_R16_TYPELESS = 53,
+ DXGI_FORMAT_R16_FLOAT = 54,
+ DXGI_FORMAT_D16_UNORM = 55,
+ DXGI_FORMAT_R16_UNORM = 56,
+ DXGI_FORMAT_R16_UINT = 57,
+ DXGI_FORMAT_R16_SNORM = 58,
+ DXGI_FORMAT_R16_SINT = 59,
+ DXGI_FORMAT_R8_TYPELESS = 60,
+ DXGI_FORMAT_R8_UNORM = 61,
+ DXGI_FORMAT_R8_UINT = 62,
+ DXGI_FORMAT_R8_SNORM = 63,
+ DXGI_FORMAT_R8_SINT = 64,
+ DXGI_FORMAT_A8_UNORM = 65,
+ DXGI_FORMAT_R1_UNORM = 66,
+ DXGI_FORMAT_R9G9B9E5_SHAREDEXP = 67,
+ DXGI_FORMAT_R8G8_B8G8_UNORM = 68,
+ DXGI_FORMAT_G8R8_G8B8_UNORM = 69,
+ DXGI_FORMAT_BC1_TYPELESS = 70,
+ DXGI_FORMAT_BC1_UNORM = 71,
+ DXGI_FORMAT_BC1_UNORM_SRGB = 72,
+ DXGI_FORMAT_BC2_TYPELESS = 73,
+ DXGI_FORMAT_BC2_UNORM = 74,
+ DXGI_FORMAT_BC2_UNORM_SRGB = 75,
+ DXGI_FORMAT_BC3_TYPELESS = 76,
+ DXGI_FORMAT_BC3_UNORM = 77,
+ DXGI_FORMAT_BC3_UNORM_SRGB = 78,
+ DXGI_FORMAT_BC4_TYPELESS = 79,
+ DXGI_FORMAT_BC4_UNORM = 80,
+ DXGI_FORMAT_BC4_SNORM = 81,
+ DXGI_FORMAT_BC5_TYPELESS = 82,
+ DXGI_FORMAT_BC5_UNORM = 83,
+ DXGI_FORMAT_BC5_SNORM = 84,
+ DXGI_FORMAT_B5G6R5_UNORM = 85,
+ DXGI_FORMAT_B5G5R5A1_UNORM = 86,
+ DXGI_FORMAT_B8G8R8A8_UNORM = 87,
+ DXGI_FORMAT_B8G8R8X8_UNORM = 88,
+ DXGI_FORMAT_R10G10B10_XR_BIAS_A2_UNORM = 89,
+ DXGI_FORMAT_B8G8R8A8_TYPELESS = 90,
+ DXGI_FORMAT_B8G8R8A8_UNORM_SRGB = 91,
+ DXGI_FORMAT_B8G8R8X8_TYPELESS = 92,
+ DXGI_FORMAT_B8G8R8X8_UNORM_SRGB = 93,
+ DXGI_FORMAT_BC6H_TYPELESS = 94,
+ DXGI_FORMAT_BC6H_UF16 = 95,
+ DXGI_FORMAT_BC6H_SF16 = 96,
+ DXGI_FORMAT_BC7_TYPELESS = 97,
+ DXGI_FORMAT_BC7_UNORM = 98,
+ DXGI_FORMAT_BC7_UNORM_SRGB = 99,
+ DXGI_FORMAT_AYUV = 100,
+ DXGI_FORMAT_Y410 = 101,
+ DXGI_FORMAT_Y416 = 102,
+ DXGI_FORMAT_NV12 = 103,
+ DXGI_FORMAT_P010 = 104,
+ DXGI_FORMAT_P016 = 105,
+ DXGI_FORMAT_420_OPAQUE = 106,
+ DXGI_FORMAT_YUY2 = 107,
+ DXGI_FORMAT_Y210 = 108,
+ DXGI_FORMAT_Y216 = 109,
+ DXGI_FORMAT_NV11 = 110,
+ DXGI_FORMAT_AI44 = 111,
+ DXGI_FORMAT_IA44 = 112,
+ DXGI_FORMAT_P8 = 113,
+ DXGI_FORMAT_A8P8 = 114,
+ DXGI_FORMAT_B4G4R4A4_UNORM = 115,
+ DXGI_FORMAT_P208 = 130,
+ DXGI_FORMAT_V208 = 131,
+ DXGI_FORMAT_V408 = 132,
+}}
diff --git a/third_party/rust/chromium_crates_io/vendor/winapi-0.3.9/src/shared/dxgitype.rs b/third_party/rust/chromium_crates_io/vendor/winapi-0.3.9/src/shared/dxgitype.rs
new file mode 100644
index 000000000000..d09dccde5e6f
--- /dev/null
+++ b/third_party/rust/chromium_crates_io/vendor/winapi-0.3.9/src/shared/dxgitype.rs
@@ -0,0 +1,109 @@
+// Licensed under the Apache License, Version 2.0
+// or the MIT license
+// , at your option.
+// All files in the project carrying such notice may not be copied, modified, or distributed
+// except according to those terms.
+//! Mappings for the contents of dxgitype.h
+use shared::d3d9types::D3DCOLORVALUE;
+use shared::dxgiformat::DXGI_FORMAT;
+use shared::minwindef::{BOOL, BYTE, DWORD, UINT};
+pub const DXGI_CPU_ACCESS_NONE: DWORD = 0;
+pub const DXGI_CPU_ACCESS_DYNAMIC: DWORD = 1;
+pub const DXGI_CPU_ACCESS_READ_WRITE: DWORD = 2;
+pub const DXGI_CPU_ACCESS_SCRATCH: DWORD = 3;
+pub const DXGI_CPU_ACCESS_FIELD: DWORD = 15;
+ENUM!{enum DXGI_USAGE {
+ DXGI_USAGE_SHADER_INPUT = 1 << (0 + 4),
+ DXGI_USAGE_RENDER_TARGET_OUTPUT = 1 << (1 + 4),
+ DXGI_USAGE_BACK_BUFFER = 1 << (2 + 4),
+ DXGI_USAGE_SHARED = 1 << (3 + 4),
+ DXGI_USAGE_READ_ONLY = 1 << (4 + 4),
+ DXGI_USAGE_DISCARD_ON_PRESENT = 1 << (5 + 4),
+ DXGI_USAGE_UNORDERED_ACCESS = 1 << (6 + 4),
+}}
+STRUCT!{struct DXGI_RGB {
+ Red: f32,
+ Green: f32,
+ Blue: f32,
+}}
+pub type DXGI_RGBA = D3DCOLORVALUE;
+STRUCT!{struct DXGI_GAMMA_CONTROL {
+ Scale: DXGI_RGB,
+ Offset: DXGI_RGB,
+ GammaCurve: [DXGI_RGB; 1025],
+}}
+STRUCT!{struct DXGI_GAMMA_CONTROL_CAPABILITIES {
+ ScaleAndOffsetSupported: BOOL,
+ MaxConvertedValue: f32,
+ MinConvertedValue: f32,
+ NumGammaControlPoints: UINT,
+ ControlPointPositions: [f32; 1025],
+}}
+STRUCT!{struct DXGI_RATIONAL {
+ Numerator: UINT,
+ Denominator: UINT,
+}}
+ENUM!{enum DXGI_MODE_SCANLINE_ORDER {
+ DXGI_MODE_SCANLINE_ORDER_UNSPECIFIED,
+ DXGI_MODE_SCANLINE_ORDER_PROGRESSIVE,
+ DXGI_MODE_SCANLINE_ORDER_UPPER_FIELD_FIRST,
+ DXGI_MODE_SCANLINE_ORDER_LOWER_FIELD_FIRST,
+}}
+ENUM!{enum DXGI_MODE_SCALING {
+ DXGI_MODE_SCALING_UNSPECIFIED,
+ DXGI_MODE_SCALING_CENTERED,
+ DXGI_MODE_SCALING_STRETCHED,
+}}
+ENUM!{enum DXGI_MODE_ROTATION {
+ DXGI_MODE_ROTATION_UNSPECIFIED,
+ DXGI_MODE_ROTATION_IDENTITY,
+ DXGI_MODE_ROTATION_ROTATE90,
+ DXGI_MODE_ROTATION_ROTATE180,
+ DXGI_MODE_ROTATION_ROTATE270,
+}}
+STRUCT!{struct DXGI_MODE_DESC {
+ Width: UINT,
+ Height: UINT,
+ RefreshRate: DXGI_RATIONAL,
+ Format: DXGI_FORMAT,
+ ScanlineOrdering: DXGI_MODE_SCANLINE_ORDER,
+ Scaling: DXGI_MODE_SCALING,
+}}
+STRUCT!{struct DXGI_SAMPLE_DESC {
+ Count: UINT,
+ Quality: UINT,
+}}
+STRUCT!{struct DXGI_JPEG_DC_HUFFMAN_TABLE {
+ CodeCounts: [BYTE; 12],
+ CodeValues: [BYTE; 12],
+}}
+STRUCT!{struct DXGI_JPEG_AC_HUFFMAN_TABLE {
+ CodeCounts: [BYTE; 16],
+ CodeValues: [BYTE; 162],
+}}
+STRUCT!{struct DXGI_JPEG_QUANTIZATION_TABLE {
+ Elements: [BYTE; 64],
+}}
+ENUM!{enum DXGI_COLOR_SPACE_TYPE {
+ DXGI_COLOR_SPACE_RGB_FULL_G22_NONE_P709 = 0,
+ DXGI_COLOR_SPACE_RGB_FULL_G10_NONE_P709 = 1,
+ DXGI_COLOR_SPACE_RGB_STUDIO_G22_NONE_P709 = 2,
+ DXGI_COLOR_SPACE_RGB_STUDIO_G22_NONE_P2020 = 3,
+ DXGI_COLOR_SPACE_RESERVED = 4,
+ DXGI_COLOR_SPACE_YCBCR_FULL_G22_NONE_P709_X601 = 5,
+ DXGI_COLOR_SPACE_YCBCR_STUDIO_G22_LEFT_P601 = 6,
+ DXGI_COLOR_SPACE_YCBCR_FULL_G22_LEFT_P601 = 7,
+ DXGI_COLOR_SPACE_YCBCR_STUDIO_G22_LEFT_P709 = 8,
+ DXGI_COLOR_SPACE_YCBCR_FULL_G22_LEFT_P709 = 9,
+ DXGI_COLOR_SPACE_YCBCR_STUDIO_G22_LEFT_P2020 = 10,
+ DXGI_COLOR_SPACE_YCBCR_FULL_G22_LEFT_P2020 = 11,
+ DXGI_COLOR_SPACE_RGB_FULL_G2084_NONE_P2020 = 12,
+ DXGI_COLOR_SPACE_YCBCR_STUDIO_G2084_LEFT_P2020 = 13,
+ DXGI_COLOR_SPACE_RGB_STUDIO_G2084_NONE_P2020 = 14,
+ DXGI_COLOR_SPACE_YCBCR_STUDIO_G22_TOPLEFT_P2020 = 15,
+ DXGI_COLOR_SPACE_YCBCR_STUDIO_G2084_TOPLEFT_P2020 = 16,
+ DXGI_COLOR_SPACE_RGB_FULL_G22_NONE_P2020 = 17,
+ DXGI_COLOR_SPACE_CUSTOM = 0xFFFFFFFF,
+}}
+pub const DXGI_CENTER_MULTISAMPLE_QUALITY_PATTERN: UINT = 0xfffffffe;
+pub const DXGI_STANDARD_MULTISAMPLE_QUALITY_PATTERN: UINT = 0xffffffff;
diff --git a/third_party/rust/chromium_crates_io/vendor/winapi-0.3.9/src/shared/evntprov.rs b/third_party/rust/chromium_crates_io/vendor/winapi-0.3.9/src/shared/evntprov.rs
new file mode 100644
index 000000000000..455ff5d2924e
--- /dev/null
+++ b/third_party/rust/chromium_crates_io/vendor/winapi-0.3.9/src/shared/evntprov.rs
@@ -0,0 +1,309 @@
+// Licensed under the Apache License, Version 2.0
+// or the MIT license
+// , at your option.
+// All files in the project carrying such notice may not be copied, modified, or distributed
+// except according to those terms.
+use shared::basetsd::{SIZE_T, ULONG64};
+use shared::guiddef::{LPCGUID, LPGUID};
+use shared::minwindef::{UCHAR, ULONG, USHORT};
+use um::winnt::{ANYSIZE_ARRAY, BOOLEAN, PCWSTR, PVOID, ULONGLONG, VOID};
+pub const EVENT_MIN_LEVEL: UCHAR = 0;
+pub const EVENT_MAX_LEVEL: UCHAR = 0xff;
+pub const EVENT_ACTIVITY_CTRL_GET_ID: ULONG = 1;
+pub const EVENT_ACTIVITY_CTRL_SET_ID: ULONG = 2;
+pub const EVENT_ACTIVITY_CTRL_CREATE_ID: ULONG = 3;
+pub const EVENT_ACTIVITY_CTRL_GET_SET_ID: ULONG = 4;
+pub const EVENT_ACTIVITY_CTRL_CREATE_SET_ID: ULONG = 5;
+pub const MAX_EVENT_DATA_DESCRIPTORS: SIZE_T = 128;
+pub const MAX_EVENT_FILTER_DATA_SIZE: SIZE_T = 1024;
+pub const MAX_EVENT_FILTER_PAYLOAD_SIZE: SIZE_T = 4096;
+pub const MAX_EVENT_FILTER_EVENT_NAME_SIZE: SIZE_T = 4096;
+pub const MAX_EVENT_FILTERS_COUNT: SIZE_T = 8;
+pub const MAX_EVENT_FILTER_PID_COUNT: SIZE_T = 8;
+pub const MAX_EVENT_FILTER_EVENT_ID_COUNT: SIZE_T = 64;
+pub const EVENT_FILTER_TYPE_NONE: ULONG = 0x00000000;
+pub const EVENT_FILTER_TYPE_SCHEMATIZED: ULONG = 0x80000000;
+pub const EVENT_FILTER_TYPE_SYSTEM_FLAGS: ULONG = 0x80000001;
+pub const EVENT_FILTER_TYPE_TRACEHANDLE: ULONG = 0x80000002;
+pub const EVENT_FILTER_TYPE_PID: ULONG = 0x80000004;
+pub const EVENT_FILTER_TYPE_EXECUTABLE_NAME: ULONG = 0x80000008;
+pub const EVENT_FILTER_TYPE_PACKAGE_ID: ULONG = 0x80000010;
+pub const EVENT_FILTER_TYPE_PACKAGE_APP_ID: ULONG = 0x80000020;
+pub const EVENT_FILTER_TYPE_PAYLOAD: ULONG = 0x80000100;
+pub const EVENT_FILTER_TYPE_EVENT_ID: ULONG = 0x80000200;
+pub const EVENT_FILTER_TYPE_EVENT_NAME: ULONG = 0x80000400;
+pub const EVENT_FILTER_TYPE_STACKWALK: ULONG = 0x80001000;
+pub const EVENT_FILTER_TYPE_STACKWALK_NAME: ULONG = 0x80001000;
+pub const EVENT_FILTER_TYPE_STACKWALK_LEVEL_KW: ULONG = 0x80004000;
+pub const EVENT_DATA_DESCRIPTOR_TYPE_NONE: UCHAR = 0;
+pub const EVENT_DATA_DESCRIPTOR_TYPE_EVENT_METADATA: UCHAR = 1;
+pub const EVENT_DATA_DESCRIPTOR_TYPE_PROVIDER_METADATA: UCHAR = 2;
+pub const EVENT_DATA_DESCRIPTOR_TYPE_TIMESTAMP_OVERRIDE: UCHAR = 3;
+pub const EVENT_WRITE_FLAG_NO_FAULTING: ULONG = 0x00000001;
+pub const EVENT_WRITE_FLAG_INPRIVATE: ULONG = 0x00000002;
+pub type REGHANDLE = ULONGLONG;
+pub type PREGHANDLE = *mut REGHANDLE;
+STRUCT!{struct EVENT_DATA_DESCRIPTOR_u_s {
+ Type: UCHAR,
+ Reserved1: UCHAR,
+ Reserved2: USHORT,
+}}
+UNION!{union EVENT_DATA_DESCRIPTOR_u {
+ [u32; 1],
+ Reserved Reserved_mut: ULONG,
+ s s_mut: EVENT_DATA_DESCRIPTOR_u_s,
+}}
+STRUCT!{struct EVENT_DATA_DESCRIPTOR {
+ Ptr: ULONGLONG,
+ Size: ULONG,
+ u: EVENT_DATA_DESCRIPTOR_u,
+}}
+pub type PEVENT_DATA_DESCRIPTOR = *mut EVENT_DATA_DESCRIPTOR;
+STRUCT!{struct EVENT_DESCRIPTOR {
+ Id: USHORT,
+ Version: UCHAR,
+ Channel: UCHAR,
+ Level: UCHAR,
+ Opcode: UCHAR,
+ Task: USHORT,
+ Keyword: ULONGLONG,
+}}
+pub type PEVENT_DESCRIPTOR = *mut EVENT_DESCRIPTOR;
+pub type PCEVENT_DESCRIPTOR = *const EVENT_DESCRIPTOR;
+STRUCT!{struct EVENT_FILTER_DESCRIPTOR {
+ Ptr: ULONGLONG,
+ Size: ULONG,
+ Type: ULONG,
+}}
+pub type PEVENT_FILTER_DESCRIPTOR = *mut EVENT_FILTER_DESCRIPTOR;
+STRUCT!{struct EVENT_FILTER_HEADER {
+ Id: USHORT,
+ Version: UCHAR,
+ Reserved: [UCHAR; 5],
+ InstanceId: ULONGLONG,
+ Size: ULONG,
+ NextOffset: ULONG,
+}}
+pub type PEVENT_FILTER_HEADER = *mut EVENT_FILTER_HEADER;
+STRUCT!{struct EVENT_FILTER_EVENT_ID {
+ FilterIn: BOOLEAN,
+ Reserved: UCHAR,
+ Count: USHORT,
+ Events: [USHORT; ANYSIZE_ARRAY],
+}}
+pub type PEVENT_FILTER_EVENT_ID = *mut EVENT_FILTER_EVENT_ID;
+STRUCT!{struct EVENT_FILTER_EVENT_NAME {
+ MatchAnyKeyword: ULONGLONG,
+ MatchAllKeyword: ULONGLONG,
+ Level: UCHAR,
+ FilterIn: BOOLEAN,
+ NameCount: USHORT,
+ Names: [UCHAR; ANYSIZE_ARRAY],
+}}
+pub type PEVENT_FILTER_EVENT_NAME = *mut EVENT_FILTER_EVENT_NAME;
+STRUCT!{struct EVENT_FILTER_LEVEL_KW {
+ MatchAnyKeyword: ULONGLONG,
+ MatchAllKeyword: ULONGLONG,
+ Level: UCHAR,
+ FilterIn: BOOLEAN,
+}}
+ENUM!{enum EVENT_INFO_CLASS {
+ EventProviderBinaryTrackInfo,
+ EventProviderSetReserved1,
+ EventProviderSetTraits,
+ EventProviderUseDescriptorType,
+ MaxEventInfo,
+}}
+FN!{stdcall PENABLECALLBACK(
+ SourceId: LPCGUID,
+ IsEnabled: ULONG,
+ Level: UCHAR,
+ MatchAnyKeyword: ULONGLONG,
+ MatchAllKeyword: ULONGLONG,
+ FilterData: PEVENT_FILTER_DESCRIPTOR,
+ CallbackContext: PVOID,
+) -> ()}
+extern "system" {
+ pub fn EventRegister(
+ ProviderId: LPCGUID,
+ EnableCallback: PENABLECALLBACK,
+ CallbackContext: PVOID,
+ RegHandle: PREGHANDLE,
+ ) -> ULONG;
+ pub fn EventUnregister(
+ RegHandle: REGHANDLE,
+ ) -> ULONG;
+ pub fn EventSetInformation(
+ RegHandle: REGHANDLE,
+ InformationClass: EVENT_INFO_CLASS,
+ EventInformation: PVOID,
+ InformationLength: ULONG,
+ ) -> ULONG;
+ pub fn EventEnabled(
+ RegHandle: REGHANDLE,
+ EventDescriptor: PCEVENT_DESCRIPTOR,
+ ) -> BOOLEAN;
+ pub fn EventProviderEnabled(
+ RegHandle: REGHANDLE,
+ Level: UCHAR,
+ Keyword: ULONGLONG,
+ ) -> BOOLEAN;
+ pub fn EventWrite(
+ RegHandle: REGHANDLE,
+ EventDescriptor: PCEVENT_DESCRIPTOR,
+ UserDataCount: ULONG,
+ UserData: PEVENT_DATA_DESCRIPTOR,
+ ) -> ULONG;
+ pub fn EventWriteTransfer(
+ RegHandle: REGHANDLE,
+ EventDescriptor: PCEVENT_DESCRIPTOR,
+ ActivityId: LPCGUID,
+ RelatedActivityId: LPCGUID,
+ UserDataCount: ULONG,
+ UserData: PEVENT_DATA_DESCRIPTOR,
+ ) -> ULONG;
+ pub fn EventWriteEx(
+ RegHandle: REGHANDLE,
+ EventDescriptor: PCEVENT_DESCRIPTOR,
+ Filter: ULONG64,
+ Flags: ULONG,
+ ActivityId: LPCGUID,
+ RelatedActivityId: LPCGUID,
+ UserDataCount: ULONG,
+ UserData: PEVENT_DATA_DESCRIPTOR,
+ ) -> ULONG;
+ pub fn EventWriteString(
+ RegHandle: REGHANDLE,
+ Level: UCHAR,
+ Keyword: ULONGLONG,
+ EventString: PCWSTR,
+ ) -> ULONG;
+ pub fn EventActivityIdControl(
+ ControlCode: ULONG,
+ ActivityId: LPGUID,
+ ) -> ULONG;
+}
+#[inline]
+pub unsafe fn EventDataDescCreate(
+ EventDataDescriptor: PEVENT_DATA_DESCRIPTOR,
+ DataPtr: *const VOID,
+ DataSize: ULONG,
+) {
+ (*EventDataDescriptor).Ptr = DataPtr as ULONGLONG;
+ (*EventDataDescriptor).Size = DataSize;
+ *(*EventDataDescriptor).u.Reserved_mut() = 0;
+}
+#[inline]
+pub unsafe fn EventDescCreate(
+ EventDescriptor: PEVENT_DESCRIPTOR,
+ Id: USHORT,
+ Version: UCHAR,
+ Channel: UCHAR,
+ Level: UCHAR,
+ Task: USHORT,
+ Opcode: UCHAR,
+ Keyword: ULONGLONG,
+) {
+ (*EventDescriptor).Id = Id;
+ (*EventDescriptor).Version = Version;
+ (*EventDescriptor).Channel = Channel;
+ (*EventDescriptor).Level = Level;
+ (*EventDescriptor).Task = Task;
+ (*EventDescriptor).Opcode = Opcode;
+ (*EventDescriptor).Keyword = Keyword;
+}
+#[inline]
+pub unsafe fn EventDescZero(EventDescriptor: PEVENT_DESCRIPTOR) {
+ use core::ptr::write_bytes;
+ // FIXME: 16 = sizeof::()
+ write_bytes(EventDescriptor, 0, 16);
+}
+#[inline]
+pub unsafe fn EventDescGetId(EventDescriptor: PCEVENT_DESCRIPTOR) -> USHORT {
+ (*EventDescriptor).Id
+}
+#[inline]
+pub unsafe fn EventDescGetVersion(EventDescriptor: PCEVENT_DESCRIPTOR) -> UCHAR {
+ (*EventDescriptor).Version
+}
+#[inline]
+pub unsafe fn EventDescGetTask(EventDescriptor: PCEVENT_DESCRIPTOR) -> USHORT {
+ (*EventDescriptor).Task
+}
+#[inline]
+pub unsafe fn EventDescGetOpcode(EventDescriptor: PCEVENT_DESCRIPTOR) -> UCHAR {
+ (*EventDescriptor).Opcode
+}
+#[inline]
+pub unsafe fn EventDescGetChannel(EventDescriptor: PCEVENT_DESCRIPTOR) -> UCHAR {
+ (*EventDescriptor).Channel
+}
+#[inline]
+pub unsafe fn EventDescGetLevel(EventDescriptor: PCEVENT_DESCRIPTOR) -> UCHAR {
+ (*EventDescriptor).Level
+}
+#[inline]
+pub unsafe fn EventDescGetKeyword(EventDescriptor: PCEVENT_DESCRIPTOR) -> ULONGLONG {
+ (*EventDescriptor).Keyword
+}
+#[inline]
+pub unsafe fn EventDescSetId(EventDescriptor: PEVENT_DESCRIPTOR, Id: USHORT) -> PEVENT_DESCRIPTOR {
+ (*EventDescriptor).Id = Id;
+ EventDescriptor
+}
+#[inline]
+pub unsafe fn EventDescSetVersion(
+ EventDescriptor: PEVENT_DESCRIPTOR,
+ Version: UCHAR,
+) -> PEVENT_DESCRIPTOR {
+ (*EventDescriptor).Version = Version;
+ EventDescriptor
+}
+#[inline]
+pub unsafe fn EventDescSetTask(
+ EventDescriptor: PEVENT_DESCRIPTOR,
+ Task: USHORT,
+) -> PEVENT_DESCRIPTOR {
+ (*EventDescriptor).Task = Task;
+ EventDescriptor
+}
+#[inline]
+pub unsafe fn EventDescSetOpcode(
+ EventDescriptor: PEVENT_DESCRIPTOR,
+ Opcode: UCHAR,
+) -> PEVENT_DESCRIPTOR {
+ (*EventDescriptor).Opcode = Opcode;
+ EventDescriptor
+}
+#[inline]
+pub unsafe fn EventDescSetLevel(
+ EventDescriptor: PEVENT_DESCRIPTOR,
+ Level: UCHAR,
+) -> PEVENT_DESCRIPTOR {
+ (*EventDescriptor).Level = Level;
+ EventDescriptor
+}
+#[inline]
+pub unsafe fn EventDescSetChannel(
+ EventDescriptor: PEVENT_DESCRIPTOR,
+ Channel: UCHAR,
+) -> PEVENT_DESCRIPTOR {
+ (*EventDescriptor).Channel = Channel;
+ EventDescriptor
+}
+#[inline]
+pub unsafe fn EventDescSetKeyword(
+ EventDescriptor: PEVENT_DESCRIPTOR,
+ Keyword: ULONGLONG,
+) -> PEVENT_DESCRIPTOR {
+ (*EventDescriptor).Keyword = Keyword;
+ EventDescriptor
+}
+#[inline]
+pub unsafe fn EventDescOrKeyword(
+ EventDescriptor: PEVENT_DESCRIPTOR,
+ Keyword: ULONGLONG,
+) -> PEVENT_DESCRIPTOR {
+ (*EventDescriptor).Keyword |= Keyword;
+ EventDescriptor
+}
diff --git a/third_party/rust/chromium_crates_io/vendor/winapi-0.3.9/src/shared/evntrace.rs b/third_party/rust/chromium_crates_io/vendor/winapi-0.3.9/src/shared/evntrace.rs
new file mode 100644
index 000000000000..23a93eec31cc
--- /dev/null
+++ b/third_party/rust/chromium_crates_io/vendor/winapi-0.3.9/src/shared/evntrace.rs
@@ -0,0 +1,990 @@
+// Licensed under the Apache License, Version 2.0
+// or the MIT license
+// , at your option.
+// All files in the project carrying such notice may not be copied, modified, or distributed
+// except according to those terms.
+use shared::basetsd::{SIZE_T, ULONG32, ULONG64};
+use shared::evntprov::PEVENT_FILTER_DESCRIPTOR;
+use shared::guiddef::{GUID, LPCGUID, LPGUID};
+use shared::minwindef::{DWORD, LPFILETIME, PULONG, UCHAR, UINT, ULONG, USHORT};
+use shared::wmistr::{WMIDPREQUESTCODE, WNODE_HEADER};
+use um::evntcons::PEVENT_RECORD;
+use um::handleapi::INVALID_HANDLE_VALUE;
+use um::timezoneapi::TIME_ZONE_INFORMATION;
+use um::winnt::{
+ ANYSIZE_ARRAY, BOOLEAN, HANDLE, LARGE_INTEGER, LONG, LONGLONG, LPCSTR, LPCWSTR, LPSTR, LPWSTR,
+ PVOID, ULONGLONG, WCHAR
+};
+use vc::vadefs::va_list;
+DEFINE_GUID!{EventTraceGuid,
+ 0x68fdd900, 0x4a3e, 0x11d1, 0x84, 0xf4, 0x00, 0x00, 0xf8, 0x04, 0x64, 0xe3}
+DEFINE_GUID!{SystemTraceControlGuid,
+ 0x9e814aad, 0x3204, 0x11d2, 0x9a, 0x82, 0x00, 0x60, 0x08, 0xa8, 0x69, 0x39}
+DEFINE_GUID!{EventTraceConfigGuid,
+ 0x01853a65, 0x418f, 0x4f36, 0xae, 0xfc, 0xdc, 0x0f, 0x1d, 0x2f, 0xd2, 0x35}
+DEFINE_GUID!{DefaultTraceSecurityGuid,
+ 0x0811c1af, 0x7a07, 0x4a06, 0x82, 0xed, 0x86, 0x94, 0x55, 0xcd, 0xf7, 0x13}
+DEFINE_GUID!{PrivateLoggerNotificationGuid,
+ 0x3595ab5c, 0x042a, 0x4c8e, 0xb9, 0x42, 0x2d, 0x05, 0x9b, 0xfe, 0xb1, 0xb1}
+pub const KERNEL_LOGGER_NAME: &'static str = "NT Kernel Logger";
+pub const GLOBAL_LOGGER_NAME: &'static str = "GlobalLogger";
+pub const EVENT_LOGGER_NAME: &'static str = "EventLog";
+pub const DIAG_LOGGER_NAME: &'static str = "DiagLog";
+pub const MAX_MOF_FIELDS: SIZE_T = 16;
+DECLARE_HANDLE!{TRACEHANDLE, __TRACEHANDLE}
+pub type PTRACEHANDLE = *mut TRACEHANDLE;
+pub const EVENT_TRACE_TYPE_INFO: DWORD = 0x00;
+pub const EVENT_TRACE_TYPE_START: DWORD = 0x01;
+pub const EVENT_TRACE_TYPE_END: DWORD = 0x02;
+pub const EVENT_TRACE_TYPE_STOP: DWORD = 0x02;
+pub const EVENT_TRACE_TYPE_DC_START: DWORD = 0x03;
+pub const EVENT_TRACE_TYPE_DC_END: DWORD = 0x04;
+pub const EVENT_TRACE_TYPE_EXTENSION: DWORD = 0x05;
+pub const EVENT_TRACE_TYPE_REPLY: DWORD = 0x06;
+pub const EVENT_TRACE_TYPE_DEQUEUE: DWORD = 0x07;
+pub const EVENT_TRACE_TYPE_RESUME: DWORD = 0x07;
+pub const EVENT_TRACE_TYPE_CHECKPOINT: DWORD = 0x08;
+pub const EVENT_TRACE_TYPE_SUSPEND: DWORD = 0x08;
+pub const EVENT_TRACE_TYPE_WINEVT_SEND: DWORD = 0x09;
+pub const EVENT_TRACE_TYPE_WINEVT_RECEIVE: DWORD = 0xF0;
+pub const TRACE_LEVEL_CRITICAL: UCHAR = 1;
+pub const TRACE_LEVEL_ERROR: UCHAR = 2;
+pub const TRACE_LEVEL_WARNING: UCHAR = 3;
+pub const TRACE_LEVEL_INFORMATION: UCHAR = 4;
+pub const TRACE_LEVEL_VERBOSE: UCHAR = 5;
+pub const TRACE_LEVEL_RESERVED6: UCHAR = 6;
+pub const TRACE_LEVEL_RESERVED7: UCHAR = 7;
+pub const TRACE_LEVEL_RESERVED8: UCHAR = 8;
+pub const TRACE_LEVEL_RESERVED9: UCHAR = 9;
+pub const EVENT_TRACE_TYPE_LOAD: DWORD = 0x0A;
+pub const EVENT_TRACE_TYPE_TERMINATE: DWORD = 0x0B;
+pub const EVENT_TRACE_TYPE_IO_READ: DWORD = 0x0A;
+pub const EVENT_TRACE_TYPE_IO_WRITE: DWORD = 0x0B;
+pub const EVENT_TRACE_TYPE_IO_READ_INIT: DWORD = 0x0C;
+pub const EVENT_TRACE_TYPE_IO_WRITE_INIT: DWORD = 0x0D;
+pub const EVENT_TRACE_TYPE_IO_FLUSH: DWORD = 0x0E;
+pub const EVENT_TRACE_TYPE_IO_FLUSH_INIT: DWORD = 0x0F;
+pub const EVENT_TRACE_TYPE_IO_REDIRECTED_INIT: DWORD = 0x10;
+pub const EVENT_TRACE_TYPE_MM_TF: DWORD = 0x0A;
+pub const EVENT_TRACE_TYPE_MM_DZF: DWORD = 0x0B;
+pub const EVENT_TRACE_TYPE_MM_COW: DWORD = 0x0C;
+pub const EVENT_TRACE_TYPE_MM_GPF: DWORD = 0x0D;
+pub const EVENT_TRACE_TYPE_MM_HPF: DWORD = 0x0E;
+pub const EVENT_TRACE_TYPE_MM_AV: DWORD = 0x0F;
+pub const EVENT_TRACE_TYPE_SEND: DWORD = 0x0A;
+pub const EVENT_TRACE_TYPE_RECEIVE: DWORD = 0x0B;
+pub const EVENT_TRACE_TYPE_CONNECT: DWORD = 0x0C;
+pub const EVENT_TRACE_TYPE_DISCONNECT: DWORD = 0x0D;
+pub const EVENT_TRACE_TYPE_RETRANSMIT: DWORD = 0x0E;
+pub const EVENT_TRACE_TYPE_ACCEPT: DWORD = 0x0F;
+pub const EVENT_TRACE_TYPE_RECONNECT: DWORD = 0x10;
+pub const EVENT_TRACE_TYPE_CONNFAIL: DWORD = 0x11;
+pub const EVENT_TRACE_TYPE_COPY_TCP: DWORD = 0x12;
+pub const EVENT_TRACE_TYPE_COPY_ARP: DWORD = 0x13;
+pub const EVENT_TRACE_TYPE_ACKFULL: DWORD = 0x14;
+pub const EVENT_TRACE_TYPE_ACKPART: DWORD = 0x15;
+pub const EVENT_TRACE_TYPE_ACKDUP: DWORD = 0x16;
+pub const EVENT_TRACE_TYPE_GUIDMAP: DWORD = 0x0A;
+pub const EVENT_TRACE_TYPE_CONFIG: DWORD = 0x0B;
+pub const EVENT_TRACE_TYPE_SIDINFO: DWORD = 0x0C;
+pub const EVENT_TRACE_TYPE_SECURITY: DWORD = 0x0D;
+pub const EVENT_TRACE_TYPE_DBGID_RSDS: DWORD = 0x40;
+pub const EVENT_TRACE_TYPE_REGCREATE: DWORD = 0x0A;
+pub const EVENT_TRACE_TYPE_REGOPEN: DWORD = 0x0B;
+pub const EVENT_TRACE_TYPE_REGDELETE: DWORD = 0x0C;
+pub const EVENT_TRACE_TYPE_REGQUERY: DWORD = 0x0D;
+pub const EVENT_TRACE_TYPE_REGSETVALUE: DWORD = 0x0E;
+pub const EVENT_TRACE_TYPE_REGDELETEVALUE: DWORD = 0x0F;
+pub const EVENT_TRACE_TYPE_REGQUERYVALUE: DWORD = 0x10;
+pub const EVENT_TRACE_TYPE_REGENUMERATEKEY: DWORD = 0x11;
+pub const EVENT_TRACE_TYPE_REGENUMERATEVALUEKEY: DWORD = 0x12;
+pub const EVENT_TRACE_TYPE_REGQUERYMULTIPLEVALUE: DWORD = 0x13;
+pub const EVENT_TRACE_TYPE_REGSETINFORMATION: DWORD = 0x14;
+pub const EVENT_TRACE_TYPE_REGFLUSH: DWORD = 0x15;
+pub const EVENT_TRACE_TYPE_REGKCBCREATE: DWORD = 0x16;
+pub const EVENT_TRACE_TYPE_REGKCBDELETE: DWORD = 0x17;
+pub const EVENT_TRACE_TYPE_REGKCBRUNDOWNBEGIN: DWORD = 0x18;
+pub const EVENT_TRACE_TYPE_REGKCBRUNDOWNEND: DWORD = 0x19;
+pub const EVENT_TRACE_TYPE_REGVIRTUALIZE: DWORD = 0x1A;
+pub const EVENT_TRACE_TYPE_REGCLOSE: DWORD = 0x1B;
+pub const EVENT_TRACE_TYPE_REGSETSECURITY: DWORD = 0x1C;
+pub const EVENT_TRACE_TYPE_REGQUERYSECURITY: DWORD = 0x1D;
+pub const EVENT_TRACE_TYPE_REGCOMMIT: DWORD = 0x1E;
+pub const EVENT_TRACE_TYPE_REGPREPARE: DWORD = 0x1F;
+pub const EVENT_TRACE_TYPE_REGROLLBACK: DWORD = 0x20;
+pub const EVENT_TRACE_TYPE_REGMOUNTHIVE: DWORD = 0x21;
+pub const EVENT_TRACE_TYPE_CONFIG_CPU: DWORD = 0x0A;
+pub const EVENT_TRACE_TYPE_CONFIG_PHYSICALDISK: DWORD = 0x0B;
+pub const EVENT_TRACE_TYPE_CONFIG_LOGICALDISK: DWORD = 0x0C;
+pub const EVENT_TRACE_TYPE_CONFIG_NIC: DWORD = 0x0D;
+pub const EVENT_TRACE_TYPE_CONFIG_VIDEO: DWORD = 0x0E;
+pub const EVENT_TRACE_TYPE_CONFIG_SERVICES: DWORD = 0x0F;
+pub const EVENT_TRACE_TYPE_CONFIG_POWER: DWORD = 0x10;
+pub const EVENT_TRACE_TYPE_CONFIG_NETINFO: DWORD = 0x11;
+pub const EVENT_TRACE_TYPE_CONFIG_OPTICALMEDIA: DWORD = 0x12;
+pub const EVENT_TRACE_TYPE_CONFIG_IRQ: DWORD = 0x15;
+pub const EVENT_TRACE_TYPE_CONFIG_PNP: DWORD = 0x16;
+pub const EVENT_TRACE_TYPE_CONFIG_IDECHANNEL: DWORD = 0x17;
+pub const EVENT_TRACE_TYPE_CONFIG_NUMANODE: DWORD = 0x18;
+pub const EVENT_TRACE_TYPE_CONFIG_PLATFORM: DWORD = 0x19;
+pub const EVENT_TRACE_TYPE_CONFIG_PROCESSORGROUP: DWORD = 0x1A;
+pub const EVENT_TRACE_TYPE_CONFIG_PROCESSORNUMBER: DWORD = 0x1B;
+pub const EVENT_TRACE_TYPE_CONFIG_DPI: DWORD = 0x1C;
+pub const EVENT_TRACE_TYPE_CONFIG_CI_INFO: DWORD = 0x1D;
+pub const EVENT_TRACE_TYPE_CONFIG_MACHINEID: DWORD = 0x1E;
+pub const EVENT_TRACE_TYPE_CONFIG_DEFRAG: DWORD = 0x1F;
+pub const EVENT_TRACE_TYPE_CONFIG_MOBILEPLATFORM: DWORD = 0x20;
+pub const EVENT_TRACE_TYPE_CONFIG_DEVICEFAMILY: DWORD = 0x21;
+pub const EVENT_TRACE_TYPE_CONFIG_FLIGHTID: DWORD = 0x22;
+pub const EVENT_TRACE_TYPE_CONFIG_PROCESSOR: DWORD = 0x23;
+pub const EVENT_TRACE_TYPE_OPTICAL_IO_READ: DWORD = 0x37;
+pub const EVENT_TRACE_TYPE_OPTICAL_IO_WRITE: DWORD = 0x38;
+pub const EVENT_TRACE_TYPE_OPTICAL_IO_FLUSH: DWORD = 0x39;
+pub const EVENT_TRACE_TYPE_OPTICAL_IO_READ_INIT: DWORD = 0x3a;
+pub const EVENT_TRACE_TYPE_OPTICAL_IO_WRITE_INIT: DWORD = 0x3b;
+pub const EVENT_TRACE_TYPE_OPTICAL_IO_FLUSH_INIT: DWORD = 0x3c;
+pub const EVENT_TRACE_TYPE_FLT_PREOP_INIT: DWORD = 0x60;
+pub const EVENT_TRACE_TYPE_FLT_POSTOP_INIT: DWORD = 0x61;
+pub const EVENT_TRACE_TYPE_FLT_PREOP_COMPLETION: DWORD = 0x62;
+pub const EVENT_TRACE_TYPE_FLT_POSTOP_COMPLETION: DWORD = 0x63;
+pub const EVENT_TRACE_TYPE_FLT_PREOP_FAILURE: DWORD = 0x64;
+pub const EVENT_TRACE_TYPE_FLT_POSTOP_FAILURE: DWORD = 0x65;
+pub const EVENT_TRACE_FLAG_PROCESS: DWORD = 0x00000001;
+pub const EVENT_TRACE_FLAG_THREAD: DWORD = 0x00000002;
+pub const EVENT_TRACE_FLAG_IMAGE_LOAD: DWORD = 0x00000004;
+pub const EVENT_TRACE_FLAG_DISK_IO: DWORD = 0x00000100;
+pub const EVENT_TRACE_FLAG_DISK_FILE_IO: DWORD = 0x00000200;
+pub const EVENT_TRACE_FLAG_MEMORY_PAGE_FAULTS: DWORD = 0x00001000;
+pub const EVENT_TRACE_FLAG_MEMORY_HARD_FAULTS: DWORD = 0x00002000;
+pub const EVENT_TRACE_FLAG_NETWORK_TCPIP: DWORD = 0x00010000;
+pub const EVENT_TRACE_FLAG_REGISTRY: DWORD = 0x00020000;
+pub const EVENT_TRACE_FLAG_DBGPRINT: DWORD = 0x00040000;
+pub const EVENT_TRACE_FLAG_PROCESS_COUNTERS: DWORD = 0x00000008;
+pub const EVENT_TRACE_FLAG_CSWITCH: DWORD = 0x00000010;
+pub const EVENT_TRACE_FLAG_DPC: DWORD = 0x00000020;
+pub const EVENT_TRACE_FLAG_INTERRUPT: DWORD = 0x00000040;
+pub const EVENT_TRACE_FLAG_SYSTEMCALL: DWORD = 0x00000080;
+pub const EVENT_TRACE_FLAG_DISK_IO_INIT: DWORD = 0x00000400;
+pub const EVENT_TRACE_FLAG_ALPC: DWORD = 0x00100000;
+pub const EVENT_TRACE_FLAG_SPLIT_IO: DWORD = 0x00200000;
+pub const EVENT_TRACE_FLAG_DRIVER: DWORD = 0x00800000;
+pub const EVENT_TRACE_FLAG_PROFILE: DWORD = 0x01000000;
+pub const EVENT_TRACE_FLAG_FILE_IO: DWORD = 0x02000000;
+pub const EVENT_TRACE_FLAG_FILE_IO_INIT: DWORD = 0x04000000;
+pub const EVENT_TRACE_FLAG_DISPATCHER: DWORD = 0x00000800;
+pub const EVENT_TRACE_FLAG_VIRTUAL_ALLOC: DWORD = 0x00004000;
+pub const EVENT_TRACE_FLAG_VAMAP: DWORD = 0x00008000;
+pub const EVENT_TRACE_FLAG_NO_SYSCONFIG: DWORD = 0x10000000;
+pub const EVENT_TRACE_FLAG_JOB: DWORD = 0x00080000;
+pub const EVENT_TRACE_FLAG_DEBUG_EVENTS: DWORD = 0x00400000;
+pub const EVENT_TRACE_FLAG_EXTENSION: DWORD = 0x80000000;
+pub const EVENT_TRACE_FLAG_FORWARD_WMI: DWORD = 0x40000000;
+pub const EVENT_TRACE_FLAG_ENABLE_RESERVE: DWORD = 0x20000000;
+pub const EVENT_TRACE_FILE_MODE_NONE: DWORD = 0x00000000;
+pub const EVENT_TRACE_FILE_MODE_SEQUENTIAL: DWORD = 0x00000001;
+pub const EVENT_TRACE_FILE_MODE_CIRCULAR: DWORD = 0x00000002;
+pub const EVENT_TRACE_FILE_MODE_APPEND: DWORD = 0x00000004;
+pub const EVENT_TRACE_REAL_TIME_MODE: DWORD = 0x00000100;
+pub const EVENT_TRACE_DELAY_OPEN_FILE_MODE: DWORD = 0x00000200;
+pub const EVENT_TRACE_BUFFERING_MODE: DWORD = 0x00000400;
+pub const EVENT_TRACE_PRIVATE_LOGGER_MODE: DWORD = 0x00000800;
+pub const EVENT_TRACE_ADD_HEADER_MODE: DWORD = 0x00001000;
+pub const EVENT_TRACE_USE_GLOBAL_SEQUENCE: DWORD = 0x00004000;
+pub const EVENT_TRACE_USE_LOCAL_SEQUENCE: DWORD = 0x00008000;
+pub const EVENT_TRACE_RELOG_MODE: DWORD = 0x00010000;
+pub const EVENT_TRACE_USE_PAGED_MEMORY: DWORD = 0x01000000;
+pub const EVENT_TRACE_FILE_MODE_NEWFILE: DWORD = 0x00000008;
+pub const EVENT_TRACE_FILE_MODE_PREALLOCATE: DWORD = 0x00000020;
+pub const EVENT_TRACE_NONSTOPPABLE_MODE: DWORD = 0x00000040;
+pub const EVENT_TRACE_SECURE_MODE: DWORD = 0x00000080;
+pub const EVENT_TRACE_USE_KBYTES_FOR_SIZE: DWORD = 0x00002000;
+pub const EVENT_TRACE_PRIVATE_IN_PROC: DWORD = 0x00020000;
+pub const EVENT_TRACE_MODE_RESERVED: DWORD = 0x00100000;
+pub const EVENT_TRACE_NO_PER_PROCESSOR_BUFFERING: DWORD = 0x10000000;
+pub const EVENT_TRACE_SYSTEM_LOGGER_MODE: DWORD = 0x02000000;
+pub const EVENT_TRACE_ADDTO_TRIAGE_DUMP: DWORD = 0x80000000;
+pub const EVENT_TRACE_STOP_ON_HYBRID_SHUTDOWN: DWORD = 0x00400000;
+pub const EVENT_TRACE_PERSIST_ON_HYBRID_SHUTDOWN: DWORD = 0x00800000;
+pub const EVENT_TRACE_INDEPENDENT_SESSION_MODE: DWORD = 0x08000000;
+pub const EVENT_TRACE_COMPRESSED_MODE: DWORD = 0x04000000;
+pub const EVENT_TRACE_CONTROL_QUERY: DWORD = 0;
+pub const EVENT_TRACE_CONTROL_STOP: DWORD = 1;
+pub const EVENT_TRACE_CONTROL_UPDATE: DWORD = 2;
+pub const EVENT_TRACE_CONTROL_FLUSH: DWORD = 3;
+pub const TRACE_MESSAGE_SEQUENCE: DWORD = 1;
+pub const TRACE_MESSAGE_GUID: DWORD = 2;
+pub const TRACE_MESSAGE_COMPONENTID: DWORD = 4;
+pub const TRACE_MESSAGE_TIMESTAMP: DWORD = 8;
+pub const TRACE_MESSAGE_PERFORMANCE_TIMESTAMP: DWORD = 16;
+pub const TRACE_MESSAGE_SYSTEMINFO: DWORD = 32;
+pub const TRACE_MESSAGE_POINTER32: DWORD = 0x0040;
+pub const TRACE_MESSAGE_POINTER64: DWORD = 0x0080;
+pub const TRACE_MESSAGE_FLAG_MASK: DWORD = 0xFFFF;
+pub const TRACE_MESSAGE_MAXIMUM_SIZE: SIZE_T = 64 * 1024;
+pub const EVENT_TRACE_USE_PROCTIME: DWORD = 0x0001;
+pub const EVENT_TRACE_USE_NOCPUTIME: DWORD = 0x0002;
+pub const TRACE_HEADER_FLAG_USE_TIMESTAMP: DWORD = 0x00000200;
+pub const TRACE_HEADER_FLAG_TRACED_GUID: DWORD = 0x00020000;
+pub const TRACE_HEADER_FLAG_LOG_WNODE: DWORD = 0x00040000;
+pub const TRACE_HEADER_FLAG_USE_GUID_PTR: DWORD = 0x00080000;
+pub const TRACE_HEADER_FLAG_USE_MOF_PTR: DWORD = 0x00100000;
+ENUM!{enum ETW_COMPRESSION_RESUMPTION_MODE {
+ EtwCompressionModeRestart = 0,
+ EtwCompressionModeNoDisable = 1,
+ EtwCompressionModeNoRestart = 2,
+}}
+STRUCT!{struct EVENT_TRACE_HEADER_u1_s {
+ HeaderType: UCHAR,
+ MarkerFlags: UCHAR,
+}}
+UNION!{union EVENT_TRACE_HEADER_u1 {
+ [u16; 1],
+ FieldTypeFlags FieldTypeFlags_mut: USHORT,
+ s s_mut: EVENT_TRACE_HEADER_u1_s,
+}}
+STRUCT!{struct EVENT_TRACE_HEADER_u2_CLASS {
+ Type: UCHAR,
+ Level: UCHAR,
+ Version: USHORT,
+}}
+UNION!{union EVENT_TRACE_HEADER_u2 {
+ [u32; 1],
+ Version Version_mut: ULONG,
+ Class Class_mut: EVENT_TRACE_HEADER_u2_CLASS,
+}}
+UNION!{union EVENT_TRACE_HEADER_u3 {
+ [u64; 2],
+ Guid Guid_mut: GUID,
+ GuidPtr GuidPtr_mut: ULONGLONG,
+}}
+STRUCT!{struct EVENT_TRACE_HEADER_u4_s1 {
+ ClientContext: ULONG,
+ Flags: ULONG,
+}}
+STRUCT!{struct EVENT_TRACE_HEADER_u4_s2 {
+ KernelTime: ULONG,
+ UserTime: ULONG,
+}}
+UNION!{union EVENT_TRACE_HEADER_u4 {
+ [u64; 1],
+ s1 s1_mut: EVENT_TRACE_HEADER_u4_s1,
+ s2 s2_mut: EVENT_TRACE_HEADER_u4_s2,
+ ProcessorTime ProcessorTime_mut: ULONG64,
+}}
+STRUCT!{struct EVENT_TRACE_HEADER {
+ Size: USHORT,
+ u1: EVENT_TRACE_HEADER_u1,
+ u2: EVENT_TRACE_HEADER_u2,
+ ThreadId: ULONG,
+ ProcessId: ULONG,
+ TimeStamp: LARGE_INTEGER,
+ u3: EVENT_TRACE_HEADER_u3,
+ u4: EVENT_TRACE_HEADER_u4,
+}}
+pub type PEVENT_TRACE_HEADER = *mut EVENT_TRACE_HEADER;
+STRUCT!{struct EVENT_INSTANCE_HEADER_u1_s {
+ HeaderType: UCHAR,
+ MarkerFlags: UCHAR,
+}}
+UNION!{union EVENT_INSTANCE_HEADER_u1 {
+ [u16; 1],
+ FieldTypeFlags FieldTypeFlags_mut: USHORT,
+ s s_mut: EVENT_INSTANCE_HEADER_u1_s,
+}}
+STRUCT!{struct EVENT_INSTANCE_HEADER_u2_CLASS {
+ Type: UCHAR,
+ Level: UCHAR,
+ Version: USHORT,
+}}
+UNION!{union EVENT_INSTANCE_HEADER_u2 {
+ [u32; 1],
+ Version Version_mut: ULONG,
+ Class Class_mut: EVENT_INSTANCE_HEADER_u2_CLASS,
+}}
+STRUCT!{struct EVENT_INSTANCE_HEADER_u3_s1 {
+ KernelTime: ULONG,
+ UserTime: ULONG,
+}}
+STRUCT!{struct EVENT_INSTANCE_HEADER_u3_s2 {
+ EventId: ULONG,
+ Flags: ULONG,
+}}
+UNION!{union EVENT_INSTANCE_HEADER_u3 {
+ [u64; 1],
+ s1 s1_mut: EVENT_INSTANCE_HEADER_u3_s1,
+ ProcessorTime ProcessorTime_mut: ULONG64,
+ s2 s2_mut: EVENT_INSTANCE_HEADER_u3_s2,
+}}
+STRUCT!{struct EVENT_INSTANCE_HEADER {
+ Size: USHORT,
+ u1: EVENT_INSTANCE_HEADER_u1,
+ u2: EVENT_INSTANCE_HEADER_u2,
+ ThreadId: ULONG,
+ ProcessId: ULONG,
+ TimeStamp: LARGE_INTEGER,
+ RegHandle: ULONGLONG,
+ InstanceId: ULONG,
+ ParentInstanceId: ULONG,
+ u3: EVENT_INSTANCE_HEADER_u3,
+ ParentRegHandle: ULONGLONG,
+}}
+pub type PEVENT_INSTANCE_HEADER = *mut EVENT_INSTANCE_HEADER;
+pub const ETW_NULL_TYPE_VALUE: ULONG = 0;
+pub const ETW_OBJECT_TYPE_VALUE: ULONG = 1;
+pub const ETW_STRING_TYPE_VALUE: ULONG = 2;
+pub const ETW_SBYTE_TYPE_VALUE: ULONG = 3;
+pub const ETW_BYTE_TYPE_VALUE: ULONG = 4;
+pub const ETW_INT16_TYPE_VALUE: ULONG = 5;
+pub const ETW_UINT16_TYPE_VALUE: ULONG = 6;
+pub const ETW_INT32_TYPE_VALUE: ULONG = 7;
+pub const ETW_UINT32_TYPE_VALUE: ULONG = 8;
+pub const ETW_INT64_TYPE_VALUE: ULONG = 9;
+pub const ETW_UINT64_TYPE_VALUE: ULONG = 10;
+pub const ETW_CHAR_TYPE_VALUE: ULONG = 11;
+pub const ETW_SINGLE_TYPE_VALUE: ULONG = 12;
+pub const ETW_DOUBLE_TYPE_VALUE: ULONG = 13;
+pub const ETW_BOOLEAN_TYPE_VALUE: ULONG = 14;
+pub const ETW_DECIMAL_TYPE_VALUE: ULONG = 15;
+pub const ETW_GUID_TYPE_VALUE: ULONG = 101;
+pub const ETW_ASCIICHAR_TYPE_VALUE: ULONG = 102;
+pub const ETW_ASCIISTRING_TYPE_VALUE: ULONG = 103;
+pub const ETW_COUNTED_STRING_TYPE_VALUE: ULONG = 104;
+pub const ETW_POINTER_TYPE_VALUE: ULONG = 105;
+pub const ETW_SIZET_TYPE_VALUE: ULONG = 106;
+pub const ETW_HIDDEN_TYPE_VALUE: ULONG = 107;
+pub const ETW_BOOL_TYPE_VALUE: ULONG = 108;
+pub const ETW_COUNTED_ANSISTRING_TYPE_VALUE: ULONG = 109;
+pub const ETW_REVERSED_COUNTED_STRING_TYPE_VALUE: ULONG = 110;
+pub const ETW_REVERSED_COUNTED_ANSISTRING_TYPE_VALUE: ULONG = 111;
+pub const ETW_NON_NULL_TERMINATED_STRING_TYPE_VALUE: ULONG = 112;
+pub const ETW_REDUCED_ANSISTRING_TYPE_VALUE: ULONG = 113;
+pub const ETW_REDUCED_STRING_TYPE_VALUE: ULONG = 114;
+pub const ETW_SID_TYPE_VALUE: ULONG = 115;
+pub const ETW_VARIANT_TYPE_VALUE: ULONG = 116;
+pub const ETW_PTVECTOR_TYPE_VALUE: ULONG = 117;
+pub const ETW_WMITIME_TYPE_VALUE: ULONG = 118;
+pub const ETW_DATETIME_TYPE_VALUE: ULONG = 119;
+pub const ETW_REFRENCE_TYPE_VALUE: ULONG = 120;
+// TODO: DEFINE_TRACE_MOF_FIELD
+STRUCT!{struct MOF_FIELD {
+ DataPtr: ULONG64,
+ Length: ULONG,
+ DataType: ULONG,
+}}
+pub type PMOF_FIELD = *mut MOF_FIELD;
+STRUCT!{struct TRACE_LOGFILE_HEADER_u1_VERSIONDETAIL {
+ MajorVersion: UCHAR,
+ MinorVersion: UCHAR,
+ SubVersion: UCHAR,
+ SubMinorVersion: UCHAR,
+}}
+UNION!{union TRACE_LOGFILE_HEADER_u1 {
+ [u32; 1],
+ Version Version_mut: ULONG,
+ VersionDetail VersionDetail_mut: TRACE_LOGFILE_HEADER_u1_VERSIONDETAIL,
+}}
+STRUCT!{struct TRACE_LOGFILE_HEADER_u2_s {
+ StartBuffers: ULONG,
+ PointerSize: ULONG,
+ EventsLost: ULONG,
+ CpuSpeedInMHz: ULONG,
+}}
+UNION!{union TRACE_LOGFILE_HEADER_u2 {
+ [u32; 4],
+ LogInstanceGuid LogInstanceGuid_mut: GUID,
+ s s_mut: TRACE_LOGFILE_HEADER_u2_s,
+}}
+STRUCT!{struct TRACE_LOGFILE_HEADER {
+ BufferSize: ULONG,
+ u1: TRACE_LOGFILE_HEADER_u1,
+ ProviderVersion: ULONG,
+ NumberOfProcessors: ULONG,
+ EndTime: LARGE_INTEGER,
+ TimerResolution: ULONG,
+ MaximumFileSize: ULONG,
+ LogFileMode: ULONG,
+ BuffersWritten: ULONG,
+ u2: TRACE_LOGFILE_HEADER_u2,
+ LoggerName: LPWSTR,
+ LogFileName: LPWSTR,
+ TimeZone: TIME_ZONE_INFORMATION,
+ BootTime: LARGE_INTEGER,
+ PrefFreq: LARGE_INTEGER,
+ StartTime: LARGE_INTEGER,
+ ReservedFlags: ULONG,
+ BuffersLost: ULONG,
+}}
+pub type PTRACE_LOGFILE_HEADER = *mut TRACE_LOGFILE_HEADER;
+STRUCT!{struct TRACE_LOGFILE_HEADER32 {
+ BufferSize: ULONG,
+ u1: TRACE_LOGFILE_HEADER_u1,
+ ProviderVersion: ULONG,
+ NumberOfProcessors: ULONG,
+ EndTime: LARGE_INTEGER,
+ TimerResolution: ULONG,
+ MaximumFileSize: ULONG,
+ LogFileMode: ULONG,
+ BuffersWritten: ULONG,
+ u2: TRACE_LOGFILE_HEADER_u2,
+ LoggerName: ULONG32,
+ LogFileName: ULONG32,
+ TimeZone: TIME_ZONE_INFORMATION,
+ BootTime: LARGE_INTEGER,
+ PrefFreq: LARGE_INTEGER,
+ StartTime: LARGE_INTEGER,
+ ReservedFlags: ULONG,
+ BuffersLost: ULONG,
+}}
+pub type PTRACE_LOGFILE_HEADER32 = *mut TRACE_LOGFILE_HEADER32;
+STRUCT!{struct TRACE_LOGFILE_HEADER64 {
+ BufferSize: ULONG,
+ u1: TRACE_LOGFILE_HEADER_u1,
+ ProviderVersion: ULONG,
+ NumberOfProcessors: ULONG,
+ EndTime: LARGE_INTEGER,
+ TimerResolution: ULONG,
+ MaximumFileSize: ULONG,
+ LogFileMode: ULONG,
+ BuffersWritten: ULONG,
+ u2: TRACE_LOGFILE_HEADER_u2,
+ LoggerName: ULONG64,
+ LogFileName: ULONG64,
+ TimeZone: TIME_ZONE_INFORMATION,
+ BootTime: LARGE_INTEGER,
+ PrefFreq: LARGE_INTEGER,
+ StartTime: LARGE_INTEGER,
+ ReservedFlags: ULONG,
+ BuffersLost: ULONG,
+}}
+pub type PTRACE_LOGFILE_HEADER64 = *mut TRACE_LOGFILE_HEADER64;
+STRUCT!{struct EVENT_INSTANCE_INFO {
+ RegHandle: HANDLE,
+ InstanceId: ULONG,
+}}
+pub type PEVENT_INSTANCE_INFO = *mut EVENT_INSTANCE_INFO;
+UNION!{union EVENT_TRACE_PROPERTIES_u {
+ [u32; 1],
+ AgeLimit AgeLimit_mut: LONG,
+ FlushThreshold FlushThreshold_mut: LONG,
+}}
+STRUCT!{struct EVENT_TRACE_PROPERTIES {
+ Wnode: WNODE_HEADER,
+ BufferSize: ULONG,
+ MinimumBuffers: ULONG,
+ MaximumBuffers: ULONG,
+ MaximumFileSize: ULONG,
+ LogFileMode: ULONG,
+ FlushTimer: ULONG,
+ EnableFlags: ULONG,
+ u: EVENT_TRACE_PROPERTIES_u,
+ NumberOfBuffers: ULONG,
+ FreeBuffers: ULONG,
+ EventsLost: ULONG,
+ BuffersWritten: ULONG,
+ LogBuffersLost: ULONG,
+ RealTimeBuffersLost: ULONG,
+ LoggerThreadId: HANDLE,
+ LogFileNameOffset: ULONG,
+ LoggerNameOffset: ULONG,
+}}
+pub type PEVENT_TRACE_PROPERTIES = *mut EVENT_TRACE_PROPERTIES;
+UNION!{union EVENT_TRACE_PROPERTIES_V2_u1 {
+ [u32; 1],
+ AgeLimit AgeLimit_mut: LONG,
+ FlushThreshold FlushThreshold_mut: LONG,
+}}
+STRUCT!{struct EVENT_TRACE_PROPERTIES_V2_u2_s {
+ bitfield: ULONG,
+}}
+BITFIELD!{EVENT_TRACE_PROPERTIES_V2_u2_s bitfield: ULONG [
+ VersionNumber set_VersionNumber[0..8],
+]}
+UNION!{union EVENT_TRACE_PROPERTIES_V2_u2 {
+ [u32; 1],
+ s s_mut: EVENT_TRACE_PROPERTIES_V2_u2_s,
+ V2Control V2Control_mut: ULONG,
+}}
+STRUCT!{struct EVENT_TRACE_PROPERTIES_V2_u3_s {
+ bitfield: ULONG,
+}}
+BITFIELD!{EVENT_TRACE_PROPERTIES_V2_u3_s bitfield: ULONG [
+ Wow set_Wow[0..1],
+]}
+UNION!{union EVENT_TRACE_PROPERTIES_V2_u3 {
+ [u64; 1],
+ s s_mut: EVENT_TRACE_PROPERTIES_V2_u3_s,
+ V2Options V2Options_mut: ULONG64,
+}}
+STRUCT!{struct EVENT_TRACE_PROPERTIES_V2 {
+ Wnode: WNODE_HEADER,
+ BufferSize: ULONG,
+ MinimumBuffers: ULONG,
+ MaximumBuffers: ULONG,
+ MaximumFileSize: ULONG,
+ LogFileMode: ULONG,
+ FlushTimer: ULONG,
+ EnableFlags: ULONG,
+ u1: EVENT_TRACE_PROPERTIES_u,
+ NumberOfBuffers: ULONG,
+ FreeBuffers: ULONG,
+ EventsLost: ULONG,
+ BuffersWritten: ULONG,
+ LogBuffersLost: ULONG,
+ RealTimeBuffersLost: ULONG,
+ LoggerThreadId: HANDLE,
+ LogFileNameOffset: ULONG,
+ LoggerNameOffset: ULONG,
+ u2: EVENT_TRACE_PROPERTIES_V2_u2,
+ FilterDescCount: ULONG,
+ FilterDesc: PEVENT_FILTER_DESCRIPTOR,
+ u3: EVENT_TRACE_PROPERTIES_V2_u3,
+}}
+pub type PEVENT_TRACE_PROPERTIES_V2 = *mut EVENT_TRACE_PROPERTIES_V2;
+STRUCT!{struct TRACE_GUID_REGISTRATION {
+ Guid: LPCGUID,
+ RegHandle: HANDLE,
+}}
+pub type PTRACE_GUID_REGISTRATION = *mut TRACE_GUID_REGISTRATION;
+STRUCT!{struct TRACE_GUID_PROPERTIES {
+ Guid: GUID,
+ GuidType: ULONG,
+ LoggerId: ULONG,
+ EnableLevel: ULONG,
+ EnableFlags: ULONG,
+ IsEnable: BOOLEAN,
+}}
+pub type PTRACE_GUID_PROPERTIES = *mut TRACE_GUID_PROPERTIES;
+STRUCT!{struct ETW_BUFFER_CONTEXT_u_s {
+ ProcessorNumber: UCHAR,
+ Alignment: UCHAR,
+}}
+UNION!{union ETW_BUFFER_CONTEXT_u {
+ [u16; 1],
+ s s_mut: ETW_BUFFER_CONTEXT_u_s,
+ ProcessorIndex ProcessorIndex_mut: USHORT,
+}}
+STRUCT!{struct ETW_BUFFER_CONTEXT {
+ u: ETW_BUFFER_CONTEXT_u,
+ LoggerId: USHORT,
+}}
+pub type PETW_BUFFER_CONTEXT = *mut ETW_BUFFER_CONTEXT;
+pub const TRACE_PROVIDER_FLAG_LEGACY: ULONG = 0x00000001;
+pub const TRACE_PROVIDER_FLAG_PRE_ENABLE: ULONG = 0x00000002;
+STRUCT!{struct TRACE_ENABLE_INFO {
+ IsEnabled: ULONG,
+ Level: UCHAR,
+ Reserved1: UCHAR,
+ LoggerId: USHORT,
+ EnabledProperty: ULONG,
+ Reserved2: ULONG,
+ MatchAnyKeyword: ULONGLONG,
+ MatchAllKeyword: ULONGLONG,
+}}
+pub type PTRACE_ENABLE_INFO = *mut TRACE_ENABLE_INFO;
+STRUCT!{struct TRACE_PROVIDER_INSTANCE_INFO {
+ NameOffset: ULONG,
+ EnableCount: ULONG,
+ Pid: ULONG,
+ Flags: ULONG,
+}}
+pub type PTRACE_PROVIDER_INSTANCE_INFO = *mut TRACE_PROVIDER_INSTANCE_INFO;
+STRUCT!{struct TRACE_GUID_INFO {
+ InstanceCount: ULONG,
+ Reserved: ULONG,
+}}
+pub type PTRACE_GUID_INFO = *mut TRACE_GUID_INFO;
+STRUCT!{struct PROFILE_SOURCE_INFO {
+ NextEntryOffset: ULONG,
+ Source: ULONG,
+ MinInterval: ULONG,
+ MaxInterval: ULONG,
+ Reserved: ULONG64,
+ Description: [WCHAR; ANYSIZE_ARRAY],
+}}
+pub type PPROFILE_SOURCE_INFO = *mut PROFILE_SOURCE_INFO;
+UNION!{union EVENT_TRACE_u {
+ [u32; 1],
+ ClientContext ClientContext_mut: ULONG,
+ BufferContext BufferContext_mut: ETW_BUFFER_CONTEXT,
+}}
+STRUCT!{struct EVENT_TRACE {
+ Header: EVENT_TRACE_HEADER,
+ InstanceId: ULONG,
+ ParentInstanceId: ULONG,
+ ParentGuid: GUID,
+ MofData: PVOID,
+ MofLength: ULONG,
+ u: EVENT_TRACE_u,
+}}
+pub type PEVENT_TRACE = *mut EVENT_TRACE;
+pub const EVENT_CONTROL_CODE_DISABLE_PROVIDER: ULONG = 0;
+pub const EVENT_CONTROL_CODE_ENABLE_PROVIDER: ULONG = 1;
+pub const EVENT_CONTROL_CODE_CAPTURE_STATE: ULONG = 2;
+FN!{stdcall PEVENT_TRACE_BUFFER_CALLBACKW(
+ PEVENT_TRACE_LOGFILEW,
+) -> ULONG}
+FN!{stdcall PEVENT_TRACE_BUFFER_CALLBACKA(
+ PEVENT_TRACE_LOGFILEA,
+) -> ULONG}
+FN!{stdcall PEVENT_CALLBACK(
+ pEvent: PEVENT_TRACE,
+) -> ()}
+FN!{stdcall PEVENT_RECORD_CALLBACK(
+ EventRecord: PEVENT_RECORD,
+) -> ()}
+FN!{stdcall WMIDPREQUEST(
+ RequestCode: WMIDPREQUESTCODE,
+ RequestContext: PVOID,
+ BufferSize: *mut ULONG,
+ Buffer: PVOID,
+) -> ULONG}
+UNION!{union EVENT_TRACE_LOGFILE_u1 {
+ [u32; 1],
+ LogFileMode LogFileMode_mut: ULONG,
+ ProcessTraceMode ProcessTraceMode_mut: ULONG,
+}}
+UNION!{union EVENT_TRACE_LOGFILE_u2 {
+ [u32; 1] [u64; 1],
+ EventCallback EventCallback_mut: PEVENT_CALLBACK,
+ EventRecordCallback EventRecordCallback_mut: PEVENT_RECORD_CALLBACK,
+}}
+STRUCT!{struct EVENT_TRACE_LOGFILEW {
+ LogFileName: LPWSTR,
+ LoggerName: LPWSTR,
+ CurrentTime: LONGLONG,
+ BuffersRead: ULONG,
+ u1: EVENT_TRACE_LOGFILE_u1,
+ CurrentEvent: EVENT_TRACE,
+ LogfileHeader: TRACE_LOGFILE_HEADER,
+ BufferCallback: PEVENT_TRACE_BUFFER_CALLBACKW,
+ BufferSize: ULONG,
+ Filled: ULONG,
+ EventsLost: ULONG,
+ u2: EVENT_TRACE_LOGFILE_u2,
+ IsKernelTrace: ULONG,
+ Context: PVOID,
+}}
+pub type PEVENT_TRACE_LOGFILEW = *mut EVENT_TRACE_LOGFILEW;
+STRUCT!{struct EVENT_TRACE_LOGFILEA {
+ LogFileName: LPSTR,
+ LoggerName: LPSTR,
+ CurrentTime: LONGLONG,
+ BuffersRead: ULONG,
+ u1: EVENT_TRACE_LOGFILE_u1,
+ CurrentEvent: EVENT_TRACE,
+ LogfileHeader: TRACE_LOGFILE_HEADER,
+ BufferCallback: PEVENT_TRACE_BUFFER_CALLBACKA,
+ BufferSize: ULONG,
+ Filled: ULONG,
+ EventsLost: ULONG,
+ u2: EVENT_TRACE_LOGFILE_u2,
+ IsKernelTrace: ULONG,
+ Context: PVOID,
+}}
+pub type PEVENT_TRACE_LOGFILEA = *mut EVENT_TRACE_LOGFILEA;
+extern "system" {
+ pub fn StartTraceW(
+ SessionHandle: PTRACEHANDLE,
+ SessionName: LPCWSTR,
+ Properties: PEVENT_TRACE_PROPERTIES,
+ ) -> ULONG;
+ pub fn StartTraceA(
+ SessionHandle: PTRACEHANDLE,
+ SessionName: LPCSTR,
+ Properties: PEVENT_TRACE_PROPERTIES,
+ ) -> ULONG;
+ pub fn StopTraceW(
+ SessionHandle: TRACEHANDLE,
+ SessionName: LPCWSTR,
+ Properties: PEVENT_TRACE_PROPERTIES,
+ ) -> ULONG;
+ pub fn StopTraceA(
+ SessionHandle: TRACEHANDLE,
+ SessionName: LPCSTR,
+ Properties: PEVENT_TRACE_PROPERTIES,
+ ) -> ULONG;
+ pub fn QueryTraceW(
+ SessionHandle: TRACEHANDLE,
+ SessionName: LPCWSTR,
+ Properties: PEVENT_TRACE_PROPERTIES,
+ ) -> ULONG;
+ pub fn QueryTraceA(
+ SessionHandle: TRACEHANDLE,
+ SessionName: LPCSTR,
+ Properties: PEVENT_TRACE_PROPERTIES,
+ ) -> ULONG;
+ pub fn UpdateTraceW(
+ SessionHandle: TRACEHANDLE,
+ SessionName: LPCWSTR,
+ Properties: PEVENT_TRACE_PROPERTIES,
+ ) -> ULONG;
+ pub fn UpdateTraceA(
+ SessionHandle: TRACEHANDLE,
+ SessionName: LPCSTR,
+ Properties: PEVENT_TRACE_PROPERTIES,
+ ) -> ULONG;
+ pub fn FlushTraceW(
+ SessionHandle: TRACEHANDLE,
+ SessionName: LPCWSTR,
+ Properties: PEVENT_TRACE_PROPERTIES,
+ ) -> ULONG;
+ pub fn FlushTraceA(
+ SessionHandle: TRACEHANDLE,
+ SessionName: LPCSTR,
+ Properties: PEVENT_TRACE_PROPERTIES,
+ ) -> ULONG;
+ pub fn ControlTraceW(
+ SessionHandle: TRACEHANDLE,
+ SessionName: LPCWSTR,
+ Properties: PEVENT_TRACE_PROPERTIES,
+ ControlCode: ULONG,
+ ) -> ULONG;
+ pub fn ControlTraceA(
+ SessionHandle: TRACEHANDLE,
+ SessionName: LPCSTR,
+ Properties: PEVENT_TRACE_PROPERTIES,
+ ControlCode: ULONG,
+ ) -> ULONG;
+ pub fn QueryAllTracesW(
+ PropertyArray: *mut PEVENT_TRACE_PROPERTIES,
+ PropertyArrayCount: ULONG,
+ SessionCount: PULONG,
+ ) -> ULONG;
+ pub fn QueryAllTracesA(
+ PropertyArray: *mut PEVENT_TRACE_PROPERTIES,
+ PropertyArrayCount: ULONG,
+ SessionCount: PULONG,
+ ) -> ULONG;
+ pub fn EnableTrace(
+ Enable: ULONG,
+ EnableFlag: ULONG,
+ EnableLevel: ULONG,
+ ControlGuid: LPCGUID,
+ SessionHandle: TRACEHANDLE,
+ ) -> ULONG;
+ pub fn EnableTraceEx(
+ ProviderId: LPCGUID,
+ SourceId: LPCGUID,
+ TraceHandle: TRACEHANDLE,
+ IsEnabled: ULONG,
+ Level: UCHAR,
+ MatchAnyKeyword: ULONGLONG,
+ MatchAllKeyword: ULONGLONG,
+ EnableProperty: ULONG,
+ EnableFilterDesc: PEVENT_FILTER_DESCRIPTOR,
+ ) -> ULONG;
+}
+pub const ENABLE_TRACE_PARAMETERS_VERSION: ULONG = 1;
+pub const ENABLE_TRACE_PARAMETERS_VERSION_2: ULONG = 2;
+STRUCT!{struct ENABLE_TRACE_PARAMETERS_V1 {
+ Version: ULONG,
+ EnableProperty: ULONG,
+ ControlFlags: ULONG,
+ SourceId: GUID,
+ EnableFilterDesc: PEVENT_FILTER_DESCRIPTOR,
+}}
+pub type PENABLE_TRACE_PARAMETERS_V1 = *mut ENABLE_TRACE_PARAMETERS_V1;
+STRUCT!{struct ENABLE_TRACE_PARAMETERS {
+ Version: ULONG,
+ EnableProperty: ULONG,
+ ControlFlags: ULONG,
+ SourceId: GUID,
+ EnableFilterDesc: PEVENT_FILTER_DESCRIPTOR,
+ FilterDescCount: ULONG,
+}}
+pub type PENABLE_TRACE_PARAMETERS = *mut ENABLE_TRACE_PARAMETERS;
+extern "system" {
+ pub fn EnableTraceEx2(
+ TraceHandle: TRACEHANDLE,
+ ProviderId: LPCGUID,
+ ControlCode: ULONG,
+ Level: UCHAR,
+ MatchAnyKeyword: ULONGLONG,
+ MatchAllKeyword: ULONGLONG,
+ Timeout: ULONG,
+ EnableParameters: PENABLE_TRACE_PARAMETERS,
+ ) -> ULONG;
+}
+ENUM!{enum TRACE_QUERY_INFO_CLASS {
+ TraceGuidQueryList,
+ TraceGuidQueryInfo,
+ TraceGuidQueryProcess,
+ TraceStackTracingInfo,
+ TraceSystemTraceEnableFlagsInfo,
+ TraceSampledProfileIntervalInfo,
+ TraceProfileSourceConfigInfo,
+ TraceProfileSourceListInfo,
+ TracePmcEventListInfo,
+ TracePmcCounterListInfo,
+ TraceSetDisallowList,
+ TraceVersionInfo,
+ TraceGroupQueryList,
+ TraceGroupQueryInfo,
+ TraceDisallowListQuery,
+ TraceCompressionInfo,
+ TracePeriodicCaptureStateListInfo,
+ TracePeriodicCaptureStateInfo,
+ TraceProviderBinaryTracking,
+ TraceMaxLoggersQuery,
+ MaxTraceSetInfoClass,
+}}
+pub type TRACE_INFO_CLASS = TRACE_QUERY_INFO_CLASS;
+extern "system" {
+ pub fn EnumerateTraceGuidsEx(
+ TraceQueryInfoClass: TRACE_QUERY_INFO_CLASS,
+ InBuffer: PVOID,
+ InBufferSize: ULONG,
+ OutBuffer: PVOID,
+ OutBufferSize: ULONG,
+ ReturnLength: PULONG,
+ ) -> ULONG;
+}
+STRUCT!{struct CLASSIC_EVENT_ID {
+ EventGuid: GUID,
+ Type: UCHAR,
+ Reserved: [UCHAR; 7],
+}}
+pub type PCLASSIC_EVENT_ID = *mut CLASSIC_EVENT_ID;
+STRUCT!{struct TRACE_PROFILE_INTERVAL {
+ Source: ULONG,
+ Interval: ULONG,
+}}
+pub type PTRACE_PROFILE_INTERVAL = *mut TRACE_PROFILE_INTERVAL;
+STRUCT!{struct TRACE_VERSION_INFO {
+ EtwTraceProcessingVersion: UINT,
+ Reserved: UINT,
+}}
+pub type PTRACE_VERSION_INFO = *mut TRACE_VERSION_INFO;
+STRUCT!{struct TRACE_PERIODIC_CAPTURE_STATE_INFO {
+ CaptureStateFrequencyInSeconds: ULONG,
+ ProviderCount: USHORT,
+ Reserved: USHORT,
+}}
+pub type PTRACE_PERIODIC_CAPTURE_STATE_INFO = *mut TRACE_PERIODIC_CAPTURE_STATE_INFO;
+extern "system" {
+ pub fn TraceSetInformation(
+ SessionHandle: TRACEHANDLE,
+ InformationClass: TRACE_INFO_CLASS,
+ TraceInformation: PVOID,
+ InformationLength: ULONG,
+ ) -> ULONG;
+ pub fn TraceQueryInformation(
+ SessionHandle: TRACEHANDLE,
+ InformationClass: TRACE_QUERY_INFO_CLASS,
+ TraceInformation: PVOID,
+ InformationLength: ULONG,
+ ReturnLength: PULONG,
+ ) -> ULONG;
+ pub fn CreateTraceInstanceId(
+ RegHandle: HANDLE,
+ pInstInfo: PEVENT_INSTANCE_INFO,
+ ) -> ULONG;
+ pub fn TraceEvent(
+ SessionHandle: TRACEHANDLE,
+ EventTrace: PEVENT_TRACE_HEADER,
+ ) -> ULONG;
+ pub fn TraceEventInstance(
+ SessionHandle: TRACEHANDLE,
+ EventTrace: PEVENT_TRACE_HEADER,
+ pInstInfo: PEVENT_INSTANCE_INFO,
+ pParentInstInfo: PEVENT_INSTANCE_INFO,
+ ) -> ULONG;
+ pub fn RegisterTraceGuidsW(
+ RequestAddress: WMIDPREQUEST,
+ RequestContext: PVOID,
+ ControlGuid: LPCGUID,
+ GuidCount: ULONG,
+ TraceGuidReg: PTRACE_GUID_REGISTRATION,
+ MofImagePath: LPCWSTR,
+ MofResourceName: LPCWSTR,
+ RegistrationHandle: PTRACEHANDLE,
+ ) -> ULONG;
+ pub fn RegisterTraceGuidsA(
+ RequestAddress: WMIDPREQUEST,
+ RequestContext: PVOID,
+ ControlGuid: LPCGUID,
+ GuidCount: ULONG,
+ TraceGuidReg: PTRACE_GUID_REGISTRATION,
+ MofImagePath: LPCSTR,
+ MofResourceName: LPCSTR,
+ RegistrationHandle: PTRACEHANDLE,
+ ) -> ULONG;
+ pub fn EnumerateTraceGuids(
+ GuidPropertiesArray: *mut PTRACE_GUID_PROPERTIES,
+ PropertyArrayCount: ULONG,
+ GuidCount: PULONG,
+ ) -> ULONG;
+ pub fn UnregisterTraceGuids(
+ RegistrationHandle: TRACEHANDLE,
+ ) -> ULONG;
+ pub fn GetTraceLoggerHandle(
+ Buffer: PVOID,
+ ) -> TRACEHANDLE;
+ pub fn GetTraceEnableLevel(
+ SessionHandle: TRACEHANDLE,
+ ) -> UCHAR;
+ pub fn GetTraceEnableFlags(
+ SessionHandle: TRACEHANDLE,
+ ) -> ULONG;
+ pub fn OpenTraceW(
+ Logfile: PEVENT_TRACE_LOGFILEW,
+ ) -> TRACEHANDLE;
+ pub fn ProcessTrace(
+ HandleArray: PTRACEHANDLE,
+ HandleCount: ULONG,
+ StartTime: LPFILETIME,
+ EndTime: LPFILETIME,
+ ) -> ULONG;
+ pub fn CloseTrace(
+ TraceHandle: TRACEHANDLE,
+ ) -> ULONG;
+}
+ENUM!{enum ETW_PROCESS_HANDLE_INFO_TYPE {
+ EtwQueryPartitionInformation = 1,
+ EtwQueryProcessHandleInfoMax,
+}}
+STRUCT!{struct ETW_TRACE_PARTITION_INFORMATION {
+ PartitionId: GUID,
+ ParentId: GUID,
+ Reserved: ULONG64,
+ PartitionType: ULONG,
+}}
+pub type PETW_TRACE_PARTITION_INFORMATION = *mut ETW_TRACE_PARTITION_INFORMATION;
+extern "system" {
+ pub fn QueryTraceProcessingHandle(
+ ProcessingHandle: TRACEHANDLE,
+ InformationClass: ETW_PROCESS_HANDLE_INFO_TYPE,
+ InBuffer: PVOID,
+ InBufferSize: ULONG,
+ OutBuffer: PVOID,
+ OutBufferSize: ULONG,
+ ReturnLength: PULONG,
+ ) -> ULONG;
+ pub fn OpenTraceA(
+ Logfile: PEVENT_TRACE_LOGFILEA,
+ ) -> TRACEHANDLE;
+ pub fn SetTraceCallback(
+ pGuid: LPCGUID,
+ EventCallback: PEVENT_CALLBACK,
+ ) -> ULONG;
+ pub fn RemoveTraceCallback(
+ pGuid: LPCGUID,
+ ) -> ULONG;
+}
+extern "C" {
+ pub fn TraceMessage(
+ SessionHandle: TRACEHANDLE,
+ MessageFlags: ULONG,
+ MessageGuid: LPGUID,
+ MessageNumber: USHORT,
+ ...
+ ) -> ULONG;
+ pub fn TraceMessageVa(
+ SessionHandle: TRACEHANDLE,
+ MessageFlags: ULONG,
+ MessageGuid: LPGUID,
+ MessageNumber: USHORT,
+ MessageArgList: va_list,
+ );
+}
+pub const INVALID_PROCESSTRACE_HANDLE: TRACEHANDLE = INVALID_HANDLE_VALUE as TRACEHANDLE;
diff --git a/third_party/rust/chromium_crates_io/vendor/winapi-0.3.9/src/shared/guiddef.rs b/third_party/rust/chromium_crates_io/vendor/winapi-0.3.9/src/shared/guiddef.rs
new file mode 100644
index 000000000000..dcd39dcc4409
--- /dev/null
+++ b/third_party/rust/chromium_crates_io/vendor/winapi-0.3.9/src/shared/guiddef.rs
@@ -0,0 +1,36 @@
+// Licensed under the Apache License, Version 2.0
+// or the MIT license
+// , at your option.
+// All files in the project carrying such notice may not be copied, modified, or distributed
+// except according to those terms.
+//! GUID definition
+use ctypes::{c_uchar, c_ulong, c_ushort};
+STRUCT!{#[debug] struct GUID {
+ Data1: c_ulong,
+ Data2: c_ushort,
+ Data3: c_ushort,
+ Data4: [c_uchar; 8],
+}}
+pub type LPGUID = *mut GUID;
+pub type LPCGUID = *const GUID;
+pub type IID = GUID;
+pub type LPIID = *mut IID;
+pub use self::IsEqualGUID as IsEqualIID;
+pub type CLSID = GUID;
+pub type LPCLSID = *mut CLSID;
+pub use self::IsEqualGUID as IsEqualCLSID;
+pub type FMTID = GUID;
+pub type LPFMTID = *mut FMTID;
+pub use self::IsEqualGUID as IsEqualFMTID;
+pub type REFGUID = *const GUID;
+pub type REFIID = *const IID;
+pub type REFCLSID = *const IID;
+pub type REFFMTID = *const IID;
+DEFINE_GUID!{IID_NULL,
+ 0x00000000, 0x0000, 0x0000, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+#[inline]
+pub fn IsEqualGUID(g1: &GUID, g2: &GUID) -> bool {
+ let a = unsafe { &*(g1 as *const _ as *const [u32; 4]) };
+ let b = unsafe { &*(g2 as *const _ as *const [u32; 4]) };
+ a[0] == b[0] && a[1] == b[1] && a[2] == b[2] && a[3] == b[3]
+}
diff --git a/third_party/rust/chromium_crates_io/vendor/winapi-0.3.9/src/shared/hidclass.rs b/third_party/rust/chromium_crates_io/vendor/winapi-0.3.9/src/shared/hidclass.rs
new file mode 100644
index 000000000000..c65c14faf688
--- /dev/null
+++ b/third_party/rust/chromium_crates_io/vendor/winapi-0.3.9/src/shared/hidclass.rs
@@ -0,0 +1,68 @@
+// Licensed under the Apache License, Version 2.0
+// or the MIT license
+// , at your option.
+// All files in the project carrying such notice may not be copied, modified, or distributed
+// except according to those terms.
+use shared::guiddef::GUID;
+use shared::minwindef::{DWORD, PUCHAR, UCHAR, ULONG, USHORT};
+use um::winioctl::{
+ FILE_ANY_ACCESS, FILE_DEVICE_KEYBOARD, METHOD_BUFFERED, METHOD_IN_DIRECT, METHOD_NEITHER,
+ METHOD_OUT_DIRECT,
+};
+use um::winnt::BOOLEAN;
+DEFINE_GUID!{GUID_DEVINTERFACE_HID,
+ 0x4D1E55B2, 0xF16F, 0x11CF, 0x88, 0xCB, 0x00, 0x11, 0x11, 0x00, 0x00, 0x30}
+pub const GUID_CLASS_INPUT: GUID = GUID_DEVINTERFACE_HID;
+DEFINE_GUID!{GUID_HID_INTERFACE_NOTIFY,
+ 0x2c4e2e88, 0x25e6, 0x4c33, 0x88, 0x2f, 0x3d, 0x82, 0xe6, 0x07, 0x36, 0x81}
+DEFINE_GUID!{GUID_HID_INTERFACE_HIDPARSE,
+ 0xf5c315a5, 0x69ac, 0x4bc2, 0x92, 0x79, 0xd0, 0xb6, 0x45, 0x76, 0xf4, 0x4b}
+// FIXME devpropkey stuff
+pub const HID_REVISION: DWORD = 0x00000001;
+pub const IOCTL_HID_GET_DRIVER_CONFIG: DWORD = HID_BUFFER_CTL_CODE!(100);
+pub const IOCTL_HID_SET_DRIVER_CONFIG: DWORD = HID_BUFFER_CTL_CODE!(101);
+pub const IOCTL_HID_GET_POLL_FREQUENCY_MSEC: DWORD = HID_BUFFER_CTL_CODE!(102);
+pub const IOCTL_HID_SET_POLL_FREQUENCY_MSEC: DWORD = HID_BUFFER_CTL_CODE!(103);
+pub const IOCTL_GET_NUM_DEVICE_INPUT_BUFFERS: DWORD = HID_BUFFER_CTL_CODE!(104);
+pub const IOCTL_SET_NUM_DEVICE_INPUT_BUFFERS: DWORD = HID_BUFFER_CTL_CODE!(105);
+pub const IOCTL_HID_GET_COLLECTION_INFORMATION: DWORD = HID_BUFFER_CTL_CODE!(106);
+pub const IOCTL_HID_ENABLE_WAKE_ON_SX: DWORD = HID_BUFFER_CTL_CODE!(107);
+pub const IOCTL_HID_SET_S0_IDLE_TIMEOUT: DWORD = HID_BUFFER_CTL_CODE!(108);
+pub const IOCTL_HID_GET_COLLECTION_DESCRIPTOR: DWORD = HID_CTL_CODE!(100);
+pub const IOCTL_HID_FLUSH_QUEUE: DWORD = HID_CTL_CODE!(101);
+pub const IOCTL_HID_SET_FEATURE: DWORD = HID_IN_CTL_CODE!(100);
+pub const IOCTL_HID_SET_OUTPUT_REPORT: DWORD = HID_IN_CTL_CODE!(101);
+pub const IOCTL_HID_GET_FEATURE: DWORD = HID_OUT_CTL_CODE!(100);
+pub const IOCTL_GET_PHYSICAL_DESCRIPTOR: DWORD = HID_OUT_CTL_CODE!(102);
+pub const IOCTL_HID_GET_HARDWARE_ID: DWORD = HID_OUT_CTL_CODE!(103);
+pub const IOCTL_HID_GET_INPUT_REPORT: DWORD = HID_OUT_CTL_CODE!(104);
+pub const IOCTL_HID_GET_OUTPUT_REPORT: DWORD = HID_OUT_CTL_CODE!(105);
+pub const IOCTL_HID_GET_MANUFACTURER_STRING: DWORD = HID_OUT_CTL_CODE!(110);
+pub const IOCTL_HID_GET_PRODUCT_STRING: DWORD = HID_OUT_CTL_CODE!(111);
+pub const IOCTL_HID_GET_SERIALNUMBER_STRING: DWORD = HID_OUT_CTL_CODE!(112);
+pub const IOCTL_HID_GET_INDEXED_STRING: DWORD = HID_OUT_CTL_CODE!(120);
+pub const IOCTL_HID_GET_MS_GENRE_DESCRIPTOR: DWORD = HID_OUT_CTL_CODE!(121);
+pub const IOCTL_HID_ENABLE_SECURE_READ: DWORD = HID_CTL_CODE!(130);
+pub const IOCTL_HID_DISABLE_SECURE_READ: DWORD = HID_CTL_CODE!(131);
+pub const IOCTL_HID_DEVICERESET_NOTIFICATION: DWORD = HID_CTL_CODE!(140);
+STRUCT!{struct HID_XFER_PACKET {
+ reportBuffer: PUCHAR,
+ reportBufferLen: ULONG,
+ reportId: UCHAR,
+}}
+pub type PHID_XFER_PACKET = *mut HID_XFER_PACKET;
+//FIXME Stuff for NT_INCLUDED
+STRUCT!{struct HID_COLLECTION_INFORMATION {
+ DescriptorSize: ULONG,
+ Polled: BOOLEAN,
+ Reserved1: [UCHAR; 1],
+ VendorID: USHORT,
+ ProductID: USHORT,
+ VersionNumber: USHORT,
+}}
+pub type PHID_COLLECTION_INFORMATION = *mut HID_COLLECTION_INFORMATION;
+STRUCT!{struct HID_DRIVER_CONFIG {
+ Size: ULONG,
+ RingBufferSize: ULONG,
+}}
+pub type PHID_DRIVER_CONFIG = *mut HID_DRIVER_CONFIG;
diff --git a/third_party/rust/chromium_crates_io/vendor/winapi-0.3.9/src/shared/hidpi.rs b/third_party/rust/chromium_crates_io/vendor/winapi-0.3.9/src/shared/hidpi.rs
new file mode 100644
index 000000000000..ea022925361f
--- /dev/null
+++ b/third_party/rust/chromium_crates_io/vendor/winapi-0.3.9/src/shared/hidpi.rs
@@ -0,0 +1,393 @@
+// Licensed under the Apache License, Version 2.0
+// or the MIT license
+// , at your option.
+// All files in the project carrying such notice may not be copied, modified, or distributed
+// except according to those terms.
+use shared::hidusage::{PUSAGE, USAGE};
+use shared::minwindef::{PUCHAR, PULONG, PUSHORT, UCHAR, ULONG, USHORT};
+use shared::ntdef::NTSTATUS;
+use shared::ntstatus::FACILITY_HID_ERROR_CODE;
+use um::winnt::{BOOLEAN, LONG, PCHAR, PLONG, PVOID};
+pub const HIDP_LINK_COLLECTION_ROOT: USHORT = -1i16 as u16;
+pub const HIDP_LINK_COLLECTION_UNSPECIFIED: USHORT = 0;
+ENUM!{enum HIDP_REPORT_TYPE {
+ HidP_Input,
+ HidP_Output,
+ HidP_Feature,
+}}
+STRUCT!{struct USAGE_AND_PAGE {
+ Usage: USAGE,
+ UsagePage: USAGE,
+}}
+pub type PUSAGE_AND_PAGE = *mut USAGE_AND_PAGE;
+// HidP_IsSameUsageAndPage
+STRUCT!{struct HIDP_CAPS_Range {
+ UsageMin: USAGE,
+ UsageMax: USAGE,
+ StringMin: USHORT,
+ StringMax: USHORT,
+ DesignatorMin: USHORT,
+ DesignatorMax: USHORT,
+ DataIndexMin: USHORT,
+ DataIndexMax: USHORT,
+}}
+STRUCT!{struct HIDP_CAPS_NotRange {
+ Usage: USAGE,
+ Reserved1: USAGE,
+ StringIndex: USHORT,
+ Reserved2: USHORT,
+ DesignatorIndex: USHORT,
+ Reserved3: USHORT,
+ DataIndex: USHORT,
+ Reserved4: USHORT,
+}}
+UNION!{union HIDP_CAPS_u {
+ [u16; 8],
+ Range Range_mut: HIDP_CAPS_Range,
+ NotRange NotRange_mut: HIDP_CAPS_NotRange,
+}}
+STRUCT!{struct HIDP_BUTTON_CAPS {
+ UsagePage: USAGE,
+ ReportID: UCHAR,
+ IsAlias: BOOLEAN,
+ BitField: USHORT,
+ LinkCollection: USHORT,
+ LinkUsage: USAGE,
+ LinkUsagePage: USAGE,
+ IsRange: BOOLEAN,
+ IsStringRange: BOOLEAN,
+ IsDesignatorRange: BOOLEAN,
+ IsAbsolute: BOOLEAN,
+ Reserved: [ULONG; 10],
+ u: HIDP_CAPS_u,
+}}
+pub type PHIDP_BUTTON_CAPS = *mut HIDP_BUTTON_CAPS;
+STRUCT!{struct HIDP_VALUE_CAPS {
+ UsagePage: USAGE,
+ ReportID: UCHAR,
+ IsAlias: BOOLEAN,
+ BitField: USHORT,
+ LinkCollection: USHORT,
+ LinkUsage: USAGE,
+ LinkUsagePage: USAGE,
+ IsRange: BOOLEAN,
+ IsStringRange: BOOLEAN,
+ IsDesignatorRange: BOOLEAN,
+ IsAbsolute: BOOLEAN,
+ HasNull: BOOLEAN,
+ Reserved: UCHAR,
+ BitSize: USHORT,
+ ReportCount: USHORT,
+ Reserved2: [USHORT; 5],
+ UnitsExp: ULONG,
+ Units: ULONG,
+ LogicalMin: LONG,
+ LogicalMax: LONG,
+ PhysicalMin: LONG,
+ PhysicalMax: LONG,
+ u: HIDP_CAPS_u,
+}}
+pub type PHIDP_VALUE_CAPS = *mut HIDP_VALUE_CAPS;
+STRUCT!{struct HIDP_LINK_COLLECTION_NODE {
+ LinkUsage: USAGE,
+ LinkUsagePage: USAGE,
+ Parent: USHORT,
+ NumberOfChildren: USHORT,
+ NextSibling: USHORT,
+ FirstChild: USHORT,
+ bit_fields: ULONG,
+ UserContext: PVOID,
+}}
+BITFIELD!{HIDP_LINK_COLLECTION_NODE bit_fields: ULONG [
+ CollectionType set_CollectionType[0..8],
+ IsAlias set_IsAlias[8..9],
+]}
+pub type PHIDP_LINK_COLLECTION_NODE = *mut HIDP_LINK_COLLECTION_NODE;
+pub type PHIDP_REPORT_DESCRIPTOR = PUCHAR;
+pub enum HIDP_PREPARSED_DATA {}
+pub type PHIDP_PREPARSED_DATA = *mut HIDP_PREPARSED_DATA;
+STRUCT!{struct HIDP_CAPS {
+ Usage: USAGE,
+ UsagePage: USAGE,
+ InputReportByteLength: USHORT,
+ OutputReportByteLength: USHORT,
+ FeatureReportByteLength: USHORT,
+ Reserved: [USHORT; 17],
+ NumberLinkCollectionNodes: USHORT,
+ NumberInputButtonCaps: USHORT,
+ NumberInputValueCaps: USHORT,
+ NumberInputDataIndices: USHORT,
+ NumberOutputButtonCaps: USHORT,
+ NumberOutputValueCaps: USHORT,
+ NumberOutputDataIndices: USHORT,
+ NumberFeatureButtonCaps: USHORT,
+ NumberFeatureValueCaps: USHORT,
+ NumberFeatureDataIndices: USHORT,
+}}
+pub type PHIDP_CAPS = *mut HIDP_CAPS;
+UNION!{union HIDP_DATA_u {
+ [u32; 1],
+ RawValue RawValue_mut: ULONG,
+ On On_mut: BOOLEAN,
+}}
+STRUCT!{struct HIDP_DATA {
+ DataIndex: USHORT,
+ Reserved: USHORT,
+ u: HIDP_DATA_u,
+}}
+pub type PHIDP_DATA = *mut HIDP_DATA;
+STRUCT!{struct HIDP_UNKNOWN_TOKEN {
+ Token: UCHAR,
+ Reserved: [UCHAR; 3],
+ BitField: ULONG,
+}}
+pub type PHIDP_UNKNOWN_TOKEN = *mut HIDP_UNKNOWN_TOKEN;
+STRUCT!{struct HIDP_EXTENDED_ATTRIBUTES {
+ NumGlobalUnknowns: UCHAR,
+ Reserved: [UCHAR; 3],
+ GlobalUnknowns: PHIDP_UNKNOWN_TOKEN,
+ Data: [ULONG; 1],
+}}
+pub type PHIDP_EXTENDED_ATTRIBUTES = *mut HIDP_EXTENDED_ATTRIBUTES;
+extern "system" {
+ pub fn HidP_GetCaps(
+ PreparsedData: PHIDP_PREPARSED_DATA,
+ Capabilities: PHIDP_CAPS,
+ ) -> NTSTATUS;
+ pub fn HidP_GetLinkCollectionNodes(
+ LinkCollectionNodes: PHIDP_LINK_COLLECTION_NODE,
+ LinkCollectionNodesLength: PULONG,
+ PreparsedData: PHIDP_PREPARSED_DATA,
+ ) -> NTSTATUS;
+ pub fn HidP_GetSpecificButtonCaps(
+ ReportType: HIDP_REPORT_TYPE,
+ UsagePage: USAGE,
+ LinkCollection: USHORT,
+ Usage: USAGE,
+ ButtonCaps: PHIDP_BUTTON_CAPS,
+ ButtonCapsLength: PUSHORT,
+ PreparsedData: PHIDP_PREPARSED_DATA,
+ ) -> NTSTATUS;
+ pub fn HidP_GetButtonCaps(
+ ReportType: HIDP_REPORT_TYPE,
+ ButtonCaps: PHIDP_BUTTON_CAPS,
+ ButtonCapsLength: PUSHORT,
+ PreparsedData: PHIDP_PREPARSED_DATA,
+ ) -> NTSTATUS;
+ pub fn HidP_GetSpecificValueCaps(
+ ReportType: HIDP_REPORT_TYPE,
+ UsagePage: USAGE,
+ LinkCollection: USHORT,
+ Usage: USAGE,
+ ValueCaps: PHIDP_VALUE_CAPS,
+ ValueCapsLength: PUSHORT,
+ PreparsedData: PHIDP_PREPARSED_DATA,
+ ) -> NTSTATUS;
+ pub fn HidP_GetValueCaps(
+ ReportType: HIDP_REPORT_TYPE,
+ ValueCaps: PHIDP_VALUE_CAPS,
+ ValueCapsLength: PUSHORT,
+ PreparsedData: PHIDP_PREPARSED_DATA,
+ ) -> NTSTATUS;
+ pub fn HidP_GetExtendedAttributes(
+ ReportType: HIDP_REPORT_TYPE,
+ DataIndex: USHORT,
+ PreparsedData: PHIDP_PREPARSED_DATA,
+ Attributes: PHIDP_EXTENDED_ATTRIBUTES,
+ LengthAttributes: PULONG,
+ ) -> NTSTATUS;
+ pub fn HidP_InitializeReportForID(
+ ReportType: HIDP_REPORT_TYPE,
+ ReportID: UCHAR,
+ PreparsedData: PHIDP_PREPARSED_DATA,
+ Report: PCHAR,
+ ReportLength: ULONG,
+ ) -> NTSTATUS;
+ pub fn HidP_SetData(
+ ReportType: HIDP_REPORT_TYPE,
+ DataList: PHIDP_DATA,
+ DataLength: PULONG,
+ PreparsedData: PHIDP_PREPARSED_DATA,
+ Report: PCHAR,
+ ReportLength: ULONG,
+ ) -> NTSTATUS;
+ pub fn HidP_GetData(
+ ReportType: HIDP_REPORT_TYPE,
+ DataList: PHIDP_DATA,
+ DataLength: PULONG,
+ PreparsedData: PHIDP_PREPARSED_DATA,
+ Report: PCHAR,
+ ReportLength: ULONG,
+ ) -> NTSTATUS;
+ pub fn HidP_MaxDataListLength(
+ ReportType: HIDP_REPORT_TYPE,
+ PreparsedData: PHIDP_PREPARSED_DATA,
+ ) -> ULONG;
+ pub fn HidP_SetUsages(
+ ReportType: HIDP_REPORT_TYPE,
+ UsagePage: USAGE,
+ LinkCollection: USHORT,
+ UsageList: PUSAGE,
+ UsageLength: PULONG,
+ PreparsedData: PHIDP_PREPARSED_DATA,
+ Report: PCHAR,
+ ReportLength: ULONG,
+ ) -> NTSTATUS;
+ pub fn HidP_UnsetUsages(
+ ReportType: HIDP_REPORT_TYPE,
+ UsagePage: USAGE,
+ LinkCollection: USHORT,
+ UsageList: PUSAGE,
+ UsageLength: PULONG,
+ PreparsedData: PHIDP_PREPARSED_DATA,
+ Report: PCHAR,
+ ReportLength: ULONG,
+ ) -> NTSTATUS;
+ pub fn HidP_GetUsages(
+ ReportType: HIDP_REPORT_TYPE,
+ UsagePage: USAGE,
+ LinkCollection: USHORT,
+ UsageList: PUSAGE,
+ UsageLength: PULONG,
+ PreparsedData: PHIDP_PREPARSED_DATA,
+ Report: PCHAR,
+ ReportLength: ULONG,
+ ) -> NTSTATUS;
+ pub fn HidP_GetUsagesEx(
+ ReportType: HIDP_REPORT_TYPE,
+ LinkCollection: USHORT,
+ ButtonList: PUSAGE_AND_PAGE,
+ UsageLength: *mut ULONG,
+ PreparsedData: PHIDP_PREPARSED_DATA,
+ Report: PCHAR,
+ ReportLength: ULONG,
+ ) -> NTSTATUS;
+ pub fn HidP_MaxUsageListLength(
+ ReportType: HIDP_REPORT_TYPE,
+ UsagePage: USAGE,
+ PreparsedData: PHIDP_PREPARSED_DATA,
+ ) -> ULONG;
+ pub fn HidP_SetUsageValue(
+ ReportType: HIDP_REPORT_TYPE,
+ UsagePage: USAGE,
+ LinkCollection: USHORT,
+ Usage: USAGE,
+ UsageValue: ULONG,
+ PreparsedData: PHIDP_PREPARSED_DATA,
+ Report: PCHAR,
+ ReportLength: ULONG,
+ ) -> NTSTATUS;
+ pub fn HidP_SetScaledUsageValue(
+ ReportType: HIDP_REPORT_TYPE,
+ UsagePage: USAGE,
+ LinkCollection: USHORT,
+ Usage: USAGE,
+ UsageValue: LONG,
+ PreparsedData: PHIDP_PREPARSED_DATA,
+ Report: PCHAR,
+ ReportLength: ULONG,
+ ) -> NTSTATUS;
+ pub fn HidP_SetUsageValueArray(
+ ReportType: HIDP_REPORT_TYPE,
+ UsagePage: USAGE,
+ LinkCollection: USHORT,
+ Usage: USAGE,
+ UsageValue: PCHAR,
+ UsageValueByteLength: USHORT,
+ PreparsedData: PHIDP_PREPARSED_DATA,
+ Report: PCHAR,
+ ReportLength: ULONG,
+ ) -> NTSTATUS;
+ pub fn HidP_GetUsageValue(
+ ReportType: HIDP_REPORT_TYPE,
+ UsagePage: USAGE,
+ LinkCollection: USHORT,
+ Usage: USAGE,
+ UsageValue: PULONG,
+ PreparsedData: PHIDP_PREPARSED_DATA,
+ Report: PCHAR,
+ ReportLength: ULONG,
+ ) -> NTSTATUS;
+ pub fn HidP_GetScaledUsageValue(
+ ReportType: HIDP_REPORT_TYPE,
+ UsagePage: USAGE,
+ LinkCollection: USHORT,
+ Usage: USAGE,
+ UsageValue: PLONG,
+ PreparsedData: PHIDP_PREPARSED_DATA,
+ Report: PCHAR,
+ ReportLength: ULONG,
+ ) -> NTSTATUS;
+ pub fn HidP_GetUsageValueArray(
+ ReportType: HIDP_REPORT_TYPE,
+ UsagePage: USAGE,
+ LinkCollection: USHORT,
+ Usage: USAGE,
+ UsageValue: PCHAR,
+ UsageValueByteLength: USHORT,
+ PreparsedData: PHIDP_PREPARSED_DATA,
+ Report: PCHAR,
+ ReportLength: ULONG,
+ ) -> NTSTATUS;
+ pub fn HidP_UsageListDifference(
+ PreviousUsageList: PUSAGE,
+ CurrentUsageList: PUSAGE,
+ BreakUsageList: PUSAGE,
+ MakeUsageList: PUSAGE,
+ UsageListLength: ULONG,
+ ) -> NTSTATUS;
+ pub fn HidP_TranslateUsagesToI8042ScanCodes(
+ ChangedUsageList: PUSAGE,
+ UsageListLength: ULONG,
+ KeyAction: HIDP_KEYBOARD_DIRECTION,
+ ModifierState: PHIDP_KEYBOARD_MODIFIER_STATE,
+ InsertCodesProcedure: PHIDP_INSERT_SCANCODES,
+ InsertCodesContext: PVOID,
+ ) -> NTSTATUS;
+}
+ENUM!{enum HIDP_KEYBOARD_DIRECTION {
+ HidP_Keyboard_Break,
+ HidP_Keyboard_Make,
+}}
+STRUCT!{struct HIDP_KEYBOARD_MODIFIER_STATE {
+ ul: ULONG,
+}}
+BITFIELD!{HIDP_KEYBOARD_MODIFIER_STATE ul: ULONG [
+ LeftControl set_LeftControl[0..1],
+ LeftShift set_LeftShift[1..2],
+ LeftAlt set_LeftAlt[2..3],
+ LeftGUI set_LeftGUI[3..4],
+ RightControl set_RightControl[4..5],
+ RightShift set_RightShift[5..6],
+ RightAlt set_RightAlt[6..7],
+ RigthGUI set_RigthGUI[7..8],
+ CapsLock set_CapsLock[8..9],
+ ScollLock set_ScollLock[9..10],
+ NumLock set_NumLock[10..11],
+]}
+pub type PHIDP_KEYBOARD_MODIFIER_STATE = *mut HIDP_KEYBOARD_MODIFIER_STATE;
+FN!{stdcall PHIDP_INSERT_SCANCODES(
+ Context: PVOID,
+ NewScanCodes: PCHAR,
+ Length: ULONG,
+) -> BOOLEAN}
+pub const HIDP_STATUS_SUCCESS: NTSTATUS = HIDP_ERROR_CODES!(0x0, 0);
+pub const HIDP_STATUS_NULL: NTSTATUS = HIDP_ERROR_CODES!(0x8, 1);
+pub const HIDP_STATUS_INVALID_PREPARSED_DATA: NTSTATUS = HIDP_ERROR_CODES!(0xC, 1);
+pub const HIDP_STATUS_INVALID_REPORT_TYPE: NTSTATUS = HIDP_ERROR_CODES!(0xC, 2);
+pub const HIDP_STATUS_INVALID_REPORT_LENGTH: NTSTATUS = HIDP_ERROR_CODES!(0xC, 3);
+pub const HIDP_STATUS_USAGE_NOT_FOUND: NTSTATUS = HIDP_ERROR_CODES!(0xC, 4);
+pub const HIDP_STATUS_VALUE_OUT_OF_RANGE: NTSTATUS = HIDP_ERROR_CODES!(0xC, 5);
+pub const HIDP_STATUS_BAD_LOG_PHY_VALUES: NTSTATUS = HIDP_ERROR_CODES!(0xC, 6);
+pub const HIDP_STATUS_BUFFER_TOO_SMALL: NTSTATUS = HIDP_ERROR_CODES!(0xC, 7);
+pub const HIDP_STATUS_INTERNAL_ERROR: NTSTATUS = HIDP_ERROR_CODES!(0xC, 8);
+pub const HIDP_STATUS_I8042_TRANS_UNKNOWN: NTSTATUS = HIDP_ERROR_CODES!(0xC, 9);
+pub const HIDP_STATUS_INCOMPATIBLE_REPORT_ID: NTSTATUS = HIDP_ERROR_CODES!(0xC, 0xA);
+pub const HIDP_STATUS_NOT_VALUE_ARRAY: NTSTATUS = HIDP_ERROR_CODES!(0xC, 0xB);
+pub const HIDP_STATUS_IS_VALUE_ARRAY: NTSTATUS = HIDP_ERROR_CODES!(0xC, 0xC);
+pub const HIDP_STATUS_DATA_INDEX_NOT_FOUND: NTSTATUS = HIDP_ERROR_CODES!(0xC, 0xD);
+pub const HIDP_STATUS_DATA_INDEX_OUT_OF_RANGE: NTSTATUS = HIDP_ERROR_CODES!(0xC, 0xE);
+pub const HIDP_STATUS_BUTTON_NOT_PRESSED: NTSTATUS = HIDP_ERROR_CODES!(0xC, 0xF);
+pub const HIDP_STATUS_REPORT_DOES_NOT_EXIST: NTSTATUS = HIDP_ERROR_CODES!(0xC, 0x10);
+pub const HIDP_STATUS_NOT_IMPLEMENTED: NTSTATUS = HIDP_ERROR_CODES!(0xC, 0x20);
+pub const HIDP_STATUS_I8242_TRANS_UNKNOWN: NTSTATUS = HIDP_STATUS_I8042_TRANS_UNKNOWN;
diff --git a/third_party/rust/chromium_crates_io/vendor/winapi-0.3.9/src/shared/hidsdi.rs b/third_party/rust/chromium_crates_io/vendor/winapi-0.3.9/src/shared/hidsdi.rs
new file mode 100644
index 000000000000..ebdd3ed4fbd6
--- /dev/null
+++ b/third_party/rust/chromium_crates_io/vendor/winapi-0.3.9/src/shared/hidsdi.rs
@@ -0,0 +1,110 @@
+// Licensed under the Apache License, Version 2.0
+// or the MIT license
+// , at your option.
+// All files in the project carrying such notice may not be copied, modified, or distributed
+// except according to those terms.
+use shared::guiddef::LPGUID;
+use shared::hidpi::PHIDP_PREPARSED_DATA;
+use shared::minwindef::{PULONG, ULONG, USHORT};
+use um::winnt::{BOOLEAN, HANDLE, PVOID};
+STRUCT!{struct HIDD_CONFIGURATION {
+ cookie: PVOID,
+ size: ULONG,
+ RingBufferSize: ULONG,
+}}
+pub type PHIDD_CONFIGURATION = *mut HIDD_CONFIGURATION;
+STRUCT!{struct HIDD_ATTRIBUTES {
+ Size: ULONG,
+ VendorID: USHORT,
+ ProductID: USHORT,
+ VersionNumber: USHORT,
+}}
+pub type PHIDD_ATTRIBUTES = *mut HIDD_ATTRIBUTES;
+extern "system" {
+ pub fn HidD_GetAttributes(
+ HidDeviceObject: HANDLE,
+ Attributes: PHIDD_ATTRIBUTES,
+ ) -> BOOLEAN;
+ pub fn HidD_GetHidGuid(
+ HidGuid: LPGUID,
+ );
+ pub fn HidD_GetPreparsedData(
+ HidDeviceObject: HANDLE,
+ PreparsedData: *mut PHIDP_PREPARSED_DATA,
+ ) -> BOOLEAN;
+ pub fn HidD_FreePreparsedData(
+ PreparsedData: PHIDP_PREPARSED_DATA,
+ ) -> BOOLEAN;
+ pub fn HidD_FlushQueue(
+ HidDeviceObject: HANDLE,
+ ) -> BOOLEAN;
+ pub fn HidD_GetConfiguration(
+ HidDeviceObject: HANDLE,
+ Configuration: PHIDD_CONFIGURATION,
+ ConfigurationLength: ULONG,
+ ) -> BOOLEAN;
+ pub fn HidD_SetConfiguration(
+ HidDeviceObject: HANDLE,
+ Configuration: PHIDD_CONFIGURATION,
+ ConfigurationLength: ULONG,
+ ) -> BOOLEAN;
+ pub fn HidD_GetFeature(
+ HidDeviceObject: HANDLE,
+ ReportBuffer: PVOID,
+ ReportBufferLength: ULONG,
+ ) -> BOOLEAN;
+ pub fn HidD_SetFeature(
+ HidDeviceObject: HANDLE,
+ ReportBuffer: PVOID,
+ ReportBufferLength: ULONG,
+ ) -> BOOLEAN;
+ pub fn HidD_GetInputReport(
+ HidDeviceObject: HANDLE,
+ ReportBuffer: PVOID,
+ ReportBufferLength: ULONG,
+ ) -> BOOLEAN;
+ pub fn HidD_SetOutputReport(
+ HidDeviceObject: HANDLE,
+ ReportBuffer: PVOID,
+ ReportBufferLength: ULONG,
+ ) -> BOOLEAN;
+ pub fn HidD_GetNumInputBuffers(
+ HidDeviceObject: HANDLE,
+ NumberBuffers: PULONG,
+ ) -> BOOLEAN;
+ pub fn HidD_SetNumInputBuffers(
+ HidDeviceObject: HANDLE,
+ NumberBuffers: ULONG,
+ ) -> BOOLEAN;
+ pub fn HidD_GetPhysicalDescriptor(
+ HidDeviceObject: HANDLE,
+ Buffer: PVOID,
+ BufferLength: ULONG,
+ ) -> BOOLEAN;
+ pub fn HidD_GetManufacturerString(
+ HidDeviceObject: HANDLE,
+ Buffer: PVOID,
+ BufferLength: ULONG,
+ ) -> BOOLEAN;
+ pub fn HidD_GetProductString(
+ HidDeviceObject: HANDLE,
+ Buffer: PVOID,
+ BufferLength: ULONG,
+ ) -> BOOLEAN;
+ pub fn HidD_GetIndexedString(
+ HidDeviceObject: HANDLE,
+ StringIndex: ULONG,
+ Buffer: PVOID,
+ BufferLength: ULONG,
+ ) -> BOOLEAN;
+ pub fn HidD_GetSerialNumberString(
+ HidDeviceObject: HANDLE,
+ Buffer: PVOID,
+ BufferLength: ULONG,
+ ) -> BOOLEAN;
+ pub fn HidD_GetMsGenreDescriptor(
+ HidDeviceObject: HANDLE,
+ Buffer: PVOID,
+ BufferLength: ULONG,
+ ) -> BOOLEAN;
+}
diff --git a/third_party/rust/chromium_crates_io/vendor/winapi-0.3.9/src/shared/hidusage.rs b/third_party/rust/chromium_crates_io/vendor/winapi-0.3.9/src/shared/hidusage.rs
new file mode 100644
index 000000000000..a483bf27d979
--- /dev/null
+++ b/third_party/rust/chromium_crates_io/vendor/winapi-0.3.9/src/shared/hidusage.rs
@@ -0,0 +1,274 @@
+// Licensed under the Apache License, Version 2.0
+// or the MIT license
+// , at your option.
+// All files in the project carrying such notice may not be copied, modified, or distributed
+// except according to those terms.
+use shared::minwindef::USHORT;
+pub type USAGE = USHORT;
+pub type PUSAGE = *mut USAGE;
+pub const HID_USAGE_PAGE_UNDEFINED: USAGE = 0x00;
+pub const HID_USAGE_PAGE_GENERIC: USAGE = 0x01;
+pub const HID_USAGE_PAGE_SIMULATION: USAGE = 0x02;
+pub const HID_USAGE_PAGE_VR: USAGE = 0x03;
+pub const HID_USAGE_PAGE_SPORT: USAGE = 0x04;
+pub const HID_USAGE_PAGE_GAME: USAGE = 0x05;
+pub const HID_USAGE_PAGE_KEYBOARD: USAGE = 0x07;
+pub const HID_USAGE_PAGE_LED: USAGE = 0x08;
+pub const HID_USAGE_PAGE_BUTTON: USAGE = 0x09;
+pub const HID_USAGE_PAGE_ORDINAL: USAGE = 0x0A;
+pub const HID_USAGE_PAGE_TELEPHONY: USAGE = 0x0B;
+pub const HID_USAGE_PAGE_CONSUMER: USAGE = 0x0C;
+pub const HID_USAGE_PAGE_DIGITIZER: USAGE = 0x0D;
+pub const HID_USAGE_PAGE_UNICODE: USAGE = 0x10;
+pub const HID_USAGE_PAGE_ALPHANUMERIC: USAGE = 0x14;
+pub const HID_USAGE_PAGE_SENSOR: USAGE = 0x20;
+pub const HID_USAGE_PAGE_BARCODE_SCANNER: USAGE = 0x8C;
+pub const HID_USAGE_PAGE_WEIGHING_DEVICE: USAGE = 0x8D;
+pub const HID_USAGE_PAGE_MAGNETIC_STRIPE_READER: USAGE = 0x8E;
+pub const HID_USAGE_PAGE_CAMERA_CONTROL: USAGE = 0x90;
+pub const HID_USAGE_PAGE_MICROSOFT_BLUETOOTH_HANDSFREE: USAGE = 0xFFF3;
+pub const HID_USAGE_PAGE_VENDOR_DEFINED_BEGIN: USAGE = 0xFF00;
+pub const HID_USAGE_PAGE_VENDOR_DEFINED_END: USAGE = 0xFFFF;
+pub const HID_USAGE_GENERIC_POINTER: USAGE = 0x01;
+pub const HID_USAGE_GENERIC_MOUSE: USAGE = 0x02;
+pub const HID_USAGE_GENERIC_JOYSTICK: USAGE = 0x04;
+pub const HID_USAGE_GENERIC_GAMEPAD: USAGE = 0x05;
+pub const HID_USAGE_GENERIC_KEYBOARD: USAGE = 0x06;
+pub const HID_USAGE_GENERIC_KEYPAD: USAGE = 0x07;
+pub const HID_USAGE_GENERIC_PORTABLE_DEVICE_CONTROL: USAGE = 0x0D;
+pub const HID_USAGE_GENERIC_SYSTEM_CTL: USAGE = 0x80;
+pub const HID_USAGE_GENERIC_X: USAGE = 0x30;
+pub const HID_USAGE_GENERIC_Y: USAGE = 0x31;
+pub const HID_USAGE_GENERIC_Z: USAGE = 0x32;
+pub const HID_USAGE_GENERIC_RX: USAGE = 0x33;
+pub const HID_USAGE_GENERIC_RY: USAGE = 0x34;
+pub const HID_USAGE_GENERIC_RZ: USAGE = 0x35;
+pub const HID_USAGE_GENERIC_SLIDER: USAGE = 0x36;
+pub const HID_USAGE_GENERIC_DIAL: USAGE = 0x37;
+pub const HID_USAGE_GENERIC_WHEEL: USAGE = 0x38;
+pub const HID_USAGE_GENERIC_HATSWITCH: USAGE = 0x39;
+pub const HID_USAGE_GENERIC_COUNTED_BUFFER: USAGE = 0x3A;
+pub const HID_USAGE_GENERIC_BYTE_COUNT: USAGE = 0x3B;
+pub const HID_USAGE_GENERIC_MOTION_WAKEUP: USAGE = 0x3C;
+pub const HID_USAGE_GENERIC_VX: USAGE = 0x40;
+pub const HID_USAGE_GENERIC_VY: USAGE = 0x41;
+pub const HID_USAGE_GENERIC_VZ: USAGE = 0x42;
+pub const HID_USAGE_GENERIC_VBRX: USAGE = 0x43;
+pub const HID_USAGE_GENERIC_VBRY: USAGE = 0x44;
+pub const HID_USAGE_GENERIC_VBRZ: USAGE = 0x45;
+pub const HID_USAGE_GENERIC_VNO: USAGE = 0x46;
+pub const HID_USAGE_GENERIC_RESOLUTION_MULTIPLIER: USAGE = 0x48;
+pub const HID_USAGE_GENERIC_SYSCTL_POWER: USAGE = 0x81;
+pub const HID_USAGE_GENERIC_SYSCTL_SLEEP: USAGE = 0x82;
+pub const HID_USAGE_GENERIC_SYSCTL_WAKE: USAGE = 0x83;
+pub const HID_USAGE_GENERIC_SYSCTL_CONTEXT_MENU: USAGE = 0x84;
+pub const HID_USAGE_GENERIC_SYSCTL_MAIN_MENU: USAGE = 0x85;
+pub const HID_USAGE_GENERIC_SYSCTL_APP_MENU: USAGE = 0x86;
+pub const HID_USAGE_GENERIC_SYSCTL_HELP_MENU: USAGE = 0x87;
+pub const HID_USAGE_GENERIC_SYSCTL_MENU_EXIT: USAGE = 0x88;
+pub const HID_USAGE_GENERIC_SYSCTL_MENU_SELECT: USAGE = 0x89;
+pub const HID_USAGE_GENERIC_SYSCTL_MENU_RIGHT: USAGE = 0x8A;
+pub const HID_USAGE_GENERIC_SYSCTL_MENU_LEFT: USAGE = 0x8B;
+pub const HID_USAGE_GENERIC_SYSCTL_MENU_UP: USAGE = 0x8C;
+pub const HID_USAGE_GENERIC_SYSCTL_MENU_DOWN: USAGE = 0x8D;
+pub const HID_USAGE_GENERIC_SYSTEM_DISPLAY_ROTATION_LOCK_BUTTON: USAGE = 0xC9;
+pub const HID_USAGE_GENERIC_SYSTEM_DISPLAY_ROTATION_LOCK_SLIDER_SWITCH: USAGE = 0xCA;
+pub const HID_USAGE_GENERIC_CONTROL_ENABLE: USAGE = 0xCB;
+pub const HID_USAGE_SIMULATION_RUDDER: USAGE = 0xBA;
+pub const HID_USAGE_SIMULATION_THROTTLE: USAGE = 0xBB;
+pub const HID_USAGE_KEYBOARD_NOEVENT: USAGE = 0x00;
+pub const HID_USAGE_KEYBOARD_ROLLOVER: USAGE = 0x01;
+pub const HID_USAGE_KEYBOARD_POSTFAIL: USAGE = 0x02;
+pub const HID_USAGE_KEYBOARD_UNDEFINED: USAGE = 0x03;
+pub const HID_USAGE_KEYBOARD_aA: USAGE = 0x04;
+pub const HID_USAGE_KEYBOARD_zZ: USAGE = 0x1D;
+pub const HID_USAGE_KEYBOARD_ONE: USAGE = 0x1E;
+pub const HID_USAGE_KEYBOARD_ZERO: USAGE = 0x27;
+pub const HID_USAGE_KEYBOARD_LCTRL: USAGE = 0xE0;
+pub const HID_USAGE_KEYBOARD_LSHFT: USAGE = 0xE1;
+pub const HID_USAGE_KEYBOARD_LALT: USAGE = 0xE2;
+pub const HID_USAGE_KEYBOARD_LGUI: USAGE = 0xE3;
+pub const HID_USAGE_KEYBOARD_RCTRL: USAGE = 0xE4;
+pub const HID_USAGE_KEYBOARD_RSHFT: USAGE = 0xE5;
+pub const HID_USAGE_KEYBOARD_RALT: USAGE = 0xE6;
+pub const HID_USAGE_KEYBOARD_RGUI: USAGE = 0xE7;
+pub const HID_USAGE_KEYBOARD_SCROLL_LOCK: USAGE = 0x47;
+pub const HID_USAGE_KEYBOARD_NUM_LOCK: USAGE = 0x53;
+pub const HID_USAGE_KEYBOARD_CAPS_LOCK: USAGE = 0x39;
+pub const HID_USAGE_KEYBOARD_F1: USAGE = 0x3A;
+pub const HID_USAGE_KEYBOARD_F2: USAGE = 0x3B;
+pub const HID_USAGE_KEYBOARD_F3: USAGE = 0x3C;
+pub const HID_USAGE_KEYBOARD_F4: USAGE = 0x3D;
+pub const HID_USAGE_KEYBOARD_F5: USAGE = 0x3E;
+pub const HID_USAGE_KEYBOARD_F6: USAGE = 0x3F;
+pub const HID_USAGE_KEYBOARD_F7: USAGE = 0x40;
+pub const HID_USAGE_KEYBOARD_F8: USAGE = 0x41;
+pub const HID_USAGE_KEYBOARD_F9: USAGE = 0x42;
+pub const HID_USAGE_KEYBOARD_F10: USAGE = 0x43;
+pub const HID_USAGE_KEYBOARD_F11: USAGE = 0x44;
+pub const HID_USAGE_KEYBOARD_F12: USAGE = 0x45;
+pub const HID_USAGE_KEYBOARD_F13: USAGE = 0x68;
+pub const HID_USAGE_KEYBOARD_F14: USAGE = 0x69;
+pub const HID_USAGE_KEYBOARD_F15: USAGE = 0x6A;
+pub const HID_USAGE_KEYBOARD_F16: USAGE = 0x6B;
+pub const HID_USAGE_KEYBOARD_F17: USAGE = 0x6C;
+pub const HID_USAGE_KEYBOARD_F18: USAGE = 0x6D;
+pub const HID_USAGE_KEYBOARD_F19: USAGE = 0x6E;
+pub const HID_USAGE_KEYBOARD_F20: USAGE = 0x6F;
+pub const HID_USAGE_KEYBOARD_F21: USAGE = 0x70;
+pub const HID_USAGE_KEYBOARD_F22: USAGE = 0x71;
+pub const HID_USAGE_KEYBOARD_F23: USAGE = 0x72;
+pub const HID_USAGE_KEYBOARD_F24: USAGE = 0x73;
+pub const HID_USAGE_KEYBOARD_RETURN: USAGE = 0x28;
+pub const HID_USAGE_KEYBOARD_ESCAPE: USAGE = 0x29;
+pub const HID_USAGE_KEYBOARD_DELETE: USAGE = 0x2A;
+pub const HID_USAGE_KEYBOARD_PRINT_SCREEN: USAGE = 0x46;
+pub const HID_USAGE_KEYBOARD_DELETE_FORWARD: USAGE = 0x4C;
+pub const HID_USAGE_LED_NUM_LOCK: USAGE = 0x01;
+pub const HID_USAGE_LED_CAPS_LOCK: USAGE = 0x02;
+pub const HID_USAGE_LED_SCROLL_LOCK: USAGE = 0x03;
+pub const HID_USAGE_LED_COMPOSE: USAGE = 0x04;
+pub const HID_USAGE_LED_KANA: USAGE = 0x05;
+pub const HID_USAGE_LED_POWER: USAGE = 0x06;
+pub const HID_USAGE_LED_SHIFT: USAGE = 0x07;
+pub const HID_USAGE_LED_DO_NOT_DISTURB: USAGE = 0x08;
+pub const HID_USAGE_LED_MUTE: USAGE = 0x09;
+pub const HID_USAGE_LED_TONE_ENABLE: USAGE = 0x0A;
+pub const HID_USAGE_LED_HIGH_CUT_FILTER: USAGE = 0x0B;
+pub const HID_USAGE_LED_LOW_CUT_FILTER: USAGE = 0x0C;
+pub const HID_USAGE_LED_EQUALIZER_ENABLE: USAGE = 0x0D;
+pub const HID_USAGE_LED_SOUND_FIELD_ON: USAGE = 0x0E;
+pub const HID_USAGE_LED_SURROUND_FIELD_ON: USAGE = 0x0F;
+pub const HID_USAGE_LED_REPEAT: USAGE = 0x10;
+pub const HID_USAGE_LED_STEREO: USAGE = 0x11;
+pub const HID_USAGE_LED_SAMPLING_RATE_DETECT: USAGE = 0x12;
+pub const HID_USAGE_LED_SPINNING: USAGE = 0x13;
+pub const HID_USAGE_LED_CAV: USAGE = 0x14;
+pub const HID_USAGE_LED_CLV: USAGE = 0x15;
+pub const HID_USAGE_LED_RECORDING_FORMAT_DET: USAGE = 0x16;
+pub const HID_USAGE_LED_OFF_HOOK: USAGE = 0x17;
+pub const HID_USAGE_LED_RING: USAGE = 0x18;
+pub const HID_USAGE_LED_MESSAGE_WAITING: USAGE = 0x19;
+pub const HID_USAGE_LED_DATA_MODE: USAGE = 0x1A;
+pub const HID_USAGE_LED_BATTERY_OPERATION: USAGE = 0x1B;
+pub const HID_USAGE_LED_BATTERY_OK: USAGE = 0x1C;
+pub const HID_USAGE_LED_BATTERY_LOW: USAGE = 0x1D;
+pub const HID_USAGE_LED_SPEAKER: USAGE = 0x1E;
+pub const HID_USAGE_LED_HEAD_SET: USAGE = 0x1F;
+pub const HID_USAGE_LED_HOLD: USAGE = 0x20;
+pub const HID_USAGE_LED_MICROPHONE: USAGE = 0x21;
+pub const HID_USAGE_LED_COVERAGE: USAGE = 0x22;
+pub const HID_USAGE_LED_NIGHT_MODE: USAGE = 0x23;
+pub const HID_USAGE_LED_SEND_CALLS: USAGE = 0x24;
+pub const HID_USAGE_LED_CALL_PICKUP: USAGE = 0x25;
+pub const HID_USAGE_LED_CONFERENCE: USAGE = 0x26;
+pub const HID_USAGE_LED_STAND_BY: USAGE = 0x27;
+pub const HID_USAGE_LED_CAMERA_ON: USAGE = 0x28;
+pub const HID_USAGE_LED_CAMERA_OFF: USAGE = 0x29;
+pub const HID_USAGE_LED_ON_LINE: USAGE = 0x2A;
+pub const HID_USAGE_LED_OFF_LINE: USAGE = 0x2B;
+pub const HID_USAGE_LED_BUSY: USAGE = 0x2C;
+pub const HID_USAGE_LED_READY: USAGE = 0x2D;
+pub const HID_USAGE_LED_PAPER_OUT: USAGE = 0x2E;
+pub const HID_USAGE_LED_PAPER_JAM: USAGE = 0x2F;
+pub const HID_USAGE_LED_REMOTE: USAGE = 0x30;
+pub const HID_USAGE_LED_FORWARD: USAGE = 0x31;
+pub const HID_USAGE_LED_REVERSE: USAGE = 0x32;
+pub const HID_USAGE_LED_STOP: USAGE = 0x33;
+pub const HID_USAGE_LED_REWIND: USAGE = 0x34;
+pub const HID_USAGE_LED_FAST_FORWARD: USAGE = 0x35;
+pub const HID_USAGE_LED_PLAY: USAGE = 0x36;
+pub const HID_USAGE_LED_PAUSE: USAGE = 0x37;
+pub const HID_USAGE_LED_RECORD: USAGE = 0x38;
+pub const HID_USAGE_LED_ERROR: USAGE = 0x39;
+pub const HID_USAGE_LED_SELECTED_INDICATOR: USAGE = 0x3A;
+pub const HID_USAGE_LED_IN_USE_INDICATOR: USAGE = 0x3B;
+pub const HID_USAGE_LED_MULTI_MODE_INDICATOR: USAGE = 0x3C;
+pub const HID_USAGE_LED_INDICATOR_ON: USAGE = 0x3D;
+pub const HID_USAGE_LED_INDICATOR_FLASH: USAGE = 0x3E;
+pub const HID_USAGE_LED_INDICATOR_SLOW_BLINK: USAGE = 0x3F;
+pub const HID_USAGE_LED_INDICATOR_FAST_BLINK: USAGE = 0x40;
+pub const HID_USAGE_LED_INDICATOR_OFF: USAGE = 0x41;
+pub const HID_USAGE_LED_FLASH_ON_TIME: USAGE = 0x42;
+pub const HID_USAGE_LED_SLOW_BLINK_ON_TIME: USAGE = 0x43;
+pub const HID_USAGE_LED_SLOW_BLINK_OFF_TIME: USAGE = 0x44;
+pub const HID_USAGE_LED_FAST_BLINK_ON_TIME: USAGE = 0x45;
+pub const HID_USAGE_LED_FAST_BLINK_OFF_TIME: USAGE = 0x46;
+pub const HID_USAGE_LED_INDICATOR_COLOR: USAGE = 0x47;
+pub const HID_USAGE_LED_RED: USAGE = 0x48;
+pub const HID_USAGE_LED_GREEN: USAGE = 0x49;
+pub const HID_USAGE_LED_AMBER: USAGE = 0x4A;
+pub const HID_USAGE_LED_GENERIC_INDICATOR: USAGE = 0x4B;
+pub const HID_USAGE_TELEPHONY_PHONE: USAGE = 0x01;
+pub const HID_USAGE_TELEPHONY_ANSWERING_MACHINE: USAGE = 0x02;
+pub const HID_USAGE_TELEPHONY_MESSAGE_CONTROLS: USAGE = 0x03;
+pub const HID_USAGE_TELEPHONY_HANDSET: USAGE = 0x04;
+pub const HID_USAGE_TELEPHONY_HEADSET: USAGE = 0x05;
+pub const HID_USAGE_TELEPHONY_KEYPAD: USAGE = 0x06;
+pub const HID_USAGE_TELEPHONY_PROGRAMMABLE_BUTTON: USAGE = 0x07;
+pub const HID_USAGE_TELEPHONY_REDIAL: USAGE = 0x24;
+pub const HID_USAGE_TELEPHONY_TRANSFER: USAGE = 0x25;
+pub const HID_USAGE_TELEPHONY_DROP: USAGE = 0x26;
+pub const HID_USAGE_TELEPHONY_LINE: USAGE = 0x2A;
+pub const HID_USAGE_TELEPHONY_RING_ENABLE: USAGE = 0x2D;
+pub const HID_USAGE_TELEPHONY_SEND: USAGE = 0x31;
+pub const HID_USAGE_TELEPHONY_KEYPAD_0: USAGE = 0xB0;
+pub const HID_USAGE_TELEPHONY_KEYPAD_D: USAGE = 0xBF;
+pub const HID_USAGE_TELEPHONY_HOST_AVAILABLE: USAGE = 0xF1;
+pub const HID_USAGE_CONSUMERCTRL: USAGE = 0x01;
+pub const HID_USAGE_CONSUMER_CHANNEL_INCREMENT: USAGE = 0x9C;
+pub const HID_USAGE_CONSUMER_CHANNEL_DECREMENT: USAGE = 0x9D;
+pub const HID_USAGE_CONSUMER_PLAY: USAGE = 0xB0;
+pub const HID_USAGE_CONSUMER_PAUSE: USAGE = 0xB1;
+pub const HID_USAGE_CONSUMER_RECORD: USAGE = 0xB2;
+pub const HID_USAGE_CONSUMER_FAST_FORWARD: USAGE = 0xB3;
+pub const HID_USAGE_CONSUMER_REWIND: USAGE = 0xB4;
+pub const HID_USAGE_CONSUMER_SCAN_NEXT_TRACK: USAGE = 0xB5;
+pub const HID_USAGE_CONSUMER_SCAN_PREV_TRACK: USAGE = 0xB6;
+pub const HID_USAGE_CONSUMER_STOP: USAGE = 0xB7;
+pub const HID_USAGE_CONSUMER_PLAY_PAUSE: USAGE = 0xCD;
+pub const HID_USAGE_CONSUMER_VOLUME: USAGE = 0xE0;
+pub const HID_USAGE_CONSUMER_BALANCE: USAGE = 0xE1;
+pub const HID_USAGE_CONSUMER_MUTE: USAGE = 0xE2;
+pub const HID_USAGE_CONSUMER_BASS: USAGE = 0xE3;
+pub const HID_USAGE_CONSUMER_TREBLE: USAGE = 0xE4;
+pub const HID_USAGE_CONSUMER_BASS_BOOST: USAGE = 0xE5;
+pub const HID_USAGE_CONSUMER_SURROUND_MODE: USAGE = 0xE6;
+pub const HID_USAGE_CONSUMER_LOUDNESS: USAGE = 0xE7;
+pub const HID_USAGE_CONSUMER_MPX: USAGE = 0xE8;
+pub const HID_USAGE_CONSUMER_VOLUME_INCREMENT: USAGE = 0xE9;
+pub const HID_USAGE_CONSUMER_VOLUME_DECREMENT: USAGE = 0xEA;
+pub const HID_USAGE_CONSUMER_BASS_INCREMENT: USAGE = 0x152;
+pub const HID_USAGE_CONSUMER_BASS_DECREMENT: USAGE = 0x153;
+pub const HID_USAGE_CONSUMER_TREBLE_INCREMENT: USAGE = 0x154;
+pub const HID_USAGE_CONSUMER_TREBLE_DECREMENT: USAGE = 0x155;
+pub const HID_USAGE_CONSUMER_AL_CONFIGURATION: USAGE = 0x183;
+pub const HID_USAGE_CONSUMER_AL_EMAIL: USAGE = 0x18A;
+pub const HID_USAGE_CONSUMER_AL_CALCULATOR: USAGE = 0x192;
+pub const HID_USAGE_CONSUMER_AL_BROWSER: USAGE = 0x194;
+pub const HID_USAGE_CONSUMER_AC_SEARCH: USAGE = 0x221;
+pub const HID_USAGE_CONSUMER_AC_GOTO: USAGE = 0x222;
+pub const HID_USAGE_CONSUMER_AC_HOME: USAGE = 0x223;
+pub const HID_USAGE_CONSUMER_AC_BACK: USAGE = 0x224;
+pub const HID_USAGE_CONSUMER_AC_FORWARD: USAGE = 0x225;
+pub const HID_USAGE_CONSUMER_AC_STOP: USAGE = 0x226;
+pub const HID_USAGE_CONSUMER_AC_REFRESH: USAGE = 0x227;
+pub const HID_USAGE_CONSUMER_AC_PREVIOUS: USAGE = 0x228;
+pub const HID_USAGE_CONSUMER_AC_NEXT: USAGE = 0x229;
+pub const HID_USAGE_CONSUMER_AC_BOOKMARKS: USAGE = 0x22A;
+pub const HID_USAGE_CONSUMER_AC_PAN: USAGE = 0x238;
+pub const HID_USAGE_CONSUMER_EXTENDED_KEYBOARD_ATTRIBUTES_COLLECTION: USAGE = 0x2C0;
+pub const HID_USAGE_CONSUMER_KEYBOARD_FORM_FACTOR: USAGE = 0x2C1;
+pub const HID_USAGE_CONSUMER_KEYBOARD_KEY_TYPE: USAGE = 0x2C2;
+pub const HID_USAGE_CONSUMER_KEYBOARD_PHYSICAL_LAYOUT: USAGE = 0x2C3;
+pub const HID_USAGE_CONSUMER_VENDOR_SPECIFIC_KEYBOARD_PHYSICAL_LAYOUT: USAGE = 0x2C4;
+pub const HID_USAGE_CONSUMER_KEYBOARD_IETF_LANGUAGE_TAG_INDEX: USAGE = 0x2C5;
+pub const HID_USAGE_CONSUMER_IMPLEMENTED_KEYBOARD_INPUT_ASSIST_CONTROLS: USAGE = 0x2C6;
+pub const HID_USAGE_DIGITIZER_PEN: USAGE = 0x02;
+pub const HID_USAGE_DIGITIZER_IN_RANGE: USAGE = 0x32;
+pub const HID_USAGE_DIGITIZER_TIP_SWITCH: USAGE = 0x42;
+pub const HID_USAGE_DIGITIZER_BARREL_SWITCH: USAGE = 0x44;
+pub const HID_USAGE_CAMERA_AUTO_FOCUS: USAGE = 0x20;
+pub const HID_USAGE_CAMERA_SHUTTER: USAGE = 0x21;
+pub const HID_USAGE_MS_BTH_HF_DIALNUMBER: USAGE = 0x21;
+pub const HID_USAGE_MS_BTH_HF_DIALMEMORY: USAGE = 0x22;
diff --git a/third_party/rust/chromium_crates_io/vendor/winapi-0.3.9/src/shared/ifdef.rs b/third_party/rust/chromium_crates_io/vendor/winapi-0.3.9/src/shared/ifdef.rs
new file mode 100644
index 000000000000..fa1e1bcef807
--- /dev/null
+++ b/third_party/rust/chromium_crates_io/vendor/winapi-0.3.9/src/shared/ifdef.rs
@@ -0,0 +1,208 @@
+// Licensed under the Apache License, Version 2.0
+// or the MIT license
+// , at your option.
+// All files in the project carrying such notice may not be copied, modified, or distributed
+// except according to those terms.
+use shared::basetsd::{UINT16, UINT32, ULONG32, ULONG64};
+use shared::guiddef::GUID;
+use shared::ntdef::{BOOLEAN, UCHAR, ULONG, USHORT, WCHAR};
+pub type NET_IF_COMPARTMENT_ID = UINT32;
+pub type PNET_IF_COMPARTMENT_ID = *mut NET_IF_COMPARTMENT_ID;
+pub const NET_IF_COMPARTMENT_ID_UNSPECIFIED: NET_IF_COMPARTMENT_ID = 0;
+pub const NET_IF_COMPARTMENT_ID_PRIMARY: NET_IF_COMPARTMENT_ID = 1;
+pub type NET_IF_NETWORK_GUID = GUID;
+pub type PNET_IF_NETWORK_GUID = *mut NET_IF_NETWORK_GUID;
+ENUM!{enum NET_IF_OPER_STATUS {
+ NET_IF_OPER_STATUS_UP = 1,
+ NET_IF_OPER_STATUS_DOWN = 2,
+ NET_IF_OPER_STATUS_TESTING = 3,
+ NET_IF_OPER_STATUS_UNKNOWN = 4,
+ NET_IF_OPER_STATUS_DORMANT = 5,
+ NET_IF_OPER_STATUS_NOT_PRESENT = 6,
+ NET_IF_OPER_STATUS_LOWER_LAYER_DOWN = 7,
+}}
+pub type PNET_IF_OPER_STATUS = *mut NET_IF_OPER_STATUS;
+pub type NET_IF_OBJECT_ID = ULONG32;
+pub type PNET_IF_OBJECT_ID = *mut NET_IF_OBJECT_ID;
+ENUM!{enum NET_IF_ADMIN_STATUS {
+ NET_IF_ADMIN_STATUS_UP = 1,
+ NET_IF_ADMIN_STATUS_DOWN = 2,
+ NET_IF_ADMIN_STATUS_TESTING = 3,
+}}
+pub type PNET_IF_ADMIN_STATUS = *mut NET_IF_ADMIN_STATUS;
+pub type NET_IF_COMPARTMENT_SCOPE = UINT32;
+pub type PNET_IF_COMPARTMENT_SCOPE = *mut NET_IF_COMPARTMENT_SCOPE;
+pub const NET_IF_COMPARTMENT_SCOPE_UNSPECIFIED: NET_IF_COMPARTMENT_SCOPE = 0;
+pub const NET_IF_COMPARTMENT_SCOPE_ALL: NET_IF_COMPARTMENT_SCOPE = -1i32 as u32;
+ENUM!{enum NET_IF_RCV_ADDRESS_TYPE {
+ NET_IF_RCV_ADDRESS_TYPE_OTHER = 1,
+ NET_IF_RCV_ADDRESS_TYPE_VOLATILE = 2,
+ NET_IF_RCV_ADDRESS_TYPE_NON_VOLATILE = 3,
+}}
+pub type PNET_IF_RCV_ADDRESS_TYPE = *mut NET_IF_RCV_ADDRESS_TYPE;
+STRUCT!{struct NET_IF_RCV_ADDRESS_LH {
+ ifRcvAddressType: NET_IF_RCV_ADDRESS_TYPE,
+ ifRcvAddressLength: USHORT,
+ ifRcvAddressOffset: USHORT,
+}}
+pub type PNET_IF_RCV_ADDRESS_LH = *mut NET_IF_RCV_ADDRESS_LH;
+STRUCT!{struct NET_IF_ALIAS_LH {
+ ifAliasLength: USHORT,
+ ifAliasOffset: USHORT,
+}}
+pub type PNET_IF_ALIAS_LH = *mut NET_IF_ALIAS_LH;
+// FIXME: Switch to union version in 0.4
+// STRUCT!{struct NET_LUID_LH_Info {
+// bitfield: ULONG64,
+// }}
+// BITFIELD!{NET_LUID_LH_Info bitfield: ULONG64 [
+// Reserved set_Reserved[0..24],
+// NetLuidIndex set_NetLuidIndex[24..48],
+// IfType set_IfType[48..64],
+// ]}
+// UNION!{struct NET_LUID_LH {
+// [u64; 1],
+// Value Value_mut: ULONG64,
+// Info Info_mut: NET_LUID_LH_Info,
+// }}
+STRUCT!{struct NET_LUID_LH {
+ Value: ULONG64,
+}}
+BITFIELD!{NET_LUID_LH Value: ULONG64 [
+ Reserved set_Reserved[0..24],
+ NetLuidIndex set_NetLuidIndex[24..48],
+ IfType set_IfType[48..64],
+]}
+pub type PNET_LUID_LH = *mut NET_LUID_LH;
+pub type NET_IF_RCV_ADDRESS = NET_IF_RCV_ADDRESS_LH;
+pub type PNET_IF_RCV_ADDRESS = *mut NET_IF_RCV_ADDRESS;
+pub type NET_IF_ALIAS = NET_IF_ALIAS_LH;
+pub type PNET_IF_ALIAS = *mut NET_IF_ALIAS;
+pub type NET_LUID = NET_LUID_LH;
+pub type PNET_LUID = *mut NET_LUID;
+pub type IF_LUID = NET_LUID;
+pub type PIF_LUID = *mut NET_LUID;
+pub type NET_IFINDEX = ULONG;
+pub type PNET_IFINDEX = *mut NET_IFINDEX;
+pub type NET_IFTYPE = UINT16;
+pub type PNET_IFTYPE = *mut NET_IFTYPE;
+pub type IF_INDEX = NET_IFINDEX;
+pub type PIF_INDEX = *mut NET_IFINDEX;
+ENUM!{enum NET_IF_CONNECTION_TYPE {
+ NET_IF_CONNECTION_DEDICATED = 1,
+ NET_IF_CONNECTION_PASSIVE = 2,
+ NET_IF_CONNECTION_DEMAND = 3,
+ NET_IF_CONNECTION_MAXIMUM = 4,
+}}
+pub type PNET_IF_CONNECTION_TYPE = *mut NET_IF_CONNECTION_TYPE;
+ENUM!{enum TUNNEL_TYPE {
+ TUNNEL_TYPE_NONE = 0,
+ TUNNEL_TYPE_OTHER = 1,
+ TUNNEL_TYPE_DIRECT = 2,
+ TUNNEL_TYPE_6TO4 = 11,
+ TUNNEL_TYPE_ISATAP = 13,
+ TUNNEL_TYPE_TEREDO = 14,
+ TUNNEL_TYPE_IPHTTPS = 15,
+}}
+pub type PTUNNEL_TYPE = *mut TUNNEL_TYPE;
+ENUM!{enum NET_IF_ACCESS_TYPE {
+ NET_IF_ACCESS_LOOPBACK = 1,
+ NET_IF_ACCESS_BROADCAST = 2,
+ NET_IF_ACCESS_POINT_TO_POINT = 3,
+ NET_IF_ACCESS_POINT_TO_MULTI_POINT = 4,
+ NET_IF_ACCESS_MAXIMUM = 5,
+}}
+pub type PNET_IF_ACCESS_TYPE = *mut NET_IF_ACCESS_TYPE;
+ENUM!{enum NET_IF_DIRECTION_TYPE {
+ NET_IF_DIRECTION_SENDRECEIVE,
+ NET_IF_DIRECTION_SENDONLY,
+ NET_IF_DIRECTION_RECEIVEONLY,
+ NET_IF_DIRECTION_MAXIMUM,
+}}
+pub type PNET_IF_DIRECTION_TYPE = *mut NET_IF_DIRECTION_TYPE;
+ENUM!{enum NET_IF_MEDIA_CONNECT_STATE {
+ MediaConnectStateUnknown,
+ MediaConnectStateConnected,
+ MediaConnectStateDisconnected,
+}}
+pub type PNET_IF_MEDIA_CONNECT_STATE = *mut NET_IF_MEDIA_CONNECT_STATE;
+ENUM!{enum NET_IF_MEDIA_DUPLEX_STATE {
+ MediaDuplexStateUnknown = 0,
+ MediaDuplexStateHalf = 1,
+ MediaDuplexStateFull = 2,
+}}
+pub type PNET_IF_MEDIA_DUPLEX_STATE = *mut NET_IF_MEDIA_DUPLEX_STATE;
+STRUCT!{struct NET_PHYSICAL_LOCATION_LH {
+ BusNumber: ULONG,
+ SlotNumber: ULONG,
+ FunctionNumber: ULONG,
+}}
+pub type PNET_PHYSICAL_LOCATION_LH = *mut NET_PHYSICAL_LOCATION_LH;
+pub const IF_MAX_STRING_SIZE: usize = 256;
+pub const IF_MAX_PHYS_ADDRESS_LENGTH: usize = 32;
+STRUCT!{struct IF_COUNTED_STRING_LH {
+ Length: USHORT,
+ String: [WCHAR; IF_MAX_STRING_SIZE + 1],
+}}
+pub type PIF_COUNTED_STRING_LH = *mut IF_COUNTED_STRING_LH;
+STRUCT!{struct IF_PHYSICAL_ADDRESS_LH {
+ Length: USHORT,
+ Address: [UCHAR; IF_MAX_PHYS_ADDRESS_LENGTH],
+}}
+pub type PIF_PHYSICAL_ADDRESS_LH = *mut IF_PHYSICAL_ADDRESS_LH;
+pub type NET_PHYSICAL_LOCATION = NET_PHYSICAL_LOCATION_LH;
+pub type PNET_PHYSICAL_LOCATION = *mut NET_PHYSICAL_LOCATION;
+pub type IF_COUNTED_STRING = IF_COUNTED_STRING_LH;
+pub type PIF_COUNTED_STRING = *mut IF_COUNTED_STRING;
+pub type IF_PHYSICAL_ADDRESS = IF_PHYSICAL_ADDRESS_LH;
+pub type PIF_PHYSICAL_ADDRESS = *mut IF_PHYSICAL_ADDRESS;
+ENUM!{enum IF_ADMINISTRATIVE_STATE {
+ IF_ADMINISTRATIVE_DISABLED = 0,
+ IF_ADMINISTRATIVE_ENABLED = 1,
+ IF_ADMINISTRATIVE_DEMANDDIAL = 2,
+}}
+pub type PIF_ADMINISTRATIVE_STATE = *mut IF_ADMINISTRATIVE_STATE;
+ENUM!{enum IF_OPER_STATUS {
+ IfOperStatusUp = 1,
+ IfOperStatusDown,
+ IfOperStatusTesting,
+ IfOperStatusUnknown,
+ IfOperStatusDormant,
+ IfOperStatusNotPresent,
+ IfOperStatusLowerLayerDown,
+}}
+STRUCT!{struct NDIS_INTERFACE_INFORMATION {
+ ifOperStatus: NET_IF_OPER_STATUS,
+ ifOperStatusFlags: ULONG,
+ MediaConnectState: NET_IF_MEDIA_CONNECT_STATE,
+ MediaDuplexState: NET_IF_MEDIA_DUPLEX_STATE,
+ ifMtu: ULONG,
+ ifPromiscuousMode: BOOLEAN,
+ ifDeviceWakeUpEnable: BOOLEAN,
+ XmitLinkSpeed: ULONG64,
+ RcvLinkSpeed: ULONG64,
+ ifLastChange: ULONG64,
+ ifCounterDiscontinuityTime: ULONG64,
+ ifInUnknownProtos: ULONG64,
+ ifInDiscards: ULONG64,
+ ifInErrors: ULONG64,
+ ifHCInOctets: ULONG64,
+ ifHCInUcastPkts: ULONG64,
+ ifHCInMulticastPkts: ULONG64,
+ ifHCInBroadcastPkts: ULONG64,
+ ifHCOutOctets: ULONG64,
+ ifHCOutUcastPkts: ULONG64,
+ ifHCOutMulticastPkts: ULONG64,
+ ifHCOutBroadcastPkts: ULONG64,
+ ifOutErrors: ULONG64,
+ ifOutDiscards: ULONG64,
+ ifHCInUcastOctets: ULONG64,
+ ifHCInMulticastOctets: ULONG64,
+ ifHCInBroadcastOctets: ULONG64,
+ ifHCOutUcastOctets: ULONG64,
+ ifHCOutMulticastOctets: ULONG64,
+ ifHCOutBroadcastOctets: ULONG64,
+ CompartmentId: NET_IF_COMPARTMENT_ID,
+ SupportedStatistics: ULONG,
+}}
+pub type PNDIS_INTERFACE_INFORMATION = *mut NDIS_INTERFACE_INFORMATION;
diff --git a/third_party/rust/chromium_crates_io/vendor/winapi-0.3.9/src/shared/ifmib.rs b/third_party/rust/chromium_crates_io/vendor/winapi-0.3.9/src/shared/ifmib.rs
new file mode 100644
index 000000000000..855b147f61fd
--- /dev/null
+++ b/third_party/rust/chromium_crates_io/vendor/winapi-0.3.9/src/shared/ifmib.rs
@@ -0,0 +1,53 @@
+// Licensed under the Apache License, Version 2.0
+// or the MIT license
+// , at your option.
+// All files in the project carrying such notice may not be copied, modified, or distributed
+// except according to those terms.
+//! Contains the public definitions and structures for the non-TCP/IP specific parts of MIB-II.
+// #include
+// #include
+use shared::ifdef::IF_INDEX;
+use shared::ipifcons::{IFTYPE, INTERNAL_IF_OPER_STATUS};
+use shared::minwindef::DWORD;
+use shared::ntdef::{UCHAR, WCHAR};
+const ANY_SIZE: usize = 1;
+STRUCT!{struct MIB_IFNUMBER {
+ dwValue: DWORD,
+}}
+pub type PMIB_IFNUMBER = *mut MIB_IFNUMBER;
+pub const MAXLEN_PHYSADDR: usize = 8;
+pub const MAXLEN_IFDESCR: usize = 256;
+pub const MAX_INTERFACE_NAME_LEN: usize = 256;
+STRUCT!{struct MIB_IFROW {
+ wszName: [WCHAR; MAX_INTERFACE_NAME_LEN],
+ dwIndex: IF_INDEX,
+ dwType: IFTYPE,
+ dwMtu: DWORD,
+ dwSpeed: DWORD,
+ dwPhysAddrLen: DWORD,
+ bPhysAddr: [UCHAR; MAXLEN_PHYSADDR],
+ dwAdminStatus: DWORD,
+ dwOperStatus: INTERNAL_IF_OPER_STATUS,
+ dwLastChange: DWORD,
+ dwInOctets: DWORD,
+ dwInUcastPkts: DWORD,
+ dwInNUcastPkts: DWORD,
+ dwInDiscards: DWORD,
+ dwInErrors: DWORD,
+ dwInUnknownProtos: DWORD,
+ dwOutOctets: DWORD,
+ dwOutUcastPkts: DWORD,
+ dwOutNUcastPkts: DWORD,
+ dwOutDiscards: DWORD,
+ dwOutErrors: DWORD,
+ dwOutQLen: DWORD,
+ dwDescrLen: DWORD,
+ bDescr: [UCHAR; MAXLEN_IFDESCR],
+}}
+pub type PMIB_IFROW = *mut MIB_IFROW;
+STRUCT!{struct MIB_IFTABLE {
+ dwNumEntries: DWORD,
+ table: [MIB_IFROW; ANY_SIZE],
+}}
+pub type PMIB_IFTABLE = *mut MIB_IFTABLE;
+// FIXME: SIZEOF_IFTABLE(x)
diff --git a/third_party/rust/chromium_crates_io/vendor/winapi-0.3.9/src/shared/in6addr.rs b/third_party/rust/chromium_crates_io/vendor/winapi-0.3.9/src/shared/in6addr.rs
new file mode 100644
index 000000000000..ea7eb75bec75
--- /dev/null
+++ b/third_party/rust/chromium_crates_io/vendor/winapi-0.3.9/src/shared/in6addr.rs
@@ -0,0 +1,18 @@
+// Licensed under the Apache License, Version 2.0
+// or the MIT license
+// , at your option.
+// All files in the project carrying such notice may not be copied, modified, or distributed
+// except according to those terms.
+//! IPv6 Internet address, 'on-wire' format structure.
+use shared::minwindef::{UCHAR, USHORT};
+UNION!{union in6_addr_u {
+ [u16; 8],
+ Byte Byte_mut: [UCHAR; 16],
+ Word Word_mut: [USHORT; 8],
+}}
+STRUCT!{struct in6_addr {
+ u: in6_addr_u,
+}}
+pub type IN6_ADDR = in6_addr;
+pub type PIN6_ADDR = *mut IN6_ADDR;
+pub type LPIN6_ADDR = *mut IN6_ADDR;
diff --git a/third_party/rust/chromium_crates_io/vendor/winapi-0.3.9/src/shared/inaddr.rs b/third_party/rust/chromium_crates_io/vendor/winapi-0.3.9/src/shared/inaddr.rs
new file mode 100644
index 000000000000..830dd0505ddd
--- /dev/null
+++ b/third_party/rust/chromium_crates_io/vendor/winapi-0.3.9/src/shared/inaddr.rs
@@ -0,0 +1,29 @@
+// Licensed under the Apache License, Version 2.0
+// or the MIT license
+// , at your option.
+// All files in the project carrying such notice may not be copied, modified, or distributed
+// except according to those terms.
+//! IPv4 Internet address, 'on-wire' format structure.
+use shared::minwindef::{UCHAR, ULONG, USHORT};
+STRUCT!{struct in_addr_S_un_b {
+ s_b1: UCHAR,
+ s_b2: UCHAR,
+ s_b3: UCHAR,
+ s_b4: UCHAR,
+}}
+STRUCT!{struct in_addr_S_un_w {
+ s_w1: USHORT,
+ s_w2: USHORT,
+}}
+UNION!{union in_addr_S_un {
+ [u32; 1],
+ S_un_b S_un_b_mut: in_addr_S_un_b,
+ S_un_w S_un_w_mut: in_addr_S_un_w,
+ S_addr S_addr_mut: ULONG,
+}}
+STRUCT!{struct in_addr {
+ S_un: in_addr_S_un,
+}}
+pub type IN_ADDR = in_addr;
+pub type PIN_ADDR = *mut in_addr;
+pub type LPIN_ADDR = *mut in_addr;
diff --git a/third_party/rust/chromium_crates_io/vendor/winapi-0.3.9/src/shared/intsafe.rs b/third_party/rust/chromium_crates_io/vendor/winapi-0.3.9/src/shared/intsafe.rs
new file mode 100644
index 000000000000..916dc0e1aa0c
--- /dev/null
+++ b/third_party/rust/chromium_crates_io/vendor/winapi-0.3.9/src/shared/intsafe.rs
@@ -0,0 +1,5 @@
+// Licensed under the Apache License, Version 2.0
+// or the MIT license
+// , at your option.
+// All files in the project carrying such notice may not be copied, modified, or distributed
+// except according to those terms.
diff --git a/third_party/rust/chromium_crates_io/vendor/winapi-0.3.9/src/shared/ipifcons.rs b/third_party/rust/chromium_crates_io/vendor/winapi-0.3.9/src/shared/ipifcons.rs
new file mode 100644
index 000000000000..c500e2cec569
--- /dev/null
+++ b/third_party/rust/chromium_crates_io/vendor/winapi-0.3.9/src/shared/ipifcons.rs
@@ -0,0 +1,244 @@
+// Licensed under the Apache License, Version 2.0
+// or the MIT license
+// , at your option.
+// All files in the project carrying such notice may not be copied, modified, or distributed
+// except according to those terms.
+//! Constants needed for the Interface Object
+// #include
+use shared::minwindef::ULONG;
+pub type IFTYPE = ULONG;
+pub const MIN_IF_TYPE: IFTYPE = 1;
+pub const IF_TYPE_OTHER: IFTYPE = 1;
+pub const IF_TYPE_REGULAR_1822: IFTYPE = 2;
+pub const IF_TYPE_HDH_1822: IFTYPE = 3;
+pub const IF_TYPE_DDN_X25: IFTYPE = 4;
+pub const IF_TYPE_RFC877_X25: IFTYPE = 5;
+pub const IF_TYPE_ETHERNET_CSMACD: IFTYPE = 6;
+pub const IF_TYPE_IS088023_CSMACD: IFTYPE = 7;
+pub const IF_TYPE_ISO88024_TOKENBUS: IFTYPE = 8;
+pub const IF_TYPE_ISO88025_TOKENRING: IFTYPE = 9;
+pub const IF_TYPE_ISO88026_MAN: IFTYPE = 10;
+pub const IF_TYPE_STARLAN: IFTYPE = 11;
+pub const IF_TYPE_PROTEON_10MBIT: IFTYPE = 12;
+pub const IF_TYPE_PROTEON_80MBIT: IFTYPE = 13;
+pub const IF_TYPE_HYPERCHANNEL: IFTYPE = 14;
+pub const IF_TYPE_FDDI: IFTYPE = 15;
+pub const IF_TYPE_LAP_B: IFTYPE = 16;
+pub const IF_TYPE_SDLC: IFTYPE = 17;
+pub const IF_TYPE_DS1: IFTYPE = 18;
+pub const IF_TYPE_E1: IFTYPE = 19;
+pub const IF_TYPE_BASIC_ISDN: IFTYPE = 20;
+pub const IF_TYPE_PRIMARY_ISDN: IFTYPE = 21;
+pub const IF_TYPE_PROP_POINT2POINT_SERIAL: IFTYPE = 22;
+pub const IF_TYPE_PPP: IFTYPE = 23;
+pub const IF_TYPE_SOFTWARE_LOOPBACK: IFTYPE = 24;
+pub const IF_TYPE_EON: IFTYPE = 25;
+pub const IF_TYPE_ETHERNET_3MBIT: IFTYPE = 26;
+pub const IF_TYPE_NSIP: IFTYPE = 27;
+pub const IF_TYPE_SLIP: IFTYPE = 28;
+pub const IF_TYPE_ULTRA: IFTYPE = 29;
+pub const IF_TYPE_DS3: IFTYPE = 30;
+pub const IF_TYPE_SIP: IFTYPE = 31;
+pub const IF_TYPE_FRAMERELAY: IFTYPE = 32;
+pub const IF_TYPE_RS232: IFTYPE = 33;
+pub const IF_TYPE_PARA: IFTYPE = 34;
+pub const IF_TYPE_ARCNET: IFTYPE = 35;
+pub const IF_TYPE_ARCNET_PLUS: IFTYPE = 36;
+pub const IF_TYPE_ATM: IFTYPE = 37;
+pub const IF_TYPE_MIO_X25: IFTYPE = 38;
+pub const IF_TYPE_SONET: IFTYPE = 39;
+pub const IF_TYPE_X25_PLE: IFTYPE = 40;
+pub const IF_TYPE_ISO88022_LLC: IFTYPE = 41;
+pub const IF_TYPE_LOCALTALK: IFTYPE = 42;
+pub const IF_TYPE_SMDS_DXI: IFTYPE = 43;
+pub const IF_TYPE_FRAMERELAY_SERVICE: IFTYPE = 44;
+pub const IF_TYPE_V35: IFTYPE = 45;
+pub const IF_TYPE_HSSI: IFTYPE = 46;
+pub const IF_TYPE_HIPPI: IFTYPE = 47;
+pub const IF_TYPE_MODEM: IFTYPE = 48;
+pub const IF_TYPE_AAL5: IFTYPE = 49;
+pub const IF_TYPE_SONET_PATH: IFTYPE = 50;
+pub const IF_TYPE_SONET_VT: IFTYPE = 51;
+pub const IF_TYPE_SMDS_ICIP: IFTYPE = 52;
+pub const IF_TYPE_PROP_VIRTUAL: IFTYPE = 53;
+pub const IF_TYPE_PROP_MULTIPLEXOR: IFTYPE = 54;
+pub const IF_TYPE_IEEE80212: IFTYPE = 55;
+pub const IF_TYPE_FIBRECHANNEL: IFTYPE = 56;
+pub const IF_TYPE_HIPPIINTERFACE: IFTYPE = 57;
+pub const IF_TYPE_FRAMERELAY_INTERCONNECT: IFTYPE = 58;
+pub const IF_TYPE_AFLANE_8023: IFTYPE = 59;
+pub const IF_TYPE_AFLANE_8025: IFTYPE = 60;
+pub const IF_TYPE_CCTEMUL: IFTYPE = 61;
+pub const IF_TYPE_FASTETHER: IFTYPE = 62;
+pub const IF_TYPE_ISDN: IFTYPE = 63;
+pub const IF_TYPE_V11: IFTYPE = 64;
+pub const IF_TYPE_V36: IFTYPE = 65;
+pub const IF_TYPE_G703_64K: IFTYPE = 66;
+pub const IF_TYPE_G703_2MB: IFTYPE = 67;
+pub const IF_TYPE_QLLC: IFTYPE = 68;
+pub const IF_TYPE_FASTETHER_FX: IFTYPE = 69;
+pub const IF_TYPE_CHANNEL: IFTYPE = 70;
+pub const IF_TYPE_IEEE80211: IFTYPE = 71;
+pub const IF_TYPE_IBM370PARCHAN: IFTYPE = 72;
+pub const IF_TYPE_ESCON: IFTYPE = 73;
+pub const IF_TYPE_DLSW: IFTYPE = 74;
+pub const IF_TYPE_ISDN_S: IFTYPE = 75;
+pub const IF_TYPE_ISDN_U: IFTYPE = 76;
+pub const IF_TYPE_LAP_D: IFTYPE = 77;
+pub const IF_TYPE_IPSWITCH: IFTYPE = 78;
+pub const IF_TYPE_RSRB: IFTYPE = 79;
+pub const IF_TYPE_ATM_LOGICAL: IFTYPE = 80;
+pub const IF_TYPE_DS0: IFTYPE = 81;
+pub const IF_TYPE_DS0_BUNDLE: IFTYPE = 82;
+pub const IF_TYPE_BSC: IFTYPE = 83;
+pub const IF_TYPE_ASYNC: IFTYPE = 84;
+pub const IF_TYPE_CNR: IFTYPE = 85;
+pub const IF_TYPE_ISO88025R_DTR: IFTYPE = 86;
+pub const IF_TYPE_EPLRS: IFTYPE = 87;
+pub const IF_TYPE_ARAP: IFTYPE = 88;
+pub const IF_TYPE_PROP_CNLS: IFTYPE = 89;
+pub const IF_TYPE_HOSTPAD: IFTYPE = 90;
+pub const IF_TYPE_TERMPAD: IFTYPE = 91;
+pub const IF_TYPE_FRAMERELAY_MPI: IFTYPE = 92;
+pub const IF_TYPE_X213: IFTYPE = 93;
+pub const IF_TYPE_ADSL: IFTYPE = 94;
+pub const IF_TYPE_RADSL: IFTYPE = 95;
+pub const IF_TYPE_SDSL: IFTYPE = 96;
+pub const IF_TYPE_VDSL: IFTYPE = 97;
+pub const IF_TYPE_ISO88025_CRFPRINT: IFTYPE = 98;
+pub const IF_TYPE_MYRINET: IFTYPE = 99;
+pub const IF_TYPE_VOICE_EM: IFTYPE = 100;
+pub const IF_TYPE_VOICE_FXO: IFTYPE = 101;
+pub const IF_TYPE_VOICE_FXS: IFTYPE = 102;
+pub const IF_TYPE_VOICE_ENCAP: IFTYPE = 103;
+pub const IF_TYPE_VOICE_OVERIP: IFTYPE = 104;
+pub const IF_TYPE_ATM_DXI: IFTYPE = 105;
+pub const IF_TYPE_ATM_FUNI: IFTYPE = 106;
+pub const IF_TYPE_ATM_IMA: IFTYPE = 107;
+pub const IF_TYPE_PPPMULTILINKBUNDLE: IFTYPE = 108;
+pub const IF_TYPE_IPOVER_CDLC: IFTYPE = 109;
+pub const IF_TYPE_IPOVER_CLAW: IFTYPE = 110;
+pub const IF_TYPE_STACKTOSTACK: IFTYPE = 111;
+pub const IF_TYPE_VIRTUALIPADDRESS: IFTYPE = 112;
+pub const IF_TYPE_MPC: IFTYPE = 113;
+pub const IF_TYPE_IPOVER_ATM: IFTYPE = 114;
+pub const IF_TYPE_ISO88025_FIBER: IFTYPE = 115;
+pub const IF_TYPE_TDLC: IFTYPE = 116;
+pub const IF_TYPE_GIGABITETHERNET: IFTYPE = 117;
+pub const IF_TYPE_HDLC: IFTYPE = 118;
+pub const IF_TYPE_LAP_F: IFTYPE = 119;
+pub const IF_TYPE_V37: IFTYPE = 120;
+pub const IF_TYPE_X25_MLP: IFTYPE = 121;
+pub const IF_TYPE_X25_HUNTGROUP: IFTYPE = 122;
+pub const IF_TYPE_TRANSPHDLC: IFTYPE = 123;
+pub const IF_TYPE_INTERLEAVE: IFTYPE = 124;
+pub const IF_TYPE_FAST: IFTYPE = 125;
+pub const IF_TYPE_IP: IFTYPE = 126;
+pub const IF_TYPE_DOCSCABLE_MACLAYER: IFTYPE = 127;
+pub const IF_TYPE_DOCSCABLE_DOWNSTREAM: IFTYPE = 128;
+pub const IF_TYPE_DOCSCABLE_UPSTREAM: IFTYPE = 129;
+pub const IF_TYPE_A12MPPSWITCH: IFTYPE = 130;
+pub const IF_TYPE_TUNNEL: IFTYPE = 131;
+pub const IF_TYPE_COFFEE: IFTYPE = 132;
+pub const IF_TYPE_CES: IFTYPE = 133;
+pub const IF_TYPE_ATM_SUBINTERFACE: IFTYPE = 134;
+pub const IF_TYPE_L2_VLAN: IFTYPE = 135;
+pub const IF_TYPE_L3_IPVLAN: IFTYPE = 136;
+pub const IF_TYPE_L3_IPXVLAN: IFTYPE = 137;
+pub const IF_TYPE_DIGITALPOWERLINE: IFTYPE = 138;
+pub const IF_TYPE_MEDIAMAILOVERIP: IFTYPE = 139;
+pub const IF_TYPE_DTM: IFTYPE = 140;
+pub const IF_TYPE_DCN: IFTYPE = 141;
+pub const IF_TYPE_IPFORWARD: IFTYPE = 142;
+pub const IF_TYPE_MSDSL: IFTYPE = 143;
+pub const IF_TYPE_IEEE1394: IFTYPE = 144;
+pub const IF_TYPE_IF_GSN: IFTYPE = 145;
+pub const IF_TYPE_DVBRCC_MACLAYER: IFTYPE = 146;
+pub const IF_TYPE_DVBRCC_DOWNSTREAM: IFTYPE = 147;
+pub const IF_TYPE_DVBRCC_UPSTREAM: IFTYPE = 148;
+pub const IF_TYPE_ATM_VIRTUAL: IFTYPE = 149;
+pub const IF_TYPE_MPLS_TUNNEL: IFTYPE = 150;
+pub const IF_TYPE_SRP: IFTYPE = 151;
+pub const IF_TYPE_VOICEOVERATM: IFTYPE = 152;
+pub const IF_TYPE_VOICEOVERFRAMERELAY: IFTYPE = 153;
+pub const IF_TYPE_IDSL: IFTYPE = 154;
+pub const IF_TYPE_COMPOSITELINK: IFTYPE = 155;
+pub const IF_TYPE_SS7_SIGLINK: IFTYPE = 156;
+pub const IF_TYPE_PROP_WIRELESS_P2P: IFTYPE = 157;
+pub const IF_TYPE_FR_FORWARD: IFTYPE = 158;
+pub const IF_TYPE_RFC1483: IFTYPE = 159;
+pub const IF_TYPE_USB: IFTYPE = 160;
+pub const IF_TYPE_IEEE8023AD_LAG: IFTYPE = 161;
+pub const IF_TYPE_BGP_POLICY_ACCOUNTING: IFTYPE = 162;
+pub const IF_TYPE_FRF16_MFR_BUNDLE: IFTYPE = 163;
+pub const IF_TYPE_H323_GATEKEEPER: IFTYPE = 164;
+pub const IF_TYPE_H323_PROXY: IFTYPE = 165;
+pub const IF_TYPE_MPLS: IFTYPE = 166;
+pub const IF_TYPE_MF_SIGLINK: IFTYPE = 167;
+pub const IF_TYPE_HDSL2: IFTYPE = 168;
+pub const IF_TYPE_SHDSL: IFTYPE = 169;
+pub const IF_TYPE_DS1_FDL: IFTYPE = 170;
+pub const IF_TYPE_POS: IFTYPE = 171;
+pub const IF_TYPE_DVB_ASI_IN: IFTYPE = 172;
+pub const IF_TYPE_DVB_ASI_OUT: IFTYPE = 173;
+pub const IF_TYPE_PLC: IFTYPE = 174;
+pub const IF_TYPE_NFAS: IFTYPE = 175;
+pub const IF_TYPE_TR008: IFTYPE = 176;
+pub const IF_TYPE_GR303_RDT: IFTYPE = 177;
+pub const IF_TYPE_GR303_IDT: IFTYPE = 178;
+pub const IF_TYPE_ISUP: IFTYPE = 179;
+pub const IF_TYPE_PROP_DOCS_WIRELESS_MACLAYER: IFTYPE = 180;
+pub const IF_TYPE_PROP_DOCS_WIRELESS_DOWNSTREAM: IFTYPE = 181;
+pub const IF_TYPE_PROP_DOCS_WIRELESS_UPSTREAM: IFTYPE = 182;
+pub const IF_TYPE_HIPERLAN2: IFTYPE = 183;
+pub const IF_TYPE_PROP_BWA_P2MP: IFTYPE = 184;
+pub const IF_TYPE_SONET_OVERHEAD_CHANNEL: IFTYPE = 185;
+pub const IF_TYPE_DIGITAL_WRAPPER_OVERHEAD_CHANNEL: IFTYPE = 186;
+pub const IF_TYPE_AAL2: IFTYPE = 187;
+pub const IF_TYPE_RADIO_MAC: IFTYPE = 188;
+pub const IF_TYPE_ATM_RADIO: IFTYPE = 189;
+pub const IF_TYPE_IMT: IFTYPE = 190;
+pub const IF_TYPE_MVL: IFTYPE = 191;
+pub const IF_TYPE_REACH_DSL: IFTYPE = 192;
+pub const IF_TYPE_FR_DLCI_ENDPT: IFTYPE = 193;
+pub const IF_TYPE_ATM_VCI_ENDPT: IFTYPE = 194;
+pub const IF_TYPE_OPTICAL_CHANNEL: IFTYPE = 195;
+pub const IF_TYPE_OPTICAL_TRANSPORT: IFTYPE = 196;
+pub const IF_TYPE_IEEE80216_WMAN: IFTYPE = 237;
+pub const IF_TYPE_WWANPP: IFTYPE = 243;
+pub const IF_TYPE_WWANPP2: IFTYPE = 244;
+pub const IF_TYPE_IEEE802154: IFTYPE = 259;
+pub const IF_TYPE_XBOX_WIRELESS: IFTYPE = 281;
+pub const MAX_IF_TYPE: IFTYPE = 281;
+ENUM!{enum IF_ACCESS_TYPE {
+ IF_ACCESS_LOOPBACK = 1,
+ IF_ACCESS_BROADCAST = 2,
+ IF_ACCESS_POINT_TO_POINT = 3,
+ IF_ACCESS_POINTTOPOINT = 3,
+ IF_ACCESS_POINT_TO_MULTI_POINT = 4,
+ IF_ACCESS_POINTTOMULTIPOINT = 4,
+}}
+ENUM!{enum INTERNAL_IF_OPER_STATUS {
+ IF_OPER_STATUS_NON_OPERATIONAL = 0,
+ IF_OPER_STATUS_UNREACHABLE = 1,
+ IF_OPER_STATUS_DISCONNECTED = 2,
+ IF_OPER_STATUS_CONNECTING = 3,
+ IF_OPER_STATUS_CONNECTED = 4,
+ IF_OPER_STATUS_OPERATIONAL = 5,
+}}
+pub const MIB_IF_TYPE_OTHER: IFTYPE = 1;
+pub const MIB_IF_TYPE_ETHERNET: IFTYPE = 6;
+pub const MIB_IF_TYPE_TOKENRING: IFTYPE = 9;
+pub const MIB_IF_TYPE_FDDI: IFTYPE = 15;
+pub const MIB_IF_TYPE_PPP: IFTYPE = 23;
+pub const MIB_IF_TYPE_LOOPBACK: IFTYPE = 24;
+pub const MIB_IF_TYPE_SLIP: IFTYPE = 28;
+pub const MIB_IF_ADMIN_STATUS_UP: IFTYPE = 1;
+pub const MIB_IF_ADMIN_STATUS_DOWN: IFTYPE = 2;
+pub const MIB_IF_ADMIN_STATUS_TESTING: IFTYPE = 3;
+pub const MIB_IF_OPER_STATUS_NON_OPERATIONAL: INTERNAL_IF_OPER_STATUS = 0;
+pub const MIB_IF_OPER_STATUS_UNREACHABLE: INTERNAL_IF_OPER_STATUS = 1;
+pub const MIB_IF_OPER_STATUS_DISCONNECTED: INTERNAL_IF_OPER_STATUS = 2;
+pub const MIB_IF_OPER_STATUS_CONNECTING: INTERNAL_IF_OPER_STATUS = 3;
+pub const MIB_IF_OPER_STATUS_CONNECTED: INTERNAL_IF_OPER_STATUS = 4;
+pub const MIB_IF_OPER_STATUS_OPERATIONAL: INTERNAL_IF_OPER_STATUS = 5;
diff --git a/third_party/rust/chromium_crates_io/vendor/winapi-0.3.9/src/shared/ipmib.rs b/third_party/rust/chromium_crates_io/vendor/winapi-0.3.9/src/shared/ipmib.rs
new file mode 100644
index 000000000000..cddd8f61a41e
--- /dev/null
+++ b/third_party/rust/chromium_crates_io/vendor/winapi-0.3.9/src/shared/ipmib.rs
@@ -0,0 +1,381 @@
+// Licensed under the Apache License, Version 2.0
+// or the MIT license
+// , at your option.
+// All files in the project carrying such notice may not be copied, modified, or distributed
+// except according to those terms.
+use shared::ifdef::IF_INDEX;
+use shared::ifmib::MAXLEN_PHYSADDR;
+use shared::minwindef::DWORD;
+use shared::nldef::NL_ROUTE_PROTOCOL;
+use shared::ntdef::{PVOID, UCHAR, ULONG, USHORT};
+const ANY_SIZE: usize = 1;
+STRUCT!{struct MIB_IPADDRROW_XP {
+ dwAddr: DWORD,
+ dwIndex: IF_INDEX,
+ dwMask: DWORD,
+ dwBCastAddr: DWORD,
+ dwReasmSize: DWORD,
+ unused1: USHORT,
+ wType: USHORT,
+}}
+pub type PMIB_IPADDRROW_XP = *mut MIB_IPADDRROW_XP;
+STRUCT!{struct MIB_IPADDRROW_W2K {
+ dwAddr: DWORD,
+ dwIndex: DWORD,
+ dwMask: DWORD,
+ dwBCastAddr: DWORD,
+ dwReasmSize: DWORD,
+ unused1: USHORT,
+ unused2: USHORT,
+}}
+pub type PMIB_IPADDRROW_W2K = *mut MIB_IPADDRROW_W2K;
+pub type MIB_IPADDRROW = MIB_IPADDRROW_XP;
+pub type PMIB_IPADDRROW = *mut MIB_IPADDRROW;
+STRUCT!{struct MIB_IPADDRTABLE {
+ dwNumEntries: DWORD,
+ table: [MIB_IPADDRROW; ANY_SIZE],
+}}
+pub type PMIB_IPADDRTABLE = *mut MIB_IPADDRTABLE;
+// FIXME: SIZEOF_IPADDRTABLE(x)
+STRUCT!{struct MIB_IPFORWARDNUMBER {
+ dwValue: DWORD,
+}}
+pub type PMIB_IPFORWARDNUMBER = *mut MIB_IPFORWARDNUMBER;
+pub type MIB_IPFORWARD_PROTO = NL_ROUTE_PROTOCOL;
+ENUM!{enum MIB_IPFORWARD_TYPE {
+ MIB_IPROUTE_TYPE_OTHER = 1,
+ MIB_IPROUTE_TYPE_INVALID = 2,
+ MIB_IPROUTE_TYPE_DIRECT = 3,
+ MIB_IPROUTE_TYPE_INDIRECT = 4,
+}}
+STRUCT!{struct MIB_IPFORWARDROW {
+ dwForwardDest: DWORD,
+ dwForwardMask: DWORD,
+ dwForwardPolicy: DWORD,
+ dwForwardNextHop: DWORD,
+ dwForwardIfIndex: IF_INDEX,
+ ForwardType: MIB_IPFORWARD_TYPE,
+ ForwardProto: MIB_IPFORWARD_PROTO,
+ dwForwardAge: DWORD,
+ dwForwardNextHopAS: DWORD,
+ dwForwardMetric1: DWORD,
+ dwForwardMetric2: DWORD,
+ dwForwardMetric3: DWORD,
+ dwForwardMetric4: DWORD,
+ dwForwardMetric5: DWORD,
+}}
+pub type PMIB_IPFORWARDROW = *mut MIB_IPFORWARDROW;
+STRUCT!{struct MIB_IPFORWARDTABLE {
+ dwNumEntries: DWORD,
+ table: [MIB_IPFORWARDROW; ANY_SIZE],
+}}
+pub type PMIB_IPFORWARDTABLE = *mut MIB_IPFORWARDTABLE;
+// FIXME: SIZEOF_IPFORWARDTABLE(x)
+ENUM!{enum MIB_IPNET_TYPE {
+ MIB_IPNET_TYPE_OTHER = 1,
+ MIB_IPNET_TYPE_INVALID = 2,
+ MIB_IPNET_TYPE_DYNAMIC = 3,
+ MIB_IPNET_TYPE_STATIC = 4,
+}}
+STRUCT!{struct MIB_IPNETROW_LH {
+ dwIndex: IF_INDEX,
+ dwPhysAddrLen: DWORD,
+ bPhysAddr: [UCHAR; MAXLEN_PHYSADDR],
+ dwAddr: DWORD,
+ Type: MIB_IPNET_TYPE,
+}}
+pub type PMIB_IPNETROW_LH = *mut MIB_IPNETROW_LH;
+STRUCT!{struct MIB_IPNETROW_W2K {
+ dwIndex: IF_INDEX,
+ dwPhysAddrLen: DWORD,
+ bPhysAddr: [UCHAR; MAXLEN_PHYSADDR],
+ dwAddr: DWORD,
+ dwType: DWORD,
+}}
+pub type PMIB_IPNETROW_W2K = *mut MIB_IPNETROW_W2K;
+pub type MIB_IPNETROW = MIB_IPNETROW_LH;
+pub type PMIB_IPNETROW = *mut MIB_IPNETROW;
+STRUCT!{struct MIB_IPNETTABLE {
+ dwNumEntries: DWORD,
+ table: [MIB_IPNETROW; ANY_SIZE],
+}}
+pub type PMIB_IPNETTABLE = *mut MIB_IPNETTABLE;
+// FIXME: SIZEOF_IPNETTABLE(x)
+ENUM!{enum MIB_IPSTATS_FORWARDING {
+ MIB_IP_FORWARDING = 1,
+ MIB_IP_NOT_FORWARDING = 2,
+}}
+pub type PMIB_IPSTATS_FORWARDING = *mut MIB_IPSTATS_FORWARDING;
+STRUCT!{struct MIB_IPSTATS_LH {
+ Forwarding: MIB_IPSTATS_FORWARDING,
+ dwDefaultTTL: DWORD,
+ dwInReceives: DWORD,
+ dwInHdrErrors: DWORD,
+ dwInAddrErrors: DWORD,
+ dwForwDatagrams: DWORD,
+ dwInUnknownProtos: DWORD,
+ dwInDiscards: DWORD,
+ dwInDelivers: DWORD,
+ dwOutRequests: DWORD,
+ dwRoutingDiscards: DWORD,
+ dwOutDiscards: DWORD,
+ dwOutNoRoutes: DWORD,
+ dwReasmTimeout: DWORD,
+ dwReasmReqds: DWORD,
+ dwReasmOks: DWORD,
+ dwReasmFails: DWORD,
+ dwFragOks: DWORD,
+ dwFragFails: DWORD,
+ dwFragCreates: DWORD,
+ dwNumIf: DWORD,
+ dwNumAddr: DWORD,
+ dwNumRoutes: DWORD,
+}}
+pub type PMIB_IPSTATS_LH = *mut MIB_IPSTATS_LH;
+STRUCT!{struct MIB_IPSTATS_W2K {
+ dwForwarding: DWORD,
+ dwDefaultTTL: DWORD,
+ dwInReceives: DWORD,
+ dwInHdrErrors: DWORD,
+ dwInAddrErrors: DWORD,
+ dwForwDatagrams: DWORD,
+ dwInUnknownProtos: DWORD,
+ dwInDiscards: DWORD,
+ dwInDelivers: DWORD,
+ dwOutRequests: DWORD,
+ dwRoutingDiscards: DWORD,
+ dwOutDiscards: DWORD,
+ dwOutNoRoutes: DWORD,
+ dwReasmTimeout: DWORD,
+ dwReasmReqds: DWORD,
+ dwReasmOks: DWORD,
+ dwReasmFails: DWORD,
+ dwFragOks: DWORD,
+ dwFragFails: DWORD,
+ dwFragCreates: DWORD,
+ dwNumIf: DWORD,
+ dwNumAddr: DWORD,
+ dwNumRoutes: DWORD,
+}}
+pub type PMIB_IPSTATS_W2K = *mut MIB_IPSTATS_W2K;
+pub type MIB_IPSTATS = MIB_IPSTATS_LH;
+pub type PMIB_IPSTATS = *mut MIB_IPSTATS;
+STRUCT!{struct MIBICMPSTATS {
+ dwMsgs: DWORD,
+ dwErrors: DWORD,
+ dwDestUnreachs: DWORD,
+ dwTimeExcds: DWORD,
+ dwParmProbs: DWORD,
+ dwSrcQuenchs: DWORD,
+ dwRedirects: DWORD,
+ dwEchos: DWORD,
+ dwEchoReps: DWORD,
+ dwTimestamps: DWORD,
+ dwTimestampReps: DWORD,
+ dwAddrMasks: DWORD,
+ dwAddrMaskReps: DWORD,
+}}
+pub type PMIBICMPSTATS = *mut MIBICMPSTATS;
+STRUCT!{struct MIBICMPINFO {
+ icmpInStats: MIBICMPSTATS,
+ icmpOutStats: MIBICMPSTATS,
+}}
+STRUCT!{struct MIB_ICMP {
+ stats: MIBICMPINFO,
+}}
+pub type PMIB_ICMP = *mut MIB_ICMP;
+STRUCT!{struct MIBICMPSTATS_EX_XPSP1 {
+ dwMsgs: DWORD,
+ dwErrors: DWORD,
+ rgdwTypeCount: [DWORD; 256],
+}}
+pub type PMIBICMPSTATS_EX_XPSP1 = *mut MIBICMPSTATS_EX_XPSP1;
+pub type MIBICMPSTATS_EX = MIBICMPSTATS_EX_XPSP1;
+pub type PMIBICMPSTATS_EX = *mut MIBICMPSTATS_EX_XPSP1;
+STRUCT!{struct MIB_ICMP_EX_XPSP1 {
+ icmpInStats: MIBICMPSTATS_EX,
+ icmpOutStats: MIBICMPSTATS_EX,
+}}
+pub type PMIB_ICMP_EX_XPSP1 = *mut MIB_ICMP_EX_XPSP1;
+pub type MIB_ICMP_EX = MIB_ICMP_EX_XPSP1;
+pub type PMIB_ICMP_EX = *mut MIB_ICMP_EX_XPSP1;
+ENUM!{enum ICMP6_TYPE {
+ ICMP6_DST_UNREACH = 1,
+ ICMP6_PACKET_TOO_BIG = 2,
+ ICMP6_TIME_EXCEEDED = 3,
+ ICMP6_PARAM_PROB = 4,
+ ICMP6_ECHO_REQUEST = 128,
+ ICMP6_ECHO_REPLY = 129,
+ ICMP6_MEMBERSHIP_QUERY = 130,
+ ICMP6_MEMBERSHIP_REPORT = 131,
+ ICMP6_MEMBERSHIP_REDUCTION = 132,
+ ND_ROUTER_SOLICIT = 133,
+ ND_ROUTER_ADVERT = 134,
+ ND_NEIGHBOR_SOLICIT = 135,
+ ND_NEIGHBOR_ADVERT = 136,
+ ND_REDIRECT = 137,
+ ICMP6_V2_MEMBERSHIP_REPORT = 143,
+}}
+pub type PICMP6_TYPE = *mut ICMP6_TYPE;
+ENUM!{enum ICMP4_TYPE {
+ ICMP4_ECHO_REPLY = 0,
+ ICMP4_DST_UNREACH = 3,
+ ICMP4_SOURCE_QUENCH = 4,
+ ICMP4_REDIRECT = 5,
+ ICMP4_ECHO_REQUEST = 8,
+ ICMP4_ROUTER_ADVERT = 9,
+ ICMP4_ROUTER_SOLICIT = 10,
+ ICMP4_TIME_EXCEEDED = 11,
+ ICMP4_PARAM_PROB = 12,
+ ICMP4_TIMESTAMP_REQUEST = 13,
+ ICMP4_TIMESTAMP_REPLY = 14,
+ ICMP4_MASK_REQUEST = 17,
+ ICMP4_MASK_REPLY = 18,
+}}
+pub type PICMP4_TYPE = *mut ICMP4_TYPE;
+STRUCT!{struct MIB_IPMCAST_OIF_XP {
+ dwOutIfIndex: DWORD,
+ dwNextHopAddr: DWORD,
+ dwReserved: DWORD,
+ dwReserved1: DWORD,
+}}
+pub type PMIB_IPMCAST_OIF_XP = *mut MIB_IPMCAST_OIF_XP;
+STRUCT!{struct MIB_IPMCAST_OIF_W2K {
+ dwOutIfIndex: DWORD,
+ dwNextHopAddr: DWORD,
+ pvReserved: PVOID,
+ dwReserved: DWORD,
+}}
+pub type PMIB_IPMCAST_OIF_W2K = *mut MIB_IPMCAST_OIF_W2K;
+pub type MIB_IPMCAST_OIF = MIB_IPMCAST_OIF_XP;
+pub type PMIB_IPMCAST_OIF = *mut MIB_IPMCAST_OIF;
+STRUCT!{struct MIB_IPMCAST_MFE {
+ dwGroup: DWORD,
+ dwSource: DWORD,
+ dwSrcMask: DWORD,
+ dwUpStrmNgbr: DWORD,
+ dwInIfIndex: DWORD,
+ dwInIfProtocol: DWORD,
+ dwRouteProtocol: DWORD,
+ dwRouteNetwork: DWORD,
+ dwRouteMask: DWORD,
+ ulUpTime: ULONG,
+ ulExpiryTime: ULONG,
+ ulTimeOut: ULONG,
+ ulNumOutIf: ULONG,
+ fFlags: DWORD,
+ dwReserved: DWORD,
+ rgmioOutInfo: [MIB_IPMCAST_OIF; ANY_SIZE],
+}}
+pub type PMIB_IPMCAST_MFE = *mut MIB_IPMCAST_MFE;
+STRUCT!{struct MIB_MFE_TABLE {
+ dwNumEntries: DWORD,
+ table: [MIB_IPMCAST_MFE; ANY_SIZE],
+}}
+pub type PMIB_MFE_TABLE = *mut MIB_MFE_TABLE;
+// FIXME: SIZEOF_BASIC_MIB_MFE
+// FIXME: SIZEOF_MIB_MFE(x)
+STRUCT!{struct MIB_IPMCAST_OIF_STATS_LH {
+ dwOutIfIndex: DWORD,
+ dwNextHopAddr: DWORD,
+ dwDialContext: DWORD,
+ ulTtlTooLow: ULONG,
+ ulFragNeeded: ULONG,
+ ulOutPackets: ULONG,
+ ulOutDiscards: ULONG,
+}}
+pub type PMIB_IPMCAST_OIF_STATS_LH = *mut MIB_IPMCAST_OIF_STATS_LH;
+STRUCT!{struct MIB_IPMCAST_OIF_STATS_W2K {
+ dwOutIfIndex: DWORD,
+ dwNextHopAddr: DWORD,
+ pvDialContext: PVOID,
+ ulTtlTooLow: ULONG,
+ ulFragNeeded: ULONG,
+ ulOutPackets: ULONG,
+ ulOutDiscards: ULONG,
+}}
+pub type PMIB_IPMCAST_OIF_STATS_W2K = *mut MIB_IPMCAST_OIF_STATS_W2K;
+pub type MIB_IPMCAST_OIF_STATS = MIB_IPMCAST_OIF_STATS_LH;
+pub type PMIB_IPMCAST_OIF_STATS = *mut MIB_IPMCAST_OIF_STATS;
+STRUCT!{struct MIB_IPMCAST_MFE_STATS {
+ dwGroup: DWORD,
+ dwSource: DWORD,
+ dwSrcMask: DWORD,
+ dwUpStrmNgbr: DWORD,
+ dwInIfIndex: DWORD,
+ dwInIfProtocol: DWORD,
+ dwRouteProtocol: DWORD,
+ dwRouteNetwork: DWORD,
+ dwRouteMask: DWORD,
+ ulUpTime: ULONG,
+ ulExpiryTime: ULONG,
+ ulNumOutIf: ULONG,
+ ulInPkts: ULONG,
+ ulInOctets: ULONG,
+ ulPktsDifferentIf: ULONG,
+ ulQueueOverflow: ULONG,
+ rgmiosOutStats: [MIB_IPMCAST_OIF_STATS; ANY_SIZE],
+}}
+pub type PMIB_IPMCAST_MFE_STATS = *mut MIB_IPMCAST_MFE_STATS;
+STRUCT!{struct MIB_MFE_STATS_TABLE {
+ dwNumEntries: DWORD,
+ table: [MIB_IPMCAST_MFE_STATS; ANY_SIZE],
+}}
+pub type PMIB_MFE_STATS_TABLE = *mut MIB_MFE_STATS_TABLE;
+// FIXME: SIZEOF_BASIC_MIB_MFE_STATS
+// FIXME: SIZEOF_MIB_MFE_STATS(x)
+STRUCT!{struct MIB_IPMCAST_MFE_STATS_EX_XP {
+ dwGroup: DWORD,
+ dwSource: DWORD,
+ dwSrcMask: DWORD,
+ dwUpStrmNgbr: DWORD,
+ dwInIfIndex: DWORD,
+ dwInIfProtocol: DWORD,
+ dwRouteProtocol: DWORD,
+ dwRouteNetwork: DWORD,
+ dwRouteMask: DWORD,
+ ulUpTime: ULONG,
+ ulExpiryTime: ULONG,
+ ulNumOutIf: ULONG,
+ ulInPkts: ULONG,
+ ulInOctets: ULONG,
+ ulPktsDifferentIf: ULONG,
+ ulQueueOverflow: ULONG,
+ ulUninitMfe: ULONG,
+ ulNegativeMfe: ULONG,
+ ulInDiscards: ULONG,
+ ulInHdrErrors: ULONG,
+ ulTotalOutPackets: ULONG,
+ rgmiosOutStats: [MIB_IPMCAST_OIF_STATS; ANY_SIZE],
+}}
+pub type PMIB_IPMCAST_MFE_STATS_EX_XP = *mut MIB_IPMCAST_MFE_STATS_EX_XP;
+pub type MIB_IPMCAST_MFE_STATS_EX = MIB_IPMCAST_MFE_STATS_EX_XP;
+pub type PMIB_IPMCAST_MFE_STATS_EX = *mut MIB_IPMCAST_MFE_STATS_EX;
+STRUCT!{struct MIB_MFE_STATS_TABLE_EX_XP {
+ dwNumEntries: DWORD,
+ table: [PMIB_IPMCAST_MFE_STATS_EX_XP; ANY_SIZE],
+}}
+pub type PMIB_MFE_STATS_TABLE_EX_XP = *mut MIB_MFE_STATS_TABLE_EX_XP;
+pub type MIB_MFE_STATS_TABLE_EX = MIB_MFE_STATS_TABLE_EX_XP;
+pub type PMIB_MFE_STATS_TABLE_EX = *mut MIB_MFE_STATS_TABLE_EX;
+// FIXME: SIZEOF_BASIC_MIB_MFE_STATS_EX
+// FIXME: SIZEOF_MIB_MFE_STATS_EX(x)
+STRUCT!{struct MIB_IPMCAST_GLOBAL {
+ dwEnable: DWORD,
+}}
+pub type PMIB_IPMCAST_GLOBAL = *mut MIB_IPMCAST_GLOBAL;
+STRUCT!{struct MIB_IPMCAST_IF_ENTRY {
+ dwIfIndex: DWORD,
+ dwTtl: DWORD,
+ dwProtocol: DWORD,
+ dwRateLimit: DWORD,
+ ulInMcastOctets: ULONG,
+ ulOutMcastOctets: ULONG,
+}}
+pub type PMIB_IPMCAST_IF_ENTRY = *mut MIB_IPMCAST_IF_ENTRY;
+STRUCT!{struct MIB_IPMCAST_IF_TABLE {
+ dwNumEntries: DWORD,
+ table: [MIB_IPMCAST_IF_ENTRY; ANY_SIZE],
+}}
+pub type PMIB_IPMCAST_IF_TABLE = *mut MIB_IPMCAST_IF_TABLE;
+// FIXME: SIZEOF_MCAST_IF_TABLE(x)
diff --git a/third_party/rust/chromium_crates_io/vendor/winapi-0.3.9/src/shared/iprtrmib.rs b/third_party/rust/chromium_crates_io/vendor/winapi-0.3.9/src/shared/iprtrmib.rs
new file mode 100644
index 000000000000..cc47767fe326
--- /dev/null
+++ b/third_party/rust/chromium_crates_io/vendor/winapi-0.3.9/src/shared/iprtrmib.rs
@@ -0,0 +1,125 @@
+// Licensed under the Apache License, Version 2.0
+// or the MIT license
+// , at your option.
+// All files in the project carrying such notice may not be copied, modified, or distributed
+// except according to those terms.
+// #include
+// #include
+// #include
+// #include
+// #include
+// #include
+use shared::ipmib::MIB_IPFORWARDROW;
+use shared::minwindef::{BOOL, BYTE, DWORD};
+use shared::ntdef::{PWCHAR, ULONGLONG, WCHAR};
+pub const MAX_SCOPE_NAME_LEN: usize = 255;
+pub const MAX_MIB_OFFSET: usize = 8;
+const ANY_SIZE: usize = 1;
+STRUCT!{struct MIB_OPAQUE_QUERY {
+ dwVarId: DWORD,
+ rgdwVarIndex: [DWORD; ANY_SIZE],
+}}
+pub type PMIB_OPAQUE_QUERY = *mut MIB_OPAQUE_QUERY;
+ENUM!{enum TCP_TABLE_CLASS {
+ TCP_TABLE_BASIC_LISTENER = 0,
+ TCP_TABLE_BASIC_CONNECTIONS = 1,
+ TCP_TABLE_BASIC_ALL = 2,
+ TCP_TABLE_OWNER_PID_LISTENER = 3,
+ TCP_TABLE_OWNER_PID_CONNECTIONS = 4,
+ TCP_TABLE_OWNER_PID_ALL = 5,
+ TCP_TABLE_OWNER_MODULE_LISTENER = 6,
+ TCP_TABLE_OWNER_MODULE_CONNECTIONS = 7,
+ TCP_TABLE_OWNER_MODULE_ALL = 8,
+}}
+pub type PTCP_TABLE_CLASS = *mut TCP_TABLE_CLASS;
+ENUM!{enum UDP_TABLE_CLASS {
+ UDP_TABLE_BASIC = 0,
+ UDP_TABLE_OWNER_PID = 1,
+ UDP_TABLE_OWNER_MODULE = 2,
+}}
+pub type PUDP_TABLE_CLASS = *mut UDP_TABLE_CLASS;
+ENUM!{enum TCPIP_OWNER_MODULE_INFO_CLASS {
+ TCPIP_OWNER_MODULE_INFO_BASIC = 0,
+}}
+pub type PTCPIP_OWNER_MODULE_INFO_CLASS = *mut TCPIP_OWNER_MODULE_INFO_CLASS;
+STRUCT!{struct TCPIP_OWNER_MODULE_BASIC_INFO {
+ pModuleName: PWCHAR,
+ pModulePath: PWCHAR,
+}}
+pub type PTCPIP_OWNER_MODULE_BASIC_INFO = *mut TCPIP_OWNER_MODULE_BASIC_INFO;
+STRUCT!{struct MIB_IPMCAST_BOUNDARY {
+ dwIfIndex: DWORD,
+ dwGroupAddress: DWORD,
+ dwGroupMask: DWORD,
+ dwStatus: DWORD,
+}}
+pub type PMIB_IPMCAST_BOUNDARY = *mut MIB_IPMCAST_BOUNDARY;
+STRUCT!{struct MIB_IPMCAST_BOUNDARY_TABLE {
+ dwNumEntries: DWORD,
+ table: [MIB_IPMCAST_BOUNDARY; ANY_SIZE],
+}}
+pub type PMIB_IPMCAST_BOUNDARY_TABLE = *mut MIB_IPMCAST_BOUNDARY_TABLE;
+STRUCT!{struct MIB_BOUNDARYROW {
+ dwGroupAddress: DWORD,
+ dwGroupMask: DWORD,
+}}
+pub type PMIB_BOUNDARYROW = *mut MIB_BOUNDARYROW;
+STRUCT!{struct MIB_MCAST_LIMIT_ROW {
+ dwTtl: DWORD,
+ dwRateLimit: DWORD,
+}}
+pub type PMIB_MCAST_LIMIT_ROW = *mut MIB_MCAST_LIMIT_ROW;
+pub type SN_CHAR = WCHAR;
+pub type SCOPE_NAME_BUFFER = [SN_CHAR; MAX_SCOPE_NAME_LEN + 1];
+pub type SCOPE_NAME = *mut SCOPE_NAME_BUFFER;
+STRUCT!{struct MIB_IPMCAST_SCOPE {
+ dwGroupAddress: DWORD,
+ dwGroupMask: DWORD,
+ snNameBuffer: SCOPE_NAME_BUFFER,
+ dwStatus: DWORD,
+}}
+pub type PMIB_IPMCAST_SCOPE = *mut MIB_IPMCAST_SCOPE;
+STRUCT!{struct MIB_IPDESTROW {
+ ForwardRow: MIB_IPFORWARDROW,
+ dwForwardPreference: DWORD,
+ dwForwardViewSet: DWORD,
+}}
+pub type PMIB_IPDESTROW = *mut MIB_IPDESTROW;
+STRUCT!{struct MIB_IPDESTTABLE {
+ dwNumEntries: DWORD,
+ table: [MIB_IPDESTROW; ANY_SIZE],
+}}
+pub type PMIB_IPDESTTABLE = *mut MIB_IPDESTTABLE;
+STRUCT!{struct MIB_BEST_IF {
+ dwDestAddr: DWORD,
+ dwIfIndex: DWORD,
+}}
+pub type PMIB_BEST_IF = *mut MIB_BEST_IF;
+STRUCT!{struct MIB_PROXYARP {
+ dwAddress: DWORD,
+ dwMask: DWORD,
+ dwIfIndex: DWORD,
+}}
+pub type PMIB_PROXYARP = *mut MIB_PROXYARP;
+STRUCT!{struct MIB_IFSTATUS {
+ dwIfIndex: DWORD,
+ dwAdminStatus: DWORD,
+ dwOperationalStatus: DWORD,
+ bMHbeatActive: BOOL,
+ bMHbeatAlive: BOOL,
+}}
+pub type PMIB_IFSTATUS = *mut MIB_IFSTATUS;
+STRUCT!{struct MIB_ROUTESTATE {
+ bRoutesSetToStack: BOOL,
+}}
+pub type PMIB_ROUTESTATE = *mut MIB_ROUTESTATE;
+UNION!{union MIB_OPAQUE_INFO_u {
+ [u64; 1],
+ ullAlign ullAlign_mut: ULONGLONG,
+ rgbyData rgbyData_mut: [BYTE; 1],
+}}
+STRUCT!{struct MIB_OPAQUE_INFO {
+ dwId: DWORD,
+ u: MIB_OPAQUE_INFO_u,
+}}
+pub type PMIB_OPAQUE_INFO = *mut MIB_OPAQUE_INFO;
diff --git a/third_party/rust/chromium_crates_io/vendor/winapi-0.3.9/src/shared/ks.rs b/third_party/rust/chromium_crates_io/vendor/winapi-0.3.9/src/shared/ks.rs
new file mode 100644
index 000000000000..3a2ab103cd8f
--- /dev/null
+++ b/third_party/rust/chromium_crates_io/vendor/winapi-0.3.9/src/shared/ks.rs
@@ -0,0 +1,63 @@
+// Licensed under the Apache License, Version 2.0
+// or the MIT license
+// , at your option.
+// All files in the project carrying such notice may not be copied, modified, or distributed
+// except according to those terms
+// Licensed under the MIT License
+//! Mappings for the contents of ks.h
+DEFINE_GUID!{KSCATEGORY_BRIDGE,
+ 0x085AFF00, 0x62CE, 0x11CF, 0xA5, 0xD6, 0x28, 0xDB, 0x04, 0xC1, 0x00, 0x00}
+DEFINE_GUID!{KSCATEGORY_CAPTURE,
+ 0x65E8773D, 0x8F56, 0x11D0, 0xA3, 0xB9, 0x00, 0xA0, 0xC9, 0x22, 0x31, 0x96}
+DEFINE_GUID!{KSCATEGORY_VIDEO_CAMERA,
+ 0xe5323777, 0xf976, 0x4f5b, 0x9b, 0x55, 0xb9, 0x46, 0x99, 0xc4, 0x6e, 0x44}
+DEFINE_GUID!{KSCATEGORY_SENSOR_CAMERA,
+ 0x24e552d7, 0x6523, 0x47f7, 0xa6, 0x47, 0xd3, 0x46, 0x5b, 0xf1, 0xf5, 0xca}
+DEFINE_GUID!{KSCATEGORY_SENSOR_GROUP,
+ 0x669C7214, 0x0A88, 0x4311, 0xA7, 0xF3, 0x4E, 0x79, 0x82, 0x0E, 0x33, 0xBD}
+DEFINE_GUID!{KSCATEGORY_RENDER,
+ 0x65E8773E, 0x8F56, 0x11D0, 0xA3, 0xB9, 0x00, 0xA0, 0xC9, 0x22, 0x31, 0x96}
+DEFINE_GUID!{KSCATEGORY_MIXER,
+ 0xAD809C00, 0x7B88, 0x11D0, 0xA5, 0xD6, 0x28, 0xDB, 0x04, 0xC1, 0x00, 0x00}
+DEFINE_GUID!{KSCATEGORY_SPLITTER,
+ 0x0A4252A0, 0x7E70, 0x11D0, 0xA5, 0xD6, 0x28, 0xDB, 0x04, 0xC1, 0x00, 0x00}
+DEFINE_GUID!{KSCATEGORY_DATACOMPRESSOR,
+ 0x1E84C900, 0x7E70, 0x11D0, 0xA5, 0xD6, 0x28, 0xDB, 0x04, 0xC1, 0x00, 0x00}
+DEFINE_GUID!{KSCATEGORY_DATADECOMPRESSOR,
+ 0x2721AE20, 0x7E70, 0x11D0, 0xA5, 0xD6, 0x28, 0xDB, 0x04, 0xC1, 0x00, 0x00}
+DEFINE_GUID!{KSCATEGORY_DATATRANSFORM,
+ 0x2EB07EA0, 0x7E70, 0x11D0, 0xA5, 0xD6, 0x28, 0xDB, 0x04, 0xC1, 0x00, 0x00}
+DEFINE_GUID!{KSMFT_CATEGORY_VIDEO_DECODER,
+ 0xd6c02d4b, 0x6833, 0x45b4, 0x97, 0x1a, 0x05, 0xa4, 0xb0, 0x4b, 0xab, 0x91}
+DEFINE_GUID!{KSMFT_CATEGORY_VIDEO_ENCODER,
+ 0xf79eac7d, 0xe545, 0x4387, 0xbd, 0xee, 0xd6, 0x47, 0xd7, 0xbd, 0xe4, 0x2a}
+DEFINE_GUID!{KSMFT_CATEGORY_VIDEO_EFFECT,
+ 0x12e17c21, 0x532c, 0x4a6e, 0x8a, 0x1c, 0x40, 0x82, 0x5a, 0x73, 0x63, 0x97}
+DEFINE_GUID!{KSMFT_CATEGORY_MULTIPLEXER,
+ 0x059c561e, 0x05ae, 0x4b61, 0xb6, 0x9d, 0x55, 0xb6, 0x1e, 0xe5, 0x4a, 0x7b}
+DEFINE_GUID!{KSMFT_CATEGORY_DEMULTIPLEXER,
+ 0xa8700a7a, 0x939b, 0x44c5, 0x99, 0xd7, 0x76, 0x22, 0x6b, 0x23, 0xb3, 0xf1}
+DEFINE_GUID!{KSMFT_CATEGORY_AUDIO_DECODER,
+ 0x9ea73fb4, 0xef7a, 0x4559, 0x8d, 0x5d, 0x71, 0x9d, 0x8f, 0x04, 0x26, 0xc7}
+DEFINE_GUID!{KSMFT_CATEGORY_AUDIO_ENCODER,
+ 0x91c64bd0, 0xf91e, 0x4d8c, 0x92, 0x76, 0xdb, 0x24, 0x82, 0x79, 0xd9, 0x75}
+DEFINE_GUID!{KSMFT_CATEGORY_AUDIO_EFFECT,
+ 0x11064c48, 0x3648, 0x4ed0, 0x93, 0x2e, 0x05, 0xce, 0x8a, 0xc8, 0x11, 0xb7}
+DEFINE_GUID!{KSMFT_CATEGORY_VIDEO_PROCESSOR,
+ 0x302ea3fc, 0xaa5f, 0x47f9, 0x9f, 0x7a, 0xc2, 0x18, 0x8b, 0xb1, 0x63, 0x02}
+DEFINE_GUID!{KSMFT_CATEGORY_OTHER,
+ 0x90175d57, 0xb7ea, 0x4901, 0xae, 0xb3, 0x93, 0x3a, 0x87, 0x47, 0x75, 0x6f}
+DEFINE_GUID!{KSCATEGORY_COMMUNICATIONSTRANSFORM,
+ 0xCF1DDA2C, 0x9743, 0x11D0, 0xA3, 0xEE, 0x00, 0xA0, 0xC9, 0x22, 0x31, 0x96}
+DEFINE_GUID!{KSCATEGORY_INTERFACETRANSFORM,
+ 0xCF1DDA2D, 0x9743, 0x11D0, 0xA3, 0xEE, 0x00, 0xA0, 0xC9, 0x22, 0x31, 0x96}
+DEFINE_GUID!{KSCATEGORY_MEDIUMTRANSFORM,
+ 0xCF1DDA2E, 0x9743, 0x11D0, 0xA3, 0xEE, 0x00, 0xA0, 0xC9, 0x22, 0x31, 0x96}
+DEFINE_GUID!{KSCATEGORY_FILESYSTEM,
+ 0x760FED5E, 0x9357, 0x11D0, 0xA3, 0xCC, 0x00, 0xA0, 0xC9, 0x22, 0x31, 0x96}
+DEFINE_GUID!{KSCATEGORY_CLOCK,
+ 0x53172480, 0x4791, 0x11D0, 0xA5, 0xD6, 0x28, 0xDB, 0x04, 0xC1, 0x00, 0x00}
+DEFINE_GUID!{KSCATEGORY_PROXY,
+ 0x97EBAACA, 0x95BD, 0x11D0, 0xA3, 0xEA, 0x00, 0xA0, 0xC9, 0x22, 0x31, 0x96}
+DEFINE_GUID!{KSCATEGORY_QUALITY,
+ 0x97EBAACB, 0x95BD, 0x11D0, 0xA3, 0xEA, 0x00, 0xA0, 0xC9, 0x22, 0x31, 0x96}
diff --git a/third_party/rust/chromium_crates_io/vendor/winapi-0.3.9/src/shared/ksmedia.rs b/third_party/rust/chromium_crates_io/vendor/winapi-0.3.9/src/shared/ksmedia.rs
new file mode 100644
index 000000000000..cd640376e63d
--- /dev/null
+++ b/third_party/rust/chromium_crates_io/vendor/winapi-0.3.9/src/shared/ksmedia.rs
@@ -0,0 +1,110 @@
+// Licensed under the Apache License, Version 2.0
+// or the MIT license
+// , at your option.
+// All files in the project carrying such notice may not be copied, modified, or distributed
+// except according to those terms
+// Licensed under the MIT License
+//! Mappings for the contents of ksmedia.h
+use shared::minwindef::DWORD;
+DEFINE_GUID!{KSCATEGORY_AUDIO,
+ 0x6994AD04, 0x93EF, 0x11D0, 0xA3, 0xCC, 0x00, 0xA0, 0xC9, 0x22, 0x31, 0x96}
+DEFINE_GUID!{KSCATEGORY_VIDEO,
+ 0x6994AD05, 0x93EF, 0x11D0, 0xA3, 0xCC, 0x00, 0xA0, 0xC9, 0x22, 0x31, 0x96}
+DEFINE_GUID!{KSCATEGORY_REALTIME,
+ 0xEB115FFC, 0x10C8, 0x4964, 0x83, 0x1D, 0x6D, 0xCB, 0x02, 0xE6, 0xF2, 0x3F}
+DEFINE_GUID!{KSCATEGORY_TEXT,
+ 0x6994AD06, 0x93EF, 0x11D0, 0xA3, 0xCC, 0x00, 0xA0, 0xC9, 0x22, 0x31, 0x96}
+DEFINE_GUID!{KSCATEGORY_NETWORK,
+ 0x67C9CC3C, 0x69C4, 0x11D2, 0x87, 0x59, 0x00, 0xA0, 0xC9, 0x22, 0x31, 0x96}
+DEFINE_GUID!{KSCATEGORY_TOPOLOGY,
+ 0xDDA54A40, 0x1E4C, 0x11D1, 0xA0, 0x50, 0x40, 0x57, 0x05, 0xC1, 0x00, 0x00}
+DEFINE_GUID!{KSCATEGORY_VIRTUAL,
+ 0x3503EAC4, 0x1F26, 0x11D1, 0x8A, 0xB0, 0x00, 0xA0, 0xC9, 0x22, 0x31, 0x96}
+DEFINE_GUID!{KSCATEGORY_ACOUSTIC_ECHO_CANCEL,
+ 0xBF963D80, 0xC559, 0x11D0, 0x8A, 0x2B, 0x00, 0xA0, 0xC9, 0x25, 0x5A, 0xC1}
+DEFINE_GUID!{KSCATEGORY_SYSAUDIO,
+ 0xA7C7A5B1, 0x5AF3, 0x11D1, 0x9C, 0xED, 0x00, 0xA0, 0x24, 0xBF, 0x04, 0x07}
+DEFINE_GUID!{KSCATEGORY_WDMAUD,
+ 0x3E227E76, 0x690D, 0x11D2, 0x81, 0x61, 0x00, 0x00, 0xF8, 0x77, 0x5B, 0xF1}
+DEFINE_GUID!{KSCATEGORY_AUDIO_GFX,
+ 0x9BAF9572, 0x340C, 0x11D3, 0xAB, 0xDC, 0x00, 0xA0, 0xC9, 0x0A, 0xB1, 0x6F}
+DEFINE_GUID!{KSCATEGORY_AUDIO_SPLITTER,
+ 0x9EA331FA, 0xB91B, 0x45F8, 0x92, 0x85, 0xBD, 0x2B, 0xC7, 0x7A, 0xFC, 0xDE}
+DEFINE_GUID!{KSCATEGORY_AUDIO_DEVICE,
+ 0xFBF6F530, 0x07B9, 0x11D2, 0xA7, 0x1E, 0x00, 0x00, 0xF8, 0x00, 0x47, 0x88}
+DEFINE_GUID!{KSCATEGORY_PREFERRED_WAVEOUT_DEVICE,
+ 0xD6C5066E, 0x72C1, 0x11D2, 0x97, 0x55, 0x00, 0x00, 0xF8, 0x00, 0x47, 0x88}
+DEFINE_GUID!{KSCATEGORY_PREFERRED_WAVEIN_DEVICE,
+ 0xD6C50671, 0x72C1, 0x11D2, 0x97, 0x55, 0x00, 0x00, 0xF8, 0x00, 0x47, 0x88}
+DEFINE_GUID!{KSCATEGORY_PREFERRED_MIDIOUT_DEVICE,
+ 0xD6C50674, 0x72C1, 0x11D2, 0x97, 0x55, 0x00, 0x00, 0xF8, 0x00, 0x47, 0x88}
+DEFINE_GUID!{KSCATEGORY_WDMAUD_USE_PIN_NAME,
+ 0x47A4FA20, 0xA251, 0x11D1, 0xA0, 0x50, 0x00, 0x00, 0xF8, 0x00, 0x47, 0x88}
+DEFINE_GUID!{KSCATEGORY_ESCALANTE_PLATFORM_DRIVER,
+ 0x74F3AEA8, 0x9768, 0x11D1, 0x8E, 0x07, 0x00, 0xA0, 0xC9, 0x5E, 0xC2, 0x2E}
+DEFINE_GUID!{KSDATAFORMAT_SUBTYPE_ANALOG,
+ 0x6DBA3190, 0x67BD, 0x11CF, 0xA0, 0xF7, 0x00, 0x20, 0xAF, 0xD1, 0x56, 0xE4}
+DEFINE_GUID!{KSDATAFORMAT_SUBTYPE_PCM,
+ 0x00000001, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xAA, 0x00, 0x38, 0x9B, 0x71}
+DEFINE_GUID!{KSDATAFORMAT_SUBTYPE_IEEE_FLOAT,
+ 0x00000003, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xAA, 0x00, 0x38, 0x9B, 0x71}
+DEFINE_GUID!{KSDATAFORMAT_SUBTYPE_DRM,
+ 0x00000009, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xAA, 0x00, 0x38, 0x9B, 0x71}
+DEFINE_GUID!{KSDATAFORMAT_SUBTYPE_ALAW,
+ 0x00000006, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xAA, 0x00, 0x38, 0x9B, 0x71}
+DEFINE_GUID!{KSDATAFORMAT_SUBTYPE_MULAW,
+ 0x00000007, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xAA, 0x00, 0x38, 0x9B, 0x71}
+DEFINE_GUID!{KSDATAFORMAT_SUBTYPE_ADPCM,
+ 0x00000002, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xAA, 0x00, 0x38, 0x9B, 0x71}
+DEFINE_GUID!{KSDATAFORMAT_SUBTYPE_MPEG,
+ 0x00000050, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xAA, 0x00, 0x38, 0x9B, 0x71}
+//1720
+pub const SPEAKER_FRONT_LEFT: DWORD = 0x1;
+pub const SPEAKER_FRONT_RIGHT: DWORD = 0x2;
+pub const SPEAKER_FRONT_CENTER: DWORD = 0x4;
+pub const SPEAKER_LOW_FREQUENCY: DWORD = 0x8;
+pub const SPEAKER_BACK_LEFT: DWORD = 0x10;
+pub const SPEAKER_BACK_RIGHT: DWORD = 0x20;
+pub const SPEAKER_FRONT_LEFT_OF_CENTER: DWORD = 0x40;
+pub const SPEAKER_FRONT_RIGHT_OF_CENTER: DWORD = 0x80;
+pub const SPEAKER_BACK_CENTER: DWORD = 0x100;
+pub const SPEAKER_SIDE_LEFT: DWORD = 0x200;
+pub const SPEAKER_SIDE_RIGHT: DWORD = 0x400;
+pub const SPEAKER_TOP_CENTER: DWORD = 0x800;
+pub const SPEAKER_TOP_FRONT_LEFT: DWORD = 0x1000;
+pub const SPEAKER_TOP_FRONT_CENTER: DWORD = 0x2000;
+pub const SPEAKER_TOP_FRONT_RIGHT: DWORD = 0x4000;
+pub const SPEAKER_TOP_BACK_LEFT: DWORD = 0x8000;
+pub const SPEAKER_TOP_BACK_CENTER: DWORD = 0x10000;
+pub const SPEAKER_TOP_BACK_RIGHT: DWORD = 0x20000;
+pub const SPEAKER_RESERVED: DWORD = 0x7FFC0000;
+pub const SPEAKER_ALL: DWORD = 0x80000000;
+pub const KSAUDIO_SPEAKER_DIRECTOUT: DWORD = 0;
+pub const KSAUDIO_SPEAKER_MONO: DWORD = SPEAKER_FRONT_CENTER;
+pub const KSAUDIO_SPEAKER_1POINT1: DWORD = SPEAKER_FRONT_CENTER | SPEAKER_LOW_FREQUENCY;
+pub const KSAUDIO_SPEAKER_STEREO: DWORD = SPEAKER_FRONT_LEFT | SPEAKER_FRONT_RIGHT;
+pub const KSAUDIO_SPEAKER_2POINT1: DWORD = SPEAKER_FRONT_LEFT | SPEAKER_FRONT_RIGHT
+ | SPEAKER_LOW_FREQUENCY;
+pub const KSAUDIO_SPEAKER_3POINT0: DWORD = SPEAKER_FRONT_LEFT | SPEAKER_FRONT_RIGHT
+ | SPEAKER_FRONT_CENTER;
+pub const KSAUDIO_SPEAKER_3POINT1: DWORD = SPEAKER_FRONT_LEFT | SPEAKER_FRONT_RIGHT
+ | SPEAKER_FRONT_CENTER | SPEAKER_LOW_FREQUENCY;
+pub const KSAUDIO_SPEAKER_QUAD: DWORD = SPEAKER_FRONT_LEFT | SPEAKER_FRONT_RIGHT
+ | SPEAKER_BACK_LEFT | SPEAKER_BACK_RIGHT;
+pub const KSAUDIO_SPEAKER_SURROUND: DWORD = SPEAKER_FRONT_LEFT | SPEAKER_FRONT_RIGHT
+ | SPEAKER_FRONT_CENTER | SPEAKER_BACK_CENTER;
+pub const KSAUDIO_SPEAKER_5POINT0: DWORD = SPEAKER_FRONT_LEFT | SPEAKER_FRONT_RIGHT
+ | SPEAKER_FRONT_CENTER | SPEAKER_SIDE_LEFT | SPEAKER_SIDE_RIGHT;
+pub const KSAUDIO_SPEAKER_5POINT1: DWORD = SPEAKER_FRONT_LEFT | SPEAKER_FRONT_RIGHT
+ | SPEAKER_FRONT_CENTER | SPEAKER_LOW_FREQUENCY | SPEAKER_BACK_LEFT | SPEAKER_BACK_RIGHT;
+pub const KSAUDIO_SPEAKER_7POINT0: DWORD = SPEAKER_FRONT_LEFT | SPEAKER_FRONT_RIGHT
+ | SPEAKER_FRONT_CENTER | SPEAKER_BACK_LEFT | SPEAKER_BACK_RIGHT | SPEAKER_SIDE_LEFT
+ | SPEAKER_SIDE_RIGHT;
+pub const KSAUDIO_SPEAKER_7POINT1: DWORD = SPEAKER_FRONT_LEFT | SPEAKER_FRONT_RIGHT
+ | SPEAKER_FRONT_CENTER | SPEAKER_LOW_FREQUENCY | SPEAKER_BACK_LEFT | SPEAKER_BACK_RIGHT
+ | SPEAKER_FRONT_LEFT_OF_CENTER | SPEAKER_FRONT_RIGHT_OF_CENTER;
+pub const KSAUDIO_SPEAKER_5POINT1_SURROUND: DWORD = SPEAKER_FRONT_LEFT | SPEAKER_FRONT_RIGHT
+ | SPEAKER_FRONT_CENTER | SPEAKER_LOW_FREQUENCY | SPEAKER_SIDE_LEFT | SPEAKER_SIDE_RIGHT;
+pub const KSAUDIO_SPEAKER_7POINT1_SURROUND: DWORD = SPEAKER_FRONT_LEFT | SPEAKER_FRONT_RIGHT
+ | SPEAKER_FRONT_CENTER | SPEAKER_LOW_FREQUENCY | SPEAKER_BACK_LEFT | SPEAKER_BACK_RIGHT
+ | SPEAKER_SIDE_LEFT | SPEAKER_SIDE_RIGHT;
diff --git a/third_party/rust/chromium_crates_io/vendor/winapi-0.3.9/src/shared/ktmtypes.rs b/third_party/rust/chromium_crates_io/vendor/winapi-0.3.9/src/shared/ktmtypes.rs
new file mode 100644
index 000000000000..77394e2d54c8
--- /dev/null
+++ b/third_party/rust/chromium_crates_io/vendor/winapi-0.3.9/src/shared/ktmtypes.rs
@@ -0,0 +1,138 @@
+// Licensed under the Apache License, Version 2.0
+// or the MIT license
+// , at your option.
+// All files in the project carrying such notice may not be copied, modified, or distributed
+// except according to those terms.
+//! Common types for KTM exposed at both the Nt- and Win32-layer
+use shared::guiddef::GUID;
+use shared::minwindef::{DWORD, ULONG};
+use um::winnt::{LARGE_INTEGER, PVOID, WCHAR};
+pub type UOW = GUID;
+pub type PUOW = *mut GUID;
+pub type CRM_PROTOCOL_ID = GUID;
+pub type PCRM_PROTOCOL_ID = *mut GUID;
+pub const TRANSACTION_MANAGER_VOLATILE: ULONG = 0x00000001;
+pub const TRANSACTION_MANAGER_COMMIT_DEFAULT: ULONG = 0x00000000;
+pub const TRANSACTION_MANAGER_COMMIT_SYSTEM_VOLUME: ULONG = 0x00000002;
+pub const TRANSACTION_MANAGER_COMMIT_SYSTEM_HIVES: ULONG = 0x00000004;
+pub const TRANSACTION_MANAGER_COMMIT_LOWEST: ULONG = 0x00000008;
+pub const TRANSACTION_MANAGER_CORRUPT_FOR_RECOVERY: ULONG = 0x00000010;
+pub const TRANSACTION_MANAGER_CORRUPT_FOR_PROGRESS: ULONG = 0x00000020;
+pub const TRANSACTION_MANAGER_MAXIMUM_OPTION: ULONG = 0x0000003F;
+pub const TRANSACTION_DO_NOT_PROMOTE: DWORD = 0x00000001;
+pub const TRANSACTION_MAXIMUM_OPTION: DWORD = 0x00000001;
+pub const RESOURCE_MANAGER_VOLATILE: DWORD = 0x00000001;
+pub const RESOURCE_MANAGER_COMMUNICATION: DWORD = 0x00000002;
+pub const RESOURCE_MANAGER_MAXIMUM_OPTION: DWORD = 0x00000003;
+pub const CRM_PROTOCOL_EXPLICIT_MARSHAL_ONLY: DWORD = 0x00000001;
+pub const CRM_PROTOCOL_DYNAMIC_MARSHAL_INFO: DWORD = 0x00000002;
+pub const CRM_PROTOCOL_MAXIMUM_OPTION: DWORD = 0x00000003;
+pub const ENLISTMENT_SUPERIOR: ULONG = 0x00000001;
+pub const ENLISTMENT_MAXIMUM_OPTION: ULONG = 0x00000001;
+pub type NOTIFICATION_MASK = ULONG;
+pub const TRANSACTION_NOTIFY_MASK: ULONG = 0x3FFFFFFF;
+pub const TRANSACTION_NOTIFY_PREPREPARE: ULONG = 0x00000001;
+pub const TRANSACTION_NOTIFY_PREPARE: ULONG = 0x00000002;
+pub const TRANSACTION_NOTIFY_COMMIT: ULONG = 0x00000004;
+pub const TRANSACTION_NOTIFY_ROLLBACK: ULONG = 0x00000008;
+pub const TRANSACTION_NOTIFY_PREPREPARE_COMPLETE: ULONG = 0x00000010;
+pub const TRANSACTION_NOTIFY_PREPARE_COMPLETE: ULONG = 0x00000020;
+pub const TRANSACTION_NOTIFY_COMMIT_COMPLETE: ULONG = 0x00000040;
+pub const TRANSACTION_NOTIFY_ROLLBACK_COMPLETE: ULONG = 0x00000080;
+pub const TRANSACTION_NOTIFY_RECOVER: ULONG = 0x00000100;
+pub const TRANSACTION_NOTIFY_SINGLE_PHASE_COMMIT: ULONG = 0x00000200;
+pub const TRANSACTION_NOTIFY_DELEGATE_COMMIT: ULONG = 0x00000400;
+pub const TRANSACTION_NOTIFY_RECOVER_QUERY: ULONG = 0x00000800;
+pub const TRANSACTION_NOTIFY_ENLIST_PREPREPARE: ULONG = 0x00001000;
+pub const TRANSACTION_NOTIFY_LAST_RECOVER: ULONG = 0x00002000;
+pub const TRANSACTION_NOTIFY_INDOUBT: ULONG = 0x00004000;
+pub const TRANSACTION_NOTIFY_PROPAGATE_PULL: ULONG = 0x00008000;
+pub const TRANSACTION_NOTIFY_PROPAGATE_PUSH: ULONG = 0x00010000;
+pub const TRANSACTION_NOTIFY_MARSHAL: ULONG = 0x00020000;
+pub const TRANSACTION_NOTIFY_ENLIST_MASK: ULONG = 0x00040000;
+pub const TRANSACTION_NOTIFY_RM_DISCONNECTED: ULONG = 0x01000000;
+pub const TRANSACTION_NOTIFY_TM_ONLINE: ULONG = 0x02000000;
+pub const TRANSACTION_NOTIFY_COMMIT_REQUEST: ULONG = 0x04000000;
+pub const TRANSACTION_NOTIFY_PROMOTE: ULONG = 0x08000000;
+pub const TRANSACTION_NOTIFY_PROMOTE_NEW: ULONG = 0x10000000;
+pub const TRANSACTION_NOTIFY_REQUEST_OUTCOME: ULONG = 0x20000000;
+pub const TRANSACTION_NOTIFY_COMMIT_FINALIZE: ULONG = 0x40000000;
+pub const TRANSACTIONMANAGER_OBJECT_PATH: &'static str = "\\TransactionManager\\";
+pub const TRANSACTION_OBJECT_PATH: &'static str = "\\Transaction\\";
+pub const ENLISTMENT_OBJECT_PATH: &'static str = "\\Enlistment\\";
+pub const RESOURCE_MANAGER_OBJECT_PATH: &'static str = "\\ResourceManager\\";
+STRUCT!{struct TRANSACTION_NOTIFICATION {
+ TransactionKey: PVOID,
+ TransactionNotification: ULONG,
+ TmVirtualClock: LARGE_INTEGER,
+ ArgumentLength: ULONG,
+}}
+pub type PTRANSACTION_NOTIFICATION = *mut TRANSACTION_NOTIFICATION;
+STRUCT!{struct TRANSACTION_NOTIFICATION_RECOVERY_ARGUMENT {
+ EnlistmentId: GUID,
+ UOW: UOW,
+}}
+pub type PTRANSACTION_NOTIFICATION_RECOVERY_ARGUMENT
+ = *mut TRANSACTION_NOTIFICATION_RECOVERY_ARGUMENT;
+pub const TRANSACTION_NOTIFICATION_TM_ONLINE_FLAG_IS_CLUSTERED: ULONG = 0x1;
+STRUCT!{struct TRANSACTION_NOTIFICATION_TM_ONLINE_ARGUMENT {
+ TmIdentity: GUID,
+ Flags: ULONG,
+}}
+pub type PTRANSACTION_NOTIFICATION_TM_ONLINE_ARGUMENT
+ = *mut TRANSACTION_NOTIFICATION_TM_ONLINE_ARGUMENT;
+pub type SAVEPOINT_ID = ULONG;
+pub type PSAVEPOINT_ID = *mut ULONG;
+STRUCT!{struct TRANSACTION_NOTIFICATION_SAVEPOINT_ARGUMENT {
+ SavepointId: SAVEPOINT_ID,
+}}
+pub type PTRANSACTION_NOTIFICATION_SAVEPOINT_ARGUMENT
+ = *mut TRANSACTION_NOTIFICATION_SAVEPOINT_ARGUMENT;
+STRUCT!{struct TRANSACTION_NOTIFICATION_PROPAGATE_ARGUMENT {
+ PropagationCookie: ULONG,
+ UOW: GUID,
+ TmIdentity: GUID,
+ BufferLength: ULONG,
+}}
+pub type PTRANSACTION_NOTIFICATION_PROPAGATE_ARGUMENT
+ = *mut TRANSACTION_NOTIFICATION_PROPAGATE_ARGUMENT;
+STRUCT!{struct TRANSACTION_NOTIFICATION_MARSHAL_ARGUMENT {
+ MarshalCookie: ULONG,
+ UOW: GUID,
+}}
+pub type PTRANSACTION_NOTIFICATION_MARSHAL_ARGUMENT
+ = *mut TRANSACTION_NOTIFICATION_MARSHAL_ARGUMENT;
+pub type TRANSACTION_NOTIFICATION_PROMOTE_ARGUMENT = TRANSACTION_NOTIFICATION_PROPAGATE_ARGUMENT;
+pub type PTRANSACTION_NOTIFICATION_PROMOTE_ARGUMENT
+ = *mut TRANSACTION_NOTIFICATION_PROPAGATE_ARGUMENT;
+pub const KTM_MARSHAL_BLOB_VERSION_MAJOR: ULONG = 1;
+pub const KTM_MARSHAL_BLOB_VERSION_MINOR: ULONG = 1;
+pub const MAX_TRANSACTION_DESCRIPTION_LENGTH: usize = 64;
+pub const MAX_RESOURCEMANAGER_DESCRIPTION_LENGTH: usize = 64;
+STRUCT!{struct KCRM_MARSHAL_HEADER {
+ VersionMajor: ULONG,
+ VersionMinor: ULONG,
+ NumProtocols: ULONG,
+ Unused: ULONG,
+}}
+pub type PKCRM_MARSHAL_HEADER = *mut KCRM_MARSHAL_HEADER;
+pub type PRKCRM_MARSHAL_HEADER = *mut KCRM_MARSHAL_HEADER;
+STRUCT!{struct KCRM_TRANSACTION_BLOB {
+ UOW: UOW,
+ TmIdentity: GUID,
+ IsolationLevel: ULONG,
+ IsolationFlags: ULONG,
+ Timeout: ULONG,
+ Description: [WCHAR; MAX_TRANSACTION_DESCRIPTION_LENGTH],
+}}
+pub type PKCRM_TRANSACTION_BLOB = *mut KCRM_TRANSACTION_BLOB;
+pub type PRKCRM_TRANSACTION_BLOB = *mut KCRM_TRANSACTION_BLOB;
+STRUCT!{struct KCRM_PROTOCOL_BLOB {
+ ProtocolId: CRM_PROTOCOL_ID,
+ StaticInfoLength: ULONG,
+ TransactionIdInfoLength: ULONG,
+ Unused1: ULONG,
+ Unused2: ULONG,
+}}
+pub type PKCRM_PROTOCOL_BLOB = *mut KCRM_PROTOCOL_BLOB;
+pub type PRKCRM_PROTOCOL_BLOB = *mut KCRM_PROTOCOL_BLOB;
diff --git a/third_party/rust/chromium_crates_io/vendor/winapi-0.3.9/src/shared/lmcons.rs b/third_party/rust/chromium_crates_io/vendor/winapi-0.3.9/src/shared/lmcons.rs
new file mode 100644
index 000000000000..ca2819b4ff10
--- /dev/null
+++ b/third_party/rust/chromium_crates_io/vendor/winapi-0.3.9/src/shared/lmcons.rs
@@ -0,0 +1,60 @@
+// Licensed under the Apache License, Version 2.0
+// or the MIT license
+// , at your option.
+// All files in the project carrying such notice may not be copied, modified, or distributed
+// except according to those terms.
+//! This file contains constants used throughout the LAN Manager API header files.
+use shared::minwindef::DWORD;
+use um::winnt::{LPCWSTR, LPWSTR};
+pub const CNLEN: DWORD = 15;
+pub const LM20_CNLEN: DWORD = 15;
+pub const DNLEN: DWORD = CNLEN;
+pub const LM20_DNLEN: DWORD = LM20_CNLEN;
+pub const UNCLEN: DWORD = CNLEN + 2;
+pub const LM20_UNCLEN: DWORD = LM20_CNLEN + 2;
+pub const NNLEN: DWORD = 80;
+pub const LM20_NNLEN: DWORD = 12;
+pub const RMLEN: DWORD = UNCLEN + 1 + NNLEN;
+pub const LM20_RMLEN: DWORD = LM20_UNCLEN + 1 + LM20_NNLEN;
+pub const SNLEN: usize = 80;
+pub const LM20_SNLEN: DWORD = 15;
+pub const STXTLEN: DWORD = 256;
+pub const LM20_STXTLEN: DWORD = 63;
+pub const PATHLEN: DWORD = 256;
+pub const LM20_PATHLEN: DWORD = 256;
+pub const DEVLEN: DWORD = 80;
+pub const LM20_DEVLEN: DWORD = 8;
+pub const EVLEN: usize = 16;
+pub const UNLEN: DWORD = 256;
+pub const LM20_UNLEN: DWORD = 20;
+pub const GNLEN: DWORD = UNLEN;
+pub const LM20_GNLEN: DWORD = LM20_UNLEN;
+pub const PWLEN: DWORD = 256;
+pub const LM20_PWLEN: DWORD = 14;
+pub const SHPWLEN: DWORD = 8;
+pub const CLTYPE_LEN: DWORD = 12;
+pub const MAXCOMMENTSZ: DWORD = 256;
+pub const LM20_MAXCOMMENTSZ: DWORD = 48;
+pub const QNLEN: DWORD = NNLEN;
+pub const LM20_QNLEN: DWORD = LM20_NNLEN;
+pub const ALERTSZ: DWORD = 128;
+pub const MAXDEVENTRIES: DWORD = 4 * 8; // FIXME: sizeof(int) instead of 4
+pub const NETBIOS_NAME_LEN: DWORD = 16;
+pub const MAX_PREFERRED_LENGTH: DWORD = -1i32 as u32;
+pub const CRYPT_KEY_LEN: DWORD = 7;
+pub const CRYPT_TXT_LEN: DWORD = 8;
+pub const ENCRYPTED_PWLEN: usize = 16;
+pub const SESSION_PWLEN: DWORD = 24;
+pub const SESSION_CRYPT_KLEN: DWORD = 21;
+pub const PARM_ERROR_UNKNOWN: DWORD = -1i32 as u32;
+pub const PARM_ERROR_NONE: DWORD = 0;
+pub const PARMNUM_BASE_INFOLEVEL: DWORD = 1000;
+pub type LMSTR = LPWSTR;
+pub type LMCSTR = LPCWSTR;
+pub type NET_API_STATUS = DWORD;
+pub type API_RET_TYPE = NET_API_STATUS;
+pub const PLATFORM_ID_DOS: DWORD = 300;
+pub const PLATFORM_ID_OS2: DWORD = 400;
+pub const PLATFORM_ID_NT: DWORD = 500;
+pub const PLATFORM_ID_OSF: DWORD = 600;
+pub const PLATFORM_ID_VMS: DWORD = 700;
diff --git a/third_party/rust/chromium_crates_io/vendor/winapi-0.3.9/src/shared/minwindef.rs b/third_party/rust/chromium_crates_io/vendor/winapi-0.3.9/src/shared/minwindef.rs
new file mode 100644
index 000000000000..6c2e38d2ca37
--- /dev/null
+++ b/third_party/rust/chromium_crates_io/vendor/winapi-0.3.9/src/shared/minwindef.rs
@@ -0,0 +1,102 @@
+// Licensed under the Apache License, Version 2.0
+// or the MIT license
+// , at your option.
+// All files in the project carrying such notice may not be copied, modified, or distributed
+// except according to those terms.
+//! Basic Windows Type Definitions for minwin partition
+use ctypes::{c_char, c_float, c_int, c_long, c_uchar, c_uint, c_ulong, c_ushort, c_void};
+use shared::basetsd::{LONG_PTR, UINT_PTR};
+use shared::ntdef::{HANDLE, LONG};
+pub type ULONG = c_ulong;
+pub type PULONG = *mut ULONG;
+pub type USHORT = c_ushort;
+pub type PUSHORT = *mut USHORT;
+pub type UCHAR = c_uchar;
+pub type PUCHAR = *mut UCHAR;
+pub type PSZ = *mut c_char;
+pub const MAX_PATH: usize = 260;
+pub const FALSE: BOOL = 0;
+pub const TRUE: BOOL = 1;
+pub type DWORD = c_ulong;
+pub type BOOL = c_int;
+pub type BYTE = c_uchar;
+pub type WORD = c_ushort;
+pub type FLOAT = c_float;
+pub type PFLOAT = *mut FLOAT;
+pub type PBOOL = *mut BOOL;
+pub type LPBOOL = *mut BOOL;
+pub type PBYTE = *mut BYTE;
+pub type LPBYTE = *mut BYTE;
+pub type PINT = *mut c_int;
+pub type LPINT = *mut c_int;
+pub type PWORD = *mut WORD;
+pub type LPWORD = *mut WORD;
+pub type LPLONG = *mut c_long;
+pub type PDWORD = *mut DWORD;
+pub type LPDWORD = *mut DWORD;
+pub type LPVOID = *mut c_void;
+pub type LPCVOID = *const c_void;
+pub type INT = c_int;
+pub type UINT = c_uint;
+pub type PUINT = *mut c_uint;
+pub type WPARAM = UINT_PTR;
+pub type LPARAM = LONG_PTR;
+pub type LRESULT = LONG_PTR;
+#[inline]
+pub fn MAKEWORD(a: BYTE, b: BYTE) -> WORD {
+ (a as WORD) | ((b as WORD) << 8)
+}
+#[inline]
+pub fn MAKELONG(a: WORD, b: WORD) -> LONG {
+ ((a as DWORD) | ((b as DWORD) << 16)) as LONG
+}
+#[inline]
+pub fn LOWORD(l: DWORD) -> WORD {
+ (l & 0xffff) as WORD
+}
+#[inline]
+pub fn HIWORD(l: DWORD) -> WORD {
+ ((l >> 16) & 0xffff) as WORD
+}
+#[inline]
+pub fn LOBYTE(l: WORD) -> BYTE {
+ (l & 0xff) as BYTE
+}
+#[inline]
+pub fn HIBYTE(l: WORD) -> BYTE {
+ ((l >> 8) & 0xff) as BYTE
+}
+pub type SPHANDLE = *mut HANDLE;
+pub type LPHANDLE = *mut HANDLE;
+pub type HGLOBAL = HANDLE;
+pub type HLOCAL = HANDLE;
+pub type GLOBALHANDLE = HANDLE;
+pub type LOCALHANDLE = HANDLE;
+pub enum __some_function {}
+/// Pointer to a function with unknown type signature.
+pub type FARPROC = *mut __some_function;
+/// Pointer to a function with unknown type signature.
+pub type NEARPROC = *mut __some_function;
+/// Pointer to a function with unknown type signature.
+pub type PROC = *mut __some_function;
+pub type ATOM = WORD;
+DECLARE_HANDLE!{HKEY, HKEY__}
+pub type PHKEY = *mut HKEY;
+DECLARE_HANDLE!{HMETAFILE, HMETAFILE__}
+DECLARE_HANDLE!{HINSTANCE, HINSTANCE__}
+pub type HMODULE = HINSTANCE;
+DECLARE_HANDLE!{HRGN, HRGN__}
+DECLARE_HANDLE!{HRSRC, HRSRC__}
+DECLARE_HANDLE!{HSPRITE, HSPRITE__}
+DECLARE_HANDLE!{HLSURF, HLSURF__}
+DECLARE_HANDLE!{HSTR, HSTR__}
+DECLARE_HANDLE!{HTASK, HTASK__}
+DECLARE_HANDLE!{HWINSTA, HWINSTA__}
+DECLARE_HANDLE!{HKL, HKL__}
+pub type HFILE = c_int;
+STRUCT!{#[debug] struct FILETIME {
+ dwLowDateTime: DWORD,
+ dwHighDateTime: DWORD,
+}}
+pub type PFILETIME = *mut FILETIME;
+pub type LPFILETIME = *mut FILETIME;
diff --git a/third_party/rust/chromium_crates_io/vendor/winapi-0.3.9/src/shared/mmreg.rs b/third_party/rust/chromium_crates_io/vendor/winapi-0.3.9/src/shared/mmreg.rs
new file mode 100644
index 000000000000..06ad900f2223
--- /dev/null
+++ b/third_party/rust/chromium_crates_io/vendor/winapi-0.3.9/src/shared/mmreg.rs
@@ -0,0 +1,309 @@
+// Licensed under the Apache License, Version 2.0
+// or the MIT license
+// , at your option.
+// All files in the project carrying such notice may not be copied, modified, or distributed
+// except according to those terms.
+use shared::guiddef::GUID;
+use shared::minwindef::{DWORD, WORD};
+pub const WAVE_FORMAT_UNKNOWN: WORD = 0x0000;
+pub const WAVE_FORMAT_PCM: WORD = 0x0001;
+pub const WAVE_FORMAT_ADPCM: WORD = 0x0002;
+pub const WAVE_FORMAT_IEEE_FLOAT: WORD = 0x0003;
+pub const WAVE_FORMAT_VSELP: WORD = 0x0004;
+pub const WAVE_FORMAT_IBM_CVSD: WORD = 0x0005;
+pub const WAVE_FORMAT_ALAW: WORD = 0x0006;
+pub const WAVE_FORMAT_MULAW: WORD = 0x0007;
+pub const WAVE_FORMAT_DTS: WORD = 0x0008;
+pub const WAVE_FORMAT_DRM: WORD = 0x0009;
+pub const WAVE_FORMAT_WMAVOICE9: WORD = 0x000A;
+pub const WAVE_FORMAT_WMAVOICE10: WORD = 0x000B;
+pub const WAVE_FORMAT_OKI_ADPCM: WORD = 0x0010;
+pub const WAVE_FORMAT_DVI_ADPCM: WORD = 0x0011;
+pub const WAVE_FORMAT_IMA_ADPCM: WORD = WAVE_FORMAT_DVI_ADPCM;
+pub const WAVE_FORMAT_MEDIASPACE_ADPCM: WORD = 0x0012;
+pub const WAVE_FORMAT_SIERRA_ADPCM: WORD = 0x0013;
+pub const WAVE_FORMAT_G723_ADPCM: WORD = 0x0014;
+pub const WAVE_FORMAT_DIGISTD: WORD = 0x0015;
+pub const WAVE_FORMAT_DIGIFIX: WORD = 0x0016;
+pub const WAVE_FORMAT_DIALOGIC_OKI_ADPCM: WORD = 0x0017;
+pub const WAVE_FORMAT_MEDIAVISION_ADPCM: WORD = 0x0018;
+pub const WAVE_FORMAT_CU_CODEC: WORD = 0x0019;
+pub const WAVE_FORMAT_HP_DYN_VOICE: WORD = 0x001A;
+pub const WAVE_FORMAT_YAMAHA_ADPCM: WORD = 0x0020;
+pub const WAVE_FORMAT_SONARC: WORD = 0x0021;
+pub const WAVE_FORMAT_DSPGROUP_TRUESPEECH: WORD = 0x0022;
+pub const WAVE_FORMAT_ECHOSC1: WORD = 0x0023;
+pub const WAVE_FORMAT_AUDIOFILE_AF36: WORD = 0x0024;
+pub const WAVE_FORMAT_APTX: WORD = 0x0025;
+pub const WAVE_FORMAT_AUDIOFILE_AF10: WORD = 0x0026;
+pub const WAVE_FORMAT_PROSODY_1612: WORD = 0x0027;
+pub const WAVE_FORMAT_LRC: WORD = 0x0028;
+pub const WAVE_FORMAT_DOLBY_AC2: WORD = 0x0030;
+pub const WAVE_FORMAT_GSM610: WORD = 0x0031;
+pub const WAVE_FORMAT_MSNAUDIO: WORD = 0x0032;
+pub const WAVE_FORMAT_ANTEX_ADPCME: WORD = 0x0033;
+pub const WAVE_FORMAT_CONTROL_RES_VQLPC: WORD = 0x0034;
+pub const WAVE_FORMAT_DIGIREAL: WORD = 0x0035;
+pub const WAVE_FORMAT_DIGIADPCM: WORD = 0x0036;
+pub const WAVE_FORMAT_CONTROL_RES_CR10: WORD = 0x0037;
+pub const WAVE_FORMAT_NMS_VBXADPCM: WORD = 0x0038;
+pub const WAVE_FORMAT_CS_IMAADPCM: WORD = 0x0039;
+pub const WAVE_FORMAT_ECHOSC3: WORD = 0x003A;
+pub const WAVE_FORMAT_ROCKWELL_ADPCM: WORD = 0x003B;
+pub const WAVE_FORMAT_ROCKWELL_DIGITALK: WORD = 0x003C;
+pub const WAVE_FORMAT_XEBEC: WORD = 0x003D;
+pub const WAVE_FORMAT_G721_ADPCM: WORD = 0x0040;
+pub const WAVE_FORMAT_G728_CELP: WORD = 0x0041;
+pub const WAVE_FORMAT_MSG723: WORD = 0x0042;
+pub const WAVE_FORMAT_INTEL_G723_1: WORD = 0x0043;
+pub const WAVE_FORMAT_INTEL_G729: WORD = 0x0044;
+pub const WAVE_FORMAT_SHARP_G726: WORD = 0x0045;
+pub const WAVE_FORMAT_MPEG: WORD = 0x0050;
+pub const WAVE_FORMAT_RT24: WORD = 0x0052;
+pub const WAVE_FORMAT_PAC: WORD = 0x0053;
+pub const WAVE_FORMAT_MPEGLAYER3: WORD = 0x0055;
+pub const WAVE_FORMAT_LUCENT_G723: WORD = 0x0059;
+pub const WAVE_FORMAT_CIRRUS: WORD = 0x0060;
+pub const WAVE_FORMAT_ESPCM: WORD = 0x0061;
+pub const WAVE_FORMAT_VOXWARE: WORD = 0x0062;
+pub const WAVE_FORMAT_CANOPUS_ATRAC: WORD = 0x0063;
+pub const WAVE_FORMAT_G726_ADPCM: WORD = 0x0064;
+pub const WAVE_FORMAT_G722_ADPCM: WORD = 0x0065;
+pub const WAVE_FORMAT_DSAT: WORD = 0x0066;
+pub const WAVE_FORMAT_DSAT_DISPLAY: WORD = 0x0067;
+pub const WAVE_FORMAT_VOXWARE_BYTE_ALIGNED: WORD = 0x0069;
+pub const WAVE_FORMAT_VOXWARE_AC8: WORD = 0x0070;
+pub const WAVE_FORMAT_VOXWARE_AC10: WORD = 0x0071;
+pub const WAVE_FORMAT_VOXWARE_AC16: WORD = 0x0072;
+pub const WAVE_FORMAT_VOXWARE_AC20: WORD = 0x0073;
+pub const WAVE_FORMAT_VOXWARE_RT24: WORD = 0x0074;
+pub const WAVE_FORMAT_VOXWARE_RT29: WORD = 0x0075;
+pub const WAVE_FORMAT_VOXWARE_RT29HW: WORD = 0x0076;
+pub const WAVE_FORMAT_VOXWARE_VR12: WORD = 0x0077;
+pub const WAVE_FORMAT_VOXWARE_VR18: WORD = 0x0078;
+pub const WAVE_FORMAT_VOXWARE_TQ40: WORD = 0x0079;
+pub const WAVE_FORMAT_VOXWARE_SC3: WORD = 0x007A;
+pub const WAVE_FORMAT_VOXWARE_SC3_1: WORD = 0x007B;
+pub const WAVE_FORMAT_SOFTSOUND: WORD = 0x0080;
+pub const WAVE_FORMAT_VOXWARE_TQ60: WORD = 0x0081;
+pub const WAVE_FORMAT_MSRT24: WORD = 0x0082;
+pub const WAVE_FORMAT_G729A: WORD = 0x0083;
+pub const WAVE_FORMAT_MVI_MVI2: WORD = 0x0084;
+pub const WAVE_FORMAT_DF_G726: WORD = 0x0085;
+pub const WAVE_FORMAT_DF_GSM610: WORD = 0x0086;
+pub const WAVE_FORMAT_ISIAUDIO: WORD = 0x0088;
+pub const WAVE_FORMAT_ONLIVE: WORD = 0x0089;
+pub const WAVE_FORMAT_MULTITUDE_FT_SX20: WORD = 0x008A;
+pub const WAVE_FORMAT_INFOCOM_ITS_G721_ADPCM: WORD = 0x008B;
+pub const WAVE_FORMAT_CONVEDIA_G729: WORD = 0x008C;
+pub const WAVE_FORMAT_CONGRUENCY: WORD = 0x008D;
+pub const WAVE_FORMAT_SBC24: WORD = 0x0091;
+pub const WAVE_FORMAT_DOLBY_AC3_SPDIF: WORD = 0x0092;
+pub const WAVE_FORMAT_MEDIASONIC_G723: WORD = 0x0093;
+pub const WAVE_FORMAT_PROSODY_8KBPS: WORD = 0x0094;
+pub const WAVE_FORMAT_ZYXEL_ADPCM: WORD = 0x0097;
+pub const WAVE_FORMAT_PHILIPS_LPCBB: WORD = 0x0098;
+pub const WAVE_FORMAT_PACKED: WORD = 0x0099;
+pub const WAVE_FORMAT_MALDEN_PHONYTALK: WORD = 0x00A0;
+pub const WAVE_FORMAT_RACAL_RECORDER_GSM: WORD = 0x00A1;
+pub const WAVE_FORMAT_RACAL_RECORDER_G720_A: WORD = 0x00A2;
+pub const WAVE_FORMAT_RACAL_RECORDER_G723_1: WORD = 0x00A3;
+pub const WAVE_FORMAT_RACAL_RECORDER_TETRA_ACELP: WORD = 0x00A4;
+pub const WAVE_FORMAT_NEC_AAC: WORD = 0x00B0;
+pub const WAVE_FORMAT_RAW_AAC1: WORD = 0x00FF;
+pub const WAVE_FORMAT_RHETOREX_ADPCM: WORD = 0x0100;
+pub const WAVE_FORMAT_IRAT: WORD = 0x0101;
+pub const WAVE_FORMAT_VIVO_G723: WORD = 0x0111;
+pub const WAVE_FORMAT_VIVO_SIREN: WORD = 0x0112;
+pub const WAVE_FORMAT_PHILIPS_CELP: WORD = 0x0120;
+pub const WAVE_FORMAT_PHILIPS_GRUNDIG: WORD = 0x0121;
+pub const WAVE_FORMAT_DIGITAL_G723: WORD = 0x0123;
+pub const WAVE_FORMAT_SANYO_LD_ADPCM: WORD = 0x0125;
+pub const WAVE_FORMAT_SIPROLAB_ACEPLNET: WORD = 0x0130;
+pub const WAVE_FORMAT_SIPROLAB_ACELP4800: WORD = 0x0131;
+pub const WAVE_FORMAT_SIPROLAB_ACELP8V3: WORD = 0x0132;
+pub const WAVE_FORMAT_SIPROLAB_G729: WORD = 0x0133;
+pub const WAVE_FORMAT_SIPROLAB_G729A: WORD = 0x0134;
+pub const WAVE_FORMAT_SIPROLAB_KELVIN: WORD = 0x0135;
+pub const WAVE_FORMAT_VOICEAGE_AMR: WORD = 0x0136;
+pub const WAVE_FORMAT_G726ADPCM: WORD = 0x0140;
+pub const WAVE_FORMAT_DICTAPHONE_CELP68: WORD = 0x0141;
+pub const WAVE_FORMAT_DICTAPHONE_CELP54: WORD = 0x0142;
+pub const WAVE_FORMAT_QUALCOMM_PUREVOICE: WORD = 0x0150;
+pub const WAVE_FORMAT_QUALCOMM_HALFRATE: WORD = 0x0151;
+pub const WAVE_FORMAT_TUBGSM: WORD = 0x0155;
+pub const WAVE_FORMAT_MSAUDIO1: WORD = 0x0160;
+pub const WAVE_FORMAT_WMAUDIO2: WORD = 0x0161;
+pub const WAVE_FORMAT_WMAUDIO3: WORD = 0x0162;
+pub const WAVE_FORMAT_WMAUDIO_LOSSLESS: WORD = 0x0163;
+pub const WAVE_FORMAT_WMASPDIF: WORD = 0x0164;
+pub const WAVE_FORMAT_UNISYS_NAP_ADPCM: WORD = 0x0170;
+pub const WAVE_FORMAT_UNISYS_NAP_ULAW: WORD = 0x0171;
+pub const WAVE_FORMAT_UNISYS_NAP_ALAW: WORD = 0x0172;
+pub const WAVE_FORMAT_UNISYS_NAP_16K: WORD = 0x0173;
+pub const WAVE_FORMAT_SYCOM_ACM_SYC008: WORD = 0x0174;
+pub const WAVE_FORMAT_SYCOM_ACM_SYC701_G726L: WORD = 0x0175;
+pub const WAVE_FORMAT_SYCOM_ACM_SYC701_CELP54: WORD = 0x0176;
+pub const WAVE_FORMAT_SYCOM_ACM_SYC701_CELP68: WORD = 0x0177;
+pub const WAVE_FORMAT_KNOWLEDGE_ADVENTURE_ADPCM: WORD = 0x0178;
+pub const WAVE_FORMAT_FRAUNHOFER_IIS_MPEG2_AAC: WORD = 0x0180;
+pub const WAVE_FORMAT_DTS_DS: WORD = 0x0190;
+pub const WAVE_FORMAT_CREATIVE_ADPCM: WORD = 0x0200;
+pub const WAVE_FORMAT_CREATIVE_FASTSPEECH8: WORD = 0x0202;
+pub const WAVE_FORMAT_CREATIVE_FASTSPEECH10: WORD = 0x0203;
+pub const WAVE_FORMAT_UHER_ADPCM: WORD = 0x0210;
+pub const WAVE_FORMAT_ULEAD_DV_AUDIO: WORD = 0x0215;
+pub const WAVE_FORMAT_ULEAD_DV_AUDIO_1: WORD = 0x0216;
+pub const WAVE_FORMAT_QUARTERDECK: WORD = 0x0220;
+pub const WAVE_FORMAT_ILINK_VC: WORD = 0x0230;
+pub const WAVE_FORMAT_RAW_SPORT: WORD = 0x0240;
+pub const WAVE_FORMAT_ESST_AC3: WORD = 0x0241;
+pub const WAVE_FORMAT_GENERIC_PASSTHRU: WORD = 0x0249;
+pub const WAVE_FORMAT_IPI_HSX: WORD = 0x0250;
+pub const WAVE_FORMAT_IPI_RPELP: WORD = 0x0251;
+pub const WAVE_FORMAT_CS2: WORD = 0x0260;
+pub const WAVE_FORMAT_SONY_SCX: WORD = 0x0270;
+pub const WAVE_FORMAT_SONY_SCY: WORD = 0x0271;
+pub const WAVE_FORMAT_SONY_ATRAC3: WORD = 0x0272;
+pub const WAVE_FORMAT_SONY_SPC: WORD = 0x0273;
+pub const WAVE_FORMAT_TELUM_AUDIO: WORD = 0x0280;
+pub const WAVE_FORMAT_TELUM_IA_AUDIO: WORD = 0x0281;
+pub const WAVE_FORMAT_NORCOM_VOICE_SYSTEMS_ADPCM: WORD = 0x0285;
+pub const WAVE_FORMAT_FM_TOWNS_SND: WORD = 0x0300;
+pub const WAVE_FORMAT_MICRONAS: WORD = 0x0350;
+pub const WAVE_FORMAT_MICRONAS_CELP833: WORD = 0x0351;
+pub const WAVE_FORMAT_BTV_DIGITAL: WORD = 0x0400;
+pub const WAVE_FORMAT_INTEL_MUSIC_CODER: WORD = 0x0401;
+pub const WAVE_FORMAT_INDEO_AUDIO: WORD = 0x0402;
+pub const WAVE_FORMAT_QDESIGN_MUSIC: WORD = 0x0450;
+pub const WAVE_FORMAT_ON2_VP7_AUDIO: WORD = 0x0500;
+pub const WAVE_FORMAT_ON2_VP6_AUDIO: WORD = 0x0501;
+pub const WAVE_FORMAT_VME_VMPCM: WORD = 0x0680;
+pub const WAVE_FORMAT_TPC: WORD = 0x0681;
+pub const WAVE_FORMAT_LIGHTWAVE_LOSSLESS: WORD = 0x08AE;
+pub const WAVE_FORMAT_OLIGSM: WORD = 0x1000;
+pub const WAVE_FORMAT_OLIADPCM: WORD = 0x1001;
+pub const WAVE_FORMAT_OLICELP: WORD = 0x1002;
+pub const WAVE_FORMAT_OLISBC: WORD = 0x1003;
+pub const WAVE_FORMAT_OLIOPR: WORD = 0x1004;
+pub const WAVE_FORMAT_LH_CODEC: WORD = 0x1100;
+pub const WAVE_FORMAT_LH_CODEC_CELP: WORD = 0x1101;
+pub const WAVE_FORMAT_LH_CODEC_SBC8: WORD = 0x1102;
+pub const WAVE_FORMAT_LH_CODEC_SBC12: WORD = 0x1103;
+pub const WAVE_FORMAT_LH_CODEC_SBC16: WORD = 0x1104;
+pub const WAVE_FORMAT_NORRIS: WORD = 0x1400;
+pub const WAVE_FORMAT_ISIAUDIO_2: WORD = 0x1401;
+pub const WAVE_FORMAT_SOUNDSPACE_MUSICOMPRESS: WORD = 0x1500;
+pub const WAVE_FORMAT_MPEG_ADTS_AAC: WORD = 0x1600;
+pub const WAVE_FORMAT_MPEG_RAW_AAC: WORD = 0x1601;
+pub const WAVE_FORMAT_MPEG_LOAS: WORD = 0x1602;
+pub const WAVE_FORMAT_NOKIA_MPEG_ADTS_AAC: WORD = 0x1608;
+pub const WAVE_FORMAT_NOKIA_MPEG_RAW_AAC: WORD = 0x1609;
+pub const WAVE_FORMAT_VODAFONE_MPEG_ADTS_AAC: WORD = 0x160A;
+pub const WAVE_FORMAT_VODAFONE_MPEG_RAW_AAC: WORD = 0x160B;
+pub const WAVE_FORMAT_MPEG_HEAAC: WORD = 0x1610;
+pub const WAVE_FORMAT_VOXWARE_RT24_SPEECH: WORD = 0x181C;
+pub const WAVE_FORMAT_SONICFOUNDRY_LOSSLESS: WORD = 0x1971;
+pub const WAVE_FORMAT_INNINGS_TELECOM_ADPCM: WORD = 0x1979;
+pub const WAVE_FORMAT_LUCENT_SX8300P: WORD = 0x1C07;
+pub const WAVE_FORMAT_LUCENT_SX5363S: WORD = 0x1C0C;
+pub const WAVE_FORMAT_CUSEEME: WORD = 0x1F03;
+pub const WAVE_FORMAT_NTCSOFT_ALF2CM_ACM: WORD = 0x1FC4;
+pub const WAVE_FORMAT_DVM: WORD = 0x2000;
+pub const WAVE_FORMAT_DTS2: WORD = 0x2001;
+pub const WAVE_FORMAT_MAKEAVIS: WORD = 0x3313;
+pub const WAVE_FORMAT_DIVIO_MPEG4_AAC: WORD = 0x4143;
+pub const WAVE_FORMAT_NOKIA_ADAPTIVE_MULTIRATE: WORD = 0x4201;
+pub const WAVE_FORMAT_DIVIO_G726: WORD = 0x4243;
+pub const WAVE_FORMAT_LEAD_SPEECH: WORD = 0x434C;
+pub const WAVE_FORMAT_LEAD_VORBIS: WORD = 0x564C;
+pub const WAVE_FORMAT_WAVPACK_AUDIO: WORD = 0x5756;
+pub const WAVE_FORMAT_OGG_VORBIS_MODE_1: WORD = 0x674F;
+pub const WAVE_FORMAT_OGG_VORBIS_MODE_2: WORD = 0x6750;
+pub const WAVE_FORMAT_OGG_VORBIS_MODE_3: WORD = 0x6751;
+pub const WAVE_FORMAT_OGG_VORBIS_MODE_1_PLUS: WORD = 0x676F;
+pub const WAVE_FORMAT_OGG_VORBIS_MODE_2_PLUS: WORD = 0x6770;
+pub const WAVE_FORMAT_OGG_VORBIS_MODE_3_PLUS: WORD = 0x6771;
+pub const WAVE_FORMAT_3COM_NBX: WORD = 0x7000;
+pub const WAVE_FORMAT_FAAD_AAC: WORD = 0x706D;
+pub const WAVE_FORMAT_AMR_NB: WORD = 0x7361;
+pub const WAVE_FORMAT_AMR_WB: WORD = 0x7362;
+pub const WAVE_FORMAT_AMR_WP: WORD = 0x7363;
+pub const WAVE_FORMAT_GSM_AMR_CBR: WORD = 0x7A21;
+pub const WAVE_FORMAT_GSM_AMR_VBR_SID: WORD = 0x7A22;
+pub const WAVE_FORMAT_COMVERSE_INFOSYS_G723_1: WORD = 0xA100;
+pub const WAVE_FORMAT_COMVERSE_INFOSYS_AVQSBC: WORD = 0xA101;
+pub const WAVE_FORMAT_COMVERSE_INFOSYS_SBC: WORD = 0xA102;
+pub const WAVE_FORMAT_SYMBOL_G729_A: WORD = 0xA103;
+pub const WAVE_FORMAT_VOICEAGE_AMR_WB: WORD = 0xA104;
+pub const WAVE_FORMAT_INGENIENT_G726: WORD = 0xA105;
+pub const WAVE_FORMAT_MPEG4_AAC: WORD = 0xA106;
+pub const WAVE_FORMAT_ENCORE_G726: WORD = 0xA107;
+pub const WAVE_FORMAT_ZOLL_ASAO: WORD = 0xA108;
+pub const WAVE_FORMAT_SPEEX_VOICE: WORD = 0xA109;
+pub const WAVE_FORMAT_VIANIX_MASC: WORD = 0xA10A;
+pub const WAVE_FORMAT_WM9_SPECTRUM_ANALYZER: WORD = 0xA10B;
+pub const WAVE_FORMAT_WMF_SPECTRUM_ANAYZER: WORD = 0xA10C;
+pub const WAVE_FORMAT_GSM_610: WORD = 0xA10D;
+pub const WAVE_FORMAT_GSM_620: WORD = 0xA10E;
+pub const WAVE_FORMAT_GSM_660: WORD = 0xA10F;
+pub const WAVE_FORMAT_GSM_690: WORD = 0xA110;
+pub const WAVE_FORMAT_GSM_ADAPTIVE_MULTIRATE_WB: WORD = 0xA111;
+pub const WAVE_FORMAT_POLYCOM_G722: WORD = 0xA112;
+pub const WAVE_FORMAT_POLYCOM_G728: WORD = 0xA113;
+pub const WAVE_FORMAT_POLYCOM_G729_A: WORD = 0xA114;
+pub const WAVE_FORMAT_POLYCOM_SIREN: WORD = 0xA115;
+pub const WAVE_FORMAT_GLOBAL_IP_ILBC: WORD = 0xA116;
+pub const WAVE_FORMAT_RADIOTIME_TIME_SHIFT_RADIO: WORD = 0xA117;
+pub const WAVE_FORMAT_NICE_ACA: WORD = 0xA118;
+pub const WAVE_FORMAT_NICE_ADPCM: WORD = 0xA119;
+pub const WAVE_FORMAT_VOCORD_G721: WORD = 0xA11A;
+pub const WAVE_FORMAT_VOCORD_G726: WORD = 0xA11B;
+pub const WAVE_FORMAT_VOCORD_G722_1: WORD = 0xA11C;
+pub const WAVE_FORMAT_VOCORD_G728: WORD = 0xA11D;
+pub const WAVE_FORMAT_VOCORD_G729: WORD = 0xA11E;
+pub const WAVE_FORMAT_VOCORD_G729_A: WORD = 0xA11F;
+pub const WAVE_FORMAT_VOCORD_G723_1: WORD = 0xA120;
+pub const WAVE_FORMAT_VOCORD_LBC: WORD = 0xA121;
+pub const WAVE_FORMAT_NICE_G728: WORD = 0xA122;
+pub const WAVE_FORMAT_FRACE_TELECOM_G729: WORD = 0xA123;
+pub const WAVE_FORMAT_CODIAN: WORD = 0xA124;
+pub const WAVE_FORMAT_FLAC: WORD = 0xF1AC;
+pub const WAVE_FORMAT_EXTENSIBLE: WORD = 0xFFFE;
+pub const WAVE_FORMAT_DEVELOPMENT: WORD = 0xFFFF;
+//2557
+pub const SPEAKER_FRONT_LEFT: DWORD = 0x1;
+pub const SPEAKER_FRONT_RIGHT: DWORD = 0x2;
+pub const SPEAKER_FRONT_CENTER: DWORD = 0x4;
+pub const SPEAKER_LOW_FREQUENCY: DWORD = 0x8;
+pub const SPEAKER_BACK_LEFT: DWORD = 0x10;
+pub const SPEAKER_BACK_RIGHT: DWORD = 0x20;
+pub const SPEAKER_FRONT_LEFT_OF_CENTER: DWORD = 0x40;
+pub const SPEAKER_FRONT_RIGHT_OF_CENTER: DWORD = 0x80;
+pub const SPEAKER_BACK_CENTER: DWORD = 0x100;
+pub const SPEAKER_SIDE_LEFT: DWORD = 0x200;
+pub const SPEAKER_SIDE_RIGHT: DWORD = 0x400;
+pub const SPEAKER_TOP_CENTER: DWORD = 0x800;
+pub const SPEAKER_TOP_FRONT_LEFT: DWORD = 0x1000;
+pub const SPEAKER_TOP_FRONT_CENTER: DWORD = 0x2000;
+pub const SPEAKER_TOP_FRONT_RIGHT: DWORD = 0x4000;
+pub const SPEAKER_TOP_BACK_LEFT: DWORD = 0x8000;
+pub const SPEAKER_TOP_BACK_CENTER: DWORD = 0x10000;
+pub const SPEAKER_TOP_BACK_RIGHT: DWORD = 0x20000;
+pub const SPEAKER_RESERVED: DWORD = 0x7FFC0000;
+pub const SPEAKER_ALL: DWORD = 0x80000000;
+STRUCT!{#[repr(packed)] struct WAVEFORMATEX {
+ wFormatTag: WORD,
+ nChannels: WORD,
+ nSamplesPerSec: DWORD,
+ nAvgBytesPerSec: DWORD,
+ nBlockAlign: WORD,
+ wBitsPerSample: WORD,
+ cbSize: WORD,
+}}
+STRUCT!{#[repr(packed)] struct WAVEFORMATEXTENSIBLE {
+ Format: WAVEFORMATEX,
+ Samples: WORD,
+ dwChannelMask: DWORD,
+ SubFormat: GUID,
+}}
diff --git a/third_party/rust/chromium_crates_io/vendor/winapi-0.3.9/src/shared/mod.rs b/third_party/rust/chromium_crates_io/vendor/winapi-0.3.9/src/shared/mod.rs
new file mode 100644
index 000000000000..8924f7b1ef71
--- /dev/null
+++ b/third_party/rust/chromium_crates_io/vendor/winapi-0.3.9/src/shared/mod.rs
@@ -0,0 +1,92 @@
+// Licensed under the Apache License, Version 2.0
+// or the MIT license
+// , at your option.
+// All files in the project carrying such notice may not be copied, modified, or distributed
+// except according to those terms.
+//! Headers shared between user mode and kernel mode
+#[cfg(feature = "basetsd")] pub mod basetsd;
+#[cfg(feature = "bcrypt")] pub mod bcrypt;
+#[cfg(feature = "bthdef")] pub mod bthdef;
+#[cfg(feature = "bthioctl")] pub mod bthioctl;
+#[cfg(feature = "bthsdpdef")] pub mod bthsdpdef;
+#[cfg(feature = "bugcodes")] pub mod bugcodes;
+#[cfg(feature = "cderr")] pub mod cderr;
+#[cfg(feature = "cfg")] pub mod cfg;
+#[cfg(feature = "d3d9")] pub mod d3d9;
+#[cfg(feature = "d3d9caps")] pub mod d3d9caps;
+#[cfg(feature = "d3d9types")] pub mod d3d9types;
+#[cfg(feature = "d3dkmdt")] pub mod d3dkmdt;
+#[cfg(feature = "d3dukmdt")] pub mod d3dukmdt;
+#[cfg(feature = "dcomptypes")] pub mod dcomptypes;
+#[cfg(feature = "devguid")] pub mod devguid;
+#[cfg(feature = "devpkey")] pub mod devpkey;
+#[cfg(feature = "devpropdef")] pub mod devpropdef;
+#[cfg(feature = "dinputd")] pub mod dinputd;
+#[cfg(feature = "dxgi")] pub mod dxgi;
+#[cfg(feature = "dxgi1_2")] pub mod dxgi1_2;
+#[cfg(feature = "dxgi1_3")] pub mod dxgi1_3;
+#[cfg(feature = "dxgi1_4")] pub mod dxgi1_4;
+#[cfg(feature = "dxgi1_5")] pub mod dxgi1_5;
+#[cfg(feature = "dxgi1_6")] pub mod dxgi1_6;
+#[cfg(feature = "dxgiformat")] pub mod dxgiformat;
+#[cfg(feature = "dxgitype")] pub mod dxgitype;
+#[cfg(feature = "evntprov")] pub mod evntprov;
+#[cfg(feature = "evntrace")] pub mod evntrace;
+pub mod guiddef;
+#[cfg(feature = "hidclass")] pub mod hidclass;
+#[cfg(feature = "hidpi")] pub mod hidpi;
+#[cfg(feature = "hidsdi")] pub mod hidsdi;
+#[cfg(feature = "hidusage")] pub mod hidusage;
+#[cfg(feature = "ifdef")] pub mod ifdef;
+#[cfg(feature = "ifmib")] pub mod ifmib;
+#[cfg(feature = "in6addr")] pub mod in6addr;
+#[cfg(feature = "inaddr")] pub mod inaddr;
+#[cfg(feature = "intsafe")] pub mod intsafe;
+#[cfg(feature = "ipifcons")] pub mod ipifcons;
+#[cfg(feature = "ipmib")] pub mod ipmib;
+#[cfg(feature = "iprtrmib")] pub mod iprtrmib;
+#[cfg(feature = "ks")] pub mod ks;
+#[cfg(feature = "ksmedia")] pub mod ksmedia;
+#[cfg(feature = "ktmtypes")] pub mod ktmtypes;
+#[cfg(feature = "lmcons")] pub mod lmcons;
+#[cfg(feature = "minwindef")] pub mod minwindef;
+#[cfg(feature = "mmreg")] pub mod mmreg;
+#[cfg(feature = "mprapidef")] pub mod mprapidef;
+#[cfg(feature = "mstcpip")] pub mod mstcpip;
+#[cfg(feature = "mswsockdef")] pub mod mswsockdef;
+#[cfg(feature = "netioapi")] pub mod netioapi;
+#[cfg(feature = "nldef")] pub mod nldef;
+#[cfg(feature = "ntddndis")] pub mod ntddndis;
+#[cfg(feature = "ntddscsi")] pub mod ntddscsi;
+#[cfg(feature = "ntddser")] pub mod ntddser;
+#[cfg(feature = "ntdef")] pub mod ntdef;
+#[cfg(feature = "ntstatus")] pub mod ntstatus;
+#[cfg(feature = "qos")] pub mod qos;
+#[cfg(feature = "rpc")] pub mod rpc;
+#[cfg(feature = "rpcdce")] pub mod rpcdce;
+#[cfg(feature = "rpcndr")] pub mod rpcndr;
+#[cfg(feature = "sddl")] pub mod sddl;
+#[cfg(feature = "sspi")] pub mod sspi;
+#[cfg(feature = "stralign")] pub mod stralign;
+#[cfg(feature = "tcpestats")] pub mod tcpestats;
+#[cfg(feature = "tcpmib")] pub mod tcpmib;
+#[cfg(feature = "transportsettingcommon")] pub mod transportsettingcommon;
+#[cfg(feature = "tvout")] pub mod tvout;
+#[cfg(feature = "udpmib")] pub mod udpmib;
+#[cfg(feature = "usb")] pub mod usb;
+#[cfg(feature = "usbioctl")] pub mod usbioctl;
+#[cfg(feature = "usbiodef")] pub mod usbiodef;
+#[cfg(feature = "usbscan")] pub mod usbscan;
+#[cfg(feature = "usbspec")] pub mod usbspec;
+#[cfg(feature = "windef")] pub mod windef;
+#[cfg(feature = "windot11")] pub mod windot11;
+#[cfg(feature = "windowsx")] pub mod windowsx;
+#[cfg(feature = "winerror")] pub mod winerror;
+#[cfg(feature = "winusbio")] pub mod winusbio;
+#[cfg(feature = "wlantypes")] pub mod wlantypes;
+#[cfg(feature = "wmistr")] pub mod wmistr;
+#[cfg(feature = "wnnc")] pub mod wnnc;
+#[cfg(feature = "ws2def")] pub mod ws2def;
+#[cfg(feature = "ws2ipdef")] pub mod ws2ipdef;
+#[cfg(feature = "wtypes")] pub mod wtypes;
+#[cfg(feature = "wtypesbase")] pub mod wtypesbase;
diff --git a/third_party/rust/chromium_crates_io/vendor/winapi-0.3.9/src/shared/mprapidef.rs b/third_party/rust/chromium_crates_io/vendor/winapi-0.3.9/src/shared/mprapidef.rs
new file mode 100644
index 000000000000..db5c1696df4d
--- /dev/null
+++ b/third_party/rust/chromium_crates_io/vendor/winapi-0.3.9/src/shared/mprapidef.rs
@@ -0,0 +1,14 @@
+// Licensed under the Apache License, Version 2.0
+// or the MIT license
+// , at your option.
+// All files in the project carrying such notice may not be copied, modified, or distributed
+// except according to those terms.
+//! MPR (Multiple Provider Router) definitions
+// #include
+pub const MAX_INTERFACE_NAME_LEN: usize = 256;
+pub const MAX_TRANSPORT_NAME_LEN: usize = 40;
+pub const MAX_MEDIA_NAME: usize = 16;
+pub const MAX_PORT_NAME: usize = 16;
+pub const MAX_DEVICE_NAME: usize = 128;
+pub const MAX_PHONE_NUMBER_LEN: usize = 128;
+pub const MAX_DEVICETYPE_NAME: usize = 16;
diff --git a/third_party/rust/chromium_crates_io/vendor/winapi-0.3.9/src/shared/mstcpip.rs b/third_party/rust/chromium_crates_io/vendor/winapi-0.3.9/src/shared/mstcpip.rs
new file mode 100644
index 000000000000..fe2072544d0e
--- /dev/null
+++ b/third_party/rust/chromium_crates_io/vendor/winapi-0.3.9/src/shared/mstcpip.rs
@@ -0,0 +1,492 @@
+// Licensed under the Apache License, Version 2.0
+// or the MIT license
+// , at your option.
+// All files in the project carrying such notice may not be copied, modified, or distributed
+// except according to those terms
+//! This module contains Microsoft-specific extensions to the core Winsock definitions.
+use ctypes::wchar_t;
+use shared::basetsd::{UINT32, UINT64, ULONG64};
+use shared::guiddef::GUID;
+use shared::in6addr::IN6_ADDR;
+use shared::inaddr::IN_ADDR;
+use shared::minwindef::{DWORD, PULONG, PUSHORT, UCHAR, ULONG, USHORT};
+use shared::ws2def::{
+ INADDR_ANY, INADDR_BROADCAST, INADDR_NONE, IOC_VENDOR, SOCKADDR_IN,
+ SOCKADDR_STORAGE,
+};
+use um::winnt::{BOOLEAN, LONG, LPCWSTR, PCSTR, PCWSTR, PSTR, PWSTR};
+DEFINE_GUID!{SOCKET_DEFAULT2_QM_POLICY,
+ 0xaec2ef9c, 0x3a4d, 0x4d3e, 0x88, 0x42, 0x23, 0x99, 0x42, 0xe3, 0x9a, 0x47}
+DEFINE_GUID!{REAL_TIME_NOTIFICATION_CAPABILITY,
+ 0x6b59819a, 0x5cae, 0x492d, 0xa9, 0x01, 0x2a, 0x3c, 0x2c, 0x50, 0x16, 0x4f}
+DEFINE_GUID!{REAL_TIME_NOTIFICATION_CAPABILITY_EX,
+ 0x6843da03, 0x154a, 0x4616, 0xa5, 0x08, 0x44, 0x37, 0x12, 0x95, 0xf9, 0x6b}
+DEFINE_GUID!{ASSOCIATE_NAMERES_CONTEXT,
+ 0x59a38b67, 0xd4fe, 0x46e1, 0xba, 0x3c, 0x87, 0xea, 0x74, 0xca, 0x30, 0x49}
+ENUM!{enum TCPSTATE {
+ TCPSTATE_CLOSED,
+ TCPSTATE_LISTEN,
+ TCPSTATE_SYN_SENT,
+ TCPSTATE_SYN_RCVD,
+ TCPSTATE_ESTABLISHED,
+ TCPSTATE_FIN_WAIT_1,
+ TCPSTATE_FIN_WAIT_2,
+ TCPSTATE_CLOSE_WAIT,
+ TCPSTATE_CLOSING,
+ TCPSTATE_LAST_ACK,
+ TCPSTATE_TIME_WAIT,
+ TCPSTATE_MAX,
+}}
+STRUCT!{struct TRANSPORT_SETTING_ID {
+ Guid: GUID,
+}}
+pub type PTRANSPORT_SETTING_ID = *mut TRANSPORT_SETTING_ID;
+STRUCT!{struct tcp_keepalive {
+ onoff: ULONG,
+ keepalivetime: ULONG,
+ keepaliveinterval: ULONG,
+}}
+ENUM!{enum CONTROL_CHANNEL_TRIGGER_STATUS {
+ CONTROL_CHANNEL_TRIGGER_STATUS_INVALID = 0,
+ CONTROL_CHANNEL_TRIGGER_STATUS_SOFTWARE_SLOT_ALLOCATED = 1,
+ CONTROL_CHANNEL_TRIGGER_STATUS_HARDWARE_SLOT_ALLOCATED = 2,
+ CONTROL_CHANNEL_TRIGGER_STATUS_POLICY_ERROR = 3,
+ CONTROL_CHANNEL_TRIGGER_STATUS_SYSTEM_ERROR = 4,
+ CONTROL_CHANNEL_TRIGGER_STATUS_TRANSPORT_DISCONNECTED = 5,
+ CONTROL_CHANNEL_TRIGGER_STATUS_SERVICE_UNAVAILABLE = 6,
+}}
+pub type PCONTROL_CHANNEL_TRIGGER_STATUS = *mut CONTROL_CHANNEL_TRIGGER_STATUS;
+pub const CONTROL_CHANNEL_TRIGGER_STATUS_MAX: u32 = CONTROL_CHANNEL_TRIGGER_STATUS_SYSTEM_ERROR;
+STRUCT!{struct REAL_TIME_NOTIFICATION_SETTING_INPUT {
+ TransportSettingId: TRANSPORT_SETTING_ID,
+ BrokerEventGuid: GUID,
+}}
+pub type PREAL_TIME_NOTIFICATION_SETTING_INPUT = *mut REAL_TIME_NOTIFICATION_SETTING_INPUT;
+STRUCT!{struct REAL_TIME_NOTIFICATION_SETTING_INPUT_EX {
+ TransportSettingId: TRANSPORT_SETTING_ID,
+ BrokerEventGuid: GUID,
+ Unmark: BOOLEAN,
+}}
+pub type PREAL_TIME_NOTIFICATION_SETTING_INPUT_EX = *mut REAL_TIME_NOTIFICATION_SETTING_INPUT_EX;
+STRUCT!{struct REAL_TIME_NOTIFICATION_SETTING_OUTPUT {
+ ChannelStatus: CONTROL_CHANNEL_TRIGGER_STATUS,
+}}
+pub type PREAL_TIME_NOTIFICATION_SETTING_OUTPUT = *mut REAL_TIME_NOTIFICATION_SETTING_OUTPUT;
+STRUCT!{struct ASSOCIATE_NAMERES_CONTEXT_INPUT {
+ TransportSettingId: TRANSPORT_SETTING_ID,
+ Handle: UINT64,
+}}
+pub type PASSOCIATE_NAMERES_CONTEXT_INPUT = *mut ASSOCIATE_NAMERES_CONTEXT_INPUT;
+pub const SIO_RCVALL: DWORD = _WSAIOW!(IOC_VENDOR,1);
+pub const SIO_RCVALL_MCAST: DWORD = _WSAIOW!(IOC_VENDOR,2);
+pub const SIO_RCVALL_IGMPMCAST: DWORD = _WSAIOW!(IOC_VENDOR,3);
+pub const SIO_KEEPALIVE_VALS: DWORD = _WSAIOW!(IOC_VENDOR,4);
+pub const SIO_ABSORB_RTRALERT: DWORD = _WSAIOW!(IOC_VENDOR,5);
+pub const SIO_UCAST_IF: DWORD = _WSAIOW!(IOC_VENDOR,6);
+pub const SIO_LIMIT_BROADCASTS: DWORD = _WSAIOW!(IOC_VENDOR,7);
+pub const SIO_INDEX_BIND: DWORD = _WSAIOW!(IOC_VENDOR,8);
+pub const SIO_INDEX_MCASTIF: DWORD = _WSAIOW!(IOC_VENDOR,9);
+pub const SIO_INDEX_ADD_MCAST: DWORD = _WSAIOW!(IOC_VENDOR,10);
+pub const SIO_INDEX_DEL_MCAST: DWORD = _WSAIOW!(IOC_VENDOR,11);
+pub const SIO_RCVALL_MCAST_IF: DWORD = _WSAIOW!(IOC_VENDOR,13);
+pub const SIO_RCVALL_IF: DWORD = _WSAIOW!(IOC_VENDOR,14);
+pub const SIO_LOOPBACK_FAST_PATH: DWORD = _WSAIOW!(IOC_VENDOR,16);
+pub const SIO_TCP_INITIAL_RTO: DWORD = _WSAIOW!(IOC_VENDOR,17);
+pub const SIO_APPLY_TRANSPORT_SETTING: DWORD = _WSAIOW!(IOC_VENDOR,19);
+pub const SIO_QUERY_TRANSPORT_SETTING: DWORD = _WSAIOW!(IOC_VENDOR,20);
+pub const SIO_TCP_SET_ICW: DWORD = _WSAIOW!(IOC_VENDOR,22);
+pub const SIO_TCP_SET_ACK_FREQUENCY: DWORD = _WSAIOW!(IOC_VENDOR,23);
+pub const SIO_TCP_INFO: DWORD = _WSAIORW!(IOC_VENDOR,39);
+ENUM!{enum RCVALL_VALUE {
+ RCVALL_OFF = 0,
+ RCVALL_ON = 1,
+ RCVALL_SOCKETLEVELONLY = 2,
+ RCVALL_IPLEVEL = 3,
+}}
+pub type PRCVALL_VALUE = *mut RCVALL_VALUE;
+STRUCT!{struct RCVALL_IF {
+ Mode: RCVALL_VALUE,
+ Interface: ULONG,
+}}
+pub type PRCVALL_IF = *mut RCVALL_IF;
+pub const TCP_INITIAL_RTO_UNSPECIFIED_RTT: USHORT = -1i16 as u16;
+pub const TCP_INITIAL_RTO_UNSPECIFIED_MAX_SYN_RETRANSMISSIONS: UCHAR = -1i8 as u8;
+pub const TCP_INITIAL_RTO_DEFAULT_RTT: USHORT = 0;
+pub const TCP_INITIAL_RTO_DEFAULT_MAX_SYN_RETRANSMISSIONS: UCHAR = 0;
+STRUCT!{struct TCP_INITIAL_RTO_PARAMETERS {
+ Rtt: USHORT,
+ MaxSynRetransmissions: UCHAR,
+}}
+pub type PTCP_INITIAL_RTO_PARAMETERS = *mut TCP_INITIAL_RTO_PARAMETERS;
+ENUM!{enum TCP_ICW_LEVEL {
+ TCP_ICW_LEVEL_DEFAULT = 0,
+ TCP_ICW_LEVEL_HIGH = 1,
+ TCP_ICW_LEVEL_VERY_HIGH = 2,
+ TCP_ICW_LEVEL_AGGRESSIVE = 3,
+ TCP_ICW_LEVEL_EXPERIMENTAL = 4,
+ TCP_ICW_LEVEL_COMPAT = 254,
+ TCP_ICW_LEVEL_MAX = 255,
+}}
+pub type PTCP_ICW_LEVEL = *mut TCP_ICW_LEVEL;
+STRUCT!{struct TCP_ICW_PARAMETERS {
+ Level: TCP_ICW_LEVEL,
+}}
+pub type PTCP_ICW_PARAMETERS = *mut TCP_ICW_PARAMETERS;
+STRUCT!{struct TCP_ACK_FREQUENCY_PARAMETERS {
+ TcpDelayedAckFrequency: UCHAR,
+}}
+pub type PTCP_ACK_FREQUENCY_PARAMETERS = *mut TCP_ACK_FREQUENCY_PARAMETERS;
+STRUCT!{struct TCP_INFO_v0 {
+ State: TCPSTATE,
+ Mss: ULONG,
+ ConnectionTimeMs: ULONG64,
+ TimestampsEnabled: BOOLEAN,
+ RttUs: ULONG,
+ MinRttUs: ULONG,
+ BytesInFlight: ULONG,
+ Cwnd: ULONG,
+ SndWnd: ULONG,
+ RcvWnd: ULONG,
+ RcvBuf: ULONG,
+ BytesOut: ULONG64,
+ BytesIn: ULONG64,
+ BytesReordered: ULONG,
+ BytesRetrans: ULONG,
+ FastRetrans: ULONG,
+ DupAcksIn: ULONG,
+ TimeoutEpisodes: ULONG,
+ SynRetrans: UCHAR,
+}}
+pub type PTCP_INFO_v0 = *mut TCP_INFO_v0;
+pub const SIO_ACQUIRE_PORT_RESERVATION: DWORD = _WSAIOW!(IOC_VENDOR, 100);
+pub const SIO_RELEASE_PORT_RESERVATION: DWORD = _WSAIOW!(IOC_VENDOR, 101);
+pub const SIO_ASSOCIATE_PORT_RESERVATION: DWORD = _WSAIOW!(IOC_VENDOR, 102);
+STRUCT!{struct INET_PORT_RANGE {
+ StartPort: USHORT,
+ NumberOfPorts: USHORT,
+}}
+pub type PINET_PORT_RANGE = *mut INET_PORT_RANGE;
+pub type INET_PORT_RESERVATION = INET_PORT_RANGE;
+pub type PINET_PORT_RESERVATION = *mut INET_PORT_RANGE;
+STRUCT!{struct INET_PORT_RESERVATION_TOKEN {
+ Token: ULONG64,
+}}
+pub type PINET_PORT_RESERVATION_TOKEN = *mut INET_PORT_RESERVATION_TOKEN;
+STRUCT!{struct INET_PORT_RESERVATION_INSTANCE {
+ Reservation: INET_PORT_RESERVATION,
+ Token: INET_PORT_RESERVATION_TOKEN,
+}}
+pub type PINET_PORT_RESERVATION_INSTANCE = *mut INET_PORT_RESERVATION_INSTANCE;
+STRUCT!{struct INET_PORT_RESERVATION_INFORMATION {
+ OwningPid: ULONG,
+}}
+pub type PINET_PORT_RESERVATION_INFORMATION = *mut INET_PORT_RESERVATION_INFORMATION;
+pub const SIO_SET_SECURITY: DWORD = _WSAIOW!(IOC_VENDOR, 200);
+pub const SIO_QUERY_SECURITY: DWORD = _WSAIORW!(IOC_VENDOR, 201);
+pub const SIO_SET_PEER_TARGET_NAME: DWORD = _WSAIOW!(IOC_VENDOR, 202);
+pub const SIO_DELETE_PEER_TARGET_NAME: DWORD = _WSAIOW!(IOC_VENDOR, 203);
+pub const SIO_QUERY_WFP_CONNECTION_REDIRECT_RECORDS: DWORD = _WSAIOW!(IOC_VENDOR, 220);
+pub const SIO_QUERY_WFP_CONNECTION_REDIRECT_CONTEXT: DWORD = _WSAIOW!(IOC_VENDOR, 221);
+pub const SIO_SET_WFP_CONNECTION_REDIRECT_RECORDS: DWORD = _WSAIOW!(IOC_VENDOR, 222);
+pub const SIO_SOCKET_USAGE_NOTIFICATION: DWORD = _WSAIOW!(IOC_VENDOR, 204);
+ENUM!{enum SOCKET_USAGE_TYPE {
+ SYSTEM_CRITICAL_SOCKET = 1,
+}}
+ENUM!{enum SOCKET_SECURITY_PROTOCOL {
+ SOCKET_SECURITY_PROTOCOL_DEFAULT,
+ SOCKET_SECURITY_PROTOCOL_IPSEC,
+ SOCKET_SECURITY_PROTOCOL_IPSEC2,
+ SOCKET_SECURITY_PROTOCOL_INVALID,
+}}
+STRUCT!{struct SOCKET_SECURITY_SETTINGS {
+ SecurityProtocol: SOCKET_SECURITY_PROTOCOL,
+ SecurityFlags: ULONG,
+}}
+pub const SOCKET_SETTINGS_IPSEC_SKIP_FILTER_INSTANTIATION: ULONG = 0x1;
+pub const SOCKET_SETTINGS_IPSEC_OPTIONAL_PEER_NAME_VERIFICATION: ULONG = 0x2;
+pub const SOCKET_SETTINGS_IPSEC_ALLOW_FIRST_INBOUND_PKT_UNENCRYPTED: ULONG = 0x4;
+pub const SOCKET_SETTINGS_IPSEC_PEER_NAME_IS_RAW_FORMAT: ULONG = 0x8;
+STRUCT!{struct SOCKET_SECURITY_SETTINGS_IPSEC {
+ SecurityProtocol: SOCKET_SECURITY_PROTOCOL,
+ SecurityFlags: ULONG,
+ IpsecFlags: ULONG,
+ AuthipMMPolicyKey: GUID,
+ AuthipQMPolicyKey: GUID,
+ Reserved: GUID,
+ Reserved2: UINT64,
+ UserNameStringLen: ULONG,
+ DomainNameStringLen: ULONG,
+ PasswordStringLen: ULONG,
+ AllStrings: [wchar_t; 0],
+}}
+STRUCT!{struct SOCKET_PEER_TARGET_NAME {
+ SecurityProtocol: SOCKET_SECURITY_PROTOCOL,
+ PeerAddress: SOCKADDR_STORAGE,
+ PeerTargetNameStringLen: ULONG,
+ AllStrings: [wchar_t; 0],
+}}
+STRUCT!{struct SOCKET_SECURITY_QUERY_TEMPLATE {
+ SecurityProtocol: SOCKET_SECURITY_PROTOCOL,
+ PeerAddress: SOCKADDR_STORAGE,
+ PeerTokenAccessMask: ULONG,
+}}
+pub const SOCKET_QUERY_IPSEC2_ABORT_CONNECTION_ON_FIELD_CHANGE: ULONG = 0x1;
+pub const SOCKET_QUERY_IPSEC2_FIELD_MASK_MM_SA_ID: ULONG = 0x1;
+pub const SOCKET_QUERY_IPSEC2_FIELD_MASK_QM_SA_ID: ULONG = 0x2;
+STRUCT!{struct SOCKET_SECURITY_QUERY_TEMPLATE_IPSEC2 {
+ SecurityProtocol: SOCKET_SECURITY_PROTOCOL,
+ PeerAddress: SOCKADDR_STORAGE,
+ PeerTokenAccessMask: ULONG,
+ Flags: ULONG,
+ FieldMask: ULONG,
+}}
+pub const SOCKET_INFO_CONNECTION_SECURED: ULONG = 0x1;
+pub const SOCKET_INFO_CONNECTION_ENCRYPTED: ULONG = 0x2;
+pub const SOCKET_INFO_CONNECTION_IMPERSONATED: ULONG = 0x4;
+STRUCT!{struct SOCKET_SECURITY_QUERY_INFO {
+ SecurityProtocol: SOCKET_SECURITY_PROTOCOL,
+ Flags: ULONG,
+ PeerApplicationAccessTokenHandle: UINT64,
+ PeerMachineAccessTokenHandle: UINT64,
+}}
+STRUCT!{struct SOCKET_SECURITY_QUERY_INFO_IPSEC2 {
+ SecurityProtocol: SOCKET_SECURITY_PROTOCOL,
+ Flags: ULONG,
+ PeerApplicationAccessTokenHandle: UINT64,
+ PeerMachineAccessTokenHandle: UINT64,
+ MmSaId: UINT64,
+ QmSaId: UINT64,
+ NegotiationWinerr: UINT32,
+ SaLookupContext: GUID,
+}}
+pub const SIO_QUERY_WFP_ALE_ENDPOINT_HANDLE: DWORD = _WSAIOR!(IOC_VENDOR, 205);
+pub const SIO_QUERY_RSS_SCALABILITY_INFO: DWORD = _WSAIOR!(IOC_VENDOR, 210);
+STRUCT!{struct RSS_SCALABILITY_INFO {
+ RssEnabled: BOOLEAN,
+}}
+pub type PRSS_SCALABILITY_INFO = *mut RSS_SCALABILITY_INFO;
+#[inline]
+pub fn IN4_CLASSA(i: LONG) -> bool {
+ (i & 0x80) == 0
+}
+#[inline]
+pub fn IN4_CLASSB(i: LONG) -> bool {
+ (i & 0xc0) == 0x80
+}
+#[inline]
+pub fn IN4_CLASSC(i: LONG) -> bool {
+ (i & 0xe0) == 0xc0
+}
+#[inline]
+pub fn IN4_CLASSD(i: LONG) -> bool {
+ (i & 0xf0) == 0xe0
+}
+#[inline]
+pub fn IN4_MULTICAST(i: LONG) -> bool {
+ IN4_CLASSD(i)
+}
+pub const IN4ADDR_ANY: ULONG = INADDR_ANY;
+pub const IN4ADDR_LOOPBACK: ULONG = 0x0100007f;
+pub const IN4ADDR_BROADCAST: ULONG = INADDR_BROADCAST;
+pub const IN4ADDR_NONE: ULONG = INADDR_NONE;
+pub const IN4ADDR_LOOPBACKPREFIX_LENGTH: usize = 8;
+pub const IN4ADDR_LINKLOCALPREFIX_LENGTH: usize = 16;
+pub const IN4ADDR_MULTICASTPREFIX_LENGTH: usize = 4;
+#[inline]
+pub fn IN4_ADDR_EQUAL(a: &IN_ADDR, b: &IN_ADDR) -> bool {
+ unsafe { *a.S_un.S_addr() == *b.S_un.S_addr() }
+}
+#[inline]
+pub fn IN4_UNALIGNED_ADDR_EQUAL(a: &IN_ADDR, b: &IN_ADDR) -> bool {
+ unsafe { *a.S_un.S_addr() == *b.S_un.S_addr() }
+}
+#[inline]
+pub fn IN4_IS_ADDR_UNSPECIFIED(a: &IN_ADDR) -> bool {
+ unsafe { *a.S_un.S_addr() == IN4ADDR_ANY }
+}
+#[inline]
+pub fn IN4_IS_UNALIGNED_ADDR_UNSPECIFIED(a: &IN_ADDR) -> bool {
+ unsafe { *a.S_un.S_addr() == IN4ADDR_ANY }
+}
+#[inline]
+pub fn IN4_IS_ADDR_LOOPBACK(a: &IN_ADDR) -> bool {
+ unsafe { a.S_un.S_un_b().s_b1 == 0x7f }
+}
+#[inline]
+pub fn IN4_IS_UNALIGNED_ADDR_LOOPBACK(a: &IN_ADDR) -> bool {
+ unsafe { a.S_un.S_un_b().s_b1 == 0x7f }
+}
+#[inline]
+pub fn IN4_IS_ADDR_BROADCAST(a: &IN_ADDR) -> bool {
+ unsafe { *a.S_un.S_addr() == IN4ADDR_BROADCAST }
+}
+#[inline]
+pub fn IN4_IS_UNALIGNED_ADDR_BROADCAST(a: &IN_ADDR) -> bool {
+ unsafe { *a.S_un.S_addr() == IN4ADDR_BROADCAST }
+}
+#[inline]
+pub fn IN4_IS_ADDR_MULTICAST(a: &IN_ADDR) -> bool {
+ IN4_MULTICAST(unsafe { *a.S_un.S_addr() as LONG })
+}
+#[inline]
+pub fn IN4_IS_UNALIGNED_ADDR_MULTICAST(a: &IN_ADDR) -> bool {
+ IN4_MULTICAST(unsafe { *a.S_un.S_addr() as LONG })
+}
+#[inline]
+pub fn IN4_IS_ADDR_LINKLOCAL(a: &IN_ADDR) -> bool {
+ unsafe { (*a.S_un.S_addr() & 0xffff) == 0xfea9 }
+}
+#[inline]
+pub fn IN4_IS_UNALIGNED_ADDR_LINKLOCAL(a: &IN_ADDR) -> bool {
+ unsafe { (*a.S_un.S_addr() & 0xffff) == 0xfea9 }
+}
+#[inline]
+pub fn IN4_IS_ADDR_SITELOCAL(_: &IN_ADDR) -> bool {
+ false
+}
+#[inline]
+pub fn IN4_IS_UNALIGNED_ADDR_SITELOCAL(_: &IN_ADDR) -> bool {
+ false
+}
+#[inline]
+pub fn IN4_IS_ADDR_RFC1918(a: &IN_ADDR) -> bool {
+ let s_addr = unsafe { *a.S_un.S_addr() };
+ ((s_addr & 0x00ff) == 0x0a) || ((s_addr & 0xf0ff) == 0x10ac) || ((s_addr & 0xffff) == 0xa8c0)
+}
+#[inline]
+pub fn IN4_IS_UNALIGNED_ADDR_RFC1918(a: &IN_ADDR) -> bool {
+ IN4_IS_ADDR_RFC1918(a)
+}
+#[inline]
+pub fn IN4_IS_ADDR_MC_LINKLOCAL(a: &IN_ADDR) -> bool {
+ unsafe { (*a.S_un.S_addr() & 0xffffff) == 0xe0 }
+}
+#[inline]
+pub fn IN4_IS_ADDR_MC_ADMINLOCAL(a: &IN_ADDR) -> bool {
+ unsafe { (*a.S_un.S_addr() & 0xffff) == 0xffef }
+}
+#[inline]
+pub fn IN4_IS_ADDR_MC_SITELOCAL(a: &IN_ADDR) -> bool {
+ let first = unsafe { (*a.S_un.S_addr() & 0xff) == 0xef };
+ first && !IN4_IS_ADDR_MC_ADMINLOCAL(a)
+}
+#[inline]
+pub fn IN4ADDR_ISANY(a: &SOCKADDR_IN) -> bool {
+ IN4_IS_ADDR_UNSPECIFIED(&a.sin_addr)
+}
+#[inline]
+pub fn IN4ADDR_ISLOOPBACK(a: &SOCKADDR_IN) -> bool {
+ IN4_IS_ADDR_LOOPBACK(&a.sin_addr)
+}
+extern "system" {
+ pub fn RtlIpv4AddressToStringA(
+ Addr: *const IN_ADDR,
+ S: PSTR,
+ ) -> PSTR;
+ pub fn RtlIpv4AddressToStringExA(
+ Address: *const IN_ADDR,
+ Port: USHORT,
+ AddressString: PSTR,
+ AddressStringLength: PULONG,
+ ) -> LONG;
+ pub fn RtlIpv4AddressToStringW(
+ Addr: *const IN_ADDR,
+ S: PWSTR,
+ ) -> PWSTR;
+ pub fn RtlIpv4AddressToStringExW(
+ Address: *const IN_ADDR,
+ Port: USHORT,
+ AddressString: PWSTR,
+ AddressStringLength: PULONG,
+ ) -> LONG;
+ pub fn RtlIpv4StringToAddressA(
+ S: PCSTR,
+ Strict: BOOLEAN,
+ Terminator: *mut PCSTR,
+ Addr: *mut IN_ADDR,
+ ) -> LONG;
+ pub fn RtlIpv4StringToAddressExA(
+ AddressString: PCSTR,
+ Strict: BOOLEAN,
+ Address: *mut IN_ADDR,
+ Port: PUSHORT,
+ ) -> LONG;
+ pub fn RtlIpv4StringToAddressW(
+ S: PCWSTR,
+ Strict: BOOLEAN,
+ Terminator: *mut LPCWSTR,
+ Addr: *mut IN_ADDR,
+ ) -> LONG;
+ pub fn RtlIpv4StringToAddressExW(
+ AddressString: PCWSTR,
+ Strict: BOOLEAN,
+ Address: *mut IN_ADDR,
+ Port: PUSHORT,
+ ) -> LONG;
+ pub fn RtlIpv6AddressToStringA(
+ Addr: *const IN6_ADDR,
+ S: PSTR,
+ ) -> PSTR;
+ pub fn RtlIpv6AddressToStringExA(
+ Address: *const IN6_ADDR,
+ ScopeId: ULONG,
+ Port: USHORT,
+ AddressString: PSTR,
+ AddressStringLength: PULONG,
+ ) -> LONG;
+ pub fn RtlIpv6AddressToStringW(
+ Addr: *const IN6_ADDR,
+ S: PWSTR,
+ ) -> PWSTR;
+ pub fn RtlIpv6AddressToStringExW(
+ Address: *const IN6_ADDR,
+ ScopeId: ULONG,
+ Port: USHORT,
+ AddressString: PWSTR,
+ AddressStringLength: PULONG,
+ ) -> LONG;
+ pub fn RtlIpv6StringToAddressA(
+ S: PCSTR,
+ Terminator: *mut PCSTR,
+ Addr: *mut IN6_ADDR,
+ ) -> LONG;
+ pub fn RtlIpv6StringToAddressExA(
+ AddressString: PCSTR,
+ Address: *mut IN6_ADDR,
+ ScopeId: PULONG,
+ Port: PUSHORT,
+ ) -> LONG;
+ pub fn RtlIpv6StringToAddressW(
+ S: PCWSTR,
+ Terminator: *mut PCWSTR,
+ Addr: *mut IN6_ADDR,
+ ) -> LONG;
+ pub fn RtlIpv6StringToAddressExW(
+ AddressString: PCWSTR,
+ Address: *mut IN6_ADDR,
+ ScopeId: PULONG,
+ Port: PUSHORT,
+ ) -> LONG;
+}
+DECLARE_HANDLE!{DL_EUI48, _DL_EUI48}
+pub type PDL_EUI48 = *mut DL_EUI48;
+extern "system" {
+ pub fn RtlEthernetAddressToStringA(
+ Addr: *const DL_EUI48,
+ S: PSTR,
+ ) -> PSTR;
+ pub fn RtlEthernetAddressToStringW(
+ Addr: *const DL_EUI48,
+ S: PWSTR,
+ ) -> PWSTR;
+ pub fn RtlEthernetStringToAddressA(
+ S: PCSTR,
+ Terminator: *mut PCSTR,
+ Addr: *mut DL_EUI48,
+ ) -> LONG;
+ pub fn RtlEthernetStringToAddressW(
+ S: PCWSTR,
+ Terminator: *mut LPCWSTR,
+ Addr: *mut DL_EUI48,
+ ) -> LONG;
+}
diff --git a/third_party/rust/chromium_crates_io/vendor/winapi-0.3.9/src/shared/mswsockdef.rs b/third_party/rust/chromium_crates_io/vendor/winapi-0.3.9/src/shared/mswsockdef.rs
new file mode 100644
index 000000000000..b62cf299d071
--- /dev/null
+++ b/third_party/rust/chromium_crates_io/vendor/winapi-0.3.9/src/shared/mswsockdef.rs
@@ -0,0 +1,48 @@
+// Licensed under the Apache License, Version 2.0
+// or the MIT license
+// , at your option.
+// All files in the project carrying such notice may not be copied, modified, or distributed
+// except according to those terms.
+use shared::minwindef::{DWORD, ULONG};
+use shared::ws2def::IOC_VENDOR;
+use um::winnt::{LONG, PVOID, ULONGLONG};
+pub const SIO_SET_COMPATIBILITY_MODE: DWORD = _WSAIOW!(IOC_VENDOR, 300);
+ENUM!{enum WSA_COMPATIBILITY_BEHAVIOR_ID {
+ WsaBehaviorAll = 0,
+ WsaBehaviorReceiveBuffering,
+ WsaBehaviorAutoTuning,
+}}
+pub type PWSA_COMPATIBILITY_BEHAVIOR_ID = *mut WSA_COMPATIBILITY_BEHAVIOR_ID;
+STRUCT!{struct WSA_COMPATIBILITY_MODE {
+ BehaviorId: WSA_COMPATIBILITY_BEHAVIOR_ID,
+ TargetOsVersion: ULONG,
+}}
+pub type PWSA_COMPATIBILITY_MODE = *mut WSA_COMPATIBILITY_MODE;
+pub type RIO_BUFFERID = PVOID;
+pub type PRIO_BUFFERID = *mut PVOID;
+pub type RIO_CQ = PVOID;
+pub type PRIO_CQ = *mut PVOID;
+pub type RIO_RQ = PVOID;
+pub type PRIO_RQ = *mut PVOID;
+STRUCT!{struct RIORESULT {
+ Status: LONG,
+ BytesTransferred: ULONG,
+ SocketContext: ULONGLONG,
+ RequestContext: ULONGLONG,
+}}
+pub type PRIORESULT = *mut RIORESULT;
+STRUCT!{struct RIO_BUF {
+ BufferId: RIO_BUFFERID,
+ Offset: ULONG,
+ Length: ULONG,
+}}
+pub type PRIO_BUF = *mut RIO_BUF;
+pub const RIO_MSG_DONT_NOTIFY: DWORD = 0x00000001;
+pub const RIO_MSG_DEFER: DWORD = 0x00000002;
+pub const RIO_MSG_WAITALL: DWORD = 0x00000004;
+pub const RIO_MSG_COMMIT_ONLY: DWORD = 0x00000008;
+pub const RIO_INVALID_BUFFERID: RIO_BUFFERID = 0xFFFFFFFF as RIO_BUFFERID;
+pub const RIO_INVALID_CQ: RIO_CQ = 0 as RIO_CQ;
+pub const RIO_INVALID_RQ: RIO_RQ = 0 as RIO_RQ;
+pub const RIO_MAX_CQ_SIZE: DWORD = 0x8000000;
+pub const RIO_CORRUPT_CQ: ULONG = 0xFFFFFFFF;
diff --git a/third_party/rust/chromium_crates_io/vendor/winapi-0.3.9/src/shared/netioapi.rs b/third_party/rust/chromium_crates_io/vendor/winapi-0.3.9/src/shared/netioapi.rs
new file mode 100644
index 000000000000..9098b7049300
--- /dev/null
+++ b/third_party/rust/chromium_crates_io/vendor/winapi-0.3.9/src/shared/netioapi.rs
@@ -0,0 +1,702 @@
+// Licensed under the Apache License, Version 2.0
+// or the MIT license
+// , at your option.
+// All files in the project carrying such notice may not be copied, modified, or distributed
+// except according to those terms.
+use shared::basetsd::{PUINT8, SIZE_T, UINT8, ULONG64};
+use shared::guiddef::GUID;
+use shared::ifdef::{
+ IF_MAX_PHYS_ADDRESS_LENGTH, IF_MAX_STRING_SIZE, IF_OPER_STATUS, NET_IFINDEX,
+ NET_IF_ACCESS_TYPE, NET_IF_ADMIN_STATUS, NET_IF_COMPARTMENT_ID, NET_IF_COMPARTMENT_SCOPE,
+ NET_IF_CONNECTION_TYPE, NET_IF_DIRECTION_TYPE, NET_IF_MEDIA_CONNECT_STATE, NET_IF_NETWORK_GUID,
+ NET_LUID, PNET_IFINDEX, PNET_IF_COMPARTMENT_ID, PNET_IF_COMPARTMENT_SCOPE, PNET_LUID,
+ TUNNEL_TYPE,
+};
+use shared::ipifcons::IFTYPE;
+use shared::minwindef::{BYTE, DWORD, PULONG, UCHAR, ULONG, USHORT};
+use shared::nldef::{
+ NL_BANDWIDTH_INFORMATION, NL_DAD_STATE, NL_INTERFACE_OFFLOAD_ROD,
+ NL_LINK_LOCAL_ADDRESS_BEHAVIOR, NL_NEIGHBOR_STATE, NL_PREFIX_ORIGIN,
+ NL_ROUTER_DISCOVERY_BEHAVIOR, NL_ROUTE_ORIGIN, NL_ROUTE_PROTOCOL, NL_SUFFIX_ORIGIN,
+};
+use shared::ntddndis::{NDIS_MEDIUM, NDIS_PHYSICAL_MEDIUM};
+use shared::ntdef::{
+ BOOLEAN, CHAR, HANDLE, LARGE_INTEGER, PCHAR, PCSTR, PSTR, PVOID, PWCHAR, PWSTR, WCHAR,
+};
+use shared::ws2def::{ADDRESS_FAMILY, SCOPE_ID, ScopeLevelCount};
+use shared::ws2ipdef::{PSOCKADDR_IN6_PAIR, SOCKADDR_IN6, SOCKADDR_INET};
+const ANY_SIZE: usize = 1;
+pub type NETIO_STATUS = DWORD;
+pub type NETIOAPI_API = NETIO_STATUS;
+ENUM!{enum MIB_NOTIFICATION_TYPE {
+ MibParameterNotification,
+ MibAddInstance,
+ MibDeleteInstance,
+ MibInitialNotification,
+}}
+pub type PMIB_NOTIFICATION_TYPE = *mut MIB_NOTIFICATION_TYPE;
+STRUCT!{struct MIB_IF_ROW2_InterfaceAndOperStatusFlags {
+ bitfield: BYTE,
+}}
+BITFIELD!{MIB_IF_ROW2_InterfaceAndOperStatusFlags bitfield: BOOLEAN [
+ HardwareInterface set_HardwareInterface[0..1],
+ FilterInterface set_FilterInterface[1..2],
+ ConnectorPresent set_ConnectorPresent[2..3],
+ NotAuthenticated set_NotAuthenticated[3..4],
+ NotMediaConnected set_NotMediaConnected[4..5],
+ Paused set_Paused[5..6],
+ LowPower set_LowPower[6..7],
+ EndPointInterface set_EndPointInterface[7..8],
+]}
+STRUCT!{struct MIB_IF_ROW2 {
+ InterfaceLuid: NET_LUID,
+ InterfaceIndex: NET_IFINDEX,
+ InterfaceGuid: GUID,
+ Alias: [WCHAR; IF_MAX_STRING_SIZE + 1],
+ Description: [WCHAR; IF_MAX_STRING_SIZE + 1],
+ PhysicalAddressLength: ULONG,
+ PhysicalAddress: [UCHAR; IF_MAX_PHYS_ADDRESS_LENGTH],
+ PermanentPhysicalAddress: [UCHAR; IF_MAX_PHYS_ADDRESS_LENGTH],
+ Mtu: ULONG,
+ Type: IFTYPE,
+ TunnelType: TUNNEL_TYPE,
+ MediaType: NDIS_MEDIUM,
+ PhysicalMediumType: NDIS_PHYSICAL_MEDIUM,
+ AccessType: NET_IF_ACCESS_TYPE,
+ DirectionType: NET_IF_DIRECTION_TYPE,
+ InterfaceAndOperStatusFlags: MIB_IF_ROW2_InterfaceAndOperStatusFlags,
+ OperStatus: IF_OPER_STATUS,
+ AdminStatus: NET_IF_ADMIN_STATUS,
+ MediaConnectState: NET_IF_MEDIA_CONNECT_STATE,
+ NetworkGuid: NET_IF_NETWORK_GUID,
+ ConnectionType: NET_IF_CONNECTION_TYPE,
+ TransmitLinkSpeed: ULONG64,
+ ReceiveLinkSpeed: ULONG64,
+ InOctets: ULONG64,
+ InUcastPkts: ULONG64,
+ InNUcastPkts: ULONG64,
+ InDiscards: ULONG64,
+ InErrors: ULONG64,
+ InUnknownProtos: ULONG64,
+ InUcastOctets: ULONG64,
+ InMulticastOctets: ULONG64,
+ InBroadcastOctets: ULONG64,
+ OutOctets: ULONG64,
+ OutUcastPkts: ULONG64,
+ OutNUcastPkts: ULONG64,
+ OutDiscards: ULONG64,
+ OutErrors: ULONG64,
+ OutUcastOctets: ULONG64,
+ OutMulticastOctets: ULONG64,
+ OutBroadcastOctets: ULONG64,
+ OutQLen: ULONG64,
+}}
+pub type PMIB_IF_ROW2 = *mut MIB_IF_ROW2;
+STRUCT!{struct MIB_IF_TABLE2 {
+ NumEntries: ULONG,
+ Table: [MIB_IF_ROW2; ANY_SIZE],
+}}
+pub type PMIB_IF_TABLE2 = *mut MIB_IF_TABLE2;
+extern "system" {
+ pub fn GetIfEntry2(
+ Row: PMIB_IF_ROW2,
+ ) -> NETIOAPI_API;
+}
+ENUM!{enum MIB_IF_ENTRY_LEVEL {
+ MibIfEntryNormal = 0,
+ MibIfEntryNormalWithoutStatistics = 2,
+}}
+pub type PMIB_IF_ENTRY_LEVEL = *mut MIB_IF_ENTRY_LEVEL;
+extern "system" {
+ pub fn GetIfEntry2Ex(
+ Level: MIB_IF_ENTRY_LEVEL,
+ Row: PMIB_IF_ROW2,
+ ) -> NETIOAPI_API;
+ pub fn GetIfTable2(
+ Table: *mut PMIB_IF_TABLE2,
+ ) -> NETIOAPI_API;
+}
+ENUM!{enum MIB_IF_TABLE_LEVEL {
+ MibIfTableNormal = 0,
+ MibIfTableRaw = 1,
+ MibIfTableNormalWithoutStatistics = 2,
+}}
+pub type PMIB_IF_TABLE_LEVEL = *mut MIB_IF_TABLE_LEVEL;
+extern "system" {
+ pub fn GetIfTable2Ex(
+ Level: MIB_IF_TABLE_LEVEL,
+ Table: *mut PMIB_IF_TABLE2,
+ ) -> NETIOAPI_API;
+}
+STRUCT!{struct MIB_IPINTERFACE_ROW {
+ Family: ADDRESS_FAMILY,
+ InterfaceLuid: NET_LUID,
+ InterfaceIndex: NET_IFINDEX,
+ MaxReassemblySize: ULONG,
+ InterfaceIdentifier: ULONG64,
+ MinRouterAdvertisementInterval: ULONG,
+ MaxRouterAdvertisementInterval: ULONG,
+ AdvertisingEnabled: BOOLEAN,
+ ForwardingEnabled: BOOLEAN,
+ WeakHostSend: BOOLEAN,
+ WeakHostReceive: BOOLEAN,
+ UseAutomaticMetric: BOOLEAN,
+ UseNeighborUnreachabilityDetection: BOOLEAN,
+ ManagedAddressConfigurationSupported: BOOLEAN,
+ OtherStatefulConfigurationSupported: BOOLEAN,
+ AdvertiseDefaultRoute: BOOLEAN,
+ RouterDiscoveryBehavior: NL_ROUTER_DISCOVERY_BEHAVIOR,
+ DadTransmits: ULONG, // DupAddrDetectTransmits in RFC 2462.
+ BaseReachableTime: ULONG,
+ RetransmitTime: ULONG,
+ PathMtuDiscoveryTimeout: ULONG, // Path MTU discovery timeout (in ms).
+ LinkLocalAddressBehavior: NL_LINK_LOCAL_ADDRESS_BEHAVIOR,
+ LinkLocalAddressTimeout: ULONG, // In ms.
+ ZoneIndices: [ULONG; ScopeLevelCount as usize], // Zone part of a SCOPE_ID.
+ SitePrefixLength: ULONG,
+ Metric: ULONG,
+ NlMtu: ULONG,
+ Connected: BOOLEAN,
+ SupportsWakeUpPatterns: BOOLEAN,
+ SupportsNeighborDiscovery: BOOLEAN,
+ SupportsRouterDiscovery: BOOLEAN,
+ ReachableTime: ULONG,
+ TransmitOffload: NL_INTERFACE_OFFLOAD_ROD,
+ ReceiveOffload: NL_INTERFACE_OFFLOAD_ROD,
+ DisableDefaultRoutes: BOOLEAN,
+}}
+pub type PMIB_IPINTERFACE_ROW = *mut MIB_IPINTERFACE_ROW;
+STRUCT!{struct MIB_IPINTERFACE_TABLE {
+ NumEntries: ULONG,
+ Table: [MIB_IPINTERFACE_ROW; ANY_SIZE],
+}}
+pub type PMIB_IPINTERFACE_TABLE = *mut MIB_IPINTERFACE_TABLE;
+STRUCT!{struct MIB_IFSTACK_ROW {
+ HigherLayerInterfaceIndex: NET_IFINDEX,
+ LowerLayerInterfaceIndex: NET_IFINDEX,
+}}
+pub type PMIB_IFSTACK_ROW = *mut MIB_IFSTACK_ROW;
+STRUCT!{struct MIB_INVERTEDIFSTACK_ROW {
+ LowerLayerInterfaceIndex: NET_IFINDEX,
+ HigherLayerInterfaceIndex: NET_IFINDEX,
+}}
+pub type PMIB_INVERTEDIFSTACK_ROW = *mut MIB_INVERTEDIFSTACK_ROW;
+STRUCT!{struct MIB_IFSTACK_TABLE {
+ NumEntries: ULONG,
+ Table: [MIB_IFSTACK_ROW; ANY_SIZE],
+}}
+pub type PMIB_IFSTACK_TABLE = *mut MIB_IFSTACK_TABLE;
+STRUCT!{struct MIB_INVERTEDIFSTACK_TABLE {
+ NumEntries: ULONG,
+ Table: [MIB_INVERTEDIFSTACK_ROW; ANY_SIZE],
+}}
+pub type PMIB_INVERTEDIFSTACK_TABLE = *mut MIB_INVERTEDIFSTACK_TABLE;
+FN!{stdcall PIPINTERFACE_CHANGE_CALLBACK(
+ CallerContext: PVOID,
+ Row: PMIB_IPINTERFACE_ROW,
+ NotificationType: MIB_NOTIFICATION_TYPE,
+) -> ()}
+STRUCT!{struct MIB_IP_NETWORK_CONNECTION_BANDWIDTH_ESTIMATES {
+ InboundBandwidthInformation: NL_BANDWIDTH_INFORMATION,
+ OutboundBandwidthInformation: NL_BANDWIDTH_INFORMATION,
+}}
+pub type PMIB_IP_NETWORK_CONNECTION_BANDWIDTH_ESTIMATES = *mut
+ MIB_IP_NETWORK_CONNECTION_BANDWIDTH_ESTIMATES;
+extern "system" {
+ pub fn GetIfStackTable(
+ Table: *mut PMIB_IFSTACK_TABLE,
+ ) -> NETIOAPI_API;
+ pub fn GetInvertedIfStackTable(
+ Table: *mut PMIB_INVERTEDIFSTACK_TABLE,
+ ) -> NETIOAPI_API;
+ pub fn GetIpInterfaceEntry(
+ Row: PMIB_IPINTERFACE_ROW,
+ ) -> NETIOAPI_API;
+ pub fn GetIpInterfaceTable(
+ Family: ADDRESS_FAMILY,
+ Table: *mut PMIB_IPINTERFACE_TABLE,
+ ) -> NETIOAPI_API;
+ pub fn InitializeIpInterfaceEntry(
+ Row: PMIB_IPINTERFACE_ROW,
+ );
+ pub fn NotifyIpInterfaceChange(
+ Family: ADDRESS_FAMILY,
+ Callback: PIPINTERFACE_CHANGE_CALLBACK,
+ CallerContext: PVOID,
+ InitialNotification: BOOLEAN,
+ NotificationHandle: *mut HANDLE
+ ) -> NETIOAPI_API;
+ pub fn SetIpInterfaceEntry(
+ Row: PMIB_IPINTERFACE_ROW,
+ ) -> NETIOAPI_API;
+ pub fn GetIpNetworkConnectionBandwidthEstimates(
+ InterfaceIndex: NET_IFINDEX,
+ AddressFamily: ADDRESS_FAMILY,
+ BandwidthEstimates: PMIB_IP_NETWORK_CONNECTION_BANDWIDTH_ESTIMATES,
+ ) -> NETIOAPI_API;
+}
+STRUCT!{struct MIB_UNICASTIPADDRESS_ROW {
+ Address: SOCKADDR_INET,
+ InterfaceLuid: NET_LUID,
+ InterfaceIndex: NET_IFINDEX,
+ PrefixOrigin: NL_PREFIX_ORIGIN,
+ SuffixOrigin: NL_SUFFIX_ORIGIN,
+ ValidLifetime: ULONG,
+ PreferredLifetime: ULONG,
+ OnLinkPrefixLength: UINT8,
+ SkipAsSource: BOOLEAN,
+ DadState: NL_DAD_STATE,
+ ScopeId: SCOPE_ID,
+ CreationTimeStamp: LARGE_INTEGER,
+}}
+pub type PMIB_UNICASTIPADDRESS_ROW = *mut MIB_UNICASTIPADDRESS_ROW;
+STRUCT!{struct MIB_UNICASTIPADDRESS_TABLE {
+ NumEntries: ULONG,
+ Table: [MIB_UNICASTIPADDRESS_ROW; ANY_SIZE],
+}}
+pub type PMIB_UNICASTIPADDRESS_TABLE = *mut MIB_UNICASTIPADDRESS_TABLE;
+FN!{stdcall PUNICAST_IPADDRESS_CHANGE_CALLBACK(
+ CallerContext: PVOID,
+ Row: PMIB_UNICASTIPADDRESS_ROW,
+ NotificationType: MIB_NOTIFICATION_TYPE,
+) -> ()}
+extern "system" {
+ pub fn CreateUnicastIpAddressEntry(
+ Row: *const MIB_UNICASTIPADDRESS_ROW,
+ ) -> NETIOAPI_API;
+ pub fn DeleteUnicastIpAddressEntry(
+ Row: *const MIB_UNICASTIPADDRESS_ROW,
+ ) -> NETIOAPI_API;
+ pub fn GetUnicastIpAddressEntry(
+ Row: PMIB_UNICASTIPADDRESS_ROW
+ ) -> NETIOAPI_API;
+ pub fn GetUnicastIpAddressTable(
+ Family: ADDRESS_FAMILY,
+ Table: *mut PMIB_UNICASTIPADDRESS_TABLE,
+ ) -> NETIOAPI_API;
+ pub fn InitializeUnicastIpAddressEntry(
+ Row: PMIB_UNICASTIPADDRESS_ROW,
+ );
+ pub fn NotifyUnicastIpAddressChange(
+ Family: ADDRESS_FAMILY,
+ Callback: PUNICAST_IPADDRESS_CHANGE_CALLBACK,
+ CallerContext: PVOID,
+ InitialNotification: BOOLEAN,
+ NotificationHandle: *mut HANDLE,
+ ) -> NETIOAPI_API;
+}
+FN!{stdcall PSTABLE_UNICAST_IPADDRESS_TABLE_CALLBACK(
+ CallerContext: PVOID,
+ AddressTable: PMIB_UNICASTIPADDRESS_TABLE,
+) -> ()}
+extern "system" {
+ pub fn NotifyStableUnicastIpAddressTable(
+ Family: ADDRESS_FAMILY,
+ Table: *mut PMIB_UNICASTIPADDRESS_TABLE,
+ CallerCallback: PSTABLE_UNICAST_IPADDRESS_TABLE_CALLBACK,
+ CallerContext: PVOID,
+ NotificationHandle: *mut HANDLE,
+ ) -> NETIOAPI_API;
+ pub fn SetUnicastIpAddressEntry(
+ Row: *const MIB_UNICASTIPADDRESS_ROW,
+ ) -> NETIOAPI_API;
+}
+STRUCT!{struct MIB_ANYCASTIPADDRESS_ROW {
+ Address: SOCKADDR_INET,
+ InterfaceLuid: NET_LUID,
+ InterfaceIndex: NET_IFINDEX,
+ ScopeId: SCOPE_ID,
+}}
+pub type PMIB_ANYCASTIPADDRESS_ROW = *mut MIB_ANYCASTIPADDRESS_ROW;
+STRUCT!{struct MIB_ANYCASTIPADDRESS_TABLE {
+ NumEntries: ULONG,
+ Table: [MIB_ANYCASTIPADDRESS_ROW; ANY_SIZE],
+}}
+pub type PMIB_ANYCASTIPADDRESS_TABLE = *mut MIB_ANYCASTIPADDRESS_TABLE;
+extern "system" {
+ pub fn CreateAnycastIpAddressEntry(
+ Row: *const MIB_ANYCASTIPADDRESS_ROW,
+ ) -> NETIOAPI_API;
+ pub fn DeleteAnycastIpAddressEntry(
+ Row: *const MIB_ANYCASTIPADDRESS_ROW,
+ ) -> NETIOAPI_API;
+ pub fn GetAnycastIpAddressEntry(
+ Row: PMIB_ANYCASTIPADDRESS_ROW,
+ ) -> NETIOAPI_API;
+ pub fn GetAnycastIpAddressTable(
+ Family: ADDRESS_FAMILY,
+ Table: *mut PMIB_ANYCASTIPADDRESS_TABLE,
+ ) -> NETIOAPI_API;
+}
+STRUCT!{struct MIB_MULTICASTIPADDRESS_ROW {
+ Address: SOCKADDR_INET,
+ InterfaceIndex: NET_IFINDEX,
+ InterfaceLuid: NET_LUID,
+ ScopeId: SCOPE_ID,
+}}
+pub type PMIB_MULTICASTIPADDRESS_ROW = *mut MIB_MULTICASTIPADDRESS_ROW;
+STRUCT!{struct MIB_MULTICASTIPADDRESS_TABLE {
+ NumEntries: ULONG,
+ Table: [MIB_MULTICASTIPADDRESS_ROW; ANY_SIZE],
+}}
+pub type PMIB_MULTICASTIPADDRESS_TABLE = *mut MIB_MULTICASTIPADDRESS_TABLE;
+extern "system" {
+ pub fn GetMulticastIpAddressEntry(
+ Row: PMIB_MULTICASTIPADDRESS_ROW,
+ ) -> NETIOAPI_API;
+ pub fn GetMulticastIpAddressTable(
+ Family: ADDRESS_FAMILY,
+ Table: *mut PMIB_MULTICASTIPADDRESS_TABLE,
+ ) -> NETIOAPI_API;
+}
+STRUCT!{struct IP_ADDRESS_PREFIX {
+ Prefix: SOCKADDR_INET,
+ PrefixLength: UINT8,
+}}
+pub type PIP_ADDRESS_PREFIX = *mut IP_ADDRESS_PREFIX;
+STRUCT!{struct MIB_IPFORWARD_ROW2 {
+ InterfaceLuid: NET_LUID,
+ InterfaceIndex: NET_IFINDEX,
+ DestinationPrefix: IP_ADDRESS_PREFIX,
+ NextHop: SOCKADDR_INET,
+ SitePrefixLength: UCHAR,
+ ValidLifetime: ULONG,
+ PreferredLifetime: ULONG,
+ Metric: ULONG,
+ Protocol: NL_ROUTE_PROTOCOL,
+ Loopback: BOOLEAN,
+ AutoconfigureAddress: BOOLEAN,
+ Publish: BOOLEAN,
+ Immortal: BOOLEAN,
+ Age: ULONG,
+ Origin: NL_ROUTE_ORIGIN,
+}}
+pub type PMIB_IPFORWARD_ROW2 = *mut MIB_IPFORWARD_ROW2;
+STRUCT!{struct MIB_IPFORWARD_TABLE2 {
+ NumEntries: ULONG,
+ Table: [MIB_IPFORWARD_ROW2; ANY_SIZE],
+}}
+pub type PMIB_IPFORWARD_TABLE2 = *mut MIB_IPFORWARD_TABLE2;
+FN!{stdcall PIPFORWARD_CHANGE_CALLBACK(
+ CallerContext: PVOID,
+ Row: PMIB_IPFORWARD_ROW2,
+ NotificationType: MIB_NOTIFICATION_TYPE,
+) -> ()}
+extern "system" {
+ pub fn CreateIpForwardEntry2(
+ Row: *const MIB_IPFORWARD_ROW2,
+ ) -> NETIOAPI_API;
+ pub fn DeleteIpForwardEntry2(
+ Row: *const MIB_IPFORWARD_ROW2,
+ ) -> NETIOAPI_API;
+ pub fn GetBestRoute2(
+ InterfaceLuid: *mut NET_LUID,
+ InterfaceIndex: NET_IFINDEX,
+ SourceAddress: *const SOCKADDR_INET,
+ DestinationAddress: *const SOCKADDR_INET,
+ AddressSortOptions: ULONG,
+ BestRoute: PMIB_IPFORWARD_ROW2,
+ BestSourceAddress: *mut SOCKADDR_INET,
+ ) -> NETIOAPI_API;
+ pub fn GetIpForwardEntry2(
+ Row: PMIB_IPFORWARD_ROW2,
+ ) -> NETIOAPI_API;
+ pub fn GetIpForwardTable2(
+ Family: ADDRESS_FAMILY,
+ Table: *mut PMIB_IPFORWARD_TABLE2,
+ ) -> NETIOAPI_API;
+ pub fn InitializeIpForwardEntry(
+ Row: PMIB_IPFORWARD_ROW2,
+ );
+ pub fn NotifyRouteChange2(
+ AddressFamily: ADDRESS_FAMILY,
+ Callback: PIPFORWARD_CHANGE_CALLBACK,
+ CallerContext: PVOID,
+ InitialNotification: BOOLEAN,
+ NotificationHandle: *mut HANDLE,
+ ) -> NETIOAPI_API;
+ pub fn SetIpForwardEntry2(
+ Route: *const MIB_IPFORWARD_ROW2,
+ ) -> NETIOAPI_API;
+}
+UNION!{union MIB_IPPATH_ROW_u {
+ [u32; 1],
+ LastReachable LastReachable_mut: ULONG, // Milliseconds.
+ LastUnreachable LastUnreachable_mut: ULONG, // Milliseconds.
+}}
+STRUCT!{struct MIB_IPPATH_ROW {
+ Source: SOCKADDR_INET,
+ Destination: SOCKADDR_INET,
+ InterfaceLuid: NET_LUID,
+ InterfaceIndex: NET_IFINDEX,
+ CurrentNextHop: SOCKADDR_INET,
+ PathMtu: ULONG,
+ RttMean: ULONG,
+ RttDeviation: ULONG,
+ u: MIB_IPPATH_ROW_u,
+ IsReachable: BOOLEAN,
+ LinkTransmitSpeed: ULONG64,
+ LinkReceiveSpeed: ULONG64,
+}}
+pub type PMIB_IPPATH_ROW = *mut MIB_IPPATH_ROW;
+STRUCT!{struct MIB_IPPATH_TABLE {
+ NumEntries: ULONG,
+ Table: [MIB_IPPATH_ROW; ANY_SIZE],
+}}
+pub type PMIB_IPPATH_TABLE = *mut MIB_IPPATH_TABLE;
+extern "system" {
+ pub fn FlushIpPathTable(
+ Family: ADDRESS_FAMILY,
+ ) -> NETIOAPI_API;
+ pub fn GetIpPathEntry(
+ Row: PMIB_IPPATH_ROW,
+ ) -> NETIOAPI_API;
+ pub fn GetIpPathTable(
+ Family: ADDRESS_FAMILY,
+ Table: *mut PMIB_IPPATH_TABLE,
+ ) -> NETIOAPI_API;
+}
+STRUCT!{struct MIB_IPNET_ROW2_s {
+ Flags: UCHAR,
+}}
+BITFIELD!{MIB_IPNET_ROW2_s Flags: UCHAR [
+ IsRouter set_IsRouter[0..1],
+ IsUnreachable set_IsUnreachable[1..2],
+ Reserved set_Reserved[2..8],
+]}
+UNION!{union MIB_IPNET_ROW2_ReachabilityTime {
+ [u32; 1],
+ LastReachable LastReachable_mut: ULONG,
+ LastUnreachable LastUnreachable_mut: ULONG,
+}}
+STRUCT!{struct MIB_IPNET_ROW2 {
+ Address: SOCKADDR_INET,
+ InterfaceIndex: NET_IFINDEX,
+ InterfaceLuid: NET_LUID,
+ PhysicalAddress: [UCHAR; IF_MAX_PHYS_ADDRESS_LENGTH],
+ PhysicalAddressLength: ULONG,
+ State: NL_NEIGHBOR_STATE,
+ s: MIB_IPNET_ROW2_s,
+ ReachabilityTime: MIB_IPNET_ROW2_ReachabilityTime,
+}}
+pub type PMIB_IPNET_ROW2 = *mut MIB_IPNET_ROW2;
+STRUCT!{struct MIB_IPNET_TABLE2 {
+ NumEntries: ULONG,
+ Table: [MIB_IPNET_ROW2; ANY_SIZE],
+}}
+pub type PMIB_IPNET_TABLE2 = *mut MIB_IPNET_TABLE2;
+extern "system" {
+ pub fn CreateIpNetEntry2(
+ Row: *const MIB_IPNET_ROW2,
+ ) -> NETIOAPI_API;
+ pub fn DeleteIpNetEntry2(
+ Row: *const MIB_IPNET_ROW2,
+ ) -> NETIOAPI_API;
+ pub fn FlushIpNetTable2(
+ Family: ADDRESS_FAMILY,
+ InterfaceIndex: NET_IFINDEX,
+ ) -> NETIOAPI_API;
+ pub fn GetIpNetEntry2(
+ Row: PMIB_IPNET_ROW2,
+ ) -> NETIOAPI_API;
+ pub fn GetIpNetTable2(
+ Family: ADDRESS_FAMILY,
+ Table: *mut PMIB_IPNET_TABLE2,
+ ) -> NETIOAPI_API;
+ pub fn ResolveIpNetEntry2(
+ Row: PMIB_IPNET_ROW2,
+ SourceAddress: *const SOCKADDR_INET,
+ ) -> NETIOAPI_API;
+ pub fn SetIpNetEntry2(
+ Row: PMIB_IPNET_ROW2,
+ ) -> NETIOAPI_API;
+}
+pub const MIB_INVALID_TEREDO_PORT_NUMBER: USHORT = 0;
+FN!{stdcall PTEREDO_PORT_CHANGE_CALLBACK(
+ CallerContext: PVOID,
+ Port: USHORT,
+ NotificationType: MIB_NOTIFICATION_TYPE,
+) -> ()}
+extern "system" {
+ pub fn NotifyTeredoPortChange(
+ Callback: PTEREDO_PORT_CHANGE_CALLBACK,
+ CallerContext: PVOID,
+ InitialNotification: BOOLEAN,
+ NotificationHandle: *mut HANDLE,
+ ) -> NETIOAPI_API;
+ pub fn GetTeredoPort(
+ Port: *mut USHORT,
+ ) -> NETIOAPI_API;
+ pub fn CancelMibChangeNotify2(
+ NotificationHandle: HANDLE,
+ ) -> NETIOAPI_API;
+ pub fn FreeMibTable(
+ Memory: PVOID,
+ );
+ pub fn CreateSortedAddressPairs(
+ SourceAddressList: *const SOCKADDR_IN6,
+ SourceAddressCount: ULONG,
+ DestinationAddressList: *const SOCKADDR_IN6,
+ DestinationAddressCount: ULONG,
+ AddressSortOptions: ULONG,
+ SortedAddressPairList: *mut PSOCKADDR_IN6_PAIR,
+ SortedAddressPairCount: *mut ULONG,
+ ) -> NETIOAPI_API;
+ pub fn ConvertCompartmentGuidToId(
+ CompartmentGuid: *const GUID,
+ CompartmentId: PNET_IF_COMPARTMENT_ID,
+ ) -> NETIOAPI_API;
+ pub fn ConvertCompartmentIdToGuid(
+ CompartmentId: NET_IF_COMPARTMENT_ID,
+ CompartmentGuid: *mut GUID,
+ ) -> NETIOAPI_API;
+ pub fn ConvertInterfaceNameToLuidA(
+ InterfaceName: *const CHAR,
+ InterfaceLuid: *mut NET_LUID,
+ ) -> NETIOAPI_API;
+ pub fn ConvertInterfaceNameToLuidW(
+ InterfaceName: *const WCHAR,
+ InterfaceLuid: *mut NET_LUID,
+ ) -> NETIOAPI_API;
+ pub fn ConvertInterfaceLuidToNameA(
+ InterfaceLuid: *const NET_LUID,
+ InterfaceName: PSTR,
+ Length: SIZE_T,
+ ) -> NETIOAPI_API;
+ pub fn ConvertInterfaceLuidToNameW(
+ InterfaceLuid: *const NET_LUID,
+ InterfaceName: PWSTR,
+ Length: SIZE_T,
+ ) -> NETIOAPI_API;
+ pub fn ConvertInterfaceLuidToIndex(
+ InterfaceLuid: *const NET_LUID,
+ InterfaceIndex: PNET_IFINDEX,
+ ) -> NETIOAPI_API;
+ pub fn ConvertInterfaceIndexToLuid(
+ InterfaceIndex: NET_IFINDEX,
+ InterfaceLuid: PNET_LUID,
+ ) -> NETIOAPI_API;
+ pub fn ConvertInterfaceLuidToAlias(
+ InterfaceLuid: *const NET_LUID,
+ InterfaceAlias: PWSTR,
+ Length: SIZE_T,
+ ) -> NETIOAPI_API;
+ pub fn ConvertInterfaceAliasToLuid(
+ InterfaceAlias: *const WCHAR,
+ InterfaceLuid: PNET_LUID,
+ ) -> NETIOAPI_API;
+ pub fn ConvertInterfaceLuidToGuid(
+ InterfaceLuid: *const NET_LUID,
+ InterfaceGuid: *mut GUID,
+ ) -> NETIOAPI_API;
+ pub fn ConvertInterfaceGuidToLuid(
+ InterfaceGuid: *const GUID,
+ InterfaceLuid: PNET_LUID,
+ ) -> NETIOAPI_API;
+ pub fn if_nametoindex(
+ InterfaceName: PCSTR,
+ ) -> NET_IFINDEX;
+ pub fn if_indextoname(
+ InterfaceIndex: NET_IFINDEX,
+ InterfaceName: PCHAR,
+ ) -> PCHAR;
+ pub fn GetCurrentThreadCompartmentId() -> NET_IF_COMPARTMENT_ID;
+ pub fn SetCurrentThreadCompartmentId(
+ CompartmentId: NET_IF_COMPARTMENT_ID
+ ) -> NETIOAPI_API;
+ pub fn GetCurrentThreadCompartmentScope(
+ CompartmentScope: PNET_IF_COMPARTMENT_SCOPE,
+ CompartmentId: PNET_IF_COMPARTMENT_ID,
+ );
+ pub fn SetCurrentThreadCompartmentScope(
+ CompartmentScope: NET_IF_COMPARTMENT_SCOPE,
+ ) -> NETIOAPI_API;
+ pub fn GetJobCompartmentId(
+ JobHandle: HANDLE,
+ ) -> NET_IF_COMPARTMENT_ID;
+ pub fn SetJobCompartmentId(
+ JobHandle: HANDLE,
+ CompartmentId: NET_IF_COMPARTMENT_ID,
+ ) -> NETIOAPI_API;
+ pub fn GetSessionCompartmentId(
+ SessionId: ULONG,
+ ) -> NET_IF_COMPARTMENT_ID;
+ pub fn SetSessionCompartmentId(
+ SessionId: ULONG,
+ CompartmentId: NET_IF_COMPARTMENT_ID,
+ ) -> NETIOAPI_API;
+ pub fn GetDefaultCompartmentId() -> NET_IF_COMPARTMENT_ID;
+ pub fn GetNetworkInformation(
+ NetworkGuid: *const NET_IF_NETWORK_GUID,
+ CompartmentId: PNET_IF_COMPARTMENT_ID,
+ SiteId: PULONG,
+ NetworkName: PWCHAR,
+ Length: ULONG,
+ ) -> NETIOAPI_API;
+ pub fn SetNetworkInformation(
+ NetworkGuid: *const NET_IF_NETWORK_GUID,
+ CompartmentId: NET_IF_COMPARTMENT_ID,
+ NetworkName: *const WCHAR,
+ ) -> NETIOAPI_API;
+ pub fn ConvertLengthToIpv4Mask(
+ MaskLength: ULONG,
+ Mask: PULONG,
+ ) -> NETIOAPI_API;
+ pub fn ConvertIpv4MaskToLength(
+ Mask: ULONG,
+ MaskLength: PUINT8,
+ ) -> NETIOAPI_API;
+}
+pub const DNS_SETTINGS_VERSION1: ULONG = 0x0001;
+pub const DNS_INTERFACE_SETTINGS_VERSION1: ULONG = 0x0001;
+pub const DNS_SETTING_IPV6: ULONG64 = 0x0001;
+pub const DNS_SETTING_NAMESERVER: ULONG64 = 0x0002;
+pub const DNS_SETTING_SEARCHLIST: ULONG64 = 0x0004;
+pub const DNS_SETTING_REGISTRATION_ENABLED: ULONG64 = 0x0008;
+pub const DNS_SETTING_REGISTER_ADAPTER_NAME: ULONG64 = 0x0010;
+pub const DNS_SETTING_DOMAIN: ULONG64 = 0x0020;
+pub const DNS_SETTING_HOSTNAME: ULONG64 = 0x0040;
+pub const DNS_SETTINGS_ENABLE_LLMNR: ULONG64 = 0x0080;
+pub const DNS_SETTINGS_QUERY_ADAPTER_NAME: ULONG64 = 0x0100;
+pub const DNS_SETTING_PROFILE_NAMESERVER: ULONG64 = 0x0200;
+STRUCT!{struct DNS_SETTINGS {
+ Version: ULONG,
+ Flags: ULONG64,
+ Hostname: PWSTR,
+ Domain: PWSTR,
+ SearchList: PWSTR,
+}}
+STRUCT!{struct DNS_INTERFACE_SETTINGS {
+ Version: ULONG,
+ Flags: ULONG64,
+ Domain: PWSTR,
+ NameServer: PWSTR,
+ SearchList: PWSTR,
+ RegistrationEnabled: ULONG,
+ RegisterAdapterName: ULONG,
+ EnableLLMNR: ULONG,
+ QueryAdapterName: ULONG,
+ ProfileNameServer: PWSTR,
+}}
+extern "system" {
+ pub fn GetDnsSettings(
+ Settings: *mut DNS_SETTINGS,
+ ) -> NETIOAPI_API;
+ pub fn FreeDnsSettings(
+ Settings: *mut DNS_SETTINGS,
+ );
+ pub fn SetDnsSettings(
+ Settings: *const DNS_SETTINGS,
+ ) -> NETIOAPI_API;
+ pub fn GetInterfaceDnsSettings(
+ Interface: GUID,
+ Settings: *mut DNS_INTERFACE_SETTINGS,
+ ) -> NETIOAPI_API;
+ pub fn FreeInterfaceDnsSettings(
+ Settings: *mut DNS_INTERFACE_SETTINGS,
+ );
+ pub fn SetInterfaceDnsSettings(
+ Interface: GUID,
+ Settings: *const DNS_INTERFACE_SETTINGS,
+ ) -> NETIOAPI_API;
+}
diff --git a/third_party/rust/chromium_crates_io/vendor/winapi-0.3.9/src/shared/nldef.rs b/third_party/rust/chromium_crates_io/vendor/winapi-0.3.9/src/shared/nldef.rs
new file mode 100644
index 000000000000..2805e593d84e
--- /dev/null
+++ b/third_party/rust/chromium_crates_io/vendor/winapi-0.3.9/src/shared/nldef.rs
@@ -0,0 +1,204 @@
+// Licensed under the Apache License, Version 2.0
+// or the MIT license
+// , at your option.
+// All files in the project carrying such notice may not be copied, modified, or distributed
+// except according to those terms.
+use shared::basetsd::ULONG64;
+use shared::minwindef::ULONG;
+use shared::ntdef::BOOLEAN;
+ENUM!{enum NL_PREFIX_ORIGIN {
+ IpPrefixOriginOther = 0,
+ IpPrefixOriginManual,
+ IpPrefixOriginWellKnown,
+ IpPrefixOriginDhcp,
+ IpPrefixOriginRouterAdvertisement,
+ IpPrefixOriginUnchanged = 1 << 4,
+}}
+pub const NlpoOther: NL_PREFIX_ORIGIN = IpPrefixOriginOther;
+pub const NlpoManual: NL_PREFIX_ORIGIN = IpPrefixOriginManual;
+pub const NlpoWellKnown: NL_PREFIX_ORIGIN = IpPrefixOriginWellKnown;
+pub const NlpoDhcp: NL_PREFIX_ORIGIN = IpPrefixOriginDhcp;
+pub const NlpoRouterAdvertisement: NL_PREFIX_ORIGIN = IpPrefixOriginRouterAdvertisement;
+ENUM!{enum NL_SUFFIX_ORIGIN {
+ NlsoOther = 0,
+ NlsoManual,
+ NlsoWellKnown,
+ NlsoDhcp,
+ NlsoLinkLayerAddress,
+ NlsoRandom,
+ IpSuffixOriginOther = 0,
+ IpSuffixOriginManual,
+ IpSuffixOriginWellKnown,
+ IpSuffixOriginDhcp,
+ IpSuffixOriginLinkLayerAddress,
+ IpSuffixOriginRandom,
+ IpSuffixOriginUnchanged = 1 << 4,
+}}
+ENUM!{enum NL_DAD_STATE {
+ NldsInvalid,
+ NldsTentative,
+ NldsDuplicate,
+ NldsDeprecated,
+ NldsPreferred,
+ IpDadStateInvalid = 0,
+ IpDadStateTentative,
+ IpDadStateDuplicate,
+ IpDadStateDeprecated,
+ IpDadStatePreferred,
+}}
+pub const NL_MAX_METRIC_COMPONENT: ULONG = (1u32 << 31) - 1;
+ENUM!{enum NL_ROUTE_PROTOCOL {
+ RouteProtocolOther = 1,
+ RouteProtocolLocal = 2,
+ RouteProtocolNetMgmt = 3,
+ RouteProtocolIcmp = 4,
+ RouteProtocolEgp = 5,
+ RouteProtocolGgp = 6,
+ RouteProtocolHello = 7,
+ RouteProtocolRip = 8,
+ RouteProtocolIsIs = 9,
+ RouteProtocolEsIs = 10,
+ RouteProtocolCisco = 11,
+ RouteProtocolBbn = 12,
+ RouteProtocolOspf = 13,
+ RouteProtocolBgp = 14,
+ RouteProtocolIdpr = 15,
+ RouteProtocolEigrp = 16,
+ RouteProtocolDvmrp = 17,
+ RouteProtocolRpl = 18,
+ RouteProtocolDhcp = 19,
+ MIB_IPPROTO_OTHER = 1,
+ PROTO_IP_OTHER = 1,
+ MIB_IPPROTO_LOCAL = 2,
+ PROTO_IP_LOCAL = 2,
+ MIB_IPPROTO_NETMGMT = 3,
+ PROTO_IP_NETMGMT = 3,
+ MIB_IPPROTO_ICMP = 4,
+ PROTO_IP_ICMP = 4,
+ MIB_IPPROTO_EGP = 5,
+ PROTO_IP_EGP = 5,
+ MIB_IPPROTO_GGP = 6,
+ PROTO_IP_GGP = 6,
+ MIB_IPPROTO_HELLO = 7,
+ PROTO_IP_HELLO = 7,
+ MIB_IPPROTO_RIP = 8,
+ PROTO_IP_RIP = 8,
+ MIB_IPPROTO_IS_IS = 9,
+ PROTO_IP_IS_IS = 9,
+ MIB_IPPROTO_ES_IS = 10,
+ PROTO_IP_ES_IS = 10,
+ MIB_IPPROTO_CISCO = 11,
+ PROTO_IP_CISCO = 11,
+ MIB_IPPROTO_BBN = 12,
+ PROTO_IP_BBN = 12,
+ MIB_IPPROTO_OSPF = 13,
+ PROTO_IP_OSPF = 13,
+ MIB_IPPROTO_BGP = 14,
+ PROTO_IP_BGP = 14,
+ MIB_IPPROTO_IDPR = 15,
+ PROTO_IP_IDPR = 15,
+ MIB_IPPROTO_EIGRP = 16,
+ PROTO_IP_EIGRP = 16,
+ MIB_IPPROTO_DVMRP = 17,
+ PROTO_IP_DVMRP = 17,
+ MIB_IPPROTO_RPL = 18,
+ PROTO_IP_RPL = 18,
+ MIB_IPPROTO_DHCP = 19,
+ PROTO_IP_DHCP = 19,
+ MIB_IPPROTO_NT_AUTOSTATIC = 10002,
+ PROTO_IP_NT_AUTOSTATIC = 10002,
+ MIB_IPPROTO_NT_STATIC = 10006,
+ PROTO_IP_NT_STATIC = 10006,
+ MIB_IPPROTO_NT_STATIC_NON_DOD = 10007,
+ PROTO_IP_NT_STATIC_NON_DOD = 10007,
+}}
+pub type PNL_ROUTE_PROTOCOL = *mut NL_ROUTE_PROTOCOL;
+ENUM!{enum NL_ADDRESS_TYPE {
+ NlatUnspecified = 0,
+ NlatUnicast = 1,
+ NlatAnycast = 2,
+ NlatMulticast = 3,
+ NlatBroadcast = 4,
+ NlatInvalid = 5,
+}}
+pub type PNL_ADDRESS_TYPE = *mut NL_ADDRESS_TYPE;
+ENUM!{enum NL_ROUTE_ORIGIN {
+ NlroManual = 0,
+ NlroWellKnown = 1,
+ NlroDHCP = 2,
+ NlroRouterAdvertisement = 3,
+ Nlro6to4 = 4,
+}}
+pub type PNL_ROUTE_ORIGIN = *mut NL_ROUTE_ORIGIN;
+ENUM!{enum NL_NEIGHBOR_STATE {
+ NlnsUnreachable = 0,
+ NlnsIncomplete = 1,
+ NlnsProbe = 2,
+ NlnsDelay = 3,
+ NlnsStale = 4,
+ NlnsReachable = 5,
+ NlnsPermanent = 6,
+ NlnsMaximum = 7,
+}}
+pub type PNL_NEIGHBOR_STATE = *mut NL_NEIGHBOR_STATE;
+ENUM!{enum NL_LINK_LOCAL_ADDRESS_BEHAVIOR {
+ LinkLocalAlwaysOff = 0,
+ LinkLocalDelayed = 1,
+ LinkLocalAlwaysOn = 2,
+ LinkLocalUnchanged = -1i32 as u32,
+}}
+STRUCT!{struct NL_INTERFACE_OFFLOAD_ROD {
+ bitfield: BOOLEAN,
+}}
+BITFIELD!{NL_INTERFACE_OFFLOAD_ROD bitfield: BOOLEAN [
+ NlChecksumSupported set_NlChecksumSupported[0..1],
+ NlOptionsSupported set_NlOptionsSupported[1..2],
+ TlDatagramChecksumSupported set_TlDatagramChecksumSupported[2..3],
+ TlStreamChecksumSupported set_TlStreamChecksumSupported[3..4],
+ TlStreamOptionsSupported set_TlStreamOptionsSupported[4..5],
+ FastPathCompatible set_FastPathCompatible[5..6],
+ TlLargeSendOffloadSupported set_TlLargeSendOffloadSupported[6..7],
+ TlGiantSendOffloadSupported set_TlGiantSendOffloadSupported[7..8],
+]}
+pub type PNL_INTERFACE_OFFLOAD_ROD = *mut NL_INTERFACE_OFFLOAD_ROD;
+ENUM!{enum NL_ROUTER_DISCOVERY_BEHAVIOR {
+ RouterDiscoveryDisabled = 0,
+ RouterDiscoveryEnabled = 1,
+ RouterDiscoveryDhcp = 2,
+ RouterDiscoveryUnchanged = -1i32 as u32,
+}}
+ENUM!{enum NL_BANDWIDTH_FLAG {
+ NlbwDisabled = 0,
+ NlbwEnabled = 1,
+ NlbwUnchanged = -1i32 as u32,
+}}
+pub type PNL_BANDWIDTH_FLAG = *mut NL_BANDWIDTH_FLAG;
+STRUCT!{struct NL_PATH_BANDWIDTH_ROD {
+ Bandwidth: ULONG64,
+ Instability: ULONG64,
+ BandwidthPeaked: BOOLEAN,
+}}
+pub type PNL_PATH_BANDWIDTH_ROD = *mut NL_PATH_BANDWIDTH_ROD;
+ENUM!{enum NL_NETWORK_CATEGORY {
+ NetworkCategoryPublic = 0,
+ NetworkCategoryPrivate = 1,
+ NetworkCategoryDomainAuthenticated = 2,
+ NetworkCategoryUnchanged = -1i32 as u32,
+ NetworkCategoryUnknown = -1i32 as u32,
+}}
+pub type PNL_NETWORK_CATEGORY = *mut NL_NETWORK_CATEGORY;
+ENUM!{enum NL_INTERFACE_NETWORK_CATEGORY_STATE {
+ NlincCategoryUnknown = 0,
+ NlincPublic = 1,
+ NlincPrivate = 2,
+ NlincDomainAuthenticated = 3,
+ NlincCategoryStateMax = 4,
+}}
+pub type PNL_INTERFACE_NETWORK_CATEGORY_STATE = *mut NL_INTERFACE_NETWORK_CATEGORY_STATE;
+pub const NET_IF_CURRENT_SESSION: ULONG = -1i32 as u32;
+STRUCT!{struct NL_BANDWIDTH_INFORMATION {
+ Bandwidth: ULONG64,
+ Instability: ULONG64,
+ BandwidthPeaked: BOOLEAN,
+}}
+pub type PNL_BANDWIDTH_INFORMATION = *mut NL_BANDWIDTH_INFORMATION;
diff --git a/third_party/rust/chromium_crates_io/vendor/winapi-0.3.9/src/shared/ntddndis.rs b/third_party/rust/chromium_crates_io/vendor/winapi-0.3.9/src/shared/ntddndis.rs
new file mode 100644
index 000000000000..d519cb25522a
--- /dev/null
+++ b/third_party/rust/chromium_crates_io/vendor/winapi-0.3.9/src/shared/ntddndis.rs
@@ -0,0 +1,75 @@
+// Licensed under the Apache License, Version 2.0
+// or the MIT license
+// , at your option.
+// All files in the project carrying such notice may not be copied, modified, or distributed
+// except according to those terms.
+use ctypes::c_int;
+use shared::ifdef::IF_MAX_STRING_SIZE;
+use shared::minwindef::{UCHAR, USHORT};
+//290
+STRUCT!{struct NDIS_OBJECT_HEADER {
+ Type: UCHAR,
+ Revision: UCHAR,
+ Size: USHORT,
+}}
+pub type PNDIS_OBJECT_HEADER = *mut NDIS_OBJECT_HEADER;
+//2274
+ENUM!{enum NDIS_MEDIUM {
+ NdisMedium802_3 = 0,
+ NdisMedium802_5 = 1,
+ NdisMediumFddi = 2,
+ NdisMediumWan = 3,
+ NdisMediumLocalTalk = 4,
+ NdisMediumDix = 5,
+ NdisMediumArcnetRaw = 6,
+ NdisMediumArcnet878_2 = 7,
+ NdisMediumAtm = 8,
+ NdisMediumWirelessWan = 9,
+ NdisMediumIrda = 10,
+ NdisMediumBpc = 11,
+ NdisMediumCoWan = 12,
+ NdisMedium1394 = 13,
+ NdisMediumInfiniBand = 14,
+ NdisMediumTunnel = 15,
+ NdisMediumNative802_11 = 16,
+ NdisMediumLoopback = 17,
+ NdisMediumWiMAX = 18,
+ NdisMediumIP = 19,
+ NdisMediumMax = 20,
+}}
+pub type PNDIS_MEDIUM = *mut NDIS_MEDIUM;
+ENUM!{enum NDIS_PHYSICAL_MEDIUM {
+ NdisPhysicalMediumUnspecified = 0,
+ NdisPhysicalMediumWirelessLan = 1,
+ NdisPhysicalMediumCableModem = 2,
+ NdisPhysicalMediumPhoneLine = 3,
+ NdisPhysicalMediumPowerLine = 4,
+ NdisPhysicalMediumDSL = 5,
+ NdisPhysicalMediumFibreChannel = 6,
+ NdisPhysicalMedium1394 = 7,
+ NdisPhysicalMediumWirelessWan = 8,
+ NdisPhysicalMediumNative802_11 = 9,
+ NdisPhysicalMediumBluetooth = 10,
+ NdisPhysicalMediumInfiniband = 11,
+ NdisPhysicalMediumWiMax = 12,
+ NdisPhysicalMediumUWB = 13,
+ NdisPhysicalMedium802_3 = 14,
+ NdisPhysicalMedium802_5 = 15,
+ NdisPhysicalMediumIrda = 16,
+ NdisPhysicalMediumWiredWAN = 17,
+ NdisPhysicalMediumWiredCoWan = 18,
+ NdisPhysicalMediumOther = 19,
+ NdisPhysicalMediumMax = 20,
+}}
+pub type PNDIS_PHYSICAL_MEDIUM = *mut NDIS_PHYSICAL_MEDIUM;
+//2691
+pub type NDIS_STATUS = c_int;
+pub type PNDIS_STATUS = *mut c_int;
+//2736
+pub const NDIS_PACKET_TYPE_DIRECTED: u32 = 0x00000001;
+pub const NDIS_PACKET_TYPE_MULTICAST: u32 = 0x00000002;
+pub const NDIS_PACKET_TYPE_ALL_MULTICAST: u32 = 0x00000004;
+pub const NDIS_PACKET_TYPE_BROADCAST: u32 = 0x00000008;
+pub const NDIS_PACKET_TYPE_PROMISCUOUS: u32 = 0x00000020;
+//2835
+pub const NDIS_IF_MAX_STRING_SIZE: usize = IF_MAX_STRING_SIZE;
diff --git a/third_party/rust/chromium_crates_io/vendor/winapi-0.3.9/src/shared/ntddscsi.rs b/third_party/rust/chromium_crates_io/vendor/winapi-0.3.9/src/shared/ntddscsi.rs
new file mode 100644
index 000000000000..c2e4f2c682a8
--- /dev/null
+++ b/third_party/rust/chromium_crates_io/vendor/winapi-0.3.9/src/shared/ntddscsi.rs
@@ -0,0 +1,834 @@
+// Licensed under the Apache License, Version 2.0
+// or the MIT license
+// , at your option.
+// All files in the project carrying such notice may not be copied, modified, or distributed
+// except according to those terms.
+//! Constants and types for accessing SCSI port adapters.
+use shared::basetsd::{ULONG32, ULONG_PTR};
+use shared::minwindef::{UCHAR, ULONG, USHORT};
+use shared::ntdef::{LARGE_INTEGER, LONG, LONGLONG, PVOID, ULONGLONG, VOID, WCHAR};
+use um::winioctl::{
+ DEVICE_TYPE, FILE_ANY_ACCESS, FILE_DEVICE_CONTROLLER, FILE_READ_ACCESS,
+ FILE_WRITE_ACCESS, METHOD_BUFFERED
+};
+use um::winnt::{ANYSIZE_ARRAY, BOOLEAN, PBOOLEAN};
+DEFINE_GUID!{ScsiRawInterfaceGuid,
+ 0x53f56309, 0xb6bf, 0x11d0, 0x94, 0xf2, 0x00, 0xa0, 0xc9, 0x1e, 0xfb, 0x8b}
+DEFINE_GUID!{WmiScsiAddressGuid,
+ 0x53f5630f, 0xb6bf, 0x11d0, 0x94, 0xf2, 0x00, 0xa0, 0xc9, 0x1e, 0xfb, 0x8b}
+pub const IOCTL_SCSI_BASE: DEVICE_TYPE = FILE_DEVICE_CONTROLLER;
+pub const FILE_DEVICE_SCSI: ULONG = 0x0000001;
+pub const DD_SCSI_DEVICE_NAME: &'static str = "\\Device\\ScsiPort";
+pub const IOCTL_SCSI_PASS_THROUGH: ULONG =
+ CTL_CODE!(IOCTL_SCSI_BASE, 0x0401, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS);
+pub const IOCTL_SCSI_MINIPORT: ULONG =
+ CTL_CODE!(IOCTL_SCSI_BASE, 0x0402, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS);
+pub const IOCTL_SCSI_GET_INQUIRY_DATA: ULONG =
+ CTL_CODE!(IOCTL_SCSI_BASE, 0x0403, METHOD_BUFFERED, FILE_ANY_ACCESS);
+pub const IOCTL_SCSI_GET_CAPABILITIES: ULONG =
+ CTL_CODE!(IOCTL_SCSI_BASE, 0x0404, METHOD_BUFFERED, FILE_ANY_ACCESS);
+pub const IOCTL_SCSI_PASS_THROUGH_DIRECT: ULONG =
+ CTL_CODE!(IOCTL_SCSI_BASE, 0x0405, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS);
+pub const IOCTL_SCSI_GET_ADDRESS: ULONG =
+ CTL_CODE!(IOCTL_SCSI_BASE, 0x0406, METHOD_BUFFERED, FILE_ANY_ACCESS);
+pub const IOCTL_SCSI_RESCAN_BUS: ULONG =
+ CTL_CODE!(IOCTL_SCSI_BASE, 0x0407, METHOD_BUFFERED, FILE_ANY_ACCESS);
+pub const IOCTL_SCSI_GET_DUMP_POINTERS: ULONG =
+ CTL_CODE!(IOCTL_SCSI_BASE, 0x0408, METHOD_BUFFERED, FILE_ANY_ACCESS);
+pub const IOCTL_SCSI_FREE_DUMP_POINTERS: ULONG =
+ CTL_CODE!(IOCTL_SCSI_BASE, 0x0409, METHOD_BUFFERED, FILE_ANY_ACCESS);
+pub const IOCTL_IDE_PASS_THROUGH: ULONG =
+ CTL_CODE!(IOCTL_SCSI_BASE, 0x040a, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS);
+pub const IOCTL_ATA_PASS_THROUGH: ULONG =
+ CTL_CODE!(IOCTL_SCSI_BASE, 0x040b, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS);
+pub const IOCTL_ATA_PASS_THROUGH_DIRECT: ULONG =
+ CTL_CODE!(IOCTL_SCSI_BASE, 0x040c, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS);
+pub const IOCTL_ATA_MINIPORT: ULONG =
+ CTL_CODE!(IOCTL_SCSI_BASE, 0x040d, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS);
+pub const IOCTL_MINIPORT_PROCESS_SERVICE_IRP: ULONG =
+ CTL_CODE!(IOCTL_SCSI_BASE, 0x040e, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS);
+pub const IOCTL_MPIO_PASS_THROUGH_PATH: ULONG =
+ CTL_CODE!(IOCTL_SCSI_BASE, 0x040f, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS);
+pub const IOCTL_MPIO_PASS_THROUGH_PATH_DIRECT: ULONG =
+ CTL_CODE!(IOCTL_SCSI_BASE, 0x0410, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS);
+pub const IOCTL_SCSI_PASS_THROUGH_EX: ULONG =
+ CTL_CODE!(IOCTL_SCSI_BASE, 0x0411, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS);
+pub const IOCTL_SCSI_PASS_THROUGH_DIRECT_EX: ULONG =
+ CTL_CODE!(IOCTL_SCSI_BASE, 0x0412, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS);
+pub const IOCTL_MPIO_PASS_THROUGH_PATH_EX: ULONG =
+ CTL_CODE!(IOCTL_SCSI_BASE, 0x0413, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS);
+pub const IOCTL_MPIO_PASS_THROUGH_PATH_DIRECT_EX: ULONG =
+ CTL_CODE!(IOCTL_SCSI_BASE, 0x0414, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS);
+pub const IOCTL_SCSI_MINIPORT_NVCACHE: ULONG = (FILE_DEVICE_SCSI << 16) + 0x0600;
+pub const IOCTL_SCSI_MINIPORT_HYBRID: ULONG = (FILE_DEVICE_SCSI << 16) + 0x0620;
+pub const IOCTL_SCSI_MINIPORT_FIRMWARE: ULONG = (FILE_DEVICE_SCSI << 16) + 0x0780;
+STRUCT!{struct SCSI_PASS_THROUGH {
+ Length: USHORT,
+ ScsiStatus: UCHAR,
+ PathId: UCHAR,
+ TargetId: UCHAR,
+ Lun: UCHAR,
+ CdbLength: UCHAR,
+ SenseInfoLength: UCHAR,
+ DataIn: UCHAR,
+ DataTransferLength: ULONG,
+ TimeOutValue: ULONG,
+ DataBufferOffset: ULONG_PTR,
+ SenseInfoOffset: ULONG,
+ Cdb: [UCHAR; 16],
+}}
+pub type PSCSI_PASS_THROUGH = *mut SCSI_PASS_THROUGH;
+STRUCT!{struct SCSI_PASS_THROUGH_DIRECT {
+ Length: USHORT,
+ ScsiStatus: UCHAR,
+ PathId: UCHAR,
+ TargetId: UCHAR,
+ Lun: UCHAR,
+ CdbLength: UCHAR,
+ SenseInfoLength: UCHAR,
+ DataIn: UCHAR,
+ DataTransferLength: ULONG,
+ TimeOutValue: ULONG,
+ DataBuffer: PVOID,
+ SenseInfoOffset: ULONG,
+ Cdb: [UCHAR; 16],
+}}
+pub type PSCSI_PASS_THROUGH_DIRECT = *mut SCSI_PASS_THROUGH_DIRECT;
+STRUCT!{struct SCSI_PASS_THROUGH32 {
+ Length: USHORT,
+ ScsiStatus: UCHAR,
+ PathId: UCHAR,
+ TargetId: UCHAR,
+ Lun: UCHAR,
+ CdbLength: UCHAR,
+ SenseInfoLength: UCHAR,
+ DataIn: UCHAR,
+ DataTransferLength: ULONG,
+ TimeOutValue: ULONG,
+ DataBufferOffset: ULONG32,
+ SenseInfoOffset: ULONG,
+ Cdb: [UCHAR; 16],
+}}
+#[cfg(target_arch = "x86_64")]
+IFDEF!{
+pub type PSCSI_PASS_THROUGH32 = *mut SCSI_PASS_THROUGH32;
+STRUCT!{struct SCSI_PASS_THROUGH_DIRECT32 {
+ Length: USHORT,
+ ScsiStatus: UCHAR,
+ PathId: UCHAR,
+ TargetId: UCHAR,
+ Lun: UCHAR,
+ CdbLength: UCHAR,
+ SenseInfoLength: UCHAR,
+ DataIn: UCHAR,
+ DataTransferLength: ULONG,
+ TimeOutValue: ULONG,
+ DataBuffer: ULONG32, // Rust doesn't have anything like __ptr32
+ SenseInfoOffset: ULONG,
+ Cdb: [UCHAR; 16],
+}}
+pub type PSCSI_PASS_THROUGH_DIRECT32 = *mut SCSI_PASS_THROUGH_DIRECT32;
+}
+STRUCT!{struct SCSI_PASS_THROUGH_EX {
+ Version: ULONG,
+ Length: ULONG,
+ CdbLength: ULONG,
+ StorAddressLength: ULONG,
+ ScsiStatus: UCHAR,
+ SenseInfolength: UCHAR,
+ DataDirection: UCHAR,
+ Reserved: UCHAR,
+ TimeOutValue: ULONG,
+ StorAddressOffset: ULONG,
+ SenseInfoOffset: ULONG,
+ DataOutTransferLength: ULONG,
+ DataInTransferLength: ULONG,
+ DataOutBufferOffset: ULONG_PTR,
+ DataInBufferOffset: ULONG_PTR,
+ Cdb: [UCHAR; ANYSIZE_ARRAY],
+}}
+pub type PSCSI_PASS_THROUGH_EX = *mut SCSI_PASS_THROUGH_EX;
+STRUCT!{struct SCSI_PASS_THROUGH_DIRECT_EX {
+ Version: ULONG,
+ Length: ULONG,
+ CdbLength: ULONG,
+ StorAddressLength: ULONG,
+ ScsiStatus: UCHAR,
+ SenseInfolength: UCHAR,
+ DataDirection: UCHAR,
+ Reserved: UCHAR,
+ TimeOutValue: ULONG,
+ StorAddressOffset: ULONG,
+ SenseInfoOffset: ULONG,
+ DataOutTransferLength: ULONG,
+ DataInTransferLength: ULONG,
+ DataOutBuffer: *mut VOID,
+ DataInBuffer: *mut VOID,
+ Cdb: [UCHAR; ANYSIZE_ARRAY],
+}}
+pub type PSCSI_PASS_THROUGH_DIRECT_EX = *mut SCSI_PASS_THROUGH_DIRECT_EX;
+#[cfg(target_arch = "x86_64")]
+IFDEF!{
+STRUCT!{struct SCSI_PASS_THROUGH32_EX {
+ Version: ULONG,
+ Length: ULONG,
+ CdbLength: ULONG,
+ StorAddressLength: ULONG,
+ ScsiStatus: UCHAR,
+ SenseInfolength: UCHAR,
+ DataDirection: UCHAR,
+ Reserved: UCHAR,
+ TimeOutValue: ULONG,
+ StorAddressOffset: ULONG,
+ SenseInfoOffset: ULONG,
+ DataOutTransferLength: ULONG,
+ DataInTransferLength: ULONG,
+ DataOutBufferOffset: ULONG32,
+ DataInBufferOffset: ULONG32,
+ Cdb: [UCHAR; ANYSIZE_ARRAY],
+}}
+pub type PSCSI_PASS_THROUGH32_EX = *mut SCSI_PASS_THROUGH32_EX;
+STRUCT!{struct SCSI_PASS_THROUGH_DIRECT32_EX {
+ Version: ULONG,
+ Length: ULONG,
+ CdbLength: ULONG,
+ StorAddressLength: ULONG,
+ ScsiStatus: UCHAR,
+ SenseInfolength: UCHAR,
+ DataDirection: UCHAR,
+ Reserved: UCHAR,
+ TimeOutValue: ULONG,
+ StorAddressOffset: ULONG,
+ SenseInfoOffset: ULONG,
+ DataOutTransferLength: ULONG,
+ DataInTransferLength: ULONG,
+ DataOutBuffer: ULONG32,
+ DataInBuffer: ULONG32,
+ Cdb: [UCHAR; ANYSIZE_ARRAY],
+}}
+pub type PSCSI_PASS_THROUGH_DIRECT32_EX = *mut SCSI_PASS_THROUGH_DIRECT32_EX;
+}
+STRUCT!{struct ATA_PASS_THROUGH_EX {
+ Length: USHORT,
+ AtaFlags: USHORT,
+ PathId: UCHAR,
+ TargetId: UCHAR,
+ Lun: UCHAR,
+ ReservedAsUchar: UCHAR,
+ DataTransferLength: ULONG,
+ TimeOutValue: ULONG,
+ ReservedAsUlong: ULONG,
+ DataBufferOffset: ULONG_PTR,
+ PreviousTaskFile: [UCHAR; 8],
+ CurrentTaskFile: [UCHAR; 8],
+}}
+pub type PATA_PASS_THROUGH_EX = *mut ATA_PASS_THROUGH_EX;
+STRUCT!{struct ATA_PASS_THROUGH_DIRECT {
+ Length: USHORT,
+ AtaFlags: USHORT,
+ PathId: UCHAR,
+ TargetId: UCHAR,
+ Lun: UCHAR,
+ ReservedAsUchar: UCHAR,
+ DataTransferLength: ULONG,
+ TimeOutValue: ULONG,
+ ReservedAsUlong: ULONG,
+ DataBuffer: PVOID,
+ PreviousTaskFile: [UCHAR; 8],
+ CurrentTaskFile: [UCHAR; 8],
+}}
+pub type PATA_PASS_THROUGH_DIRECT = *mut ATA_PASS_THROUGH_DIRECT;
+#[cfg(target_arch = "x86_64")]
+IFDEF!{
+STRUCT!{struct ATA_PASS_THROUGH_EX32 {
+ Length: USHORT,
+ AtaFlags: USHORT,
+ PathId: UCHAR,
+ TargetId: UCHAR,
+ Lun: UCHAR,
+ ReservedAsUchar: UCHAR,
+ DataTransferLength: ULONG,
+ TimeOutValue: ULONG,
+ ReservedAsUlong: ULONG,
+ DataBufferOffset: ULONG32,
+ PreviousTaskFile: [UCHAR; 8],
+ CurrentTaskFile: [UCHAR; 8],
+}}
+pub type PATA_PASS_THROUGH_EX32 = *mut ATA_PASS_THROUGH_EX32;
+STRUCT!{struct ATA_PASS_THROUGH_DIRECT32 {
+ Length: USHORT,
+ AtaFlags: USHORT,
+ PathId: UCHAR,
+ TargetId: UCHAR,
+ Lun: UCHAR,
+ ReservedAsUchar: UCHAR,
+ DataTransferLength: ULONG,
+ TimeOutValue: ULONG,
+ ReservedAsUlong: ULONG,
+ DataBuffer: ULONG32,
+ PreviousTaskFile: [UCHAR; 8],
+ CurrentTaskFile: [UCHAR; 8],
+}}
+pub type PATA_PASS_THROUGH_DIRECT32 = *mut ATA_PASS_THROUGH_DIRECT32;
+}
+pub const ATA_FLAGS_DRDY_REQUIRED: USHORT = 1 << 0;
+pub const ATA_FLAGS_DATA_IN: USHORT = 1 << 1;
+pub const ATA_FLAGS_DATA_OUT: USHORT = 1 << 2;
+pub const ATA_FLAGS_48BIT_COMMAND: USHORT = 1 << 3;
+pub const ATA_FLAGS_USE_DMA: USHORT = 1 << 4;
+pub const ATA_FLAGS_NO_MULTIPLE: USHORT = 1 << 5;
+STRUCT!{struct IDE_IO_CONTROL {
+ HeaderLength: ULONG,
+ Signature: [UCHAR; 8],
+ Timeout: ULONG,
+ ControlCode: ULONG,
+ ReturnStatus: ULONG,
+ DataLength: ULONG,
+}}
+pub type PIDE_IO_CONTROL = *mut IDE_IO_CONTROL;
+STRUCT!{struct MPIO_PASS_THROUGH_PATH {
+ PassThrough: SCSI_PASS_THROUGH,
+ Version: ULONG,
+ Length: USHORT,
+ Flags: UCHAR,
+ PortNumber: UCHAR,
+ MpioPathId: ULONGLONG,
+}}
+pub type PMPIO_PASS_THROUGH_PATH = *mut MPIO_PASS_THROUGH_PATH;
+STRUCT!{struct MPIO_PASS_THROUGH_PATH_DIRECT {
+ PassThrough: SCSI_PASS_THROUGH_DIRECT,
+ Version: ULONG,
+ Length: USHORT,
+ Flags: UCHAR,
+ PortNumber: UCHAR,
+ MpioPathId: ULONGLONG,
+}}
+pub type PMPIO_PASS_THROUGH_PATH_DIRECT = *mut MPIO_PASS_THROUGH_PATH_DIRECT;
+STRUCT!{struct MPIO_PASS_THROUGH_PATH_EX {
+ PassThroughOffset: ULONG,
+ Version: ULONG,
+ Length: USHORT,
+ Flags: UCHAR,
+ PortNumber: UCHAR,
+ MpioPathId: ULONGLONG,
+}}
+pub type PMPIO_PASS_THROUGH_PATH_EX = *mut MPIO_PASS_THROUGH_PATH_EX;
+STRUCT!{struct MPIO_PASS_THROUGH_PATH_DIRECT_EX {
+ PassThroughOffset: ULONG,
+ Version: ULONG,
+ Length: USHORT,
+ Flags: UCHAR,
+ PortNumber: UCHAR,
+ MpioPathId: ULONGLONG,
+}}
+pub type PMPIO_PASS_THROUGH_PATH_DIRECT_EX = *mut MPIO_PASS_THROUGH_PATH_DIRECT_EX;
+#[cfg(target_arch = "x86_64")]
+IFDEF!{
+STRUCT!{struct MPIO_PASS_THROUGH_PATH32 {
+ PassThrough: SCSI_PASS_THROUGH32,
+ Version: ULONG,
+ Length: USHORT,
+ Flags: UCHAR,
+ PortNumber: UCHAR,
+ MpioPathId: ULONGLONG,
+}}
+pub type PMPIO_PASS_THROUGH_PATH32 = *mut MPIO_PASS_THROUGH_PATH32;
+STRUCT!{struct MPIO_PASS_THROUGH_PATH_DIRECT32 {
+ PassThrough: SCSI_PASS_THROUGH_DIRECT32,
+ Version: ULONG,
+ Length: USHORT,
+ Flags: UCHAR,
+ PortNumber: UCHAR,
+ MpioPathId: ULONGLONG,
+}}
+pub type PMPIO_PASS_THROUGH_PATH_DIRECT32 = *mut MPIO_PASS_THROUGH_PATH_DIRECT32;
+STRUCT!{struct MPIO_PASS_THROUGH_PATH32_EX {
+ PassThroughOffset: ULONG,
+ Version: ULONG,
+ Length: USHORT,
+ Flags: UCHAR,
+ PortNumber: UCHAR,
+ MpioPathId: ULONGLONG,
+}}
+pub type PMPIO_PASS_THROUGH_PATH32_EX = *mut MPIO_PASS_THROUGH_PATH32_EX;
+STRUCT!{struct MPIO_PASS_THROUGH_PATH_DIRECT32_EX {
+ PassThroughOffset: ULONG,
+ Version: ULONG,
+ Length: USHORT,
+ Flags: UCHAR,
+ PortNumber: UCHAR,
+ MpioPathId: ULONGLONG,
+}}
+pub type PMPIO_PASS_THROUGH_PATH_DIRECT32_EX = *mut MPIO_PASS_THROUGH_PATH_DIRECT32_EX;
+}
+STRUCT!{struct SCSI_BUS_DATA {
+ NumberOfLogicalUnits: UCHAR,
+ InitiatorBusId: UCHAR,
+ InquiryDataOffset: ULONG,
+}}
+pub type PSCSI_BUS_DATA = *mut SCSI_BUS_DATA;
+STRUCT!{struct SCSI_ADAPTER_BUS_INFO {
+ NumberOfBuses: UCHAR,
+ BusData: [SCSI_BUS_DATA; 1],
+}}
+pub type PSCSI_ADAPTER_BUS_INFO = *mut SCSI_ADAPTER_BUS_INFO;
+STRUCT!{struct SCSI_INQUIRY_DATA {
+ PathId: UCHAR,
+ TargetId: UCHAR,
+ Lun: UCHAR,
+ DeviceClaimed: BOOLEAN,
+ InquiryDataLength: ULONG,
+ NextInquiryDataOffset: ULONG,
+ InquiryData: [UCHAR; 1],
+}}
+pub type PSCSI_INQUIRY_DATA = *mut SCSI_INQUIRY_DATA;
+pub const IOCTL_MINIPORT_SIGNATURE_SCSIDISK: &'static str = "SCSIDISK";
+pub const IOCTL_MINIPORT_SIGNATURE_HYBRDISK: &'static str = "HYBRDISK";
+pub const IOCTL_MINIPORT_SIGNATURE_DSM_NOTIFICATION: &'static str = "MPDSM ";
+pub const IOCTL_MINIPORT_SIGNATURE_DSM_GENERAL: &'static str = "MPDSMGEN";
+pub const IOCTL_MINIPORT_SIGNATURE_FIRMWARE: &'static str = "FIRMWARE";
+pub const IOCTL_MINIPORT_SIGNATURE_QUERY_PROTOCOL: &'static str = "PROTOCOL";
+pub const IOCTL_MINIPORT_SIGNATURE_QUERY_TEMPERATURE: &'static str = "TEMPERAT";
+pub const IOCTL_MINIPORT_SIGNATURE_SET_TEMPERATURE_THRESHOLD: &'static str = "SETTEMPT";
+pub const IOCTL_MINIPORT_SIGNATURE_QUERY_PHYSICAL_TOPOLOGY: &'static str = "TOPOLOGY";
+STRUCT!{struct SRB_IO_CONTROL {
+ HeaderLength: ULONG,
+ Signature: [UCHAR; 8],
+ Timeout: ULONG,
+ ControlCode: ULONG,
+ ReturnCode: ULONG,
+ Length: ULONG,
+}}
+pub type PSRB_IO_CONTROL = *mut SRB_IO_CONTROL;
+STRUCT!{struct NVCACHE_REQUEST_BLOCK {
+ NRBSize: ULONG,
+ Function: USHORT,
+ NRBFlags: ULONG,
+ NRBStatus: ULONG,
+ Count: ULONG,
+ LBA: ULONGLONG,
+ DataBufSize: ULONG,
+ NVCacheStatus: ULONG,
+ NVCacheSubStatus: ULONG,
+}}
+pub type PNVCACHE_REQUEST_BLOCK = *mut NVCACHE_REQUEST_BLOCK;
+pub const NRB_FUNCTION_NVCACHE_INFO: USHORT = 0xEC;
+pub const NRB_FUNCTION_SPINDLE_STATUS: USHORT = 0xE5;
+pub const NRB_FUNCTION_NVCACHE_POWER_MODE_SET: USHORT = 0x00;
+pub const NRB_FUNCTION_NVCACHE_POWER_MODE_RETURN: USHORT = 0x01;
+pub const NRB_FUNCTION_FLUSH_NVCACHE: USHORT = 0x14;
+pub const NRB_FUNCTION_QUERY_PINNED_SET: USHORT = 0x12;
+pub const NRB_FUNCTION_QUERY_CACHE_MISS: USHORT = 0x13;
+pub const NRB_FUNCTION_ADD_LBAS_PINNED_SET: USHORT = 0x10;
+pub const NRB_FUNCTION_REMOVE_LBAS_PINNED_SET: USHORT = 0x11;
+pub const NRB_FUNCTION_QUERY_ASCENDER_STATUS: USHORT = 0xD0;
+pub const NRB_FUNCTION_QUERY_HYBRID_DISK_STATUS: USHORT = 0xD1;
+pub const NRB_FUNCTION_PASS_HINT_PAYLOAD: USHORT = 0xE0;
+pub const NRB_FUNCTION_NVSEPARATED_INFO: USHORT = 0xc0;
+pub const NRB_FUNCTION_NVSEPARATED_FLUSH: USHORT = 0xc1;
+pub const NRB_FUNCTION_NVSEPARATED_WB_DISABLE: USHORT = 0xc2;
+pub const NRB_FUNCTION_NVSEPARATED_WB_REVERT_DEFAULT: USHORT = 0xc3;
+pub const NRB_SUCCESS: ULONG = 0;
+pub const NRB_ILLEGAL_REQUEST: ULONG = 1;
+pub const NRB_INVALID_PARAMETER: ULONG = 2;
+pub const NRB_INPUT_DATA_OVERRUN: ULONG = 3;
+pub const NRB_INPUT_DATA_UNDERRUN: ULONG = 4;
+pub const NRB_OUTPUT_DATA_OVERRUN: ULONG = 5;
+pub const NRB_OUTPUT_DATA_UNDERRUN: ULONG = 6;
+STRUCT!{struct NV_FEATURE_PARAMETER {
+ NVPowerModeEnabled: USHORT,
+ NVParameterReserv1: USHORT,
+ NVCmdEnabled: USHORT,
+ NVParameterReserv2: USHORT,
+ NVPowerModeVer: USHORT,
+ NVCmdVer: USHORT,
+ NVSize: ULONG,
+ NVReadSpeed: USHORT,
+ NVWrtSpeed: USHORT,
+ DeviceSpinUpTime: ULONG,
+}}
+pub type PNV_FEATURE_PARAMETER = *mut NV_FEATURE_PARAMETER;
+STRUCT!{struct NVCACHE_HINT_PAYLOAD {
+ Command: UCHAR,
+ Feature7_0: UCHAR,
+ Feature15_8: UCHAR,
+ Count15_8: UCHAR,
+ LBA7_0: UCHAR,
+ LBA15_8: UCHAR,
+ LBA23_16: UCHAR,
+ LBA31_24: UCHAR,
+ LBA39_32: UCHAR,
+ LBA47_40: UCHAR,
+ Auxiliary7_0: UCHAR,
+ Auxiliary23_16: UCHAR,
+ Reserved: [UCHAR; 4],
+}}
+pub type PNVCACHE_HINT_PAYLOAD = *mut NVCACHE_HINT_PAYLOAD;
+STRUCT!{struct NV_SEP_CACHE_PARAMETER {
+ Version: ULONG,
+ Size: ULONG,
+ Flags: NV_SEP_CACHE_PARAMETER_Flags,
+ WriteCacheType: UCHAR,
+ WriteCacheTypeEffective: UCHAR,
+ ParameterReserve1: [UCHAR; 3],
+}}
+pub type PNV_SEP_CACHE_PARAMETER = *mut NV_SEP_CACHE_PARAMETER;
+UNION!{union NV_SEP_CACHE_PARAMETER_Flags {
+ [u8; 1],
+ CacheFlags CacheFlags_mut: NV_SEP_CACHE_PARAMETER_Flags_CacheFlags,
+ CacheFlagsSet CacheFlagsSet_mut: UCHAR,
+}}
+STRUCT!{struct NV_SEP_CACHE_PARAMETER_Flags_CacheFlags {
+ Bitfield: UCHAR,
+}}
+BITFIELD!{NV_SEP_CACHE_PARAMETER_Flags_CacheFlags Bitfield: UCHAR [
+ WriteCacheEnabled set_WriteCacheEnabled[0..1],
+ WriteCacheChangeable set_WriteCacheChangeable[1..2],
+ WriteThroughIOSupported set_WriteThroughIOSupported[2..3],
+ FlushCacheSupported set_FlushCacheSupported[3..4],
+ ReservedBits set_ReservedBits[4..8],
+]}
+pub const NV_SEP_CACHE_PARAMETER_VERSION_1: ULONG = 1;
+pub const NV_SEP_CACHE_PARAMETER_VERSION: ULONG = NV_SEP_CACHE_PARAMETER_VERSION_1;
+ENUM!{enum NV_SEP_WRITE_CACHE_TYPE {
+ NVSEPWriteCacheTypeUnknown = 0,
+ NVSEPWriteCacheTypeNone = 1,
+ NVSEPWriteCacheTypeWriteBack = 2,
+ NVSEPWriteCacheTypeWriteThrough = 3,
+}}
+pub type PNV_SEP_WRITE_CACHE_TYPE = *mut NV_SEP_WRITE_CACHE_TYPE;
+STRUCT!{struct MP_DEVICE_DATA_SET_RANGE {
+ StartingOffset: LONGLONG,
+ LengthInBytes: ULONGLONG,
+}}
+pub type PMP_DEVICE_DATA_SET_RANGE = *mut MP_DEVICE_DATA_SET_RANGE;
+STRUCT!{struct DSM_NOTIFICATION_REQUEST_BLOCK {
+ Size: ULONG,
+ Version: ULONG,
+ NotifyFlags: ULONG,
+ DataSetProfile: ULONG,
+ Reserved: [ULONG; 3],
+ DataSetRangesCount: ULONG,
+ DataSetRanges: [MP_DEVICE_DATA_SET_RANGE; ANYSIZE_ARRAY],
+}}
+pub type PDSM_NOTIFICATION_REQUEST_BLOCK = *mut DSM_NOTIFICATION_REQUEST_BLOCK;
+pub const MINIPORT_DSM_NOTIFICATION_VERSION_1: ULONG = 1;
+pub const MINIPORT_DSM_NOTIFICATION_VERSION: ULONG = MINIPORT_DSM_NOTIFICATION_VERSION_1;
+pub const MINIPORT_DSM_PROFILE_UNKNOWN: ULONG = 0;
+pub const MINIPORT_DSM_PROFILE_PAGE_FILE: ULONG = 1;
+pub const MINIPORT_DSM_PROFILE_HIBERNATION_FILE: ULONG = 2;
+pub const MINIPORT_DSM_PROFILE_CRASHDUMP_FILE: ULONG = 3;
+pub const MINIPORT_DSM_NOTIFY_FLAG_BEGIN: ULONG = 0x00000001;
+pub const MINIPORT_DSM_NOTIFY_FLAG_END: ULONG = 0x00000002;
+pub const HYBRID_FUNCTION_GET_INFO: ULONG = 0x01;
+pub const HYBRID_FUNCTION_DISABLE_CACHING_MEDIUM: ULONG = 0x10;
+pub const HYBRID_FUNCTION_ENABLE_CACHING_MEDIUM: ULONG = 0x11;
+pub const HYBRID_FUNCTION_SET_DIRTY_THRESHOLD: ULONG = 0x12;
+pub const HYBRID_FUNCTION_DEMOTE_BY_SIZE: ULONG = 0x13;
+pub const HYBRID_STATUS_SUCCESS: ULONG = 0x0;
+pub const HYBRID_STATUS_ILLEGAL_REQUEST: ULONG = 0x1;
+pub const HYBRID_STATUS_INVALID_PARAMETER: ULONG = 0x2;
+pub const HYBRID_STATUS_OUTPUT_BUFFER_TOO_SMALL: ULONG = 0x3;
+pub const HYBRID_STATUS_ENABLE_REFCOUNT_HOLD: ULONG = 0x10;
+pub const HYBRID_REQUEST_BLOCK_STRUCTURE_VERSION: ULONG = 0x1;
+STRUCT!{struct HYBRID_REQUEST_BLOCK {
+ Version: ULONG,
+ Size: ULONG,
+ Function: ULONG,
+ Flags: ULONG,
+ DataBufferOffset: ULONG,
+ DataBufferLength: ULONG,
+}}
+pub type PHYBRID_REQUEST_BLOCK = *mut HYBRID_REQUEST_BLOCK;
+ENUM!{enum NVCACHE_TYPE {
+ NvCacheTypeUnknown = 0,
+ NvCacheTypeNone = 1,
+ NvCacheTypeWriteBack = 2,
+ NvCacheTypeWriteThrough = 3,
+}}
+ENUM!{enum NVCACHE_STATUS {
+ NvCacheStatusUnknown = 0,
+ NvCacheStatusDisabling = 1,
+ NvCacheStatusDisabled = 2,
+ NvCacheStatusEnabled = 3,
+}}
+STRUCT!{struct NVCACHE_PRIORITY_LEVEL_DESCRIPTOR {
+ PriorityLevel: UCHAR,
+ Reserved0: [UCHAR; 3],
+ ConsumedNVMSizeFraction: ULONG,
+ ConsumedMappingResourcesFraction: ULONG,
+ ConsumedNVMSizeForDirtyDataFraction: ULONG,
+ ConsumedMappingResourcesForDirtyDataFraction: ULONG,
+ Reserved1: ULONG,
+}}
+pub type PNVCACHE_PRIORITY_LEVEL_DESCRIPTOR = *mut NVCACHE_PRIORITY_LEVEL_DESCRIPTOR;
+pub const HYBRID_REQUEST_INFO_STRUCTURE_VERSION: ULONG = 1;
+STRUCT!{struct HYBRID_INFORMATION {
+ Version: ULONG,
+ Size: ULONG,
+ HybridSupported: BOOLEAN,
+ Status: NVCACHE_STATUS,
+ CacheTypeEffective: NVCACHE_TYPE,
+ CacheTypeDefault: NVCACHE_TYPE,
+ FractionBase: ULONG,
+ CacheSize: ULONGLONG,
+ Attributes: HYBRID_INFORMATION_Attributes,
+ Priorities: HYBRID_INFORMATION_Priorities,
+}}
+pub type PHYBRID_INFORMATION = *mut HYBRID_INFORMATION;
+STRUCT!{struct HYBRID_INFORMATION_Attributes {
+ Bitfield: ULONG,
+}}
+BITFIELD!{HYBRID_INFORMATION_Attributes Bitfield: ULONG [
+ WriteCacheChangeable set_WriteCacheChangeable[0..1],
+ WriteThroughIoSupported set_WriteThroughIoSupported[1..2],
+ FlushCacheSupported set_FlushCacheSupported[2..3],
+ Removable set_Removable[3..4],
+ ReservedBits set_ReservedBits[4..32],
+]}
+STRUCT!{struct HYBRID_INFORMATION_Priorities {
+ PriorityLevelCount: UCHAR,
+ MaxPriorityBehavior: BOOLEAN,
+ OptimalWriteGranularity: UCHAR,
+ Reserved: UCHAR,
+ DirtyThresholdLow: ULONG,
+ DirtyThresholdHigh: ULONG,
+ SupportedCommands: HYBRID_INFORMATION_Priorities_SupportedCommands,
+ Priority: [NVCACHE_PRIORITY_LEVEL_DESCRIPTOR; 0],
+}}
+STRUCT!{struct HYBRID_INFORMATION_Priorities_SupportedCommands {
+ Bitfield: ULONG,
+ MaxEvictCommands: ULONG,
+ MaxLbaRangeCountForEvict: ULONG,
+ MaxLbaRangeCountForChangeLba: ULONG,
+}}
+BITFIELD!{HYBRID_INFORMATION_Priorities_SupportedCommands Bitfield: ULONG [
+ CacheDisable set_CacheDisable[0..1],
+ SetDirtyThreshold set_SetDirtyThreshold[1..2],
+ PriorityDemoteBySize set_PriorityDemoteBySize[2..3],
+ PriorityChangeByLbaRange set_PriorityChangeByLbaRange[3..4],
+ Evict set_Evict[4..5],
+ ReservedBits set_ReservedBits[5..32],
+]}
+STRUCT!{struct HYBRID_DIRTY_THRESHOLDS {
+ Version: ULONG,
+ Size: ULONG,
+ DirtyLowThreshold: ULONG,
+ DirtyHighThreshold: ULONG,
+}}
+pub type PHYBRID_DIRTY_THRESHOLDS = *mut HYBRID_DIRTY_THRESHOLDS;
+STRUCT!{struct HYBRID_DEMOTE_BY_SIZE {
+ Version: ULONG,
+ Size: ULONG,
+ SourcePriority: UCHAR,
+ TargetPriority: UCHAR,
+ Reserved0: USHORT,
+ Reserved1: ULONG,
+ LbaCount: ULONGLONG,
+}}
+pub type PHYBRID_DEMOTE_BY_SIZE = *mut HYBRID_DEMOTE_BY_SIZE;
+pub const FIRMWARE_FUNCTION_GET_INFO: ULONG = 0x01;
+pub const FIRMWARE_FUNCTION_DOWNLOAD: ULONG = 0x02;
+pub const FIRMWARE_FUNCTION_ACTIVATE: ULONG = 0x03;
+pub const FIRMWARE_STATUS_SUCCESS: ULONG = 0x0;
+pub const FIRMWARE_STATUS_ERROR: ULONG = 0x1;
+pub const FIRMWARE_STATUS_ILLEGAL_REQUEST: ULONG = 0x2;
+pub const FIRMWARE_STATUS_INVALID_PARAMETER: ULONG = 0x3;
+pub const FIRMWARE_STATUS_INPUT_BUFFER_TOO_BIG: ULONG = 0x4;
+pub const FIRMWARE_STATUS_OUTPUT_BUFFER_TOO_SMALL: ULONG = 0x5;
+pub const FIRMWARE_STATUS_INVALID_SLOT: ULONG = 0x6;
+pub const FIRMWARE_STATUS_INVALID_IMAGE: ULONG = 0x7;
+pub const FIRMWARE_STATUS_CONTROLLER_ERROR: ULONG = 0x10;
+pub const FIRMWARE_STATUS_POWER_CYCLE_REQUIRED: ULONG = 0x20;
+pub const FIRMWARE_STATUS_DEVICE_ERROR: ULONG = 0x40;
+pub const FIRMWARE_STATUS_INTERFACE_CRC_ERROR: ULONG = 0x80;
+pub const FIRMWARE_STATUS_UNCORRECTABLE_DATA_ERROR: ULONG = 0x81;
+pub const FIRMWARE_STATUS_MEDIA_CHANGE: ULONG = 0x82;
+pub const FIRMWARE_STATUS_ID_NOT_FOUND: ULONG = 0x83;
+pub const FIRMWARE_STATUS_MEDIA_CHANGE_REQUEST: ULONG = 0x84;
+pub const FIRMWARE_STATUS_COMMAND_ABORT: ULONG = 0x85;
+pub const FIRMWARE_STATUS_END_OF_MEDIA: ULONG = 0x86;
+pub const FIRMWARE_STATUS_ILLEGAL_LENGTH: ULONG = 0x87;
+pub const FIRMWARE_REQUEST_BLOCK_STRUCTURE_VERSION: ULONG = 0x1;
+STRUCT!{struct FIRMWARE_REQUEST_BLOCK {
+ Version: ULONG,
+ Size: ULONG,
+ Function: ULONG,
+ Flags: ULONG,
+ DataBufferOffset: ULONG,
+ DataBufferLength: ULONG,
+}}
+pub type PFIRMWARE_REQUEST_BLOCK = *mut FIRMWARE_REQUEST_BLOCK;
+pub const FIRMWARE_REQUEST_FLAG_CONTROLLER: ULONG = 0x00000001;
+pub const FIRMWARE_REQUEST_FLAG_LAST_SEGMENT: ULONG = 0x00000002;
+pub const FIRMWARE_REQUEST_FLAG_SWITCH_TO_EXISTING_FIRMWARE: ULONG = 0x80000000;
+pub const STORAGE_FIRMWARE_INFO_STRUCTURE_VERSION: ULONG = 0x1;
+pub const STORAGE_FIRMWARE_INFO_STRUCTURE_VERSION_V2: ULONG = 0x2;
+pub const STORAGE_FIRMWARE_INFO_INVALID_SLOT: UCHAR = 0xFF;
+STRUCT!{struct STORAGE_FIRMWARE_SLOT_INFO {
+ SlotNumber: UCHAR,
+ ReadOnly: BOOLEAN,
+ Reserved: [UCHAR; 6],
+ Revision: STORAGE_FIRMWARE_SLOT_INFO_Revision,
+}}
+pub type PSTORAGE_FIRMWARE_SLOT_INFO = *mut STORAGE_FIRMWARE_SLOT_INFO;
+UNION!{union STORAGE_FIRMWARE_SLOT_INFO_Revision {
+ [u64; 1],
+ Info Info_mut: [UCHAR; 8],
+ AsUlonglong AsUlonglong_mut: ULONGLONG,
+}}
+pub const STORAGE_FIRMWARE_SLOT_INFO_V2_REVISION_LENGTH: usize = 16;
+STRUCT!{struct STORAGE_FIRMWARE_SLOT_INFO_V2 {
+ SlotNumber: UCHAR,
+ ReadOnly: BOOLEAN,
+ Reserved: [UCHAR; 6],
+ Revision: [UCHAR; STORAGE_FIRMWARE_SLOT_INFO_V2_REVISION_LENGTH],
+}}
+pub type PSTORAGE_FIRMWARE_SLOT_INFO_V2 = *mut STORAGE_FIRMWARE_SLOT_INFO_V2;
+STRUCT!{struct STORAGE_FIRMWARE_INFO {
+ Version: ULONG,
+ Size: ULONG,
+ UpgradeSupport: BOOLEAN,
+ SlotCount: UCHAR,
+ ActiveSlot: UCHAR,
+ PendingActivateSlot: UCHAR,
+ Reserved: ULONG,
+ Slot: [STORAGE_FIRMWARE_SLOT_INFO; 0],
+}}
+pub type PSTORAGE_FIRMWARE_INFO = *mut STORAGE_FIRMWARE_INFO;
+STRUCT!{struct STORAGE_FIRMWARE_INFO_V2 {
+ Version: ULONG,
+ Size: ULONG,
+ UpgradeSupport: BOOLEAN,
+ SlotCount: UCHAR,
+ ActiveSlot: UCHAR,
+ PendingActivateSlot: UCHAR,
+ FirmwareShared: BOOLEAN,
+ Reserved: [UCHAR; 3],
+ ImagePayloadAlignment: ULONG,
+ ImagePayloadMaxSize: ULONG,
+ Slot: [STORAGE_FIRMWARE_SLOT_INFO_V2; 0],
+}}
+pub type PSTORAGE_FIRMWARE_INFO_V2 = *mut STORAGE_FIRMWARE_INFO_V2;
+pub const STORAGE_FIRMWARE_DOWNLOAD_STRUCTURE_VERSION: ULONG = 0x1;
+pub const STORAGE_FIRMWARE_DOWNLOAD_STRUCTURE_VERSION_V2: ULONG = 0x2;
+STRUCT!{struct STORAGE_FIRMWARE_DOWNLOAD {
+ Version: ULONG,
+ Size: ULONG,
+ Offset: ULONGLONG,
+ BufferSize: ULONGLONG,
+ ImageBuffer: [UCHAR; 0],
+}}
+pub type PSTORAGE_FIRMWARE_DOWNLOAD = *mut STORAGE_FIRMWARE_DOWNLOAD;
+STRUCT!{struct STORAGE_FIRMWARE_DOWNLOAD_V2 {
+ Version: ULONG,
+ Size: ULONG,
+ Offset: ULONGLONG,
+ BufferSize: ULONGLONG,
+ Slot: UCHAR,
+ Reserved: [UCHAR; 7],
+ ImageBuffer: [UCHAR; 0],
+}}
+pub type PSTORAGE_FIRMWARE_DOWNLOAD_V2 = *mut STORAGE_FIRMWARE_DOWNLOAD_V2;
+pub const STORAGE_FIRMWARE_ACTIVATE_STRUCTURE_VERSION: ULONG = 0x1;
+STRUCT!{struct STORAGE_FIRMWARE_ACTIVATE {
+ Version: ULONG,
+ Size: ULONG,
+ SlotToActivate: UCHAR,
+ Reserved0: [UCHAR; 3],
+}}
+pub type PSTORAGE_FIRMWARE_ACTIVATE = *mut STORAGE_FIRMWARE_ACTIVATE;
+STRUCT!{struct IO_SCSI_CAPABILITIES {
+ Length: ULONG,
+ MaximumTransferLength: ULONG,
+ MaximumPhysicalPages: ULONG,
+ SupportedAsynchronousEvents: ULONG,
+ AlignmentMask: ULONG,
+ TaggedQueuing: BOOLEAN,
+ AdapterScansDown: BOOLEAN,
+ AdapterUsesPio: BOOLEAN,
+}}
+pub type PIO_SCSI_CAPABILITIES = *mut IO_SCSI_CAPABILITIES;
+STRUCT!{struct SCSI_ADDRESS {
+ Length: ULONG,
+ PortNumber: UCHAR,
+ PathId: UCHAR,
+ TargetId: UCHAR,
+ Lun: UCHAR,
+}}
+pub type PSCSI_ADDRESS = *mut SCSI_ADDRESS;
+pub const DUMP_POINTERS_VERSION_1: ULONG = 1;
+pub const DUMP_POINTERS_VERSION_2: ULONG = 2;
+pub const DUMP_POINTERS_VERSION_3: ULONG = 3;
+pub const DUMP_POINTERS_VERSION_4: ULONG = 4;
+pub const DUMP_DRIVER_NAME_LENGTH: usize = 15;
+FN!{cdecl DUMP_DEVICE_POWERON_ROUTINE(
+ Context: PVOID,
+) -> LONG}
+pub type PDUMP_DEVICE_POWERON_ROUTINE = *mut DUMP_DEVICE_POWERON_ROUTINE;
+STRUCT!{struct DUMP_POINTERS_VERSION {
+ Version: ULONG,
+ Size: ULONG,
+}}
+pub type PDUMP_POINTERS_VERSION = *mut DUMP_POINTERS_VERSION;
+STRUCT!{struct DUMP_POINTERS {
+ AdapterObject: PVOID, // struct _ADAPTER_OBJECT *
+ MappedRegisterBase: PVOID,
+ DumpData: PVOID,
+ CommonBufferVa: PVOID,
+ CommonBufferPa: LARGE_INTEGER,
+ CommonBufferSize: ULONG,
+ AllocateCommonBuffers: BOOLEAN,
+ UseDiskDump: BOOLEAN,
+ Spare1: [UCHAR; 2],
+ DeviceObject: PVOID,
+}}
+pub type PDUMP_POINTERS = *mut DUMP_POINTERS;
+STRUCT!{struct DUMP_POINTERS_EX {
+ Header: DUMP_POINTERS_VERSION,
+ DumpData: PVOID,
+ CommonBufferVa: PVOID,
+ CommonBufferSize: ULONG,
+ AllocateCommonBuffers: BOOLEAN,
+ DeviceObject: PVOID,
+ DriverList: PVOID,
+ dwPortFlags: ULONG,
+ MaxDeviceDumpSectionSize: ULONG,
+ MaxDeviceDumpLevel: ULONG,
+ MaxTransferSize: ULONG,
+ AdapterObject: PVOID,
+ MappedRegisterBase: PVOID,
+ DeviceReady: PBOOLEAN,
+ DumpDevicePowerOn: PDUMP_DEVICE_POWERON_ROUTINE,
+ DumpDevicePowerOnContext: PVOID,
+}}
+pub type PDUMP_POINTERS_EX = *mut DUMP_POINTERS_EX;
+// TODO: Revisit these definitions when const size_of and offset_of! arrive.
+#[cfg(target_pointer_width = "32")]
+IFDEF!{
+pub const DUMP_POINTERS_EX_V2_SIZE: ULONG = 32;
+pub const DUMP_POINTERS_EX_V3_SIZE: ULONG = 60;
+pub const DUMP_POINTERS_EX_V4_SIZE: ULONG = 68;
+}
+#[cfg(target_pointer_width = "64")]
+IFDEF!{
+pub const DUMP_POINTERS_EX_V2_SIZE: ULONG = 48;
+pub const DUMP_POINTERS_EX_V3_SIZE: ULONG = 88;
+pub const DUMP_POINTERS_EX_V4_SIZE: ULONG = 104;
+}
+pub const DUMP_EX_FLAG_SUPPORT_64BITMEMORY: ULONG = 0x00000001;
+pub const DUMP_EX_FLAG_SUPPORT_DD_TELEMETRY: ULONG = 0x00000002;
+pub const DUMP_EX_FLAG_RESUME_SUPPORT: ULONG = 0x00000004;
+STRUCT!{struct DUMP_DRIVER {
+ DumpDriverList: PVOID,
+ DriverName: [WCHAR; DUMP_DRIVER_NAME_LENGTH],
+ BaseName: [WCHAR; DUMP_DRIVER_NAME_LENGTH],
+}}
+pub type PDUMP_DRIVER = *mut DUMP_DRIVER;
+pub const SCSI_IOCTL_DATA_OUT: UCHAR = 0;
+pub const SCSI_IOCTL_DATA_IN: UCHAR = 1;
+pub const SCSI_IOCTL_DATA_UNSPECIFIED: UCHAR = 2;
+pub const SCSI_IOCTL_DATA_BIDIRECTIONAL: UCHAR = 3;
+pub const MPIO_IOCTL_FLAG_USE_PATHID: UCHAR = 1;
+pub const MPIO_IOCTL_FLAG_USE_SCSIADDRESS: UCHAR = 2;
+pub const MPIO_IOCTL_FLAG_INVOLVE_DSM: UCHAR = 4;
diff --git a/third_party/rust/chromium_crates_io/vendor/winapi-0.3.9/src/shared/ntddser.rs b/third_party/rust/chromium_crates_io/vendor/winapi-0.3.9/src/shared/ntddser.rs
new file mode 100644
index 000000000000..d37b7f6ae6f5
--- /dev/null
+++ b/third_party/rust/chromium_crates_io/vendor/winapi-0.3.9/src/shared/ntddser.rs
@@ -0,0 +1,17 @@
+// Licensed under the Apache License, Version 2.0
+// or the MIT license
+// , at your option.
+// All files in the project carrying such notice may not be copied, modified, or distributed
+// except according to those terms
+//! This is the include file that defines all constants and types for accessing the Serial device.
+use shared::devpropdef::DEVPROPKEY;
+DEFINE_GUID!{GUID_DEVINTERFACE_COMPORT,
+ 0x86E0D1E0, 0x8089, 0x11D0, 0x9C, 0xE4, 0x08, 0x00, 0x3E, 0x30, 0x1F, 0x73}
+DEFINE_GUID!{GUID_DEVINTERFACE_SERENUM_BUS_ENUMERATOR,
+ 0x4D36E978, 0xE325, 0x11CE, 0xBF, 0xC1, 0x08, 0x00, 0x2B, 0xE1, 0x03, 0x18}
+DEFINE_DEVPROPKEY!{DEVPKEY_DeviceInterface_Serial_UsbVendorId,
+ 0x4C6BF15C, 0x4C03, 0x4AAC, 0x91, 0xF5, 0x64, 0xC0, 0xF8, 0x52, 0xBC, 0xF4, 2}
+DEFINE_DEVPROPKEY!{DEVPKEY_DeviceInterface_Serial_UsbProductId,
+ 0x4C6BF15C, 0x4C03, 0x4AAC, 0x91, 0xF5, 0x64, 0xC0, 0xF8, 0x52, 0xBC, 0xF4, 3}
+DEFINE_DEVPROPKEY!{DEVPKEY_DeviceInterface_Serial_PortName,
+ 0x4C6BF15C, 0x4C03, 0x4AAC, 0x91, 0xF5, 0x64, 0xC0, 0xF8, 0x52, 0xBC, 0xF4, 4}
diff --git a/third_party/rust/chromium_crates_io/vendor/winapi-0.3.9/src/shared/ntdef.rs b/third_party/rust/chromium_crates_io/vendor/winapi-0.3.9/src/shared/ntdef.rs
new file mode 100644
index 000000000000..c2860b741ee0
--- /dev/null
+++ b/third_party/rust/chromium_crates_io/vendor/winapi-0.3.9/src/shared/ntdef.rs
@@ -0,0 +1,1083 @@
+// Licensed under the Apache License, Version 2.0
+// or the MIT license
+// , at your option.
+// All files in the project carrying such notice may not be copied, modified, or distributed
+// except according to those terms.
+//! Type definitions for the basic types.
+use ctypes::{
+ __int64, __uint64, c_char, c_double, c_int, c_long, c_schar, c_short, c_uchar, c_ulong,
+ c_ushort, c_void, wchar_t
+};
+use shared::basetsd::{KAFFINITY, LONG_PTR, ULONG64, ULONG_PTR};
+use shared::guiddef::GUID;
+#[cfg(target_arch = "x86_64")]
+IFDEF!{
+pub const MAX_NATURAL_ALIGNMENT: usize = 8;
+pub const MEMORY_ALLOCATION_ALIGNMENT: usize = 16;
+}
+#[cfg(not(target_arch = "x86_64"))]
+IFDEF!{
+pub const MAX_NATURAL_ALIGNMENT: usize = 4;
+pub const MEMORY_ALLOCATION_ALIGNMENT: usize = 8;
+}
+#[cfg(any(target_arch = "x86_64", target_arch = "x86"))]
+pub const SYSTEM_CACHE_ALIGNMENT_SIZE: usize = 64;
+#[cfg(not(any(target_arch = "x86_64", target_arch = "x86")))]
+pub const SYSTEM_CACHE_ALIGNMENT_SIZE: usize = 128;
+pub type PVOID = *mut c_void;
+pub type PVOID64 = u64; // This is a 64-bit pointer, even when in 32-bit
+pub type VOID = c_void;
+pub type CHAR = c_char;
+pub type SHORT = c_short;
+pub type LONG = c_long;
+pub type INT = c_int;
+pub type WCHAR = wchar_t;
+pub type PWCHAR = *mut WCHAR;
+pub type LPWCH = *mut WCHAR;
+pub type PWCH = *mut WCHAR;
+pub type LPCWCH = *const WCHAR;
+pub type PCWCH = *const WCHAR;
+pub type NWPSTR = *mut WCHAR;
+pub type LPWSTR = *mut WCHAR;
+pub type LPTSTR = LPSTR;
+pub type PWSTR = *mut WCHAR;
+pub type PZPWSTR = *mut PWSTR;
+pub type PCZPWSTR = *const PWSTR;
+pub type LPUWSTR = *mut WCHAR; // Unaligned pointer
+pub type PUWSTR = *mut WCHAR; // Unaligned pointer
+pub type LPCWSTR = *const WCHAR;
+pub type PCWSTR = *const WCHAR;
+pub type PZPCWSTR = *mut PCWSTR;
+pub type PCZPCWSTR = *const PCWSTR;
+pub type LPCUWSTR = *const WCHAR; // Unaligned pointer
+pub type PCUWSTR = *const WCHAR; // Unaligned pointer
+pub type PZZWSTR = *mut WCHAR;
+pub type PCZZWSTR = *const WCHAR;
+pub type PUZZWSTR = *mut WCHAR; // Unaligned pointer
+pub type PCUZZWSTR = *const WCHAR; // Unaligned pointer
+pub type PNZWCH = *mut WCHAR;
+pub type PCNZWCH = *const WCHAR;
+pub type PUNZWCH = *mut WCHAR; // Unaligned pointer
+pub type PCUNZWCH = *const WCHAR; // Unaligned pointer
+pub type LPCWCHAR = *const WCHAR;
+pub type PCWCHAR = *const WCHAR;
+pub type LPCUWCHAR = *const WCHAR; // Unaligned pointer
+pub type PCUWCHAR = *const WCHAR; // Unaligned pointer
+pub type UCSCHAR = c_ulong;
+pub const UCSCHAR_INVALID_CHARACTER: UCSCHAR = 0xffffffff;
+pub const MIN_UCSCHAR: UCSCHAR = 0;
+pub const MAX_UCSCHAR: UCSCHAR = 0x0010FFFF;
+pub type PUCSCHAR = *mut UCSCHAR;
+pub type PCUCSCHAR = *const UCSCHAR;
+pub type PUCSSTR = *mut UCSCHAR;
+pub type PUUCSSTR = *mut UCSCHAR; // Unaligned pointer
+pub type PCUCSSTR = *const UCSCHAR;
+pub type PCUUCSSTR = *const UCSCHAR; // Unaligned pointer
+pub type PUUCSCHAR = *mut UCSCHAR; // Unaligned pointer
+pub type PCUUCSCHAR = *const UCSCHAR; // Unaligned pointer
+pub type PCHAR = *mut CHAR;
+pub type LPCH = *mut CHAR;
+pub type PCH = *mut CHAR;
+pub type LPCCH = *const CHAR;
+pub type PCCH = *const CHAR;
+pub type NPSTR = *mut CHAR;
+pub type LPSTR = *mut CHAR;
+pub type PSTR = *mut CHAR;
+pub type PZPSTR = *mut PSTR;
+pub type PCZPSTR = *const PSTR;
+pub type LPCSTR = *const CHAR;
+pub type PCSTR = *const CHAR;
+pub type PZPCSTR = *mut PCSTR;
+pub type PCZPCSTR = *const PCSTR;
+pub type PZZSTR = *mut CHAR;
+pub type PCZZSTR = *const CHAR;
+pub type PNZCH = *mut CHAR;
+pub type PCNZCH = *const CHAR;
+// Skipping TCHAR things
+pub type DOUBLE = c_double;
+STRUCT!{struct QUAD {
+ UseThisFieldToCopy: __int64,
+}}
+pub type PSHORT = *mut SHORT;
+pub type PLONG = *mut LONG;
+pub type PQUAD = *mut QUAD;
+pub type UCHAR = c_uchar;
+pub type USHORT = c_ushort;
+pub type ULONG = c_ulong;
+pub type UQUAD = QUAD;
+pub type PUCHAR = *mut UCHAR;
+pub type PUSHORT = *mut USHORT;
+pub type PULONG = *mut ULONG;
+pub type PUQUAD = *mut UQUAD;
+pub type PCUCHAR = *const UCHAR;
+pub type PCUSHORT = *const USHORT;
+pub type PCULONG = *const ULONG;
+pub type PCUQUAD = *const UQUAD;
+pub type SCHAR = c_schar;
+pub type PSCHAR = *mut SCHAR;
+pub type PCSCHAR = *const SCHAR;
+pub const ALL_PROCESSOR_GROUPS: USHORT = 0xffff;
+STRUCT!{struct PROCESSOR_NUMBER {
+ Group: USHORT,
+ Number: UCHAR,
+ Reserved: UCHAR,
+}}
+pub type PPROCESSOR_NUMBER = *mut PROCESSOR_NUMBER;
+STRUCT!{struct GROUP_AFFINITY {
+ Mask: KAFFINITY,
+ Group: USHORT,
+ Reserved: [USHORT; 3],
+}}
+pub type PGROUP_AFFINITY = *mut GROUP_AFFINITY;
+#[cfg(target_arch = "x86_64")]
+pub const MAXIMUM_PROC_PER_GROUP: UCHAR = 64;
+#[cfg(not(target_arch = "x86_64"))]
+pub const MAXIMUM_PROC_PER_GROUP: UCHAR = 32;
+pub const MAXIMUM_PROCESSORS: UCHAR = MAXIMUM_PROC_PER_GROUP;
+pub type HANDLE = *mut c_void;
+pub type PHANDLE = *mut HANDLE;
+pub type FCHAR = UCHAR;
+pub type FSHORT = USHORT;
+pub type FLONG = ULONG;
+pub type HRESULT = c_long;
+pub const OBJ_HANDLE_TAGBITS: usize = 0x00000003;
+pub type CCHAR = c_char;
+pub type CSHORT = c_short;
+pub type CLONG = ULONG;
+pub type PCCHAR = *mut CCHAR;
+pub type PCSHORT = *mut CSHORT;
+pub type PCLONG = *mut CLONG;
+pub type LCID = ULONG;
+pub type PLCID = PULONG;
+pub type LANGID = USHORT;
+ENUM!{enum COMPARTMENT_ID {
+ UNSPECIFIED_COMPARTMENT_ID = 0,
+ DEFAULT_COMPARTMENT_ID,
+}}
+pub type PCOMPARTMENT_ID = *mut COMPARTMENT_ID;
+pub type LOGICAL = ULONG;
+pub type PLOGICAL = *mut ULONG;
+pub type NTSTATUS = LONG;
+pub type PNTSTATUS = *mut NTSTATUS;
+pub type PCNTSTATUS = *const NTSTATUS;
+#[inline]
+pub fn NT_SUCCESS(Status: NTSTATUS) -> bool {
+ Status >= 0
+}
+#[inline]
+pub fn NT_INFORMATION(Status: NTSTATUS) -> bool {
+ ((Status as ULONG) >> 30) == 1
+}
+#[inline]
+pub fn NT_WARNING(Status: NTSTATUS) -> bool {
+ ((Status as ULONG) >> 30) == 2
+}
+#[inline]
+pub fn NT_ERROR(Status: NTSTATUS) -> bool {
+ ((Status as ULONG) >> 30) == 3
+}
+pub const APPLICATION_ERROR_MASK: ULONG = 0x20000000;
+pub const ERROR_SEVERITY_SUCCESS: ULONG = 0x00000000;
+pub const ERROR_SEVERITY_INFORMATIONAL: ULONG = 0x40000000;
+pub const ERROR_SEVERITY_WARNING: ULONG = 0x80000000;
+pub const ERROR_SEVERITY_ERROR: ULONG = 0xC0000000;
+pub type SECURITY_STATUS = c_long;
+pub type TIME = LARGE_INTEGER;
+pub type PTIME = *mut TIME;
+STRUCT!{struct FLOAT128 {
+ LowPart: __int64,
+ HighPart: __int64,
+}}
+pub type PFLOAT128 = *mut FLOAT128;
+pub type LONGLONG = __int64;
+pub type ULONGLONG = __uint64;
+pub const MAXLONGLONG: LONGLONG = 0x7fffffffffffffff;
+pub type PLONGLONG = *mut LONGLONG;
+pub type PULONGLONG = *mut ULONGLONG;
+pub type USN = LONGLONG;
+UNION!{union LARGE_INTEGER {
+ [i64; 1],
+ s s_mut: LARGE_INTEGER_s,
+ u u_mut: LARGE_INTEGER_u,
+ QuadPart QuadPart_mut: LONGLONG,
+}}
+STRUCT!{struct LARGE_INTEGER_s {
+ LowPart: ULONG,
+ HighPart: LONG,
+}}
+STRUCT!{struct LARGE_INTEGER_u {
+ LowPart: ULONG,
+ HighPart: LONG,
+}}
+pub type PLARGE_INTEGER = *mut LARGE_INTEGER;
+UNION!{union ULARGE_INTEGER {
+ [u64; 1],
+ s s_mut: ULARGE_INTEGER_s,
+ u u_mut: ULARGE_INTEGER_s,
+ QuadPart QuadPart_mut: ULONGLONG,
+}}
+STRUCT!{struct ULARGE_INTEGER_s {
+ LowPart: ULONG,
+ HighPart: ULONG,
+}}
+STRUCT!{struct ULARGE_INTEGER_u {
+ LowPart: ULONG,
+ HighPart: ULONG,
+}}
+pub type PULARGE_INTEGER = *mut ULARGE_INTEGER;
+pub type RTL_REFERENCE_COUNT = LONG_PTR;
+pub type PRTL_REFERENCE_COUNT = *mut RTL_REFERENCE_COUNT;
+STRUCT!{struct LUID {
+ LowPart: ULONG,
+ HighPart: LONG,
+}}
+pub type PLUID = *mut LUID;
+pub type DWORDLONG = ULONGLONG;
+pub type PDWORDLONG = *mut DWORDLONG;
+pub type PHYSICAL_ADDRESS = LARGE_INTEGER;
+pub type PPHYSICAL_ADDRESS = *mut PHYSICAL_ADDRESS;
+ENUM!{enum EVENT_TYPE {
+ NotificationEvent,
+ SynchronizationEvent,
+}}
+ENUM!{enum TIMER_TYPE {
+ NotificationTimer,
+ SynchronizationTimer,
+}}
+ENUM!{enum WAIT_TYPE {
+ WaitAll,
+ WaitAny,
+ WaitNotification,
+ WaitDequeue,
+}}
+pub type PSZ = *mut CHAR;
+pub type PCSZ = *const c_char;
+pub type RTL_STRING_LENGTH_TYPE = USHORT;
+STRUCT!{struct STRING {
+ Length: USHORT,
+ MaximumLength: USHORT,
+ Buffer: PCHAR,
+}}
+pub type PSTRING = *mut STRING;
+pub type ANSI_STRING = STRING;
+pub type PANSI_STRING = PSTRING;
+pub type OEM_STRING = STRING;
+pub type POEM_STRING = PSTRING;
+pub type PCOEM_STRING = *const STRING;
+STRUCT!{struct CSTRING {
+ Length: USHORT,
+ MaximumLength: USHORT,
+ Buffer: *const c_char,
+}}
+pub type PCSTRING = *mut CSTRING;
+pub const ANSI_NULL: CHAR = 0;
+pub type CANSI_STRING = STRING;
+pub type PCANSI_STRING = PSTRING;
+STRUCT!{struct UNICODE_STRING {
+ Length: USHORT,
+ MaximumLength: USHORT,
+ Buffer: PWCH,
+}}
+pub type PUNICODE_STRING = *mut UNICODE_STRING;
+pub type PCUNICODE_STRING = *const UNICODE_STRING;
+pub const UNICODE_NULL: WCHAR = 0;
+pub const UNICODE_STRING_MAX_BYTES: USHORT = 65534;
+pub const UNICODE_STRING_MAX_CHARS: usize = 32767;
+pub type BOOLEAN = UCHAR;
+pub type PBOOLEAN = *mut BOOLEAN;
+STRUCT!{struct LIST_ENTRY {
+ Flink: *mut LIST_ENTRY,
+ Blink: *mut LIST_ENTRY,
+}}
+pub type PLIST_ENTRY = *mut LIST_ENTRY;
+pub type PRLIST_ENTRY = *mut LIST_ENTRY; // Restricted pointer
+STRUCT!{struct SINGLE_LIST_ENTRY {
+ Next: *mut SINGLE_LIST_ENTRY,
+}}
+pub type PSINGLE_LIST_ENTRY = *mut SINGLE_LIST_ENTRY;
+STRUCT!{struct RTL_BALANCED_NODE {
+ u: RTL_BALANCED_NODE_u,
+ ParentValue: ULONG_PTR,
+}}
+UNION!{union RTL_BALANCED_NODE_u {
+ [usize; 2],
+ Children Children_mut: [*mut RTL_BALANCED_NODE; 2],
+ s s_mut: RTL_BALANCED_NODE_s,
+}}
+STRUCT!{struct RTL_BALANCED_NODE_s {
+ Left: *mut RTL_BALANCED_NODE,
+ Right: *mut RTL_BALANCED_NODE,
+}}
+pub const RTL_BALANCED_NODE_RESERVED_PARENT_MASK: ULONG_PTR = 3;
+pub type PRTL_BALANCED_NODE = *mut RTL_BALANCED_NODE;
+#[inline]
+pub unsafe fn RTL_BALANCED_NODE_GET_PARENT_POINTER(
+ Node: PRTL_BALANCED_NODE,
+) -> PRTL_BALANCED_NODE {
+ ((*Node).ParentValue & !RTL_BALANCED_NODE_RESERVED_PARENT_MASK) as *mut RTL_BALANCED_NODE
+}
+STRUCT!{struct LIST_ENTRY32 {
+ Flink: ULONG,
+ Blink: ULONG,
+}}
+pub type PLIST_ENTRY32 = *mut LIST_ENTRY32;
+STRUCT!{struct LIST_ENTRY64 {
+ Flink: ULONGLONG,
+ Blink: ULONGLONG,
+}}
+pub type PLIST_ENTRY64 = *mut LIST_ENTRY64;
+STRUCT!{struct SINGLE_LIST_ENTRY32 {
+ Next: ULONG,
+}}
+pub type PSINGLE_LIST_ENTRY32 = *mut SINGLE_LIST_ENTRY32;
+#[inline]
+pub unsafe fn ListEntry32To64(l32: PLIST_ENTRY32, l64: PLIST_ENTRY64) {
+ (*l64).Flink = (*l32).Flink as ULONGLONG;
+ (*l64).Blink = (*l32).Blink as ULONGLONG;
+}
+#[inline]
+pub unsafe fn ListEntry64To32(l64: PLIST_ENTRY64, l32: PLIST_ENTRY32) {
+ (*l32).Flink = (*l64).Flink as ULONG;
+ (*l32).Blink = (*l64).Blink as ULONG;
+}
+STRUCT!{struct WNF_STATE_NAME {
+ Data: [ULONG; 2],
+}}
+pub type PWNF_STATE_NAME = *mut WNF_STATE_NAME;
+pub type PCWNF_STATE_NAME = *const WNF_STATE_NAME;
+STRUCT!{struct STRING32 {
+ Length: USHORT,
+ MaximumLength: USHORT,
+ Buffer: ULONG,
+}}
+pub type PSTRING32 = *mut STRING32;
+pub type UNICODE_STRING32 = STRING32;
+pub type PUNICODE_STRING32 = *mut UNICODE_STRING32;
+pub type ANSI_STRING32 = STRING32;
+pub type PANSI_STRING32 = *mut ANSI_STRING32;
+STRUCT!{struct STRING64 {
+ Length: USHORT,
+ MaximumLength: USHORT,
+ Buffer: ULONGLONG,
+}}
+pub type PSTRING64 = *mut STRING64;
+pub type UNICODE_STRING64 = STRING64;
+pub type PUNICODE_STRING64 = *mut UNICODE_STRING64;
+pub type ANSI_STRING64 = STRING64;
+pub type PANSI_STRING64 = *mut ANSI_STRING64;
+pub const OBJ_INHERIT: ULONG = 0x00000002;
+pub const OBJ_PERMANENT: ULONG = 0x00000010;
+pub const OBJ_EXCLUSIVE: ULONG = 0x00000020;
+pub const OBJ_CASE_INSENSITIVE: ULONG = 0x00000040;
+pub const OBJ_OPENIF: ULONG = 0x00000080;
+pub const OBJ_OPENLINK: ULONG = 0x00000100;
+pub const OBJ_KERNEL_HANDLE: ULONG = 0x00000200;
+pub const OBJ_FORCE_ACCESS_CHECK: ULONG = 0x00000400;
+pub const OBJ_IGNORE_IMPERSONATED_DEVICEMAP: ULONG = 0x00000800;
+pub const OBJ_DONT_REPARSE: ULONG = 0x00001000;
+pub const OBJ_VALID_ATTRIBUTES: ULONG = 0x00001FF2;
+STRUCT!{struct OBJECT_ATTRIBUTES64 {
+ Length: ULONG,
+ RootDirectory: ULONG64,
+ ObjectName: ULONG64,
+ Attributes: ULONG,
+ SecurityDescriptor: ULONG64,
+ SecurityQualityOfService: ULONG64,
+}}
+pub type POBJECT_ATTRIBUTES64 = *mut OBJECT_ATTRIBUTES64;
+pub type PCOBJECT_ATTRIBUTES64 = *const OBJECT_ATTRIBUTES64;
+STRUCT!{struct OBJECT_ATTRIBUTES32 {
+ Length: ULONG,
+ RootDirectory: ULONG,
+ ObjectName: ULONG,
+ Attributes: ULONG,
+ SecurityDescriptor: ULONG,
+ SecurityQualityOfService: ULONG,
+}}
+pub type POBJECT_ATTRIBUTES32 = *mut OBJECT_ATTRIBUTES32;
+pub type PCOBJECT_ATTRIBUTES32 = *const OBJECT_ATTRIBUTES32;
+STRUCT!{struct OBJECT_ATTRIBUTES {
+ Length: ULONG,
+ RootDirectory: HANDLE,
+ ObjectName: PUNICODE_STRING,
+ Attributes: ULONG,
+ SecurityDescriptor: PVOID,
+ SecurityQualityOfService: PVOID,
+}}
+pub type POBJECT_ATTRIBUTES = *mut OBJECT_ATTRIBUTES;
+pub type PCOBJECT_ATTRIBUTES = *const OBJECT_ATTRIBUTES;
+#[inline]
+pub unsafe fn InitializeObjectAttributes(
+ p: POBJECT_ATTRIBUTES,
+ n: PUNICODE_STRING,
+ a: ULONG,
+ r: HANDLE,
+ s: PVOID,
+) {
+ use core::mem::size_of;
+ (*p).Length = size_of::() as ULONG;
+ (*p).RootDirectory = r;
+ (*p).Attributes = a;
+ (*p).ObjectName = n;
+ (*p).SecurityDescriptor = s;
+ (*p).SecurityQualityOfService = NULL;
+}
+pub const FALSE: BOOLEAN = 0;
+pub const TRUE: BOOLEAN = 1;
+pub const NULL: PVOID = 0 as PVOID;
+pub const NULL64: PVOID64 = 0;
+STRUCT!{struct OBJECTID {
+ Lineage: GUID,
+ Uniquifier: ULONG,
+}}
+pub const MINCHAR: CHAR = 0x80;
+pub const MAXCHAR: CHAR = 0x7f;
+pub const MINSHORT: SHORT = 0x8000;
+pub const MAXSHORT: SHORT = 0x7fff;
+pub const MINLONG: LONG = 0x80000000;
+pub const MAXLONG: LONG = 0x7fffffff;
+pub const MAXUCHAR: UCHAR = 0xff;
+pub const MAXUSHORT: USHORT = 0xffff;
+pub const MAXULONG: ULONG = 0xffffffff;
+// PEXCEPTION_ROUTINE: Can't define here, because it needs EXCEPTION_RECORD and CONTEXT.
+pub type KIRQL = UCHAR;
+pub type PKIRQL = *mut KIRQL;
+ENUM!{enum NT_PRODUCT_TYPE {
+ NtProductWinNt = 1,
+ NtProductLanManNt,
+ NtProductServer,
+}}
+pub type PNT_PRODUCT_TYPE = *mut NT_PRODUCT_TYPE;
+ENUM!{enum SUITE_TYPE {
+ SmallBusiness,
+ Enterprise,
+ BackOffice,
+ CommunicationServer,
+ TerminalServer,
+ SmallBusinessRestricted,
+ EmbeddedNT,
+ DataCenter,
+ SingleUserTS,
+ Personal,
+ Blade,
+ EmbeddedRestricted,
+ SecurityAppliance,
+ StorageServer,
+ ComputeServer,
+ WHServer,
+ PhoneNT,
+ MaxSuiteType,
+}}
+pub const VER_SERVER_NT: ULONG = 0x80000000;
+pub const VER_WORKSTATION_NT: ULONG = 0x40000000;
+pub const VER_SUITE_SMALLBUSINESS: ULONG = 0x00000001;
+pub const VER_SUITE_ENTERPRISE: ULONG = 0x00000002;
+pub const VER_SUITE_BACKOFFICE: ULONG = 0x00000004;
+pub const VER_SUITE_COMMUNICATIONS: ULONG = 0x00000008;
+pub const VER_SUITE_TERMINAL: ULONG = 0x00000010;
+pub const VER_SUITE_SMALLBUSINESS_RESTRICTED: ULONG = 0x00000020;
+pub const VER_SUITE_EMBEDDEDNT: ULONG = 0x00000040;
+pub const VER_SUITE_DATACENTER: ULONG = 0x00000080;
+pub const VER_SUITE_SINGLEUSERTS: ULONG = 0x00000100;
+pub const VER_SUITE_PERSONAL: ULONG = 0x00000200;
+pub const VER_SUITE_BLADE: ULONG = 0x00000400;
+pub const VER_SUITE_EMBEDDED_RESTRICTED: ULONG = 0x00000800;
+pub const VER_SUITE_SECURITY_APPLIANCE: ULONG = 0x00001000;
+pub const VER_SUITE_STORAGE_SERVER: ULONG = 0x00002000;
+pub const VER_SUITE_COMPUTE_SERVER: ULONG = 0x00004000;
+pub const VER_SUITE_WH_SERVER: ULONG = 0x00008000;
+pub const PRODUCT_UNDEFINED: ULONG = 0x00000000;
+pub const PRODUCT_ULTIMATE: ULONG = 0x00000001;
+pub const PRODUCT_HOME_BASIC: ULONG = 0x00000002;
+pub const PRODUCT_HOME_PREMIUM: ULONG = 0x00000003;
+pub const PRODUCT_ENTERPRISE: ULONG = 0x00000004;
+pub const PRODUCT_HOME_BASIC_N: ULONG = 0x00000005;
+pub const PRODUCT_BUSINESS: ULONG = 0x00000006;
+pub const PRODUCT_STANDARD_SERVER: ULONG = 0x00000007;
+pub const PRODUCT_DATACENTER_SERVER: ULONG = 0x00000008;
+pub const PRODUCT_SMALLBUSINESS_SERVER: ULONG = 0x00000009;
+pub const PRODUCT_ENTERPRISE_SERVER: ULONG = 0x0000000A;
+pub const PRODUCT_STARTER: ULONG = 0x0000000B;
+pub const PRODUCT_DATACENTER_SERVER_CORE: ULONG = 0x0000000C;
+pub const PRODUCT_STANDARD_SERVER_CORE: ULONG = 0x0000000D;
+pub const PRODUCT_ENTERPRISE_SERVER_CORE: ULONG = 0x0000000E;
+pub const PRODUCT_ENTERPRISE_SERVER_IA64: ULONG = 0x0000000F;
+pub const PRODUCT_BUSINESS_N: ULONG = 0x00000010;
+pub const PRODUCT_WEB_SERVER: ULONG = 0x00000011;
+pub const PRODUCT_CLUSTER_SERVER: ULONG = 0x00000012;
+pub const PRODUCT_HOME_SERVER: ULONG = 0x00000013;
+pub const PRODUCT_STORAGE_EXPRESS_SERVER: ULONG = 0x00000014;
+pub const PRODUCT_STORAGE_STANDARD_SERVER: ULONG = 0x00000015;
+pub const PRODUCT_STORAGE_WORKGROUP_SERVER: ULONG = 0x00000016;
+pub const PRODUCT_STORAGE_ENTERPRISE_SERVER: ULONG = 0x00000017;
+pub const PRODUCT_SERVER_FOR_SMALLBUSINESS: ULONG = 0x00000018;
+pub const PRODUCT_SMALLBUSINESS_SERVER_PREMIUM: ULONG = 0x00000019;
+pub const PRODUCT_HOME_PREMIUM_N: ULONG = 0x0000001A;
+pub const PRODUCT_ENTERPRISE_N: ULONG = 0x0000001B;
+pub const PRODUCT_ULTIMATE_N: ULONG = 0x0000001C;
+pub const PRODUCT_WEB_SERVER_CORE: ULONG = 0x0000001D;
+pub const PRODUCT_MEDIUMBUSINESS_SERVER_MANAGEMENT: ULONG = 0x0000001E;
+pub const PRODUCT_MEDIUMBUSINESS_SERVER_SECURITY: ULONG = 0x0000001F;
+pub const PRODUCT_MEDIUMBUSINESS_SERVER_MESSAGING: ULONG = 0x00000020;
+pub const PRODUCT_SERVER_FOUNDATION: ULONG = 0x00000021;
+pub const PRODUCT_HOME_PREMIUM_SERVER: ULONG = 0x00000022;
+pub const PRODUCT_SERVER_FOR_SMALLBUSINESS_V: ULONG = 0x00000023;
+pub const PRODUCT_STANDARD_SERVER_V: ULONG = 0x00000024;
+pub const PRODUCT_DATACENTER_SERVER_V: ULONG = 0x00000025;
+pub const PRODUCT_ENTERPRISE_SERVER_V: ULONG = 0x00000026;
+pub const PRODUCT_DATACENTER_SERVER_CORE_V: ULONG = 0x00000027;
+pub const PRODUCT_STANDARD_SERVER_CORE_V: ULONG = 0x00000028;
+pub const PRODUCT_ENTERPRISE_SERVER_CORE_V: ULONG = 0x00000029;
+pub const PRODUCT_HYPERV: ULONG = 0x0000002A;
+pub const PRODUCT_STORAGE_EXPRESS_SERVER_CORE: ULONG = 0x0000002B;
+pub const PRODUCT_STORAGE_STANDARD_SERVER_CORE: ULONG = 0x0000002C;
+pub const PRODUCT_STORAGE_WORKGROUP_SERVER_CORE: ULONG = 0x0000002D;
+pub const PRODUCT_STORAGE_ENTERPRISE_SERVER_CORE: ULONG = 0x0000002E;
+pub const PRODUCT_STARTER_N: ULONG = 0x0000002F;
+pub const PRODUCT_PROFESSIONAL: ULONG = 0x00000030;
+pub const PRODUCT_PROFESSIONAL_N: ULONG = 0x00000031;
+pub const PRODUCT_SB_SOLUTION_SERVER: ULONG = 0x00000032;
+pub const PRODUCT_SERVER_FOR_SB_SOLUTIONS: ULONG = 0x00000033;
+pub const PRODUCT_STANDARD_SERVER_SOLUTIONS: ULONG = 0x00000034;
+pub const PRODUCT_STANDARD_SERVER_SOLUTIONS_CORE: ULONG = 0x00000035;
+pub const PRODUCT_SB_SOLUTION_SERVER_EM: ULONG = 0x00000036;
+pub const PRODUCT_SERVER_FOR_SB_SOLUTIONS_EM: ULONG = 0x00000037;
+pub const PRODUCT_SOLUTION_EMBEDDEDSERVER: ULONG = 0x00000038;
+pub const PRODUCT_SOLUTION_EMBEDDEDSERVER_CORE: ULONG = 0x00000039;
+pub const PRODUCT_PROFESSIONAL_EMBEDDED: ULONG = 0x0000003A;
+pub const PRODUCT_ESSENTIALBUSINESS_SERVER_MGMT: ULONG = 0x0000003B;
+pub const PRODUCT_ESSENTIALBUSINESS_SERVER_ADDL: ULONG = 0x0000003C;
+pub const PRODUCT_ESSENTIALBUSINESS_SERVER_MGMTSVC: ULONG = 0x0000003D;
+pub const PRODUCT_ESSENTIALBUSINESS_SERVER_ADDLSVC: ULONG = 0x0000003E;
+pub const PRODUCT_SMALLBUSINESS_SERVER_PREMIUM_CORE: ULONG = 0x0000003F;
+pub const PRODUCT_CLUSTER_SERVER_V: ULONG = 0x00000040;
+pub const PRODUCT_EMBEDDED: ULONG = 0x00000041;
+pub const PRODUCT_STARTER_E: ULONG = 0x00000042;
+pub const PRODUCT_HOME_BASIC_E: ULONG = 0x00000043;
+pub const PRODUCT_HOME_PREMIUM_E: ULONG = 0x00000044;
+pub const PRODUCT_PROFESSIONAL_E: ULONG = 0x00000045;
+pub const PRODUCT_ENTERPRISE_E: ULONG = 0x00000046;
+pub const PRODUCT_ULTIMATE_E: ULONG = 0x00000047;
+pub const PRODUCT_ENTERPRISE_EVALUATION: ULONG = 0x00000048;
+pub const PRODUCT_MULTIPOINT_STANDARD_SERVER: ULONG = 0x0000004C;
+pub const PRODUCT_MULTIPOINT_PREMIUM_SERVER: ULONG = 0x0000004D;
+pub const PRODUCT_STANDARD_EVALUATION_SERVER: ULONG = 0x0000004F;
+pub const PRODUCT_DATACENTER_EVALUATION_SERVER: ULONG = 0x00000050;
+pub const PRODUCT_ENTERPRISE_N_EVALUATION: ULONG = 0x00000054;
+pub const PRODUCT_EMBEDDED_AUTOMOTIVE: ULONG = 0x00000055;
+pub const PRODUCT_EMBEDDED_INDUSTRY_A: ULONG = 0x00000056;
+pub const PRODUCT_THINPC: ULONG = 0x00000057;
+pub const PRODUCT_EMBEDDED_A: ULONG = 0x00000058;
+pub const PRODUCT_EMBEDDED_INDUSTRY: ULONG = 0x00000059;
+pub const PRODUCT_EMBEDDED_E: ULONG = 0x0000005A;
+pub const PRODUCT_EMBEDDED_INDUSTRY_E: ULONG = 0x0000005B;
+pub const PRODUCT_EMBEDDED_INDUSTRY_A_E: ULONG = 0x0000005C;
+pub const PRODUCT_STORAGE_WORKGROUP_EVALUATION_SERVER: ULONG = 0x0000005F;
+pub const PRODUCT_STORAGE_STANDARD_EVALUATION_SERVER: ULONG = 0x00000060;
+pub const PRODUCT_CORE_ARM: ULONG = 0x00000061;
+pub const PRODUCT_CORE_N: ULONG = 0x00000062;
+pub const PRODUCT_CORE_COUNTRYSPECIFIC: ULONG = 0x00000063;
+pub const PRODUCT_CORE_SINGLELANGUAGE: ULONG = 0x00000064;
+pub const PRODUCT_CORE: ULONG = 0x00000065;
+pub const PRODUCT_PROFESSIONAL_WMC: ULONG = 0x00000067;
+pub const PRODUCT_MOBILE_CORE: ULONG = 0x00000068;
+pub const PRODUCT_EMBEDDED_INDUSTRY_EVAL: ULONG = 0x00000069;
+pub const PRODUCT_EMBEDDED_INDUSTRY_E_EVAL: ULONG = 0x0000006A;
+pub const PRODUCT_EMBEDDED_EVAL: ULONG = 0x0000006B;
+pub const PRODUCT_EMBEDDED_E_EVAL: ULONG = 0x0000006C;
+pub const PRODUCT_NANO_SERVER: ULONG = 0x0000006D;
+pub const PRODUCT_CLOUD_STORAGE_SERVER: ULONG = 0x0000006E;
+pub const PRODUCT_CORE_CONNECTED: ULONG = 0x0000006F;
+pub const PRODUCT_PROFESSIONAL_STUDENT: ULONG = 0x00000070;
+pub const PRODUCT_CORE_CONNECTED_N: ULONG = 0x00000071;
+pub const PRODUCT_PROFESSIONAL_STUDENT_N: ULONG = 0x00000072;
+pub const PRODUCT_CORE_CONNECTED_SINGLELANGUAGE: ULONG = 0x00000073;
+pub const PRODUCT_CORE_CONNECTED_COUNTRYSPECIFIC: ULONG = 0x00000074;
+pub const PRODUCT_CONNECTED_CAR: ULONG = 0x00000075;
+pub const PRODUCT_INDUSTRY_HANDHELD: ULONG = 0x00000076;
+pub const PRODUCT_PPI_PRO: ULONG = 0x00000077;
+pub const PRODUCT_ARM64_SERVER: ULONG = 0x00000078;
+pub const PRODUCT_EDUCATION: ULONG = 0x00000079;
+pub const PRODUCT_EDUCATION_N: ULONG = 0x0000007A;
+pub const PRODUCT_IOTUAP: ULONG = 0x0000007B;
+pub const PRODUCT_CLOUD_HOST_INFRASTRUCTURE_SERVER: ULONG = 0x0000007C;
+pub const PRODUCT_ENTERPRISE_S: ULONG = 0x0000007D;
+pub const PRODUCT_ENTERPRISE_S_N: ULONG = 0x0000007E;
+pub const PRODUCT_PROFESSIONAL_S: ULONG = 0x0000007F;
+pub const PRODUCT_PROFESSIONAL_S_N: ULONG = 0x00000080;
+pub const PRODUCT_ENTERPRISE_S_EVALUATION: ULONG = 0x00000081;
+pub const PRODUCT_ENTERPRISE_S_N_EVALUATION: ULONG = 0x00000082;
+pub const PRODUCT_HOLOGRAPHIC: ULONG = 0x00000087;
+pub const PRODUCT_PRO_SINGLE_LANGUAGE: ULONG = 0x0000008A;
+pub const PRODUCT_PRO_CHINA: ULONG = 0x0000008B;
+pub const PRODUCT_ENTERPRISE_SUBSCRIPTION: ULONG = 0x0000008C;
+pub const PRODUCT_ENTERPRISE_SUBSCRIPTION_N: ULONG = 0x0000008D;
+pub const PRODUCT_DATACENTER_NANO_SERVER: ULONG = 0x0000008F;
+pub const PRODUCT_STANDARD_NANO_SERVER: ULONG = 0x00000090;
+pub const PRODUCT_DATACENTER_A_SERVER_CORE: ULONG = 0x00000091;
+pub const PRODUCT_STANDARD_A_SERVER_CORE: ULONG = 0x00000092;
+pub const PRODUCT_DATACENTER_WS_SERVER_CORE: ULONG = 0x00000093;
+pub const PRODUCT_STANDARD_WS_SERVER_CORE: ULONG = 0x00000094;
+pub const PRODUCT_UTILITY_VM: ULONG = 0x00000095;
+pub const PRODUCT_DATACENTER_EVALUATION_SERVER_CORE: ULONG = 0x0000009F;
+pub const PRODUCT_STANDARD_EVALUATION_SERVER_CORE: ULONG = 0x000000A0;
+pub const PRODUCT_PRO_WORKSTATION: ULONG = 0x000000A1;
+pub const PRODUCT_PRO_WORKSTATION_N: ULONG = 0x000000A2;
+pub const PRODUCT_PRO_FOR_EDUCATION: ULONG = 0x000000A4;
+pub const PRODUCT_PRO_FOR_EDUCATION_N: ULONG = 0x000000A5;
+pub const PRODUCT_AZURE_SERVER_CORE: ULONG = 0x000000A8;
+pub const PRODUCT_AZURE_NANO_SERVER: ULONG = 0x000000A9;
+pub const PRODUCT_UNLICENSED: ULONG = 0xABCDABCD;
+pub const LANG_NEUTRAL: USHORT = 0x00;
+pub const LANG_INVARIANT: USHORT = 0x7f;
+pub const LANG_AFRIKAANS: USHORT = 0x36;
+pub const LANG_ALBANIAN: USHORT = 0x1c;
+pub const LANG_ALSATIAN: USHORT = 0x84;
+pub const LANG_AMHARIC: USHORT = 0x5e;
+pub const LANG_ARABIC: USHORT = 0x01;
+pub const LANG_ARMENIAN: USHORT = 0x2b;
+pub const LANG_ASSAMESE: USHORT = 0x4d;
+pub const LANG_AZERI: USHORT = 0x2c;
+pub const LANG_AZERBAIJANI: USHORT = 0x2c;
+pub const LANG_BANGLA: USHORT = 0x45;
+pub const LANG_BASHKIR: USHORT = 0x6d;
+pub const LANG_BASQUE: USHORT = 0x2d;
+pub const LANG_BELARUSIAN: USHORT = 0x23;
+pub const LANG_BENGALI: USHORT = 0x45;
+pub const LANG_BRETON: USHORT = 0x7e;
+pub const LANG_BOSNIAN: USHORT = 0x1a;
+pub const LANG_BOSNIAN_NEUTRAL: USHORT = 0x781a;
+pub const LANG_BULGARIAN: USHORT = 0x02;
+pub const LANG_CATALAN: USHORT = 0x03;
+pub const LANG_CENTRAL_KURDISH: USHORT = 0x92;
+pub const LANG_CHEROKEE: USHORT = 0x5c;
+pub const LANG_CHINESE: USHORT = 0x04;
+pub const LANG_CHINESE_SIMPLIFIED: USHORT = 0x04;
+pub const LANG_CHINESE_TRADITIONAL: USHORT = 0x7c04;
+pub const LANG_CORSICAN: USHORT = 0x83;
+pub const LANG_CROATIAN: USHORT = 0x1a;
+pub const LANG_CZECH: USHORT = 0x05;
+pub const LANG_DANISH: USHORT = 0x06;
+pub const LANG_DARI: USHORT = 0x8c;
+pub const LANG_DIVEHI: USHORT = 0x65;
+pub const LANG_DUTCH: USHORT = 0x13;
+pub const LANG_ENGLISH: USHORT = 0x09;
+pub const LANG_ESTONIAN: USHORT = 0x25;
+pub const LANG_FAEROESE: USHORT = 0x38;
+pub const LANG_FARSI: USHORT = 0x29;
+pub const LANG_FILIPINO: USHORT = 0x64;
+pub const LANG_FINNISH: USHORT = 0x0b;
+pub const LANG_FRENCH: USHORT = 0x0c;
+pub const LANG_FRISIAN: USHORT = 0x62;
+pub const LANG_FULAH: USHORT = 0x67;
+pub const LANG_GALICIAN: USHORT = 0x56;
+pub const LANG_GEORGIAN: USHORT = 0x37;
+pub const LANG_GERMAN: USHORT = 0x07;
+pub const LANG_GREEK: USHORT = 0x08;
+pub const LANG_GREENLANDIC: USHORT = 0x6f;
+pub const LANG_GUJARATI: USHORT = 0x47;
+pub const LANG_HAUSA: USHORT = 0x68;
+pub const LANG_HAWAIIAN: USHORT = 0x75;
+pub const LANG_HEBREW: USHORT = 0x0d;
+pub const LANG_HINDI: USHORT = 0x39;
+pub const LANG_HUNGARIAN: USHORT = 0x0e;
+pub const LANG_ICELANDIC: USHORT = 0x0f;
+pub const LANG_IGBO: USHORT = 0x70;
+pub const LANG_INDONESIAN: USHORT = 0x21;
+pub const LANG_INUKTITUT: USHORT = 0x5d;
+pub const LANG_IRISH: USHORT = 0x3c;
+pub const LANG_ITALIAN: USHORT = 0x10;
+pub const LANG_JAPANESE: USHORT = 0x11;
+pub const LANG_KANNADA: USHORT = 0x4b;
+pub const LANG_KASHMIRI: USHORT = 0x60;
+pub const LANG_KAZAK: USHORT = 0x3f;
+pub const LANG_KHMER: USHORT = 0x53;
+pub const LANG_KICHE: USHORT = 0x86;
+pub const LANG_KINYARWANDA: USHORT = 0x87;
+pub const LANG_KONKANI: USHORT = 0x57;
+pub const LANG_KOREAN: USHORT = 0x12;
+pub const LANG_KYRGYZ: USHORT = 0x40;
+pub const LANG_LAO: USHORT = 0x54;
+pub const LANG_LATVIAN: USHORT = 0x26;
+pub const LANG_LITHUANIAN: USHORT = 0x27;
+pub const LANG_LOWER_SORBIAN: USHORT = 0x2e;
+pub const LANG_LUXEMBOURGISH: USHORT = 0x6e;
+pub const LANG_MACEDONIAN: USHORT = 0x2f;
+pub const LANG_MALAY: USHORT = 0x3e;
+pub const LANG_MALAYALAM: USHORT = 0x4c;
+pub const LANG_MALTESE: USHORT = 0x3a;
+pub const LANG_MANIPURI: USHORT = 0x58;
+pub const LANG_MAORI: USHORT = 0x81;
+pub const LANG_MAPUDUNGUN: USHORT = 0x7a;
+pub const LANG_MARATHI: USHORT = 0x4e;
+pub const LANG_MOHAWK: USHORT = 0x7c;
+pub const LANG_MONGOLIAN: USHORT = 0x50;
+pub const LANG_NEPALI: USHORT = 0x61;
+pub const LANG_NORWEGIAN: USHORT = 0x14;
+pub const LANG_OCCITAN: USHORT = 0x82;
+pub const LANG_ODIA: USHORT = 0x48;
+pub const LANG_ORIYA: USHORT = 0x48;
+pub const LANG_PASHTO: USHORT = 0x63;
+pub const LANG_PERSIAN: USHORT = 0x29;
+pub const LANG_POLISH: USHORT = 0x15;
+pub const LANG_PORTUGUESE: USHORT = 0x16;
+pub const LANG_PULAR: USHORT = 0x67;
+pub const LANG_PUNJABI: USHORT = 0x46;
+pub const LANG_QUECHUA: USHORT = 0x6b;
+pub const LANG_ROMANIAN: USHORT = 0x18;
+pub const LANG_ROMANSH: USHORT = 0x17;
+pub const LANG_RUSSIAN: USHORT = 0x19;
+pub const LANG_SAKHA: USHORT = 0x85;
+pub const LANG_SAMI: USHORT = 0x3b;
+pub const LANG_SANSKRIT: USHORT = 0x4f;
+pub const LANG_SCOTTISH_GAELIC: USHORT = 0x91;
+pub const LANG_SERBIAN: USHORT = 0x1a;
+pub const LANG_SERBIAN_NEUTRAL: USHORT = 0x7c1a;
+pub const LANG_SINDHI: USHORT = 0x59;
+pub const LANG_SINHALESE: USHORT = 0x5b;
+pub const LANG_SLOVAK: USHORT = 0x1b;
+pub const LANG_SLOVENIAN: USHORT = 0x24;
+pub const LANG_SOTHO: USHORT = 0x6c;
+pub const LANG_SPANISH: USHORT = 0x0a;
+pub const LANG_SWAHILI: USHORT = 0x41;
+pub const LANG_SWEDISH: USHORT = 0x1d;
+pub const LANG_SYRIAC: USHORT = 0x5a;
+pub const LANG_TAJIK: USHORT = 0x28;
+pub const LANG_TAMAZIGHT: USHORT = 0x5f;
+pub const LANG_TAMIL: USHORT = 0x49;
+pub const LANG_TATAR: USHORT = 0x44;
+pub const LANG_TELUGU: USHORT = 0x4a;
+pub const LANG_THAI: USHORT = 0x1e;
+pub const LANG_TIBETAN: USHORT = 0x51;
+pub const LANG_TIGRIGNA: USHORT = 0x73;
+pub const LANG_TIGRINYA: USHORT = 0x73;
+pub const LANG_TSWANA: USHORT = 0x32;
+pub const LANG_TURKISH: USHORT = 0x1f;
+pub const LANG_TURKMEN: USHORT = 0x42;
+pub const LANG_UIGHUR: USHORT = 0x80;
+pub const LANG_UKRAINIAN: USHORT = 0x22;
+pub const LANG_UPPER_SORBIAN: USHORT = 0x2e;
+pub const LANG_URDU: USHORT = 0x20;
+pub const LANG_UZBEK: USHORT = 0x43;
+pub const LANG_VALENCIAN: USHORT = 0x03;
+pub const LANG_VIETNAMESE: USHORT = 0x2a;
+pub const LANG_WELSH: USHORT = 0x52;
+pub const LANG_WOLOF: USHORT = 0x88;
+pub const LANG_XHOSA: USHORT = 0x34;
+pub const LANG_YAKUT: USHORT = 0x85;
+pub const LANG_YI: USHORT = 0x78;
+pub const LANG_YORUBA: USHORT = 0x6a;
+pub const LANG_ZULU: USHORT = 0x35;
+pub const SUBLANG_NEUTRAL: USHORT = 0x00;
+pub const SUBLANG_DEFAULT: USHORT = 0x01;
+pub const SUBLANG_SYS_DEFAULT: USHORT = 0x02;
+pub const SUBLANG_CUSTOM_DEFAULT: USHORT = 0x03;
+pub const SUBLANG_CUSTOM_UNSPECIFIED: USHORT = 0x04;
+pub const SUBLANG_UI_CUSTOM_DEFAULT: USHORT = 0x05;
+pub const SUBLANG_AFRIKAANS_SOUTH_AFRICA: USHORT = 0x01;
+pub const SUBLANG_ALBANIAN_ALBANIA: USHORT = 0x01;
+pub const SUBLANG_ALSATIAN_FRANCE: USHORT = 0x01;
+pub const SUBLANG_AMHARIC_ETHIOPIA: USHORT = 0x01;
+pub const SUBLANG_ARABIC_SAUDI_ARABIA: USHORT = 0x01;
+pub const SUBLANG_ARABIC_IRAQ: USHORT = 0x02;
+pub const SUBLANG_ARABIC_EGYPT: USHORT = 0x03;
+pub const SUBLANG_ARABIC_LIBYA: USHORT = 0x04;
+pub const SUBLANG_ARABIC_ALGERIA: USHORT = 0x05;
+pub const SUBLANG_ARABIC_MOROCCO: USHORT = 0x06;
+pub const SUBLANG_ARABIC_TUNISIA: USHORT = 0x07;
+pub const SUBLANG_ARABIC_OMAN: USHORT = 0x08;
+pub const SUBLANG_ARABIC_YEMEN: USHORT = 0x09;
+pub const SUBLANG_ARABIC_SYRIA: USHORT = 0x0a;
+pub const SUBLANG_ARABIC_JORDAN: USHORT = 0x0b;
+pub const SUBLANG_ARABIC_LEBANON: USHORT = 0x0c;
+pub const SUBLANG_ARABIC_KUWAIT: USHORT = 0x0d;
+pub const SUBLANG_ARABIC_UAE: USHORT = 0x0e;
+pub const SUBLANG_ARABIC_BAHRAIN: USHORT = 0x0f;
+pub const SUBLANG_ARABIC_QATAR: USHORT = 0x10;
+pub const SUBLANG_ARMENIAN_ARMENIA: USHORT = 0x01;
+pub const SUBLANG_ASSAMESE_INDIA: USHORT = 0x01;
+pub const SUBLANG_AZERI_LATIN: USHORT = 0x01;
+pub const SUBLANG_AZERI_CYRILLIC: USHORT = 0x02;
+pub const SUBLANG_AZERBAIJANI_AZERBAIJAN_LATIN: USHORT = 0x01;
+pub const SUBLANG_AZERBAIJANI_AZERBAIJAN_CYRILLIC: USHORT = 0x02;
+pub const SUBLANG_BANGLA_INDIA: USHORT = 0x01;
+pub const SUBLANG_BANGLA_BANGLADESH: USHORT = 0x02;
+pub const SUBLANG_BASHKIR_RUSSIA: USHORT = 0x01;
+pub const SUBLANG_BASQUE_BASQUE: USHORT = 0x01;
+pub const SUBLANG_BELARUSIAN_BELARUS: USHORT = 0x01;
+pub const SUBLANG_BENGALI_INDIA: USHORT = 0x01;
+pub const SUBLANG_BENGALI_BANGLADESH: USHORT = 0x02;
+pub const SUBLANG_BOSNIAN_BOSNIA_HERZEGOVINA_LATIN: USHORT = 0x05;
+pub const SUBLANG_BOSNIAN_BOSNIA_HERZEGOVINA_CYRILLIC: USHORT = 0x08;
+pub const SUBLANG_BRETON_FRANCE: USHORT = 0x01;
+pub const SUBLANG_BULGARIAN_BULGARIA: USHORT = 0x01;
+pub const SUBLANG_CATALAN_CATALAN: USHORT = 0x01;
+pub const SUBLANG_CENTRAL_KURDISH_IRAQ: USHORT = 0x01;
+pub const SUBLANG_CHEROKEE_CHEROKEE: USHORT = 0x01;
+pub const SUBLANG_CHINESE_TRADITIONAL: USHORT = 0x01;
+pub const SUBLANG_CHINESE_SIMPLIFIED: USHORT = 0x02;
+pub const SUBLANG_CHINESE_HONGKONG: USHORT = 0x03;
+pub const SUBLANG_CHINESE_SINGAPORE: USHORT = 0x04;
+pub const SUBLANG_CHINESE_MACAU: USHORT = 0x05;
+pub const SUBLANG_CORSICAN_FRANCE: USHORT = 0x01;
+pub const SUBLANG_CZECH_CZECH_REPUBLIC: USHORT = 0x01;
+pub const SUBLANG_CROATIAN_CROATIA: USHORT = 0x01;
+pub const SUBLANG_CROATIAN_BOSNIA_HERZEGOVINA_LATIN: USHORT = 0x04;
+pub const SUBLANG_DANISH_DENMARK: USHORT = 0x01;
+pub const SUBLANG_DARI_AFGHANISTAN: USHORT = 0x01;
+pub const SUBLANG_DIVEHI_MALDIVES: USHORT = 0x01;
+pub const SUBLANG_DUTCH: USHORT = 0x01;
+pub const SUBLANG_DUTCH_BELGIAN: USHORT = 0x02;
+pub const SUBLANG_ENGLISH_US: USHORT = 0x01;
+pub const SUBLANG_ENGLISH_UK: USHORT = 0x02;
+pub const SUBLANG_ENGLISH_AUS: USHORT = 0x03;
+pub const SUBLANG_ENGLISH_CAN: USHORT = 0x04;
+pub const SUBLANG_ENGLISH_NZ: USHORT = 0x05;
+pub const SUBLANG_ENGLISH_EIRE: USHORT = 0x06;
+pub const SUBLANG_ENGLISH_SOUTH_AFRICA: USHORT = 0x07;
+pub const SUBLANG_ENGLISH_JAMAICA: USHORT = 0x08;
+pub const SUBLANG_ENGLISH_CARIBBEAN: USHORT = 0x09;
+pub const SUBLANG_ENGLISH_BELIZE: USHORT = 0x0a;
+pub const SUBLANG_ENGLISH_TRINIDAD: USHORT = 0x0b;
+pub const SUBLANG_ENGLISH_ZIMBABWE: USHORT = 0x0c;
+pub const SUBLANG_ENGLISH_PHILIPPINES: USHORT = 0x0d;
+pub const SUBLANG_ENGLISH_INDIA: USHORT = 0x10;
+pub const SUBLANG_ENGLISH_MALAYSIA: USHORT = 0x11;
+pub const SUBLANG_ENGLISH_SINGAPORE: USHORT = 0x12;
+pub const SUBLANG_ESTONIAN_ESTONIA: USHORT = 0x01;
+pub const SUBLANG_FAEROESE_FAROE_ISLANDS: USHORT = 0x01;
+pub const SUBLANG_FILIPINO_PHILIPPINES: USHORT = 0x01;
+pub const SUBLANG_FINNISH_FINLAND: USHORT = 0x01;
+pub const SUBLANG_FRENCH: USHORT = 0x01;
+pub const SUBLANG_FRENCH_BELGIAN: USHORT = 0x02;
+pub const SUBLANG_FRENCH_CANADIAN: USHORT = 0x03;
+pub const SUBLANG_FRENCH_SWISS: USHORT = 0x04;
+pub const SUBLANG_FRENCH_LUXEMBOURG: USHORT = 0x05;
+pub const SUBLANG_FRENCH_MONACO: USHORT = 0x06;
+pub const SUBLANG_FRISIAN_NETHERLANDS: USHORT = 0x01;
+pub const SUBLANG_FULAH_SENEGAL: USHORT = 0x02;
+pub const SUBLANG_GALICIAN_GALICIAN: USHORT = 0x01;
+pub const SUBLANG_GEORGIAN_GEORGIA: USHORT = 0x01;
+pub const SUBLANG_GERMAN: USHORT = 0x01;
+pub const SUBLANG_GERMAN_SWISS: USHORT = 0x02;
+pub const SUBLANG_GERMAN_AUSTRIAN: USHORT = 0x03;
+pub const SUBLANG_GERMAN_LUXEMBOURG: USHORT = 0x04;
+pub const SUBLANG_GERMAN_LIECHTENSTEIN: USHORT = 0x05;
+pub const SUBLANG_GREEK_GREECE: USHORT = 0x01;
+pub const SUBLANG_GREENLANDIC_GREENLAND: USHORT = 0x01;
+pub const SUBLANG_GUJARATI_INDIA: USHORT = 0x01;
+pub const SUBLANG_HAUSA_NIGERIA_LATIN: USHORT = 0x01;
+pub const SUBLANG_HAWAIIAN_US: USHORT = 0x01;
+pub const SUBLANG_HEBREW_ISRAEL: USHORT = 0x01;
+pub const SUBLANG_HINDI_INDIA: USHORT = 0x01;
+pub const SUBLANG_HUNGARIAN_HUNGARY: USHORT = 0x01;
+pub const SUBLANG_ICELANDIC_ICELAND: USHORT = 0x01;
+pub const SUBLANG_IGBO_NIGERIA: USHORT = 0x01;
+pub const SUBLANG_INDONESIAN_INDONESIA: USHORT = 0x01;
+pub const SUBLANG_INUKTITUT_CANADA: USHORT = 0x01;
+pub const SUBLANG_INUKTITUT_CANADA_LATIN: USHORT = 0x02;
+pub const SUBLANG_IRISH_IRELAND: USHORT = 0x02;
+pub const SUBLANG_ITALIAN: USHORT = 0x01;
+pub const SUBLANG_ITALIAN_SWISS: USHORT = 0x02;
+pub const SUBLANG_JAPANESE_JAPAN: USHORT = 0x01;
+pub const SUBLANG_KANNADA_INDIA: USHORT = 0x01;
+pub const SUBLANG_KASHMIRI_SASIA: USHORT = 0x02;
+pub const SUBLANG_KASHMIRI_INDIA: USHORT = 0x02;
+pub const SUBLANG_KAZAK_KAZAKHSTAN: USHORT = 0x01;
+pub const SUBLANG_KHMER_CAMBODIA: USHORT = 0x01;
+pub const SUBLANG_KICHE_GUATEMALA: USHORT = 0x01;
+pub const SUBLANG_KINYARWANDA_RWANDA: USHORT = 0x01;
+pub const SUBLANG_KONKANI_INDIA: USHORT = 0x01;
+pub const SUBLANG_KOREAN: USHORT = 0x01;
+pub const SUBLANG_KYRGYZ_KYRGYZSTAN: USHORT = 0x01;
+pub const SUBLANG_LAO_LAO: USHORT = 0x01;
+pub const SUBLANG_LATVIAN_LATVIA: USHORT = 0x01;
+pub const SUBLANG_LITHUANIAN: USHORT = 0x01;
+pub const SUBLANG_LOWER_SORBIAN_GERMANY: USHORT = 0x02;
+pub const SUBLANG_LUXEMBOURGISH_LUXEMBOURG: USHORT = 0x01;
+pub const SUBLANG_MACEDONIAN_MACEDONIA: USHORT = 0x01;
+pub const SUBLANG_MALAY_MALAYSIA: USHORT = 0x01;
+pub const SUBLANG_MALAY_BRUNEI_DARUSSALAM: USHORT = 0x02;
+pub const SUBLANG_MALAYALAM_INDIA: USHORT = 0x01;
+pub const SUBLANG_MALTESE_MALTA: USHORT = 0x01;
+pub const SUBLANG_MAORI_NEW_ZEALAND: USHORT = 0x01;
+pub const SUBLANG_MAPUDUNGUN_CHILE: USHORT = 0x01;
+pub const SUBLANG_MARATHI_INDIA: USHORT = 0x01;
+pub const SUBLANG_MOHAWK_MOHAWK: USHORT = 0x01;
+pub const SUBLANG_MONGOLIAN_CYRILLIC_MONGOLIA: USHORT = 0x01;
+pub const SUBLANG_MONGOLIAN_PRC: USHORT = 0x02;
+pub const SUBLANG_NEPALI_INDIA: USHORT = 0x02;
+pub const SUBLANG_NEPALI_NEPAL: USHORT = 0x01;
+pub const SUBLANG_NORWEGIAN_BOKMAL: USHORT = 0x01;
+pub const SUBLANG_NORWEGIAN_NYNORSK: USHORT = 0x02;
+pub const SUBLANG_OCCITAN_FRANCE: USHORT = 0x01;
+pub const SUBLANG_ODIA_INDIA: USHORT = 0x01;
+pub const SUBLANG_ORIYA_INDIA: USHORT = 0x01;
+pub const SUBLANG_PASHTO_AFGHANISTAN: USHORT = 0x01;
+pub const SUBLANG_PERSIAN_IRAN: USHORT = 0x01;
+pub const SUBLANG_POLISH_POLAND: USHORT = 0x01;
+pub const SUBLANG_PORTUGUESE: USHORT = 0x02;
+pub const SUBLANG_PORTUGUESE_BRAZILIAN: USHORT = 0x01;
+pub const SUBLANG_PULAR_SENEGAL: USHORT = 0x02;
+pub const SUBLANG_PUNJABI_INDIA: USHORT = 0x01;
+pub const SUBLANG_PUNJABI_PAKISTAN: USHORT = 0x02;
+pub const SUBLANG_QUECHUA_BOLIVIA: USHORT = 0x01;
+pub const SUBLANG_QUECHUA_ECUADOR: USHORT = 0x02;
+pub const SUBLANG_QUECHUA_PERU: USHORT = 0x03;
+pub const SUBLANG_ROMANIAN_ROMANIA: USHORT = 0x01;
+pub const SUBLANG_ROMANSH_SWITZERLAND: USHORT = 0x01;
+pub const SUBLANG_RUSSIAN_RUSSIA: USHORT = 0x01;
+pub const SUBLANG_SAKHA_RUSSIA: USHORT = 0x01;
+pub const SUBLANG_SAMI_NORTHERN_NORWAY: USHORT = 0x01;
+pub const SUBLANG_SAMI_NORTHERN_SWEDEN: USHORT = 0x02;
+pub const SUBLANG_SAMI_NORTHERN_FINLAND: USHORT = 0x03;
+pub const SUBLANG_SAMI_LULE_NORWAY: USHORT = 0x04;
+pub const SUBLANG_SAMI_LULE_SWEDEN: USHORT = 0x05;
+pub const SUBLANG_SAMI_SOUTHERN_NORWAY: USHORT = 0x06;
+pub const SUBLANG_SAMI_SOUTHERN_SWEDEN: USHORT = 0x07;
+pub const SUBLANG_SAMI_SKOLT_FINLAND: USHORT = 0x08;
+pub const SUBLANG_SAMI_INARI_FINLAND: USHORT = 0x09;
+pub const SUBLANG_SANSKRIT_INDIA: USHORT = 0x01;
+pub const SUBLANG_SCOTTISH_GAELIC: USHORT = 0x01;
+pub const SUBLANG_SERBIAN_BOSNIA_HERZEGOVINA_LATIN: USHORT = 0x06;
+pub const SUBLANG_SERBIAN_BOSNIA_HERZEGOVINA_CYRILLIC: USHORT = 0x07;
+pub const SUBLANG_SERBIAN_MONTENEGRO_LATIN: USHORT = 0x0b;
+pub const SUBLANG_SERBIAN_MONTENEGRO_CYRILLIC: USHORT = 0x0c;
+pub const SUBLANG_SERBIAN_SERBIA_LATIN: USHORT = 0x09;
+pub const SUBLANG_SERBIAN_SERBIA_CYRILLIC: USHORT = 0x0a;
+pub const SUBLANG_SERBIAN_CROATIA: USHORT = 0x01;
+pub const SUBLANG_SERBIAN_LATIN: USHORT = 0x02;
+pub const SUBLANG_SERBIAN_CYRILLIC: USHORT = 0x03;
+pub const SUBLANG_SINDHI_INDIA: USHORT = 0x01;
+pub const SUBLANG_SINDHI_PAKISTAN: USHORT = 0x02;
+pub const SUBLANG_SINDHI_AFGHANISTAN: USHORT = 0x02;
+pub const SUBLANG_SINHALESE_SRI_LANKA: USHORT = 0x01;
+pub const SUBLANG_SOTHO_NORTHERN_SOUTH_AFRICA: USHORT = 0x01;
+pub const SUBLANG_SLOVAK_SLOVAKIA: USHORT = 0x01;
+pub const SUBLANG_SLOVENIAN_SLOVENIA: USHORT = 0x01;
+pub const SUBLANG_SPANISH: USHORT = 0x01;
+pub const SUBLANG_SPANISH_MEXICAN: USHORT = 0x02;
+pub const SUBLANG_SPANISH_MODERN: USHORT = 0x03;
+pub const SUBLANG_SPANISH_GUATEMALA: USHORT = 0x04;
+pub const SUBLANG_SPANISH_COSTA_RICA: USHORT = 0x05;
+pub const SUBLANG_SPANISH_PANAMA: USHORT = 0x06;
+pub const SUBLANG_SPANISH_DOMINICAN_REPUBLIC: USHORT = 0x07;
+pub const SUBLANG_SPANISH_VENEZUELA: USHORT = 0x08;
+pub const SUBLANG_SPANISH_COLOMBIA: USHORT = 0x09;
+pub const SUBLANG_SPANISH_PERU: USHORT = 0x0a;
+pub const SUBLANG_SPANISH_ARGENTINA: USHORT = 0x0b;
+pub const SUBLANG_SPANISH_ECUADOR: USHORT = 0x0c;
+pub const SUBLANG_SPANISH_CHILE: USHORT = 0x0d;
+pub const SUBLANG_SPANISH_URUGUAY: USHORT = 0x0e;
+pub const SUBLANG_SPANISH_PARAGUAY: USHORT = 0x0f;
+pub const SUBLANG_SPANISH_BOLIVIA: USHORT = 0x10;
+pub const SUBLANG_SPANISH_EL_SALVADOR: USHORT = 0x11;
+pub const SUBLANG_SPANISH_HONDURAS: USHORT = 0x12;
+pub const SUBLANG_SPANISH_NICARAGUA: USHORT = 0x13;
+pub const SUBLANG_SPANISH_PUERTO_RICO: USHORT = 0x14;
+pub const SUBLANG_SPANISH_US: USHORT = 0x15;
+pub const SUBLANG_SWAHILI_KENYA: USHORT = 0x01;
+pub const SUBLANG_SWEDISH: USHORT = 0x01;
+pub const SUBLANG_SWEDISH_FINLAND: USHORT = 0x02;
+pub const SUBLANG_SYRIAC_SYRIA: USHORT = 0x01;
+pub const SUBLANG_TAJIK_TAJIKISTAN: USHORT = 0x01;
+pub const SUBLANG_TAMAZIGHT_ALGERIA_LATIN: USHORT = 0x02;
+pub const SUBLANG_TAMAZIGHT_MOROCCO_TIFINAGH: USHORT = 0x04;
+pub const SUBLANG_TAMIL_INDIA: USHORT = 0x01;
+pub const SUBLANG_TAMIL_SRI_LANKA: USHORT = 0x02;
+pub const SUBLANG_TATAR_RUSSIA: USHORT = 0x01;
+pub const SUBLANG_TELUGU_INDIA: USHORT = 0x01;
+pub const SUBLANG_THAI_THAILAND: USHORT = 0x01;
+pub const SUBLANG_TIBETAN_PRC: USHORT = 0x01;
+pub const SUBLANG_TIGRIGNA_ERITREA: USHORT = 0x02;
+pub const SUBLANG_TIGRINYA_ERITREA: USHORT = 0x02;
+pub const SUBLANG_TIGRINYA_ETHIOPIA: USHORT = 0x01;
+pub const SUBLANG_TSWANA_BOTSWANA: USHORT = 0x02;
+pub const SUBLANG_TSWANA_SOUTH_AFRICA: USHORT = 0x01;
+pub const SUBLANG_TURKISH_TURKEY: USHORT = 0x01;
+pub const SUBLANG_TURKMEN_TURKMENISTAN: USHORT = 0x01;
+pub const SUBLANG_UIGHUR_PRC: USHORT = 0x01;
+pub const SUBLANG_UKRAINIAN_UKRAINE: USHORT = 0x01;
+pub const SUBLANG_UPPER_SORBIAN_GERMANY: USHORT = 0x01;
+pub const SUBLANG_URDU_PAKISTAN: USHORT = 0x01;
+pub const SUBLANG_URDU_INDIA: USHORT = 0x02;
+pub const SUBLANG_UZBEK_LATIN: USHORT = 0x01;
+pub const SUBLANG_UZBEK_CYRILLIC: USHORT = 0x02;
+pub const SUBLANG_VALENCIAN_VALENCIA: USHORT = 0x02;
+pub const SUBLANG_VIETNAMESE_VIETNAM: USHORT = 0x01;
+pub const SUBLANG_WELSH_UNITED_KINGDOM: USHORT = 0x01;
+pub const SUBLANG_WOLOF_SENEGAL: USHORT = 0x01;
+pub const SUBLANG_XHOSA_SOUTH_AFRICA: USHORT = 0x01;
+pub const SUBLANG_YAKUT_RUSSIA: USHORT = 0x01;
+pub const SUBLANG_YI_PRC: USHORT = 0x01;
+pub const SUBLANG_YORUBA_NIGERIA: USHORT = 0x01;
+pub const SUBLANG_ZULU_SOUTH_AFRICA: USHORT = 0x01;
+pub const SORT_DEFAULT: USHORT = 0x0;
+pub const SORT_INVARIANT_MATH: USHORT = 0x1;
+pub const SORT_JAPANESE_XJIS: USHORT = 0x0;
+pub const SORT_JAPANESE_UNICODE: USHORT = 0x1;
+pub const SORT_JAPANESE_RADICALSTROKE: USHORT = 0x4;
+pub const SORT_CHINESE_BIG5: USHORT = 0x0;
+pub const SORT_CHINESE_PRCP: USHORT = 0x0;
+pub const SORT_CHINESE_UNICODE: USHORT = 0x1;
+pub const SORT_CHINESE_PRC: USHORT = 0x2;
+pub const SORT_CHINESE_BOPOMOFO: USHORT = 0x3;
+pub const SORT_CHINESE_RADICALSTROKE: USHORT = 0x4;
+pub const SORT_KOREAN_KSC: USHORT = 0x0;
+pub const SORT_KOREAN_UNICODE: USHORT = 0x1;
+pub const SORT_GERMAN_PHONE_BOOK: USHORT = 0x1;
+pub const SORT_HUNGARIAN_DEFAULT: USHORT = 0x0;
+pub const SORT_HUNGARIAN_TECHNICAL: USHORT = 0x1;
+pub const SORT_GEORGIAN_TRADITIONAL: USHORT = 0x0;
+pub const SORT_GEORGIAN_MODERN: USHORT = 0x1;
+macro_rules! MAKELANGID {
+ ($p:expr, $s:expr) => {
+ (($s as USHORT) << 10) | ($p as USHORT)
+ }
+}
+#[inline]
+pub fn MAKELANGID(p: USHORT, s: USHORT) -> LANGID { (s << 10) | p }
+#[inline]
+pub fn PRIMARYLANGID(lgid: LANGID) -> USHORT { lgid & 0x3ff }
+#[inline]
+pub fn SUBLANGID(lgid: LANGID) -> USHORT { lgid >> 10 }
+pub const NLS_VALID_LOCALE_MASK: ULONG = 0x000fffff;
+macro_rules! MAKELCID {
+ ($lgid:expr, $srtid:expr) => {
+ (($srtid as ULONG) << 16) | ($lgid as ULONG)
+ }
+}
+#[inline]
+pub fn MAKELCID(lgid: LANGID, srtid: USHORT) -> LCID {
+ ((srtid as ULONG) << 16) | (lgid as ULONG)
+}
+#[inline]
+pub fn MAKESORTLCID(lgid: LANGID, srtid: USHORT, ver: USHORT) -> LCID {
+ MAKELCID(lgid, srtid) | ((ver as ULONG) << 20)
+}
+#[inline]
+pub fn LANGIDFROMLCID(lcid: LCID) -> LANGID { lcid as LANGID }
+#[inline]
+pub fn SORTIDFROMLCID(lcid: LCID) -> USHORT { ((lcid >> 16) & 0xf) as USHORT }
+#[inline]
+pub fn SORTVERSIONFROMLCID(lcid: LCID) -> USHORT { ((lcid >> 16) & 0xf) as USHORT }
+pub const LOCALE_NAME_MAX_LENGTH: usize = 85;
+pub const LANG_SYSTEM_DEFAULT: LANGID = MAKELANGID!(LANG_NEUTRAL, SUBLANG_SYS_DEFAULT);
+pub const LANG_USER_DEFAULT: LANGID = MAKELANGID!(LANG_NEUTRAL, SUBLANG_DEFAULT);
+pub const LOCALE_SYSTEM_DEFAULT: LCID = MAKELCID!(LANG_SYSTEM_DEFAULT, SORT_DEFAULT);
+pub const LOCALE_USER_DEFAULT: LCID = MAKELCID!(LANG_USER_DEFAULT, SORT_DEFAULT);
+pub const LOCALE_CUSTOM_DEFAULT: LCID
+ = MAKELCID!(MAKELANGID!(LANG_NEUTRAL, SUBLANG_CUSTOM_DEFAULT), SORT_DEFAULT);
+pub const LOCALE_CUSTOM_UNSPECIFIED: LCID
+ = MAKELCID!(MAKELANGID!(LANG_NEUTRAL, SUBLANG_CUSTOM_UNSPECIFIED), SORT_DEFAULT);
+pub const LOCALE_CUSTOM_UI_DEFAULT: LCID
+ = MAKELCID!(MAKELANGID!(LANG_NEUTRAL, SUBLANG_UI_CUSTOM_DEFAULT), SORT_DEFAULT);
+pub const LOCALE_NEUTRAL: LCID
+ = MAKELCID!(MAKELANGID!(LANG_NEUTRAL, SUBLANG_NEUTRAL), SORT_DEFAULT);
+pub const LOCALE_INVARIANT: LCID
+ = MAKELCID!(MAKELANGID!(LANG_INVARIANT, SUBLANG_NEUTRAL), SORT_DEFAULT);
+pub const LOCALE_TRANSIENT_KEYBOARD1: LCID = 0x2000;
+pub const LOCALE_TRANSIENT_KEYBOARD2: LCID = 0x2400;
+pub const LOCALE_TRANSIENT_KEYBOARD3: LCID = 0x2800;
+pub const LOCALE_TRANSIENT_KEYBOARD4: LCID = 0x2c00;
+pub const LOCALE_UNASSIGNED_LCID: LCID = LOCALE_CUSTOM_UNSPECIFIED;
diff --git a/third_party/rust/chromium_crates_io/vendor/winapi-0.3.9/src/shared/ntstatus.rs b/third_party/rust/chromium_crates_io/vendor/winapi-0.3.9/src/shared/ntstatus.rs
new file mode 100644
index 000000000000..c369c22fc90e
--- /dev/null
+++ b/third_party/rust/chromium_crates_io/vendor/winapi-0.3.9/src/shared/ntstatus.rs
@@ -0,0 +1,2574 @@
+// Licensed under the Apache License, Version 2.0
+// or the MIT license
+// , at your option.
+// All files in the project carrying such notice may not be copied, modified, or distributed
+// except according to those terms.
+//! Constant definitions for the NTSTATUS values.
+use shared::ntdef::NTSTATUS;
+pub const STATUS_WAIT_0: NTSTATUS = 0x00000000;
+pub const FACILITY_VSM: NTSTATUS = 0x45;
+pub const FACILITY_VOLSNAP: NTSTATUS = 0x50;
+pub const FACILITY_VOLMGR: NTSTATUS = 0x38;
+pub const FACILITY_VIRTUALIZATION: NTSTATUS = 0x37;
+pub const FACILITY_VIDEO: NTSTATUS = 0x1B;
+pub const FACILITY_USB_ERROR_CODE: NTSTATUS = 0x10;
+pub const FACILITY_TRANSACTION: NTSTATUS = 0x19;
+pub const FACILITY_TPM: NTSTATUS = 0x29;
+pub const FACILITY_TERMINAL_SERVER: NTSTATUS = 0xA;
+pub const FACILITY_SXS_ERROR_CODE: NTSTATUS = 0x15;
+pub const FACILITY_NTSSPI: NTSTATUS = 0x9;
+pub const FACILITY_SPACES: NTSTATUS = 0xE7;
+pub const FACILITY_SMB: NTSTATUS = 0x5D;
+pub const FACILITY_SYSTEM_INTEGRITY: NTSTATUS = 0xE9;
+pub const FACILITY_SHARED_VHDX: NTSTATUS = 0x5C;
+pub const FACILITY_SECUREBOOT: NTSTATUS = 0x43;
+pub const FACILITY_SECURITY_CORE: NTSTATUS = 0xE8;
+pub const FACILITY_SDBUS: NTSTATUS = 0x51;
+pub const FACILITY_RTPM: NTSTATUS = 0x2A;
+pub const FACILITY_RPC_STUBS: NTSTATUS = 0x3;
+pub const FACILITY_RPC_RUNTIME: NTSTATUS = 0x2;
+pub const FACILITY_RESUME_KEY_FILTER: NTSTATUS = 0x40;
+pub const FACILITY_RDBSS: NTSTATUS = 0x41;
+pub const FACILITY_PLATFORM_MANIFEST: NTSTATUS = 0xEB;
+pub const FACILITY_NTWIN32: NTSTATUS = 0x7;
+pub const FACILITY_WIN32K_NTUSER: NTSTATUS = 0x3E;
+pub const FACILITY_WIN32K_NTGDI: NTSTATUS = 0x3F;
+pub const FACILITY_NDIS_ERROR_CODE: NTSTATUS = 0x23;
+pub const FACILTIY_MUI_ERROR_CODE: NTSTATUS = 0xB;
+pub const FACILITY_MONITOR: NTSTATUS = 0x1D;
+pub const FACILITY_MAXIMUM_VALUE: NTSTATUS = 0xEC;
+pub const FACILITY_LICENSING: NTSTATUS = 0xEA;
+pub const FACILITY_IPSEC: NTSTATUS = 0x36;
+pub const FACILITY_IO_ERROR_CODE: NTSTATUS = 0x4;
+pub const FACILITY_INTERIX: NTSTATUS = 0x99;
+pub const FACILITY_HYPERVISOR: NTSTATUS = 0x35;
+pub const FACILITY_HID_ERROR_CODE: NTSTATUS = 0x11;
+pub const FACILITY_GRAPHICS_KERNEL: NTSTATUS = 0x1E;
+pub const FACILITY_FWP_ERROR_CODE: NTSTATUS = 0x22;
+pub const FACILITY_FVE_ERROR_CODE: NTSTATUS = 0x21;
+pub const FACILITY_FIREWIRE_ERROR_CODE: NTSTATUS = 0x12;
+pub const FACILITY_FILTER_MANAGER: NTSTATUS = 0x1C;
+pub const FACILITY_DRIVER_FRAMEWORK: NTSTATUS = 0x20;
+pub const FACILITY_DEBUGGER: NTSTATUS = 0x1;
+pub const FACILITY_COMMONLOG: NTSTATUS = 0x1A;
+pub const FACILITY_CODCLASS_ERROR_CODE: NTSTATUS = 0x6;
+pub const FACILITY_CLUSTER_ERROR_CODE: NTSTATUS = 0x13;
+pub const FACILITY_NTCERT: NTSTATUS = 0x8;
+pub const FACILITY_BTH_ATT: NTSTATUS = 0x42;
+pub const FACILITY_BCD_ERROR_CODE: NTSTATUS = 0x39;
+pub const FACILITY_AUDIO_KERNEL: NTSTATUS = 0x44;
+pub const FACILITY_ACPI_ERROR_CODE: NTSTATUS = 0x14;
+pub const STATUS_SEVERITY_WARNING: NTSTATUS = 0x2;
+pub const STATUS_SEVERITY_SUCCESS: NTSTATUS = 0x0;
+pub const STATUS_SEVERITY_INFORMATIONAL: NTSTATUS = 0x1;
+pub const STATUS_SEVERITY_ERROR: NTSTATUS = 0x3;
+pub const STATUS_SUCCESS: NTSTATUS = 0x00000000;
+pub const STATUS_WAIT_1: NTSTATUS = 0x00000001;
+pub const STATUS_WAIT_2: NTSTATUS = 0x00000002;
+pub const STATUS_WAIT_3: NTSTATUS = 0x00000003;
+pub const STATUS_WAIT_63: NTSTATUS = 0x0000003F;
+pub const STATUS_ABANDONED: NTSTATUS = 0x00000080;
+pub const STATUS_ABANDONED_WAIT_0: NTSTATUS = 0x00000080;
+pub const STATUS_ABANDONED_WAIT_63: NTSTATUS = 0x000000BF;
+pub const STATUS_USER_APC: NTSTATUS = 0x000000C0;
+pub const STATUS_ALREADY_COMPLETE: NTSTATUS = 0x000000FF;
+pub const STATUS_KERNEL_APC: NTSTATUS = 0x00000100;
+pub const STATUS_ALERTED: NTSTATUS = 0x00000101;
+pub const STATUS_TIMEOUT: NTSTATUS = 0x00000102;
+pub const STATUS_PENDING: NTSTATUS = 0x00000103;
+pub const STATUS_REPARSE: NTSTATUS = 0x00000104;
+pub const STATUS_MORE_ENTRIES: NTSTATUS = 0x00000105;
+pub const STATUS_NOT_ALL_ASSIGNED: NTSTATUS = 0x00000106;
+pub const STATUS_SOME_NOT_MAPPED: NTSTATUS = 0x00000107;
+pub const STATUS_OPLOCK_BREAK_IN_PROGRESS: NTSTATUS = 0x00000108;
+pub const STATUS_VOLUME_MOUNTED: NTSTATUS = 0x00000109;
+pub const STATUS_RXACT_COMMITTED: NTSTATUS = 0x0000010A;
+pub const STATUS_NOTIFY_CLEANUP: NTSTATUS = 0x0000010B;
+pub const STATUS_NOTIFY_ENUM_DIR: NTSTATUS = 0x0000010C;
+pub const STATUS_NO_QUOTAS_FOR_ACCOUNT: NTSTATUS = 0x0000010D;
+pub const STATUS_PRIMARY_TRANSPORT_CONNECT_FAILED: NTSTATUS = 0x0000010E;
+pub const STATUS_PAGE_FAULT_TRANSITION: NTSTATUS = 0x00000110;
+pub const STATUS_PAGE_FAULT_DEMAND_ZERO: NTSTATUS = 0x00000111;
+pub const STATUS_PAGE_FAULT_COPY_ON_WRITE: NTSTATUS = 0x00000112;
+pub const STATUS_PAGE_FAULT_GUARD_PAGE: NTSTATUS = 0x00000113;
+pub const STATUS_PAGE_FAULT_PAGING_FILE: NTSTATUS = 0x00000114;
+pub const STATUS_CACHE_PAGE_LOCKED: NTSTATUS = 0x00000115;
+pub const STATUS_CRASH_DUMP: NTSTATUS = 0x00000116;
+pub const STATUS_BUFFER_ALL_ZEROS: NTSTATUS = 0x00000117;
+pub const STATUS_REPARSE_OBJECT: NTSTATUS = 0x00000118;
+pub const STATUS_RESOURCE_REQUIREMENTS_CHANGED: NTSTATUS = 0x00000119;
+pub const STATUS_TRANSLATION_COMPLETE: NTSTATUS = 0x00000120;
+pub const STATUS_DS_MEMBERSHIP_EVALUATED_LOCALLY: NTSTATUS = 0x00000121;
+pub const STATUS_NOTHING_TO_TERMINATE: NTSTATUS = 0x00000122;
+pub const STATUS_PROCESS_NOT_IN_JOB: NTSTATUS = 0x00000123;
+pub const STATUS_PROCESS_IN_JOB: NTSTATUS = 0x00000124;
+pub const STATUS_VOLSNAP_HIBERNATE_READY: NTSTATUS = 0x00000125;
+pub const STATUS_FSFILTER_OP_COMPLETED_SUCCESSFULLY: NTSTATUS = 0x00000126;
+pub const STATUS_INTERRUPT_VECTOR_ALREADY_CONNECTED: NTSTATUS = 0x00000127;
+pub const STATUS_INTERRUPT_STILL_CONNECTED: NTSTATUS = 0x00000128;
+pub const STATUS_PROCESS_CLONED: NTSTATUS = 0x00000129;
+pub const STATUS_FILE_LOCKED_WITH_ONLY_READERS: NTSTATUS = 0x0000012A;
+pub const STATUS_FILE_LOCKED_WITH_WRITERS: NTSTATUS = 0x0000012B;
+pub const STATUS_VALID_IMAGE_HASH: NTSTATUS = 0x0000012C;
+pub const STATUS_VALID_CATALOG_HASH: NTSTATUS = 0x0000012D;
+pub const STATUS_VALID_STRONG_CODE_HASH: NTSTATUS = 0x0000012E;
+pub const STATUS_GHOSTED: NTSTATUS = 0x0000012F;
+pub const STATUS_RESOURCEMANAGER_READ_ONLY: NTSTATUS = 0x00000202;
+pub const STATUS_RING_PREVIOUSLY_EMPTY: NTSTATUS = 0x00000210;
+pub const STATUS_RING_PREVIOUSLY_FULL: NTSTATUS = 0x00000211;
+pub const STATUS_RING_PREVIOUSLY_ABOVE_QUOTA: NTSTATUS = 0x00000212;
+pub const STATUS_RING_NEWLY_EMPTY: NTSTATUS = 0x00000213;
+pub const STATUS_RING_SIGNAL_OPPOSITE_ENDPOINT: NTSTATUS = 0x00000214;
+pub const STATUS_OPLOCK_SWITCHED_TO_NEW_HANDLE: NTSTATUS = 0x00000215;
+pub const STATUS_OPLOCK_HANDLE_CLOSED: NTSTATUS = 0x00000216;
+pub const STATUS_WAIT_FOR_OPLOCK: NTSTATUS = 0x00000367;
+pub const STATUS_REPARSE_GLOBAL: NTSTATUS = 0x00000368;
+pub const DBG_EXCEPTION_HANDLED: NTSTATUS = 0x00010001;
+pub const DBG_CONTINUE: NTSTATUS = 0x00010002;
+pub const STATUS_FLT_IO_COMPLETE: NTSTATUS = 0x001C0001;
+pub const STATUS_OBJECT_NAME_EXISTS: NTSTATUS = 0x40000000;
+pub const STATUS_THREAD_WAS_SUSPENDED: NTSTATUS = 0x40000001;
+pub const STATUS_WORKING_SET_LIMIT_RANGE: NTSTATUS = 0x40000002;
+pub const STATUS_IMAGE_NOT_AT_BASE: NTSTATUS = 0x40000003;
+pub const STATUS_RXACT_STATE_CREATED: NTSTATUS = 0x40000004;
+pub const STATUS_SEGMENT_NOTIFICATION: NTSTATUS = 0x40000005;
+pub const STATUS_LOCAL_USER_SESSION_KEY: NTSTATUS = 0x40000006;
+pub const STATUS_BAD_CURRENT_DIRECTORY: NTSTATUS = 0x40000007;
+pub const STATUS_SERIAL_MORE_WRITES: NTSTATUS = 0x40000008;
+pub const STATUS_REGISTRY_RECOVERED: NTSTATUS = 0x40000009;
+pub const STATUS_FT_READ_RECOVERY_FROM_BACKUP: NTSTATUS = 0x4000000A;
+pub const STATUS_FT_WRITE_RECOVERY: NTSTATUS = 0x4000000B;
+pub const STATUS_SERIAL_COUNTER_TIMEOUT: NTSTATUS = 0x4000000C;
+pub const STATUS_NULL_LM_PASSWORD: NTSTATUS = 0x4000000D;
+pub const STATUS_IMAGE_MACHINE_TYPE_MISMATCH: NTSTATUS = 0x4000000E;
+pub const STATUS_RECEIVE_PARTIAL: NTSTATUS = 0x4000000F;
+pub const STATUS_RECEIVE_EXPEDITED: NTSTATUS = 0x40000010;
+pub const STATUS_RECEIVE_PARTIAL_EXPEDITED: NTSTATUS = 0x40000011;
+pub const STATUS_EVENT_DONE: NTSTATUS = 0x40000012;
+pub const STATUS_EVENT_PENDING: NTSTATUS = 0x40000013;
+pub const STATUS_CHECKING_FILE_SYSTEM: NTSTATUS = 0x40000014;
+pub const STATUS_FATAL_APP_EXIT: NTSTATUS = 0x40000015;
+pub const STATUS_PREDEFINED_HANDLE: NTSTATUS = 0x40000016;
+pub const STATUS_WAS_UNLOCKED: NTSTATUS = 0x40000017;
+pub const STATUS_SERVICE_NOTIFICATION: NTSTATUS = 0x40000018;
+pub const STATUS_WAS_LOCKED: NTSTATUS = 0x40000019;
+pub const STATUS_LOG_HARD_ERROR: NTSTATUS = 0x4000001A;
+pub const STATUS_ALREADY_WIN32: NTSTATUS = 0x4000001B;
+pub const STATUS_WX86_UNSIMULATE: NTSTATUS = 0x4000001C;
+pub const STATUS_WX86_CONTINUE: NTSTATUS = 0x4000001D;
+pub const STATUS_WX86_SINGLE_STEP: NTSTATUS = 0x4000001E;
+pub const STATUS_WX86_BREAKPOINT: NTSTATUS = 0x4000001F;
+pub const STATUS_WX86_EXCEPTION_CONTINUE: NTSTATUS = 0x40000020;
+pub const STATUS_WX86_EXCEPTION_LASTCHANCE: NTSTATUS = 0x40000021;
+pub const STATUS_WX86_EXCEPTION_CHAIN: NTSTATUS = 0x40000022;
+pub const STATUS_IMAGE_MACHINE_TYPE_MISMATCH_EXE: NTSTATUS = 0x40000023;
+pub const STATUS_NO_YIELD_PERFORMED: NTSTATUS = 0x40000024;
+pub const STATUS_TIMER_RESUME_IGNORED: NTSTATUS = 0x40000025;
+pub const STATUS_ARBITRATION_UNHANDLED: NTSTATUS = 0x40000026;
+pub const STATUS_CARDBUS_NOT_SUPPORTED: NTSTATUS = 0x40000027;
+pub const STATUS_WX86_CREATEWX86TIB: NTSTATUS = 0x40000028;
+pub const STATUS_MP_PROCESSOR_MISMATCH: NTSTATUS = 0x40000029;
+pub const STATUS_HIBERNATED: NTSTATUS = 0x4000002A;
+pub const STATUS_RESUME_HIBERNATION: NTSTATUS = 0x4000002B;
+pub const STATUS_FIRMWARE_UPDATED: NTSTATUS = 0x4000002C;
+pub const STATUS_DRIVERS_LEAKING_LOCKED_PAGES: NTSTATUS = 0x4000002D;
+pub const STATUS_MESSAGE_RETRIEVED: NTSTATUS = 0x4000002E;
+pub const STATUS_SYSTEM_POWERSTATE_TRANSITION: NTSTATUS = 0x4000002F;
+pub const STATUS_ALPC_CHECK_COMPLETION_LIST: NTSTATUS = 0x40000030;
+pub const STATUS_SYSTEM_POWERSTATE_COMPLEX_TRANSITION: NTSTATUS = 0x40000031;
+pub const STATUS_ACCESS_AUDIT_BY_POLICY: NTSTATUS = 0x40000032;
+pub const STATUS_ABANDON_HIBERFILE: NTSTATUS = 0x40000033;
+pub const STATUS_BIZRULES_NOT_ENABLED: NTSTATUS = 0x40000034;
+pub const STATUS_FT_READ_FROM_COPY: NTSTATUS = 0x40000035;
+pub const STATUS_IMAGE_AT_DIFFERENT_BASE: NTSTATUS = 0x40000036;
+pub const DBG_REPLY_LATER: NTSTATUS = 0x40010001;
+pub const DBG_UNABLE_TO_PROVIDE_HANDLE: NTSTATUS = 0x40010002;
+pub const DBG_TERMINATE_THREAD: NTSTATUS = 0x40010003;
+pub const DBG_TERMINATE_PROCESS: NTSTATUS = 0x40010004;
+pub const DBG_CONTROL_C: NTSTATUS = 0x40010005;
+pub const DBG_PRINTEXCEPTION_C: NTSTATUS = 0x40010006;
+pub const DBG_RIPEXCEPTION: NTSTATUS = 0x40010007;
+pub const DBG_CONTROL_BREAK: NTSTATUS = 0x40010008;
+pub const DBG_COMMAND_EXCEPTION: NTSTATUS = 0x40010009;
+pub const DBG_PRINTEXCEPTION_WIDE_C: NTSTATUS = 0x4001000A;
+pub const STATUS_HEURISTIC_DAMAGE_POSSIBLE: NTSTATUS = 0x40190001;
+pub const STATUS_GUARD_PAGE_VIOLATION: NTSTATUS = 0x80000001;
+pub const STATUS_DATATYPE_MISALIGNMENT: NTSTATUS = 0x80000002;
+pub const STATUS_BREAKPOINT: NTSTATUS = 0x80000003;
+pub const STATUS_SINGLE_STEP: NTSTATUS = 0x80000004;
+pub const STATUS_BUFFER_OVERFLOW: NTSTATUS = 0x80000005;
+pub const STATUS_NO_MORE_FILES: NTSTATUS = 0x80000006;
+pub const STATUS_WAKE_SYSTEM_DEBUGGER: NTSTATUS = 0x80000007;
+pub const STATUS_HANDLES_CLOSED: NTSTATUS = 0x8000000A;
+pub const STATUS_NO_INHERITANCE: NTSTATUS = 0x8000000B;
+pub const STATUS_GUID_SUBSTITUTION_MADE: NTSTATUS = 0x8000000C;
+pub const STATUS_PARTIAL_COPY: NTSTATUS = 0x8000000D;
+pub const STATUS_DEVICE_PAPER_EMPTY: NTSTATUS = 0x8000000E;
+pub const STATUS_DEVICE_POWERED_OFF: NTSTATUS = 0x8000000F;
+pub const STATUS_DEVICE_OFF_LINE: NTSTATUS = 0x80000010;
+pub const STATUS_DEVICE_BUSY: NTSTATUS = 0x80000011;
+pub const STATUS_NO_MORE_EAS: NTSTATUS = 0x80000012;
+pub const STATUS_INVALID_EA_NAME: NTSTATUS = 0x80000013;
+pub const STATUS_EA_LIST_INCONSISTENT: NTSTATUS = 0x80000014;
+pub const STATUS_INVALID_EA_FLAG: NTSTATUS = 0x80000015;
+pub const STATUS_VERIFY_REQUIRED: NTSTATUS = 0x80000016;
+pub const STATUS_EXTRANEOUS_INFORMATION: NTSTATUS = 0x80000017;
+pub const STATUS_RXACT_COMMIT_NECESSARY: NTSTATUS = 0x80000018;
+pub const STATUS_NO_MORE_ENTRIES: NTSTATUS = 0x8000001A;
+pub const STATUS_FILEMARK_DETECTED: NTSTATUS = 0x8000001B;
+pub const STATUS_MEDIA_CHANGED: NTSTATUS = 0x8000001C;
+pub const STATUS_BUS_RESET: NTSTATUS = 0x8000001D;
+pub const STATUS_END_OF_MEDIA: NTSTATUS = 0x8000001E;
+pub const STATUS_BEGINNING_OF_MEDIA: NTSTATUS = 0x8000001F;
+pub const STATUS_MEDIA_CHECK: NTSTATUS = 0x80000020;
+pub const STATUS_SETMARK_DETECTED: NTSTATUS = 0x80000021;
+pub const STATUS_NO_DATA_DETECTED: NTSTATUS = 0x80000022;
+pub const STATUS_REDIRECTOR_HAS_OPEN_HANDLES: NTSTATUS = 0x80000023;
+pub const STATUS_SERVER_HAS_OPEN_HANDLES: NTSTATUS = 0x80000024;
+pub const STATUS_ALREADY_DISCONNECTED: NTSTATUS = 0x80000025;
+pub const STATUS_LONGJUMP: NTSTATUS = 0x80000026;
+pub const STATUS_CLEANER_CARTRIDGE_INSTALLED: NTSTATUS = 0x80000027;
+pub const STATUS_PLUGPLAY_QUERY_VETOED: NTSTATUS = 0x80000028;
+pub const STATUS_UNWIND_CONSOLIDATE: NTSTATUS = 0x80000029;
+pub const STATUS_REGISTRY_HIVE_RECOVERED: NTSTATUS = 0x8000002A;
+pub const STATUS_DLL_MIGHT_BE_INSECURE: NTSTATUS = 0x8000002B;
+pub const STATUS_DLL_MIGHT_BE_INCOMPATIBLE: NTSTATUS = 0x8000002C;
+pub const STATUS_STOPPED_ON_SYMLINK: NTSTATUS = 0x8000002D;
+pub const STATUS_CANNOT_GRANT_REQUESTED_OPLOCK: NTSTATUS = 0x8000002E;
+pub const STATUS_NO_ACE_CONDITION: NTSTATUS = 0x8000002F;
+pub const STATUS_DEVICE_SUPPORT_IN_PROGRESS: NTSTATUS = 0x80000030;
+pub const STATUS_DEVICE_POWER_CYCLE_REQUIRED: NTSTATUS = 0x80000031;
+pub const STATUS_NO_WORK_DONE: NTSTATUS = 0x80000032;
+pub const DBG_EXCEPTION_NOT_HANDLED: NTSTATUS = 0x80010001;
+pub const STATUS_CLUSTER_NODE_ALREADY_UP: NTSTATUS = 0x80130001;
+pub const STATUS_CLUSTER_NODE_ALREADY_DOWN: NTSTATUS = 0x80130002;
+pub const STATUS_CLUSTER_NETWORK_ALREADY_ONLINE: NTSTATUS = 0x80130003;
+pub const STATUS_CLUSTER_NETWORK_ALREADY_OFFLINE: NTSTATUS = 0x80130004;
+pub const STATUS_CLUSTER_NODE_ALREADY_MEMBER: NTSTATUS = 0x80130005;
+pub const STATUS_FLT_BUFFER_TOO_SMALL: NTSTATUS = 0x801C0001;
+pub const STATUS_FVE_PARTIAL_METADATA: NTSTATUS = 0x80210001;
+pub const STATUS_FVE_TRANSIENT_STATE: NTSTATUS = 0x80210002;
+pub const STATUS_CLOUD_FILE_PROPERTY_BLOB_CHECKSUM_MISMATCH: NTSTATUS = 0x8000CF00;
+pub const STATUS_UNSUCCESSFUL: NTSTATUS = 0xC0000001;
+pub const STATUS_NOT_IMPLEMENTED: NTSTATUS = 0xC0000002;
+pub const STATUS_INVALID_INFO_CLASS: NTSTATUS = 0xC0000003;
+pub const STATUS_INFO_LENGTH_MISMATCH: NTSTATUS = 0xC0000004;
+pub const STATUS_ACCESS_VIOLATION: NTSTATUS = 0xC0000005;
+pub const STATUS_IN_PAGE_ERROR: NTSTATUS = 0xC0000006;
+pub const STATUS_PAGEFILE_QUOTA: NTSTATUS = 0xC0000007;
+pub const STATUS_INVALID_HANDLE: NTSTATUS = 0xC0000008;
+pub const STATUS_BAD_INITIAL_STACK: NTSTATUS = 0xC0000009;
+pub const STATUS_BAD_INITIAL_PC: NTSTATUS = 0xC000000A;
+pub const STATUS_INVALID_CID: NTSTATUS = 0xC000000B;
+pub const STATUS_TIMER_NOT_CANCELED: NTSTATUS = 0xC000000C;
+pub const STATUS_INVALID_PARAMETER: NTSTATUS = 0xC000000D;
+pub const STATUS_NO_SUCH_DEVICE: NTSTATUS = 0xC000000E;
+pub const STATUS_NO_SUCH_FILE: NTSTATUS = 0xC000000F;
+pub const STATUS_INVALID_DEVICE_REQUEST: NTSTATUS = 0xC0000010;
+pub const STATUS_END_OF_FILE: NTSTATUS = 0xC0000011;
+pub const STATUS_WRONG_VOLUME: NTSTATUS = 0xC0000012;
+pub const STATUS_NO_MEDIA_IN_DEVICE: NTSTATUS = 0xC0000013;
+pub const STATUS_UNRECOGNIZED_MEDIA: NTSTATUS = 0xC0000014;
+pub const STATUS_NONEXISTENT_SECTOR: NTSTATUS = 0xC0000015;
+pub const STATUS_MORE_PROCESSING_REQUIRED: NTSTATUS = 0xC0000016;
+pub const STATUS_NO_MEMORY: NTSTATUS = 0xC0000017;
+pub const STATUS_CONFLICTING_ADDRESSES: NTSTATUS = 0xC0000018;
+pub const STATUS_NOT_MAPPED_VIEW: NTSTATUS = 0xC0000019;
+pub const STATUS_UNABLE_TO_FREE_VM: NTSTATUS = 0xC000001A;
+pub const STATUS_UNABLE_TO_DELETE_SECTION: NTSTATUS = 0xC000001B;
+pub const STATUS_INVALID_SYSTEM_SERVICE: NTSTATUS = 0xC000001C;
+pub const STATUS_ILLEGAL_INSTRUCTION: NTSTATUS = 0xC000001D;
+pub const STATUS_INVALID_LOCK_SEQUENCE: NTSTATUS = 0xC000001E;
+pub const STATUS_INVALID_VIEW_SIZE: NTSTATUS = 0xC000001F;
+pub const STATUS_INVALID_FILE_FOR_SECTION: NTSTATUS = 0xC0000020;
+pub const STATUS_ALREADY_COMMITTED: NTSTATUS = 0xC0000021;
+pub const STATUS_ACCESS_DENIED: NTSTATUS = 0xC0000022;
+pub const STATUS_BUFFER_TOO_SMALL: NTSTATUS = 0xC0000023;
+pub const STATUS_OBJECT_TYPE_MISMATCH: NTSTATUS = 0xC0000024;
+pub const STATUS_NONCONTINUABLE_EXCEPTION: NTSTATUS = 0xC0000025;
+pub const STATUS_INVALID_DISPOSITION: NTSTATUS = 0xC0000026;
+pub const STATUS_UNWIND: NTSTATUS = 0xC0000027;
+pub const STATUS_BAD_STACK: NTSTATUS = 0xC0000028;
+pub const STATUS_INVALID_UNWIND_TARGET: NTSTATUS = 0xC0000029;
+pub const STATUS_NOT_LOCKED: NTSTATUS = 0xC000002A;
+pub const STATUS_PARITY_ERROR: NTSTATUS = 0xC000002B;
+pub const STATUS_UNABLE_TO_DECOMMIT_VM: NTSTATUS = 0xC000002C;
+pub const STATUS_NOT_COMMITTED: NTSTATUS = 0xC000002D;
+pub const STATUS_INVALID_PORT_ATTRIBUTES: NTSTATUS = 0xC000002E;
+pub const STATUS_PORT_MESSAGE_TOO_LONG: NTSTATUS = 0xC000002F;
+pub const STATUS_INVALID_PARAMETER_MIX: NTSTATUS = 0xC0000030;
+pub const STATUS_INVALID_QUOTA_LOWER: NTSTATUS = 0xC0000031;
+pub const STATUS_DISK_CORRUPT_ERROR: NTSTATUS = 0xC0000032;
+pub const STATUS_OBJECT_NAME_INVALID: NTSTATUS = 0xC0000033;
+pub const STATUS_OBJECT_NAME_NOT_FOUND: NTSTATUS = 0xC0000034;
+pub const STATUS_OBJECT_NAME_COLLISION: NTSTATUS = 0xC0000035;
+pub const STATUS_PORT_DO_NOT_DISTURB: NTSTATUS = 0xC0000036;
+pub const STATUS_PORT_DISCONNECTED: NTSTATUS = 0xC0000037;
+pub const STATUS_DEVICE_ALREADY_ATTACHED: NTSTATUS = 0xC0000038;
+pub const STATUS_OBJECT_PATH_INVALID: NTSTATUS = 0xC0000039;
+pub const STATUS_OBJECT_PATH_NOT_FOUND: NTSTATUS = 0xC000003A;
+pub const STATUS_OBJECT_PATH_SYNTAX_BAD: NTSTATUS = 0xC000003B;
+pub const STATUS_DATA_OVERRUN: NTSTATUS = 0xC000003C;
+pub const STATUS_DATA_LATE_ERROR: NTSTATUS = 0xC000003D;
+pub const STATUS_DATA_ERROR: NTSTATUS = 0xC000003E;
+pub const STATUS_CRC_ERROR: NTSTATUS = 0xC000003F;
+pub const STATUS_SECTION_TOO_BIG: NTSTATUS = 0xC0000040;
+pub const STATUS_PORT_CONNECTION_REFUSED: NTSTATUS = 0xC0000041;
+pub const STATUS_INVALID_PORT_HANDLE: NTSTATUS = 0xC0000042;
+pub const STATUS_SHARING_VIOLATION: NTSTATUS = 0xC0000043;
+pub const STATUS_QUOTA_EXCEEDED: NTSTATUS = 0xC0000044;
+pub const STATUS_INVALID_PAGE_PROTECTION: NTSTATUS = 0xC0000045;
+pub const STATUS_MUTANT_NOT_OWNED: NTSTATUS = 0xC0000046;
+pub const STATUS_SEMAPHORE_LIMIT_EXCEEDED: NTSTATUS = 0xC0000047;
+pub const STATUS_PORT_ALREADY_SET: NTSTATUS = 0xC0000048;
+pub const STATUS_SECTION_NOT_IMAGE: NTSTATUS = 0xC0000049;
+pub const STATUS_SUSPEND_COUNT_EXCEEDED: NTSTATUS = 0xC000004A;
+pub const STATUS_THREAD_IS_TERMINATING: NTSTATUS = 0xC000004B;
+pub const STATUS_BAD_WORKING_SET_LIMIT: NTSTATUS = 0xC000004C;
+pub const STATUS_INCOMPATIBLE_FILE_MAP: NTSTATUS = 0xC000004D;
+pub const STATUS_SECTION_PROTECTION: NTSTATUS = 0xC000004E;
+pub const STATUS_EAS_NOT_SUPPORTED: NTSTATUS = 0xC000004F;
+pub const STATUS_EA_TOO_LARGE: NTSTATUS = 0xC0000050;
+pub const STATUS_NONEXISTENT_EA_ENTRY: NTSTATUS = 0xC0000051;
+pub const STATUS_NO_EAS_ON_FILE: NTSTATUS = 0xC0000052;
+pub const STATUS_EA_CORRUPT_ERROR: NTSTATUS = 0xC0000053;
+pub const STATUS_FILE_LOCK_CONFLICT: NTSTATUS = 0xC0000054;
+pub const STATUS_LOCK_NOT_GRANTED: NTSTATUS = 0xC0000055;
+pub const STATUS_DELETE_PENDING: NTSTATUS = 0xC0000056;
+pub const STATUS_CTL_FILE_NOT_SUPPORTED: NTSTATUS = 0xC0000057;
+pub const STATUS_UNKNOWN_REVISION: NTSTATUS = 0xC0000058;
+pub const STATUS_REVISION_MISMATCH: NTSTATUS = 0xC0000059;
+pub const STATUS_INVALID_OWNER: NTSTATUS = 0xC000005A;
+pub const STATUS_INVALID_PRIMARY_GROUP: NTSTATUS = 0xC000005B;
+pub const STATUS_NO_IMPERSONATION_TOKEN: NTSTATUS = 0xC000005C;
+pub const STATUS_CANT_DISABLE_MANDATORY: NTSTATUS = 0xC000005D;
+pub const STATUS_NO_LOGON_SERVERS: NTSTATUS = 0xC000005E;
+pub const STATUS_NO_SUCH_LOGON_SESSION: NTSTATUS = 0xC000005F;
+pub const STATUS_NO_SUCH_PRIVILEGE: NTSTATUS = 0xC0000060;
+pub const STATUS_PRIVILEGE_NOT_HELD: NTSTATUS = 0xC0000061;
+pub const STATUS_INVALID_ACCOUNT_NAME: NTSTATUS = 0xC0000062;
+pub const STATUS_USER_EXISTS: NTSTATUS = 0xC0000063;
+pub const STATUS_NO_SUCH_USER: NTSTATUS = 0xC0000064;
+pub const STATUS_GROUP_EXISTS: NTSTATUS = 0xC0000065;
+pub const STATUS_NO_SUCH_GROUP: NTSTATUS = 0xC0000066;
+pub const STATUS_MEMBER_IN_GROUP: NTSTATUS = 0xC0000067;
+pub const STATUS_MEMBER_NOT_IN_GROUP: NTSTATUS = 0xC0000068;
+pub const STATUS_LAST_ADMIN: NTSTATUS = 0xC0000069;
+pub const STATUS_WRONG_PASSWORD: NTSTATUS = 0xC000006A;
+pub const STATUS_ILL_FORMED_PASSWORD: NTSTATUS = 0xC000006B;
+pub const STATUS_PASSWORD_RESTRICTION: NTSTATUS = 0xC000006C;
+pub const STATUS_LOGON_FAILURE: NTSTATUS = 0xC000006D;
+pub const STATUS_ACCOUNT_RESTRICTION: NTSTATUS = 0xC000006E;
+pub const STATUS_INVALID_LOGON_HOURS: NTSTATUS = 0xC000006F;
+pub const STATUS_INVALID_WORKSTATION: NTSTATUS = 0xC0000070;
+pub const STATUS_PASSWORD_EXPIRED: NTSTATUS = 0xC0000071;
+pub const STATUS_ACCOUNT_DISABLED: NTSTATUS = 0xC0000072;
+pub const STATUS_NONE_MAPPED: NTSTATUS = 0xC0000073;
+pub const STATUS_TOO_MANY_LUIDS_REQUESTED: NTSTATUS = 0xC0000074;
+pub const STATUS_LUIDS_EXHAUSTED: NTSTATUS = 0xC0000075;
+pub const STATUS_INVALID_SUB_AUTHORITY: NTSTATUS = 0xC0000076;
+pub const STATUS_INVALID_ACL: NTSTATUS = 0xC0000077;
+pub const STATUS_INVALID_SID: NTSTATUS = 0xC0000078;
+pub const STATUS_INVALID_SECURITY_DESCR: NTSTATUS = 0xC0000079;
+pub const STATUS_PROCEDURE_NOT_FOUND: NTSTATUS = 0xC000007A;
+pub const STATUS_INVALID_IMAGE_FORMAT: NTSTATUS = 0xC000007B;
+pub const STATUS_NO_TOKEN: NTSTATUS = 0xC000007C;
+pub const STATUS_BAD_INHERITANCE_ACL: NTSTATUS = 0xC000007D;
+pub const STATUS_RANGE_NOT_LOCKED: NTSTATUS = 0xC000007E;
+pub const STATUS_DISK_FULL: NTSTATUS = 0xC000007F;
+pub const STATUS_SERVER_DISABLED: NTSTATUS = 0xC0000080;
+pub const STATUS_SERVER_NOT_DISABLED: NTSTATUS = 0xC0000081;
+pub const STATUS_TOO_MANY_GUIDS_REQUESTED: NTSTATUS = 0xC0000082;
+pub const STATUS_GUIDS_EXHAUSTED: NTSTATUS = 0xC0000083;
+pub const STATUS_INVALID_ID_AUTHORITY: NTSTATUS = 0xC0000084;
+pub const STATUS_AGENTS_EXHAUSTED: NTSTATUS = 0xC0000085;
+pub const STATUS_INVALID_VOLUME_LABEL: NTSTATUS = 0xC0000086;
+pub const STATUS_SECTION_NOT_EXTENDED: NTSTATUS = 0xC0000087;
+pub const STATUS_NOT_MAPPED_DATA: NTSTATUS = 0xC0000088;
+pub const STATUS_RESOURCE_DATA_NOT_FOUND: NTSTATUS = 0xC0000089;
+pub const STATUS_RESOURCE_TYPE_NOT_FOUND: NTSTATUS = 0xC000008A;
+pub const STATUS_RESOURCE_NAME_NOT_FOUND: NTSTATUS = 0xC000008B;
+pub const STATUS_ARRAY_BOUNDS_EXCEEDED: NTSTATUS = 0xC000008C;
+pub const STATUS_FLOAT_DENORMAL_OPERAND: NTSTATUS = 0xC000008D;
+pub const STATUS_FLOAT_DIVIDE_BY_ZERO: NTSTATUS = 0xC000008E;
+pub const STATUS_FLOAT_INEXACT_RESULT: NTSTATUS = 0xC000008F;
+pub const STATUS_FLOAT_INVALID_OPERATION: NTSTATUS = 0xC0000090;
+pub const STATUS_FLOAT_OVERFLOW: NTSTATUS = 0xC0000091;
+pub const STATUS_FLOAT_STACK_CHECK: NTSTATUS = 0xC0000092;
+pub const STATUS_FLOAT_UNDERFLOW: NTSTATUS = 0xC0000093;
+pub const STATUS_INTEGER_DIVIDE_BY_ZERO: NTSTATUS = 0xC0000094;
+pub const STATUS_INTEGER_OVERFLOW: NTSTATUS = 0xC0000095;
+pub const STATUS_PRIVILEGED_INSTRUCTION: NTSTATUS = 0xC0000096;
+pub const STATUS_TOO_MANY_PAGING_FILES: NTSTATUS = 0xC0000097;
+pub const STATUS_FILE_INVALID: NTSTATUS = 0xC0000098;
+pub const STATUS_ALLOTTED_SPACE_EXCEEDED: NTSTATUS = 0xC0000099;
+pub const STATUS_INSUFFICIENT_RESOURCES: NTSTATUS = 0xC000009A;
+pub const STATUS_DFS_EXIT_PATH_FOUND: NTSTATUS = 0xC000009B;
+pub const STATUS_DEVICE_DATA_ERROR: NTSTATUS = 0xC000009C;
+pub const STATUS_DEVICE_NOT_CONNECTED: NTSTATUS = 0xC000009D;
+pub const STATUS_DEVICE_POWER_FAILURE: NTSTATUS = 0xC000009E;
+pub const STATUS_FREE_VM_NOT_AT_BASE: NTSTATUS = 0xC000009F;
+pub const STATUS_MEMORY_NOT_ALLOCATED: NTSTATUS = 0xC00000A0;
+pub const STATUS_WORKING_SET_QUOTA: NTSTATUS = 0xC00000A1;
+pub const STATUS_MEDIA_WRITE_PROTECTED: NTSTATUS = 0xC00000A2;
+pub const STATUS_DEVICE_NOT_READY: NTSTATUS = 0xC00000A3;
+pub const STATUS_INVALID_GROUP_ATTRIBUTES: NTSTATUS = 0xC00000A4;
+pub const STATUS_BAD_IMPERSONATION_LEVEL: NTSTATUS = 0xC00000A5;
+pub const STATUS_CANT_OPEN_ANONYMOUS: NTSTATUS = 0xC00000A6;
+pub const STATUS_BAD_VALIDATION_CLASS: NTSTATUS = 0xC00000A7;
+pub const STATUS_BAD_TOKEN_TYPE: NTSTATUS = 0xC00000A8;
+pub const STATUS_BAD_MASTER_BOOT_RECORD: NTSTATUS = 0xC00000A9;
+pub const STATUS_INSTRUCTION_MISALIGNMENT: NTSTATUS = 0xC00000AA;
+pub const STATUS_INSTANCE_NOT_AVAILABLE: NTSTATUS = 0xC00000AB;
+pub const STATUS_PIPE_NOT_AVAILABLE: NTSTATUS = 0xC00000AC;
+pub const STATUS_INVALID_PIPE_STATE: NTSTATUS = 0xC00000AD;
+pub const STATUS_PIPE_BUSY: NTSTATUS = 0xC00000AE;
+pub const STATUS_ILLEGAL_FUNCTION: NTSTATUS = 0xC00000AF;
+pub const STATUS_PIPE_DISCONNECTED: NTSTATUS = 0xC00000B0;
+pub const STATUS_PIPE_CLOSING: NTSTATUS = 0xC00000B1;
+pub const STATUS_PIPE_CONNECTED: NTSTATUS = 0xC00000B2;
+pub const STATUS_PIPE_LISTENING: NTSTATUS = 0xC00000B3;
+pub const STATUS_INVALID_READ_MODE: NTSTATUS = 0xC00000B4;
+pub const STATUS_IO_TIMEOUT: NTSTATUS = 0xC00000B5;
+pub const STATUS_FILE_FORCED_CLOSED: NTSTATUS = 0xC00000B6;
+pub const STATUS_PROFILING_NOT_STARTED: NTSTATUS = 0xC00000B7;
+pub const STATUS_PROFILING_NOT_STOPPED: NTSTATUS = 0xC00000B8;
+pub const STATUS_COULD_NOT_INTERPRET: NTSTATUS = 0xC00000B9;
+pub const STATUS_FILE_IS_A_DIRECTORY: NTSTATUS = 0xC00000BA;
+pub const STATUS_NOT_SUPPORTED: NTSTATUS = 0xC00000BB;
+pub const STATUS_REMOTE_NOT_LISTENING: NTSTATUS = 0xC00000BC;
+pub const STATUS_DUPLICATE_NAME: NTSTATUS = 0xC00000BD;
+pub const STATUS_BAD_NETWORK_PATH: NTSTATUS = 0xC00000BE;
+pub const STATUS_NETWORK_BUSY: NTSTATUS = 0xC00000BF;
+pub const STATUS_DEVICE_DOES_NOT_EXIST: NTSTATUS = 0xC00000C0;
+pub const STATUS_TOO_MANY_COMMANDS: NTSTATUS = 0xC00000C1;
+pub const STATUS_ADAPTER_HARDWARE_ERROR: NTSTATUS = 0xC00000C2;
+pub const STATUS_INVALID_NETWORK_RESPONSE: NTSTATUS = 0xC00000C3;
+pub const STATUS_UNEXPECTED_NETWORK_ERROR: NTSTATUS = 0xC00000C4;
+pub const STATUS_BAD_REMOTE_ADAPTER: NTSTATUS = 0xC00000C5;
+pub const STATUS_PRINT_QUEUE_FULL: NTSTATUS = 0xC00000C6;
+pub const STATUS_NO_SPOOL_SPACE: NTSTATUS = 0xC00000C7;
+pub const STATUS_PRINT_CANCELLED: NTSTATUS = 0xC00000C8;
+pub const STATUS_NETWORK_NAME_DELETED: NTSTATUS = 0xC00000C9;
+pub const STATUS_NETWORK_ACCESS_DENIED: NTSTATUS = 0xC00000CA;
+pub const STATUS_BAD_DEVICE_TYPE: NTSTATUS = 0xC00000CB;
+pub const STATUS_BAD_NETWORK_NAME: NTSTATUS = 0xC00000CC;
+pub const STATUS_TOO_MANY_NAMES: NTSTATUS = 0xC00000CD;
+pub const STATUS_TOO_MANY_SESSIONS: NTSTATUS = 0xC00000CE;
+pub const STATUS_SHARING_PAUSED: NTSTATUS = 0xC00000CF;
+pub const STATUS_REQUEST_NOT_ACCEPTED: NTSTATUS = 0xC00000D0;
+pub const STATUS_REDIRECTOR_PAUSED: NTSTATUS = 0xC00000D1;
+pub const STATUS_NET_WRITE_FAULT: NTSTATUS = 0xC00000D2;
+pub const STATUS_PROFILING_AT_LIMIT: NTSTATUS = 0xC00000D3;
+pub const STATUS_NOT_SAME_DEVICE: NTSTATUS = 0xC00000D4;
+pub const STATUS_FILE_RENAMED: NTSTATUS = 0xC00000D5;
+pub const STATUS_VIRTUAL_CIRCUIT_CLOSED: NTSTATUS = 0xC00000D6;
+pub const STATUS_NO_SECURITY_ON_OBJECT: NTSTATUS = 0xC00000D7;
+pub const STATUS_CANT_WAIT: NTSTATUS = 0xC00000D8;
+pub const STATUS_PIPE_EMPTY: NTSTATUS = 0xC00000D9;
+pub const STATUS_CANT_ACCESS_DOMAIN_INFO: NTSTATUS = 0xC00000DA;
+pub const STATUS_CANT_TERMINATE_SELF: NTSTATUS = 0xC00000DB;
+pub const STATUS_INVALID_SERVER_STATE: NTSTATUS = 0xC00000DC;
+pub const STATUS_INVALID_DOMAIN_STATE: NTSTATUS = 0xC00000DD;
+pub const STATUS_INVALID_DOMAIN_ROLE: NTSTATUS = 0xC00000DE;
+pub const STATUS_NO_SUCH_DOMAIN: NTSTATUS = 0xC00000DF;
+pub const STATUS_DOMAIN_EXISTS: NTSTATUS = 0xC00000E0;
+pub const STATUS_DOMAIN_LIMIT_EXCEEDED: NTSTATUS = 0xC00000E1;
+pub const STATUS_OPLOCK_NOT_GRANTED: NTSTATUS = 0xC00000E2;
+pub const STATUS_INVALID_OPLOCK_PROTOCOL: NTSTATUS = 0xC00000E3;
+pub const STATUS_INTERNAL_DB_CORRUPTION: NTSTATUS = 0xC00000E4;
+pub const STATUS_INTERNAL_ERROR: NTSTATUS = 0xC00000E5;
+pub const STATUS_GENERIC_NOT_MAPPED: NTSTATUS = 0xC00000E6;
+pub const STATUS_BAD_DESCRIPTOR_FORMAT: NTSTATUS = 0xC00000E7;
+pub const STATUS_INVALID_USER_BUFFER: NTSTATUS = 0xC00000E8;
+pub const STATUS_UNEXPECTED_IO_ERROR: NTSTATUS = 0xC00000E9;
+pub const STATUS_UNEXPECTED_MM_CREATE_ERR: NTSTATUS = 0xC00000EA;
+pub const STATUS_UNEXPECTED_MM_MAP_ERROR: NTSTATUS = 0xC00000EB;
+pub const STATUS_UNEXPECTED_MM_EXTEND_ERR: NTSTATUS = 0xC00000EC;
+pub const STATUS_NOT_LOGON_PROCESS: NTSTATUS = 0xC00000ED;
+pub const STATUS_LOGON_SESSION_EXISTS: NTSTATUS = 0xC00000EE;
+pub const STATUS_INVALID_PARAMETER_1: NTSTATUS = 0xC00000EF;
+pub const STATUS_INVALID_PARAMETER_2: NTSTATUS = 0xC00000F0;
+pub const STATUS_INVALID_PARAMETER_3: NTSTATUS = 0xC00000F1;
+pub const STATUS_INVALID_PARAMETER_4: NTSTATUS = 0xC00000F2;
+pub const STATUS_INVALID_PARAMETER_5: NTSTATUS = 0xC00000F3;
+pub const STATUS_INVALID_PARAMETER_6: NTSTATUS = 0xC00000F4;
+pub const STATUS_INVALID_PARAMETER_7: NTSTATUS = 0xC00000F5;
+pub const STATUS_INVALID_PARAMETER_8: NTSTATUS = 0xC00000F6;
+pub const STATUS_INVALID_PARAMETER_9: NTSTATUS = 0xC00000F7;
+pub const STATUS_INVALID_PARAMETER_10: NTSTATUS = 0xC00000F8;
+pub const STATUS_INVALID_PARAMETER_11: NTSTATUS = 0xC00000F9;
+pub const STATUS_INVALID_PARAMETER_12: NTSTATUS = 0xC00000FA;
+pub const STATUS_REDIRECTOR_NOT_STARTED: NTSTATUS = 0xC00000FB;
+pub const STATUS_REDIRECTOR_STARTED: NTSTATUS = 0xC00000FC;
+pub const STATUS_STACK_OVERFLOW: NTSTATUS = 0xC00000FD;
+pub const STATUS_NO_SUCH_PACKAGE: NTSTATUS = 0xC00000FE;
+pub const STATUS_BAD_FUNCTION_TABLE: NTSTATUS = 0xC00000FF;
+pub const STATUS_VARIABLE_NOT_FOUND: NTSTATUS = 0xC0000100;
+pub const STATUS_DIRECTORY_NOT_EMPTY: NTSTATUS = 0xC0000101;
+pub const STATUS_FILE_CORRUPT_ERROR: NTSTATUS = 0xC0000102;
+pub const STATUS_NOT_A_DIRECTORY: NTSTATUS = 0xC0000103;
+pub const STATUS_BAD_LOGON_SESSION_STATE: NTSTATUS = 0xC0000104;
+pub const STATUS_LOGON_SESSION_COLLISION: NTSTATUS = 0xC0000105;
+pub const STATUS_NAME_TOO_LONG: NTSTATUS = 0xC0000106;
+pub const STATUS_FILES_OPEN: NTSTATUS = 0xC0000107;
+pub const STATUS_CONNECTION_IN_USE: NTSTATUS = 0xC0000108;
+pub const STATUS_MESSAGE_NOT_FOUND: NTSTATUS = 0xC0000109;
+pub const STATUS_PROCESS_IS_TERMINATING: NTSTATUS = 0xC000010A;
+pub const STATUS_INVALID_LOGON_TYPE: NTSTATUS = 0xC000010B;
+pub const STATUS_NO_GUID_TRANSLATION: NTSTATUS = 0xC000010C;
+pub const STATUS_CANNOT_IMPERSONATE: NTSTATUS = 0xC000010D;
+pub const STATUS_IMAGE_ALREADY_LOADED: NTSTATUS = 0xC000010E;
+pub const STATUS_ABIOS_NOT_PRESENT: NTSTATUS = 0xC000010F;
+pub const STATUS_ABIOS_LID_NOT_EXIST: NTSTATUS = 0xC0000110;
+pub const STATUS_ABIOS_LID_ALREADY_OWNED: NTSTATUS = 0xC0000111;
+pub const STATUS_ABIOS_NOT_LID_OWNER: NTSTATUS = 0xC0000112;
+pub const STATUS_ABIOS_INVALID_COMMAND: NTSTATUS = 0xC0000113;
+pub const STATUS_ABIOS_INVALID_LID: NTSTATUS = 0xC0000114;
+pub const STATUS_ABIOS_SELECTOR_NOT_AVAILABLE: NTSTATUS = 0xC0000115;
+pub const STATUS_ABIOS_INVALID_SELECTOR: NTSTATUS = 0xC0000116;
+pub const STATUS_NO_LDT: NTSTATUS = 0xC0000117;
+pub const STATUS_INVALID_LDT_SIZE: NTSTATUS = 0xC0000118;
+pub const STATUS_INVALID_LDT_OFFSET: NTSTATUS = 0xC0000119;
+pub const STATUS_INVALID_LDT_DESCRIPTOR: NTSTATUS = 0xC000011A;
+pub const STATUS_INVALID_IMAGE_NE_FORMAT: NTSTATUS = 0xC000011B;
+pub const STATUS_RXACT_INVALID_STATE: NTSTATUS = 0xC000011C;
+pub const STATUS_RXACT_COMMIT_FAILURE: NTSTATUS = 0xC000011D;
+pub const STATUS_MAPPED_FILE_SIZE_ZERO: NTSTATUS = 0xC000011E;
+pub const STATUS_TOO_MANY_OPENED_FILES: NTSTATUS = 0xC000011F;
+pub const STATUS_CANCELLED: NTSTATUS = 0xC0000120;
+pub const STATUS_CANNOT_DELETE: NTSTATUS = 0xC0000121;
+pub const STATUS_INVALID_COMPUTER_NAME: NTSTATUS = 0xC0000122;
+pub const STATUS_FILE_DELETED: NTSTATUS = 0xC0000123;
+pub const STATUS_SPECIAL_ACCOUNT: NTSTATUS = 0xC0000124;
+pub const STATUS_SPECIAL_GROUP: NTSTATUS = 0xC0000125;
+pub const STATUS_SPECIAL_USER: NTSTATUS = 0xC0000126;
+pub const STATUS_MEMBERS_PRIMARY_GROUP: NTSTATUS = 0xC0000127;
+pub const STATUS_FILE_CLOSED: NTSTATUS = 0xC0000128;
+pub const STATUS_TOO_MANY_THREADS: NTSTATUS = 0xC0000129;
+pub const STATUS_THREAD_NOT_IN_PROCESS: NTSTATUS = 0xC000012A;
+pub const STATUS_TOKEN_ALREADY_IN_USE: NTSTATUS = 0xC000012B;
+pub const STATUS_PAGEFILE_QUOTA_EXCEEDED: NTSTATUS = 0xC000012C;
+pub const STATUS_COMMITMENT_LIMIT: NTSTATUS = 0xC000012D;
+pub const STATUS_INVALID_IMAGE_LE_FORMAT: NTSTATUS = 0xC000012E;
+pub const STATUS_INVALID_IMAGE_NOT_MZ: NTSTATUS = 0xC000012F;
+pub const STATUS_INVALID_IMAGE_PROTECT: NTSTATUS = 0xC0000130;
+pub const STATUS_INVALID_IMAGE_WIN_16: NTSTATUS = 0xC0000131;
+pub const STATUS_LOGON_SERVER_CONFLICT: NTSTATUS = 0xC0000132;
+pub const STATUS_TIME_DIFFERENCE_AT_DC: NTSTATUS = 0xC0000133;
+pub const STATUS_SYNCHRONIZATION_REQUIRED: NTSTATUS = 0xC0000134;
+pub const STATUS_DLL_NOT_FOUND: NTSTATUS = 0xC0000135;
+pub const STATUS_OPEN_FAILED: NTSTATUS = 0xC0000136;
+pub const STATUS_IO_PRIVILEGE_FAILED: NTSTATUS = 0xC0000137;
+pub const STATUS_ORDINAL_NOT_FOUND: NTSTATUS = 0xC0000138;
+pub const STATUS_ENTRYPOINT_NOT_FOUND: NTSTATUS = 0xC0000139;
+pub const STATUS_CONTROL_C_EXIT: NTSTATUS = 0xC000013A;
+pub const STATUS_LOCAL_DISCONNECT: NTSTATUS = 0xC000013B;
+pub const STATUS_REMOTE_DISCONNECT: NTSTATUS = 0xC000013C;
+pub const STATUS_REMOTE_RESOURCES: NTSTATUS = 0xC000013D;
+pub const STATUS_LINK_FAILED: NTSTATUS = 0xC000013E;
+pub const STATUS_LINK_TIMEOUT: NTSTATUS = 0xC000013F;
+pub const STATUS_INVALID_CONNECTION: NTSTATUS = 0xC0000140;
+pub const STATUS_INVALID_ADDRESS: NTSTATUS = 0xC0000141;
+pub const STATUS_DLL_INIT_FAILED: NTSTATUS = 0xC0000142;
+pub const STATUS_MISSING_SYSTEMFILE: NTSTATUS = 0xC0000143;
+pub const STATUS_UNHANDLED_EXCEPTION: NTSTATUS = 0xC0000144;
+pub const STATUS_APP_INIT_FAILURE: NTSTATUS = 0xC0000145;
+pub const STATUS_PAGEFILE_CREATE_FAILED: NTSTATUS = 0xC0000146;
+pub const STATUS_NO_PAGEFILE: NTSTATUS = 0xC0000147;
+pub const STATUS_INVALID_LEVEL: NTSTATUS = 0xC0000148;
+pub const STATUS_WRONG_PASSWORD_CORE: NTSTATUS = 0xC0000149;
+pub const STATUS_ILLEGAL_FLOAT_CONTEXT: NTSTATUS = 0xC000014A;
+pub const STATUS_PIPE_BROKEN: NTSTATUS = 0xC000014B;
+pub const STATUS_REGISTRY_CORRUPT: NTSTATUS = 0xC000014C;
+pub const STATUS_REGISTRY_IO_FAILED: NTSTATUS = 0xC000014D;
+pub const STATUS_NO_EVENT_PAIR: NTSTATUS = 0xC000014E;
+pub const STATUS_UNRECOGNIZED_VOLUME: NTSTATUS = 0xC000014F;
+pub const STATUS_SERIAL_NO_DEVICE_INITED: NTSTATUS = 0xC0000150;
+pub const STATUS_NO_SUCH_ALIAS: NTSTATUS = 0xC0000151;
+pub const STATUS_MEMBER_NOT_IN_ALIAS: NTSTATUS = 0xC0000152;
+pub const STATUS_MEMBER_IN_ALIAS: NTSTATUS = 0xC0000153;
+pub const STATUS_ALIAS_EXISTS: NTSTATUS = 0xC0000154;
+pub const STATUS_LOGON_NOT_GRANTED: NTSTATUS = 0xC0000155;
+pub const STATUS_TOO_MANY_SECRETS: NTSTATUS = 0xC0000156;
+pub const STATUS_SECRET_TOO_LONG: NTSTATUS = 0xC0000157;
+pub const STATUS_INTERNAL_DB_ERROR: NTSTATUS = 0xC0000158;
+pub const STATUS_FULLSCREEN_MODE: NTSTATUS = 0xC0000159;
+pub const STATUS_TOO_MANY_CONTEXT_IDS: NTSTATUS = 0xC000015A;
+pub const STATUS_LOGON_TYPE_NOT_GRANTED: NTSTATUS = 0xC000015B;
+pub const STATUS_NOT_REGISTRY_FILE: NTSTATUS = 0xC000015C;
+pub const STATUS_NT_CROSS_ENCRYPTION_REQUIRED: NTSTATUS = 0xC000015D;
+pub const STATUS_DOMAIN_CTRLR_CONFIG_ERROR: NTSTATUS = 0xC000015E;
+pub const STATUS_FT_MISSING_MEMBER: NTSTATUS = 0xC000015F;
+pub const STATUS_ILL_FORMED_SERVICE_ENTRY: NTSTATUS = 0xC0000160;
+pub const STATUS_ILLEGAL_CHARACTER: NTSTATUS = 0xC0000161;
+pub const STATUS_UNMAPPABLE_CHARACTER: NTSTATUS = 0xC0000162;
+pub const STATUS_UNDEFINED_CHARACTER: NTSTATUS = 0xC0000163;
+pub const STATUS_FLOPPY_VOLUME: NTSTATUS = 0xC0000164;
+pub const STATUS_FLOPPY_ID_MARK_NOT_FOUND: NTSTATUS = 0xC0000165;
+pub const STATUS_FLOPPY_WRONG_CYLINDER: NTSTATUS = 0xC0000166;
+pub const STATUS_FLOPPY_UNKNOWN_ERROR: NTSTATUS = 0xC0000167;
+pub const STATUS_FLOPPY_BAD_REGISTERS: NTSTATUS = 0xC0000168;
+pub const STATUS_DISK_RECALIBRATE_FAILED: NTSTATUS = 0xC0000169;
+pub const STATUS_DISK_OPERATION_FAILED: NTSTATUS = 0xC000016A;
+pub const STATUS_DISK_RESET_FAILED: NTSTATUS = 0xC000016B;
+pub const STATUS_SHARED_IRQ_BUSY: NTSTATUS = 0xC000016C;
+pub const STATUS_FT_ORPHANING: NTSTATUS = 0xC000016D;
+pub const STATUS_BIOS_FAILED_TO_CONNECT_INTERRUPT: NTSTATUS = 0xC000016E;
+pub const STATUS_PARTITION_FAILURE: NTSTATUS = 0xC0000172;
+pub const STATUS_INVALID_BLOCK_LENGTH: NTSTATUS = 0xC0000173;
+pub const STATUS_DEVICE_NOT_PARTITIONED: NTSTATUS = 0xC0000174;
+pub const STATUS_UNABLE_TO_LOCK_MEDIA: NTSTATUS = 0xC0000175;
+pub const STATUS_UNABLE_TO_UNLOAD_MEDIA: NTSTATUS = 0xC0000176;
+pub const STATUS_EOM_OVERFLOW: NTSTATUS = 0xC0000177;
+pub const STATUS_NO_MEDIA: NTSTATUS = 0xC0000178;
+pub const STATUS_NO_SUCH_MEMBER: NTSTATUS = 0xC000017A;
+pub const STATUS_INVALID_MEMBER: NTSTATUS = 0xC000017B;
+pub const STATUS_KEY_DELETED: NTSTATUS = 0xC000017C;
+pub const STATUS_NO_LOG_SPACE: NTSTATUS = 0xC000017D;
+pub const STATUS_TOO_MANY_SIDS: NTSTATUS = 0xC000017E;
+pub const STATUS_LM_CROSS_ENCRYPTION_REQUIRED: NTSTATUS = 0xC000017F;
+pub const STATUS_KEY_HAS_CHILDREN: NTSTATUS = 0xC0000180;
+pub const STATUS_CHILD_MUST_BE_VOLATILE: NTSTATUS = 0xC0000181;
+pub const STATUS_DEVICE_CONFIGURATION_ERROR: NTSTATUS = 0xC0000182;
+pub const STATUS_DRIVER_INTERNAL_ERROR: NTSTATUS = 0xC0000183;
+pub const STATUS_INVALID_DEVICE_STATE: NTSTATUS = 0xC0000184;
+pub const STATUS_IO_DEVICE_ERROR: NTSTATUS = 0xC0000185;
+pub const STATUS_DEVICE_PROTOCOL_ERROR: NTSTATUS = 0xC0000186;
+pub const STATUS_BACKUP_CONTROLLER: NTSTATUS = 0xC0000187;
+pub const STATUS_LOG_FILE_FULL: NTSTATUS = 0xC0000188;
+pub const STATUS_TOO_LATE: NTSTATUS = 0xC0000189;
+pub const STATUS_NO_TRUST_LSA_SECRET: NTSTATUS = 0xC000018A;
+pub const STATUS_NO_TRUST_SAM_ACCOUNT: NTSTATUS = 0xC000018B;
+pub const STATUS_TRUSTED_DOMAIN_FAILURE: NTSTATUS = 0xC000018C;
+pub const STATUS_TRUSTED_RELATIONSHIP_FAILURE: NTSTATUS = 0xC000018D;
+pub const STATUS_EVENTLOG_FILE_CORRUPT: NTSTATUS = 0xC000018E;
+pub const STATUS_EVENTLOG_CANT_START: NTSTATUS = 0xC000018F;
+pub const STATUS_TRUST_FAILURE: NTSTATUS = 0xC0000190;
+pub const STATUS_MUTANT_LIMIT_EXCEEDED: NTSTATUS = 0xC0000191;
+pub const STATUS_NETLOGON_NOT_STARTED: NTSTATUS = 0xC0000192;
+pub const STATUS_ACCOUNT_EXPIRED: NTSTATUS = 0xC0000193;
+pub const STATUS_POSSIBLE_DEADLOCK: NTSTATUS = 0xC0000194;
+pub const STATUS_NETWORK_CREDENTIAL_CONFLICT: NTSTATUS = 0xC0000195;
+pub const STATUS_REMOTE_SESSION_LIMIT: NTSTATUS = 0xC0000196;
+pub const STATUS_EVENTLOG_FILE_CHANGED: NTSTATUS = 0xC0000197;
+pub const STATUS_NOLOGON_INTERDOMAIN_TRUST_ACCOUNT: NTSTATUS = 0xC0000198;
+pub const STATUS_NOLOGON_WORKSTATION_TRUST_ACCOUNT: NTSTATUS = 0xC0000199;
+pub const STATUS_NOLOGON_SERVER_TRUST_ACCOUNT: NTSTATUS = 0xC000019A;
+pub const STATUS_DOMAIN_TRUST_INCONSISTENT: NTSTATUS = 0xC000019B;
+pub const STATUS_FS_DRIVER_REQUIRED: NTSTATUS = 0xC000019C;
+pub const STATUS_IMAGE_ALREADY_LOADED_AS_DLL: NTSTATUS = 0xC000019D;
+pub const STATUS_INCOMPATIBLE_WITH_GLOBAL_SHORT_NAME_REGISTRY_SETTING: NTSTATUS
+ = 0xC000019E;
+pub const STATUS_SHORT_NAMES_NOT_ENABLED_ON_VOLUME: NTSTATUS = 0xC000019F;
+pub const STATUS_SECURITY_STREAM_IS_INCONSISTENT: NTSTATUS = 0xC00001A0;
+pub const STATUS_INVALID_LOCK_RANGE: NTSTATUS = 0xC00001A1;
+pub const STATUS_INVALID_ACE_CONDITION: NTSTATUS = 0xC00001A2;
+pub const STATUS_IMAGE_SUBSYSTEM_NOT_PRESENT: NTSTATUS = 0xC00001A3;
+pub const STATUS_NOTIFICATION_GUID_ALREADY_DEFINED: NTSTATUS = 0xC00001A4;
+pub const STATUS_INVALID_EXCEPTION_HANDLER: NTSTATUS = 0xC00001A5;
+pub const STATUS_DUPLICATE_PRIVILEGES: NTSTATUS = 0xC00001A6;
+pub const STATUS_NOT_ALLOWED_ON_SYSTEM_FILE: NTSTATUS = 0xC00001A7;
+pub const STATUS_REPAIR_NEEDED: NTSTATUS = 0xC00001A8;
+pub const STATUS_QUOTA_NOT_ENABLED: NTSTATUS = 0xC00001A9;
+pub const STATUS_NO_APPLICATION_PACKAGE: NTSTATUS = 0xC00001AA;
+pub const STATUS_FILE_METADATA_OPTIMIZATION_IN_PROGRESS: NTSTATUS = 0xC00001AB;
+pub const STATUS_NOT_SAME_OBJECT: NTSTATUS = 0xC00001AC;
+pub const STATUS_FATAL_MEMORY_EXHAUSTION: NTSTATUS = 0xC00001AD;
+pub const STATUS_ERROR_PROCESS_NOT_IN_JOB: NTSTATUS = 0xC00001AE;
+pub const STATUS_CPU_SET_INVALID: NTSTATUS = 0xC00001AF;
+pub const STATUS_NETWORK_OPEN_RESTRICTION: NTSTATUS = 0xC0000201;
+pub const STATUS_NO_USER_SESSION_KEY: NTSTATUS = 0xC0000202;
+pub const STATUS_USER_SESSION_DELETED: NTSTATUS = 0xC0000203;
+pub const STATUS_RESOURCE_LANG_NOT_FOUND: NTSTATUS = 0xC0000204;
+pub const STATUS_INSUFF_SERVER_RESOURCES: NTSTATUS = 0xC0000205;
+pub const STATUS_INVALID_BUFFER_SIZE: NTSTATUS = 0xC0000206;
+pub const STATUS_INVALID_ADDRESS_COMPONENT: NTSTATUS = 0xC0000207;
+pub const STATUS_INVALID_ADDRESS_WILDCARD: NTSTATUS = 0xC0000208;
+pub const STATUS_TOO_MANY_ADDRESSES: NTSTATUS = 0xC0000209;
+pub const STATUS_ADDRESS_ALREADY_EXISTS: NTSTATUS = 0xC000020A;
+pub const STATUS_ADDRESS_CLOSED: NTSTATUS = 0xC000020B;
+pub const STATUS_CONNECTION_DISCONNECTED: NTSTATUS = 0xC000020C;
+pub const STATUS_CONNECTION_RESET: NTSTATUS = 0xC000020D;
+pub const STATUS_TOO_MANY_NODES: NTSTATUS = 0xC000020E;
+pub const STATUS_TRANSACTION_ABORTED: NTSTATUS = 0xC000020F;
+pub const STATUS_TRANSACTION_TIMED_OUT: NTSTATUS = 0xC0000210;
+pub const STATUS_TRANSACTION_NO_RELEASE: NTSTATUS = 0xC0000211;
+pub const STATUS_TRANSACTION_NO_MATCH: NTSTATUS = 0xC0000212;
+pub const STATUS_TRANSACTION_RESPONDED: NTSTATUS = 0xC0000213;
+pub const STATUS_TRANSACTION_INVALID_ID: NTSTATUS = 0xC0000214;
+pub const STATUS_TRANSACTION_INVALID_TYPE: NTSTATUS = 0xC0000215;
+pub const STATUS_NOT_SERVER_SESSION: NTSTATUS = 0xC0000216;
+pub const STATUS_NOT_CLIENT_SESSION: NTSTATUS = 0xC0000217;
+pub const STATUS_CANNOT_LOAD_REGISTRY_FILE: NTSTATUS = 0xC0000218;
+pub const STATUS_DEBUG_ATTACH_FAILED: NTSTATUS = 0xC0000219;
+pub const STATUS_SYSTEM_PROCESS_TERMINATED: NTSTATUS = 0xC000021A;
+pub const STATUS_DATA_NOT_ACCEPTED: NTSTATUS = 0xC000021B;
+pub const STATUS_NO_BROWSER_SERVERS_FOUND: NTSTATUS = 0xC000021C;
+pub const STATUS_VDM_HARD_ERROR: NTSTATUS = 0xC000021D;
+pub const STATUS_DRIVER_CANCEL_TIMEOUT: NTSTATUS = 0xC000021E;
+pub const STATUS_REPLY_MESSAGE_MISMATCH: NTSTATUS = 0xC000021F;
+pub const STATUS_MAPPED_ALIGNMENT: NTSTATUS = 0xC0000220;
+pub const STATUS_IMAGE_CHECKSUM_MISMATCH: NTSTATUS = 0xC0000221;
+pub const STATUS_LOST_WRITEBEHIND_DATA: NTSTATUS = 0xC0000222;
+pub const STATUS_CLIENT_SERVER_PARAMETERS_INVALID: NTSTATUS = 0xC0000223;
+pub const STATUS_PASSWORD_MUST_CHANGE: NTSTATUS = 0xC0000224;
+pub const STATUS_NOT_FOUND: NTSTATUS = 0xC0000225;
+pub const STATUS_NOT_TINY_STREAM: NTSTATUS = 0xC0000226;
+pub const STATUS_RECOVERY_FAILURE: NTSTATUS = 0xC0000227;
+pub const STATUS_STACK_OVERFLOW_READ: NTSTATUS = 0xC0000228;
+pub const STATUS_FAIL_CHECK: NTSTATUS = 0xC0000229;
+pub const STATUS_DUPLICATE_OBJECTID: NTSTATUS = 0xC000022A;
+pub const STATUS_OBJECTID_EXISTS: NTSTATUS = 0xC000022B;
+pub const STATUS_CONVERT_TO_LARGE: NTSTATUS = 0xC000022C;
+pub const STATUS_RETRY: NTSTATUS = 0xC000022D;
+pub const STATUS_FOUND_OUT_OF_SCOPE: NTSTATUS = 0xC000022E;
+pub const STATUS_ALLOCATE_BUCKET: NTSTATUS = 0xC000022F;
+pub const STATUS_PROPSET_NOT_FOUND: NTSTATUS = 0xC0000230;
+pub const STATUS_MARSHALL_OVERFLOW: NTSTATUS = 0xC0000231;
+pub const STATUS_INVALID_VARIANT: NTSTATUS = 0xC0000232;
+pub const STATUS_DOMAIN_CONTROLLER_NOT_FOUND: NTSTATUS = 0xC0000233;
+pub const STATUS_ACCOUNT_LOCKED_OUT: NTSTATUS = 0xC0000234;
+pub const STATUS_HANDLE_NOT_CLOSABLE: NTSTATUS = 0xC0000235;
+pub const STATUS_CONNECTION_REFUSED: NTSTATUS = 0xC0000236;
+pub const STATUS_GRACEFUL_DISCONNECT: NTSTATUS = 0xC0000237;
+pub const STATUS_ADDRESS_ALREADY_ASSOCIATED: NTSTATUS = 0xC0000238;
+pub const STATUS_ADDRESS_NOT_ASSOCIATED: NTSTATUS = 0xC0000239;
+pub const STATUS_CONNECTION_INVALID: NTSTATUS = 0xC000023A;
+pub const STATUS_CONNECTION_ACTIVE: NTSTATUS = 0xC000023B;
+pub const STATUS_NETWORK_UNREACHABLE: NTSTATUS = 0xC000023C;
+pub const STATUS_HOST_UNREACHABLE: NTSTATUS = 0xC000023D;
+pub const STATUS_PROTOCOL_UNREACHABLE: NTSTATUS = 0xC000023E;
+pub const STATUS_PORT_UNREACHABLE: NTSTATUS = 0xC000023F;
+pub const STATUS_REQUEST_ABORTED: NTSTATUS = 0xC0000240;
+pub const STATUS_CONNECTION_ABORTED: NTSTATUS = 0xC0000241;
+pub const STATUS_BAD_COMPRESSION_BUFFER: NTSTATUS = 0xC0000242;
+pub const STATUS_USER_MAPPED_FILE: NTSTATUS = 0xC0000243;
+pub const STATUS_AUDIT_FAILED: NTSTATUS = 0xC0000244;
+pub const STATUS_TIMER_RESOLUTION_NOT_SET: NTSTATUS = 0xC0000245;
+pub const STATUS_CONNECTION_COUNT_LIMIT: NTSTATUS = 0xC0000246;
+pub const STATUS_LOGIN_TIME_RESTRICTION: NTSTATUS = 0xC0000247;
+pub const STATUS_LOGIN_WKSTA_RESTRICTION: NTSTATUS = 0xC0000248;
+pub const STATUS_IMAGE_MP_UP_MISMATCH: NTSTATUS = 0xC0000249;
+pub const STATUS_INSUFFICIENT_LOGON_INFO: NTSTATUS = 0xC0000250;
+pub const STATUS_BAD_DLL_ENTRYPOINT: NTSTATUS = 0xC0000251;
+pub const STATUS_BAD_SERVICE_ENTRYPOINT: NTSTATUS = 0xC0000252;
+pub const STATUS_LPC_REPLY_LOST: NTSTATUS = 0xC0000253;
+pub const STATUS_IP_ADDRESS_CONFLICT1: NTSTATUS = 0xC0000254;
+pub const STATUS_IP_ADDRESS_CONFLICT2: NTSTATUS = 0xC0000255;
+pub const STATUS_REGISTRY_QUOTA_LIMIT: NTSTATUS = 0xC0000256;
+pub const STATUS_PATH_NOT_COVERED: NTSTATUS = 0xC0000257;
+pub const STATUS_NO_CALLBACK_ACTIVE: NTSTATUS = 0xC0000258;
+pub const STATUS_LICENSE_QUOTA_EXCEEDED: NTSTATUS = 0xC0000259;
+pub const STATUS_PWD_TOO_SHORT: NTSTATUS = 0xC000025A;
+pub const STATUS_PWD_TOO_RECENT: NTSTATUS = 0xC000025B;
+pub const STATUS_PWD_HISTORY_CONFLICT: NTSTATUS = 0xC000025C;
+pub const STATUS_PLUGPLAY_NO_DEVICE: NTSTATUS = 0xC000025E;
+pub const STATUS_UNSUPPORTED_COMPRESSION: NTSTATUS = 0xC000025F;
+pub const STATUS_INVALID_HW_PROFILE: NTSTATUS = 0xC0000260;
+pub const STATUS_INVALID_PLUGPLAY_DEVICE_PATH: NTSTATUS = 0xC0000261;
+pub const STATUS_DRIVER_ORDINAL_NOT_FOUND: NTSTATUS = 0xC0000262;
+pub const STATUS_DRIVER_ENTRYPOINT_NOT_FOUND: NTSTATUS = 0xC0000263;
+pub const STATUS_RESOURCE_NOT_OWNED: NTSTATUS = 0xC0000264;
+pub const STATUS_TOO_MANY_LINKS: NTSTATUS = 0xC0000265;
+pub const STATUS_QUOTA_LIST_INCONSISTENT: NTSTATUS = 0xC0000266;
+pub const STATUS_FILE_IS_OFFLINE: NTSTATUS = 0xC0000267;
+pub const STATUS_EVALUATION_EXPIRATION: NTSTATUS = 0xC0000268;
+pub const STATUS_ILLEGAL_DLL_RELOCATION: NTSTATUS = 0xC0000269;
+pub const STATUS_LICENSE_VIOLATION: NTSTATUS = 0xC000026A;
+pub const STATUS_DLL_INIT_FAILED_LOGOFF: NTSTATUS = 0xC000026B;
+pub const STATUS_DRIVER_UNABLE_TO_LOAD: NTSTATUS = 0xC000026C;
+pub const STATUS_DFS_UNAVAILABLE: NTSTATUS = 0xC000026D;
+pub const STATUS_VOLUME_DISMOUNTED: NTSTATUS = 0xC000026E;
+pub const STATUS_WX86_INTERNAL_ERROR: NTSTATUS = 0xC000026F;
+pub const STATUS_WX86_FLOAT_STACK_CHECK: NTSTATUS = 0xC0000270;
+pub const STATUS_VALIDATE_CONTINUE: NTSTATUS = 0xC0000271;
+pub const STATUS_NO_MATCH: NTSTATUS = 0xC0000272;
+pub const STATUS_NO_MORE_MATCHES: NTSTATUS = 0xC0000273;
+pub const STATUS_NOT_A_REPARSE_POINT: NTSTATUS = 0xC0000275;
+pub const STATUS_IO_REPARSE_TAG_INVALID: NTSTATUS = 0xC0000276;
+pub const STATUS_IO_REPARSE_TAG_MISMATCH: NTSTATUS = 0xC0000277;
+pub const STATUS_IO_REPARSE_DATA_INVALID: NTSTATUS = 0xC0000278;
+pub const STATUS_IO_REPARSE_TAG_NOT_HANDLED: NTSTATUS = 0xC0000279;
+pub const STATUS_PWD_TOO_LONG: NTSTATUS = 0xC000027A;
+pub const STATUS_STOWED_EXCEPTION: NTSTATUS = 0xC000027B;
+pub const STATUS_REPARSE_POINT_NOT_RESOLVED: NTSTATUS = 0xC0000280;
+pub const STATUS_DIRECTORY_IS_A_REPARSE_POINT: NTSTATUS = 0xC0000281;
+pub const STATUS_RANGE_LIST_CONFLICT: NTSTATUS = 0xC0000282;
+pub const STATUS_SOURCE_ELEMENT_EMPTY: NTSTATUS = 0xC0000283;
+pub const STATUS_DESTINATION_ELEMENT_FULL: NTSTATUS = 0xC0000284;
+pub const STATUS_ILLEGAL_ELEMENT_ADDRESS: NTSTATUS = 0xC0000285;
+pub const STATUS_MAGAZINE_NOT_PRESENT: NTSTATUS = 0xC0000286;
+pub const STATUS_REINITIALIZATION_NEEDED: NTSTATUS = 0xC0000287;
+pub const STATUS_DEVICE_REQUIRES_CLEANING: NTSTATUS = 0x80000288;
+pub const STATUS_DEVICE_DOOR_OPEN: NTSTATUS = 0x80000289;
+pub const STATUS_ENCRYPTION_FAILED: NTSTATUS = 0xC000028A;
+pub const STATUS_DECRYPTION_FAILED: NTSTATUS = 0xC000028B;
+pub const STATUS_RANGE_NOT_FOUND: NTSTATUS = 0xC000028C;
+pub const STATUS_NO_RECOVERY_POLICY: NTSTATUS = 0xC000028D;
+pub const STATUS_NO_EFS: NTSTATUS = 0xC000028E;
+pub const STATUS_WRONG_EFS: NTSTATUS = 0xC000028F;
+pub const STATUS_NO_USER_KEYS: NTSTATUS = 0xC0000290;
+pub const STATUS_FILE_NOT_ENCRYPTED: NTSTATUS = 0xC0000291;
+pub const STATUS_NOT_EXPORT_FORMAT: NTSTATUS = 0xC0000292;
+pub const STATUS_FILE_ENCRYPTED: NTSTATUS = 0xC0000293;
+pub const STATUS_WAKE_SYSTEM: NTSTATUS = 0x40000294;
+pub const STATUS_WMI_GUID_NOT_FOUND: NTSTATUS = 0xC0000295;
+pub const STATUS_WMI_INSTANCE_NOT_FOUND: NTSTATUS = 0xC0000296;
+pub const STATUS_WMI_ITEMID_NOT_FOUND: NTSTATUS = 0xC0000297;
+pub const STATUS_WMI_TRY_AGAIN: NTSTATUS = 0xC0000298;
+pub const STATUS_SHARED_POLICY: NTSTATUS = 0xC0000299;
+pub const STATUS_POLICY_OBJECT_NOT_FOUND: NTSTATUS = 0xC000029A;
+pub const STATUS_POLICY_ONLY_IN_DS: NTSTATUS = 0xC000029B;
+pub const STATUS_VOLUME_NOT_UPGRADED: NTSTATUS = 0xC000029C;
+pub const STATUS_REMOTE_STORAGE_NOT_ACTIVE: NTSTATUS = 0xC000029D;
+pub const STATUS_REMOTE_STORAGE_MEDIA_ERROR: NTSTATUS = 0xC000029E;
+pub const STATUS_NO_TRACKING_SERVICE: NTSTATUS = 0xC000029F;
+pub const STATUS_SERVER_SID_MISMATCH: NTSTATUS = 0xC00002A0;
+pub const STATUS_DS_NO_ATTRIBUTE_OR_VALUE: NTSTATUS = 0xC00002A1;
+pub const STATUS_DS_INVALID_ATTRIBUTE_SYNTAX: NTSTATUS = 0xC00002A2;
+pub const STATUS_DS_ATTRIBUTE_TYPE_UNDEFINED: NTSTATUS = 0xC00002A3;
+pub const STATUS_DS_ATTRIBUTE_OR_VALUE_EXISTS: NTSTATUS = 0xC00002A4;
+pub const STATUS_DS_BUSY: NTSTATUS = 0xC00002A5;
+pub const STATUS_DS_UNAVAILABLE: NTSTATUS = 0xC00002A6;
+pub const STATUS_DS_NO_RIDS_ALLOCATED: NTSTATUS = 0xC00002A7;
+pub const STATUS_DS_NO_MORE_RIDS: NTSTATUS = 0xC00002A8;
+pub const STATUS_DS_INCORRECT_ROLE_OWNER: NTSTATUS = 0xC00002A9;
+pub const STATUS_DS_RIDMGR_INIT_ERROR: NTSTATUS = 0xC00002AA;
+pub const STATUS_DS_OBJ_CLASS_VIOLATION: NTSTATUS = 0xC00002AB;
+pub const STATUS_DS_CANT_ON_NON_LEAF: NTSTATUS = 0xC00002AC;
+pub const STATUS_DS_CANT_ON_RDN: NTSTATUS = 0xC00002AD;
+pub const STATUS_DS_CANT_MOD_OBJ_CLASS: NTSTATUS = 0xC00002AE;
+pub const STATUS_DS_CROSS_DOM_MOVE_FAILED: NTSTATUS = 0xC00002AF;
+pub const STATUS_DS_GC_NOT_AVAILABLE: NTSTATUS = 0xC00002B0;
+pub const STATUS_DIRECTORY_SERVICE_REQUIRED: NTSTATUS = 0xC00002B1;
+pub const STATUS_REPARSE_ATTRIBUTE_CONFLICT: NTSTATUS = 0xC00002B2;
+pub const STATUS_CANT_ENABLE_DENY_ONLY: NTSTATUS = 0xC00002B3;
+pub const STATUS_FLOAT_MULTIPLE_FAULTS: NTSTATUS = 0xC00002B4;
+pub const STATUS_FLOAT_MULTIPLE_TRAPS: NTSTATUS = 0xC00002B5;
+pub const STATUS_DEVICE_REMOVED: NTSTATUS = 0xC00002B6;
+pub const STATUS_JOURNAL_DELETE_IN_PROGRESS: NTSTATUS = 0xC00002B7;
+pub const STATUS_JOURNAL_NOT_ACTIVE: NTSTATUS = 0xC00002B8;
+pub const STATUS_NOINTERFACE: NTSTATUS = 0xC00002B9;
+pub const STATUS_DS_RIDMGR_DISABLED: NTSTATUS = 0xC00002BA;
+pub const STATUS_DS_ADMIN_LIMIT_EXCEEDED: NTSTATUS = 0xC00002C1;
+pub const STATUS_DRIVER_FAILED_SLEEP: NTSTATUS = 0xC00002C2;
+pub const STATUS_MUTUAL_AUTHENTICATION_FAILED: NTSTATUS = 0xC00002C3;
+pub const STATUS_CORRUPT_SYSTEM_FILE: NTSTATUS = 0xC00002C4;
+pub const STATUS_DATATYPE_MISALIGNMENT_ERROR: NTSTATUS = 0xC00002C5;
+pub const STATUS_WMI_READ_ONLY: NTSTATUS = 0xC00002C6;
+pub const STATUS_WMI_SET_FAILURE: NTSTATUS = 0xC00002C7;
+pub const STATUS_COMMITMENT_MINIMUM: NTSTATUS = 0xC00002C8;
+pub const STATUS_REG_NAT_CONSUMPTION: NTSTATUS = 0xC00002C9;
+pub const STATUS_TRANSPORT_FULL: NTSTATUS = 0xC00002CA;
+pub const STATUS_DS_SAM_INIT_FAILURE: NTSTATUS = 0xC00002CB;
+pub const STATUS_ONLY_IF_CONNECTED: NTSTATUS = 0xC00002CC;
+pub const STATUS_DS_SENSITIVE_GROUP_VIOLATION: NTSTATUS = 0xC00002CD;
+pub const STATUS_PNP_RESTART_ENUMERATION: NTSTATUS = 0xC00002CE;
+pub const STATUS_JOURNAL_ENTRY_DELETED: NTSTATUS = 0xC00002CF;
+pub const STATUS_DS_CANT_MOD_PRIMARYGROUPID: NTSTATUS = 0xC00002D0;
+pub const STATUS_SYSTEM_IMAGE_BAD_SIGNATURE: NTSTATUS = 0xC00002D1;
+pub const STATUS_PNP_REBOOT_REQUIRED: NTSTATUS = 0xC00002D2;
+pub const STATUS_POWER_STATE_INVALID: NTSTATUS = 0xC00002D3;
+pub const STATUS_DS_INVALID_GROUP_TYPE: NTSTATUS = 0xC00002D4;
+pub const STATUS_DS_NO_NEST_GLOBALGROUP_IN_MIXEDDOMAIN: NTSTATUS = 0xC00002D5;
+pub const STATUS_DS_NO_NEST_LOCALGROUP_IN_MIXEDDOMAIN: NTSTATUS = 0xC00002D6;
+pub const STATUS_DS_GLOBAL_CANT_HAVE_LOCAL_MEMBER: NTSTATUS = 0xC00002D7;
+pub const STATUS_DS_GLOBAL_CANT_HAVE_UNIVERSAL_MEMBER: NTSTATUS = 0xC00002D8;
+pub const STATUS_DS_UNIVERSAL_CANT_HAVE_LOCAL_MEMBER: NTSTATUS = 0xC00002D9;
+pub const STATUS_DS_GLOBAL_CANT_HAVE_CROSSDOMAIN_MEMBER: NTSTATUS = 0xC00002DA;
+pub const STATUS_DS_LOCAL_CANT_HAVE_CROSSDOMAIN_LOCAL_MEMBER: NTSTATUS = 0xC00002DB;
+pub const STATUS_DS_HAVE_PRIMARY_MEMBERS: NTSTATUS = 0xC00002DC;
+pub const STATUS_WMI_NOT_SUPPORTED: NTSTATUS = 0xC00002DD;
+pub const STATUS_INSUFFICIENT_POWER: NTSTATUS = 0xC00002DE;
+pub const STATUS_SAM_NEED_BOOTKEY_PASSWORD: NTSTATUS = 0xC00002DF;
+pub const STATUS_SAM_NEED_BOOTKEY_FLOPPY: NTSTATUS = 0xC00002E0;
+pub const STATUS_DS_CANT_START: NTSTATUS = 0xC00002E1;
+pub const STATUS_DS_INIT_FAILURE: NTSTATUS = 0xC00002E2;
+pub const STATUS_SAM_INIT_FAILURE: NTSTATUS = 0xC00002E3;
+pub const STATUS_DS_GC_REQUIRED: NTSTATUS = 0xC00002E4;
+pub const STATUS_DS_LOCAL_MEMBER_OF_LOCAL_ONLY: NTSTATUS = 0xC00002E5;
+pub const STATUS_DS_NO_FPO_IN_UNIVERSAL_GROUPS: NTSTATUS = 0xC00002E6;
+pub const STATUS_DS_MACHINE_ACCOUNT_QUOTA_EXCEEDED: NTSTATUS = 0xC00002E7;
+pub const STATUS_MULTIPLE_FAULT_VIOLATION: NTSTATUS = 0xC00002E8;
+pub const STATUS_CURRENT_DOMAIN_NOT_ALLOWED: NTSTATUS = 0xC00002E9;
+pub const STATUS_CANNOT_MAKE: NTSTATUS = 0xC00002EA;
+pub const STATUS_SYSTEM_SHUTDOWN: NTSTATUS = 0xC00002EB;
+pub const STATUS_DS_INIT_FAILURE_CONSOLE: NTSTATUS = 0xC00002EC;
+pub const STATUS_DS_SAM_INIT_FAILURE_CONSOLE: NTSTATUS = 0xC00002ED;
+pub const STATUS_UNFINISHED_CONTEXT_DELETED: NTSTATUS = 0xC00002EE;
+pub const STATUS_NO_TGT_REPLY: NTSTATUS = 0xC00002EF;
+pub const STATUS_OBJECTID_NOT_FOUND: NTSTATUS = 0xC00002F0;
+pub const STATUS_NO_IP_ADDRESSES: NTSTATUS = 0xC00002F1;
+pub const STATUS_WRONG_CREDENTIAL_HANDLE: NTSTATUS = 0xC00002F2;
+pub const STATUS_CRYPTO_SYSTEM_INVALID: NTSTATUS = 0xC00002F3;
+pub const STATUS_MAX_REFERRALS_EXCEEDED: NTSTATUS = 0xC00002F4;
+pub const STATUS_MUST_BE_KDC: NTSTATUS = 0xC00002F5;
+pub const STATUS_STRONG_CRYPTO_NOT_SUPPORTED: NTSTATUS = 0xC00002F6;
+pub const STATUS_TOO_MANY_PRINCIPALS: NTSTATUS = 0xC00002F7;
+pub const STATUS_NO_PA_DATA: NTSTATUS = 0xC00002F8;
+pub const STATUS_PKINIT_NAME_MISMATCH: NTSTATUS = 0xC00002F9;
+pub const STATUS_SMARTCARD_LOGON_REQUIRED: NTSTATUS = 0xC00002FA;
+pub const STATUS_KDC_INVALID_REQUEST: NTSTATUS = 0xC00002FB;
+pub const STATUS_KDC_UNABLE_TO_REFER: NTSTATUS = 0xC00002FC;
+pub const STATUS_KDC_UNKNOWN_ETYPE: NTSTATUS = 0xC00002FD;
+pub const STATUS_SHUTDOWN_IN_PROGRESS: NTSTATUS = 0xC00002FE;
+pub const STATUS_SERVER_SHUTDOWN_IN_PROGRESS: NTSTATUS = 0xC00002FF;
+pub const STATUS_NOT_SUPPORTED_ON_SBS: NTSTATUS = 0xC0000300;
+pub const STATUS_WMI_GUID_DISCONNECTED: NTSTATUS = 0xC0000301;
+pub const STATUS_WMI_ALREADY_DISABLED: NTSTATUS = 0xC0000302;
+pub const STATUS_WMI_ALREADY_ENABLED: NTSTATUS = 0xC0000303;
+pub const STATUS_MFT_TOO_FRAGMENTED: NTSTATUS = 0xC0000304;
+pub const STATUS_COPY_PROTECTION_FAILURE: NTSTATUS = 0xC0000305;
+pub const STATUS_CSS_AUTHENTICATION_FAILURE: NTSTATUS = 0xC0000306;
+pub const STATUS_CSS_KEY_NOT_PRESENT: NTSTATUS = 0xC0000307;
+pub const STATUS_CSS_KEY_NOT_ESTABLISHED: NTSTATUS = 0xC0000308;
+pub const STATUS_CSS_SCRAMBLED_SECTOR: NTSTATUS = 0xC0000309;
+pub const STATUS_CSS_REGION_MISMATCH: NTSTATUS = 0xC000030A;
+pub const STATUS_CSS_RESETS_EXHAUSTED: NTSTATUS = 0xC000030B;
+pub const STATUS_PASSWORD_CHANGE_REQUIRED: NTSTATUS = 0xC000030C;
+pub const STATUS_PKINIT_FAILURE: NTSTATUS = 0xC0000320;
+pub const STATUS_SMARTCARD_SUBSYSTEM_FAILURE: NTSTATUS = 0xC0000321;
+pub const STATUS_NO_KERB_KEY: NTSTATUS = 0xC0000322;
+pub const STATUS_HOST_DOWN: NTSTATUS = 0xC0000350;
+pub const STATUS_UNSUPPORTED_PREAUTH: NTSTATUS = 0xC0000351;
+pub const STATUS_EFS_ALG_BLOB_TOO_BIG: NTSTATUS = 0xC0000352;
+pub const STATUS_PORT_NOT_SET: NTSTATUS = 0xC0000353;
+pub const STATUS_DEBUGGER_INACTIVE: NTSTATUS = 0xC0000354;
+pub const STATUS_DS_VERSION_CHECK_FAILURE: NTSTATUS = 0xC0000355;
+pub const STATUS_AUDITING_DISABLED: NTSTATUS = 0xC0000356;
+pub const STATUS_PRENT4_MACHINE_ACCOUNT: NTSTATUS = 0xC0000357;
+pub const STATUS_DS_AG_CANT_HAVE_UNIVERSAL_MEMBER: NTSTATUS = 0xC0000358;
+pub const STATUS_INVALID_IMAGE_WIN_32: NTSTATUS = 0xC0000359;
+pub const STATUS_INVALID_IMAGE_WIN_64: NTSTATUS = 0xC000035A;
+pub const STATUS_BAD_BINDINGS: NTSTATUS = 0xC000035B;
+pub const STATUS_NETWORK_SESSION_EXPIRED: NTSTATUS = 0xC000035C;
+pub const STATUS_APPHELP_BLOCK: NTSTATUS = 0xC000035D;
+pub const STATUS_ALL_SIDS_FILTERED: NTSTATUS = 0xC000035E;
+pub const STATUS_NOT_SAFE_MODE_DRIVER: NTSTATUS = 0xC000035F;
+pub const STATUS_ACCESS_DISABLED_BY_POLICY_DEFAULT: NTSTATUS = 0xC0000361;
+pub const STATUS_ACCESS_DISABLED_BY_POLICY_PATH: NTSTATUS = 0xC0000362;
+pub const STATUS_ACCESS_DISABLED_BY_POLICY_PUBLISHER: NTSTATUS = 0xC0000363;
+pub const STATUS_ACCESS_DISABLED_BY_POLICY_OTHER: NTSTATUS = 0xC0000364;
+pub const STATUS_FAILED_DRIVER_ENTRY: NTSTATUS = 0xC0000365;
+pub const STATUS_DEVICE_ENUMERATION_ERROR: NTSTATUS = 0xC0000366;
+pub const STATUS_MOUNT_POINT_NOT_RESOLVED: NTSTATUS = 0xC0000368;
+pub const STATUS_INVALID_DEVICE_OBJECT_PARAMETER: NTSTATUS = 0xC0000369;
+pub const STATUS_MCA_OCCURED: NTSTATUS = 0xC000036A;
+pub const STATUS_DRIVER_BLOCKED_CRITICAL: NTSTATUS = 0xC000036B;
+pub const STATUS_DRIVER_BLOCKED: NTSTATUS = 0xC000036C;
+pub const STATUS_DRIVER_DATABASE_ERROR: NTSTATUS = 0xC000036D;
+pub const STATUS_SYSTEM_HIVE_TOO_LARGE: NTSTATUS = 0xC000036E;
+pub const STATUS_INVALID_IMPORT_OF_NON_DLL: NTSTATUS = 0xC000036F;
+pub const STATUS_DS_SHUTTING_DOWN: NTSTATUS = 0x40000370;
+pub const STATUS_NO_SECRETS: NTSTATUS = 0xC0000371;
+pub const STATUS_ACCESS_DISABLED_NO_SAFER_UI_BY_POLICY: NTSTATUS = 0xC0000372;
+pub const STATUS_FAILED_STACK_SWITCH: NTSTATUS = 0xC0000373;
+pub const STATUS_HEAP_CORRUPTION: NTSTATUS = 0xC0000374;
+pub const STATUS_SMARTCARD_WRONG_PIN: NTSTATUS = 0xC0000380;
+pub const STATUS_SMARTCARD_CARD_BLOCKED: NTSTATUS = 0xC0000381;
+pub const STATUS_SMARTCARD_CARD_NOT_AUTHENTICATED: NTSTATUS = 0xC0000382;
+pub const STATUS_SMARTCARD_NO_CARD: NTSTATUS = 0xC0000383;
+pub const STATUS_SMARTCARD_NO_KEY_CONTAINER: NTSTATUS = 0xC0000384;
+pub const STATUS_SMARTCARD_NO_CERTIFICATE: NTSTATUS = 0xC0000385;
+pub const STATUS_SMARTCARD_NO_KEYSET: NTSTATUS = 0xC0000386;
+pub const STATUS_SMARTCARD_IO_ERROR: NTSTATUS = 0xC0000387;
+pub const STATUS_DOWNGRADE_DETECTED: NTSTATUS = 0xC0000388;
+pub const STATUS_SMARTCARD_CERT_REVOKED: NTSTATUS = 0xC0000389;
+pub const STATUS_ISSUING_CA_UNTRUSTED: NTSTATUS = 0xC000038A;
+pub const STATUS_REVOCATION_OFFLINE_C: NTSTATUS = 0xC000038B;
+pub const STATUS_PKINIT_CLIENT_FAILURE: NTSTATUS = 0xC000038C;
+pub const STATUS_SMARTCARD_CERT_EXPIRED: NTSTATUS = 0xC000038D;
+pub const STATUS_DRIVER_FAILED_PRIOR_UNLOAD: NTSTATUS = 0xC000038E;
+pub const STATUS_SMARTCARD_SILENT_CONTEXT: NTSTATUS = 0xC000038F;
+pub const STATUS_PER_USER_TRUST_QUOTA_EXCEEDED: NTSTATUS = 0xC0000401;
+pub const STATUS_ALL_USER_TRUST_QUOTA_EXCEEDED: NTSTATUS = 0xC0000402;
+pub const STATUS_USER_DELETE_TRUST_QUOTA_EXCEEDED: NTSTATUS = 0xC0000403;
+pub const STATUS_DS_NAME_NOT_UNIQUE: NTSTATUS = 0xC0000404;
+pub const STATUS_DS_DUPLICATE_ID_FOUND: NTSTATUS = 0xC0000405;
+pub const STATUS_DS_GROUP_CONVERSION_ERROR: NTSTATUS = 0xC0000406;
+pub const STATUS_VOLSNAP_PREPARE_HIBERNATE: NTSTATUS = 0xC0000407;
+pub const STATUS_USER2USER_REQUIRED: NTSTATUS = 0xC0000408;
+pub const STATUS_STACK_BUFFER_OVERRUN: NTSTATUS = 0xC0000409;
+pub const STATUS_NO_S4U_PROT_SUPPORT: NTSTATUS = 0xC000040A;
+pub const STATUS_CROSSREALM_DELEGATION_FAILURE: NTSTATUS = 0xC000040B;
+pub const STATUS_REVOCATION_OFFLINE_KDC: NTSTATUS = 0xC000040C;
+pub const STATUS_ISSUING_CA_UNTRUSTED_KDC: NTSTATUS = 0xC000040D;
+pub const STATUS_KDC_CERT_EXPIRED: NTSTATUS = 0xC000040E;
+pub const STATUS_KDC_CERT_REVOKED: NTSTATUS = 0xC000040F;
+pub const STATUS_PARAMETER_QUOTA_EXCEEDED: NTSTATUS = 0xC0000410;
+pub const STATUS_HIBERNATION_FAILURE: NTSTATUS = 0xC0000411;
+pub const STATUS_DELAY_LOAD_FAILED: NTSTATUS = 0xC0000412;
+pub const STATUS_AUTHENTICATION_FIREWALL_FAILED: NTSTATUS = 0xC0000413;
+pub const STATUS_VDM_DISALLOWED: NTSTATUS = 0xC0000414;
+pub const STATUS_HUNG_DISPLAY_DRIVER_THREAD: NTSTATUS = 0xC0000415;
+pub const STATUS_INSUFFICIENT_RESOURCE_FOR_SPECIFIED_SHARED_SECTION_SIZE: NTSTATUS
+ = 0xC0000416;
+pub const STATUS_INVALID_CRUNTIME_PARAMETER: NTSTATUS = 0xC0000417;
+pub const STATUS_NTLM_BLOCKED: NTSTATUS = 0xC0000418;
+pub const STATUS_DS_SRC_SID_EXISTS_IN_FOREST: NTSTATUS = 0xC0000419;
+pub const STATUS_DS_DOMAIN_NAME_EXISTS_IN_FOREST: NTSTATUS = 0xC000041A;
+pub const STATUS_DS_FLAT_NAME_EXISTS_IN_FOREST: NTSTATUS = 0xC000041B;
+pub const STATUS_INVALID_USER_PRINCIPAL_NAME: NTSTATUS = 0xC000041C;
+pub const STATUS_FATAL_USER_CALLBACK_EXCEPTION: NTSTATUS = 0xC000041D;
+pub const STATUS_ASSERTION_FAILURE: NTSTATUS = 0xC0000420;
+pub const STATUS_VERIFIER_STOP: NTSTATUS = 0xC0000421;
+pub const STATUS_CALLBACK_POP_STACK: NTSTATUS = 0xC0000423;
+pub const STATUS_INCOMPATIBLE_DRIVER_BLOCKED: NTSTATUS = 0xC0000424;
+pub const STATUS_HIVE_UNLOADED: NTSTATUS = 0xC0000425;
+pub const STATUS_COMPRESSION_DISABLED: NTSTATUS = 0xC0000426;
+pub const STATUS_FILE_SYSTEM_LIMITATION: NTSTATUS = 0xC0000427;
+pub const STATUS_INVALID_IMAGE_HASH: NTSTATUS = 0xC0000428;
+pub const STATUS_NOT_CAPABLE: NTSTATUS = 0xC0000429;
+pub const STATUS_REQUEST_OUT_OF_SEQUENCE: NTSTATUS = 0xC000042A;
+pub const STATUS_IMPLEMENTATION_LIMIT: NTSTATUS = 0xC000042B;
+pub const STATUS_ELEVATION_REQUIRED: NTSTATUS = 0xC000042C;
+pub const STATUS_NO_SECURITY_CONTEXT: NTSTATUS = 0xC000042D;
+pub const STATUS_PKU2U_CERT_FAILURE: NTSTATUS = 0xC000042F;
+pub const STATUS_BEYOND_VDL: NTSTATUS = 0xC0000432;
+pub const STATUS_ENCOUNTERED_WRITE_IN_PROGRESS: NTSTATUS = 0xC0000433;
+pub const STATUS_PTE_CHANGED: NTSTATUS = 0xC0000434;
+pub const STATUS_PURGE_FAILED: NTSTATUS = 0xC0000435;
+pub const STATUS_CRED_REQUIRES_CONFIRMATION: NTSTATUS = 0xC0000440;
+pub const STATUS_CS_ENCRYPTION_INVALID_SERVER_RESPONSE: NTSTATUS = 0xC0000441;
+pub const STATUS_CS_ENCRYPTION_UNSUPPORTED_SERVER: NTSTATUS = 0xC0000442;
+pub const STATUS_CS_ENCRYPTION_EXISTING_ENCRYPTED_FILE: NTSTATUS = 0xC0000443;
+pub const STATUS_CS_ENCRYPTION_NEW_ENCRYPTED_FILE: NTSTATUS = 0xC0000444;
+pub const STATUS_CS_ENCRYPTION_FILE_NOT_CSE: NTSTATUS = 0xC0000445;
+pub const STATUS_INVALID_LABEL: NTSTATUS = 0xC0000446;
+pub const STATUS_DRIVER_PROCESS_TERMINATED: NTSTATUS = 0xC0000450;
+pub const STATUS_AMBIGUOUS_SYSTEM_DEVICE: NTSTATUS = 0xC0000451;
+pub const STATUS_SYSTEM_DEVICE_NOT_FOUND: NTSTATUS = 0xC0000452;
+pub const STATUS_RESTART_BOOT_APPLICATION: NTSTATUS = 0xC0000453;
+pub const STATUS_INSUFFICIENT_NVRAM_RESOURCES: NTSTATUS = 0xC0000454;
+pub const STATUS_INVALID_SESSION: NTSTATUS = 0xC0000455;
+pub const STATUS_THREAD_ALREADY_IN_SESSION: NTSTATUS = 0xC0000456;
+pub const STATUS_THREAD_NOT_IN_SESSION: NTSTATUS = 0xC0000457;
+pub const STATUS_INVALID_WEIGHT: NTSTATUS = 0xC0000458;
+pub const STATUS_REQUEST_PAUSED: NTSTATUS = 0xC0000459;
+pub const STATUS_NO_RANGES_PROCESSED: NTSTATUS = 0xC0000460;
+pub const STATUS_DISK_RESOURCES_EXHAUSTED: NTSTATUS = 0xC0000461;
+pub const STATUS_NEEDS_REMEDIATION: NTSTATUS = 0xC0000462;
+pub const STATUS_DEVICE_FEATURE_NOT_SUPPORTED: NTSTATUS = 0xC0000463;
+pub const STATUS_DEVICE_UNREACHABLE: NTSTATUS = 0xC0000464;
+pub const STATUS_INVALID_TOKEN: NTSTATUS = 0xC0000465;
+pub const STATUS_SERVER_UNAVAILABLE: NTSTATUS = 0xC0000466;
+pub const STATUS_FILE_NOT_AVAILABLE: NTSTATUS = 0xC0000467;
+pub const STATUS_DEVICE_INSUFFICIENT_RESOURCES: NTSTATUS = 0xC0000468;
+pub const STATUS_PACKAGE_UPDATING: NTSTATUS = 0xC0000469;
+pub const STATUS_NOT_READ_FROM_COPY: NTSTATUS = 0xC000046A;
+pub const STATUS_FT_WRITE_FAILURE: NTSTATUS = 0xC000046B;
+pub const STATUS_FT_DI_SCAN_REQUIRED: NTSTATUS = 0xC000046C;
+pub const STATUS_OBJECT_NOT_EXTERNALLY_BACKED: NTSTATUS = 0xC000046D;
+pub const STATUS_EXTERNAL_BACKING_PROVIDER_UNKNOWN: NTSTATUS = 0xC000046E;
+pub const STATUS_COMPRESSION_NOT_BENEFICIAL: NTSTATUS = 0xC000046F;
+pub const STATUS_DATA_CHECKSUM_ERROR: NTSTATUS = 0xC0000470;
+pub const STATUS_INTERMIXED_KERNEL_EA_OPERATION: NTSTATUS = 0xC0000471;
+pub const STATUS_TRIM_READ_ZERO_NOT_SUPPORTED: NTSTATUS = 0xC0000472;
+pub const STATUS_TOO_MANY_SEGMENT_DESCRIPTORS: NTSTATUS = 0xC0000473;
+pub const STATUS_INVALID_OFFSET_ALIGNMENT: NTSTATUS = 0xC0000474;
+pub const STATUS_INVALID_FIELD_IN_PARAMETER_LIST: NTSTATUS = 0xC0000475;
+pub const STATUS_OPERATION_IN_PROGRESS: NTSTATUS = 0xC0000476;
+pub const STATUS_INVALID_INITIATOR_TARGET_PATH: NTSTATUS = 0xC0000477;
+pub const STATUS_SCRUB_DATA_DISABLED: NTSTATUS = 0xC0000478;
+pub const STATUS_NOT_REDUNDANT_STORAGE: NTSTATUS = 0xC0000479;
+pub const STATUS_RESIDENT_FILE_NOT_SUPPORTED: NTSTATUS = 0xC000047A;
+pub const STATUS_COMPRESSED_FILE_NOT_SUPPORTED: NTSTATUS = 0xC000047B;
+pub const STATUS_DIRECTORY_NOT_SUPPORTED: NTSTATUS = 0xC000047C;
+pub const STATUS_IO_OPERATION_TIMEOUT: NTSTATUS = 0xC000047D;
+pub const STATUS_SYSTEM_NEEDS_REMEDIATION: NTSTATUS = 0xC000047E;
+pub const STATUS_APPX_INTEGRITY_FAILURE_CLR_NGEN: NTSTATUS = 0xC000047F;
+pub const STATUS_SHARE_UNAVAILABLE: NTSTATUS = 0xC0000480;
+pub const STATUS_APISET_NOT_HOSTED: NTSTATUS = 0xC0000481;
+pub const STATUS_APISET_NOT_PRESENT: NTSTATUS = 0xC0000482;
+pub const STATUS_DEVICE_HARDWARE_ERROR: NTSTATUS = 0xC0000483;
+pub const STATUS_FIRMWARE_SLOT_INVALID: NTSTATUS = 0xC0000484;
+pub const STATUS_FIRMWARE_IMAGE_INVALID: NTSTATUS = 0xC0000485;
+pub const STATUS_STORAGE_TOPOLOGY_ID_MISMATCH: NTSTATUS = 0xC0000486;
+pub const STATUS_WIM_NOT_BOOTABLE: NTSTATUS = 0xC0000487;
+pub const STATUS_BLOCKED_BY_PARENTAL_CONTROLS: NTSTATUS = 0xC0000488;
+pub const STATUS_NEEDS_REGISTRATION: NTSTATUS = 0xC0000489;
+pub const STATUS_QUOTA_ACTIVITY: NTSTATUS = 0xC000048A;
+pub const STATUS_CALLBACK_INVOKE_INLINE: NTSTATUS = 0xC000048B;
+pub const STATUS_BLOCK_TOO_MANY_REFERENCES: NTSTATUS = 0xC000048C;
+pub const STATUS_MARKED_TO_DISALLOW_WRITES: NTSTATUS = 0xC000048D;
+pub const STATUS_NETWORK_ACCESS_DENIED_EDP: NTSTATUS = 0xC000048E;
+pub const STATUS_ENCLAVE_FAILURE: NTSTATUS = 0xC000048F;
+pub const STATUS_PNP_NO_COMPAT_DRIVERS: NTSTATUS = 0xC0000490;
+pub const STATUS_PNP_DRIVER_PACKAGE_NOT_FOUND: NTSTATUS = 0xC0000491;
+pub const STATUS_PNP_DRIVER_CONFIGURATION_NOT_FOUND: NTSTATUS = 0xC0000492;
+pub const STATUS_PNP_DRIVER_CONFIGURATION_INCOMPLETE: NTSTATUS = 0xC0000493;
+pub const STATUS_PNP_FUNCTION_DRIVER_REQUIRED: NTSTATUS = 0xC0000494;
+pub const STATUS_PNP_DEVICE_CONFIGURATION_PENDING: NTSTATUS = 0xC0000495;
+pub const STATUS_DEVICE_HINT_NAME_BUFFER_TOO_SMALL: NTSTATUS = 0xC0000496;
+pub const STATUS_PACKAGE_NOT_AVAILABLE: NTSTATUS = 0xC0000497;
+pub const STATUS_DEVICE_IN_MAINTENANCE: NTSTATUS = 0xC0000499;
+pub const STATUS_NOT_SUPPORTED_ON_DAX: NTSTATUS = 0xC000049A;
+pub const STATUS_FREE_SPACE_TOO_FRAGMENTED: NTSTATUS = 0xC000049B;
+pub const STATUS_DAX_MAPPING_EXISTS: NTSTATUS = 0xC000049C;
+pub const STATUS_CHILD_PROCESS_BLOCKED: NTSTATUS = 0xC000049D;
+pub const STATUS_STORAGE_LOST_DATA_PERSISTENCE: NTSTATUS = 0xC000049E;
+pub const STATUS_INVALID_TASK_NAME: NTSTATUS = 0xC0000500;
+pub const STATUS_INVALID_TASK_INDEX: NTSTATUS = 0xC0000501;
+pub const STATUS_THREAD_ALREADY_IN_TASK: NTSTATUS = 0xC0000502;
+pub const STATUS_CALLBACK_BYPASS: NTSTATUS = 0xC0000503;
+pub const STATUS_UNDEFINED_SCOPE: NTSTATUS = 0xC0000504;
+pub const STATUS_INVALID_CAP: NTSTATUS = 0xC0000505;
+pub const STATUS_NOT_GUI_PROCESS: NTSTATUS = 0xC0000506;
+pub const STATUS_DEVICE_HUNG: NTSTATUS = 0xC0000507;
+pub const STATUS_CONTAINER_ASSIGNED: NTSTATUS = 0xC0000508;
+pub const STATUS_JOB_NO_CONTAINER: NTSTATUS = 0xC0000509;
+pub const STATUS_DEVICE_UNRESPONSIVE: NTSTATUS = 0xC000050A;
+pub const STATUS_REPARSE_POINT_ENCOUNTERED: NTSTATUS = 0xC000050B;
+pub const STATUS_FAIL_FAST_EXCEPTION: NTSTATUS = 0xC0000602;
+pub const STATUS_IMAGE_CERT_REVOKED: NTSTATUS = 0xC0000603;
+pub const STATUS_DYNAMIC_CODE_BLOCKED: NTSTATUS = 0xC0000604;
+pub const STATUS_IMAGE_CERT_EXPIRED: NTSTATUS = 0xC0000605;
+pub const STATUS_PORT_CLOSED: NTSTATUS = 0xC0000700;
+pub const STATUS_MESSAGE_LOST: NTSTATUS = 0xC0000701;
+pub const STATUS_INVALID_MESSAGE: NTSTATUS = 0xC0000702;
+pub const STATUS_REQUEST_CANCELED: NTSTATUS = 0xC0000703;
+pub const STATUS_RECURSIVE_DISPATCH: NTSTATUS = 0xC0000704;
+pub const STATUS_LPC_RECEIVE_BUFFER_EXPECTED: NTSTATUS = 0xC0000705;
+pub const STATUS_LPC_INVALID_CONNECTION_USAGE: NTSTATUS = 0xC0000706;
+pub const STATUS_LPC_REQUESTS_NOT_ALLOWED: NTSTATUS = 0xC0000707;
+pub const STATUS_RESOURCE_IN_USE: NTSTATUS = 0xC0000708;
+pub const STATUS_HARDWARE_MEMORY_ERROR: NTSTATUS = 0xC0000709;
+pub const STATUS_THREADPOOL_HANDLE_EXCEPTION: NTSTATUS = 0xC000070A;
+pub const STATUS_THREADPOOL_SET_EVENT_ON_COMPLETION_FAILED: NTSTATUS = 0xC000070B;
+pub const STATUS_THREADPOOL_RELEASE_SEMAPHORE_ON_COMPLETION_FAILED: NTSTATUS
+ = 0xC000070C;
+pub const STATUS_THREADPOOL_RELEASE_MUTEX_ON_COMPLETION_FAILED: NTSTATUS = 0xC000070D;
+pub const STATUS_THREADPOOL_FREE_LIBRARY_ON_COMPLETION_FAILED: NTSTATUS = 0xC000070E;
+pub const STATUS_THREADPOOL_RELEASED_DURING_OPERATION: NTSTATUS = 0xC000070F;
+pub const STATUS_CALLBACK_RETURNED_WHILE_IMPERSONATING: NTSTATUS = 0xC0000710;
+pub const STATUS_APC_RETURNED_WHILE_IMPERSONATING: NTSTATUS = 0xC0000711;
+pub const STATUS_PROCESS_IS_PROTECTED: NTSTATUS = 0xC0000712;
+pub const STATUS_MCA_EXCEPTION: NTSTATUS = 0xC0000713;
+pub const STATUS_CERTIFICATE_MAPPING_NOT_UNIQUE: NTSTATUS = 0xC0000714;
+pub const STATUS_SYMLINK_CLASS_DISABLED: NTSTATUS = 0xC0000715;
+pub const STATUS_INVALID_IDN_NORMALIZATION: NTSTATUS = 0xC0000716;
+pub const STATUS_NO_UNICODE_TRANSLATION: NTSTATUS = 0xC0000717;
+pub const STATUS_ALREADY_REGISTERED: NTSTATUS = 0xC0000718;
+pub const STATUS_CONTEXT_MISMATCH: NTSTATUS = 0xC0000719;
+pub const STATUS_PORT_ALREADY_HAS_COMPLETION_LIST: NTSTATUS = 0xC000071A;
+pub const STATUS_CALLBACK_RETURNED_THREAD_PRIORITY: NTSTATUS = 0xC000071B;
+pub const STATUS_INVALID_THREAD: NTSTATUS = 0xC000071C;
+pub const STATUS_CALLBACK_RETURNED_TRANSACTION: NTSTATUS = 0xC000071D;
+pub const STATUS_CALLBACK_RETURNED_LDR_LOCK: NTSTATUS = 0xC000071E;
+pub const STATUS_CALLBACK_RETURNED_LANG: NTSTATUS = 0xC000071F;
+pub const STATUS_CALLBACK_RETURNED_PRI_BACK: NTSTATUS = 0xC0000720;
+pub const STATUS_CALLBACK_RETURNED_THREAD_AFFINITY: NTSTATUS = 0xC0000721;
+pub const STATUS_LPC_HANDLE_COUNT_EXCEEDED: NTSTATUS = 0xC0000722;
+pub const STATUS_DISK_REPAIR_DISABLED: NTSTATUS = 0xC0000800;
+pub const STATUS_DS_DOMAIN_RENAME_IN_PROGRESS: NTSTATUS = 0xC0000801;
+pub const STATUS_DISK_QUOTA_EXCEEDED: NTSTATUS = 0xC0000802;
+pub const STATUS_DATA_LOST_REPAIR: NTSTATUS = 0x80000803;
+pub const STATUS_CONTENT_BLOCKED: NTSTATUS = 0xC0000804;
+pub const STATUS_BAD_CLUSTERS: NTSTATUS = 0xC0000805;
+pub const STATUS_VOLUME_DIRTY: NTSTATUS = 0xC0000806;
+pub const STATUS_DISK_REPAIR_REDIRECTED: NTSTATUS = 0x40000807;
+pub const STATUS_DISK_REPAIR_UNSUCCESSFUL: NTSTATUS = 0xC0000808;
+pub const STATUS_CORRUPT_LOG_OVERFULL: NTSTATUS = 0xC0000809;
+pub const STATUS_CORRUPT_LOG_CORRUPTED: NTSTATUS = 0xC000080A;
+pub const STATUS_CORRUPT_LOG_UNAVAILABLE: NTSTATUS = 0xC000080B;
+pub const STATUS_CORRUPT_LOG_DELETED_FULL: NTSTATUS = 0xC000080C;
+pub const STATUS_CORRUPT_LOG_CLEARED: NTSTATUS = 0xC000080D;
+pub const STATUS_ORPHAN_NAME_EXHAUSTED: NTSTATUS = 0xC000080E;
+pub const STATUS_PROACTIVE_SCAN_IN_PROGRESS: NTSTATUS = 0xC000080F;
+pub const STATUS_ENCRYPTED_IO_NOT_POSSIBLE: NTSTATUS = 0xC0000810;
+pub const STATUS_CORRUPT_LOG_UPLEVEL_RECORDS: NTSTATUS = 0xC0000811;
+pub const STATUS_FILE_CHECKED_OUT: NTSTATUS = 0xC0000901;
+pub const STATUS_CHECKOUT_REQUIRED: NTSTATUS = 0xC0000902;
+pub const STATUS_BAD_FILE_TYPE: NTSTATUS = 0xC0000903;
+pub const STATUS_FILE_TOO_LARGE: NTSTATUS = 0xC0000904;
+pub const STATUS_FORMS_AUTH_REQUIRED: NTSTATUS = 0xC0000905;
+pub const STATUS_VIRUS_INFECTED: NTSTATUS = 0xC0000906;
+pub const STATUS_VIRUS_DELETED: NTSTATUS = 0xC0000907;
+pub const STATUS_BAD_MCFG_TABLE: NTSTATUS = 0xC0000908;
+pub const STATUS_CANNOT_BREAK_OPLOCK: NTSTATUS = 0xC0000909;
+pub const STATUS_BAD_KEY: NTSTATUS = 0xC000090A;
+pub const STATUS_BAD_DATA: NTSTATUS = 0xC000090B;
+pub const STATUS_NO_KEY: NTSTATUS = 0xC000090C;
+pub const STATUS_FILE_HANDLE_REVOKED: NTSTATUS = 0xC0000910;
+pub const STATUS_WOW_ASSERTION: NTSTATUS = 0xC0009898;
+pub const STATUS_INVALID_SIGNATURE: NTSTATUS = 0xC000A000;
+pub const STATUS_HMAC_NOT_SUPPORTED: NTSTATUS = 0xC000A001;
+pub const STATUS_AUTH_TAG_MISMATCH: NTSTATUS = 0xC000A002;
+pub const STATUS_INVALID_STATE_TRANSITION: NTSTATUS = 0xC000A003;
+pub const STATUS_INVALID_KERNEL_INFO_VERSION: NTSTATUS = 0xC000A004;
+pub const STATUS_INVALID_PEP_INFO_VERSION: NTSTATUS = 0xC000A005;
+pub const STATUS_HANDLE_REVOKED: NTSTATUS = 0xC000A006;
+pub const STATUS_EOF_ON_GHOSTED_RANGE: NTSTATUS = 0xC000A007;
+pub const STATUS_IPSEC_QUEUE_OVERFLOW: NTSTATUS = 0xC000A010;
+pub const STATUS_ND_QUEUE_OVERFLOW: NTSTATUS = 0xC000A011;
+pub const STATUS_HOPLIMIT_EXCEEDED: NTSTATUS = 0xC000A012;
+pub const STATUS_PROTOCOL_NOT_SUPPORTED: NTSTATUS = 0xC000A013;
+pub const STATUS_FASTPATH_REJECTED: NTSTATUS = 0xC000A014;
+pub const STATUS_LOST_WRITEBEHIND_DATA_NETWORK_DISCONNECTED: NTSTATUS = 0xC000A080;
+pub const STATUS_LOST_WRITEBEHIND_DATA_NETWORK_SERVER_ERROR: NTSTATUS = 0xC000A081;
+pub const STATUS_LOST_WRITEBEHIND_DATA_LOCAL_DISK_ERROR: NTSTATUS = 0xC000A082;
+pub const STATUS_XML_PARSE_ERROR: NTSTATUS = 0xC000A083;
+pub const STATUS_XMLDSIG_ERROR: NTSTATUS = 0xC000A084;
+pub const STATUS_WRONG_COMPARTMENT: NTSTATUS = 0xC000A085;
+pub const STATUS_AUTHIP_FAILURE: NTSTATUS = 0xC000A086;
+pub const STATUS_DS_OID_MAPPED_GROUP_CANT_HAVE_MEMBERS: NTSTATUS = 0xC000A087;
+pub const STATUS_DS_OID_NOT_FOUND: NTSTATUS = 0xC000A088;
+pub const STATUS_INCORRECT_ACCOUNT_TYPE: NTSTATUS = 0xC000A089;
+pub const STATUS_HASH_NOT_SUPPORTED: NTSTATUS = 0xC000A100;
+pub const STATUS_HASH_NOT_PRESENT: NTSTATUS = 0xC000A101;
+pub const STATUS_SECONDARY_IC_PROVIDER_NOT_REGISTERED: NTSTATUS = 0xC000A121;
+pub const STATUS_GPIO_CLIENT_INFORMATION_INVALID: NTSTATUS = 0xC000A122;
+pub const STATUS_GPIO_VERSION_NOT_SUPPORTED: NTSTATUS = 0xC000A123;
+pub const STATUS_GPIO_INVALID_REGISTRATION_PACKET: NTSTATUS = 0xC000A124;
+pub const STATUS_GPIO_OPERATION_DENIED: NTSTATUS = 0xC000A125;
+pub const STATUS_GPIO_INCOMPATIBLE_CONNECT_MODE: NTSTATUS = 0xC000A126;
+pub const STATUS_GPIO_INTERRUPT_ALREADY_UNMASKED: NTSTATUS = 0x8000A127;
+pub const STATUS_CANNOT_SWITCH_RUNLEVEL: NTSTATUS = 0xC000A141;
+pub const STATUS_INVALID_RUNLEVEL_SETTING: NTSTATUS = 0xC000A142;
+pub const STATUS_RUNLEVEL_SWITCH_TIMEOUT: NTSTATUS = 0xC000A143;
+pub const STATUS_SERVICES_FAILED_AUTOSTART: NTSTATUS = 0x4000A144;
+pub const STATUS_RUNLEVEL_SWITCH_AGENT_TIMEOUT: NTSTATUS = 0xC000A145;
+pub const STATUS_RUNLEVEL_SWITCH_IN_PROGRESS: NTSTATUS = 0xC000A146;
+pub const STATUS_NOT_APPCONTAINER: NTSTATUS = 0xC000A200;
+pub const STATUS_NOT_SUPPORTED_IN_APPCONTAINER: NTSTATUS = 0xC000A201;
+pub const STATUS_INVALID_PACKAGE_SID_LENGTH: NTSTATUS = 0xC000A202;
+pub const STATUS_APP_DATA_NOT_FOUND: NTSTATUS = 0xC000A281;
+pub const STATUS_APP_DATA_EXPIRED: NTSTATUS = 0xC000A282;
+pub const STATUS_APP_DATA_CORRUPT: NTSTATUS = 0xC000A283;
+pub const STATUS_APP_DATA_LIMIT_EXCEEDED: NTSTATUS = 0xC000A284;
+pub const STATUS_APP_DATA_REBOOT_REQUIRED: NTSTATUS = 0xC000A285;
+pub const STATUS_OFFLOAD_READ_FLT_NOT_SUPPORTED: NTSTATUS = 0xC000A2A1;
+pub const STATUS_OFFLOAD_WRITE_FLT_NOT_SUPPORTED: NTSTATUS = 0xC000A2A2;
+pub const STATUS_OFFLOAD_READ_FILE_NOT_SUPPORTED: NTSTATUS = 0xC000A2A3;
+pub const STATUS_OFFLOAD_WRITE_FILE_NOT_SUPPORTED: NTSTATUS = 0xC000A2A4;
+pub const STATUS_CLOUD_FILE_PROVIDER_UNKNOWN: NTSTATUS = 0xC000CF00;
+pub const STATUS_CLOUD_FILE_PROVIDER_NOT_RUNNING: NTSTATUS = 0xC000CF01;
+pub const STATUS_CLOUD_FILE_METADATA_CORRUPT: NTSTATUS = 0xC000CF02;
+pub const STATUS_CLOUD_FILE_METADATA_TOO_LARGE: NTSTATUS = 0xC000CF03;
+pub const STATUS_CLOUD_FILE_PROPERTY_BLOB_TOO_LARGE: NTSTATUS = 0x8000CF04;
+pub const DBG_NO_STATE_CHANGE: NTSTATUS = 0xC0010001;
+pub const DBG_APP_NOT_IDLE: NTSTATUS = 0xC0010002;
+pub const RPC_NT_INVALID_STRING_BINDING: NTSTATUS = 0xC0020001;
+pub const RPC_NT_WRONG_KIND_OF_BINDING: NTSTATUS = 0xC0020002;
+pub const RPC_NT_INVALID_BINDING: NTSTATUS = 0xC0020003;
+pub const RPC_NT_PROTSEQ_NOT_SUPPORTED: NTSTATUS = 0xC0020004;
+pub const RPC_NT_INVALID_RPC_PROTSEQ: NTSTATUS = 0xC0020005;
+pub const RPC_NT_INVALID_STRING_UUID: NTSTATUS = 0xC0020006;
+pub const RPC_NT_INVALID_ENDPOINT_FORMAT: NTSTATUS = 0xC0020007;
+pub const RPC_NT_INVALID_NET_ADDR: NTSTATUS = 0xC0020008;
+pub const RPC_NT_NO_ENDPOINT_FOUND: NTSTATUS = 0xC0020009;
+pub const RPC_NT_INVALID_TIMEOUT: NTSTATUS = 0xC002000A;
+pub const RPC_NT_OBJECT_NOT_FOUND: NTSTATUS = 0xC002000B;
+pub const RPC_NT_ALREADY_REGISTERED: NTSTATUS = 0xC002000C;
+pub const RPC_NT_TYPE_ALREADY_REGISTERED: NTSTATUS = 0xC002000D;
+pub const RPC_NT_ALREADY_LISTENING: NTSTATUS = 0xC002000E;
+pub const RPC_NT_NO_PROTSEQS_REGISTERED: NTSTATUS = 0xC002000F;
+pub const RPC_NT_NOT_LISTENING: NTSTATUS = 0xC0020010;
+pub const RPC_NT_UNKNOWN_MGR_TYPE: NTSTATUS = 0xC0020011;
+pub const RPC_NT_UNKNOWN_IF: NTSTATUS = 0xC0020012;
+pub const RPC_NT_NO_BINDINGS: NTSTATUS = 0xC0020013;
+pub const RPC_NT_NO_PROTSEQS: NTSTATUS = 0xC0020014;
+pub const RPC_NT_CANT_CREATE_ENDPOINT: NTSTATUS = 0xC0020015;
+pub const RPC_NT_OUT_OF_RESOURCES: NTSTATUS = 0xC0020016;
+pub const RPC_NT_SERVER_UNAVAILABLE: NTSTATUS = 0xC0020017;
+pub const RPC_NT_SERVER_TOO_BUSY: NTSTATUS = 0xC0020018;
+pub const RPC_NT_INVALID_NETWORK_OPTIONS: NTSTATUS = 0xC0020019;
+pub const RPC_NT_NO_CALL_ACTIVE: NTSTATUS = 0xC002001A;
+pub const RPC_NT_CALL_FAILED: NTSTATUS = 0xC002001B;
+pub const RPC_NT_CALL_FAILED_DNE: NTSTATUS = 0xC002001C;
+pub const RPC_NT_PROTOCOL_ERROR: NTSTATUS = 0xC002001D;
+pub const RPC_NT_UNSUPPORTED_TRANS_SYN: NTSTATUS = 0xC002001F;
+pub const RPC_NT_UNSUPPORTED_TYPE: NTSTATUS = 0xC0020021;
+pub const RPC_NT_INVALID_TAG: NTSTATUS = 0xC0020022;
+pub const RPC_NT_INVALID_BOUND: NTSTATUS = 0xC0020023;
+pub const RPC_NT_NO_ENTRY_NAME: NTSTATUS = 0xC0020024;
+pub const RPC_NT_INVALID_NAME_SYNTAX: NTSTATUS = 0xC0020025;
+pub const RPC_NT_UNSUPPORTED_NAME_SYNTAX: NTSTATUS = 0xC0020026;
+pub const RPC_NT_UUID_NO_ADDRESS: NTSTATUS = 0xC0020028;
+pub const RPC_NT_DUPLICATE_ENDPOINT: NTSTATUS = 0xC0020029;
+pub const RPC_NT_UNKNOWN_AUTHN_TYPE: NTSTATUS = 0xC002002A;
+pub const RPC_NT_MAX_CALLS_TOO_SMALL: NTSTATUS = 0xC002002B;
+pub const RPC_NT_STRING_TOO_LONG: NTSTATUS = 0xC002002C;
+pub const RPC_NT_PROTSEQ_NOT_FOUND: NTSTATUS = 0xC002002D;
+pub const RPC_NT_PROCNUM_OUT_OF_RANGE: NTSTATUS = 0xC002002E;
+pub const RPC_NT_BINDING_HAS_NO_AUTH: NTSTATUS = 0xC002002F;
+pub const RPC_NT_UNKNOWN_AUTHN_SERVICE: NTSTATUS = 0xC0020030;
+pub const RPC_NT_UNKNOWN_AUTHN_LEVEL: NTSTATUS = 0xC0020031;
+pub const RPC_NT_INVALID_AUTH_IDENTITY: NTSTATUS = 0xC0020032;
+pub const RPC_NT_UNKNOWN_AUTHZ_SERVICE: NTSTATUS = 0xC0020033;
+pub const EPT_NT_INVALID_ENTRY: NTSTATUS = 0xC0020034;
+pub const EPT_NT_CANT_PERFORM_OP: NTSTATUS = 0xC0020035;
+pub const EPT_NT_NOT_REGISTERED: NTSTATUS = 0xC0020036;
+pub const RPC_NT_NOTHING_TO_EXPORT: NTSTATUS = 0xC0020037;
+pub const RPC_NT_INCOMPLETE_NAME: NTSTATUS = 0xC0020038;
+pub const RPC_NT_INVALID_VERS_OPTION: NTSTATUS = 0xC0020039;
+pub const RPC_NT_NO_MORE_MEMBERS: NTSTATUS = 0xC002003A;
+pub const RPC_NT_NOT_ALL_OBJS_UNEXPORTED: NTSTATUS = 0xC002003B;
+pub const RPC_NT_INTERFACE_NOT_FOUND: NTSTATUS = 0xC002003C;
+pub const RPC_NT_ENTRY_ALREADY_EXISTS: NTSTATUS = 0xC002003D;
+pub const RPC_NT_ENTRY_NOT_FOUND: NTSTATUS = 0xC002003E;
+pub const RPC_NT_NAME_SERVICE_UNAVAILABLE: NTSTATUS = 0xC002003F;
+pub const RPC_NT_INVALID_NAF_ID: NTSTATUS = 0xC0020040;
+pub const RPC_NT_CANNOT_SUPPORT: NTSTATUS = 0xC0020041;
+pub const RPC_NT_NO_CONTEXT_AVAILABLE: NTSTATUS = 0xC0020042;
+pub const RPC_NT_INTERNAL_ERROR: NTSTATUS = 0xC0020043;
+pub const RPC_NT_ZERO_DIVIDE: NTSTATUS = 0xC0020044;
+pub const RPC_NT_ADDRESS_ERROR: NTSTATUS = 0xC0020045;
+pub const RPC_NT_FP_DIV_ZERO: NTSTATUS = 0xC0020046;
+pub const RPC_NT_FP_UNDERFLOW: NTSTATUS = 0xC0020047;
+pub const RPC_NT_FP_OVERFLOW: NTSTATUS = 0xC0020048;
+pub const RPC_NT_NO_MORE_ENTRIES: NTSTATUS = 0xC0030001;
+pub const RPC_NT_SS_CHAR_TRANS_OPEN_FAIL: NTSTATUS = 0xC0030002;
+pub const RPC_NT_SS_CHAR_TRANS_SHORT_FILE: NTSTATUS = 0xC0030003;
+pub const RPC_NT_SS_IN_NULL_CONTEXT: NTSTATUS = 0xC0030004;
+pub const RPC_NT_SS_CONTEXT_MISMATCH: NTSTATUS = 0xC0030005;
+pub const RPC_NT_SS_CONTEXT_DAMAGED: NTSTATUS = 0xC0030006;
+pub const RPC_NT_SS_HANDLES_MISMATCH: NTSTATUS = 0xC0030007;
+pub const RPC_NT_SS_CANNOT_GET_CALL_HANDLE: NTSTATUS = 0xC0030008;
+pub const RPC_NT_NULL_REF_POINTER: NTSTATUS = 0xC0030009;
+pub const RPC_NT_ENUM_VALUE_OUT_OF_RANGE: NTSTATUS = 0xC003000A;
+pub const RPC_NT_BYTE_COUNT_TOO_SMALL: NTSTATUS = 0xC003000B;
+pub const RPC_NT_BAD_STUB_DATA: NTSTATUS = 0xC003000C;
+pub const RPC_NT_CALL_IN_PROGRESS: NTSTATUS = 0xC0020049;
+pub const RPC_NT_NO_MORE_BINDINGS: NTSTATUS = 0xC002004A;
+pub const RPC_NT_GROUP_MEMBER_NOT_FOUND: NTSTATUS = 0xC002004B;
+pub const EPT_NT_CANT_CREATE: NTSTATUS = 0xC002004C;
+pub const RPC_NT_INVALID_OBJECT: NTSTATUS = 0xC002004D;
+pub const RPC_NT_NO_INTERFACES: NTSTATUS = 0xC002004F;
+pub const RPC_NT_CALL_CANCELLED: NTSTATUS = 0xC0020050;
+pub const RPC_NT_BINDING_INCOMPLETE: NTSTATUS = 0xC0020051;
+pub const RPC_NT_COMM_FAILURE: NTSTATUS = 0xC0020052;
+pub const RPC_NT_UNSUPPORTED_AUTHN_LEVEL: NTSTATUS = 0xC0020053;
+pub const RPC_NT_NO_PRINC_NAME: NTSTATUS = 0xC0020054;
+pub const RPC_NT_NOT_RPC_ERROR: NTSTATUS = 0xC0020055;
+pub const RPC_NT_UUID_LOCAL_ONLY: NTSTATUS = 0x40020056;
+pub const RPC_NT_SEC_PKG_ERROR: NTSTATUS = 0xC0020057;
+pub const RPC_NT_NOT_CANCELLED: NTSTATUS = 0xC0020058;
+pub const RPC_NT_INVALID_ES_ACTION: NTSTATUS = 0xC0030059;
+pub const RPC_NT_WRONG_ES_VERSION: NTSTATUS = 0xC003005A;
+pub const RPC_NT_WRONG_STUB_VERSION: NTSTATUS = 0xC003005B;
+pub const RPC_NT_INVALID_PIPE_OBJECT: NTSTATUS = 0xC003005C;
+pub const RPC_NT_INVALID_PIPE_OPERATION: NTSTATUS = 0xC003005D;
+pub const RPC_NT_WRONG_PIPE_VERSION: NTSTATUS = 0xC003005E;
+pub const RPC_NT_PIPE_CLOSED: NTSTATUS = 0xC003005F;
+pub const RPC_NT_PIPE_DISCIPLINE_ERROR: NTSTATUS = 0xC0030060;
+pub const RPC_NT_PIPE_EMPTY: NTSTATUS = 0xC0030061;
+pub const RPC_NT_INVALID_ASYNC_HANDLE: NTSTATUS = 0xC0020062;
+pub const RPC_NT_INVALID_ASYNC_CALL: NTSTATUS = 0xC0020063;
+pub const RPC_NT_PROXY_ACCESS_DENIED: NTSTATUS = 0xC0020064;
+pub const RPC_NT_COOKIE_AUTH_FAILED: NTSTATUS = 0xC0020065;
+pub const RPC_NT_SEND_INCOMPLETE: NTSTATUS = 0x400200AF;
+pub const STATUS_ACPI_INVALID_OPCODE: NTSTATUS = 0xC0140001;
+pub const STATUS_ACPI_STACK_OVERFLOW: NTSTATUS = 0xC0140002;
+pub const STATUS_ACPI_ASSERT_FAILED: NTSTATUS = 0xC0140003;
+pub const STATUS_ACPI_INVALID_INDEX: NTSTATUS = 0xC0140004;
+pub const STATUS_ACPI_INVALID_ARGUMENT: NTSTATUS = 0xC0140005;
+pub const STATUS_ACPI_FATAL: NTSTATUS = 0xC0140006;
+pub const STATUS_ACPI_INVALID_SUPERNAME: NTSTATUS = 0xC0140007;
+pub const STATUS_ACPI_INVALID_ARGTYPE: NTSTATUS = 0xC0140008;
+pub const STATUS_ACPI_INVALID_OBJTYPE: NTSTATUS = 0xC0140009;
+pub const STATUS_ACPI_INVALID_TARGETTYPE: NTSTATUS = 0xC014000A;
+pub const STATUS_ACPI_INCORRECT_ARGUMENT_COUNT: NTSTATUS = 0xC014000B;
+pub const STATUS_ACPI_ADDRESS_NOT_MAPPED: NTSTATUS = 0xC014000C;
+pub const STATUS_ACPI_INVALID_EVENTTYPE: NTSTATUS = 0xC014000D;
+pub const STATUS_ACPI_HANDLER_COLLISION: NTSTATUS = 0xC014000E;
+pub const STATUS_ACPI_INVALID_DATA: NTSTATUS = 0xC014000F;
+pub const STATUS_ACPI_INVALID_REGION: NTSTATUS = 0xC0140010;
+pub const STATUS_ACPI_INVALID_ACCESS_SIZE: NTSTATUS = 0xC0140011;
+pub const STATUS_ACPI_ACQUIRE_GLOBAL_LOCK: NTSTATUS = 0xC0140012;
+pub const STATUS_ACPI_ALREADY_INITIALIZED: NTSTATUS = 0xC0140013;
+pub const STATUS_ACPI_NOT_INITIALIZED: NTSTATUS = 0xC0140014;
+pub const STATUS_ACPI_INVALID_MUTEX_LEVEL: NTSTATUS = 0xC0140015;
+pub const STATUS_ACPI_MUTEX_NOT_OWNED: NTSTATUS = 0xC0140016;
+pub const STATUS_ACPI_MUTEX_NOT_OWNER: NTSTATUS = 0xC0140017;
+pub const STATUS_ACPI_RS_ACCESS: NTSTATUS = 0xC0140018;
+pub const STATUS_ACPI_INVALID_TABLE: NTSTATUS = 0xC0140019;
+pub const STATUS_ACPI_REG_HANDLER_FAILED: NTSTATUS = 0xC0140020;
+pub const STATUS_ACPI_POWER_REQUEST_FAILED: NTSTATUS = 0xC0140021;
+pub const STATUS_CTX_WINSTATION_NAME_INVALID: NTSTATUS = 0xC00A0001;
+pub const STATUS_CTX_INVALID_PD: NTSTATUS = 0xC00A0002;
+pub const STATUS_CTX_PD_NOT_FOUND: NTSTATUS = 0xC00A0003;
+pub const STATUS_CTX_CDM_CONNECT: NTSTATUS = 0x400A0004;
+pub const STATUS_CTX_CDM_DISCONNECT: NTSTATUS = 0x400A0005;
+pub const STATUS_CTX_CLOSE_PENDING: NTSTATUS = 0xC00A0006;
+pub const STATUS_CTX_NO_OUTBUF: NTSTATUS = 0xC00A0007;
+pub const STATUS_CTX_MODEM_INF_NOT_FOUND: NTSTATUS = 0xC00A0008;
+pub const STATUS_CTX_INVALID_MODEMNAME: NTSTATUS = 0xC00A0009;
+pub const STATUS_CTX_RESPONSE_ERROR: NTSTATUS = 0xC00A000A;
+pub const STATUS_CTX_MODEM_RESPONSE_TIMEOUT: NTSTATUS = 0xC00A000B;
+pub const STATUS_CTX_MODEM_RESPONSE_NO_CARRIER: NTSTATUS = 0xC00A000C;
+pub const STATUS_CTX_MODEM_RESPONSE_NO_DIALTONE: NTSTATUS = 0xC00A000D;
+pub const STATUS_CTX_MODEM_RESPONSE_BUSY: NTSTATUS = 0xC00A000E;
+pub const STATUS_CTX_MODEM_RESPONSE_VOICE: NTSTATUS = 0xC00A000F;
+pub const STATUS_CTX_TD_ERROR: NTSTATUS = 0xC00A0010;
+pub const STATUS_CTX_LICENSE_CLIENT_INVALID: NTSTATUS = 0xC00A0012;
+pub const STATUS_CTX_LICENSE_NOT_AVAILABLE: NTSTATUS = 0xC00A0013;
+pub const STATUS_CTX_LICENSE_EXPIRED: NTSTATUS = 0xC00A0014;
+pub const STATUS_CTX_WINSTATION_NOT_FOUND: NTSTATUS = 0xC00A0015;
+pub const STATUS_CTX_WINSTATION_NAME_COLLISION: NTSTATUS = 0xC00A0016;
+pub const STATUS_CTX_WINSTATION_BUSY: NTSTATUS = 0xC00A0017;
+pub const STATUS_CTX_BAD_VIDEO_MODE: NTSTATUS = 0xC00A0018;
+pub const STATUS_CTX_GRAPHICS_INVALID: NTSTATUS = 0xC00A0022;
+pub const STATUS_CTX_NOT_CONSOLE: NTSTATUS = 0xC00A0024;
+pub const STATUS_CTX_CLIENT_QUERY_TIMEOUT: NTSTATUS = 0xC00A0026;
+pub const STATUS_CTX_CONSOLE_DISCONNECT: NTSTATUS = 0xC00A0027;
+pub const STATUS_CTX_CONSOLE_CONNECT: NTSTATUS = 0xC00A0028;
+pub const STATUS_CTX_SHADOW_DENIED: NTSTATUS = 0xC00A002A;
+pub const STATUS_CTX_WINSTATION_ACCESS_DENIED: NTSTATUS = 0xC00A002B;
+pub const STATUS_CTX_INVALID_WD: NTSTATUS = 0xC00A002E;
+pub const STATUS_CTX_WD_NOT_FOUND: NTSTATUS = 0xC00A002F;
+pub const STATUS_CTX_SHADOW_INVALID: NTSTATUS = 0xC00A0030;
+pub const STATUS_CTX_SHADOW_DISABLED: NTSTATUS = 0xC00A0031;
+pub const STATUS_RDP_PROTOCOL_ERROR: NTSTATUS = 0xC00A0032;
+pub const STATUS_CTX_CLIENT_LICENSE_NOT_SET: NTSTATUS = 0xC00A0033;
+pub const STATUS_CTX_CLIENT_LICENSE_IN_USE: NTSTATUS = 0xC00A0034;
+pub const STATUS_CTX_SHADOW_ENDED_BY_MODE_CHANGE: NTSTATUS = 0xC00A0035;
+pub const STATUS_CTX_SHADOW_NOT_RUNNING: NTSTATUS = 0xC00A0036;
+pub const STATUS_CTX_LOGON_DISABLED: NTSTATUS = 0xC00A0037;
+pub const STATUS_CTX_SECURITY_LAYER_ERROR: NTSTATUS = 0xC00A0038;
+pub const STATUS_TS_INCOMPATIBLE_SESSIONS: NTSTATUS = 0xC00A0039;
+pub const STATUS_TS_VIDEO_SUBSYSTEM_ERROR: NTSTATUS = 0xC00A003A;
+pub const STATUS_PNP_BAD_MPS_TABLE: NTSTATUS = 0xC0040035;
+pub const STATUS_PNP_TRANSLATION_FAILED: NTSTATUS = 0xC0040036;
+pub const STATUS_PNP_IRQ_TRANSLATION_FAILED: NTSTATUS = 0xC0040037;
+pub const STATUS_PNP_INVALID_ID: NTSTATUS = 0xC0040038;
+pub const STATUS_IO_REISSUE_AS_CACHED: NTSTATUS = 0xC0040039;
+pub const STATUS_MUI_FILE_NOT_FOUND: NTSTATUS = 0xC00B0001;
+pub const STATUS_MUI_INVALID_FILE: NTSTATUS = 0xC00B0002;
+pub const STATUS_MUI_INVALID_RC_CONFIG: NTSTATUS = 0xC00B0003;
+pub const STATUS_MUI_INVALID_LOCALE_NAME: NTSTATUS = 0xC00B0004;
+pub const STATUS_MUI_INVALID_ULTIMATEFALLBACK_NAME: NTSTATUS = 0xC00B0005;
+pub const STATUS_MUI_FILE_NOT_LOADED: NTSTATUS = 0xC00B0006;
+pub const STATUS_RESOURCE_ENUM_USER_STOP: NTSTATUS = 0xC00B0007;
+//FILTER_FLT_NTSTATUS_FROM_HRESULT
+pub const STATUS_FLT_NO_HANDLER_DEFINED: NTSTATUS = 0xC01C0001;
+pub const STATUS_FLT_CONTEXT_ALREADY_DEFINED: NTSTATUS = 0xC01C0002;
+pub const STATUS_FLT_INVALID_ASYNCHRONOUS_REQUEST: NTSTATUS = 0xC01C0003;
+pub const STATUS_FLT_DISALLOW_FAST_IO: NTSTATUS = 0xC01C0004;
+pub const STATUS_FLT_INVALID_NAME_REQUEST: NTSTATUS = 0xC01C0005;
+pub const STATUS_FLT_NOT_SAFE_TO_POST_OPERATION: NTSTATUS = 0xC01C0006;
+pub const STATUS_FLT_NOT_INITIALIZED: NTSTATUS = 0xC01C0007;
+pub const STATUS_FLT_FILTER_NOT_READY: NTSTATUS = 0xC01C0008;
+pub const STATUS_FLT_POST_OPERATION_CLEANUP: NTSTATUS = 0xC01C0009;
+pub const STATUS_FLT_INTERNAL_ERROR: NTSTATUS = 0xC01C000A;
+pub const STATUS_FLT_DELETING_OBJECT: NTSTATUS = 0xC01C000B;
+pub const STATUS_FLT_MUST_BE_NONPAGED_POOL: NTSTATUS = 0xC01C000C;
+pub const STATUS_FLT_DUPLICATE_ENTRY: NTSTATUS = 0xC01C000D;
+pub const STATUS_FLT_CBDQ_DISABLED: NTSTATUS = 0xC01C000E;
+pub const STATUS_FLT_DO_NOT_ATTACH: NTSTATUS = 0xC01C000F;
+pub const STATUS_FLT_DO_NOT_DETACH: NTSTATUS = 0xC01C0010;
+pub const STATUS_FLT_INSTANCE_ALTITUDE_COLLISION: NTSTATUS = 0xC01C0011;
+pub const STATUS_FLT_INSTANCE_NAME_COLLISION: NTSTATUS = 0xC01C0012;
+pub const STATUS_FLT_FILTER_NOT_FOUND: NTSTATUS = 0xC01C0013;
+pub const STATUS_FLT_VOLUME_NOT_FOUND: NTSTATUS = 0xC01C0014;
+pub const STATUS_FLT_INSTANCE_NOT_FOUND: NTSTATUS = 0xC01C0015;
+pub const STATUS_FLT_CONTEXT_ALLOCATION_NOT_FOUND: NTSTATUS = 0xC01C0016;
+pub const STATUS_FLT_INVALID_CONTEXT_REGISTRATION: NTSTATUS = 0xC01C0017;
+pub const STATUS_FLT_NAME_CACHE_MISS: NTSTATUS = 0xC01C0018;
+pub const STATUS_FLT_NO_DEVICE_OBJECT: NTSTATUS = 0xC01C0019;
+pub const STATUS_FLT_VOLUME_ALREADY_MOUNTED: NTSTATUS = 0xC01C001A;
+pub const STATUS_FLT_ALREADY_ENLISTED: NTSTATUS = 0xC01C001B;
+pub const STATUS_FLT_CONTEXT_ALREADY_LINKED: NTSTATUS = 0xC01C001C;
+pub const STATUS_FLT_NO_WAITER_FOR_REPLY: NTSTATUS = 0xC01C0020;
+pub const STATUS_FLT_REGISTRATION_BUSY: NTSTATUS = 0xC01C0023;
+pub const STATUS_SXS_SECTION_NOT_FOUND: NTSTATUS = 0xC0150001;
+pub const STATUS_SXS_CANT_GEN_ACTCTX: NTSTATUS = 0xC0150002;
+pub const STATUS_SXS_INVALID_ACTCTXDATA_FORMAT: NTSTATUS = 0xC0150003;
+pub const STATUS_SXS_ASSEMBLY_NOT_FOUND: NTSTATUS = 0xC0150004;
+pub const STATUS_SXS_MANIFEST_FORMAT_ERROR: NTSTATUS = 0xC0150005;
+pub const STATUS_SXS_MANIFEST_PARSE_ERROR: NTSTATUS = 0xC0150006;
+pub const STATUS_SXS_ACTIVATION_CONTEXT_DISABLED: NTSTATUS = 0xC0150007;
+pub const STATUS_SXS_KEY_NOT_FOUND: NTSTATUS = 0xC0150008;
+pub const STATUS_SXS_VERSION_CONFLICT: NTSTATUS = 0xC0150009;
+pub const STATUS_SXS_WRONG_SECTION_TYPE: NTSTATUS = 0xC015000A;
+pub const STATUS_SXS_THREAD_QUERIES_DISABLED: NTSTATUS = 0xC015000B;
+pub const STATUS_SXS_ASSEMBLY_MISSING: NTSTATUS = 0xC015000C;
+pub const STATUS_SXS_RELEASE_ACTIVATION_CONTEXT: NTSTATUS = 0x4015000D;
+pub const STATUS_SXS_PROCESS_DEFAULT_ALREADY_SET: NTSTATUS = 0xC015000E;
+pub const STATUS_SXS_EARLY_DEACTIVATION: NTSTATUS = 0xC015000F;
+pub const STATUS_SXS_INVALID_DEACTIVATION: NTSTATUS = 0xC0150010;
+pub const STATUS_SXS_MULTIPLE_DEACTIVATION: NTSTATUS = 0xC0150011;
+pub const STATUS_SXS_SYSTEM_DEFAULT_ACTIVATION_CONTEXT_EMPTY: NTSTATUS = 0xC0150012;
+pub const STATUS_SXS_PROCESS_TERMINATION_REQUESTED: NTSTATUS = 0xC0150013;
+pub const STATUS_SXS_CORRUPT_ACTIVATION_STACK: NTSTATUS = 0xC0150014;
+pub const STATUS_SXS_CORRUPTION: NTSTATUS = 0xC0150015;
+pub const STATUS_SXS_INVALID_IDENTITY_ATTRIBUTE_VALUE: NTSTATUS = 0xC0150016;
+pub const STATUS_SXS_INVALID_IDENTITY_ATTRIBUTE_NAME: NTSTATUS = 0xC0150017;
+pub const STATUS_SXS_IDENTITY_DUPLICATE_ATTRIBUTE: NTSTATUS = 0xC0150018;
+pub const STATUS_SXS_IDENTITY_PARSE_ERROR: NTSTATUS = 0xC0150019;
+pub const STATUS_SXS_COMPONENT_STORE_CORRUPT: NTSTATUS = 0xC015001A;
+pub const STATUS_SXS_FILE_HASH_MISMATCH: NTSTATUS = 0xC015001B;
+pub const STATUS_SXS_MANIFEST_IDENTITY_SAME_BUT_CONTENTS_DIFFERENT: NTSTATUS
+ = 0xC015001C;
+pub const STATUS_SXS_IDENTITIES_DIFFERENT: NTSTATUS = 0xC015001D;
+pub const STATUS_SXS_ASSEMBLY_IS_NOT_A_DEPLOYMENT: NTSTATUS = 0xC015001E;
+pub const STATUS_SXS_FILE_NOT_PART_OF_ASSEMBLY: NTSTATUS = 0xC015001F;
+pub const STATUS_ADVANCED_INSTALLER_FAILED: NTSTATUS = 0xC0150020;
+pub const STATUS_XML_ENCODING_MISMATCH: NTSTATUS = 0xC0150021;
+pub const STATUS_SXS_MANIFEST_TOO_BIG: NTSTATUS = 0xC0150022;
+pub const STATUS_SXS_SETTING_NOT_REGISTERED: NTSTATUS = 0xC0150023;
+pub const STATUS_SXS_TRANSACTION_CLOSURE_INCOMPLETE: NTSTATUS = 0xC0150024;
+pub const STATUS_SMI_PRIMITIVE_INSTALLER_FAILED: NTSTATUS = 0xC0150025;
+pub const STATUS_GENERIC_COMMAND_FAILED: NTSTATUS = 0xC0150026;
+pub const STATUS_SXS_FILE_HASH_MISSING: NTSTATUS = 0xC0150027;
+pub const STATUS_CLUSTER_INVALID_NODE: NTSTATUS = 0xC0130001;
+pub const STATUS_CLUSTER_NODE_EXISTS: NTSTATUS = 0xC0130002;
+pub const STATUS_CLUSTER_JOIN_IN_PROGRESS: NTSTATUS = 0xC0130003;
+pub const STATUS_CLUSTER_NODE_NOT_FOUND: NTSTATUS = 0xC0130004;
+pub const STATUS_CLUSTER_LOCAL_NODE_NOT_FOUND: NTSTATUS = 0xC0130005;
+pub const STATUS_CLUSTER_NETWORK_EXISTS: NTSTATUS = 0xC0130006;
+pub const STATUS_CLUSTER_NETWORK_NOT_FOUND: NTSTATUS = 0xC0130007;
+pub const STATUS_CLUSTER_NETINTERFACE_EXISTS: NTSTATUS = 0xC0130008;
+pub const STATUS_CLUSTER_NETINTERFACE_NOT_FOUND: NTSTATUS = 0xC0130009;
+pub const STATUS_CLUSTER_INVALID_REQUEST: NTSTATUS = 0xC013000A;
+pub const STATUS_CLUSTER_INVALID_NETWORK_PROVIDER: NTSTATUS = 0xC013000B;
+pub const STATUS_CLUSTER_NODE_DOWN: NTSTATUS = 0xC013000C;
+pub const STATUS_CLUSTER_NODE_UNREACHABLE: NTSTATUS = 0xC013000D;
+pub const STATUS_CLUSTER_NODE_NOT_MEMBER: NTSTATUS = 0xC013000E;
+pub const STATUS_CLUSTER_JOIN_NOT_IN_PROGRESS: NTSTATUS = 0xC013000F;
+pub const STATUS_CLUSTER_INVALID_NETWORK: NTSTATUS = 0xC0130010;
+pub const STATUS_CLUSTER_NO_NET_ADAPTERS: NTSTATUS = 0xC0130011;
+pub const STATUS_CLUSTER_NODE_UP: NTSTATUS = 0xC0130012;
+pub const STATUS_CLUSTER_NODE_PAUSED: NTSTATUS = 0xC0130013;
+pub const STATUS_CLUSTER_NODE_NOT_PAUSED: NTSTATUS = 0xC0130014;
+pub const STATUS_CLUSTER_NO_SECURITY_CONTEXT: NTSTATUS = 0xC0130015;
+pub const STATUS_CLUSTER_NETWORK_NOT_INTERNAL: NTSTATUS = 0xC0130016;
+pub const STATUS_CLUSTER_POISONED: NTSTATUS = 0xC0130017;
+pub const STATUS_CLUSTER_NON_CSV_PATH: NTSTATUS = 0xC0130018;
+pub const STATUS_CLUSTER_CSV_VOLUME_NOT_LOCAL: NTSTATUS = 0xC0130019;
+pub const STATUS_CLUSTER_CSV_READ_OPLOCK_BREAK_IN_PROGRESS: NTSTATUS = 0xC0130020;
+pub const STATUS_CLUSTER_CSV_AUTO_PAUSE_ERROR: NTSTATUS = 0xC0130021;
+pub const STATUS_CLUSTER_CSV_REDIRECTED: NTSTATUS = 0xC0130022;
+pub const STATUS_CLUSTER_CSV_NOT_REDIRECTED: NTSTATUS = 0xC0130023;
+pub const STATUS_CLUSTER_CSV_VOLUME_DRAINING: NTSTATUS = 0xC0130024;
+pub const STATUS_CLUSTER_CSV_SNAPSHOT_CREATION_IN_PROGRESS: NTSTATUS = 0xC0130025;
+pub const STATUS_CLUSTER_CSV_VOLUME_DRAINING_SUCCEEDED_DOWNLEVEL: NTSTATUS = 0xC0130026;
+pub const STATUS_CLUSTER_CSV_NO_SNAPSHOTS: NTSTATUS = 0xC0130027;
+pub const STATUS_CSV_IO_PAUSE_TIMEOUT: NTSTATUS = 0xC0130028;
+pub const STATUS_CLUSTER_CSV_INVALID_HANDLE: NTSTATUS = 0xC0130029;
+pub const STATUS_CLUSTER_CSV_SUPPORTED_ONLY_ON_COORDINATOR: NTSTATUS = 0xC0130030;
+pub const STATUS_TRANSACTIONAL_CONFLICT: NTSTATUS = 0xC0190001;
+pub const STATUS_INVALID_TRANSACTION: NTSTATUS = 0xC0190002;
+pub const STATUS_TRANSACTION_NOT_ACTIVE: NTSTATUS = 0xC0190003;
+pub const STATUS_TM_INITIALIZATION_FAILED: NTSTATUS = 0xC0190004;
+pub const STATUS_RM_NOT_ACTIVE: NTSTATUS = 0xC0190005;
+pub const STATUS_RM_METADATA_CORRUPT: NTSTATUS = 0xC0190006;
+pub const STATUS_TRANSACTION_NOT_JOINED: NTSTATUS = 0xC0190007;
+pub const STATUS_DIRECTORY_NOT_RM: NTSTATUS = 0xC0190008;
+pub const STATUS_COULD_NOT_RESIZE_LOG: NTSTATUS = 0x80190009;
+pub const STATUS_TRANSACTIONS_UNSUPPORTED_REMOTE: NTSTATUS = 0xC019000A;
+pub const STATUS_LOG_RESIZE_INVALID_SIZE: NTSTATUS = 0xC019000B;
+pub const STATUS_REMOTE_FILE_VERSION_MISMATCH: NTSTATUS = 0xC019000C;
+pub const STATUS_CRM_PROTOCOL_ALREADY_EXISTS: NTSTATUS = 0xC019000F;
+pub const STATUS_TRANSACTION_PROPAGATION_FAILED: NTSTATUS = 0xC0190010;
+pub const STATUS_CRM_PROTOCOL_NOT_FOUND: NTSTATUS = 0xC0190011;
+pub const STATUS_TRANSACTION_SUPERIOR_EXISTS: NTSTATUS = 0xC0190012;
+pub const STATUS_TRANSACTION_REQUEST_NOT_VALID: NTSTATUS = 0xC0190013;
+pub const STATUS_TRANSACTION_NOT_REQUESTED: NTSTATUS = 0xC0190014;
+pub const STATUS_TRANSACTION_ALREADY_ABORTED: NTSTATUS = 0xC0190015;
+pub const STATUS_TRANSACTION_ALREADY_COMMITTED: NTSTATUS = 0xC0190016;
+pub const STATUS_TRANSACTION_INVALID_MARSHALL_BUFFER: NTSTATUS = 0xC0190017;
+pub const STATUS_CURRENT_TRANSACTION_NOT_VALID: NTSTATUS = 0xC0190018;
+pub const STATUS_LOG_GROWTH_FAILED: NTSTATUS = 0xC0190019;
+pub const STATUS_OBJECT_NO_LONGER_EXISTS: NTSTATUS = 0xC0190021;
+pub const STATUS_STREAM_MINIVERSION_NOT_FOUND: NTSTATUS = 0xC0190022;
+pub const STATUS_STREAM_MINIVERSION_NOT_VALID: NTSTATUS = 0xC0190023;
+pub const STATUS_MINIVERSION_INACCESSIBLE_FROM_SPECIFIED_TRANSACTION: NTSTATUS
+ = 0xC0190024;
+pub const STATUS_CANT_OPEN_MINIVERSION_WITH_MODIFY_INTENT: NTSTATUS = 0xC0190025;
+pub const STATUS_CANT_CREATE_MORE_STREAM_MINIVERSIONS: NTSTATUS = 0xC0190026;
+pub const STATUS_HANDLE_NO_LONGER_VALID: NTSTATUS = 0xC0190028;
+pub const STATUS_NO_TXF_METADATA: NTSTATUS = 0x80190029;
+pub const STATUS_LOG_CORRUPTION_DETECTED: NTSTATUS = 0xC0190030;
+pub const STATUS_CANT_RECOVER_WITH_HANDLE_OPEN: NTSTATUS = 0x80190031;
+pub const STATUS_RM_DISCONNECTED: NTSTATUS = 0xC0190032;
+pub const STATUS_ENLISTMENT_NOT_SUPERIOR: NTSTATUS = 0xC0190033;
+pub const STATUS_RECOVERY_NOT_NEEDED: NTSTATUS = 0x40190034;
+pub const STATUS_RM_ALREADY_STARTED: NTSTATUS = 0x40190035;
+pub const STATUS_FILE_IDENTITY_NOT_PERSISTENT: NTSTATUS = 0xC0190036;
+pub const STATUS_CANT_BREAK_TRANSACTIONAL_DEPENDENCY: NTSTATUS = 0xC0190037;
+pub const STATUS_CANT_CROSS_RM_BOUNDARY: NTSTATUS = 0xC0190038;
+pub const STATUS_TXF_DIR_NOT_EMPTY: NTSTATUS = 0xC0190039;
+pub const STATUS_INDOUBT_TRANSACTIONS_EXIST: NTSTATUS = 0xC019003A;
+pub const STATUS_TM_VOLATILE: NTSTATUS = 0xC019003B;
+pub const STATUS_ROLLBACK_TIMER_EXPIRED: NTSTATUS = 0xC019003C;
+pub const STATUS_TXF_ATTRIBUTE_CORRUPT: NTSTATUS = 0xC019003D;
+pub const STATUS_EFS_NOT_ALLOWED_IN_TRANSACTION: NTSTATUS = 0xC019003E;
+pub const STATUS_TRANSACTIONAL_OPEN_NOT_ALLOWED: NTSTATUS = 0xC019003F;
+pub const STATUS_TRANSACTED_MAPPING_UNSUPPORTED_REMOTE: NTSTATUS = 0xC0190040;
+pub const STATUS_TXF_METADATA_ALREADY_PRESENT: NTSTATUS = 0x80190041;
+pub const STATUS_TRANSACTION_SCOPE_CALLBACKS_NOT_SET: NTSTATUS = 0x80190042;
+pub const STATUS_TRANSACTION_REQUIRED_PROMOTION: NTSTATUS = 0xC0190043;
+pub const STATUS_CANNOT_EXECUTE_FILE_IN_TRANSACTION: NTSTATUS = 0xC0190044;
+pub const STATUS_TRANSACTIONS_NOT_FROZEN: NTSTATUS = 0xC0190045;
+pub const STATUS_TRANSACTION_FREEZE_IN_PROGRESS: NTSTATUS = 0xC0190046;
+pub const STATUS_NOT_SNAPSHOT_VOLUME: NTSTATUS = 0xC0190047;
+pub const STATUS_NO_SAVEPOINT_WITH_OPEN_FILES: NTSTATUS = 0xC0190048;
+pub const STATUS_SPARSE_NOT_ALLOWED_IN_TRANSACTION: NTSTATUS = 0xC0190049;
+pub const STATUS_TM_IDENTITY_MISMATCH: NTSTATUS = 0xC019004A;
+pub const STATUS_FLOATED_SECTION: NTSTATUS = 0xC019004B;
+pub const STATUS_CANNOT_ACCEPT_TRANSACTED_WORK: NTSTATUS = 0xC019004C;
+pub const STATUS_CANNOT_ABORT_TRANSACTIONS: NTSTATUS = 0xC019004D;
+pub const STATUS_TRANSACTION_NOT_FOUND: NTSTATUS = 0xC019004E;
+pub const STATUS_RESOURCEMANAGER_NOT_FOUND: NTSTATUS = 0xC019004F;
+pub const STATUS_ENLISTMENT_NOT_FOUND: NTSTATUS = 0xC0190050;
+pub const STATUS_TRANSACTIONMANAGER_NOT_FOUND: NTSTATUS = 0xC0190051;
+pub const STATUS_TRANSACTIONMANAGER_NOT_ONLINE: NTSTATUS = 0xC0190052;
+pub const STATUS_TRANSACTIONMANAGER_RECOVERY_NAME_COLLISION: NTSTATUS = 0xC0190053;
+pub const STATUS_TRANSACTION_NOT_ROOT: NTSTATUS = 0xC0190054;
+pub const STATUS_TRANSACTION_OBJECT_EXPIRED: NTSTATUS = 0xC0190055;
+pub const STATUS_COMPRESSION_NOT_ALLOWED_IN_TRANSACTION: NTSTATUS = 0xC0190056;
+pub const STATUS_TRANSACTION_RESPONSE_NOT_ENLISTED: NTSTATUS = 0xC0190057;
+pub const STATUS_TRANSACTION_RECORD_TOO_LONG: NTSTATUS = 0xC0190058;
+pub const STATUS_NO_LINK_TRACKING_IN_TRANSACTION: NTSTATUS = 0xC0190059;
+pub const STATUS_OPERATION_NOT_SUPPORTED_IN_TRANSACTION: NTSTATUS = 0xC019005A;
+pub const STATUS_TRANSACTION_INTEGRITY_VIOLATED: NTSTATUS = 0xC019005B;
+pub const STATUS_TRANSACTIONMANAGER_IDENTITY_MISMATCH: NTSTATUS = 0xC019005C;
+pub const STATUS_RM_CANNOT_BE_FROZEN_FOR_SNAPSHOT: NTSTATUS = 0xC019005D;
+pub const STATUS_TRANSACTION_MUST_WRITETHROUGH: NTSTATUS = 0xC019005E;
+pub const STATUS_TRANSACTION_NO_SUPERIOR: NTSTATUS = 0xC019005F;
+pub const STATUS_EXPIRED_HANDLE: NTSTATUS = 0xC0190060;
+pub const STATUS_TRANSACTION_NOT_ENLISTED: NTSTATUS = 0xC0190061;
+pub const STATUS_LOG_SECTOR_INVALID: NTSTATUS = 0xC01A0001;
+pub const STATUS_LOG_SECTOR_PARITY_INVALID: NTSTATUS = 0xC01A0002;
+pub const STATUS_LOG_SECTOR_REMAPPED: NTSTATUS = 0xC01A0003;
+pub const STATUS_LOG_BLOCK_INCOMPLETE: NTSTATUS = 0xC01A0004;
+pub const STATUS_LOG_INVALID_RANGE: NTSTATUS = 0xC01A0005;
+pub const STATUS_LOG_BLOCKS_EXHAUSTED: NTSTATUS = 0xC01A0006;
+pub const STATUS_LOG_READ_CONTEXT_INVALID: NTSTATUS = 0xC01A0007;
+pub const STATUS_LOG_RESTART_INVALID: NTSTATUS = 0xC01A0008;
+pub const STATUS_LOG_BLOCK_VERSION: NTSTATUS = 0xC01A0009;
+pub const STATUS_LOG_BLOCK_INVALID: NTSTATUS = 0xC01A000A;
+pub const STATUS_LOG_READ_MODE_INVALID: NTSTATUS = 0xC01A000B;
+pub const STATUS_LOG_NO_RESTART: NTSTATUS = 0x401A000C;
+pub const STATUS_LOG_METADATA_CORRUPT: NTSTATUS = 0xC01A000D;
+pub const STATUS_LOG_METADATA_INVALID: NTSTATUS = 0xC01A000E;
+pub const STATUS_LOG_METADATA_INCONSISTENT: NTSTATUS = 0xC01A000F;
+pub const STATUS_LOG_RESERVATION_INVALID: NTSTATUS = 0xC01A0010;
+pub const STATUS_LOG_CANT_DELETE: NTSTATUS = 0xC01A0011;
+pub const STATUS_LOG_CONTAINER_LIMIT_EXCEEDED: NTSTATUS = 0xC01A0012;
+pub const STATUS_LOG_START_OF_LOG: NTSTATUS = 0xC01A0013;
+pub const STATUS_LOG_POLICY_ALREADY_INSTALLED: NTSTATUS = 0xC01A0014;
+pub const STATUS_LOG_POLICY_NOT_INSTALLED: NTSTATUS = 0xC01A0015;
+pub const STATUS_LOG_POLICY_INVALID: NTSTATUS = 0xC01A0016;
+pub const STATUS_LOG_POLICY_CONFLICT: NTSTATUS = 0xC01A0017;
+pub const STATUS_LOG_PINNED_ARCHIVE_TAIL: NTSTATUS = 0xC01A0018;
+pub const STATUS_LOG_RECORD_NONEXISTENT: NTSTATUS = 0xC01A0019;
+pub const STATUS_LOG_RECORDS_RESERVED_INVALID: NTSTATUS = 0xC01A001A;
+pub const STATUS_LOG_SPACE_RESERVED_INVALID: NTSTATUS = 0xC01A001B;
+pub const STATUS_LOG_TAIL_INVALID: NTSTATUS = 0xC01A001C;
+pub const STATUS_LOG_FULL: NTSTATUS = 0xC01A001D;
+pub const STATUS_LOG_MULTIPLEXED: NTSTATUS = 0xC01A001E;
+pub const STATUS_LOG_DEDICATED: NTSTATUS = 0xC01A001F;
+pub const STATUS_LOG_ARCHIVE_NOT_IN_PROGRESS: NTSTATUS = 0xC01A0020;
+pub const STATUS_LOG_ARCHIVE_IN_PROGRESS: NTSTATUS = 0xC01A0021;
+pub const STATUS_LOG_EPHEMERAL: NTSTATUS = 0xC01A0022;
+pub const STATUS_LOG_NOT_ENOUGH_CONTAINERS: NTSTATUS = 0xC01A0023;
+pub const STATUS_LOG_CLIENT_ALREADY_REGISTERED: NTSTATUS = 0xC01A0024;
+pub const STATUS_LOG_CLIENT_NOT_REGISTERED: NTSTATUS = 0xC01A0025;
+pub const STATUS_LOG_FULL_HANDLER_IN_PROGRESS: NTSTATUS = 0xC01A0026;
+pub const STATUS_LOG_CONTAINER_READ_FAILED: NTSTATUS = 0xC01A0027;
+pub const STATUS_LOG_CONTAINER_WRITE_FAILED: NTSTATUS = 0xC01A0028;
+pub const STATUS_LOG_CONTAINER_OPEN_FAILED: NTSTATUS = 0xC01A0029;
+pub const STATUS_LOG_CONTAINER_STATE_INVALID: NTSTATUS = 0xC01A002A;
+pub const STATUS_LOG_STATE_INVALID: NTSTATUS = 0xC01A002B;
+pub const STATUS_LOG_PINNED: NTSTATUS = 0xC01A002C;
+pub const STATUS_LOG_METADATA_FLUSH_FAILED: NTSTATUS = 0xC01A002D;
+pub const STATUS_LOG_INCONSISTENT_SECURITY: NTSTATUS = 0xC01A002E;
+pub const STATUS_LOG_APPENDED_FLUSH_FAILED: NTSTATUS = 0xC01A002F;
+pub const STATUS_LOG_PINNED_RESERVATION: NTSTATUS = 0xC01A0030;
+pub const STATUS_VIDEO_HUNG_DISPLAY_DRIVER_THREAD: NTSTATUS = 0xC01B00EA;
+pub const STATUS_VIDEO_HUNG_DISPLAY_DRIVER_THREAD_RECOVERED: NTSTATUS = 0x801B00EB;
+pub const STATUS_VIDEO_DRIVER_DEBUG_REPORT_REQUEST: NTSTATUS = 0x401B00EC;
+pub const STATUS_MONITOR_NO_DESCRIPTOR: NTSTATUS = 0xC01D0001;
+pub const STATUS_MONITOR_UNKNOWN_DESCRIPTOR_FORMAT: NTSTATUS = 0xC01D0002;
+pub const STATUS_MONITOR_INVALID_DESCRIPTOR_CHECKSUM: NTSTATUS = 0xC01D0003;
+pub const STATUS_MONITOR_INVALID_STANDARD_TIMING_BLOCK: NTSTATUS = 0xC01D0004;
+pub const STATUS_MONITOR_WMI_DATABLOCK_REGISTRATION_FAILED: NTSTATUS = 0xC01D0005;
+pub const STATUS_MONITOR_INVALID_SERIAL_NUMBER_MONDSC_BLOCK: NTSTATUS = 0xC01D0006;
+pub const STATUS_MONITOR_INVALID_USER_FRIENDLY_MONDSC_BLOCK: NTSTATUS = 0xC01D0007;
+pub const STATUS_MONITOR_NO_MORE_DESCRIPTOR_DATA: NTSTATUS = 0xC01D0008;
+pub const STATUS_MONITOR_INVALID_DETAILED_TIMING_BLOCK: NTSTATUS = 0xC01D0009;
+pub const STATUS_MONITOR_INVALID_MANUFACTURE_DATE: NTSTATUS = 0xC01D000A;
+pub const STATUS_GRAPHICS_NOT_EXCLUSIVE_MODE_OWNER: NTSTATUS = 0xC01E0000;
+pub const STATUS_GRAPHICS_INSUFFICIENT_DMA_BUFFER: NTSTATUS = 0xC01E0001;
+pub const STATUS_GRAPHICS_INVALID_DISPLAY_ADAPTER: NTSTATUS = 0xC01E0002;
+pub const STATUS_GRAPHICS_ADAPTER_WAS_RESET: NTSTATUS = 0xC01E0003;
+pub const STATUS_GRAPHICS_INVALID_DRIVER_MODEL: NTSTATUS = 0xC01E0004;
+pub const STATUS_GRAPHICS_PRESENT_MODE_CHANGED: NTSTATUS = 0xC01E0005;
+pub const STATUS_GRAPHICS_PRESENT_OCCLUDED: NTSTATUS = 0xC01E0006;
+pub const STATUS_GRAPHICS_PRESENT_DENIED: NTSTATUS = 0xC01E0007;
+pub const STATUS_GRAPHICS_CANNOTCOLORCONVERT: NTSTATUS = 0xC01E0008;
+pub const STATUS_GRAPHICS_DRIVER_MISMATCH: NTSTATUS = 0xC01E0009;
+pub const STATUS_GRAPHICS_PARTIAL_DATA_POPULATED: NTSTATUS = 0x401E000A;
+pub const STATUS_GRAPHICS_PRESENT_REDIRECTION_DISABLED: NTSTATUS = 0xC01E000B;
+pub const STATUS_GRAPHICS_PRESENT_UNOCCLUDED: NTSTATUS = 0xC01E000C;
+pub const STATUS_GRAPHICS_WINDOWDC_NOT_AVAILABLE: NTSTATUS = 0xC01E000D;
+pub const STATUS_GRAPHICS_WINDOWLESS_PRESENT_DISABLED: NTSTATUS = 0xC01E000E;
+pub const STATUS_GRAPHICS_NO_VIDEO_MEMORY: NTSTATUS = 0xC01E0100;
+pub const STATUS_GRAPHICS_CANT_LOCK_MEMORY: NTSTATUS = 0xC01E0101;
+pub const STATUS_GRAPHICS_ALLOCATION_BUSY: NTSTATUS = 0xC01E0102;
+pub const STATUS_GRAPHICS_TOO_MANY_REFERENCES: NTSTATUS = 0xC01E0103;
+pub const STATUS_GRAPHICS_TRY_AGAIN_LATER: NTSTATUS = 0xC01E0104;
+pub const STATUS_GRAPHICS_TRY_AGAIN_NOW: NTSTATUS = 0xC01E0105;
+pub const STATUS_GRAPHICS_ALLOCATION_INVALID: NTSTATUS = 0xC01E0106;
+pub const STATUS_GRAPHICS_UNSWIZZLING_APERTURE_UNAVAILABLE: NTSTATUS = 0xC01E0107;
+pub const STATUS_GRAPHICS_UNSWIZZLING_APERTURE_UNSUPPORTED: NTSTATUS = 0xC01E0108;
+pub const STATUS_GRAPHICS_CANT_EVICT_PINNED_ALLOCATION: NTSTATUS = 0xC01E0109;
+pub const STATUS_GRAPHICS_INVALID_ALLOCATION_USAGE: NTSTATUS = 0xC01E0110;
+pub const STATUS_GRAPHICS_CANT_RENDER_LOCKED_ALLOCATION: NTSTATUS = 0xC01E0111;
+pub const STATUS_GRAPHICS_ALLOCATION_CLOSED: NTSTATUS = 0xC01E0112;
+pub const STATUS_GRAPHICS_INVALID_ALLOCATION_INSTANCE: NTSTATUS = 0xC01E0113;
+pub const STATUS_GRAPHICS_INVALID_ALLOCATION_HANDLE: NTSTATUS = 0xC01E0114;
+pub const STATUS_GRAPHICS_WRONG_ALLOCATION_DEVICE: NTSTATUS = 0xC01E0115;
+pub const STATUS_GRAPHICS_ALLOCATION_CONTENT_LOST: NTSTATUS = 0xC01E0116;
+pub const STATUS_GRAPHICS_GPU_EXCEPTION_ON_DEVICE: NTSTATUS = 0xC01E0200;
+pub const STATUS_GRAPHICS_SKIP_ALLOCATION_PREPARATION: NTSTATUS = 0x401E0201;
+pub const STATUS_GRAPHICS_INVALID_VIDPN_TOPOLOGY: NTSTATUS = 0xC01E0300;
+pub const STATUS_GRAPHICS_VIDPN_TOPOLOGY_NOT_SUPPORTED: NTSTATUS = 0xC01E0301;
+pub const STATUS_GRAPHICS_VIDPN_TOPOLOGY_CURRENTLY_NOT_SUPPORTED: NTSTATUS = 0xC01E0302;
+pub const STATUS_GRAPHICS_INVALID_VIDPN: NTSTATUS = 0xC01E0303;
+pub const STATUS_GRAPHICS_INVALID_VIDEO_PRESENT_SOURCE: NTSTATUS = 0xC01E0304;
+pub const STATUS_GRAPHICS_INVALID_VIDEO_PRESENT_TARGET: NTSTATUS = 0xC01E0305;
+pub const STATUS_GRAPHICS_VIDPN_MODALITY_NOT_SUPPORTED: NTSTATUS = 0xC01E0306;
+pub const STATUS_GRAPHICS_MODE_NOT_PINNED: NTSTATUS = 0x401E0307;
+pub const STATUS_GRAPHICS_INVALID_VIDPN_SOURCEMODESET: NTSTATUS = 0xC01E0308;
+pub const STATUS_GRAPHICS_INVALID_VIDPN_TARGETMODESET: NTSTATUS = 0xC01E0309;
+pub const STATUS_GRAPHICS_INVALID_FREQUENCY: NTSTATUS = 0xC01E030A;
+pub const STATUS_GRAPHICS_INVALID_ACTIVE_REGION: NTSTATUS = 0xC01E030B;
+pub const STATUS_GRAPHICS_INVALID_TOTAL_REGION: NTSTATUS = 0xC01E030C;
+pub const STATUS_GRAPHICS_INVALID_VIDEO_PRESENT_SOURCE_MODE: NTSTATUS = 0xC01E0310;
+pub const STATUS_GRAPHICS_INVALID_VIDEO_PRESENT_TARGET_MODE: NTSTATUS = 0xC01E0311;
+pub const STATUS_GRAPHICS_PINNED_MODE_MUST_REMAIN_IN_SET: NTSTATUS = 0xC01E0312;
+pub const STATUS_GRAPHICS_PATH_ALREADY_IN_TOPOLOGY: NTSTATUS = 0xC01E0313;
+pub const STATUS_GRAPHICS_MODE_ALREADY_IN_MODESET: NTSTATUS = 0xC01E0314;
+pub const STATUS_GRAPHICS_INVALID_VIDEOPRESENTSOURCESET: NTSTATUS = 0xC01E0315;
+pub const STATUS_GRAPHICS_INVALID_VIDEOPRESENTTARGETSET: NTSTATUS = 0xC01E0316;
+pub const STATUS_GRAPHICS_SOURCE_ALREADY_IN_SET: NTSTATUS = 0xC01E0317;
+pub const STATUS_GRAPHICS_TARGET_ALREADY_IN_SET: NTSTATUS = 0xC01E0318;
+pub const STATUS_GRAPHICS_INVALID_VIDPN_PRESENT_PATH: NTSTATUS = 0xC01E0319;
+pub const STATUS_GRAPHICS_NO_RECOMMENDED_VIDPN_TOPOLOGY: NTSTATUS = 0xC01E031A;
+pub const STATUS_GRAPHICS_INVALID_MONITOR_FREQUENCYRANGESET: NTSTATUS = 0xC01E031B;
+pub const STATUS_GRAPHICS_INVALID_MONITOR_FREQUENCYRANGE: NTSTATUS = 0xC01E031C;
+pub const STATUS_GRAPHICS_FREQUENCYRANGE_NOT_IN_SET: NTSTATUS = 0xC01E031D;
+pub const STATUS_GRAPHICS_NO_PREFERRED_MODE: NTSTATUS = 0x401E031E;
+pub const STATUS_GRAPHICS_FREQUENCYRANGE_ALREADY_IN_SET: NTSTATUS = 0xC01E031F;
+pub const STATUS_GRAPHICS_STALE_MODESET: NTSTATUS = 0xC01E0320;
+pub const STATUS_GRAPHICS_INVALID_MONITOR_SOURCEMODESET: NTSTATUS = 0xC01E0321;
+pub const STATUS_GRAPHICS_INVALID_MONITOR_SOURCE_MODE: NTSTATUS = 0xC01E0322;
+pub const STATUS_GRAPHICS_NO_RECOMMENDED_FUNCTIONAL_VIDPN: NTSTATUS = 0xC01E0323;
+pub const STATUS_GRAPHICS_MODE_ID_MUST_BE_UNIQUE: NTSTATUS = 0xC01E0324;
+pub const STATUS_GRAPHICS_EMPTY_ADAPTER_MONITOR_MODE_SUPPORT_INTERSECTION: NTSTATUS
+ = 0xC01E0325;
+pub const STATUS_GRAPHICS_VIDEO_PRESENT_TARGETS_LESS_THAN_SOURCES: NTSTATUS = 0xC01E0326;
+pub const STATUS_GRAPHICS_PATH_NOT_IN_TOPOLOGY: NTSTATUS = 0xC01E0327;
+pub const STATUS_GRAPHICS_ADAPTER_MUST_HAVE_AT_LEAST_ONE_SOURCE: NTSTATUS = 0xC01E0328;
+pub const STATUS_GRAPHICS_ADAPTER_MUST_HAVE_AT_LEAST_ONE_TARGET: NTSTATUS = 0xC01E0329;
+pub const STATUS_GRAPHICS_INVALID_MONITORDESCRIPTORSET: NTSTATUS = 0xC01E032A;
+pub const STATUS_GRAPHICS_INVALID_MONITORDESCRIPTOR: NTSTATUS = 0xC01E032B;
+pub const STATUS_GRAPHICS_MONITORDESCRIPTOR_NOT_IN_SET: NTSTATUS = 0xC01E032C;
+pub const STATUS_GRAPHICS_MONITORDESCRIPTOR_ALREADY_IN_SET: NTSTATUS = 0xC01E032D;
+pub const STATUS_GRAPHICS_MONITORDESCRIPTOR_ID_MUST_BE_UNIQUE: NTSTATUS = 0xC01E032E;
+pub const STATUS_GRAPHICS_INVALID_VIDPN_TARGET_SUBSET_TYPE: NTSTATUS = 0xC01E032F;
+pub const STATUS_GRAPHICS_RESOURCES_NOT_RELATED: NTSTATUS = 0xC01E0330;
+pub const STATUS_GRAPHICS_SOURCE_ID_MUST_BE_UNIQUE: NTSTATUS = 0xC01E0331;
+pub const STATUS_GRAPHICS_TARGET_ID_MUST_BE_UNIQUE: NTSTATUS = 0xC01E0332;
+pub const STATUS_GRAPHICS_NO_AVAILABLE_VIDPN_TARGET: NTSTATUS = 0xC01E0333;
+pub const STATUS_GRAPHICS_MONITOR_COULD_NOT_BE_ASSOCIATED_WITH_ADAPTER: NTSTATUS
+ = 0xC01E0334;
+pub const STATUS_GRAPHICS_NO_VIDPNMGR: NTSTATUS = 0xC01E0335;
+pub const STATUS_GRAPHICS_NO_ACTIVE_VIDPN: NTSTATUS = 0xC01E0336;
+pub const STATUS_GRAPHICS_STALE_VIDPN_TOPOLOGY: NTSTATUS = 0xC01E0337;
+pub const STATUS_GRAPHICS_MONITOR_NOT_CONNECTED: NTSTATUS = 0xC01E0338;
+pub const STATUS_GRAPHICS_SOURCE_NOT_IN_TOPOLOGY: NTSTATUS = 0xC01E0339;
+pub const STATUS_GRAPHICS_INVALID_PRIMARYSURFACE_SIZE: NTSTATUS = 0xC01E033A;
+pub const STATUS_GRAPHICS_INVALID_VISIBLEREGION_SIZE: NTSTATUS = 0xC01E033B;
+pub const STATUS_GRAPHICS_INVALID_STRIDE: NTSTATUS = 0xC01E033C;
+pub const STATUS_GRAPHICS_INVALID_PIXELFORMAT: NTSTATUS = 0xC01E033D;
+pub const STATUS_GRAPHICS_INVALID_COLORBASIS: NTSTATUS = 0xC01E033E;
+pub const STATUS_GRAPHICS_INVALID_PIXELVALUEACCESSMODE: NTSTATUS = 0xC01E033F;
+pub const STATUS_GRAPHICS_TARGET_NOT_IN_TOPOLOGY: NTSTATUS = 0xC01E0340;
+pub const STATUS_GRAPHICS_NO_DISPLAY_MODE_MANAGEMENT_SUPPORT: NTSTATUS = 0xC01E0341;
+pub const STATUS_GRAPHICS_VIDPN_SOURCE_IN_USE: NTSTATUS = 0xC01E0342;
+pub const STATUS_GRAPHICS_CANT_ACCESS_ACTIVE_VIDPN: NTSTATUS = 0xC01E0343;
+pub const STATUS_GRAPHICS_INVALID_PATH_IMPORTANCE_ORDINAL: NTSTATUS = 0xC01E0344;
+pub const STATUS_GRAPHICS_INVALID_PATH_CONTENT_GEOMETRY_TRANSFORMATION: NTSTATUS
+ = 0xC01E0345;
+pub const STATUS_GRAPHICS_PATH_CONTENT_GEOMETRY_TRANSFORMATION_NOT_SUPPORTED: NTSTATUS
+ = 0xC01E0346;
+pub const STATUS_GRAPHICS_INVALID_GAMMA_RAMP: NTSTATUS = 0xC01E0347;
+pub const STATUS_GRAPHICS_GAMMA_RAMP_NOT_SUPPORTED: NTSTATUS = 0xC01E0348;
+pub const STATUS_GRAPHICS_MULTISAMPLING_NOT_SUPPORTED: NTSTATUS = 0xC01E0349;
+pub const STATUS_GRAPHICS_MODE_NOT_IN_MODESET: NTSTATUS = 0xC01E034A;
+pub const STATUS_GRAPHICS_DATASET_IS_EMPTY: NTSTATUS = 0x401E034B;
+pub const STATUS_GRAPHICS_NO_MORE_ELEMENTS_IN_DATASET: NTSTATUS = 0x401E034C;
+pub const STATUS_GRAPHICS_INVALID_VIDPN_TOPOLOGY_RECOMMENDATION_REASON: NTSTATUS
+ = 0xC01E034D;
+pub const STATUS_GRAPHICS_INVALID_PATH_CONTENT_TYPE: NTSTATUS = 0xC01E034E;
+pub const STATUS_GRAPHICS_INVALID_COPYPROTECTION_TYPE: NTSTATUS = 0xC01E034F;
+pub const STATUS_GRAPHICS_UNASSIGNED_MODESET_ALREADY_EXISTS: NTSTATUS = 0xC01E0350;
+pub const STATUS_GRAPHICS_PATH_CONTENT_GEOMETRY_TRANSFORMATION_NOT_PINNED: NTSTATUS = 0x401E0351;
+pub const STATUS_GRAPHICS_INVALID_SCANLINE_ORDERING: NTSTATUS = 0xC01E0352;
+pub const STATUS_GRAPHICS_TOPOLOGY_CHANGES_NOT_ALLOWED: NTSTATUS = 0xC01E0353;
+pub const STATUS_GRAPHICS_NO_AVAILABLE_IMPORTANCE_ORDINALS: NTSTATUS = 0xC01E0354;
+pub const STATUS_GRAPHICS_INCOMPATIBLE_PRIVATE_FORMAT: NTSTATUS = 0xC01E0355;
+pub const STATUS_GRAPHICS_INVALID_MODE_PRUNING_ALGORITHM: NTSTATUS = 0xC01E0356;
+pub const STATUS_GRAPHICS_INVALID_MONITOR_CAPABILITY_ORIGIN: NTSTATUS = 0xC01E0357;
+pub const STATUS_GRAPHICS_INVALID_MONITOR_FREQUENCYRANGE_CONSTRAINT: NTSTATUS
+ = 0xC01E0358;
+pub const STATUS_GRAPHICS_MAX_NUM_PATHS_REACHED: NTSTATUS = 0xC01E0359;
+pub const STATUS_GRAPHICS_CANCEL_VIDPN_TOPOLOGY_AUGMENTATION: NTSTATUS = 0xC01E035A;
+pub const STATUS_GRAPHICS_INVALID_CLIENT_TYPE: NTSTATUS = 0xC01E035B;
+pub const STATUS_GRAPHICS_CLIENTVIDPN_NOT_SET: NTSTATUS = 0xC01E035C;
+pub const STATUS_GRAPHICS_SPECIFIED_CHILD_ALREADY_CONNECTED: NTSTATUS = 0xC01E0400;
+pub const STATUS_GRAPHICS_CHILD_DESCRIPTOR_NOT_SUPPORTED: NTSTATUS = 0xC01E0401;
+pub const STATUS_GRAPHICS_UNKNOWN_CHILD_STATUS: NTSTATUS = 0x401E042F;
+pub const STATUS_GRAPHICS_NOT_A_LINKED_ADAPTER: NTSTATUS = 0xC01E0430;
+pub const STATUS_GRAPHICS_LEADLINK_NOT_ENUMERATED: NTSTATUS = 0xC01E0431;
+pub const STATUS_GRAPHICS_CHAINLINKS_NOT_ENUMERATED: NTSTATUS = 0xC01E0432;
+pub const STATUS_GRAPHICS_ADAPTER_CHAIN_NOT_READY: NTSTATUS = 0xC01E0433;
+pub const STATUS_GRAPHICS_CHAINLINKS_NOT_STARTED: NTSTATUS = 0xC01E0434;
+pub const STATUS_GRAPHICS_CHAINLINKS_NOT_POWERED_ON: NTSTATUS = 0xC01E0435;
+pub const STATUS_GRAPHICS_INCONSISTENT_DEVICE_LINK_STATE: NTSTATUS = 0xC01E0436;
+pub const STATUS_GRAPHICS_LEADLINK_START_DEFERRED: NTSTATUS = 0x401E0437;
+pub const STATUS_GRAPHICS_NOT_POST_DEVICE_DRIVER: NTSTATUS = 0xC01E0438;
+pub const STATUS_GRAPHICS_POLLING_TOO_FREQUENTLY: NTSTATUS = 0x401E0439;
+pub const STATUS_GRAPHICS_START_DEFERRED: NTSTATUS = 0x401E043A;
+pub const STATUS_GRAPHICS_ADAPTER_ACCESS_NOT_EXCLUDED: NTSTATUS = 0xC01E043B;
+pub const STATUS_GRAPHICS_DEPENDABLE_CHILD_STATUS: NTSTATUS = 0x401E043C;
+pub const STATUS_GRAPHICS_OPM_NOT_SUPPORTED: NTSTATUS = 0xC01E0500;
+pub const STATUS_GRAPHICS_COPP_NOT_SUPPORTED: NTSTATUS = 0xC01E0501;
+pub const STATUS_GRAPHICS_UAB_NOT_SUPPORTED: NTSTATUS = 0xC01E0502;
+pub const STATUS_GRAPHICS_OPM_INVALID_ENCRYPTED_PARAMETERS: NTSTATUS = 0xC01E0503;
+pub const STATUS_GRAPHICS_OPM_NO_PROTECTED_OUTPUTS_EXIST: NTSTATUS = 0xC01E0505;
+pub const STATUS_GRAPHICS_OPM_INTERNAL_ERROR: NTSTATUS = 0xC01E050B;
+pub const STATUS_GRAPHICS_OPM_INVALID_HANDLE: NTSTATUS = 0xC01E050C;
+pub const STATUS_GRAPHICS_PVP_INVALID_CERTIFICATE_LENGTH: NTSTATUS = 0xC01E050E;
+pub const STATUS_GRAPHICS_OPM_SPANNING_MODE_ENABLED: NTSTATUS = 0xC01E050F;
+pub const STATUS_GRAPHICS_OPM_THEATER_MODE_ENABLED: NTSTATUS = 0xC01E0510;
+pub const STATUS_GRAPHICS_PVP_HFS_FAILED: NTSTATUS = 0xC01E0511;
+pub const STATUS_GRAPHICS_OPM_INVALID_SRM: NTSTATUS = 0xC01E0512;
+pub const STATUS_GRAPHICS_OPM_OUTPUT_DOES_NOT_SUPPORT_HDCP: NTSTATUS = 0xC01E0513;
+pub const STATUS_GRAPHICS_OPM_OUTPUT_DOES_NOT_SUPPORT_ACP: NTSTATUS = 0xC01E0514;
+pub const STATUS_GRAPHICS_OPM_OUTPUT_DOES_NOT_SUPPORT_CGMSA: NTSTATUS = 0xC01E0515;
+pub const STATUS_GRAPHICS_OPM_HDCP_SRM_NEVER_SET: NTSTATUS = 0xC01E0516;
+pub const STATUS_GRAPHICS_OPM_RESOLUTION_TOO_HIGH: NTSTATUS = 0xC01E0517;
+pub const STATUS_GRAPHICS_OPM_ALL_HDCP_HARDWARE_ALREADY_IN_USE: NTSTATUS = 0xC01E0518;
+pub const STATUS_GRAPHICS_OPM_PROTECTED_OUTPUT_NO_LONGER_EXISTS: NTSTATUS = 0xC01E051A;
+pub const STATUS_GRAPHICS_OPM_PROTECTED_OUTPUT_DOES_NOT_HAVE_COPP_SEMANTICS: NTSTATUS
+ = 0xC01E051C;
+pub const STATUS_GRAPHICS_OPM_INVALID_INFORMATION_REQUEST: NTSTATUS = 0xC01E051D;
+pub const STATUS_GRAPHICS_OPM_DRIVER_INTERNAL_ERROR: NTSTATUS = 0xC01E051E;
+pub const STATUS_GRAPHICS_OPM_PROTECTED_OUTPUT_DOES_NOT_HAVE_OPM_SEMANTICS: NTSTATUS
+ = 0xC01E051F;
+pub const STATUS_GRAPHICS_OPM_SIGNALING_NOT_SUPPORTED: NTSTATUS = 0xC01E0520;
+pub const STATUS_GRAPHICS_OPM_INVALID_CONFIGURATION_REQUEST: NTSTATUS = 0xC01E0521;
+pub const STATUS_GRAPHICS_I2C_NOT_SUPPORTED: NTSTATUS = 0xC01E0580;
+pub const STATUS_GRAPHICS_I2C_DEVICE_DOES_NOT_EXIST: NTSTATUS = 0xC01E0581;
+pub const STATUS_GRAPHICS_I2C_ERROR_TRANSMITTING_DATA: NTSTATUS = 0xC01E0582;
+pub const STATUS_GRAPHICS_I2C_ERROR_RECEIVING_DATA: NTSTATUS = 0xC01E0583;
+pub const STATUS_GRAPHICS_DDCCI_VCP_NOT_SUPPORTED: NTSTATUS = 0xC01E0584;
+pub const STATUS_GRAPHICS_DDCCI_INVALID_DATA: NTSTATUS = 0xC01E0585;
+pub const STATUS_GRAPHICS_DDCCI_MONITOR_RETURNED_INVALID_TIMING_STATUS_BYTE: NTSTATUS
+ = 0xC01E0586;
+pub const STATUS_GRAPHICS_DDCCI_INVALID_CAPABILITIES_STRING: NTSTATUS = 0xC01E0587;
+pub const STATUS_GRAPHICS_MCA_INTERNAL_ERROR: NTSTATUS = 0xC01E0588;
+pub const STATUS_GRAPHICS_DDCCI_INVALID_MESSAGE_COMMAND: NTSTATUS = 0xC01E0589;
+pub const STATUS_GRAPHICS_DDCCI_INVALID_MESSAGE_LENGTH: NTSTATUS = 0xC01E058A;
+pub const STATUS_GRAPHICS_DDCCI_INVALID_MESSAGE_CHECKSUM: NTSTATUS = 0xC01E058B;
+pub const STATUS_GRAPHICS_INVALID_PHYSICAL_MONITOR_HANDLE: NTSTATUS = 0xC01E058C;
+pub const STATUS_GRAPHICS_MONITOR_NO_LONGER_EXISTS: NTSTATUS = 0xC01E058D;
+pub const STATUS_GRAPHICS_ONLY_CONSOLE_SESSION_SUPPORTED: NTSTATUS = 0xC01E05E0;
+pub const STATUS_GRAPHICS_NO_DISPLAY_DEVICE_CORRESPONDS_TO_NAME: NTSTATUS = 0xC01E05E1;
+pub const STATUS_GRAPHICS_DISPLAY_DEVICE_NOT_ATTACHED_TO_DESKTOP: NTSTATUS = 0xC01E05E2;
+pub const STATUS_GRAPHICS_MIRRORING_DEVICES_NOT_SUPPORTED: NTSTATUS = 0xC01E05E3;
+pub const STATUS_GRAPHICS_INVALID_POINTER: NTSTATUS = 0xC01E05E4;
+pub const STATUS_GRAPHICS_NO_MONITORS_CORRESPOND_TO_DISPLAY_DEVICE: NTSTATUS
+ = 0xC01E05E5;
+pub const STATUS_GRAPHICS_PARAMETER_ARRAY_TOO_SMALL: NTSTATUS = 0xC01E05E6;
+pub const STATUS_GRAPHICS_INTERNAL_ERROR: NTSTATUS = 0xC01E05E7;
+pub const STATUS_GRAPHICS_SESSION_TYPE_CHANGE_IN_PROGRESS: NTSTATUS = 0xC01E05E8;
+pub const STATUS_FVE_LOCKED_VOLUME: NTSTATUS = 0xC0210000;
+pub const STATUS_FVE_NOT_ENCRYPTED: NTSTATUS = 0xC0210001;
+pub const STATUS_FVE_BAD_INFORMATION: NTSTATUS = 0xC0210002;
+pub const STATUS_FVE_TOO_SMALL: NTSTATUS = 0xC0210003;
+pub const STATUS_FVE_FAILED_WRONG_FS: NTSTATUS = 0xC0210004;
+pub const STATUS_FVE_BAD_PARTITION_SIZE: NTSTATUS = 0xC0210005;
+pub const STATUS_FVE_FS_NOT_EXTENDED: NTSTATUS = 0xC0210006;
+pub const STATUS_FVE_FS_MOUNTED: NTSTATUS = 0xC0210007;
+pub const STATUS_FVE_NO_LICENSE: NTSTATUS = 0xC0210008;
+pub const STATUS_FVE_ACTION_NOT_ALLOWED: NTSTATUS = 0xC0210009;
+pub const STATUS_FVE_BAD_DATA: NTSTATUS = 0xC021000A;
+pub const STATUS_FVE_VOLUME_NOT_BOUND: NTSTATUS = 0xC021000B;
+pub const STATUS_FVE_NOT_DATA_VOLUME: NTSTATUS = 0xC021000C;
+pub const STATUS_FVE_CONV_READ_ERROR: NTSTATUS = 0xC021000D;
+pub const STATUS_FVE_CONV_WRITE_ERROR: NTSTATUS = 0xC021000E;
+pub const STATUS_FVE_OVERLAPPED_UPDATE: NTSTATUS = 0xC021000F;
+pub const STATUS_FVE_FAILED_SECTOR_SIZE: NTSTATUS = 0xC0210010;
+pub const STATUS_FVE_FAILED_AUTHENTICATION: NTSTATUS = 0xC0210011;
+pub const STATUS_FVE_NOT_OS_VOLUME: NTSTATUS = 0xC0210012;
+pub const STATUS_FVE_KEYFILE_NOT_FOUND: NTSTATUS = 0xC0210013;
+pub const STATUS_FVE_KEYFILE_INVALID: NTSTATUS = 0xC0210014;
+pub const STATUS_FVE_KEYFILE_NO_VMK: NTSTATUS = 0xC0210015;
+pub const STATUS_FVE_TPM_DISABLED: NTSTATUS = 0xC0210016;
+pub const STATUS_FVE_TPM_SRK_AUTH_NOT_ZERO: NTSTATUS = 0xC0210017;
+pub const STATUS_FVE_TPM_INVALID_PCR: NTSTATUS = 0xC0210018;
+pub const STATUS_FVE_TPM_NO_VMK: NTSTATUS = 0xC0210019;
+pub const STATUS_FVE_PIN_INVALID: NTSTATUS = 0xC021001A;
+pub const STATUS_FVE_AUTH_INVALID_APPLICATION: NTSTATUS = 0xC021001B;
+pub const STATUS_FVE_AUTH_INVALID_CONFIG: NTSTATUS = 0xC021001C;
+pub const STATUS_FVE_DEBUGGER_ENABLED: NTSTATUS = 0xC021001D;
+pub const STATUS_FVE_DRY_RUN_FAILED: NTSTATUS = 0xC021001E;
+pub const STATUS_FVE_BAD_METADATA_POINTER: NTSTATUS = 0xC021001F;
+pub const STATUS_FVE_OLD_METADATA_COPY: NTSTATUS = 0xC0210020;
+pub const STATUS_FVE_REBOOT_REQUIRED: NTSTATUS = 0xC0210021;
+pub const STATUS_FVE_RAW_ACCESS: NTSTATUS = 0xC0210022;
+pub const STATUS_FVE_RAW_BLOCKED: NTSTATUS = 0xC0210023;
+pub const STATUS_FVE_NO_AUTOUNLOCK_MASTER_KEY: NTSTATUS = 0xC0210024;
+pub const STATUS_FVE_MOR_FAILED: NTSTATUS = 0xC0210025;
+pub const STATUS_FVE_NO_FEATURE_LICENSE: NTSTATUS = 0xC0210026;
+pub const STATUS_FVE_POLICY_USER_DISABLE_RDV_NOT_ALLOWED: NTSTATUS = 0xC0210027;
+pub const STATUS_FVE_CONV_RECOVERY_FAILED: NTSTATUS = 0xC0210028;
+pub const STATUS_FVE_VIRTUALIZED_SPACE_TOO_BIG: NTSTATUS = 0xC0210029;
+pub const STATUS_FVE_INVALID_DATUM_TYPE: NTSTATUS = 0xC021002A;
+pub const STATUS_FVE_VOLUME_TOO_SMALL: NTSTATUS = 0xC0210030;
+pub const STATUS_FVE_ENH_PIN_INVALID: NTSTATUS = 0xC0210031;
+pub const STATUS_FVE_FULL_ENCRYPTION_NOT_ALLOWED_ON_TP_STORAGE: NTSTATUS = 0xC0210032;
+pub const STATUS_FVE_WIPE_NOT_ALLOWED_ON_TP_STORAGE: NTSTATUS = 0xC0210033;
+pub const STATUS_FVE_NOT_ALLOWED_ON_CSV_STACK: NTSTATUS = 0xC0210034;
+pub const STATUS_FVE_NOT_ALLOWED_ON_CLUSTER: NTSTATUS = 0xC0210035;
+pub const STATUS_FVE_NOT_ALLOWED_TO_UPGRADE_WHILE_CONVERTING: NTSTATUS = 0xC0210036;
+pub const STATUS_FVE_WIPE_CANCEL_NOT_APPLICABLE: NTSTATUS = 0xC0210037;
+pub const STATUS_FVE_EDRIVE_DRY_RUN_FAILED: NTSTATUS = 0xC0210038;
+pub const STATUS_FVE_SECUREBOOT_DISABLED: NTSTATUS = 0xC0210039;
+pub const STATUS_FVE_SECUREBOOT_CONFIG_CHANGE: NTSTATUS = 0xC021003A;
+pub const STATUS_FVE_DEVICE_LOCKEDOUT: NTSTATUS = 0xC021003B;
+pub const STATUS_FVE_VOLUME_EXTEND_PREVENTS_EOW_DECRYPT: NTSTATUS = 0xC021003C;
+pub const STATUS_FVE_NOT_DE_VOLUME: NTSTATUS = 0xC021003D;
+pub const STATUS_FVE_PROTECTION_DISABLED: NTSTATUS = 0xC021003E;
+pub const STATUS_FVE_PROTECTION_CANNOT_BE_DISABLED: NTSTATUS = 0xC021003F;
+pub const STATUS_FWP_CALLOUT_NOT_FOUND: NTSTATUS = 0xC0220001;
+pub const STATUS_FWP_CONDITION_NOT_FOUND: NTSTATUS = 0xC0220002;
+pub const STATUS_FWP_FILTER_NOT_FOUND: NTSTATUS = 0xC0220003;
+pub const STATUS_FWP_LAYER_NOT_FOUND: NTSTATUS = 0xC0220004;
+pub const STATUS_FWP_PROVIDER_NOT_FOUND: NTSTATUS = 0xC0220005;
+pub const STATUS_FWP_PROVIDER_CONTEXT_NOT_FOUND: NTSTATUS = 0xC0220006;
+pub const STATUS_FWP_SUBLAYER_NOT_FOUND: NTSTATUS = 0xC0220007;
+pub const STATUS_FWP_NOT_FOUND: NTSTATUS = 0xC0220008;
+pub const STATUS_FWP_ALREADY_EXISTS: NTSTATUS = 0xC0220009;
+pub const STATUS_FWP_IN_USE: NTSTATUS = 0xC022000A;
+pub const STATUS_FWP_DYNAMIC_SESSION_IN_PROGRESS: NTSTATUS = 0xC022000B;
+pub const STATUS_FWP_WRONG_SESSION: NTSTATUS = 0xC022000C;
+pub const STATUS_FWP_NO_TXN_IN_PROGRESS: NTSTATUS = 0xC022000D;
+pub const STATUS_FWP_TXN_IN_PROGRESS: NTSTATUS = 0xC022000E;
+pub const STATUS_FWP_TXN_ABORTED: NTSTATUS = 0xC022000F;
+pub const STATUS_FWP_SESSION_ABORTED: NTSTATUS = 0xC0220010;
+pub const STATUS_FWP_INCOMPATIBLE_TXN: NTSTATUS = 0xC0220011;
+pub const STATUS_FWP_TIMEOUT: NTSTATUS = 0xC0220012;
+pub const STATUS_FWP_NET_EVENTS_DISABLED: NTSTATUS = 0xC0220013;
+pub const STATUS_FWP_INCOMPATIBLE_LAYER: NTSTATUS = 0xC0220014;
+pub const STATUS_FWP_KM_CLIENTS_ONLY: NTSTATUS = 0xC0220015;
+pub const STATUS_FWP_LIFETIME_MISMATCH: NTSTATUS = 0xC0220016;
+pub const STATUS_FWP_BUILTIN_OBJECT: NTSTATUS = 0xC0220017;
+pub const STATUS_FWP_TOO_MANY_CALLOUTS: NTSTATUS = 0xC0220018;
+pub const STATUS_FWP_NOTIFICATION_DROPPED: NTSTATUS = 0xC0220019;
+pub const STATUS_FWP_TRAFFIC_MISMATCH: NTSTATUS = 0xC022001A;
+pub const STATUS_FWP_INCOMPATIBLE_SA_STATE: NTSTATUS = 0xC022001B;
+pub const STATUS_FWP_NULL_POINTER: NTSTATUS = 0xC022001C;
+pub const STATUS_FWP_INVALID_ENUMERATOR: NTSTATUS = 0xC022001D;
+pub const STATUS_FWP_INVALID_FLAGS: NTSTATUS = 0xC022001E;
+pub const STATUS_FWP_INVALID_NET_MASK: NTSTATUS = 0xC022001F;
+pub const STATUS_FWP_INVALID_RANGE: NTSTATUS = 0xC0220020;
+pub const STATUS_FWP_INVALID_INTERVAL: NTSTATUS = 0xC0220021;
+pub const STATUS_FWP_ZERO_LENGTH_ARRAY: NTSTATUS = 0xC0220022;
+pub const STATUS_FWP_NULL_DISPLAY_NAME: NTSTATUS = 0xC0220023;
+pub const STATUS_FWP_INVALID_ACTION_TYPE: NTSTATUS = 0xC0220024;
+pub const STATUS_FWP_INVALID_WEIGHT: NTSTATUS = 0xC0220025;
+pub const STATUS_FWP_MATCH_TYPE_MISMATCH: NTSTATUS = 0xC0220026;
+pub const STATUS_FWP_TYPE_MISMATCH: NTSTATUS = 0xC0220027;
+pub const STATUS_FWP_OUT_OF_BOUNDS: NTSTATUS = 0xC0220028;
+pub const STATUS_FWP_RESERVED: NTSTATUS = 0xC0220029;
+pub const STATUS_FWP_DUPLICATE_CONDITION: NTSTATUS = 0xC022002A;
+pub const STATUS_FWP_DUPLICATE_KEYMOD: NTSTATUS = 0xC022002B;
+pub const STATUS_FWP_ACTION_INCOMPATIBLE_WITH_LAYER: NTSTATUS = 0xC022002C;
+pub const STATUS_FWP_ACTION_INCOMPATIBLE_WITH_SUBLAYER: NTSTATUS = 0xC022002D;
+pub const STATUS_FWP_CONTEXT_INCOMPATIBLE_WITH_LAYER: NTSTATUS = 0xC022002E;
+pub const STATUS_FWP_CONTEXT_INCOMPATIBLE_WITH_CALLOUT: NTSTATUS = 0xC022002F;
+pub const STATUS_FWP_INCOMPATIBLE_AUTH_METHOD: NTSTATUS = 0xC0220030;
+pub const STATUS_FWP_INCOMPATIBLE_DH_GROUP: NTSTATUS = 0xC0220031;
+pub const STATUS_FWP_EM_NOT_SUPPORTED: NTSTATUS = 0xC0220032;
+pub const STATUS_FWP_NEVER_MATCH: NTSTATUS = 0xC0220033;
+pub const STATUS_FWP_PROVIDER_CONTEXT_MISMATCH: NTSTATUS = 0xC0220034;
+pub const STATUS_FWP_INVALID_PARAMETER: NTSTATUS = 0xC0220035;
+pub const STATUS_FWP_TOO_MANY_SUBLAYERS: NTSTATUS = 0xC0220036;
+pub const STATUS_FWP_CALLOUT_NOTIFICATION_FAILED: NTSTATUS = 0xC0220037;
+pub const STATUS_FWP_INVALID_AUTH_TRANSFORM: NTSTATUS = 0xC0220038;
+pub const STATUS_FWP_INVALID_CIPHER_TRANSFORM: NTSTATUS = 0xC0220039;
+pub const STATUS_FWP_INCOMPATIBLE_CIPHER_TRANSFORM: NTSTATUS = 0xC022003A;
+pub const STATUS_FWP_INVALID_TRANSFORM_COMBINATION: NTSTATUS = 0xC022003B;
+pub const STATUS_FWP_DUPLICATE_AUTH_METHOD: NTSTATUS = 0xC022003C;
+pub const STATUS_FWP_INVALID_TUNNEL_ENDPOINT: NTSTATUS = 0xC022003D;
+pub const STATUS_FWP_L2_DRIVER_NOT_READY: NTSTATUS = 0xC022003E;
+pub const STATUS_FWP_KEY_DICTATOR_ALREADY_REGISTERED: NTSTATUS = 0xC022003F;
+pub const STATUS_FWP_KEY_DICTATION_INVALID_KEYING_MATERIAL: NTSTATUS = 0xC0220040;
+pub const STATUS_FWP_CONNECTIONS_DISABLED: NTSTATUS = 0xC0220041;
+pub const STATUS_FWP_INVALID_DNS_NAME: NTSTATUS = 0xC0220042;
+pub const STATUS_FWP_STILL_ON: NTSTATUS = 0xC0220043;
+pub const STATUS_FWP_IKEEXT_NOT_RUNNING: NTSTATUS = 0xC0220044;
+pub const STATUS_FWP_TCPIP_NOT_READY: NTSTATUS = 0xC0220100;
+pub const STATUS_FWP_INJECT_HANDLE_CLOSING: NTSTATUS = 0xC0220101;
+pub const STATUS_FWP_INJECT_HANDLE_STALE: NTSTATUS = 0xC0220102;
+pub const STATUS_FWP_CANNOT_PEND: NTSTATUS = 0xC0220103;
+pub const STATUS_FWP_DROP_NOICMP: NTSTATUS = 0xC0220104;
+pub const STATUS_NDIS_CLOSING: NTSTATUS = 0xC0230002;
+pub const STATUS_NDIS_BAD_VERSION: NTSTATUS = 0xC0230004;
+pub const STATUS_NDIS_BAD_CHARACTERISTICS: NTSTATUS = 0xC0230005;
+pub const STATUS_NDIS_ADAPTER_NOT_FOUND: NTSTATUS = 0xC0230006;
+pub const STATUS_NDIS_OPEN_FAILED: NTSTATUS = 0xC0230007;
+pub const STATUS_NDIS_DEVICE_FAILED: NTSTATUS = 0xC0230008;
+pub const STATUS_NDIS_MULTICAST_FULL: NTSTATUS = 0xC0230009;
+pub const STATUS_NDIS_MULTICAST_EXISTS: NTSTATUS = 0xC023000A;
+pub const STATUS_NDIS_MULTICAST_NOT_FOUND: NTSTATUS = 0xC023000B;
+pub const STATUS_NDIS_REQUEST_ABORTED: NTSTATUS = 0xC023000C;
+pub const STATUS_NDIS_RESET_IN_PROGRESS: NTSTATUS = 0xC023000D;
+pub const STATUS_NDIS_NOT_SUPPORTED: NTSTATUS = 0xC02300BB;
+pub const STATUS_NDIS_INVALID_PACKET: NTSTATUS = 0xC023000F;
+pub const STATUS_NDIS_ADAPTER_NOT_READY: NTSTATUS = 0xC0230011;
+pub const STATUS_NDIS_INVALID_LENGTH: NTSTATUS = 0xC0230014;
+pub const STATUS_NDIS_INVALID_DATA: NTSTATUS = 0xC0230015;
+pub const STATUS_NDIS_BUFFER_TOO_SHORT: NTSTATUS = 0xC0230016;
+pub const STATUS_NDIS_INVALID_OID: NTSTATUS = 0xC0230017;
+pub const STATUS_NDIS_ADAPTER_REMOVED: NTSTATUS = 0xC0230018;
+pub const STATUS_NDIS_UNSUPPORTED_MEDIA: NTSTATUS = 0xC0230019;
+pub const STATUS_NDIS_GROUP_ADDRESS_IN_USE: NTSTATUS = 0xC023001A;
+pub const STATUS_NDIS_FILE_NOT_FOUND: NTSTATUS = 0xC023001B;
+pub const STATUS_NDIS_ERROR_READING_FILE: NTSTATUS = 0xC023001C;
+pub const STATUS_NDIS_ALREADY_MAPPED: NTSTATUS = 0xC023001D;
+pub const STATUS_NDIS_RESOURCE_CONFLICT: NTSTATUS = 0xC023001E;
+pub const STATUS_NDIS_MEDIA_DISCONNECTED: NTSTATUS = 0xC023001F;
+pub const STATUS_NDIS_INVALID_ADDRESS: NTSTATUS = 0xC0230022;
+pub const STATUS_NDIS_INVALID_DEVICE_REQUEST: NTSTATUS = 0xC0230010;
+pub const STATUS_NDIS_PAUSED: NTSTATUS = 0xC023002A;
+pub const STATUS_NDIS_INTERFACE_NOT_FOUND: NTSTATUS = 0xC023002B;
+pub const STATUS_NDIS_UNSUPPORTED_REVISION: NTSTATUS = 0xC023002C;
+pub const STATUS_NDIS_INVALID_PORT: NTSTATUS = 0xC023002D;
+pub const STATUS_NDIS_INVALID_PORT_STATE: NTSTATUS = 0xC023002E;
+pub const STATUS_NDIS_LOW_POWER_STATE: NTSTATUS = 0xC023002F;
+pub const STATUS_NDIS_REINIT_REQUIRED: NTSTATUS = 0xC0230030;
+pub const STATUS_NDIS_DOT11_AUTO_CONFIG_ENABLED: NTSTATUS = 0xC0232000;
+pub const STATUS_NDIS_DOT11_MEDIA_IN_USE: NTSTATUS = 0xC0232001;
+pub const STATUS_NDIS_DOT11_POWER_STATE_INVALID: NTSTATUS = 0xC0232002;
+pub const STATUS_NDIS_PM_WOL_PATTERN_LIST_FULL: NTSTATUS = 0xC0232003;
+pub const STATUS_NDIS_PM_PROTOCOL_OFFLOAD_LIST_FULL: NTSTATUS = 0xC0232004;
+pub const STATUS_NDIS_DOT11_AP_CHANNEL_CURRENTLY_NOT_AVAILABLE: NTSTATUS = 0xC0232005;
+pub const STATUS_NDIS_DOT11_AP_BAND_CURRENTLY_NOT_AVAILABLE: NTSTATUS = 0xC0232006;
+pub const STATUS_NDIS_DOT11_AP_CHANNEL_NOT_ALLOWED: NTSTATUS = 0xC0232007;
+pub const STATUS_NDIS_DOT11_AP_BAND_NOT_ALLOWED: NTSTATUS = 0xC0232008;
+pub const STATUS_NDIS_INDICATION_REQUIRED: NTSTATUS = 0x40230001;
+pub const STATUS_NDIS_OFFLOAD_POLICY: NTSTATUS = 0xC023100F;
+pub const STATUS_NDIS_OFFLOAD_CONNECTION_REJECTED: NTSTATUS = 0xC0231012;
+pub const STATUS_NDIS_OFFLOAD_PATH_REJECTED: NTSTATUS = 0xC0231013;
+pub const STATUS_TPM_ERROR_MASK: NTSTATUS = 0xC0290000;
+pub const STATUS_TPM_AUTHFAIL: NTSTATUS = 0xC0290001;
+pub const STATUS_TPM_BADINDEX: NTSTATUS = 0xC0290002;
+pub const STATUS_TPM_BAD_PARAMETER: NTSTATUS = 0xC0290003;
+pub const STATUS_TPM_AUDITFAILURE: NTSTATUS = 0xC0290004;
+pub const STATUS_TPM_CLEAR_DISABLED: NTSTATUS = 0xC0290005;
+pub const STATUS_TPM_DEACTIVATED: NTSTATUS = 0xC0290006;
+pub const STATUS_TPM_DISABLED: NTSTATUS = 0xC0290007;
+pub const STATUS_TPM_DISABLED_CMD: NTSTATUS = 0xC0290008;
+pub const STATUS_TPM_FAIL: NTSTATUS = 0xC0290009;
+pub const STATUS_TPM_BAD_ORDINAL: NTSTATUS = 0xC029000A;
+pub const STATUS_TPM_INSTALL_DISABLED: NTSTATUS = 0xC029000B;
+pub const STATUS_TPM_INVALID_KEYHANDLE: NTSTATUS = 0xC029000C;
+pub const STATUS_TPM_KEYNOTFOUND: NTSTATUS = 0xC029000D;
+pub const STATUS_TPM_INAPPROPRIATE_ENC: NTSTATUS = 0xC029000E;
+pub const STATUS_TPM_MIGRATEFAIL: NTSTATUS = 0xC029000F;
+pub const STATUS_TPM_INVALID_PCR_INFO: NTSTATUS = 0xC0290010;
+pub const STATUS_TPM_NOSPACE: NTSTATUS = 0xC0290011;
+pub const STATUS_TPM_NOSRK: NTSTATUS = 0xC0290012;
+pub const STATUS_TPM_NOTSEALED_BLOB: NTSTATUS = 0xC0290013;
+pub const STATUS_TPM_OWNER_SET: NTSTATUS = 0xC0290014;
+pub const STATUS_TPM_RESOURCES: NTSTATUS = 0xC0290015;
+pub const STATUS_TPM_SHORTRANDOM: NTSTATUS = 0xC0290016;
+pub const STATUS_TPM_SIZE: NTSTATUS = 0xC0290017;
+pub const STATUS_TPM_WRONGPCRVAL: NTSTATUS = 0xC0290018;
+pub const STATUS_TPM_BAD_PARAM_SIZE: NTSTATUS = 0xC0290019;
+pub const STATUS_TPM_SHA_THREAD: NTSTATUS = 0xC029001A;
+pub const STATUS_TPM_SHA_ERROR: NTSTATUS = 0xC029001B;
+pub const STATUS_TPM_FAILEDSELFTEST: NTSTATUS = 0xC029001C;
+pub const STATUS_TPM_AUTH2FAIL: NTSTATUS = 0xC029001D;
+pub const STATUS_TPM_BADTAG: NTSTATUS = 0xC029001E;
+pub const STATUS_TPM_IOERROR: NTSTATUS = 0xC029001F;
+pub const STATUS_TPM_ENCRYPT_ERROR: NTSTATUS = 0xC0290020;
+pub const STATUS_TPM_DECRYPT_ERROR: NTSTATUS = 0xC0290021;
+pub const STATUS_TPM_INVALID_AUTHHANDLE: NTSTATUS = 0xC0290022;
+pub const STATUS_TPM_NO_ENDORSEMENT: NTSTATUS = 0xC0290023;
+pub const STATUS_TPM_INVALID_KEYUSAGE: NTSTATUS = 0xC0290024;
+pub const STATUS_TPM_WRONG_ENTITYTYPE: NTSTATUS = 0xC0290025;
+pub const STATUS_TPM_INVALID_POSTINIT: NTSTATUS = 0xC0290026;
+pub const STATUS_TPM_INAPPROPRIATE_SIG: NTSTATUS = 0xC0290027;
+pub const STATUS_TPM_BAD_KEY_PROPERTY: NTSTATUS = 0xC0290028;
+pub const STATUS_TPM_BAD_MIGRATION: NTSTATUS = 0xC0290029;
+pub const STATUS_TPM_BAD_SCHEME: NTSTATUS = 0xC029002A;
+pub const STATUS_TPM_BAD_DATASIZE: NTSTATUS = 0xC029002B;
+pub const STATUS_TPM_BAD_MODE: NTSTATUS = 0xC029002C;
+pub const STATUS_TPM_BAD_PRESENCE: NTSTATUS = 0xC029002D;
+pub const STATUS_TPM_BAD_VERSION: NTSTATUS = 0xC029002E;
+pub const STATUS_TPM_NO_WRAP_TRANSPORT: NTSTATUS = 0xC029002F;
+pub const STATUS_TPM_AUDITFAIL_UNSUCCESSFUL: NTSTATUS = 0xC0290030;
+pub const STATUS_TPM_AUDITFAIL_SUCCESSFUL: NTSTATUS = 0xC0290031;
+pub const STATUS_TPM_NOTRESETABLE: NTSTATUS = 0xC0290032;
+pub const STATUS_TPM_NOTLOCAL: NTSTATUS = 0xC0290033;
+pub const STATUS_TPM_BAD_TYPE: NTSTATUS = 0xC0290034;
+pub const STATUS_TPM_INVALID_RESOURCE: NTSTATUS = 0xC0290035;
+pub const STATUS_TPM_NOTFIPS: NTSTATUS = 0xC0290036;
+pub const STATUS_TPM_INVALID_FAMILY: NTSTATUS = 0xC0290037;
+pub const STATUS_TPM_NO_NV_PERMISSION: NTSTATUS = 0xC0290038;
+pub const STATUS_TPM_REQUIRES_SIGN: NTSTATUS = 0xC0290039;
+pub const STATUS_TPM_KEY_NOTSUPPORTED: NTSTATUS = 0xC029003A;
+pub const STATUS_TPM_AUTH_CONFLICT: NTSTATUS = 0xC029003B;
+pub const STATUS_TPM_AREA_LOCKED: NTSTATUS = 0xC029003C;
+pub const STATUS_TPM_BAD_LOCALITY: NTSTATUS = 0xC029003D;
+pub const STATUS_TPM_READ_ONLY: NTSTATUS = 0xC029003E;
+pub const STATUS_TPM_PER_NOWRITE: NTSTATUS = 0xC029003F;
+pub const STATUS_TPM_FAMILYCOUNT: NTSTATUS = 0xC0290040;
+pub const STATUS_TPM_WRITE_LOCKED: NTSTATUS = 0xC0290041;
+pub const STATUS_TPM_BAD_ATTRIBUTES: NTSTATUS = 0xC0290042;
+pub const STATUS_TPM_INVALID_STRUCTURE: NTSTATUS = 0xC0290043;
+pub const STATUS_TPM_KEY_OWNER_CONTROL: NTSTATUS = 0xC0290044;
+pub const STATUS_TPM_BAD_COUNTER: NTSTATUS = 0xC0290045;
+pub const STATUS_TPM_NOT_FULLWRITE: NTSTATUS = 0xC0290046;
+pub const STATUS_TPM_CONTEXT_GAP: NTSTATUS = 0xC0290047;
+pub const STATUS_TPM_MAXNVWRITES: NTSTATUS = 0xC0290048;
+pub const STATUS_TPM_NOOPERATOR: NTSTATUS = 0xC0290049;
+pub const STATUS_TPM_RESOURCEMISSING: NTSTATUS = 0xC029004A;
+pub const STATUS_TPM_DELEGATE_LOCK: NTSTATUS = 0xC029004B;
+pub const STATUS_TPM_DELEGATE_FAMILY: NTSTATUS = 0xC029004C;
+pub const STATUS_TPM_DELEGATE_ADMIN: NTSTATUS = 0xC029004D;
+pub const STATUS_TPM_TRANSPORT_NOTEXCLUSIVE: NTSTATUS = 0xC029004E;
+pub const STATUS_TPM_OWNER_CONTROL: NTSTATUS = 0xC029004F;
+pub const STATUS_TPM_DAA_RESOURCES: NTSTATUS = 0xC0290050;
+pub const STATUS_TPM_DAA_INPUT_DATA0: NTSTATUS = 0xC0290051;
+pub const STATUS_TPM_DAA_INPUT_DATA1: NTSTATUS = 0xC0290052;
+pub const STATUS_TPM_DAA_ISSUER_SETTINGS: NTSTATUS = 0xC0290053;
+pub const STATUS_TPM_DAA_TPM_SETTINGS: NTSTATUS = 0xC0290054;
+pub const STATUS_TPM_DAA_STAGE: NTSTATUS = 0xC0290055;
+pub const STATUS_TPM_DAA_ISSUER_VALIDITY: NTSTATUS = 0xC0290056;
+pub const STATUS_TPM_DAA_WRONG_W: NTSTATUS = 0xC0290057;
+pub const STATUS_TPM_BAD_HANDLE: NTSTATUS = 0xC0290058;
+pub const STATUS_TPM_BAD_DELEGATE: NTSTATUS = 0xC0290059;
+pub const STATUS_TPM_BADCONTEXT: NTSTATUS = 0xC029005A;
+pub const STATUS_TPM_TOOMANYCONTEXTS: NTSTATUS = 0xC029005B;
+pub const STATUS_TPM_MA_TICKET_SIGNATURE: NTSTATUS = 0xC029005C;
+pub const STATUS_TPM_MA_DESTINATION: NTSTATUS = 0xC029005D;
+pub const STATUS_TPM_MA_SOURCE: NTSTATUS = 0xC029005E;
+pub const STATUS_TPM_MA_AUTHORITY: NTSTATUS = 0xC029005F;
+pub const STATUS_TPM_PERMANENTEK: NTSTATUS = 0xC0290061;
+pub const STATUS_TPM_BAD_SIGNATURE: NTSTATUS = 0xC0290062;
+pub const STATUS_TPM_NOCONTEXTSPACE: NTSTATUS = 0xC0290063;
+pub const STATUS_TPM_COMMAND_BLOCKED: NTSTATUS = 0xC0290400;
+pub const STATUS_TPM_INVALID_HANDLE: NTSTATUS = 0xC0290401;
+pub const STATUS_TPM_DUPLICATE_VHANDLE: NTSTATUS = 0xC0290402;
+pub const STATUS_TPM_EMBEDDED_COMMAND_BLOCKED: NTSTATUS = 0xC0290403;
+pub const STATUS_TPM_EMBEDDED_COMMAND_UNSUPPORTED: NTSTATUS = 0xC0290404;
+pub const STATUS_TPM_RETRY: NTSTATUS = 0xC0290800;
+pub const STATUS_TPM_NEEDS_SELFTEST: NTSTATUS = 0xC0290801;
+pub const STATUS_TPM_DOING_SELFTEST: NTSTATUS = 0xC0290802;
+pub const STATUS_TPM_DEFEND_LOCK_RUNNING: NTSTATUS = 0xC0290803;
+pub const STATUS_TPM_COMMAND_CANCELED: NTSTATUS = 0xC0291001;
+pub const STATUS_TPM_TOO_MANY_CONTEXTS: NTSTATUS = 0xC0291002;
+pub const STATUS_TPM_NOT_FOUND: NTSTATUS = 0xC0291003;
+pub const STATUS_TPM_ACCESS_DENIED: NTSTATUS = 0xC0291004;
+pub const STATUS_TPM_INSUFFICIENT_BUFFER: NTSTATUS = 0xC0291005;
+pub const STATUS_TPM_PPI_FUNCTION_UNSUPPORTED: NTSTATUS = 0xC0291006;
+pub const STATUS_PCP_ERROR_MASK: NTSTATUS = 0xC0292000;
+pub const STATUS_PCP_DEVICE_NOT_READY: NTSTATUS = 0xC0292001;
+pub const STATUS_PCP_INVALID_HANDLE: NTSTATUS = 0xC0292002;
+pub const STATUS_PCP_INVALID_PARAMETER: NTSTATUS = 0xC0292003;
+pub const STATUS_PCP_FLAG_NOT_SUPPORTED: NTSTATUS = 0xC0292004;
+pub const STATUS_PCP_NOT_SUPPORTED: NTSTATUS = 0xC0292005;
+pub const STATUS_PCP_BUFFER_TOO_SMALL: NTSTATUS = 0xC0292006;
+pub const STATUS_PCP_INTERNAL_ERROR: NTSTATUS = 0xC0292007;
+pub const STATUS_PCP_AUTHENTICATION_FAILED: NTSTATUS = 0xC0292008;
+pub const STATUS_PCP_AUTHENTICATION_IGNORED: NTSTATUS = 0xC0292009;
+pub const STATUS_PCP_POLICY_NOT_FOUND: NTSTATUS = 0xC029200A;
+pub const STATUS_PCP_PROFILE_NOT_FOUND: NTSTATUS = 0xC029200B;
+pub const STATUS_PCP_VALIDATION_FAILED: NTSTATUS = 0xC029200C;
+pub const STATUS_PCP_DEVICE_NOT_FOUND: NTSTATUS = 0xC029200D;
+pub const STATUS_RTPM_CONTEXT_CONTINUE: NTSTATUS = 0x00293000;
+pub const STATUS_RTPM_CONTEXT_COMPLETE: NTSTATUS = 0x00293001;
+pub const STATUS_RTPM_NO_RESULT: NTSTATUS = 0xC0293002;
+pub const STATUS_RTPM_PCR_READ_INCOMPLETE: NTSTATUS = 0xC0293003;
+pub const STATUS_RTPM_INVALID_CONTEXT: NTSTATUS = 0xC0293004;
+pub const STATUS_RTPM_UNSUPPORTED_CMD: NTSTATUS = 0xC0293005;
+pub const STATUS_HV_INVALID_HYPERCALL_CODE: NTSTATUS = 0xC0350002;
+pub const STATUS_HV_INVALID_HYPERCALL_INPUT: NTSTATUS = 0xC0350003;
+pub const STATUS_HV_INVALID_ALIGNMENT: NTSTATUS = 0xC0350004;
+pub const STATUS_HV_INVALID_PARAMETER: NTSTATUS = 0xC0350005;
+pub const STATUS_HV_ACCESS_DENIED: NTSTATUS = 0xC0350006;
+pub const STATUS_HV_INVALID_PARTITION_STATE: NTSTATUS = 0xC0350007;
+pub const STATUS_HV_OPERATION_DENIED: NTSTATUS = 0xC0350008;
+pub const STATUS_HV_UNKNOWN_PROPERTY: NTSTATUS = 0xC0350009;
+pub const STATUS_HV_PROPERTY_VALUE_OUT_OF_RANGE: NTSTATUS = 0xC035000A;
+pub const STATUS_HV_INSUFFICIENT_MEMORY: NTSTATUS = 0xC035000B;
+pub const STATUS_HV_PARTITION_TOO_DEEP: NTSTATUS = 0xC035000C;
+pub const STATUS_HV_INVALID_PARTITION_ID: NTSTATUS = 0xC035000D;
+pub const STATUS_HV_INVALID_VP_INDEX: NTSTATUS = 0xC035000E;
+pub const STATUS_HV_INVALID_PORT_ID: NTSTATUS = 0xC0350011;
+pub const STATUS_HV_INVALID_CONNECTION_ID: NTSTATUS = 0xC0350012;
+pub const STATUS_HV_INSUFFICIENT_BUFFERS: NTSTATUS = 0xC0350013;
+pub const STATUS_HV_NOT_ACKNOWLEDGED: NTSTATUS = 0xC0350014;
+pub const STATUS_HV_INVALID_VP_STATE: NTSTATUS = 0xC0350015;
+pub const STATUS_HV_ACKNOWLEDGED: NTSTATUS = 0xC0350016;
+pub const STATUS_HV_INVALID_SAVE_RESTORE_STATE: NTSTATUS = 0xC0350017;
+pub const STATUS_HV_INVALID_SYNIC_STATE: NTSTATUS = 0xC0350018;
+pub const STATUS_HV_OBJECT_IN_USE: NTSTATUS = 0xC0350019;
+pub const STATUS_HV_INVALID_PROXIMITY_DOMAIN_INFO: NTSTATUS = 0xC035001A;
+pub const STATUS_HV_NO_DATA: NTSTATUS = 0xC035001B;
+pub const STATUS_HV_INACTIVE: NTSTATUS = 0xC035001C;
+pub const STATUS_HV_NO_RESOURCES: NTSTATUS = 0xC035001D;
+pub const STATUS_HV_FEATURE_UNAVAILABLE: NTSTATUS = 0xC035001E;
+pub const STATUS_HV_INSUFFICIENT_BUFFER: NTSTATUS = 0xC0350033;
+pub const STATUS_HV_INSUFFICIENT_DEVICE_DOMAINS: NTSTATUS = 0xC0350038;
+pub const STATUS_HV_CPUID_FEATURE_VALIDATION_ERROR: NTSTATUS = 0xC035003C;
+pub const STATUS_HV_CPUID_XSAVE_FEATURE_VALIDATION_ERROR: NTSTATUS = 0xC035003D;
+pub const STATUS_HV_PROCESSOR_STARTUP_TIMEOUT: NTSTATUS = 0xC035003E;
+pub const STATUS_HV_SMX_ENABLED: NTSTATUS = 0xC035003F;
+pub const STATUS_HV_INVALID_LP_INDEX: NTSTATUS = 0xC0350041;
+pub const STATUS_HV_INVALID_REGISTER_VALUE: NTSTATUS = 0xC0350050;
+pub const STATUS_HV_INVALID_VTL_STATE: NTSTATUS = 0xC0350051;
+pub const STATUS_HV_NX_NOT_DETECTED: NTSTATUS = 0xC0350055;
+pub const STATUS_HV_INVALID_DEVICE_ID: NTSTATUS = 0xC0350057;
+pub const STATUS_HV_INVALID_DEVICE_STATE: NTSTATUS = 0xC0350058;
+pub const STATUS_HV_PENDING_PAGE_REQUESTS: NTSTATUS = 0x00350059;
+pub const STATUS_HV_PAGE_REQUEST_INVALID: NTSTATUS = 0xC0350060;
+pub const STATUS_HV_INVALID_CPU_GROUP_ID: NTSTATUS = 0xC035006F;
+pub const STATUS_HV_INVALID_CPU_GROUP_STATE: NTSTATUS = 0xC0350070;
+pub const STATUS_HV_NOT_ALLOWED_WITH_NESTED_VIRT_ACTIVE: NTSTATUS = 0xC0350071;
+pub const STATUS_HV_NOT_PRESENT: NTSTATUS = 0xC0351000;
+pub const STATUS_VID_DUPLICATE_HANDLER: NTSTATUS = 0xC0370001;
+pub const STATUS_VID_TOO_MANY_HANDLERS: NTSTATUS = 0xC0370002;
+pub const STATUS_VID_QUEUE_FULL: NTSTATUS = 0xC0370003;
+pub const STATUS_VID_HANDLER_NOT_PRESENT: NTSTATUS = 0xC0370004;
+pub const STATUS_VID_INVALID_OBJECT_NAME: NTSTATUS = 0xC0370005;
+pub const STATUS_VID_PARTITION_NAME_TOO_LONG: NTSTATUS = 0xC0370006;
+pub const STATUS_VID_MESSAGE_QUEUE_NAME_TOO_LONG: NTSTATUS = 0xC0370007;
+pub const STATUS_VID_PARTITION_ALREADY_EXISTS: NTSTATUS = 0xC0370008;
+pub const STATUS_VID_PARTITION_DOES_NOT_EXIST: NTSTATUS = 0xC0370009;
+pub const STATUS_VID_PARTITION_NAME_NOT_FOUND: NTSTATUS = 0xC037000A;
+pub const STATUS_VID_MESSAGE_QUEUE_ALREADY_EXISTS: NTSTATUS = 0xC037000B;
+pub const STATUS_VID_EXCEEDED_MBP_ENTRY_MAP_LIMIT: NTSTATUS = 0xC037000C;
+pub const STATUS_VID_MB_STILL_REFERENCED: NTSTATUS = 0xC037000D;
+pub const STATUS_VID_CHILD_GPA_PAGE_SET_CORRUPTED: NTSTATUS = 0xC037000E;
+pub const STATUS_VID_INVALID_NUMA_SETTINGS: NTSTATUS = 0xC037000F;
+pub const STATUS_VID_INVALID_NUMA_NODE_INDEX: NTSTATUS = 0xC0370010;
+pub const STATUS_VID_NOTIFICATION_QUEUE_ALREADY_ASSOCIATED: NTSTATUS = 0xC0370011;
+pub const STATUS_VID_INVALID_MEMORY_BLOCK_HANDLE: NTSTATUS = 0xC0370012;
+pub const STATUS_VID_PAGE_RANGE_OVERFLOW: NTSTATUS = 0xC0370013;
+pub const STATUS_VID_INVALID_MESSAGE_QUEUE_HANDLE: NTSTATUS = 0xC0370014;
+pub const STATUS_VID_INVALID_GPA_RANGE_HANDLE: NTSTATUS = 0xC0370015;
+pub const STATUS_VID_NO_MEMORY_BLOCK_NOTIFICATION_QUEUE: NTSTATUS = 0xC0370016;
+pub const STATUS_VID_MEMORY_BLOCK_LOCK_COUNT_EXCEEDED: NTSTATUS = 0xC0370017;
+pub const STATUS_VID_INVALID_PPM_HANDLE: NTSTATUS = 0xC0370018;
+pub const STATUS_VID_MBPS_ARE_LOCKED: NTSTATUS = 0xC0370019;
+pub const STATUS_VID_MESSAGE_QUEUE_CLOSED: NTSTATUS = 0xC037001A;
+pub const STATUS_VID_VIRTUAL_PROCESSOR_LIMIT_EXCEEDED: NTSTATUS = 0xC037001B;
+pub const STATUS_VID_STOP_PENDING: NTSTATUS = 0xC037001C;
+pub const STATUS_VID_INVALID_PROCESSOR_STATE: NTSTATUS = 0xC037001D;
+pub const STATUS_VID_EXCEEDED_KM_CONTEXT_COUNT_LIMIT: NTSTATUS = 0xC037001E;
+pub const STATUS_VID_KM_INTERFACE_ALREADY_INITIALIZED: NTSTATUS = 0xC037001F;
+pub const STATUS_VID_MB_PROPERTY_ALREADY_SET_RESET: NTSTATUS = 0xC0370020;
+pub const STATUS_VID_MMIO_RANGE_DESTROYED: NTSTATUS = 0xC0370021;
+pub const STATUS_VID_INVALID_CHILD_GPA_PAGE_SET: NTSTATUS = 0xC0370022;
+pub const STATUS_VID_RESERVE_PAGE_SET_IS_BEING_USED: NTSTATUS = 0xC0370023;
+pub const STATUS_VID_RESERVE_PAGE_SET_TOO_SMALL: NTSTATUS = 0xC0370024;
+pub const STATUS_VID_MBP_ALREADY_LOCKED_USING_RESERVED_PAGE: NTSTATUS = 0xC0370025;
+pub const STATUS_VID_MBP_COUNT_EXCEEDED_LIMIT: NTSTATUS = 0xC0370026;
+pub const STATUS_VID_SAVED_STATE_CORRUPT: NTSTATUS = 0xC0370027;
+pub const STATUS_VID_SAVED_STATE_UNRECOGNIZED_ITEM: NTSTATUS = 0xC0370028;
+pub const STATUS_VID_SAVED_STATE_INCOMPATIBLE: NTSTATUS = 0xC0370029;
+pub const STATUS_VID_VTL_ACCESS_DENIED: NTSTATUS = 0xC037002A;
+pub const STATUS_VID_REMOTE_NODE_PARENT_GPA_PAGES_USED: NTSTATUS = 0x80370001;
+pub const STATUS_IPSEC_BAD_SPI: NTSTATUS = 0xC0360001;
+pub const STATUS_IPSEC_SA_LIFETIME_EXPIRED: NTSTATUS = 0xC0360002;
+pub const STATUS_IPSEC_WRONG_SA: NTSTATUS = 0xC0360003;
+pub const STATUS_IPSEC_REPLAY_CHECK_FAILED: NTSTATUS = 0xC0360004;
+pub const STATUS_IPSEC_INVALID_PACKET: NTSTATUS = 0xC0360005;
+pub const STATUS_IPSEC_INTEGRITY_CHECK_FAILED: NTSTATUS = 0xC0360006;
+pub const STATUS_IPSEC_CLEAR_TEXT_DROP: NTSTATUS = 0xC0360007;
+pub const STATUS_IPSEC_AUTH_FIREWALL_DROP: NTSTATUS = 0xC0360008;
+pub const STATUS_IPSEC_THROTTLE_DROP: NTSTATUS = 0xC0360009;
+pub const STATUS_IPSEC_DOSP_BLOCK: NTSTATUS = 0xC0368000;
+pub const STATUS_IPSEC_DOSP_RECEIVED_MULTICAST: NTSTATUS = 0xC0368001;
+pub const STATUS_IPSEC_DOSP_INVALID_PACKET: NTSTATUS = 0xC0368002;
+pub const STATUS_IPSEC_DOSP_STATE_LOOKUP_FAILED: NTSTATUS = 0xC0368003;
+pub const STATUS_IPSEC_DOSP_MAX_ENTRIES: NTSTATUS = 0xC0368004;
+pub const STATUS_IPSEC_DOSP_KEYMOD_NOT_ALLOWED: NTSTATUS = 0xC0368005;
+pub const STATUS_IPSEC_DOSP_MAX_PER_IP_RATELIMIT_QUEUES: NTSTATUS = 0xC0368006;
+pub const STATUS_VOLMGR_INCOMPLETE_REGENERATION: NTSTATUS = 0x80380001;
+pub const STATUS_VOLMGR_INCOMPLETE_DISK_MIGRATION: NTSTATUS = 0x80380002;
+pub const STATUS_VOLMGR_DATABASE_FULL: NTSTATUS = 0xC0380001;
+pub const STATUS_VOLMGR_DISK_CONFIGURATION_CORRUPTED: NTSTATUS = 0xC0380002;
+pub const STATUS_VOLMGR_DISK_CONFIGURATION_NOT_IN_SYNC: NTSTATUS = 0xC0380003;
+pub const STATUS_VOLMGR_PACK_CONFIG_UPDATE_FAILED: NTSTATUS = 0xC0380004;
+pub const STATUS_VOLMGR_DISK_CONTAINS_NON_SIMPLE_VOLUME: NTSTATUS = 0xC0380005;
+pub const STATUS_VOLMGR_DISK_DUPLICATE: NTSTATUS = 0xC0380006;
+pub const STATUS_VOLMGR_DISK_DYNAMIC: NTSTATUS = 0xC0380007;
+pub const STATUS_VOLMGR_DISK_ID_INVALID: NTSTATUS = 0xC0380008;
+pub const STATUS_VOLMGR_DISK_INVALID: NTSTATUS = 0xC0380009;
+pub const STATUS_VOLMGR_DISK_LAST_VOTER: NTSTATUS = 0xC038000A;
+pub const STATUS_VOLMGR_DISK_LAYOUT_INVALID: NTSTATUS = 0xC038000B;
+pub const STATUS_VOLMGR_DISK_LAYOUT_NON_BASIC_BETWEEN_BASIC_PARTITIONS: NTSTATUS
+ = 0xC038000C;
+pub const STATUS_VOLMGR_DISK_LAYOUT_NOT_CYLINDER_ALIGNED: NTSTATUS = 0xC038000D;
+pub const STATUS_VOLMGR_DISK_LAYOUT_PARTITIONS_TOO_SMALL: NTSTATUS = 0xC038000E;
+pub const STATUS_VOLMGR_DISK_LAYOUT_PRIMARY_BETWEEN_LOGICAL_PARTITIONS: NTSTATUS
+ = 0xC038000F;
+pub const STATUS_VOLMGR_DISK_LAYOUT_TOO_MANY_PARTITIONS: NTSTATUS = 0xC0380010;
+pub const STATUS_VOLMGR_DISK_MISSING: NTSTATUS = 0xC0380011;
+pub const STATUS_VOLMGR_DISK_NOT_EMPTY: NTSTATUS = 0xC0380012;
+pub const STATUS_VOLMGR_DISK_NOT_ENOUGH_SPACE: NTSTATUS = 0xC0380013;
+pub const STATUS_VOLMGR_DISK_REVECTORING_FAILED: NTSTATUS = 0xC0380014;
+pub const STATUS_VOLMGR_DISK_SECTOR_SIZE_INVALID: NTSTATUS = 0xC0380015;
+pub const STATUS_VOLMGR_DISK_SET_NOT_CONTAINED: NTSTATUS = 0xC0380016;
+pub const STATUS_VOLMGR_DISK_USED_BY_MULTIPLE_MEMBERS: NTSTATUS = 0xC0380017;
+pub const STATUS_VOLMGR_DISK_USED_BY_MULTIPLE_PLEXES: NTSTATUS = 0xC0380018;
+pub const STATUS_VOLMGR_DYNAMIC_DISK_NOT_SUPPORTED: NTSTATUS = 0xC0380019;
+pub const STATUS_VOLMGR_EXTENT_ALREADY_USED: NTSTATUS = 0xC038001A;
+pub const STATUS_VOLMGR_EXTENT_NOT_CONTIGUOUS: NTSTATUS = 0xC038001B;
+pub const STATUS_VOLMGR_EXTENT_NOT_IN_PUBLIC_REGION: NTSTATUS = 0xC038001C;
+pub const STATUS_VOLMGR_EXTENT_NOT_SECTOR_ALIGNED: NTSTATUS = 0xC038001D;
+pub const STATUS_VOLMGR_EXTENT_OVERLAPS_EBR_PARTITION: NTSTATUS = 0xC038001E;
+pub const STATUS_VOLMGR_EXTENT_VOLUME_LENGTHS_DO_NOT_MATCH: NTSTATUS = 0xC038001F;
+pub const STATUS_VOLMGR_FAULT_TOLERANT_NOT_SUPPORTED: NTSTATUS = 0xC0380020;
+pub const STATUS_VOLMGR_INTERLEAVE_LENGTH_INVALID: NTSTATUS = 0xC0380021;
+pub const STATUS_VOLMGR_MAXIMUM_REGISTERED_USERS: NTSTATUS = 0xC0380022;
+pub const STATUS_VOLMGR_MEMBER_IN_SYNC: NTSTATUS = 0xC0380023;
+pub const STATUS_VOLMGR_MEMBER_INDEX_DUPLICATE: NTSTATUS = 0xC0380024;
+pub const STATUS_VOLMGR_MEMBER_INDEX_INVALID: NTSTATUS = 0xC0380025;
+pub const STATUS_VOLMGR_MEMBER_MISSING: NTSTATUS = 0xC0380026;
+pub const STATUS_VOLMGR_MEMBER_NOT_DETACHED: NTSTATUS = 0xC0380027;
+pub const STATUS_VOLMGR_MEMBER_REGENERATING: NTSTATUS = 0xC0380028;
+pub const STATUS_VOLMGR_ALL_DISKS_FAILED: NTSTATUS = 0xC0380029;
+pub const STATUS_VOLMGR_NO_REGISTERED_USERS: NTSTATUS = 0xC038002A;
+pub const STATUS_VOLMGR_NO_SUCH_USER: NTSTATUS = 0xC038002B;
+pub const STATUS_VOLMGR_NOTIFICATION_RESET: NTSTATUS = 0xC038002C;
+pub const STATUS_VOLMGR_NUMBER_OF_MEMBERS_INVALID: NTSTATUS = 0xC038002D;
+pub const STATUS_VOLMGR_NUMBER_OF_PLEXES_INVALID: NTSTATUS = 0xC038002E;
+pub const STATUS_VOLMGR_PACK_DUPLICATE: NTSTATUS = 0xC038002F;
+pub const STATUS_VOLMGR_PACK_ID_INVALID: NTSTATUS = 0xC0380030;
+pub const STATUS_VOLMGR_PACK_INVALID: NTSTATUS = 0xC0380031;
+pub const STATUS_VOLMGR_PACK_NAME_INVALID: NTSTATUS = 0xC0380032;
+pub const STATUS_VOLMGR_PACK_OFFLINE: NTSTATUS = 0xC0380033;
+pub const STATUS_VOLMGR_PACK_HAS_QUORUM: NTSTATUS = 0xC0380034;
+pub const STATUS_VOLMGR_PACK_WITHOUT_QUORUM: NTSTATUS = 0xC0380035;
+pub const STATUS_VOLMGR_PARTITION_STYLE_INVALID: NTSTATUS = 0xC0380036;
+pub const STATUS_VOLMGR_PARTITION_UPDATE_FAILED: NTSTATUS = 0xC0380037;
+pub const STATUS_VOLMGR_PLEX_IN_SYNC: NTSTATUS = 0xC0380038;
+pub const STATUS_VOLMGR_PLEX_INDEX_DUPLICATE: NTSTATUS = 0xC0380039;
+pub const STATUS_VOLMGR_PLEX_INDEX_INVALID: NTSTATUS = 0xC038003A;
+pub const STATUS_VOLMGR_PLEX_LAST_ACTIVE: NTSTATUS = 0xC038003B;
+pub const STATUS_VOLMGR_PLEX_MISSING: NTSTATUS = 0xC038003C;
+pub const STATUS_VOLMGR_PLEX_REGENERATING: NTSTATUS = 0xC038003D;
+pub const STATUS_VOLMGR_PLEX_TYPE_INVALID: NTSTATUS = 0xC038003E;
+pub const STATUS_VOLMGR_PLEX_NOT_RAID5: NTSTATUS = 0xC038003F;
+pub const STATUS_VOLMGR_PLEX_NOT_SIMPLE: NTSTATUS = 0xC0380040;
+pub const STATUS_VOLMGR_STRUCTURE_SIZE_INVALID: NTSTATUS = 0xC0380041;
+pub const STATUS_VOLMGR_TOO_MANY_NOTIFICATION_REQUESTS: NTSTATUS = 0xC0380042;
+pub const STATUS_VOLMGR_TRANSACTION_IN_PROGRESS: NTSTATUS = 0xC0380043;
+pub const STATUS_VOLMGR_UNEXPECTED_DISK_LAYOUT_CHANGE: NTSTATUS = 0xC0380044;
+pub const STATUS_VOLMGR_VOLUME_CONTAINS_MISSING_DISK: NTSTATUS = 0xC0380045;
+pub const STATUS_VOLMGR_VOLUME_ID_INVALID: NTSTATUS = 0xC0380046;
+pub const STATUS_VOLMGR_VOLUME_LENGTH_INVALID: NTSTATUS = 0xC0380047;
+pub const STATUS_VOLMGR_VOLUME_LENGTH_NOT_SECTOR_SIZE_MULTIPLE: NTSTATUS = 0xC0380048;
+pub const STATUS_VOLMGR_VOLUME_NOT_MIRRORED: NTSTATUS = 0xC0380049;
+pub const STATUS_VOLMGR_VOLUME_NOT_RETAINED: NTSTATUS = 0xC038004A;
+pub const STATUS_VOLMGR_VOLUME_OFFLINE: NTSTATUS = 0xC038004B;
+pub const STATUS_VOLMGR_VOLUME_RETAINED: NTSTATUS = 0xC038004C;
+pub const STATUS_VOLMGR_NUMBER_OF_EXTENTS_INVALID: NTSTATUS = 0xC038004D;
+pub const STATUS_VOLMGR_DIFFERENT_SECTOR_SIZE: NTSTATUS = 0xC038004E;
+pub const STATUS_VOLMGR_BAD_BOOT_DISK: NTSTATUS = 0xC038004F;
+pub const STATUS_VOLMGR_PACK_CONFIG_OFFLINE: NTSTATUS = 0xC0380050;
+pub const STATUS_VOLMGR_PACK_CONFIG_ONLINE: NTSTATUS = 0xC0380051;
+pub const STATUS_VOLMGR_NOT_PRIMARY_PACK: NTSTATUS = 0xC0380052;
+pub const STATUS_VOLMGR_PACK_LOG_UPDATE_FAILED: NTSTATUS = 0xC0380053;
+pub const STATUS_VOLMGR_NUMBER_OF_DISKS_IN_PLEX_INVALID: NTSTATUS = 0xC0380054;
+pub const STATUS_VOLMGR_NUMBER_OF_DISKS_IN_MEMBER_INVALID: NTSTATUS = 0xC0380055;
+pub const STATUS_VOLMGR_VOLUME_MIRRORED: NTSTATUS = 0xC0380056;
+pub const STATUS_VOLMGR_PLEX_NOT_SIMPLE_SPANNED: NTSTATUS = 0xC0380057;
+pub const STATUS_VOLMGR_NO_VALID_LOG_COPIES: NTSTATUS = 0xC0380058;
+pub const STATUS_VOLMGR_PRIMARY_PACK_PRESENT: NTSTATUS = 0xC0380059;
+pub const STATUS_VOLMGR_NUMBER_OF_DISKS_INVALID: NTSTATUS = 0xC038005A;
+pub const STATUS_VOLMGR_MIRROR_NOT_SUPPORTED: NTSTATUS = 0xC038005B;
+pub const STATUS_VOLMGR_RAID5_NOT_SUPPORTED: NTSTATUS = 0xC038005C;
+pub const STATUS_BCD_NOT_ALL_ENTRIES_IMPORTED: NTSTATUS = 0x80390001;
+pub const STATUS_BCD_TOO_MANY_ELEMENTS: NTSTATUS = 0xC0390002;
+pub const STATUS_BCD_NOT_ALL_ENTRIES_SYNCHRONIZED: NTSTATUS = 0x80390003;
+pub const STATUS_VHD_DRIVE_FOOTER_MISSING: NTSTATUS = 0xC03A0001;
+pub const STATUS_VHD_DRIVE_FOOTER_CHECKSUM_MISMATCH: NTSTATUS = 0xC03A0002;
+pub const STATUS_VHD_DRIVE_FOOTER_CORRUPT: NTSTATUS = 0xC03A0003;
+pub const STATUS_VHD_FORMAT_UNKNOWN: NTSTATUS = 0xC03A0004;
+pub const STATUS_VHD_FORMAT_UNSUPPORTED_VERSION: NTSTATUS = 0xC03A0005;
+pub const STATUS_VHD_SPARSE_HEADER_CHECKSUM_MISMATCH: NTSTATUS = 0xC03A0006;
+pub const STATUS_VHD_SPARSE_HEADER_UNSUPPORTED_VERSION: NTSTATUS = 0xC03A0007;
+pub const STATUS_VHD_SPARSE_HEADER_CORRUPT: NTSTATUS = 0xC03A0008;
+pub const STATUS_VHD_BLOCK_ALLOCATION_FAILURE: NTSTATUS = 0xC03A0009;
+pub const STATUS_VHD_BLOCK_ALLOCATION_TABLE_CORRUPT: NTSTATUS = 0xC03A000A;
+pub const STATUS_VHD_INVALID_BLOCK_SIZE: NTSTATUS = 0xC03A000B;
+pub const STATUS_VHD_BITMAP_MISMATCH: NTSTATUS = 0xC03A000C;
+pub const STATUS_VHD_PARENT_VHD_NOT_FOUND: NTSTATUS = 0xC03A000D;
+pub const STATUS_VHD_CHILD_PARENT_ID_MISMATCH: NTSTATUS = 0xC03A000E;
+pub const STATUS_VHD_CHILD_PARENT_TIMESTAMP_MISMATCH: NTSTATUS = 0xC03A000F;
+pub const STATUS_VHD_METADATA_READ_FAILURE: NTSTATUS = 0xC03A0010;
+pub const STATUS_VHD_METADATA_WRITE_FAILURE: NTSTATUS = 0xC03A0011;
+pub const STATUS_VHD_INVALID_SIZE: NTSTATUS = 0xC03A0012;
+pub const STATUS_VHD_INVALID_FILE_SIZE: NTSTATUS = 0xC03A0013;
+pub const STATUS_VIRTDISK_PROVIDER_NOT_FOUND: NTSTATUS = 0xC03A0014;
+pub const STATUS_VIRTDISK_NOT_VIRTUAL_DISK: NTSTATUS = 0xC03A0015;
+pub const STATUS_VHD_PARENT_VHD_ACCESS_DENIED: NTSTATUS = 0xC03A0016;
+pub const STATUS_VHD_CHILD_PARENT_SIZE_MISMATCH: NTSTATUS = 0xC03A0017;
+pub const STATUS_VHD_DIFFERENCING_CHAIN_CYCLE_DETECTED: NTSTATUS = 0xC03A0018;
+pub const STATUS_VHD_DIFFERENCING_CHAIN_ERROR_IN_PARENT: NTSTATUS = 0xC03A0019;
+pub const STATUS_VIRTUAL_DISK_LIMITATION: NTSTATUS = 0xC03A001A;
+pub const STATUS_VHD_INVALID_TYPE: NTSTATUS = 0xC03A001B;
+pub const STATUS_VHD_INVALID_STATE: NTSTATUS = 0xC03A001C;
+pub const STATUS_VIRTDISK_UNSUPPORTED_DISK_SECTOR_SIZE: NTSTATUS = 0xC03A001D;
+pub const STATUS_VIRTDISK_DISK_ALREADY_OWNED: NTSTATUS = 0xC03A001E;
+pub const STATUS_VIRTDISK_DISK_ONLINE_AND_WRITABLE: NTSTATUS = 0xC03A001F;
+pub const STATUS_CTLOG_TRACKING_NOT_INITIALIZED: NTSTATUS = 0xC03A0020;
+pub const STATUS_CTLOG_LOGFILE_SIZE_EXCEEDED_MAXSIZE: NTSTATUS = 0xC03A0021;
+pub const STATUS_CTLOG_VHD_CHANGED_OFFLINE: NTSTATUS = 0xC03A0022;
+pub const STATUS_CTLOG_INVALID_TRACKING_STATE: NTSTATUS = 0xC03A0023;
+pub const STATUS_CTLOG_INCONSISTENT_TRACKING_FILE: NTSTATUS = 0xC03A0024;
+pub const STATUS_VHD_METADATA_FULL: NTSTATUS = 0xC03A0028;
+pub const STATUS_VHD_INVALID_CHANGE_TRACKING_ID: NTSTATUS = 0xC03A0029;
+pub const STATUS_VHD_CHANGE_TRACKING_DISABLED: NTSTATUS = 0xC03A002A;
+pub const STATUS_VHD_MISSING_CHANGE_TRACKING_INFORMATION: NTSTATUS = 0xC03A0030;
+pub const STATUS_VHD_RESIZE_WOULD_TRUNCATE_DATA: NTSTATUS = 0xC03A0031;
+pub const STATUS_VHD_COULD_NOT_COMPUTE_MINIMUM_VIRTUAL_SIZE: NTSTATUS = 0xC03A0032;
+pub const STATUS_VHD_ALREADY_AT_OR_BELOW_MINIMUM_VIRTUAL_SIZE: NTSTATUS = 0xC03A0033;
+pub const STATUS_QUERY_STORAGE_ERROR: NTSTATUS = 0x803A0001;
+pub const STATUS_RKF_KEY_NOT_FOUND: NTSTATUS = 0xC0400001;
+pub const STATUS_RKF_DUPLICATE_KEY: NTSTATUS = 0xC0400002;
+pub const STATUS_RKF_BLOB_FULL: NTSTATUS = 0xC0400003;
+pub const STATUS_RKF_STORE_FULL: NTSTATUS = 0xC0400004;
+pub const STATUS_RKF_FILE_BLOCKED: NTSTATUS = 0xC0400005;
+pub const STATUS_RKF_ACTIVE_KEY: NTSTATUS = 0xC0400006;
+pub const STATUS_RDBSS_RESTART_OPERATION: NTSTATUS = 0xC0410001;
+pub const STATUS_RDBSS_CONTINUE_OPERATION: NTSTATUS = 0xC0410002;
+pub const STATUS_RDBSS_POST_OPERATION: NTSTATUS = 0xC0410003;
+pub const STATUS_BTH_ATT_INVALID_HANDLE: NTSTATUS = 0xC0420001;
+pub const STATUS_BTH_ATT_READ_NOT_PERMITTED: NTSTATUS = 0xC0420002;
+pub const STATUS_BTH_ATT_WRITE_NOT_PERMITTED: NTSTATUS = 0xC0420003;
+pub const STATUS_BTH_ATT_INVALID_PDU: NTSTATUS = 0xC0420004;
+pub const STATUS_BTH_ATT_INSUFFICIENT_AUTHENTICATION: NTSTATUS = 0xC0420005;
+pub const STATUS_BTH_ATT_REQUEST_NOT_SUPPORTED: NTSTATUS = 0xC0420006;
+pub const STATUS_BTH_ATT_INVALID_OFFSET: NTSTATUS = 0xC0420007;
+pub const STATUS_BTH_ATT_INSUFFICIENT_AUTHORIZATION: NTSTATUS = 0xC0420008;
+pub const STATUS_BTH_ATT_PREPARE_QUEUE_FULL: NTSTATUS = 0xC0420009;
+pub const STATUS_BTH_ATT_ATTRIBUTE_NOT_FOUND: NTSTATUS = 0xC042000A;
+pub const STATUS_BTH_ATT_ATTRIBUTE_NOT_LONG: NTSTATUS = 0xC042000B;
+pub const STATUS_BTH_ATT_INSUFFICIENT_ENCRYPTION_KEY_SIZE: NTSTATUS = 0xC042000C;
+pub const STATUS_BTH_ATT_INVALID_ATTRIBUTE_VALUE_LENGTH: NTSTATUS = 0xC042000D;
+pub const STATUS_BTH_ATT_UNLIKELY: NTSTATUS = 0xC042000E;
+pub const STATUS_BTH_ATT_INSUFFICIENT_ENCRYPTION: NTSTATUS = 0xC042000F;
+pub const STATUS_BTH_ATT_UNSUPPORTED_GROUP_TYPE: NTSTATUS = 0xC0420010;
+pub const STATUS_BTH_ATT_INSUFFICIENT_RESOURCES: NTSTATUS = 0xC0420011;
+pub const STATUS_BTH_ATT_UNKNOWN_ERROR: NTSTATUS = 0xC0421000;
+pub const STATUS_SECUREBOOT_ROLLBACK_DETECTED: NTSTATUS = 0xC0430001;
+pub const STATUS_SECUREBOOT_POLICY_VIOLATION: NTSTATUS = 0xC0430002;
+pub const STATUS_SECUREBOOT_INVALID_POLICY: NTSTATUS = 0xC0430003;
+pub const STATUS_SECUREBOOT_POLICY_PUBLISHER_NOT_FOUND: NTSTATUS = 0xC0430004;
+pub const STATUS_SECUREBOOT_POLICY_NOT_SIGNED: NTSTATUS = 0xC0430005;
+pub const STATUS_SECUREBOOT_NOT_ENABLED: NTSTATUS = 0x80430006;
+pub const STATUS_SECUREBOOT_FILE_REPLACED: NTSTATUS = 0xC0430007;
+pub const STATUS_SECUREBOOT_POLICY_NOT_AUTHORIZED: NTSTATUS = 0xC0430008;
+pub const STATUS_SECUREBOOT_POLICY_UNKNOWN: NTSTATUS = 0xC0430009;
+pub const STATUS_SECUREBOOT_POLICY_MISSING_ANTIROLLBACKVERSION: NTSTATUS = 0xC043000A;
+pub const STATUS_SECUREBOOT_PLATFORM_ID_MISMATCH: NTSTATUS = 0xC043000B;
+pub const STATUS_SECUREBOOT_POLICY_ROLLBACK_DETECTED: NTSTATUS = 0xC043000C;
+pub const STATUS_SECUREBOOT_POLICY_UPGRADE_MISMATCH: NTSTATUS = 0xC043000D;
+pub const STATUS_SECUREBOOT_REQUIRED_POLICY_FILE_MISSING: NTSTATUS = 0xC043000E;
+pub const STATUS_SECUREBOOT_NOT_BASE_POLICY: NTSTATUS = 0xC043000F;
+pub const STATUS_SECUREBOOT_NOT_SUPPLEMENTAL_POLICY: NTSTATUS = 0xC0430010;
+pub const STATUS_PLATFORM_MANIFEST_NOT_AUTHORIZED: NTSTATUS = 0xC0EB0001;
+pub const STATUS_PLATFORM_MANIFEST_INVALID: NTSTATUS = 0xC0EB0002;
+pub const STATUS_PLATFORM_MANIFEST_FILE_NOT_AUTHORIZED: NTSTATUS = 0xC0EB0003;
+pub const STATUS_PLATFORM_MANIFEST_CATALOG_NOT_AUTHORIZED: NTSTATUS = 0xC0EB0004;
+pub const STATUS_PLATFORM_MANIFEST_BINARY_ID_NOT_FOUND: NTSTATUS = 0xC0EB0005;
+pub const STATUS_PLATFORM_MANIFEST_NOT_ACTIVE: NTSTATUS = 0xC0EB0006;
+pub const STATUS_PLATFORM_MANIFEST_NOT_SIGNED: NTSTATUS = 0xC0EB0007;
+pub const STATUS_SYSTEM_INTEGRITY_ROLLBACK_DETECTED: NTSTATUS = 0xC0E90001;
+pub const STATUS_SYSTEM_INTEGRITY_POLICY_VIOLATION: NTSTATUS = 0xC0E90002;
+pub const STATUS_SYSTEM_INTEGRITY_INVALID_POLICY: NTSTATUS = 0xC0E90003;
+pub const STATUS_SYSTEM_INTEGRITY_POLICY_NOT_SIGNED: NTSTATUS = 0xC0E90004;
+pub const STATUS_NO_APPLICABLE_APP_LICENSES_FOUND: NTSTATUS = 0xC0EA0001;
+pub const STATUS_CLIP_LICENSE_NOT_FOUND: NTSTATUS = 0xC0EA0002;
+pub const STATUS_CLIP_DEVICE_LICENSE_MISSING: NTSTATUS = 0xC0EA0003;
+pub const STATUS_CLIP_LICENSE_INVALID_SIGNATURE: NTSTATUS = 0xC0EA0004;
+pub const STATUS_CLIP_KEYHOLDER_LICENSE_MISSING_OR_INVALID: NTSTATUS = 0xC0EA0005;
+pub const STATUS_CLIP_LICENSE_EXPIRED: NTSTATUS = 0xC0EA0006;
+pub const STATUS_CLIP_LICENSE_SIGNED_BY_UNKNOWN_SOURCE: NTSTATUS = 0xC0EA0007;
+pub const STATUS_CLIP_LICENSE_NOT_SIGNED: NTSTATUS = 0xC0EA0008;
+pub const STATUS_CLIP_LICENSE_HARDWARE_ID_OUT_OF_TOLERANCE: NTSTATUS = 0xC0EA0009;
+pub const STATUS_CLIP_LICENSE_DEVICE_ID_MISMATCH: NTSTATUS = 0xC0EA000A;
+pub const STATUS_AUDIO_ENGINE_NODE_NOT_FOUND: NTSTATUS = 0xC0440001;
+pub const STATUS_HDAUDIO_EMPTY_CONNECTION_LIST: NTSTATUS = 0xC0440002;
+pub const STATUS_HDAUDIO_CONNECTION_LIST_NOT_SUPPORTED: NTSTATUS = 0xC0440003;
+pub const STATUS_HDAUDIO_NO_LOGICAL_DEVICES_CREATED: NTSTATUS = 0xC0440004;
+pub const STATUS_HDAUDIO_NULL_LINKED_LIST_ENTRY: NTSTATUS = 0xC0440005;
+pub const STATUS_SPACES_REPAIRED: NTSTATUS = 0x00E70000;
+pub const STATUS_SPACES_PAUSE: NTSTATUS = 0x00E70001;
+pub const STATUS_SPACES_COMPLETE: NTSTATUS = 0x00E70002;
+pub const STATUS_SPACES_FAULT_DOMAIN_TYPE_INVALID: NTSTATUS = 0xC0E70001;
+pub const STATUS_SPACES_RESILIENCY_TYPE_INVALID: NTSTATUS = 0xC0E70003;
+pub const STATUS_SPACES_DRIVE_SECTOR_SIZE_INVALID: NTSTATUS = 0xC0E70004;
+pub const STATUS_SPACES_DRIVE_REDUNDANCY_INVALID: NTSTATUS = 0xC0E70006;
+pub const STATUS_SPACES_NUMBER_OF_DATA_COPIES_INVALID: NTSTATUS = 0xC0E70007;
+pub const STATUS_SPACES_INTERLEAVE_LENGTH_INVALID: NTSTATUS = 0xC0E70009;
+pub const STATUS_SPACES_NUMBER_OF_COLUMNS_INVALID: NTSTATUS = 0xC0E7000A;
+pub const STATUS_SPACES_NOT_ENOUGH_DRIVES: NTSTATUS = 0xC0E7000B;
+pub const STATUS_SPACES_EXTENDED_ERROR: NTSTATUS = 0xC0E7000C;
+pub const STATUS_SPACES_PROVISIONING_TYPE_INVALID: NTSTATUS = 0xC0E7000D;
+pub const STATUS_SPACES_ALLOCATION_SIZE_INVALID: NTSTATUS = 0xC0E7000E;
+pub const STATUS_SPACES_ENCLOSURE_AWARE_INVALID: NTSTATUS = 0xC0E7000F;
+pub const STATUS_SPACES_WRITE_CACHE_SIZE_INVALID: NTSTATUS = 0xC0E70010;
+pub const STATUS_SPACES_NUMBER_OF_GROUPS_INVALID: NTSTATUS = 0xC0E70011;
+pub const STATUS_SPACES_DRIVE_OPERATIONAL_STATE_INVALID: NTSTATUS = 0xC0E70012;
+pub const STATUS_SPACES_UPDATE_COLUMN_STATE: NTSTATUS = 0xC0E70013;
+pub const STATUS_SPACES_MAP_REQUIRED: NTSTATUS = 0xC0E70014;
+pub const STATUS_SPACES_UNSUPPORTED_VERSION: NTSTATUS = 0xC0E70015;
+pub const STATUS_SPACES_CORRUPT_METADATA: NTSTATUS = 0xC0E70016;
+pub const STATUS_SPACES_DRT_FULL: NTSTATUS = 0xC0E70017;
+pub const STATUS_SPACES_INCONSISTENCY: NTSTATUS = 0xC0E70018;
+pub const STATUS_SPACES_LOG_NOT_READY: NTSTATUS = 0xC0E70019;
+pub const STATUS_SPACES_NO_REDUNDANCY: NTSTATUS = 0xC0E7001A;
+pub const STATUS_SPACES_DRIVE_NOT_READY: NTSTATUS = 0xC0E7001B;
+pub const STATUS_SPACES_DRIVE_SPLIT: NTSTATUS = 0xC0E7001C;
+pub const STATUS_SPACES_DRIVE_LOST_DATA: NTSTATUS = 0xC0E7001D;
+pub const STATUS_VOLSNAP_BOOTFILE_NOT_VALID: NTSTATUS = 0xC0500003;
+pub const STATUS_VOLSNAP_ACTIVATION_TIMEOUT: NTSTATUS = 0xC0500004;
+pub const STATUS_IO_PREEMPTED: NTSTATUS = 0xC0510001;
+pub const STATUS_SVHDX_ERROR_STORED: NTSTATUS = 0xC05C0000;
+pub const STATUS_SVHDX_ERROR_NOT_AVAILABLE: NTSTATUS = 0xC05CFF00;
+pub const STATUS_SVHDX_UNIT_ATTENTION_AVAILABLE: NTSTATUS = 0xC05CFF01;
+pub const STATUS_SVHDX_UNIT_ATTENTION_CAPACITY_DATA_CHANGED: NTSTATUS = 0xC05CFF02;
+pub const STATUS_SVHDX_UNIT_ATTENTION_RESERVATIONS_PREEMPTED: NTSTATUS = 0xC05CFF03;
+pub const STATUS_SVHDX_UNIT_ATTENTION_RESERVATIONS_RELEASED: NTSTATUS = 0xC05CFF04;
+pub const STATUS_SVHDX_UNIT_ATTENTION_REGISTRATIONS_PREEMPTED: NTSTATUS = 0xC05CFF05;
+pub const STATUS_SVHDX_UNIT_ATTENTION_OPERATING_DEFINITION_CHANGED: NTSTATUS
+ = 0xC05CFF06;
+pub const STATUS_SVHDX_RESERVATION_CONFLICT: NTSTATUS = 0xC05CFF07;
+pub const STATUS_SVHDX_WRONG_FILE_TYPE: NTSTATUS = 0xC05CFF08;
+pub const STATUS_SVHDX_VERSION_MISMATCH: NTSTATUS = 0xC05CFF09;
+pub const STATUS_VHD_SHARED: NTSTATUS = 0xC05CFF0A;
+pub const STATUS_SVHDX_NO_INITIATOR: NTSTATUS = 0xC05CFF0B;
+pub const STATUS_VHDSET_BACKING_STORAGE_NOT_FOUND: NTSTATUS = 0xC05CFF0C;
+pub const STATUS_SMB_NO_PREAUTH_INTEGRITY_HASH_OVERLAP: NTSTATUS = 0xC05D0000;
+pub const STATUS_SMB_BAD_CLUSTER_DIALECT: NTSTATUS = 0xC05D0001;
+pub const STATUS_SMB_GUEST_LOGON_BLOCKED: NTSTATUS = 0xC05D0002;
+pub const STATUS_SECCORE_INVALID_COMMAND: NTSTATUS = 0xC0E80000;
+pub const STATUS_VSM_NOT_INITIALIZED: NTSTATUS = 0xC0450000;
+pub const STATUS_VSM_DMA_PROTECTION_NOT_IN_USE: NTSTATUS = 0xC0450001;
diff --git a/third_party/rust/chromium_crates_io/vendor/winapi-0.3.9/src/shared/qos.rs b/third_party/rust/chromium_crates_io/vendor/winapi-0.3.9/src/shared/qos.rs
new file mode 100644
index 000000000000..5117bd26a09e
--- /dev/null
+++ b/third_party/rust/chromium_crates_io/vendor/winapi-0.3.9/src/shared/qos.rs
@@ -0,0 +1,20 @@
+// Licensed under the Apache License, Version 2.0
+// or the MIT license
+// , at your option.
+// All files in the project carrying such notice may not be copied, modified, or distributed
+// except according to those terms.
+//! QoS definitions for NDIS components.
+use shared::minwindef::ULONG;
+pub type SERVICETYPE = ULONG;
+STRUCT!{struct FLOWSPEC {
+ TokenRate: ULONG,
+ TokenBucketSize: ULONG,
+ PeakBandwidth: ULONG,
+ Latency: ULONG,
+ DelayVariation: ULONG,
+ ServiceType: SERVICETYPE,
+ MaxSduSize: ULONG,
+ MinimumPolicedSize: ULONG,
+}}
+pub type PFLOWSPEC = *mut FLOWSPEC;
+pub type LPFLOWSPEC = *mut FLOWSPEC;
diff --git a/third_party/rust/chromium_crates_io/vendor/winapi-0.3.9/src/shared/rpc.rs b/third_party/rust/chromium_crates_io/vendor/winapi-0.3.9/src/shared/rpc.rs
new file mode 100644
index 000000000000..5af7e095d312
--- /dev/null
+++ b/third_party/rust/chromium_crates_io/vendor/winapi-0.3.9/src/shared/rpc.rs
@@ -0,0 +1,9 @@
+// Licensed under the Apache License, Version 2.0
+// or the MIT license
+// , at your option.
+// All files in the project carrying such notice may not be copied, modified, or distributed
+// except according to those terms.
+//! Master include file for RPC applications.
+use ctypes::{c_long, c_void};
+pub type I_RPC_HANDLE = *mut c_void;
+pub type RPC_STATUS = c_long;
diff --git a/third_party/rust/chromium_crates_io/vendor/winapi-0.3.9/src/shared/rpcdce.rs b/third_party/rust/chromium_crates_io/vendor/winapi-0.3.9/src/shared/rpcdce.rs
new file mode 100644
index 000000000000..ab2879d92afa
--- /dev/null
+++ b/third_party/rust/chromium_crates_io/vendor/winapi-0.3.9/src/shared/rpcdce.rs
@@ -0,0 +1,563 @@
+// Licensed under the Apache License, Version 2.0
+// or the MIT license
+// , at your option.
+// All files in the project carrying such notice may not be copied, modified, or distributed
+// except according to those terms.
+//! This module contains the DCE RPC runtime APIs.
+use ctypes::{c_int, c_uchar, c_uint, c_ulong, c_ushort, c_void, wchar_t};
+use shared::guiddef::GUID;
+use shared::minwindef::DWORD;
+use shared::rpc::{I_RPC_HANDLE, RPC_STATUS};
+pub type RPC_CSTR = *mut c_uchar;
+pub type RPC_WSTR = *mut wchar_t;
+pub type RPC_CWSTR = *const wchar_t;
+pub type RPC_BINDING_HANDLE = I_RPC_HANDLE;
+pub type handle_t = RPC_BINDING_HANDLE;
+pub type rpc_binding_handle_t = RPC_BINDING_HANDLE;
+pub type UUID = GUID;
+pub type uuid_t = UUID;
+STRUCT!{struct RPC_BINDING_VECTOR {
+ Count: c_ulong,
+ BindingH: [RPC_BINDING_HANDLE; 1],
+}}
+pub type rpc_binding_vector_t = RPC_BINDING_VECTOR;
+STRUCT!{struct UUID_VECTOR {
+ Count: c_ulong,
+ Uuid: [*mut UUID; 1],
+}}
+pub type uuid_vector_t = UUID_VECTOR;
+pub type RPC_IF_HANDLE = *mut c_void;
+STRUCT!{struct RPC_IF_ID {
+ Uuid: UUID,
+ VersMajor: c_ushort,
+ VersMinor: c_ushort,
+}}
+pub const RPC_C_BINDING_INFINITE_TIMEOUT: DWORD = 10;
+pub const RPC_C_BINDING_MIN_TIMEOUT: DWORD = 0;
+pub const RPC_C_BINDING_DEFAULT_TIMEOUT: DWORD = 5;
+pub const RPC_C_BINDING_MAX_TIMEOUT: DWORD = 9;
+pub const RPC_C_CANCEL_INFINITE_TIMEOUT: c_int = -1;
+pub const RPC_C_LISTEN_MAX_CALLS_DEFAULT: DWORD = 1234;
+pub const RPC_C_PROTSEQ_MAX_REQS_DEFAULT: DWORD = 10;
+pub const RPC_C_BIND_TO_ALL_NICS: DWORD = 1;
+pub const RPC_C_USE_INTERNET_PORT: DWORD = 0x1;
+pub const RPC_C_USE_INTRANET_PORT: DWORD = 0x2;
+pub const RPC_C_DONT_FAIL: DWORD = 0x4;
+pub const RPC_C_RPCHTTP_USE_LOAD_BALANCE: DWORD = 0x8;
+pub const RPC_C_MQ_TEMPORARY: DWORD = 0x0000;
+pub const RPC_C_MQ_PERMANENT: DWORD = 0x0001;
+pub const RPC_C_MQ_CLEAR_ON_OPEN: DWORD = 0x0002;
+pub const RPC_C_MQ_USE_EXISTING_SECURITY: DWORD = 0x0004;
+pub const RPC_C_MQ_AUTHN_LEVEL_NONE: DWORD = 0x0000;
+pub const RPC_C_MQ_AUTHN_LEVEL_PKT_INTEGRITY: DWORD = 0x0008;
+pub const RPC_C_MQ_AUTHN_LEVEL_PKT_PRIVACY: DWORD = 0x0010;
+pub const RPC_C_OPT_MQ_DELIVERY: DWORD = 1;
+pub const RPC_C_OPT_MQ_PRIORITY: DWORD = 2;
+pub const RPC_C_OPT_MQ_JOURNAL: DWORD = 3;
+pub const RPC_C_OPT_MQ_ACKNOWLEDGE: DWORD = 4;
+pub const RPC_C_OPT_MQ_AUTHN_SERVICE: DWORD = 5;
+pub const RPC_C_OPT_MQ_AUTHN_LEVEL: DWORD = 6;
+pub const RPC_C_OPT_MQ_TIME_TO_REACH_QUEUE: DWORD = 7;
+pub const RPC_C_OPT_MQ_TIME_TO_BE_RECEIVED: DWORD = 8;
+pub const RPC_C_OPT_BINDING_NONCAUSAL: DWORD = 9;
+pub const RPC_C_OPT_SECURITY_CALLBACK: DWORD = 10;
+pub const RPC_C_OPT_UNIQUE_BINDING: DWORD = 11;
+pub const RPC_C_OPT_CALL_TIMEOUT: DWORD = 12;
+pub const RPC_C_OPT_DONT_LINGER: DWORD = 13;
+pub const RPC_C_OPT_TRUST_PEER: DWORD = 14;
+pub const RPC_C_OPT_ASYNC_BLOCK: DWORD = 15;
+pub const RPC_C_OPT_OPTIMIZE_TIME: DWORD = 16;
+pub const RPC_C_OPT_MAX_OPTIONS: DWORD = 17;
+pub const RPC_C_MQ_EXPRESS: DWORD = 0;
+pub const RPC_C_MQ_RECOVERABLE: DWORD = 1;
+pub const RPC_C_MQ_JOURNAL_NONE: DWORD = 0;
+pub const RPC_C_MQ_JOURNAL_DEADLETTER: DWORD = 1;
+pub const RPC_C_MQ_JOURNAL_ALWAYS: DWORD = 2;
+pub const RPC_C_FULL_CERT_CHAIN: DWORD = 0x0001;
+STRUCT!{struct RPC_PROTSEQ_VECTORA {
+ Count: c_uint,
+ Protseq: [*mut c_uchar; 1],
+}}
+STRUCT!{struct RPC_PROTSEQ_VECTORW {
+ Count: c_uint,
+ Protseq: [*mut c_ushort; 1],
+}}
+STRUCT!{struct RPC_POLICY {
+ Length: c_uint,
+ EndpointFlags: c_ulong,
+ NICFlags: c_ulong,
+}}
+pub type PRPC_POLICY = *mut RPC_POLICY;
+FN!{stdcall RPC_OBJECT_INQ_FN(
+ ObjectUuid: *mut UUID,
+ TypeUuid: *mut UUID,
+ Status: *mut RPC_STATUS,
+) -> ()}
+FN!{stdcall RPC_IF_CALLBACK_FN(
+ InterfaceUuid: RPC_IF_HANDLE,
+ Context: *mut c_void,
+) -> RPC_STATUS}
+FN!{stdcall RPC_SECURITY_CALLBACK_FN(
+ Context: *mut c_void,
+) -> ()}
+pub type RPC_MGR_EPV = c_void;
+STRUCT!{struct RPC_STATS_VECTOR {
+ Count: c_uint,
+ Stats: [c_ulong; 1],
+}}
+pub const RPC_C_STATS_CALLS_IN: c_ulong = 0;
+pub const RPC_C_STATS_CALLS_OUT: c_ulong = 1;
+pub const RPC_C_STATS_PKTS_IN: c_ulong = 2;
+pub const RPC_C_STATS_PKTS_OUT: c_ulong = 3;
+STRUCT!{struct RPC_IF_ID_VECTOR {
+ Count: c_ulong,
+ IfId: [*mut RPC_IF_ID; 1],
+}}
+pub type RPC_AUTH_IDENTITY_HANDLE = *mut c_void;
+pub type RPC_AUTHZ_HANDLE = *mut c_void;
+pub const RPC_C_AUTHN_LEVEL_DEFAULT: DWORD = 0;
+pub const RPC_C_AUTHN_LEVEL_NONE: DWORD = 1;
+pub const RPC_C_AUTHN_LEVEL_CONNECT: DWORD = 2;
+pub const RPC_C_AUTHN_LEVEL_CALL: DWORD = 3;
+pub const RPC_C_AUTHN_LEVEL_PKT: DWORD = 4;
+pub const RPC_C_AUTHN_LEVEL_PKT_INTEGRITY: DWORD = 5;
+pub const RPC_C_AUTHN_LEVEL_PKT_PRIVACY: DWORD = 6;
+pub const RPC_C_IMP_LEVEL_DEFAULT: DWORD = 0;
+pub const RPC_C_IMP_LEVEL_ANONYMOUS: DWORD = 1;
+pub const RPC_C_IMP_LEVEL_IDENTIFY: DWORD = 2;
+pub const RPC_C_IMP_LEVEL_IMPERSONATE: DWORD = 3;
+pub const RPC_C_IMP_LEVEL_DELEGATE: DWORD = 4;
+pub const RPC_C_QOS_IDENTITY_STATIC: DWORD = 0;
+pub const RPC_C_QOS_IDENTITY_DYNAMIC: DWORD = 1;
+pub const RPC_C_QOS_CAPABILITIES_DEFAULT: DWORD = 0x0;
+pub const RPC_C_QOS_CAPABILITIES_MUTUAL_AUTH: DWORD = 0x1;
+pub const RPC_C_QOS_CAPABILITIES_MAKE_FULLSIC: DWORD = 0x2;
+pub const RPC_C_QOS_CAPABILITIES_ANY_AUTHORITY: DWORD = 0x4;
+pub const RPC_C_QOS_CAPABILITIES_IGNORE_DELEGATE_FAILURE: DWORD = 0x8;
+pub const RPC_C_QOS_CAPABILITIES_LOCAL_MA_HINT: DWORD = 0x10;
+pub const RPC_C_QOS_CAPABILITIES_SCHANNEL_FULL_AUTH_IDENTITY: DWORD = 0x20;
+pub const RPC_C_PROTECT_LEVEL_DEFAULT: DWORD = RPC_C_AUTHN_LEVEL_DEFAULT;
+pub const RPC_C_PROTECT_LEVEL_NONE: DWORD = RPC_C_AUTHN_LEVEL_NONE;
+pub const RPC_C_PROTECT_LEVEL_CONNECT: DWORD = RPC_C_AUTHN_LEVEL_CONNECT;
+pub const RPC_C_PROTECT_LEVEL_CALL: DWORD = RPC_C_AUTHN_LEVEL_CALL;
+pub const RPC_C_PROTECT_LEVEL_PKT: DWORD = RPC_C_AUTHN_LEVEL_PKT;
+pub const RPC_C_PROTECT_LEVEL_PKT_INTEGRITY: DWORD = RPC_C_AUTHN_LEVEL_PKT_INTEGRITY;
+pub const RPC_C_PROTECT_LEVEL_PKT_PRIVACY: DWORD = RPC_C_AUTHN_LEVEL_PKT_PRIVACY;
+pub const RPC_C_AUTHN_NONE: DWORD = 0;
+pub const RPC_C_AUTHN_DCE_PRIVATE: DWORD = 1;
+pub const RPC_C_AUTHN_DCE_PUBLIC: DWORD = 2;
+pub const RPC_C_AUTHN_DEC_PUBLIC: DWORD = 4;
+pub const RPC_C_AUTHN_GSS_NEGOTIATE: DWORD = 9;
+pub const RPC_C_AUTHN_WINNT: DWORD = 10;
+pub const RPC_C_AUTHN_GSS_SCHANNEL: DWORD = 14;
+pub const RPC_C_AUTHN_GSS_KERBEROS: DWORD = 16;
+pub const RPC_C_AUTHN_DPA: DWORD = 17;
+pub const RPC_C_AUTHN_MSN: DWORD = 18;
+pub const RPC_C_AUTHN_DIGEST: DWORD = 21;
+pub const RPC_C_AUTHN_KERNEL: DWORD = 20;
+pub const RPC_C_AUTHN_NEGO_EXTENDER: DWORD = 30;
+pub const RPC_C_AUTHN_PKU2U: DWORD = 31;
+pub const RPC_C_AUTHN_LIVE_SSP: DWORD = 32;
+pub const RPC_C_AUTHN_LIVEXP_SSP: DWORD = 35;
+pub const RPC_C_AUTHN_MSONLINE: DWORD = 82;
+pub const RPC_C_AUTHN_MQ: DWORD = 100;
+pub const RPC_C_AUTHN_DEFAULT: DWORD = 0xFFFFFFFF;
+pub const RPC_C_NO_CREDENTIALS: DWORD = 0xFFFFFFFF;
+pub const RPC_C_SECURITY_QOS_VERSION: DWORD = 1;
+pub const RPC_C_SECURITY_QOS_VERSION_1: DWORD = 1;
+STRUCT!{struct RPC_SECURITY_QOS {
+ Version: c_ulong,
+ Capabilities: c_ulong,
+ IdentityTracking: c_ulong,
+ ImpersonationType: c_ulong,
+}}
+pub type PRPC_SECURITY_QOS = *mut RPC_SECURITY_QOS;
+STRUCT!{struct SEC_WINNT_AUTH_IDENTITY_W {
+ User: *mut c_ushort,
+ UserLength: c_ulong,
+ Domain: *mut c_ushort,
+ DomainLength: c_ulong,
+ Password: *mut c_ushort,
+ PasswordLength: c_ulong,
+ Flags: c_ulong,
+}}
+pub type PSEC_WINNT_AUTH_IDENTITY_W = *mut SEC_WINNT_AUTH_IDENTITY_W;
+STRUCT!{struct SEC_WINNT_AUTH_IDENTITY_A {
+ User: *mut c_uchar,
+ UserLength: c_ulong,
+ Domain: *mut c_uchar,
+ DomainLength: c_ulong,
+ Password: *mut c_uchar,
+ PasswordLength: c_ulong,
+ Flags: c_ulong,
+}}
+pub type PSEC_WINNT_AUTH_IDENTITY_A = *mut SEC_WINNT_AUTH_IDENTITY_A;
+pub const RPC_C_AUTHN_INFO_TYPE_HTTP: c_ulong = 1;
+pub const RPC_C_HTTP_AUTHN_TARGET_SERVER: c_ulong = 1;
+pub const RPC_C_HTTP_AUTHN_TARGET_PROXY: c_ulong = 2;
+pub const RPC_C_HTTP_AUTHN_SCHEME_BASIC: c_ulong = 0x00000001;
+pub const RPC_C_HTTP_AUTHN_SCHEME_NTLM: c_ulong = 0x00000002;
+pub const RPC_C_HTTP_AUTHN_SCHEME_PASSPORT: c_ulong = 0x00000004;
+pub const RPC_C_HTTP_AUTHN_SCHEME_DIGEST: c_ulong = 0x00000008;
+pub const RPC_C_HTTP_AUTHN_SCHEME_NEGOTIATE: c_ulong = 0x00000010;
+pub const RPC_C_HTTP_AUTHN_SCHEME_CERT: c_ulong = 0x00010000;
+pub const RPC_C_HTTP_FLAG_USE_SSL: c_ulong = 1;
+pub const RPC_C_HTTP_FLAG_USE_FIRST_AUTH_SCHEME: c_ulong = 2;
+pub const RPC_C_HTTP_FLAG_IGNORE_CERT_CN_INVALID: c_ulong = 8;
+pub const RPC_C_HTTP_FLAG_ENABLE_CERT_REVOCATION_CHECK: c_ulong = 16;
+STRUCT!{struct RPC_HTTP_TRANSPORT_CREDENTIALS_W {
+ TransportCredentials: *mut SEC_WINNT_AUTH_IDENTITY_W,
+ Flags: c_ulong,
+ AuthenticationTarget: c_ulong,
+ NumberOfAuthnSchemes: c_ulong,
+ AuthnSchemes: *mut c_ulong,
+ ServerCertificateSubject: *mut c_ushort,
+}}
+pub type PRPC_HTTP_TRANSPORT_CREDENTIALS_W = *mut RPC_HTTP_TRANSPORT_CREDENTIALS_W;
+STRUCT!{struct RPC_HTTP_TRANSPORT_CREDENTIALS_A {
+ TransportCredentials: *mut SEC_WINNT_AUTH_IDENTITY_A,
+ Flags: c_ulong,
+ AuthenticationTarget: c_ulong,
+ NumberOfAuthnSchemes: c_ulong,
+ AuthnSchemes: *mut c_ulong,
+ ServerCertificateSubject: *mut c_uchar,
+}}
+pub type PRPC_HTTP_TRANSPORT_CREDENTIALS_A = *mut RPC_HTTP_TRANSPORT_CREDENTIALS_A;
+STRUCT!{struct RPC_HTTP_TRANSPORT_CREDENTIALS_V2_W {
+ TransportCredentials: *mut SEC_WINNT_AUTH_IDENTITY_W,
+ Flags: c_ulong,
+ AuthenticationTarget: c_ulong,
+ NumberOfAuthnSchemes: c_ulong,
+ AuthnSchemes: *mut c_ulong,
+ ServerCertificateSubject: *mut c_ushort,
+ ProxyCredentials: *mut SEC_WINNT_AUTH_IDENTITY_W,
+ NumberOfProxyAuthnSchemes: c_ulong,
+ ProxyAuthnSchemes: *mut c_ulong,
+}}
+pub type PRPC_HTTP_TRANSPORT_CREDENTIALS_V2_W = *mut RPC_HTTP_TRANSPORT_CREDENTIALS_V2_W;
+STRUCT!{struct RPC_HTTP_TRANSPORT_CREDENTIALS_V2_A {
+ TransportCredentials: *mut SEC_WINNT_AUTH_IDENTITY_A,
+ Flags: c_ulong,
+ AuthenticationTarget: c_ulong,
+ NumberOfAuthnSchemes: c_ulong,
+ AuthnSchemes: *mut c_ulong,
+ ServerCertificateSubject: *mut c_uchar,
+ ProxyCredentials: *mut SEC_WINNT_AUTH_IDENTITY_A,
+ NumberOfProxyAuthnSchemes: c_ulong,
+ ProxyAuthnSchemes: *mut c_ulong,
+}}
+pub type PRPC_HTTP_TRANSPORT_CREDENTIALS_V2_A = *mut RPC_HTTP_TRANSPORT_CREDENTIALS_V2_A;
+STRUCT!{struct RPC_HTTP_TRANSPORT_CREDENTIALS_V3_W {
+ TransportCredentials: RPC_AUTH_IDENTITY_HANDLE,
+ Flags: c_ulong,
+ AuthenticationTarget: c_ulong,
+ NumberOfAuthnSchemes: c_ulong,
+ AuthnSchemes: *mut c_ulong,
+ ServerCertificateSubject: *mut c_ushort,
+ ProxyCredentials: *mut RPC_AUTH_IDENTITY_HANDLE,
+ NumberOfProxyAuthnSchemes: c_ulong,
+ ProxyAuthnSchemes: *mut c_ulong,
+}}
+pub type PRPC_HTTP_TRANSPORT_CREDENTIALS_V3_W = *mut RPC_HTTP_TRANSPORT_CREDENTIALS_V3_W;
+STRUCT!{struct RPC_HTTP_TRANSPORT_CREDENTIALS_V3_A {
+ TransportCredentials: RPC_AUTH_IDENTITY_HANDLE,
+ Flags: c_ulong,
+ AuthenticationTarget: c_ulong,
+ NumberOfAuthnSchemes: c_ulong,
+ AuthnSchemes: *mut c_ulong,
+ ServerCertificateSubject: *mut c_uchar,
+ ProxyCredentials: *mut RPC_AUTH_IDENTITY_HANDLE,
+ NumberOfProxyAuthnSchemes: c_ulong,
+ ProxyAuthnSchemes: *mut c_ulong,
+}}
+pub type PRPC_HTTP_TRANSPORT_CREDENTIALS_V3_A = *mut RPC_HTTP_TRANSPORT_CREDENTIALS_V3_A;
+STRUCT!{struct RPC_SECURITY_QOS_V2_W_union {
+ HttpCredentials: *mut RPC_HTTP_TRANSPORT_CREDENTIALS_W,
+}}
+STRUCT!{struct RPC_SECURITY_QOS_V2_W {
+ Version: c_ulong,
+ Capabilities: c_ulong,
+ IdentityTracking: c_ulong,
+ ImpersonationType: c_ulong,
+ AdditionalSecurityInfoType: c_ulong,
+ u: RPC_SECURITY_QOS_V2_W_union,
+}}
+pub type PRPC_SECURITY_QOS_V2_W = *mut RPC_SECURITY_QOS_V2_W;
+STRUCT!{struct RPC_SECURITY_QOS_V2_A_union {
+ HttpCredentials: *mut RPC_HTTP_TRANSPORT_CREDENTIALS_A,
+}}
+STRUCT!{struct RPC_SECURITY_QOS_V2_A {
+ Version: c_ulong,
+ Capabilities: c_ulong,
+ IdentityTracking: c_ulong,
+ ImpersonationType: c_ulong,
+ AdditionalSecurityInfoType: c_ulong,
+ u: RPC_SECURITY_QOS_V2_A_union,
+}}
+pub type PRPC_SECURITY_QOS_V2_A = *mut RPC_SECURITY_QOS_V2_A;
+STRUCT!{struct RPC_SECURITY_QOS_V3_W_union {
+ HttpCredentials: *mut RPC_HTTP_TRANSPORT_CREDENTIALS_W,
+}}
+STRUCT!{struct RPC_SECURITY_QOS_V3_W {
+ Version: c_ulong,
+ Capabilities: c_ulong,
+ IdentityTracking: c_ulong,
+ ImpersonationType: c_ulong,
+ AdditionalSecurityInfoType: c_ulong,
+ u: RPC_SECURITY_QOS_V3_W_union,
+ Sid: *mut c_void,
+}}
+pub type PRPC_SECURITY_QOS_V3_W = *mut RPC_SECURITY_QOS_V3_W;
+STRUCT!{struct RPC_SECURITY_QOS_V3_A_union {
+ HttpCredentials: *mut RPC_HTTP_TRANSPORT_CREDENTIALS_A,
+}}
+STRUCT!{struct RPC_SECURITY_QOS_V3_A {
+ Version: c_ulong,
+ Capabilities: c_ulong,
+ IdentityTracking: c_ulong,
+ ImpersonationType: c_ulong,
+ AdditionalSecurityInfoType: c_ulong,
+ u: RPC_SECURITY_QOS_V3_A_union,
+ Sid: *mut c_void,
+}}
+pub type PRPC_SECURITY_QOS_V3_A = *mut RPC_SECURITY_QOS_V3_A;
+STRUCT!{struct RPC_SECURITY_QOS_V4_W_union {
+ HttpCredentials: *mut RPC_HTTP_TRANSPORT_CREDENTIALS_W,
+}}
+STRUCT!{struct RPC_SECURITY_QOS_V4_W {
+ Version: c_ulong,
+ Capabilities: c_ulong,
+ IdentityTracking: c_ulong,
+ ImpersonationType: c_ulong,
+ AdditionalSecurityInfoType: c_ulong,
+ u: RPC_SECURITY_QOS_V4_W_union,
+ Sid: *mut c_void,
+ EffectiveOnly: c_uint,
+}}
+pub type PRPC_SECURITY_QOS_V4_W = *mut RPC_SECURITY_QOS_V4_W;
+STRUCT!{struct RPC_SECURITY_QOS_V4_A_union {
+ HttpCredentials: *mut RPC_HTTP_TRANSPORT_CREDENTIALS_A,
+}}
+STRUCT!{struct RPC_SECURITY_QOS_V4_A {
+ Version: c_ulong,
+ Capabilities: c_ulong,
+ IdentityTracking: c_ulong,
+ ImpersonationType: c_ulong,
+ AdditionalSecurityInfoType: c_ulong,
+ u: RPC_SECURITY_QOS_V4_A_union,
+ Sid: *mut c_void,
+ EffectiveOnly: c_uint,
+}}
+pub type PRPC_SECURITY_QOS_V4_A = *mut RPC_SECURITY_QOS_V4_A;
+STRUCT!{struct RPC_SECURITY_QOS_V5_W_union {
+ HttpCredentials: *mut RPC_HTTP_TRANSPORT_CREDENTIALS_W,
+}}
+STRUCT!{struct RPC_SECURITY_QOS_V5_W {
+ Version: c_ulong,
+ Capabilities: c_ulong,
+ IdentityTracking: c_ulong,
+ ImpersonationType: c_ulong,
+ AdditionalSecurityInfoType: c_ulong,
+ u: RPC_SECURITY_QOS_V5_W_union,
+ Sid: *mut c_void,
+ EffectiveOnly: c_uint,
+ ServerSecurityDescriptor: *mut c_void,
+}}
+pub type PRPC_SECURITY_QOS_V5_W = *mut RPC_SECURITY_QOS_V5_W;
+STRUCT!{struct RPC_SECURITY_QOS_V5_A_union {
+ HttpCredentials: *mut RPC_HTTP_TRANSPORT_CREDENTIALS_A,
+}}
+STRUCT!{struct RPC_SECURITY_QOS_V5_A {
+ Version: c_ulong,
+ Capabilities: c_ulong,
+ IdentityTracking: c_ulong,
+ ImpersonationType: c_ulong,
+ AdditionalSecurityInfoType: c_ulong,
+ u: RPC_SECURITY_QOS_V5_A_union,
+ Sid: *mut c_void,
+ EffectiveOnly: c_uint,
+ ServerSecurityDescriptor: *mut c_void,
+}}
+pub type PRPC_SECURITY_QOS_V5_A = *mut RPC_SECURITY_QOS_V5_A;
+pub const RPC_PROTSEQ_TCP: c_ulong = 0x1;
+pub const RPC_PROTSEQ_NMP: c_ulong = 0x2;
+pub const RPC_PROTSEQ_LRPC: c_ulong = 0x3;
+pub const RPC_PROTSEQ_HTTP: c_ulong = 0x4;
+pub const RPC_BHT_OBJECT_UUID_VALID: c_ulong = 0x1;
+pub const RPC_BHO_NONCAUSAL: c_ulong = 0x1;
+pub const RPC_BHO_DONTLINGER: c_ulong = 0x2;
+pub const RPC_BHO_EXCLUSIVE_AND_GUARANTEED: c_ulong = 0x4;
+STRUCT!{struct RPC_BINDING_HANDLE_TEMPLATE_V1_W_union {
+ Reserved: *mut c_ushort,
+}}
+STRUCT!{struct RPC_BINDING_HANDLE_TEMPLATE_V1_W {
+ Version: c_ulong,
+ Flags: c_ulong,
+ ProtocolSequence: c_ulong,
+ NetworkAddress: *mut c_ushort,
+ StringEndpoint: *mut c_ushort,
+ u1: RPC_BINDING_HANDLE_TEMPLATE_V1_W_union,
+ ObjectUuid: UUID,
+}}
+pub type PRPC_BINDING_HANDLE_TEMPLATE_V1_W = *mut RPC_BINDING_HANDLE_TEMPLATE_V1_W;
+STRUCT!{struct RPC_BINDING_HANDLE_TEMPLATE_V1_A_union {
+ Reserved: *mut c_uchar,
+}}
+STRUCT!{struct RPC_BINDING_HANDLE_TEMPLATE_V1_A {
+ Version: c_ulong,
+ Flags: c_ulong,
+ ProtocolSequence: c_ulong,
+ NetworkAddress: *mut c_uchar,
+ StringEndpoint: *mut c_uchar,
+ u1: RPC_BINDING_HANDLE_TEMPLATE_V1_A_union,
+ ObjectUuid: UUID,
+}}
+pub type PRPC_BINDING_HANDLE_TEMPLATE_V1_A = *mut RPC_BINDING_HANDLE_TEMPLATE_V1_A;
+STRUCT!{struct RPC_BINDING_HANDLE_SECURITY_V1_W {
+ Version: c_ulong,
+ ServerPrincName: *mut c_ushort,
+ AuthnLevel: c_ulong,
+ AuthnSvc: c_ulong,
+ AuthIdentity: *mut SEC_WINNT_AUTH_IDENTITY_W,
+ SecurityQos: *mut RPC_SECURITY_QOS,
+}}
+pub type PRPC_BINDING_HANDLE_SECURITY_V1_W = *mut RPC_BINDING_HANDLE_SECURITY_V1_W;
+STRUCT!{struct RPC_BINDING_HANDLE_SECURITY_V1_A {
+ Version: c_ulong,
+ ServerPrincName: *mut c_uchar,
+ AuthnLevel: c_ulong,
+ AuthnSvc: c_ulong,
+ AuthIdentity: *mut SEC_WINNT_AUTH_IDENTITY_A,
+ SecurityQos: *mut RPC_SECURITY_QOS,
+}}
+pub type PRPC_BINDING_HANDLE_SECURITY_V1_A = *mut RPC_BINDING_HANDLE_SECURITY_V1_A;
+STRUCT!{struct RPC_BINDING_HANDLE_OPTIONS_V1 {
+ Version: c_ulong,
+ Flags: c_ulong,
+ ComTimeout: c_ulong,
+ CallTimeout: c_ulong,
+}}
+pub type PRPC_BINDING_HANDLE_OPTIONS_V1 = *mut RPC_BINDING_HANDLE_OPTIONS_V1;
+ENUM!{enum RPC_HTTP_REDIRECTOR_STAGE {
+ RPCHTTP_RS_REDIRECT = 1,
+ RPCHTTP_RS_ACCESS_1,
+ RPCHTTP_RS_SESSION,
+ RPCHTTP_RS_ACCESS_2,
+ RPCHTTP_RS_INTERFACE,
+}}
+FN!{stdcall RPC_NEW_HTTP_PROXY_CHANNEL(
+ RedirectorStage: RPC_HTTP_REDIRECTOR_STAGE,
+ ServerName: RPC_WSTR,
+ ServerPort: RPC_WSTR,
+ RemoteUser: RPC_WSTR,
+ AuthType: RPC_WSTR,
+ ResourceUuid: *mut c_void,
+ SessionId: *mut c_void,
+ Interface: *mut c_void,
+ Reserved: *mut c_void,
+ Flags: c_ulong,
+ NewServerName: *mut RPC_WSTR,
+ NewServerPort: *mut RPC_WSTR,
+) -> RPC_STATUS}
+FN!{stdcall RPC_HTTP_PROXY_FREE_STRING(
+ String: RPC_WSTR,
+) -> ()}
+pub const RPC_C_AUTHZ_NONE: DWORD = 0;
+pub const RPC_C_AUTHZ_NAME: DWORD = 1;
+pub const RPC_C_AUTHZ_DCE: DWORD = 2;
+pub const RPC_C_AUTHZ_DEFAULT: DWORD = 0xffffffff;
+FN!{stdcall RPC_AUTH_KEY_RETRIEVAL_FN(
+ Arg: *mut c_void,
+ ServerPrincName: RPC_WSTR,
+ KeyVer: c_ulong,
+ Key: *mut *mut c_void,
+ Status: *mut RPC_STATUS,
+) -> ()}
+STRUCT!{struct RPC_CLIENT_INFORMATION1 {
+ UserName: *mut c_uchar,
+ ComputerName: *mut c_uchar,
+ Privilege: c_ushort,
+ AuthFlags: c_ulong,
+}}
+pub type PRPC_CLIENT_INFORMATION1 = *mut RPC_CLIENT_INFORMATION1;
+pub type RPC_EP_INQ_HANDLE = *mut I_RPC_HANDLE;
+pub const RPC_C_EP_ALL_ELTS: c_ulong = 0;
+pub const RPC_C_EP_MATCH_BY_IF: c_ulong = 1;
+pub const RPC_C_EP_MATCH_BY_OBJ: c_ulong = 2;
+pub const RPC_C_EP_MATCH_BY_BOTH: c_ulong = 3;
+pub const RPC_C_VERS_ALL: c_ulong = 1;
+pub const RPC_C_VERS_COMPATIBLE: c_ulong = 2;
+pub const RPC_C_VERS_EXACT: c_ulong = 3;
+pub const RPC_C_VERS_MAJOR_ONLY: c_ulong = 4;
+pub const RPC_C_VERS_UPTO: c_ulong = 5;
+FN!{stdcall RPC_MGMT_AUTHORIZATION_FN(
+ ClientBinding: RPC_BINDING_HANDLE,
+ RequestedMgmtOperation: c_ulong,
+ Status: *mut RPC_STATUS,
+) -> c_int}
+pub const RPC_C_MGMT_INQ_IF_IDS: c_ulong = 0;
+pub const RPC_C_MGMT_INQ_PRINC_NAME: c_ulong = 1;
+pub const RPC_C_MGMT_INQ_STATS: c_ulong = 2;
+pub const RPC_C_MGMT_IS_SERVER_LISTEN: c_ulong = 3;
+pub const RPC_C_MGMT_STOP_SERVER_LISTEN: c_ulong = 4;
+pub const RPC_IF_AUTOLISTEN: c_uint = 0x0001;
+pub const RPC_IF_OLE: c_uint = 0x0002;
+pub const RPC_IF_ALLOW_UNKNOWN_AUTHORITY: c_uint = 0x0004;
+pub const RPC_IF_ALLOW_SECURE_ONLY: c_uint = 0x0008;
+pub const RPC_IF_ALLOW_CALLBACKS_WITH_NO_AUTH: c_uint = 0x0010;
+pub const RPC_IF_ALLOW_LOCAL_ONLY: c_uint = 0x0020;
+pub const RPC_IF_SEC_NO_CACHE: c_uint = 0x0040;
+pub const RPC_IF_SEC_CACHE_PER_PROC: c_uint = 0x0080;
+pub const RPC_IF_ASYNC_CALLBACK: c_uint = 0x0100;
+pub const RPC_FW_IF_FLAG_DCOM: c_uint = 0x0001;
+pub type RPC_INTERFACE_GROUP = *mut c_void;
+pub type PRPC_INTERFACE_GROUP = *mut *mut c_void;
+STRUCT!{struct RPC_ENDPOINT_TEMPLATEW {
+ Version: c_ulong,
+ ProtSeq: RPC_WSTR,
+ Endpoint: RPC_WSTR,
+ SecurityDescriptor: *mut c_void,
+ Backlog: c_ulong,
+}}
+pub type PRPC_ENDPOINT_TEMPLATEW = *mut RPC_ENDPOINT_TEMPLATEW;
+STRUCT!{struct RPC_ENDPOINT_TEMPLATEA {
+ Version: c_ulong,
+ ProtSeq: RPC_CSTR,
+ Endpoint: RPC_CSTR,
+ SecurityDescriptor: *mut c_void,
+ Backlog: c_ulong,
+}}
+pub type PRPC_ENDPOINT_TEMPLATEA = *mut RPC_ENDPOINT_TEMPLATEA;
+STRUCT!{struct RPC_INTERFACE_TEMPLATEA {
+ Version: c_ulong,
+ IfSpec: RPC_IF_HANDLE,
+ MgrTypeUuid: *mut UUID,
+ MgrEpv: *mut RPC_MGR_EPV,
+ Flags: c_uint,
+ MaxCalls: c_uint,
+ MaxRpcSize: c_uint,
+ IfCallback: *mut RPC_IF_CALLBACK_FN,
+ UuidVector: *mut UUID_VECTOR,
+ Annotation: RPC_CSTR,
+ SecurityDescriptor: *mut c_void,
+}}
+pub type PRPC_INTERFACE_TEMPLATEA = *mut RPC_INTERFACE_TEMPLATEA;
+STRUCT!{struct RPC_INTERFACE_TEMPLATEW {
+ Version: c_ulong,
+ IfSpec: RPC_IF_HANDLE,
+ MgrTypeUuid: *mut UUID,
+ MgrEpv: *mut RPC_MGR_EPV,
+ Flags: c_uint,
+ MaxCalls: c_uint,
+ MaxRpcSize: c_uint,
+ IfCallback: *mut RPC_IF_CALLBACK_FN,
+ UuidVector: *mut UUID_VECTOR,
+ Annotation: RPC_WSTR,
+ SecurityDescriptor: *mut c_void,
+}}
+pub type PRPC_INTERFACE_TEMPLATEW = *mut RPC_INTERFACE_TEMPLATEW;
+FN!{stdcall RPC_INTERFACE_GROUP_IDLE_CALLBACK_FN(
+ IfGroup: RPC_INTERFACE_GROUP,
+ IdleCallbackContext: *mut c_void,
+ IsGroupIdle: c_ulong,
+) -> ()}
diff --git a/third_party/rust/chromium_crates_io/vendor/winapi-0.3.9/src/shared/rpcndr.rs b/third_party/rust/chromium_crates_io/vendor/winapi-0.3.9/src/shared/rpcndr.rs
new file mode 100644
index 000000000000..b65a3da05619
--- /dev/null
+++ b/third_party/rust/chromium_crates_io/vendor/winapi-0.3.9/src/shared/rpcndr.rs
@@ -0,0 +1,25 @@
+// Licensed under the Apache License, Version 2.0
+// or the MIT license
+// , at your option.
+// All files in the project carrying such notice may not be copied, modified, or distributed
+// except according to those terms.
+use ctypes::{__int64, __uint64, c_char, c_uchar, c_ulong};
+pub const NDR_CHAR_REP_MASK: c_ulong = 0x0000000F;
+pub const NDR_INT_REP_MASK: c_ulong = 0x000000F0;
+pub const NDR_FLOAT_REP_MASK: c_ulong = 0x0000FF00;
+pub const NDR_LITTLE_ENDIAN: c_ulong = 0x00000010;
+pub const NDR_BIG_ENDIAN: c_ulong = 0x00000000;
+pub const NDR_IEEE_FLOAT: c_ulong = 0x00000000;
+pub const NDR_VAX_FLOAT: c_ulong = 0x00000100;
+pub const NDR_IBM_FLOAT: c_ulong = 0x00000300;
+pub const NDR_ASCII_CHAR: c_ulong = 0x00000000;
+pub const NDR_EBCDIC_CHAR: c_ulong = 0x00000001;
+pub const NDR_LOCAL_DATA_REPRESENTATION: c_ulong = 0x00000010;
+pub const NDR_LOCAL_ENDIAN: c_ulong = NDR_LITTLE_ENDIAN;
+pub type small = c_char;
+pub type byte = c_uchar;
+pub type cs_byte = byte;
+pub type boolean = c_uchar;
+pub type hyper = __int64;
+pub type MIDL_uhyper = __uint64;
+// TODO Finish the rest
diff --git a/third_party/rust/chromium_crates_io/vendor/winapi-0.3.9/src/shared/sddl.rs b/third_party/rust/chromium_crates_io/vendor/winapi-0.3.9/src/shared/sddl.rs
new file mode 100644
index 000000000000..cf64387a4b41
--- /dev/null
+++ b/third_party/rust/chromium_crates_io/vendor/winapi-0.3.9/src/shared/sddl.rs
@@ -0,0 +1,217 @@
+// Licensed under the Apache License, Version 2.0
+// or the MIT license
+//