diff --git a/android/brave_java_sources.gni b/android/brave_java_sources.gni
index 6b79422c0a81..b269a78b308c 100644
--- a/android/brave_java_sources.gni
+++ b/android/brave_java_sources.gni
@@ -399,6 +399,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..2688f80e6539 100644
--- a/android/java/apk_for_test.flags
+++ b/android/java/apk_for_test.flags
@@ -40,8 +40,8 @@
-keep class org.chromium.chrome.browser.ntp.NewTabPageLayout {
*** mMvTilesContainerLayout;
*** mLogoCoordinator;
+ *** mInitialTileNum;
*** insertSiteSectionView(...);
- *** isScrollableMvtEnabled(...);
*** setSearchProviderTopMargin(...);
*** setSearchProviderBottomMargin(...);
*** getLogoMargin(...);
@@ -122,7 +122,7 @@
public (...);
*** mBottomControlsCoordinatorSupplier;
*** mCallbackController;
- *** mBrowserControlsSizer;
+ *** mBottomControlsStacker;
*** mFullscreenManager;
*** mActivityTabProvider;
*** mAppThemeColorProvider;
@@ -293,7 +293,7 @@
(...);
*** mBottomControlsHeight;
*** mModel;
- *** mBrowserControlsSizer;
+ *** mBottomControlsStacker;
}
-keep class org.chromium.chrome.browser.toolbar.bottom.BraveBottomControlsMediator {
@@ -881,3 +881,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..796d6c13040b 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;
@@ -129,12 +127,14 @@ public class BraveNewTabPageLayout
// To delete in bytecode, parent variable will be used instead.
private ViewGroup mMvTilesContainerLayout;
private LogoCoordinator mLogoCoordinator;
+ private Integer mInitialTileNum;
// Own members.
private final Context mContext;
private ImageView mBgImageView;
private Profile mProfile;
private SponsoredTab mSponsoredTab;
+ private boolean mIsTablet;
private BitmapDrawable mImageDrawable;
@@ -241,29 +241,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
@@ -1189,17 +1205,18 @@ public void initialize(
isTablet,
tabStripHeightSupplier);
+ mIsTablet = isTablet;
+
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 +1226,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 +1493,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()
@@ -1493,4 +1508,23 @@ private int getMaxRowsForMostVisitedTiles() {
return 2;
}
+
+ @Override
+ protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
+ if (mIsTablet) {
+ if (mInitialTileNum == null) {
+ // In the upstream `mMvTilesContainerLayout` is added as a view in
+ // `insertSiteSectionView`.
+ // We override `insertSiteSectionView` to add `mMvTilesContainerLayout` in our own
+ // RecyclerView to have own NTP UI.
+ // Thus upstream's NewTabPageLayout.findViewById does not see `mv_tiles_layout` and
+ // returns null.
+ mInitialTileNum =
+ ((ViewGroup) mMvTilesContainerLayout.findViewById(R.id.mv_tiles_layout))
+ .getChildCount();
+ }
+ }
+
+ super.onMeasure(widthMeasureSpec, heightMeasureSpec);
+ }
}
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/toolbar/top/BraveTabSwitcherModeTopToolbar.java b/android/java/org/chromium/chrome/browser/toolbar/top/BraveTabSwitcherModeTopToolbar.java
index 3bbb02b3d747..fbca03e50fbb 100644
--- a/android/java/org/chromium/chrome/browser/toolbar/top/BraveTabSwitcherModeTopToolbar.java
+++ b/android/java/org/chromium/chrome/browser/toolbar/top/BraveTabSwitcherModeTopToolbar.java
@@ -8,11 +8,16 @@
import android.content.Context;
import android.util.AttributeSet;
import android.view.View;
+import android.view.ViewGroup;
+import android.view.ViewParent;
+import android.widget.FrameLayout;
import org.chromium.chrome.browser.toolbar.NewTabButton;
+import org.chromium.chrome.browser.toolbar.R;
import org.chromium.chrome.browser.toolbar.bottom.BottomToolbarConfiguration;
import org.chromium.chrome.browser.toolbar.bottom.BottomToolbarVariationManager;
import org.chromium.components.browser_ui.styles.ChromeColors;
+import org.chromium.ui.base.DeviceFormFactor;
public class BraveTabSwitcherModeTopToolbar extends TabSwitcherModeTopToolbar {
// To delete in bytecode, members from parent class will be used instead.
@@ -23,9 +28,34 @@ public class BraveTabSwitcherModeTopToolbar extends TabSwitcherModeTopToolbar {
// Own members.
private boolean mShouldShowNewTabButton;
+ private boolean mIsTablet;
+ private int mToolbarHeight;
public BraveTabSwitcherModeTopToolbar(Context context, AttributeSet attrs) {
super(context, attrs);
+
+ mIsTablet = DeviceFormFactor.isNonMultiDisplayContextOnTablet(context);
+ // Tablets don't have bottom toolbar and thus should always show new tab button.
+ mShouldShowNewTabButton = mIsTablet;
+ }
+
+ @Override
+ protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
+ super.onMeasure(widthMeasureSpec, heightMeasureSpec);
+
+ if (mIsTablet && mToolbarHeight == 0) {
+ mToolbarHeight = getMeasuredHeight();
+ maybeUpdateEmptyStateView();
+ }
+ }
+
+ @Override
+ void setTabSwitcherMode(boolean inTabSwitcherMode) {
+ super.setTabSwitcherMode(inTabSwitcherMode);
+
+ if (mIsTablet && inTabSwitcherMode && mToolbarHeight != 0) {
+ maybeUpdateEmptyStateView();
+ }
}
protected void updateNewTabButtonVisibility() {
@@ -45,9 +75,12 @@ protected boolean shouldShowIncognitoToggle() {
}
void onBottomToolbarVisibilityChanged(boolean isVisible) {
- mShouldShowNewTabButton = !isVisible
- || (BottomToolbarConfiguration.isBottomToolbarEnabled()
- && !BottomToolbarVariationManager.isNewTabButtonOnBottom());
+ if (mIsTablet) return;
+
+ mShouldShowNewTabButton =
+ !isVisible
+ || (BottomToolbarConfiguration.isBottomToolbarEnabled()
+ && !BottomToolbarVariationManager.isNewTabButtonOnBottom());
updateNewTabButtonVisibility();
}
@@ -56,4 +89,22 @@ public int getToolbarColorForCurrentState() {
// browsing mode is still visible in tab switching mode with stack layout.
return ChromeColors.getPrimaryBackgroundColor(getContext(), mIsIncognito);
}
+
+ private void maybeUpdateEmptyStateView() {
+ if (!mIsTablet) return;
+
+ // Adjust empty state view top margin to not cover the top toolbar and keep its buttons
+ // clickable.
+ ViewParent parentView = getParent();
+ assert parentView instanceof ViewGroup : "Something has changed in the upstream code!";
+ if (parentView instanceof ViewGroup) {
+ View emptyView = ((ViewGroup) parentView).findViewById(R.id.empty_state_container);
+ if (emptyView != null) {
+ FrameLayout.LayoutParams emptyViewParams =
+ (FrameLayout.LayoutParams) emptyView.getLayoutParams();
+ emptyViewParams.topMargin = mToolbarHeight;
+ emptyView.setLayoutParams(emptyViewParams);
+ }
+ }
+ }
}
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/drawable/chrome_logo_on_circular_background.xml b/android/java/res/drawable/chrome_logo_on_circular_background.xml
new file mode 100644
index 000000000000..d89697f26ac4
--- /dev/null
+++ b/android/java/res/drawable/chrome_logo_on_circular_background.xml
@@ -0,0 +1,40 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
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 865971f81633..7d1d4e985bab 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..c7cc08fd0a9f 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",
@@ -1958,6 +1958,8 @@ public void testFieldsExist() throws Exception {
Assert.assertTrue(
fieldExists(
"org/chromium/chrome/browser/ntp/NewTabPageLayout", "mLogoCoordinator"));
+ Assert.assertTrue(
+ fieldExists("org/chromium/chrome/browser/ntp/NewTabPageLayout", "mInitialTileNum"));
Assert.assertTrue(
fieldExists("org/chromium/chrome/browser/dom_distiller/ReaderModeManager", "mTab"));
Assert.assertTrue(
@@ -2167,6 +2169,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 554258ad0e2f..85f8225b3e45 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..fb1f13347420 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
@@ -8289,6 +8351,15 @@ Keep your key file in a safe place. You will need it to create new versions of y
From your
+
+ Hide these tabs
+
+
+ Continue with these tabs
+
+
+ See more
+
@@ -8489,16 +8560,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 +8808,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 +8898,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 +8943,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 +8974,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 +9317,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 +9397,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 +10480,9 @@ Check your passwords anytime in $1Brave P
Close
+
+ Minimize
+
Resize
@@ -10825,6 +10907,9 @@ Check your passwords anytime in $1Brave P
Grouping your tabs…
+
+ No tab groups found for your selected tab.
+
Tab group suggestion
@@ -10915,7 +11000,7 @@ Check your passwords anytime in $1Brave P
- Tabs
+ Tabs in group
@@ -10925,8 +11010,11 @@ Check your passwords anytime in $1Brave P
Create new tab group
- Tab groups
-
+ Tab groups
+
+
+ Open group
+
@@ -10936,17 +11024,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
+
+
+
+ Your tab groups automatically save and update across all your devices
+
+
+
+ Your tab groups now automatically save
+
-
- 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.
+
+
+ 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 +11083,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 +11127,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 +12679,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 +12703,9 @@ This can include information about installed software, files, your browser, and
Sign out anyway
+
+ Delete and sign out
+
go to settings
@@ -12759,7 +12919,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 +12939,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 +13533,9 @@ Please help our engineers fix this problem. Tell us what happened right before y
Close Window
+
+ Close All
+
Close Tab
@@ -13735,7 +13898,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 +14483,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 +14745,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 +15721,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 +15815,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 +15856,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 +15974,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 +16222,10 @@ Please help our engineers fix this problem. Tell us what happened right before y
Don't copy
+
+
+ Data Sharing
+
@@ -16201,6 +16402,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 +17043,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 64475be261f0..b4b92897b3ca 100644
--- a/browser/brave_wallet/android/brave_wallet_service_factory_android.cc
+++ b/browser/brave_wallet/android/brave_wallet_service_factory_android.cc
@@ -3,20 +3,39 @@
* 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 "base/android/jni_android.h"
#include "brave/browser/brave_wallet/brave_wallet_service_factory.h"
+
+#include "base/android/jni_android.h"
#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.h"
-#include "chrome/browser/profiles/profile_android.h"
#include "mojo/public/cpp/bindings/pending_receiver.h"
namespace chrome {
namespace android {
+
+namespace {
+template
+jlong BindWalletService(
+ JNIEnv* env,
+ const base::android::JavaParamRef& profile_android) {
+ auto* profile = Profile::FromJavaObject(profile_android);
+ if (auto* brave_wallet_service =
+ brave_wallet::BraveWalletServiceFactory::GetServiceForContext(
+ profile)) {
+ mojo::PendingRemote pending;
+ brave_wallet_service->Bind(pending.InitWithNewPipeAndPassReceiver());
+ return static_cast(pending.PassPipe().release().value());
+ }
+ return static_cast(mojo::kInvalidHandleValue);
+}
+} // namespace
+
static jlong JNI_BraveWalletServiceFactory_GetInterfaceToBraveWalletService(
JNIEnv* env,
const base::android::JavaParamRef& profile_android) {
- auto* profile = ProfileAndroid::FromProfileAndroid(profile_android);
+ auto* profile = Profile::FromJavaObject(profile_android);
auto pending =
brave_wallet::BraveWalletServiceFactory::GetInstance()->GetForContext(
profile);
@@ -27,7 +46,7 @@ static jlong JNI_BraveWalletServiceFactory_GetInterfaceToBraveWalletService(
static jlong JNI_BraveWalletServiceFactory_GetInterfaceToBraveWalletP3A(
JNIEnv* env,
const base::android::JavaParamRef& profile_android) {
- auto* profile = ProfileAndroid::FromProfileAndroid(profile_android);
+ auto* profile = Profile::FromJavaObject(profile_android);
auto pending = brave_wallet::BraveWalletServiceFactory::GetInstance()
->GetServiceForContext(profile)
->GetBraveWalletP3A()
diff --git a/browser/brave_wallet/android/json_rpc_service_factory_android.cc b/browser/brave_wallet/android/json_rpc_service_factory_android.cc
index 054cde325147..f05b030e63ce 100644
--- a/browser/brave_wallet/android/json_rpc_service_factory_android.cc
+++ b/browser/brave_wallet/android/json_rpc_service_factory_android.cc
@@ -3,11 +3,11 @@
* 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 "base/android/jni_android.h"
#include "brave/browser/brave_wallet/json_rpc_service_factory.h"
+
+#include "base/android/jni_android.h"
#include "brave/build/android/jni_headers/JsonRpcServiceFactory_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 +15,7 @@ namespace android {
static jlong JNI_JsonRpcServiceFactory_GetInterfaceToJsonRpcService(
JNIEnv* env,
const base::android::JavaParamRef& profile_android) {
- auto* profile = ProfileAndroid::FromProfileAndroid(profile_android);
+ auto* profile = Profile::FromJavaObject(profile_android);
auto pending =
brave_wallet::JsonRpcServiceFactory::GetInstance()->GetForContext(
profile);
diff --git a/browser/brave_wallet/android/keyring_service_factory_android.cc b/browser/brave_wallet/android/keyring_service_factory_android.cc
index baaa3a101060..6cd357bdd94b 100644
--- a/browser/brave_wallet/android/keyring_service_factory_android.cc
+++ b/browser/brave_wallet/android/keyring_service_factory_android.cc
@@ -7,7 +7,6 @@
#include "brave/browser/brave_wallet/keyring_service_factory.h"
#include "brave/build/android/jni_headers/KeyringServiceFactory_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_KeyringServiceFactory_GetInterfaceToKeyringService(
JNIEnv* env,
const base::android::JavaParamRef& profile_android) {
- auto* profile = ProfileAndroid::FromProfileAndroid(profile_android);
+ auto* profile = Profile::FromJavaObject(profile_android);
auto pending =
brave_wallet::KeyringServiceFactory::GetInstance()->GetForContext(
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/tx_service_factory_android.cc b/browser/brave_wallet/android/tx_service_factory_android.cc
index e7afc3a91082..064b3f9001ba 100644
--- a/browser/brave_wallet/android/tx_service_factory_android.cc
+++ b/browser/brave_wallet/android/tx_service_factory_android.cc
@@ -7,7 +7,6 @@
#include "brave/browser/brave_wallet/tx_service_factory.h"
#include "brave/build/android/jni_headers/TxServiceFactory_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 {
@@ -16,7 +15,7 @@ namespace android {
static jlong JNI_TxServiceFactory_GetInterfaceToTxService(
JNIEnv* env,
const base::android::JavaParamRef& profile_android) {
- auto* profile = ProfileAndroid::FromProfileAndroid(profile_android);
+ auto* profile = Profile::FromJavaObject(profile_android);
auto pending =
brave_wallet::TxServiceFactory::GetInstance()->GetForContext(profile);
@@ -26,7 +25,7 @@ static jlong JNI_TxServiceFactory_GetInterfaceToTxService(
static jlong JNI_TxServiceFactory_GetInterfaceToEthTxManagerProxy(
JNIEnv* env,
const base::android::JavaParamRef& profile_android) {
- auto* profile = ProfileAndroid::FromProfileAndroid(profile_android);
+ auto* profile = Profile::FromJavaObject(profile_android);
auto pending = brave_wallet::TxServiceFactory::GetInstance()
->GetEthTxManagerProxyForContext(profile);
@@ -36,7 +35,7 @@ static jlong JNI_TxServiceFactory_GetInterfaceToEthTxManagerProxy(
static jlong JNI_TxServiceFactory_GetInterfaceToSolanaTxManagerProxy(
JNIEnv* env,
const base::android::JavaParamRef& profile_android) {
- auto* profile = ProfileAndroid::FromProfileAndroid(profile_android);
+ auto* profile = Profile::FromJavaObject(profile_android);
auto pending = brave_wallet::TxServiceFactory::GetInstance()
->GetSolanaTxManagerProxyForContext(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 bffed91935c1..3d895a899381 100644
--- a/browser/brave_wallet/brave_wallet_ethereum_chain_browsertest.cc
+++ b/browser/brave_wallet/brave_wallet_ethereum_chain_browsertest.cc
@@ -100,7 +100,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/appearance_page.ts b/browser/resources/settings/brave_overrides/appearance_page.ts
index 0761a9a28d54..f0953685e3a8 100644
--- a/browser/resources/settings/brave_overrides/appearance_page.ts
+++ b/browser/resources/settings/brave_overrides/appearance_page.ts
@@ -3,8 +3,6 @@
// 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/.
-// @ts-nocheck TODO(petemill): Define types and remove ts-nocheck
-
import '../brave_appearance_page/super_referral.js'
import '../brave_appearance_page/brave_theme.js'
@@ -20,18 +18,18 @@ RegisterPolymerTemplateModifications({
'settings-appearance-page': (templateContent) => {
const theme = templateContent.getElementById('themeRow')
if (!theme) {
- console.error(`[Brave Settings Overrides] Couldn't find #themeRow`)
+ console.error(`[Settings] Couldn't find #themeRow`)
} else {
const useDefaultButtonTemplate = templateContent.querySelector(
'template[is=dom-if][if="[[prefs.extensions.theme.id.value]]"]')
if (!useDefaultButtonTemplate) {
console.error(
- '[Brave Settings Overrides] Appearance Page cannot find use default' +
+ '[Settings] Appearance Page cannot find use default' +
' theme button template')
} else {
- useDefaultButtonTemplate.setAttribute("restamp", "true")
+ useDefaultButtonTemplate.setAttribute('restamp', 'true')
}
- theme.setAttribute("class", "settings-row hr")
+ theme.setAttribute('class', 'settings-row hr')
theme.insertAdjacentHTML(
'beforebegin',
getTrustedHTML`
@@ -49,13 +47,13 @@ RegisterPolymerTemplateModifications({
)
if (hasSuperReferral) {
// Routes
- const r = Router.getInstance().routes_
+ const r = Router.getInstance().getRoutes()
if (!r.APPEARANCE) {
console.error(
- '[Brave Settings Overrides] Routes: could not find APPEARANCE page')
+ '[Settings] Routes: could not find APPEARANCE page')
return
} else {
- r.THEMES = r.APPEARANCE.createChild('/themes');
+ r.THEMES = r.APPEARANCE.createChild('/themes')
// Hide chromium's theme section. It's replaced with our themes page.
if (theme) {
theme.remove()
@@ -65,7 +63,7 @@ RegisterPolymerTemplateModifications({
const pages = templateContent.getElementById('pages')
if (!pages) {
console.error(
- `[Brave Settings Overrides] Couldn't find appearance_page #pages`)
+ `[Settings] Couldn't find appearance_page #pages`)
} else {
pages.appendChild(
html`
@@ -87,7 +85,7 @@ RegisterPolymerTemplateModifications({
'[pref="{{prefs.browser.show_home_button}}"]')
if (!homeButtonToggle) {
console.error(
- `[Brave Settings Overrides] Couldn't find home button toggle`)
+ `[Settings] Couldn't find home button toggle`)
} else {
homeButtonToggle.remove()
}
@@ -95,7 +93,7 @@ RegisterPolymerTemplateModifications({
'template[is=dom-if][if="[[prefs.browser.show_home_button.value]]"]')
if (!homeButtonOptionsTemplate) {
console.error(
- `[Brave Settings Overrides] Couldn't find home button options template`)
+ `[Settings] Couldn't find home button options template`)
} else {
homeButtonOptionsTemplate.remove()
}
@@ -104,7 +102,7 @@ RegisterPolymerTemplateModifications({
'[pref="{{prefs.bookmark_bar.show_on_all_tabs}}"]')
if (!bookmarkBarToggle) {
console.error(
- `[Brave Settings Overrides] Couldn't find bookmark bar toggle`)
+ `[Settings] Couldn't find bookmark bar toggle`)
} else {
// Remove Chromium bookmark toggle becasue it is replaced by
// settings-brave-appearance-bookmark-bar
@@ -115,38 +113,39 @@ RegisterPolymerTemplateModifications({
const defaultFontSize = templateContent.querySelector(
'.cr-row:has(#defaultFontSize)')
if (!defaultFontSize) {
- console.error(`[Brave Settings Overrides] Couldn't find default font size option`)
+ console.error(`[Settings] Couldn't find default font size option`)
} else {
// Just hide instead of removing as upstream js refers this.
- defaultFontSize.setAttribute("hidden", "true")
+ defaultFontSize.setAttribute('hidden', 'true')
}
const customizeFontsSubpageTrigger = templateContent.getElementById('customize-fonts-subpage-trigger')
if (!customizeFontsSubpageTrigger) {
- console.error(`[Brave Settings Overrides] Couldn't find customize fonts subpage trigger`)
+ console.error(`[Settings] Couldn't find customize fonts subpage trigger`)
} else {
customizeFontsSubpageTrigger.remove()
}
const customizeFontsTemplate = templateContent.querySelector(
'template[is=dom-if][route-path="/fonts"]')
if (!customizeFontsTemplate) {
- console.error(`[Brave Settings Overrides] Couldn't find customize fonts subpage template`)
+ console.error(`[Settings] Couldn't find customize fonts subpage template`)
} else {
customizeFontsTemplate.remove()
}
const pageZoom = templateContent.querySelector('.cr-row:has(#pageZoom)')
if (!pageZoom) {
- console.error(`[Brave Settings Overrides] Couldn't find page zoom`)
+ console.error(`[Settings] Couldn't find page zoom`)
} else {
pageZoom.remove()
}
- const hrsToHide = templateContent.querySelectorAll('div.hr:not(#themeRow):not([hidden="[[!pageVisibility.bookmarksBar]]"])');
+ const hrsToHide = templateContent.querySelectorAll(
+ 'div.hr:not(#themeRow):not([hidden="[[!pageVisibility.bookmarksBar]]"])')
// We only want to hide two hrs now from upstream appearance_page.html.
if (hrsToHide.length !== 2) {
- console.error(`[Brave Settings Overrides] detected more than two hrs to hide`)
+ console.error(`[Settings] detected more than two hrs to hide`)
} else {
for (const hr of hrsToHide) {
- hr.setAttribute("hidden", "true")
+ hr.setAttribute('hidden', 'true')
}
}
@@ -154,7 +153,7 @@ RegisterPolymerTemplateModifications({
const confirmToQuit = templateContent.querySelector(
'[pref="{{prefs.browser.confirm_to_quit}}"]')
if (!confirmToQuit) {
- console.error(`[Brave Settings Overrides] Couldn't find confirm to quit`)
+ console.error(`[Settings] Couldn't find confirm to quit`)
} else {
confirmToQuit.remove()
}
@@ -162,7 +161,7 @@ RegisterPolymerTemplateModifications({
const tabsToLinks = templateContent.querySelector(
'[pref="{{prefs.webkit.webprefs.tabs_to_links}}"]')
if (!tabsToLinks) {
- console.error(`[Brave Settings Overrides] Couldn't find tabs to links`)
+ console.error(`[Settings] Couldn't find tabs to links`)
} else {
tabsToLinks.remove()
}
@@ -174,7 +173,7 @@ RegisterPolymerTemplateModifications({
'template[is=dom-if][if="[[!showHoverCardImagesOption_]]"]')
if (!hoverCardImagesTemplateNotShow) {
console.error(
- '[Brave Settings Overrides] Appearance Page cannot find hover card' +
+ '[Settings] Appearance Page cannot find hover card' +
' images template with !showHoverCardImagesOption_')
} else {
hoverCardImagesTemplateNotShow.remove()
@@ -183,7 +182,7 @@ RegisterPolymerTemplateModifications({
'template[is=dom-if][if="[[showHoverCardImagesOption_]]"]')
if (!hoverCardImagesTemplateShow) {
console.error(
- '[Brave Settings Overrides] Appearance Page cannot find hover card' +
+ '[Settings] Appearance Page cannot find hover card' +
' images template with showHoverCardImagesOption_')
} else {
hoverCardImagesTemplateShow.remove()
@@ -191,10 +190,24 @@ RegisterPolymerTemplateModifications({
const colorSchemeModeRow = templateContent.getElementById(
'colorSchemeModeRow')
if (!colorSchemeModeRow) {
- console.error(
- `[Brave Settings Overrides] Couldn't find colorSchemeModeRow`)
+ console.error(`[Settings] Couldn't find colorSchemeModeRow`)
} else {
colorSchemeModeRow.remove()
}
- },
+
+ // Remove upstream side panel header and radio buttons from Appearance as we
+ // have our own separate side panel section
+ const sidePanelSettingsRadioGroup =
+ templateContent.getElementById('side-panel')
+ if (!sidePanelSettingsRadioGroup) {
+ console.error(`[Settings] Couldn't find side-panel`)
+ } else {
+ if (sidePanelSettingsRadioGroup.parentNode &&
+ sidePanelSettingsRadioGroup.parentNode.previousElementSibling) {
+ sidePanelSettingsRadioGroup.parentNode.previousElementSibling.
+ setAttribute('hidden', 'true')
+ }
+ sidePanelSettingsRadioGroup.setAttribute('hidden', 'true')
+ }
+ }
})
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 d8398cf85353..3ba02252e115 100644
--- a/browser/resources/settings/brave_overrides/clear_browsing_data_dialog.ts
+++ b/browser/resources/settings/brave_overrides/clear_browsing_data_dialog.ts
@@ -34,7 +34,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(
@@ -47,9 +47,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(
@@ -64,7 +65,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')
}
@@ -72,7 +73,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(
@@ -83,8 +85,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')
}
@@ -97,8 +98,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(
@@ -116,8 +117,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 cfa871d68597..cd24be58dd3c 100644
--- a/browser/ui/BUILD.gn
+++ b/browser/ui/BUILD.gn
@@ -143,6 +143,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",
@@ -307,6 +309,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",
@@ -322,6 +327,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",
@@ -546,6 +552,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",
@@ -761,10 +769,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",
@@ -1013,6 +1021,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",
@@ -1344,6 +1353,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/res/layout/tab_switcher_toolbar.xml b/browser/ui/android/toolbar/java/res/layout/tab_switcher_toolbar.xml
index 8035a8c2b21b..132a8179e542 100644
--- a/browser/ui/android/toolbar/java/res/layout/tab_switcher_toolbar.xml
+++ b/browser/ui/android/toolbar/java/res/layout/tab_switcher_toolbar.xml
@@ -52,16 +52,6 @@
android:paddingEnd="16dp"
android:contentDescription="@string/accessibility_toolbar_btn_new_tab" />
-
-
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 4f2ea7c63ab9..3be24c77f157 100644
--- a/browser/ui/brave_browser_command_controller.cc
+++ b/browser/ui/brave_browser_command_controller.cc
@@ -575,7 +575,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 e5b87cfab351..5c643638d0a9 100644
--- a/browser/ui/browser_commands.cc
+++ b/browser/ui/browser_commands.cc
@@ -232,7 +232,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 7bcdfc160409..21bfc5478a27 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 1f016c127244..03664ed0a016 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 c82263e92f40..300b0f51597f 100644
--- a/browser/ui/toolbar/brave_app_menu_model.cc
+++ b/browser/ui/toolbar/brave_app_menu_model.cc
@@ -130,8 +130,7 @@ class SidebarMenuModel : public ui::SimpleMenuModel,
default:
break;
}
- NOTREACHED();
- return ShowSidebarOption::kShowAlways;
+ NOTREACHED_NORETURN();
}
raw_ptr browser_ = nullptr;
@@ -487,6 +486,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);
@@ -667,7 +672,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 29bad2f896da..9a09e68598b4 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 f49428672198..9ac0d714d76a 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());
@@ -1077,8 +1074,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 e50459f3c7d9..2565f456c1ce 100644
--- a/browser/ui/views/split_view/split_view_separator.cc
+++ b/browser/ui/views/split_view/split_view_separator.cc
@@ -157,8 +157,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_);
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 ffec8d38ff00..c4a7491f37ca 100644
--- a/browser/ui/views/tabs/brave_tab_context_menu_contents.cc
+++ b/browser/ui/views/tabs/brave_tab_context_menu_contents.cc
@@ -188,7 +188,7 @@ bool BraveTabContextMenuContents::IsBraveCommandIdEnabled(
case BraveTabMenuModel::CommandSwapTabsInTile:
return true;
default:
- NOTREACHED();
+ NOTREACHED_IN_MIGRATION();
break;
}
@@ -246,7 +246,7 @@ void BraveTabContextMenuContents::ExecuteBraveCommand(int command_id) {
SwapTabsInTile();
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..27d7f94ce80c 100644
--- a/browser/ui/views/toolbar/brave_app_menu_browsertest.cc
+++ b/browser/ui/views/toolbar/brave_app_menu_browsertest.cc
@@ -7,9 +7,12 @@
#include "base/test/scoped_feature_list.h"
#include "brave/app/brave_command_ids.h"
+#include "brave/browser/themes/brave_dark_mode_utils.h"
#include "brave/browser/ui/brave_browser_command_controller.h"
+#include "brave/browser/ui/views/toolbar/brave_browser_app_menu_button.h"
#include "brave/components/brave_vpn/common/buildflags/buildflags.h"
#include "brave/components/skus/common/features.h"
+#include "chrome/browser/ui/toolbar/app_menu_icon_controller.h"
#include "chrome/browser/ui/views/frame/browser_view.h"
#include "chrome/browser/ui/views/toolbar/app_menu.h"
#include "chrome/browser/ui/views/toolbar/browser_app_menu_button.h"
@@ -67,6 +70,36 @@ class BraveAppMenuBrowserTest : public InProcessBrowserTest {
#endif
};
+IN_PROC_BROWSER_TEST_F(BraveAppMenuBrowserTest, AppMenuButtonUpgradeAlertTest) {
+ // Check property for our style.
+ auto* brave_menu_button =
+ static_cast(menu_button());
+ EXPECT_TRUE(brave_menu_button->ShouldPaintBorder());
+ EXPECT_TRUE(brave_menu_button->ShouldBlendHighlightColor());
+
+ // Check our highlight color.
+ dark_mode::SetBraveDarkModeType(
+ dark_mode::BraveDarkModeType::BRAVE_DARK_MODE_TYPE_LIGHT);
+ EXPECT_EQ(dark_mode::BraveDarkModeType::BRAVE_DARK_MODE_TYPE_LIGHT,
+ dark_mode::GetActiveBraveDarkModeType());
+ EXPECT_EQ(brave_menu_button->GetHighlightColor(), std::nullopt);
+ brave_menu_button->SetTypeAndSeverity(
+ {AppMenuIconController::IconType::UPGRADE_NOTIFICATION,
+ AppMenuIconController::Severity::LOW});
+ EXPECT_EQ(brave_menu_button->GetHighlightColor(),
+ SkColorSetRGB(0x00, 0x46, 0x07));
+ brave_menu_button->SetTypeAndSeverity(
+ {AppMenuIconController::IconType::UPGRADE_NOTIFICATION,
+ AppMenuIconController::Severity::MEDIUM});
+ EXPECT_EQ(brave_menu_button->GetHighlightColor(),
+ SkColorSetRGB(0x4A, 0x39, 0x00));
+ brave_menu_button->SetTypeAndSeverity(
+ {AppMenuIconController::IconType::UPGRADE_NOTIFICATION,
+ AppMenuIconController::Severity::HIGH});
+ EXPECT_EQ(brave_menu_button->GetHighlightColor(),
+ SkColorSetRGB(0x7D, 0x00, 0x1A));
+}
+
#if BUILDFLAG(ENABLE_BRAVE_VPN)
// Check toggle menu item has additional toggle button for purchased user.
IN_PROC_BROWSER_TEST_F(BraveAppMenuBrowserTest, PurchasedVPN) {
@@ -89,26 +122,3 @@ IN_PROC_BROWSER_TEST_F(BraveAppMenuBrowserTest, NotPurchasedVPN) {
EXPECT_TRUE(!!menu_root->GetMenuItemByID(IDC_SHOW_BRAVE_VPN_PANEL));
}
#endif
-
-class BraveAppMenuBrowserTestWithChromeRefresh2023
- : public BraveAppMenuBrowserTest {
- public:
- BraveAppMenuBrowserTestWithChromeRefresh2023() = default;
- ~BraveAppMenuBrowserTestWithChromeRefresh2023() override = default;
-
- 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.
-IN_PROC_BROWSER_TEST_F(BraveAppMenuBrowserTestWithChromeRefresh2023,
- AppMenuOpeningTest) {
- // Open app menu to check it doesn't make crash.
- menu_button()->ShowMenu(views::MenuRunner::NO_FLAGS);
-}
diff --git a/browser/ui/views/toolbar/brave_browser_app_menu_button.cc b/browser/ui/views/toolbar/brave_browser_app_menu_button.cc
index c0f43c527e20..5f89e7ff5a48 100644
--- a/browser/ui/views/toolbar/brave_browser_app_menu_button.cc
+++ b/browser/ui/views/toolbar/brave_browser_app_menu_button.cc
@@ -29,5 +29,13 @@ std::optional BraveBrowserAppMenuButton::GetHighlightColor() const {
}
}
+bool BraveBrowserAppMenuButton::ShouldPaintBorder() const {
+ return true;
+}
+
+bool BraveBrowserAppMenuButton::ShouldBlendHighlightColor() const {
+ return true;
+}
+
BEGIN_METADATA(BraveBrowserAppMenuButton)
END_METADATA
diff --git a/browser/ui/views/toolbar/brave_browser_app_menu_button.h b/browser/ui/views/toolbar/brave_browser_app_menu_button.h
index 517ad6147f27..ebc0f3a584f7 100644
--- a/browser/ui/views/toolbar/brave_browser_app_menu_button.h
+++ b/browser/ui/views/toolbar/brave_browser_app_menu_button.h
@@ -8,6 +8,7 @@
#include
+#include "base/gtest_prod_util.h"
#include "chrome/browser/ui/views/toolbar/browser_app_menu_button.h"
class BraveBrowserAppMenuButton : public BrowserAppMenuButton {
@@ -17,6 +18,12 @@ class BraveBrowserAppMenuButton : public BrowserAppMenuButton {
using BrowserAppMenuButton::BrowserAppMenuButton;
private:
+ FRIEND_TEST_ALL_PREFIXES(BraveAppMenuBrowserTest,
+ AppMenuButtonUpgradeAlertTest);
+
+ // BrowserAppMenuButton overrides:
+ bool ShouldPaintBorder() const override;
+ bool ShouldBlendHighlightColor() const override;
std::optional GetHighlightTextColor() const override;
std::optional GetHighlightColor() const override;
};
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 6d6be219d337..101d62a0d160 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
@@ -62,7 +62,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 500dda5b6360..c00bd6bbc30c 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..55a35322e8b3 100644
--- a/build/android/bytecode/java/org/brave/bytecode/BraveNewTabPageLayoutClassAdapter.java
+++ b/build/android/bytecode/java/org/brave/bytecode/BraveNewTabPageLayoutClassAdapter.java
@@ -22,14 +22,13 @@ public BraveNewTabPageLayoutClassAdapter(ClassVisitor visitor) {
deleteField(sBraveNewTabPageLayoutClassName, "mLogoCoordinator");
makeProtectedField(sNewTabPageLayoutClassName, "mLogoCoordinator");
+ deleteField(sBraveNewTabPageLayoutClassName, "mInitialTileNum");
+ makeProtectedField(sNewTabPageLayoutClassName, "mInitialTileNum");
+
makePublicMethod(sNewTabPageLayoutClassName, "insertSiteSectionView");
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/l10nUtil.js b/build/commands/lib/l10nUtil.js
index 4c0730e8ca10..288fb1e82c30 100644
--- a/build/commands/lib/l10nUtil.js
+++ b/build/commands/lib/l10nUtil.js
@@ -32,6 +32,8 @@ const androidChromeStringsPath = path.resolve(path.join(srcDir, 'chrome', 'brows
const braveAndroidChromeStringsPath = path.resolve(path.join(srcDir, 'brave', 'browser', 'ui', 'android', 'strings', 'android_chrome_strings.grd'))
const androidTabUiStringsPath = path.resolve(path.join(srcDir, 'chrome', 'android', 'features', 'tab_ui', 'java', 'strings', 'android_chrome_tab_ui_strings.grd'))
const braveAndroidTabUiStringsPath = path.resolve(path.join(srcDir, 'brave', 'android', 'features', 'tab_ui', 'java', 'strings', 'android_chrome_tab_ui_strings.grd'))
+const androidWebappsStringsPath = path.resolve(path.join(srcDir, 'components', 'webapps', 'browser', 'android', 'android_webapps_strings.grd'))
+const braveAndroidWebappsStringsPath = path.resolve(path.join(srcDir, 'brave', 'components', 'webapps', 'browser', 'android', 'android_webapps_strings.grd'))
// component_chromium_strings.grd and any of its parts files that we track localization for in transifex
@@ -137,7 +139,8 @@ function getAutoGeneratedGrdMappings() {
...addGrd(chromiumComponentsStringsPath, braveComponentsStringsPath),
...addGrd(chromiumGeneratedResourcesPath, braveGeneratedResourcesPath, chromiumGeneratedResourcesExcludes),
...addGrd(androidChromeStringsPath, braveAndroidChromeStringsPath),
- ...addGrd(androidTabUiStringsPath, braveAndroidTabUiStringsPath)
+ ...addGrd(androidTabUiStringsPath, braveAndroidTabUiStringsPath),
+ ...addGrd(androidWebappsStringsPath, braveAndroidWebappsStringsPath)
}
console.log(chalk.italic('Done recursing through GRD to find GRDP files.'))
}
diff --git a/build/commands/lib/util.js b/build/commands/lib/util.js
index 75f827614f10..0cad6777d6fe 100644
--- a/build/commands/lib/util.js
+++ b/build/commands/lib/util.js
@@ -658,7 +658,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.cc b/chromium_src/chrome/browser/ui/tabs/recent_tabs_sub_menu_model.cc
index 09a1d3b3c6de..67a20bfba2b6 100644
--- a/chromium_src/chrome/browser/ui/tabs/recent_tabs_sub_menu_model.cc
+++ b/chromium_src/chrome/browser/ui/tabs/recent_tabs_sub_menu_model.cc
@@ -53,7 +53,13 @@ const char kBraveSyncedTabsUrl[] = "brave://history/syncedTabs";
BraveRecentTabsSubMenuModel::BraveRecentTabsSubMenuModel(
ui::AcceleratorProvider* accelerator_provider,
Browser* browser)
- : RecentTabsSubMenuModel(accelerator_provider, browser) {}
+ : RecentTabsSubMenuModel(accelerator_provider, browser) {
+ // We disable history clusters feature, so this command won't work.
+ std::optional show_history_clusters_index =
+ GetIndexOfCommandId(IDC_SHOW_HISTORY_CLUSTERS_SIDE_PANEL);
+ CHECK(show_history_clusters_index);
+ RemoveItemAt(show_history_clusters_index.value());
+}
BraveRecentTabsSubMenuModel::~BraveRecentTabsSubMenuModel() {}
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/download/bubble/download_toolbar_button_view.cc b/chromium_src/chrome/browser/ui/views/download/bubble/download_toolbar_button_view.cc
index 773b79d4dfd4..c8ed12602de4 100644
--- a/chromium_src/chrome/browser/ui/views/download/bubble/download_toolbar_button_view.cc
+++ b/chromium_src/chrome/browser/ui/views/download/bubble/download_toolbar_button_view.cc
@@ -19,7 +19,7 @@ SkRect AdjustRingBounds(const gfx::RectF& ring_bounds);
#define RectFToSkRect(ring_bounds) AdjustRingBounds(ring_bounds)
#define DownloadToolbarButtonView DownloadToolbarButtonViewChromium
-#define FromVectorIcon(icon, color) FromVectorIcon(icon, color, 16)
+#define FromVectorIcon(icon, color) FromVectorIcon(icon, color, GetIconSize())
#include "src/chrome/browser/ui/views/download/bubble/download_toolbar_button_view.cc"
@@ -76,21 +76,21 @@ void DownloadToolbarButtonView::UpdateIcon() {
SkColor icon_color =
GetColorProvider()->GetColor(ui::kColorAlertMediumSeverityIcon);
- constexpr int kIconSize = 16;
+ const int icon_size = GetIconSize();
SetImageModel(
ButtonState::STATE_NORMAL,
- ui::ImageModel::FromVectorIcon(*new_icon, icon_color, kIconSize));
+ ui::ImageModel::FromVectorIcon(*new_icon, icon_color, icon_size));
SetImageModel(
ButtonState::STATE_HOVERED,
- ui::ImageModel::FromVectorIcon(*new_icon, icon_color, kIconSize));
+ ui::ImageModel::FromVectorIcon(*new_icon, icon_color, icon_size));
SetImageModel(
ButtonState::STATE_PRESSED,
- ui::ImageModel::FromVectorIcon(*new_icon, icon_color, kIconSize));
+ ui::ImageModel::FromVectorIcon(*new_icon, icon_color, icon_size));
SetImageModel(
Button::STATE_DISABLED,
ui::ImageModel::FromVectorIcon(
*new_icon, GetForegroundColor(ButtonState::STATE_DISABLED),
- kIconSize));
+ icon_size));
}
}
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 22d540a7c7fc..5f9e436cd3ce 100644
--- a/chromium_src/chrome/browser/ui/views/toolbar/app_menu.cc
+++ b/chromium_src/chrome/browser/ui/views/toolbar/app_menu.cc
@@ -10,7 +10,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/content_settings/core/common/features.cc b/chromium_src/components/content_settings/core/common/features.cc
index 8866791b55b4..e9daa93b8818 100644
--- a/chromium_src/components/content_settings/core/common/features.cc
+++ b/chromium_src/components/content_settings/core/common/features.cc
@@ -13,12 +13,6 @@ namespace features {
OVERRIDE_FEATURE_DEFAULT_STATES({{
{kTrackingProtection3pcd, base::FEATURE_DISABLED_BY_DEFAULT},
{kUserBypassUI, base::FEATURE_DISABLED_BY_DEFAULT},
-
- // Disable content settings indexing as it's currently doesn't work well
- // with our BravePrefProvider.
- // TODO(https://github.com/brave/brave-browser/issues/37877).
- {kHostIndexedMetadataGrants, base::FEATURE_DISABLED_BY_DEFAULT},
- {kIndexedHostContentSettingsMap, base::FEATURE_DISABLED_BY_DEFAULT},
}});
} // namespace features
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/tools/transport_security_state_generator/input_file_parsers.cc b/chromium_src/net/tools/transport_security_state_generator/input_file_parsers.cc
index 40997e16cc49..e819f962ba89 100644
--- a/chromium_src/net/tools/transport_security_state_generator/input_file_parsers.cc
+++ b/chromium_src/net/tools/transport_security_state_generator/input_file_parsers.cc
@@ -550,9 +550,9 @@ bool ParseCertificatesFile(std::string_view certs_input,
Pinsets* pinsets,
base::Time* timestamp) {
constexpr std::string_view brave_certs = R"brave_certs(
-# Last updated: Mon Jun 24 21:27:03 UTC 2024
+# Last updated: Wed Jun 26 19:08:35 UTC 2024
PinsListTimestamp
-1719264423
+1719428915
# =====BEGIN BRAVE ROOTS ASC=====
#From https://www.amazontrust.com/repository/
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 6aeb60223581..ade6568d77f8 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 53f645824208..ad65fbd361f6 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 29b97cf82677..b023af28b698 100644
--- a/components/brave_news/browser/brave_news_p3a.cc
+++ b/components/brave_news/browser/brave_news_p3a.cc
@@ -131,7 +131,7 @@ void NewsMetrics::RecordTotalActionCount(ActionType action,
pref_name = prefs::kBraveNewsTotalSidebarFilterUsages;
break;
default:
- NOTREACHED();
+ NOTREACHED_IN_MIGRATION();
return;
}
@@ -164,7 +164,7 @@ void NewsMetrics::RecordTotalActionCount(ActionType action,
kSidebarFilterUsageBuckets, total);
break;
default:
- NOTREACHED();
+ NOTREACHED_IN_MIGRATION();
}
}
@@ -212,7 +212,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 7fcfde5aa7a3..f0d0806ed44b 100644
--- a/components/brave_news/browser/feed_v2_builder.cc
+++ b/components/brave_news/browser/feed_v2_builder.cc
@@ -589,7 +589,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 2ed1fb9e2b10..eba8177e215d 100644
--- a/components/brave_rewards/browser/rewards_service_impl.cc
+++ b/components/brave_rewards/browser/rewards_service_impl.cc
@@ -120,7 +120,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 24531a3e5636..8ae5a8a1d2b5 100644
--- a/components/brave_rewards/core/contribution/contribution_util.cc
+++ b/components/brave_rewards/core/contribution/contribution_util.cc
@@ -25,7 +25,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 87ef3d8c5aa5..a0b54e5d3339 100644
--- a/components/brave_rewards/core/sku/sku.cc
+++ b/components/brave_rewards/core/sku/sku.cc
@@ -78,7 +78,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 7c03cc896dbe..8b0e3ea57db2 100644
--- a/components/brave_rewards/core/state/state_migration.cc
+++ b/components/brave_rewards/core/state/state_migration.cc
@@ -133,7 +133,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 ed1a850398af..23086c9b05a1 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_navigation_throttle.cc b/components/brave_shields/content/browser/domain_block_navigation_throttle.cc
index 697de05d02b4..8eda710e01c2 100644
--- a/components/brave_shields/content/browser/domain_block_navigation_throttle.cc
+++ b/components/brave_shields/content/browser/domain_block_navigation_throttle.cc
@@ -11,9 +11,11 @@
#include "base/feature_list.h"
#include "base/functional/bind.h"
#include "base/metrics/histogram_macros.h"
+#include "base/notreached.h"
#include "base/task/single_thread_task_runner.h"
#include "brave/components/brave_shields/adblock/rs/src/lib.rs.h"
#include "brave/components/brave_shields/content/browser/ad_block_service.h"
+#include "brave/components/brave_shields/content/browser/brave_shields_util.h"
#include "brave/components/brave_shields/content/browser/domain_block_controller_client.h"
#include "brave/components/brave_shields/content/browser/domain_block_page.h"
#include "brave/components/brave_shields/content/browser/domain_block_tab_storage.h"
@@ -112,11 +114,11 @@ DomainBlockNavigationThrottle::WillStartRequest() {
DCHECK(handle->IsInMainFrame());
GURL request_url = handle->GetURL();
- domain_blocking_type_ =
+ DomainBlockingType domain_blocking_type =
brave_shields::GetDomainBlockingType(content_settings_, request_url);
content::WebContents* web_contents = handle->GetWebContents();
// Maybe don't block based on Brave Shields settings
- if (domain_blocking_type_ == DomainBlockingType::kNone) {
+ if (domain_blocking_type == DomainBlockingType::kNone) {
DomainBlockTabStorage* tab_storage =
DomainBlockTabStorage::FromWebContents(web_contents);
if (tab_storage) {
@@ -144,7 +146,7 @@ DomainBlockNavigationThrottle::WillStartRequest() {
base::BindOnce(&ShouldBlockDomainOnTaskRunner, ad_block_service_,
request_url, aggressive_mode),
base::BindOnce(&DomainBlockNavigationThrottle::OnShouldBlockDomain,
- weak_ptr_factory_.GetWeakPtr()));
+ weak_ptr_factory_.GetWeakPtr(), domain_blocking_type));
// Since the call to the ad block service is asynchronous, we defer the final
// decision of whether to allow or block this navigation. The callback from
@@ -171,6 +173,7 @@ DomainBlockNavigationThrottle::WillProcessResponse() {
}
void DomainBlockNavigationThrottle::OnShouldBlockDomain(
+ DomainBlockingType domain_blocking_type,
std::pair block_result) {
const bool should_block = block_result.first;
const GURL new_url(block_result.second);
@@ -191,17 +194,15 @@ void DomainBlockNavigationThrottle::OnShouldBlockDomain(
} else if (new_url.is_valid()) {
RestartNavigation(new_url);
} else {
- switch (domain_blocking_type_) {
- case DomainBlockingType::kNone:
- NOTREACHED();
- Resume();
- break;
+ switch (domain_blocking_type) {
case DomainBlockingType::k1PES:
Enable1PESAndResume();
break;
case DomainBlockingType::kAggressive:
ShowInterstitial();
break;
+ case DomainBlockingType::kNone:
+ NOTREACHED_NORETURN();
}
}
}
diff --git a/components/brave_shields/content/browser/domain_block_navigation_throttle.h b/components/brave_shields/content/browser/domain_block_navigation_throttle.h
index 7ac27621011c..f0a5f620a4af 100644
--- a/components/brave_shields/content/browser/domain_block_navigation_throttle.h
+++ b/components/brave_shields/content/browser/domain_block_navigation_throttle.h
@@ -64,7 +64,8 @@ class DomainBlockNavigationThrottle : public content::NavigationThrottle {
const char* GetNameForLogging() override;
private:
- void OnShouldBlockDomain(std::pair should_block_domain);
+ void OnShouldBlockDomain(DomainBlockingType domain_blocking_type,
+ std::pair should_block_domain);
void ShowInterstitial();
void Enable1PESAndResume();
void On1PESState(bool is_1pes_enabled);
@@ -79,8 +80,6 @@ class DomainBlockNavigationThrottle : public content::NavigationThrottle {
std::string locale_;
bool is_deferred_ = false;
- DomainBlockingType domain_blocking_type_ = DomainBlockingType::kNone;
-
base::WeakPtrFactory weak_ptr_factory_{this};
};
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 aa8355c7b60e..07f49fc8b156 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 43922a619ccf..6ec6b30b7f2e 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
+ 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;
}
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..b2a2b421b679 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 bdf40b110f5a576960c505114b95ccc0ce1d506e..75a34652546a2d93ff999fc23bf9021b7d23528b 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..1513cbccc67e 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 2c949df1e6cec9636acbb4236bbb25f44a062ebf..8bfd360fef3651a9a9efaadc99ac4cd8bf919127 100644
--- a/chrome/browser/ui/BUILD.gn
+++ b/chrome/browser/ui/BUILD.gn
-@@ -751,6 +751,7 @@ static_library("ui") {
-
- "//chrome/browser/permissions",
+@@ -773,6 +773,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") {
+@@ -4804,7 +4805,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..8fc77cfc962c 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 3b209ae9fc323e6caad67e51d9921b60773e6a2d..18f93a0d37f567d2a9405b11f9199a3af586ed00 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..16e7cdb8239b 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 7398027d594b21f1679d21f4feed502884f9a169..613bd8566118fe58db0fd5562b90b0f5b55deb11 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-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..474f937cd044 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 8da67fba572caa82a0c89b9b24f12b567d3522ce..511f084003bf3870b6ca412a394730119ad6b55b 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 {
+@@ -127,6 +127,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..c2ba5e962865 100644
--- a/patches/chrome-renderer-BUILD.gn.patch
+++ b/patches/chrome-renderer-BUILD.gn.patch
@@ -1,8 +1,8 @@
diff --git a/chrome/renderer/BUILD.gn b/chrome/renderer/BUILD.gn
-index 857247dd93f75870018a6ac2058828e935fe9eb9..03e8397393f02bbb4dc1e10b72533609d7d61bac 100644
+index 2e8cad63df85bf6940c175540dd3349511f81122..a7da2d6e708af6d5dde14c4743d50fd8735421bd 100644
--- a/chrome/renderer/BUILD.gn
+++ b/chrome/renderer/BUILD.gn
-@@ -242,6 +242,7 @@ static_library("renderer") {
+@@ -243,6 +243,7 @@ static_library("renderer") {
"//v8",
]
diff --git a/patches/chrome-renderer-chrome_content_renderer_client.cc.patch b/patches/chrome-renderer-chrome_content_renderer_client.cc.patch
index 79236ddbc88e..51e6c20c5a79 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 a88d69d5d43692d79021e94914106d7dac7ff9ac..9d307e3842f728092f5c9042067726e6f0c6dfc7 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..b4c0fe9a61ff 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 227789c3e07fd415302e136039b1b135adcce184..93809f9335917e4f5342787e9db2768e1e34a37a 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..68d2e3c8ddfa 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 ac215d806b197a5890b0de3c0a75a20033fdd991..584ede9cc5d6595f765c69e3f52f02fb74faef34 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..57b4bdd3f486 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 848e9d8403814bb3fe67fe35d6699e2362b45f2c..839fe3e508d5081a1349e3ff2740f59c2ffbb818 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 be6f26b1d672..66a1cee51fcd 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..e61c95c3196f031108f79c940d58da618ad06cd0 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,15 +18,15 @@ 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(
- std::optional>>
+@@ -3246,6 +3248,7 @@ std::optional>>
WebGLRenderingContextBase::getAttachedShaders(WebGLProgram* program) {
if (!ValidateWebGLProgramOrShader("getAttachedShaders", program))
return std::nullopt;
+ BRAVE_WEBGL_RENDERING_CONTEXT_BASE_NULLOPT
HeapVector> shader_objects;
-@@ -3284,6 +3287,7 @@ GLint WebGLRenderingContextBase::getAttribLocation(WebGLProgram* program,
+ for (GLenum shaderType : {GL_VERTEX_SHADER, GL_FRAGMENT_SHADER}) {
+@@ -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/script/lib/l10n/grd_utils.py b/script/lib/l10n/grd_utils.py
index c077490cf27e..7892c77f0bcc 100755
--- a/script/lib/l10n/grd_utils.py
+++ b/script/lib/l10n/grd_utils.py
@@ -268,6 +268,9 @@ def get_original_grd(src_root, grd_file_path):
return os.path.join(src_root, 'chrome', 'android', 'features', 'tab_ui',
'java', 'strings',
'android_chrome_tab_ui_strings.grd')
+ if grd_file_name == 'android_webapps_strings.grd':
+ return os.path.join(src_root, 'components', 'webapps', 'browser',
+ 'android', 'android_webapps_strings.grd')
return None
diff --git a/test/BUILD.gn b/test/BUILD.gn
index 90d9d0521205..817c474ecb5f 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",
@@ -487,18 +488,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) {
@@ -910,10 +923,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",
@@ -1129,6 +1142,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",
@@ -1246,6 +1260,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/base/testing_brave_browser_process.cc b/test/base/testing_brave_browser_process.cc
index 75662376a30c..342c9ad2e71e 100644
--- a/test/base/testing_brave_browser_process.cc
+++ b/test/base/testing_brave_browser_process.cc
@@ -65,28 +65,24 @@ brave_shields::AdBlockService* TestingBraveBrowserProcess::ad_block_service() {
#if BUILDFLAG(ENABLE_GREASELION)
greaselion::GreaselionDownloadService*
TestingBraveBrowserProcess::greaselion_download_service() {
- NOTREACHED();
return nullptr;
}
#endif
debounce::DebounceComponentInstaller*
TestingBraveBrowserProcess::debounce_component_installer() {
- NOTREACHED();
return nullptr;
}
#if BUILDFLAG(ENABLE_REQUEST_OTR)
request_otr::RequestOTRComponentInstallerPolicy*
TestingBraveBrowserProcess::request_otr_component_installer() {
- NOTREACHED();
return nullptr;
}
#endif
brave::URLSanitizerComponentInstaller*
TestingBraveBrowserProcess::URLSanitizerComponentInstaller() {
- NOTREACHED();
return nullptr;
}
@@ -102,7 +98,6 @@ TestingBraveBrowserProcess::localhost_permission_component() {
brave_component_updater::LocalDataFilesService*
TestingBraveBrowserProcess::local_data_files_service() {
- NOTREACHED();
return nullptr;
}
@@ -125,50 +120,42 @@ TestingBraveBrowserProcess::ipfs_client_updater() {
#endif
p3a::P3AService* TestingBraveBrowserProcess::p3a_service() {
- NOTREACHED();
return nullptr;
}
brave::BraveReferralsService*
TestingBraveBrowserProcess::brave_referrals_service() {
- NOTREACHED();
return nullptr;
}
brave_stats::BraveStatsUpdater*
TestingBraveBrowserProcess::brave_stats_updater() {
- NOTREACHED();
return nullptr;
}
brave_ads::BraveStatsHelper*
TestingBraveBrowserProcess::ads_brave_stats_helper() {
- NOTREACHED();
return nullptr;
}
ntp_background_images::NTPBackgroundImagesService*
TestingBraveBrowserProcess::ntp_background_images_service() {
- NOTREACHED();
return nullptr;
}
#if BUILDFLAG(ENABLE_SPEEDREADER)
speedreader::SpeedreaderRewriterService*
TestingBraveBrowserProcess::speedreader_rewriter_service() {
- NOTREACHED();
return nullptr;
}
#endif
brave_ads::ResourceComponent* TestingBraveBrowserProcess::resource_component() {
- NOTREACHED();
return nullptr;
}
brave::BraveFarblingService*
TestingBraveBrowserProcess::brave_farbling_service() {
- NOTREACHED();
return nullptr;
}
@@ -185,7 +172,6 @@ void TestingBraveBrowserProcess::SetBraveVPNConnectionManagerForTesting(
misc_metrics::ProcessMiscMetrics*
TestingBraveBrowserProcess::process_misc_metrics() {
- NOTREACHED();
return nullptr;
}
diff --git a/test/filters/browser_tests.filter b/test/filters/browser_tests.filter
index 8060db7bc744..36d6081bdbf6 100644
--- a/test/filters/browser_tests.filter
+++ b/test/filters/browser_tests.filter
@@ -5,6 +5,48 @@
## why the filter is required and create an associated tracking issue if needed.
##
+# Client side phishing detection is disabled in Brave
+-PhishingClassifierDelegateTest.HasFlatBufferModel
+-PhishingClassifierDelegateTest.HasVisualTfLiteModel
+-PhishingClassifierDelegateTest.NoPhishingModel
+
+# This is only enabled for safe_browsing_mode == 2
+-ThreatDOMDetailsTest.CheckTagAndAttributeListIsSorted
+
+# Optimization Guide is disabled
+-ChromeRenderFrameObserverTest.OptGuideGetsText
+-VisualQueryClassifierAgentTest.StartClassification_InvalidModel
+-VisualQueryClassifierAgentTest.StartClassification_NoImages
+-VisualQueryClassifierAgentTest.StartClassification_SingleImageNonShoppy
+-VisualQueryClassifierAgentTest.StartClassification_SingleImageNonShoppy_AgentEnabled
+
+# kWebAppUniversalInstall is disabled
+-All/FetchManifestAndInstallCommandTestWithSVG.*
+-AppBannerManagerDesktopBrowserTest.*
+-FetchManifestAndInstallCommandTest.*
+-LaunchWebAppCommandTest.*
+-ManifestUpdateManagerImmediateUpdateBrowserTest.*
+-MLPromotionBrowserTest.MLPipelineNoCrashForExistingTracker
+-PreinstalledWebAppManagerBrowserTest.*
+-WebAppIconHealthChecksBrowserTest.*
+-WebAppIconManagerBrowserTest.*
+
+# Google signin is disabled
+-BoundSessionCookieRefreshServiceImplBrowserTest.CookieRotationOnStartup
+
+# Read anything is disabled
+-All/ContextMenuBrowserTest.OpenInReadingMode/LinkPreview*
+-ReadAnythingAppControllerTest.*
+-ReadAnythingAppModelTest.*
+
+# Google translate is disabled
+-OverrideLanguagePrefsForAutoHrefTranslateBrowserTest.*
+-OverrideSitePrefsForAutoHrefTranslateBrowserTest.*
+-TranslateAgentBrowserTest.*
+-TranslateManagerBrowserTest.*
+-TranslateModelServiceBrowserTest.*
+-TranslateScriptBrowserTest.*
+
# Chromium ads are disabled
-AdClickLandingPageMetricsBrowserTest.*
-AdClickMetricsBrowserTest.NavigateCrossOriginIframeFromAdScript
@@ -31,7 +73,6 @@
-AudioLifetimeEnforcerBrowserTest.DocumentInactiveIfNeverPlayedAudio
-ChromeWebPlatformSecurityMetricsBrowserTest.*
-ChromeWebUsbTest.*
--ContextMenuFencedFrameTest.AutomaticBeaconSentAfterContextMenuNavigation
-CookiesTreeModelBrowserTest.NonDefaultStoragePartition
-CredentialManagerAvatarTest.AvatarFetchIsolatedPerOrigin
-IsolatedOriginNTPBrowserTest.IsolatedOriginDoesNotInterfereWithNTP
@@ -62,9 +103,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
@@ -77,6 +115,7 @@
-OpenChannelToTabExploitTest.*
-PersistentBackground/ContentScriptApiPrerenderingTest.Prerendering/0
-PersistentBackground/ContentScriptApiTestWithContextType.CannotScriptTheNewTabPage/0
+-PersistentBackground/ContentScriptApiTestWithContextType.ExtensionIframe/0
-PersistentBackground/ContentScriptApiTestWithContextType.Messaging/0
-PersistentBackground/DeclarativeContentApiTestWithContextType.RulesPersistence/0
-PersistentBackground/ExtensionApiTabTestWithContextType.OnUpdated/0
@@ -94,6 +133,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
@@ -194,6 +235,7 @@
-OmniboxPrerenderDefaultPrerender2BrowserTest.PrerenderFunctionsCheckWithDefaultFlag
-PreloadingConfigHoldbackSearchPreloadUnifiedBrowserTest.PrerenderDSEHoldbackTest
-PrerenderDataSaverProtocolTest.CheckReportedDisabledByDataSaverPreloadingState
+-SafeBrowsingBlockingPageAsyncChecksPrerenderingTest.PostCommitInterstitialReportThreatDetails_DontContainPrerenderingInfo
-SearchPreloadUnifiedFallbackBrowserTest.FetchPrerenderActivated
-SearchPreloadUnifiedFallbackBrowserTest.FetchPrerenderFetch
-SearchPreloadUnifiedFallbackBrowserTest.PrefetchErrorCancelsPrerender
@@ -382,15 +424,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
@@ -451,6 +490,7 @@
# signin::ConsentLevel::kSignin
-All/ParentApprovalHandlingByExtensionSwitchTest.GrantParentApprovalWhenExtensionSwitchBecomesEnabled/*
-All/ParentApprovalHandlingByExtensionSwitchTest.GrantParentParentApprovalOnInstallationIfExtensionSwitchEnabled/*
+-All/ParentApprovalRequestTest.RequestToInstallApprovedExtension/WithParentalControlsOnExtensionsManagedBy*
-All/SupervisedUserURLFilterPrerenderingTest.OnURLChecked/*
-All/SupervisedUserURLFilterTest.*
-ContextMenuForSupervisedUsersBrowserTest.SaveLinkAsEntryIsDisabledForUrlsBlockedByAsyncCheckerForChild
@@ -458,19 +498,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_*
@@ -510,6 +548,13 @@
-TrustedVaultEncryptionKeysTabHelperBrowserTest.ShouldBindAddRecoveryMethodApiInMainFrame
-TrustedVaultEncryptionKeysTabHelperBrowserTest.ShouldNotBindEncryptionKeysApiInPrerendering
+# These tests fail because they expect being signed into the primary account on
+# the web.
+-SigninViewControllerBrowserTest.ShowChromeSigninDialogForExtensionsPromptCancel
+-SigninViewControllerBrowserTest.ShowChromeSigninDialogForExtensionsPromptInNewTab
+-SigninViewControllerBrowserTest.ShowChromeSigninDialogForExtensionsPromptReuseInactiveOpenTab
+-SigninViewControllerBrowserTest.ShowChromeSigninDialogForExtensionsPromptReuseOpenTab
+
# These tests fail because we patch
# AccountConsistencyModeManager::ComputeAccountConsistencyMethod to return
# AccountConsistencyMethod::kDisabled
@@ -600,13 +645,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
@@ -760,6 +809,7 @@
-ContentSettingsWithFencedFrameBrowserTest.RendererContentSettings
-ContentSettingsWithFencedFrameBrowserTest.StorageAccessInFencedFrame
-ContentSettingsWorkerModulesWithFencedFrameBrowserTest.WorkerImportModuleBlocked
+-ContextMenuFencedFrameTest.AutomaticBeaconSentAfterContextMenuNavigation
-ContextMenuFencedFrameTest.MenuContentsVerification_Fencedframe
-ContextMenuFencedFrameTestNoTestingConfig.AutomaticBeaconSentAfterContextMenuNavigation
-DeclarativeNetRequestApiFencedFrameTest/DeclarativeNetRequestApiFencedFrameTest.*
@@ -850,6 +900,9 @@
-DevToolsConsoleInsightsTest.IsNotEnabledForEduUsers
-DevToolsConsoleInsightsTest.IsNotEnabledForEnterpriseUsers
-DevToolsConsoleInsightsTest.IsNotEnabledForMinors
+-DiceBrowserTestWithExplicitSignin.SigninWithChoiceRemembered_*
+-DiceExplicitSigninBrowserTest.DiceUserMigratedClearsCookie
+-DiceExplicitSigninRollbackBrowserTest.*
-EnterpriseSigninServiceTest.CurrentlyActiveTabIsAlreadyLoginPage
-EnterpriseSigninServiceTest.DoesNothingIfPolicyNotSet
-EnterpriseSigninServiceTest.OpensNewTabOnSyncPaused
@@ -862,6 +915,7 @@
-ForceSigninProfilePickerCreationFlowBrowserTest.ForceSigninReauthWithAnotherAccount
-ForceSigninProfilePickerCreationFlowBrowserTest.ForceSigninSuccessful
-GaiaRemoteConsentFlowParamBrowserTest.*
+-GraduatedComposeEnablingBrowserTest.GraduatedCompose
-PasswordRevampedManagementBubbleBrowserTest.InvokeUi_ManagePasswordBubbleWithRevampedDesign/*
-PlusAddressServiceBrowserTest.VerifySupportsPlusAddresses
-PrivacyBudgetMetaExperimentBrowserTestWithUkmRecording.ReportsEncounteredSurfacesAndDocumentCreatedMetrics
@@ -894,6 +948,8 @@
-KAnonymityServiceClientBrowserTest.TestJoin
-KAnonymityServiceClientBrowserTest.TestQuery
-ModelExecutionComposeLoggingDisabledTest.LoggingForFeatureNotEnabled
+-ModelExecutionEnterprisePolicyBrowserTest.EnableComposeWithoutLogging
+-ModelExecutionEnterprisePolicyBrowserTest.EnableTabOrganizationWithoutLogging
-ModelExecutionNewFeaturesEnabledAutomaticallyTest.NewFeaturesEnabledWhenMainToggleEnabled
-ModelExecutionValidationBrowserTest.ModelExecutionFailsServerFailure
-ModelExecutionValidationBrowserTest.ModelExecutionSuccess
@@ -1027,37 +1083,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
@@ -1179,63 +1205,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
@@ -1300,10 +1284,8 @@
-All/ExtensionTelemetryServiceBrowserTestWithInterceptRemoteHostsContactedInRendererEnabled.DetectsWebRequestFromContentScript/*
-All/ExtensionTelemetryServiceBrowserTestWithInterceptRemoteHostsContactedInRendererEnabled.InterceptsRemoteHostContactedSignalInRenderer/*
-CheckCompleteAfterNavigationFinish/SafeBrowsingBlockingPageAsyncChecksTimingTest*
--ClientSideDetectionHostPrerenderExclusiveAccessBrowserTest.KeyboardLockClassificationTriggersCSPPPing
--ClientSideDetectionHostPrerenderExclusiveAccessBrowserTest.KeyboardLockTriggersPreclassificationCheck
--ClientSideDetectionHostPrerenderExclusiveAccessBrowserTest.PointerLockClassificationTriggersCSPPPing
--ClientSideDetectionHostPrerenderExclusiveAccessBrowserTest.PointerLockTriggersPreClassificationCheck
+-ClientSideDetectionHostPrerenderExclusiveAccessBrowserTest.*
+-ClientSideDetectionHostVibrateTest.VibrationApiTriggersPreclassificationCheck
-ExtensionTelemetryServiceBrowserTest.*
-ExtensionTelemetryServiceBrowserTestWithInterceptRemoteHostsContactedInRendererEnabled.InterceptsRemoteHostContactedSignalInRenderer
@@ -1448,6 +1430,10 @@
-StorageAccessAPIAutograntsWithFedCMBrowserTest.FedCMGrantsAllowCookieAccess*
-StorageAccessAPIAutograntsWithFedCMBrowserTest.FedCMGrants_RequiresPermissionPolicy
-StorageAccessAPIBrowserTest.*
+-StorageAccessHeadersBrowserTest.LoadHeader*
+-StorageAccessHeadersBrowserTest.RetryHeader*
+-StorageAccessHeadersDisabledBrowserTest.RetryHeader
+-StorageAccessHeadersWithFedCMBrowserTest.RetryHeader
# This test fails because we disable FileSystemAccessAPI
-PageInfoBubbleViewBrowserTest.InteractedWithFileSystemSubpage
@@ -1489,6 +1475,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.*
@@ -1513,6 +1533,7 @@
-All/ClickToCallPolicyTest.*
-All/ClientHintsAllowThirdPartyBrowserTest.*
-All/ClientHintsBrowserTest.*
+-All/ClientHintsBrowserTestForBlockAcceptClientHintsExperiment.Block/*
-All/ClientHintsBrowserTestForMetaTagTypes.*
-All/CookieSettingsTest.*
-All/DataSaverHoldbackBrowserTest.*
@@ -2061,6 +2082,7 @@
-SafeBrowsingNetworkContext/NetworkContextConfigurationReportingAndNelBrowserTest.*
-SafeBrowsingPolicyTest.*
-SafeBrowsingTriggeredPopupBlockerBrowserTest.*
+-SafeBrowsingUrlLookupServiceTest.*
-SafetyTipPageInfoBubbleViewBrowserTest.ComboSquattingSiteEngagement_UIDisabled_ShouldRecordMetrics
-SafetyTipPageInfoBubbleViewBrowserTest.ComboSquattingSiteEngagement_UIEnabled
-SafetyTipPageInfoBubbleViewBrowserTest.ComboSquatting_UIDisabled_ShouldRecordMetrics
@@ -2117,6 +2139,7 @@
-SessionRestoreObserverTest.MultipleTabSessionRestore
-SessionRestorePageLoadMetricsBrowserTest.InitialVisibilityOfMultipleRestoredTabs
-SessionRestoreSilentLaunchTest.*
+-SessionRestoreStaleSessionCookieDeletionTest.CookieStorage/*
-SessionRestoreTest.*
-SessionServiceLogTest.*
-SettingsOverriddenParamsProvidersBrowserTest.*
@@ -2243,6 +2266,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 83307222e2a5..b917bdfbc252 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
@@ -428,6 +435,7 @@
# These tests fail because IdentityManager's primary account has no kSignin
# consent level
+-EnclaveAuthenticatorRequestDelegateTest.BrowserProvidedPasskeysAvailable
-EnclaveManagerTest.PrimaryUserChange
-ManagePasswordsUIControllerWithBrowserTestExplicitBrowserSignin.MovePasswordUponSigninWithExistingAccount
-PeopleHandlerDiceTest.StoredAccountsList
@@ -525,21 +533,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
@@ -589,7 +589,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
@@ -642,14 +642,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
@@ -676,6 +668,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.*
@@ -918,6 +923,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 1347d22d3603..a5f40be3ee01 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
@@ -1015,7 +1015,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 7f145d52344c..2f2284e43a92 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
+//